鄒培軒 中海油石化工程有限公司 青島 266101
隨著項(xiàng)目工程設(shè)計(jì)與采購施工結(jié)合越來越緊密,許多工程項(xiàng)目要求設(shè)計(jì)出的管道材料表帶Commodity Code(元件代碼)。
在某大型國際總承包項(xiàng)目中,業(yè)主明確要求管道專業(yè)發(fā)表的管道材料表帶Commodity Code。經(jīng)過綜合考慮工期、費(fèi)用等因素,決定對(duì)除閥門外的工程材料,先利用SRD(Smart Reference Data)建立等級(jí)庫,再利用SRD與PDMS的接口導(dǎo)入PDMS中,然后利用二次開發(fā)的映射程序,將Commodity Code和詳細(xì)描述賦給已經(jīng)存在的管道等級(jí)。對(duì)于閥門的Commodity Code,主要是先制定項(xiàng)目級(jí)的編碼規(guī)則,然后利用PDMS內(nèi)置的編程語言PML進(jìn)行軟件開發(fā)來進(jìn)行Commodity Code的建立。
軟件開發(fā)采用PDMS自帶的PML語言來完成,PML是AVEVA產(chǎn)品內(nèi)置的開發(fā)語言,是AVEVA產(chǎn)品命令的集合,功能強(qiáng)大,與軟件所有模塊無縫對(duì)接,同時(shí)又具有簡化的圖形用戶界面。
該項(xiàng)目由于其介質(zhì)特殊性及復(fù)雜性,涉及的材質(zhì)類別很多,閥門的特殊要求多,采用SRD進(jìn)行閥門Commodity Code的建立,不僅難度大,且耗時(shí)耗力,不能滿足項(xiàng)目管道材料表的要求。因此針對(duì)該項(xiàng)目,單獨(dú)制定了一套項(xiàng)目級(jí)的閥門Commodity Code規(guī)則,并通過軟件開發(fā)來滿足合同的要求。
軟件開發(fā)的目的主要有如下四點(diǎn):
①制定項(xiàng)目級(jí)通用閥門的Commodity Code的編碼規(guī)則;②對(duì)比利用SRD生成閥門Commodity Code,具有效率高、周期短、可讀性高、可操作性高的優(yōu)點(diǎn);③構(gòu)成閥門Commodity Code的中間數(shù)據(jù)可以通過軟件開發(fā),保存在PDMS數(shù)據(jù)庫中,方便數(shù)據(jù)追溯和校核人校對(duì)數(shù)據(jù)庫;④靈活性高,可滿足不同業(yè)主方要求。
通過借鑒SRD針對(duì)閥門的編碼規(guī)則并結(jié)合項(xiàng)目情況,制定規(guī)則如下:
Rule: Group + Part + Design Code + Rating + End Prep + Operating + Body Material + Tag Number(中間的字符-用ZZZZ替代)。
規(guī)則描述如下:
Group:閥門的大類,用2位英文字母表示,均用PV表示。
Part:閥門的小類,用1位英文字母表示。詳見表1。
表1 閥門類別-Part示例
Design Code:閥門設(shè)計(jì)標(biāo)準(zhǔn),用3位英文字母表示。詳見表2。
表2 設(shè)計(jì)標(biāo)準(zhǔn)-Design Code示例
Rating:閥門壓力等級(jí),用1位英文字母表示。詳見表3。
表3 壓力等級(jí)-Rating示例
End Prep:閥門端面連接形式,用2位英文字母表示。詳見表4。
表4 端面形式-End Prep示例
Operating:閥門操作形式,用1位英文字母表示。詳見表5。
表5 操作形式-Operating示例
Body Material:閥門主材,用3位英文字母表示。詳見表6。
表6 閥門主材-Body Material示例
Tag Number:閥門標(biāo)識(shí),Tag number和項(xiàng)目有關(guān),每一個(gè)Tag Number對(duì)應(yīng)一種閥門的詳細(xì)規(guī)格描述,主要包括閥門的內(nèi)件材質(zhì)、閥桿材質(zhì)、密封面材質(zhì)以及一些特殊要求,例如酸性介質(zhì)對(duì)閥門的特殊要求。在制定Commodity Code規(guī)則的時(shí)候,通過加入Tag Number來進(jìn)行Commodity Code與Tag Number的關(guān)聯(lián)??紤]到Tag Number中常有字符-,但Commodity Code一般不包含特殊字符,因此,在進(jìn)行Commodity Code建立時(shí),用四個(gè)大寫字母ZZZZ替代字符-。
下面通過PVG2FKDFAF2ABGAZZZZ1A12來詳細(xì)解釋編碼規(guī)則:
√ PV - Group
√ G - Part
√ 2FK - Design Code
√ D - Rating
√ FA - End Prep
√ F - Operating
√ 2AB - Body Material
√ GAZZZZ1A12 - Tag Number
為了將構(gòu)成閥門Commodity Code的中間數(shù)據(jù)保存在PDMS數(shù)據(jù)庫中,建立如下自定義屬性用于保存中間數(shù)據(jù),詳見表7。
表7 自定義屬性列表
在實(shí)際建立閥門Commodity Code的過程中,記錄的中間數(shù)據(jù)詳見圖1。
圖1 記錄信息
軟件的主界面通過使用PML進(jìn)行開發(fā),主要包含如下功能:
①展示Commodity Code;②生成Commodity Code;③啟動(dòng)生成閥門Part的窗體;④啟動(dòng)生成閥門Rating的窗體;⑤啟動(dòng)生成閥門Operating的窗體;⑥啟動(dòng)生成閥門Tag Number的窗體;⑦檢查漏項(xiàng)、缺項(xiàng)(紅色字體標(biāo)記);⑧生成閥門的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(‘請(qǐng)先選擇需要修改的行’)
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
軟件小組對(duì)軟件進(jìn)行了功能測試。小組成員采用常規(guī)水洗罐項(xiàng)目進(jìn)行測試,該項(xiàng)目共計(jì)20個(gè)等級(jí),數(shù)據(jù)庫中閥門數(shù)量大約有2500個(gè)。參考以往通過SRD建立相應(yīng)數(shù)量閥門Commodity Code,大致需要30天的時(shí)間,而利用開發(fā)的程序僅需要2天時(shí)間就可以完成全部閥門Commodity Code的建立。此外,通過軟件小組校核,發(fā)現(xiàn)準(zhǔn)確率能達(dá)100%??梢娫撥浖男屎蜏?zhǔn)確率均非常高。
該軟件成功運(yùn)用在該項(xiàng)目中,大約有40個(gè)等級(jí),共計(jì)節(jié)約90%的工期。
本軟件應(yīng)用效果明顯,目前雖只針對(duì)閥門建立Commodity Code,但對(duì)于其他管道元件,通過制定項(xiàng)目級(jí)的編碼規(guī)則,可以快速進(jìn)行開發(fā)。