APP下载

PDMS项目阀门Commodity Code软件开发应用

2023-09-04邹培轩中海油石化工程有限公司青岛266101

化工设计 2023年4期
关键词:英文字母窗体示例

邹培轩 中海油石化工程有限公司 青岛 266101

随着项目工程设计与采购施工结合越来越紧密,许多工程项目要求设计出的管道材料表带Commodity Code(元件代码)。

在某大型国际总承包项目中,业主明确要求管道专业发表的管道材料表带Commodity Code。经过综合考虑工期、费用等因素,决定对除阀门外的工程材料,先利用SRD(Smart Reference Data)建立等级库,再利用SRD与PDMS的接口导入PDMS中,然后利用二次开发的映射程序,将Commodity Code和详细描述赋给已经存在的管道等级。对于阀门的Commodity Code,主要是先制定项目级的编码规则,然后利用PDMS内置的编程语言PML进行软件开发来进行Commodity Code的建立。

软件开发采用PDMS自带的PML语言来完成,PML是AVEVA产品内置的开发语言,是AVEVA产品命令的集合,功能强大,与软件所有模块无缝对接,同时又具有简化的图形用户界面。

1 项目特点

该项目由于其介质特殊性及复杂性,涉及的材质类别很多,阀门的特殊要求多,采用SRD进行阀门Commodity Code的建立,不仅难度大,且耗时耗力,不能满足项目管道材料表的要求。因此针对该项目,单独制定了一套项目级的阀门Commodity Code规则,并通过软件开发来满足合同的要求。

2 软件开发思路

软件开发的目的主要有如下四点:

①制定项目级通用阀门的Commodity Code的编码规则;②对比利用SRD生成阀门Commodity Code,具有效率高、周期短、可读性高、可操作性高的优点;③构成阀门Commodity Code的中间数据可以通过软件开发,保存在PDMS数据库中,方便数据追溯和校核人校对数据库;④灵活性高,可满足不同业主方要求。

2.1 制定阀门Commodity Code 规则

通过借鉴SRD针对阀门的编码规则并结合项目情况,制定规则如下:

Rule: Group + Part + Design Code + Rating + End Prep + Operating + Body Material + Tag Number(中间的字符-用ZZZZ替代)。

规则描述如下:

Group:阀门的大类,用2位英文字母表示,均用PV表示。

Part:阀门的小类,用1位英文字母表示。详见表1。

表1 阀门类别-Part示例

Design Code:阀门设计标准,用3位英文字母表示。详见表2。

表2 设计标准-Design Code示例

Rating:阀门压力等级,用1位英文字母表示。详见表3。

表3 压力等级-Rating示例

End Prep:阀门端面连接形式,用2位英文字母表示。详见表4。

表4 端面形式-End Prep示例

Operating:阀门操作形式,用1位英文字母表示。详见表5。

表5 操作形式-Operating示例

Body Material:阀门主材,用3位英文字母表示。详见表6。

表6 阀门主材-Body Material示例

Tag Number:阀门标识,Tag number和项目有关,每一个Tag Number对应一种阀门的详细规格描述,主要包括阀门的内件材质、阀杆材质、密封面材质以及一些特殊要求,例如酸性介质对阀门的特殊要求。在制定Commodity Code规则的时候,通过加入Tag Number来进行Commodity Code与Tag Number的关联。考虑到Tag Number中常有字符-,但Commodity Code一般不包含特殊字符,因此,在进行Commodity Code建立时,用四个大写字母ZZZZ替代字符-。

下面通过PVG2FKDFAF2ABGAZZZZ1A12来详细解释编码规则:

√ PV - Group

√ G - Part

√ 2FK - Design Code

√ D - Rating

√ FA - End Prep

√ F - Operating

√ 2AB - Body Material

√ GAZZZZ1A12 - Tag Number

2.2 数据定义

为了将构成阀门Commodity Code的中间数据保存在PDMS数据库中,建立如下自定义属性用于保存中间数据,详见表7。

表7 自定义属性列表

在实际建立阀门Commodity Code的过程中,记录的中间数据详见图1。

图1 记录信息

2.3 软件界面

软件的主界面通过使用PML进行开发,主要包含如下功能:

①展示Commodity Code;②生成Commodity Code;③启动生成阀门Part的窗体;④启动生成阀门Rating的窗体;⑤启动生成阀门Operating的窗体;⑥启动生成阀门Tag Number的窗体;⑦检查漏项、缺项(红色字体标记);⑧生成阀门的Design Code;⑨生成阀门的Body Material;⑩生成阀门的End Prep等主要功能。

软件主界面详见图2。

图2 程序主界面

部分示例代码如下:

define method.ssavework()

--getSatandardData

!getSatandardData = !this.standard.selection()

!tempDetail = !getSatandardData.substring(1,4).trim(‘LR’)

!tempDesc = !getSatandardData.substring(4).trim(‘LR’).replace(‘”’,’’)

if !this.grid.GetSelectedRows().size() eq 0 then

!!alert.message(‘请先选择需要修改的行’)

return

endif

do !x from 1 to !this.grid.GetSelectedRows().size()

!this.target = !this.grid.GetSelectedRows()[!x][1].dbref()

!this.target.:PDMSSpco_Standard = !temp-Detail

!this.target.:PDMSSpco_StandardDesc =!tempDesc.replace(‘ ‘,’’)

!rowTag = !this.grid.GetSelectedRowTags()[$!x]

!this.grid.setCellColor(!x,6,’red’)

--!this.grid.FeedbackSuccessColor(‘red’)

enddo

--!this.ApplyPart()

!this.extract()

Endmethod

define method.loadFromExcel()

import ‘PMLFileBrowser’

Handle Any

Endhandle

using namespace ‘Aveva.Pdms.Presentation’

!browser = object PMLFileBrowser(‘OPEN’)

!browser.show(‘D:’,’’,’Load Grid from Excel’,true, ‘Excel Documents|*.xls’,1)

!nds = object NetDataSource(‘Grid Control Example’, !browser.file())

!this.grid.BindToDataSource(!nds)

!this.grid.setColumnColor(‘Standard’,’yellowgreen’)

!this.grid.setColumnColor(‘End_Prep’,’yellowgreen’)

!this.grid.setColumnColor(‘Material’,’yellowgre en’)

endmethod

3 软件应用效果

软件小组对软件进行了功能测试。小组成员采用常规水洗罐项目进行测试,该项目共计20个等级,数据库中阀门数量大约有2500个。参考以往通过SRD建立相应数量阀门Commodity Code,大致需要30天的时间,而利用开发的程序仅需要2天时间就可以完成全部阀门Commodity Code的建立。此外,通过软件小组校核,发现准确率能达100%。可见该软件的效率和准确率均非常高。

该软件成功运用在该项目中,大约有40个等级,共计节约90%的工期。

4 结语

本软件应用效果明显,目前虽只针对阀门建立Commodity Code,但对于其他管道元件,通过制定项目级的编码规则,可以快速进行开发。

猜你喜欢

英文字母窗体示例
2019年高考上海卷作文示例
常见单位符号大小写混淆示例
试谈Access 2007数据库在林业档案管理中的应用
常见单位符号大小写混淆示例
“全等三角形”错解示例
英文字母,你们看上去萌萌哒
英文字母,你们看上去萌萌哒
一字千进(23)
捋顺绳子
巧设WPS窗体控件让表格填写更规范