司文學(xué) 湯傳斌
(中國恩菲工程技術(shù)有限公司, 北京 100038)
在化工項(xiàng)目的設(shè)計(jì)過程中,化工工藝包的編制是其中一個(gè)重要的環(huán)節(jié),起承上啟下的作用。一般情況下,工藝包應(yīng)至少包括[1-2]:Pfd流程圖及其附屬的各種數(shù)據(jù)表格,Pid流程圖及其附屬的各種數(shù)據(jù)表格。因此,設(shè)計(jì)者在編制工藝包時(shí),除了繪制流程圖外,還需要對(duì)其附屬的大量數(shù)據(jù)進(jìn)行計(jì)算和核算,最后根據(jù)需要修改流程圖?;すに囋O(shè)計(jì)過程中,繪圖、數(shù)據(jù)計(jì)算、核對(duì)數(shù)據(jù)和編制各種數(shù)據(jù)表等工作給設(shè)計(jì)者帶來的巨大壓力,尤其是大量數(shù)據(jù)的處理、流程圖修改和各種各樣數(shù)據(jù)表的編制都需要耗費(fèi)大量的時(shí)間和精力,并且需進(jìn)行反復(fù)地核對(duì),當(dāng)工藝流程發(fā)生變化時(shí),更是需要花費(fèi)更多的時(shí)間和精力進(jìn)行檢查和核對(duì),且仍有可能出現(xiàn)錯(cuò)誤。
近年來,隨著計(jì)算機(jī)技術(shù)的發(fā)展,各種各樣的P&ID軟件逐漸發(fā)展起來,在一定程度上減少了設(shè)計(jì)工作者的勞動(dòng)量,但是仍然有大量的數(shù)據(jù)需要設(shè)計(jì)者自己先計(jì)算處理后才能輸入P&ID軟件中。例如輸入管線信息時(shí),管道的公稱直徑和管道等級(jí)都需要設(shè)計(jì)者直接輸入,若有變化時(shí)還需要逐一查找進(jìn)行修改。
盡管這些P&ID商業(yè)軟件可以減輕設(shè)計(jì)工作者的勞動(dòng)量,但它們都是與各自公司配套的3D建模軟件聯(lián)合使用,不但需要專人維護(hù),而且價(jià)格較貴。若使用這些商業(yè)軟件,每年需要為每位設(shè)計(jì)者支出的軟件費(fèi)用將近10萬元。
本文提出了一種利用VBA程序?qū)spenPlus、AutoCAD和Exccel有機(jī)地結(jié)合起來編制工藝包的方法,利用計(jì)算機(jī)替代人工處理除繪圖以外的與數(shù)據(jù)相關(guān)的大部分工作,例如Pfd物流表、Pid管線表、儀表?xiàng)l件表等,從而可以使設(shè)計(jì)者快速的完成Pid工藝包的制作。
按傳統(tǒng)的方法,一個(gè)流程的工藝包制作過程需要完成以下步驟:
1) 初步確定裝置的工藝過程。
2) 進(jìn)行流程模擬,確定主要工藝物流參數(shù)。一般使用穩(wěn)態(tài)流程模擬軟件進(jìn)行流程模擬,例如AspenPlus等。
3) 使用AutoCAD繪制Pfd圖,并編制管道表。
4) 進(jìn)行換熱器、泵、壓縮機(jī)、塔器、儲(chǔ)罐、安全閥等設(shè)備的設(shè)計(jì)。
5) 使用AutoCAD繪制Pid圖,繪圖的同時(shí)計(jì)算管徑、管道等級(jí)、保溫類型及保溫厚度等信息,然后輸入Pid流程圖中。
6) 使用AutoCAD繪制設(shè)備配置圖。
7) 討論修改定型后,編制Pid管線表、設(shè)備表、安全閥表、各種條件表(主要是儀表?xiàng)l件表)等。
通常情況下,可以在第三步和第五步使用P&ID商業(yè)軟件替代AutoCAD繪制流程圖,并輸出一部分表格,從而減少一部分工作量。
本文所介紹的方法可以將第三步、第五步和第七步中除繪圖以外的絕大部分?jǐn)?shù)據(jù)處理工作由計(jì)算機(jī)自動(dòng)完成。
本文所述的方法是利用VBA將AspenPlus、AutoCAD和Exccel有機(jī)地結(jié)合起來,設(shè)計(jì)者在使用AutoCAD繪制Pfd、Pid流程圖時(shí)只需要命名管段號(hào),然后運(yùn)行程序即可完成剩余工作,使設(shè)計(jì)者擺脫大量數(shù)據(jù)的計(jì)算和核查工作。其主要功能如下:
1) 將流程模擬軟件的物流信息按照規(guī)定的格式輸出到Excel中。
2) 使用AutoCAD繪制Pfd流程圖后,使用本程序一鍵讀取Pfd流程圖中的物流號(hào),然后從流程模擬結(jié)果的Excel表格中讀取相關(guān)數(shù)據(jù),經(jīng)過處理后輸出到Excel的Pfd管線表中。
3) 使用AutoCAD繪制Pid流程圖后,使用本程序一鍵讀取Pid流程圖中的管線號(hào),然后從Pfd管線表中讀取相關(guān)數(shù)據(jù),經(jīng)過計(jì)算處理后將相關(guān)信息寫入Pid流程圖中,并可以根據(jù)需要生成Excel格式的Pfd管線表、儀表數(shù)據(jù)表、設(shè)備數(shù)據(jù)表、安全閥數(shù)據(jù)表等。
使用上述方法,設(shè)計(jì)者只需要在各個(gè)階段根據(jù)需要點(diǎn)擊相應(yīng)的功能按鈕即可。因此,除了以上由計(jì)算機(jī)完成的工作外,設(shè)計(jì)者需要完成的工作簡化為以下幾個(gè)方面:
1) 進(jìn)行流程設(shè)計(jì),并進(jìn)行流程模擬和優(yōu)化。
2) 使用AutoCAD和增強(qiáng)塊繪制Pfd流程圖。
3) 使用AutoCAD和增強(qiáng)塊繪制Pid流程圖,只需對(duì)管線進(jìn)行命名,選擇合適的閥門、儀表等,輸入相關(guān)的信息。
4) 進(jìn)行設(shè)備設(shè)計(jì)。
5) 繪制設(shè)備布置圖。
由此可以看出,通過利用VBA實(shí)現(xiàn)AspenPlus、AutoCAD與Excel之間數(shù)據(jù)的相互讀取、計(jì)算、寫入,實(shí)現(xiàn)計(jì)算機(jī)替代人工,節(jié)約設(shè)計(jì)時(shí)間,提高勞動(dòng)效率,提高設(shè)計(jì)質(zhì)量。
盡管化工流程中存在管線、設(shè)備、閥、儀表等眾多不同對(duì)象,但在本文所述的方法中,利用不同的增強(qiáng)塊表示不同的對(duì)象,以便加以區(qū)別。這是因?yàn)槭褂迷鰪?qiáng)塊可以描述更多的信息,而且增強(qiáng)塊的讀、寫方法基本相同,有利于維護(hù)。因此,本文僅對(duì)Pid管線的處理過程進(jìn)行簡單描述。
2.2.1 插入塊“Pid_Pipe”
使用AutoCAD繪制Pid圖時(shí),通過插入塊功能插入增強(qiáng)塊[3]“Pid_Pipe”,彈出對(duì)話框如圖1所示。
圖1 Pid管線塊輸入信息
由于采用的是增強(qiáng)塊,當(dāng)關(guān)閉該窗口后,輸入的信息中只有“PG-1010101”是可見的,其他信息都是隱藏的。
2.2.2 讀取管線信息
完成繪制Pid流程圖后,執(zhí)行讀取管線號(hào)信息的程序(寫入信息的程序與此類似)。VBA讀取增強(qiáng)塊“Pid_Pipe”的核心代碼摘要[4-5]如下所示。
Dim cadent As AutoCAD.AcadEntity
Dim array1 As Variant
Dim sheet As Worksheet
Dim nh As Integer
Dim nv As Integer
nh=3
nv=1
For Each cadent In caddoc.ModelSpace
If StrComp(cadent.EntityName, “AcDbBlock-Reference”, 1) = 0 Then
If cadent.Name=“Pid_Pipe” Then
If cadent.HasAttributes Then
array1=cadent.GetAttributes
For i=LBound(array1) To UBound(array1)
sheet.Cells(nh, nv+i)=array1(i).TextString
Next i
nh=nh+1
End If
End If
End If
Next cadent
運(yùn)行后讀取結(jié)果見表1。
表1 Pid管線塊信息
2.2.3 獲取Pid物流信息
執(zhí)行計(jì)算管徑的VBA程序。該步驟是獲取每個(gè)已經(jīng)讀取的Pid管線的物流信息,并通過計(jì)算得到完整的Pid管線表。推薦在Excel中進(jìn)行操作,以便于過程檢查、修改。具體步驟如下:
1) 根據(jù)管段號(hào)的“參考Pfd物流名”,使用LookUp等函數(shù)將流量、溫度、壓力、組分含量、焓、密度、粘度、表面張力等在后續(xù)需要使用的Pfd物流信息復(fù)制過來(表2)。
表2 Pid管線物流信息
2) 計(jì)算設(shè)計(jì)溫度和設(shè)計(jì)壓力。
3) 計(jì)算管線公稱直徑。若已經(jīng)在增強(qiáng)塊中指定了PIPE_SPEI值,則直接將此值作為管道的公稱直徑,否則按照以下過程計(jì)算管道的公稱直徑DN。
① 根據(jù)管段號(hào)的“流量系數(shù)”,計(jì)算Pid管線的工況體積流量,計(jì)算公式為:
Pid管線工況體積流量=對(duì)應(yīng)的Pfd物流工況體積流量×系數(shù)PIPE_REFⅡ
(1)
② 計(jì)算最大體積流量,其計(jì)算公式為:
最大工況體積流量=Pid管線工況體積流量×系數(shù)PIPE_FLOW
(2)
③ 計(jì)算管線公稱直徑,其計(jì)算公式為:
公稱直徑=SQRT(最大工況體積流量/時(shí)間/流速/3.14)×2
(3)
④ 向上圓整并按照規(guī)格取值。
4) 根據(jù)介質(zhì)類型、設(shè)計(jì)溫度、設(shè)計(jì)壓力、公稱直徑等信息,計(jì)算管線的管道等級(jí)和壓力管道的壓力等級(jí)。
5) 根據(jù)溫度計(jì)算保溫類型、保溫材料和保溫厚度。
6) 根據(jù)需要計(jì)算其他信息,如探傷比例等。
7) 使用函數(shù)CONCATENATE將前述字符按照格式“管段號(hào)-管道等級(jí)-DN-保溫類型-保溫厚度-保溫材質(zhì)-管線號(hào)”合并成標(biāo)準(zhǔn)管線號(hào)。結(jié)果見表3。
表3 Pid管線號(hào)
8) 檢查修改后的執(zhí)行程序,將上一步中得到的標(biāo)準(zhǔn)管線號(hào)寫入對(duì)應(yīng)的管線號(hào)增強(qiáng)塊中,結(jié)果如圖2所示。
圖2 Pid管線塊寫入信息
9) 最后打印Pid管線表。
從Pid流程圖管線的處理過程可以看出,使用本文所介紹的方法,設(shè)計(jì)人員只需要在繪制Pid流程圖時(shí)填入少量且不涉及任何計(jì)算過程的基本信息,待繪制Pid流程圖結(jié)束后執(zhí)行相關(guān)的VBA程序,就可以完成管線號(hào)的自動(dòng)計(jì)算和寫入Pid流程圖管線信息,并根據(jù)需要選擇是否打印Pid管線表。
本文以Pid管線的處理過程為例,說明如何利用VBA協(xié)同AspenPlus、AutoCAD和Excel編制工藝包。從文中可以看出,采用這種方法,設(shè)計(jì)者只需要在繪制流程圖時(shí)選用合適的增強(qiáng)塊,并填入一些基本信息,在繪圖完成后,點(diǎn)擊相應(yīng)的功能按鈕即可完成所有信息的獲取、計(jì)算、寫入。
利用VBA協(xié)同AspenPlus、AutoCAD和Excel編制工藝包的方法,使設(shè)計(jì)者有足夠的時(shí)間和精力專注于工藝流程設(shè)計(jì)和優(yōu)化,擺脫查找信息、計(jì)算各種數(shù)據(jù)、制作管線表、修改Pid流程圖等繁重且不斷重復(fù)的工作;極大地提高設(shè)計(jì)工作者的勞動(dòng)效率,減少人工投入,大量節(jié)省工藝包設(shè)計(jì)所需要的時(shí)間;節(jié)省在購買商業(yè)軟件方面的經(jīng)濟(jì)投入。
可以預(yù)見的是,越是大型項(xiàng)目,信息量越多,使用VBA協(xié)同AspenPlus、AutoCAD和Excel設(shè)計(jì)工藝包的方法節(jié)省的時(shí)間和人工越多,效果越明顯,因此,該方法具有較大的推廣價(jià)值。