王存佐,關(guān)兆鵬
(天津堿廠(chǎng)機(jī)電中心儀控運(yùn)行部,天津 300450)
天津堿廠(chǎng)丁辛醇項(xiàng)目的DCS采用的是美國(guó)Honeywell公司的PKS系統(tǒng)。
PKS系統(tǒng)是由 Honeywell公司在 TDC2000、TDC3000、TPS和Plantscape系統(tǒng)的基礎(chǔ)上,采用世界先進(jìn)技術(shù)而推出的。PKS是英文Process Knowledge System的第一個(gè)字母組成,稱(chēng)為過(guò)程知識(shí)系統(tǒng)。PKS系統(tǒng)的核心是基于開(kāi)放且功能強(qiáng)大的Microsoft公司的Windows server 2003服務(wù)器/客戶(hù)系統(tǒng),它由高性能的控制器、先進(jìn)的工程組態(tài)工具、開(kāi)放的控制網(wǎng)絡(luò)等組成。利用服務(wù)器的高速動(dòng)態(tài)緩存區(qū)采集實(shí)時(shí)數(shù)據(jù),提供報(bào)警、顯示、歷史數(shù)據(jù)采集、報(bào)表報(bào)告等功能。PKS一般由服務(wù)器(Server)、工作站(Station)、控制器(C300)和實(shí)時(shí)冗余容錯(cuò)以太網(wǎng)(FTE)網(wǎng)絡(luò)組成,服務(wù)器的操作系統(tǒng)為美國(guó)微軟公司的英文Windows server2003,工作站安裝微軟公司的英文Windows XP操作系統(tǒng),支持中文顯示。
丁辛醇分廠(chǎng)設(shè)計(jì)2臺(tái)服務(wù)器、7臺(tái)操作站、一臺(tái)FDM站、一臺(tái)ESD操作站兼工程師站、一臺(tái)壓縮機(jī)操作站、4對(duì)控制器、1對(duì)防火墻(主要目的阻止垃圾數(shù)據(jù)傳輸)、1對(duì)交換機(jī)、1對(duì)Tserver服務(wù)器、還有AIAODIDO卡件等ESD設(shè)備。網(wǎng)絡(luò)通訊通過(guò)FTE容錯(cuò)以太網(wǎng),但三方通訊通過(guò)Tserver服務(wù)器完成。系統(tǒng)硬件簡(jiǎn)要圖見(jiàn)圖1。
圖1 系統(tǒng)硬件圖
此次丁辛醇自動(dòng)化改造工程,主要運(yùn)用已有點(diǎn)進(jìn)行邏輯重組,包括模擬量輸入,模擬量輸出,聯(lián)鎖等回路搭建。設(shè)計(jì)原理是當(dāng)公用系統(tǒng)不穩(wěn)定時(shí),根據(jù)各工段用氣情況,進(jìn)行微調(diào)處理達(dá)到工藝工況穩(wěn)定。并根據(jù)工藝提供數(shù)值進(jìn)行參數(shù)設(shè)計(jì),再根據(jù)實(shí)時(shí)工況進(jìn)行參數(shù)修改。
目前丁辛醇分廠(chǎng)對(duì)工藝影響最大的就是蒸汽,由于外界蒸汽壓力波動(dòng)很大,會(huì)造成生產(chǎn)工況不穩(wěn)定,產(chǎn)品不合格。改變這種狀況目前思路是當(dāng)蒸汽壓力波動(dòng)時(shí),各個(gè)工段再沸系統(tǒng)調(diào)節(jié)開(kāi)度改變(只有在手動(dòng)情況下遵循調(diào)節(jié),在自動(dòng)情況下遵循自調(diào)。并且當(dāng)壓力升高或是減少0.01MPa時(shí),調(diào)節(jié)閥門(mén)對(duì)應(yīng)開(kāi)增加或是減小0.1開(kāi)度,并且有一定區(qū)間范圍,超過(guò)一定區(qū)間調(diào)節(jié)閥最大輸出。)。當(dāng)蒸汽溫度波動(dòng)時(shí),各工段再沸系統(tǒng)調(diào)節(jié)開(kāi)度改變(只有在手動(dòng)情況下遵循調(diào)節(jié),在自動(dòng)情況下遵循自調(diào)。并且當(dāng)溫度升高或是減少10℃時(shí),調(diào)節(jié)閥門(mén)對(duì)應(yīng)開(kāi)增加或是減小0.1開(kāi)度,并且有一定區(qū)間范圍,超過(guò)一定區(qū)間調(diào)節(jié)閥最大輸出。)
根據(jù)以上條件筆者做出溫度控制邏輯條件如圖2所示。
調(diào)節(jié)閥門(mén)在投手動(dòng)時(shí),調(diào)節(jié)閥門(mén)遵循次直線(xiàn)方程。并且在蒸汽溫度波動(dòng)時(shí),最大調(diào)節(jié)范圍0.3~0.3之間。根據(jù)筆者歸納圖形可得方程為:y=kx+b,換算可得y=100x。
圖2 溫度控制邏輯圖
圖3 壓力控制邏輯圖
根據(jù)以上條件筆者做出壓力控制邏輯條件如圖3所示。
調(diào)節(jié)閥門(mén)在投手動(dòng)時(shí),調(diào)節(jié)閥門(mén)遵循次直線(xiàn)方程。并且在蒸汽溫度波動(dòng)時(shí),最大調(diào)節(jié)范圍0.3~-0.3之間。根據(jù)筆者歸納圖形可得方程為:y=kx+b、換算可得y=0.1x。
下位設(shè)計(jì)思路主要滿(mǎn)足一下幾個(gè)方面:1)此功能要在控制面板上做出投用和解除按鈕。2)此功能投用時(shí)要滿(mǎn)足必須是手動(dòng)情況下才可以投用。3)在投用時(shí)要顯示最后更改的參數(shù)。根據(jù)以上的條件與邏輯筆者規(guī)劃幾個(gè)功能塊:1)FANOUTA這個(gè)功能塊主要實(shí)現(xiàn)一路輸出變?yōu)閮陕份敵?,因?yàn)樵谙乱粋€(gè)FANOUTB中不能共用同一個(gè)功能管腳。2)FANOUTB這個(gè)功能塊主要是做線(xiàn)性曲線(xiàn)公式(這個(gè)公式來(lái)源就3.2中兩個(gè)邏輯圖。3)AUXCALCA這個(gè)功能塊主要完成筆者所有功能計(jì)算以及運(yùn)算結(jié)果功能(由于內(nèi)部計(jì)算涉及機(jī)密內(nèi)容在這里就不詳細(xì)介紹)。4)SWITCHA這個(gè)功能塊主要完成切換功能,功能投用時(shí)選擇1回路,功能不投用時(shí)選用2回路。5)AN功能塊主要實(shí)現(xiàn)功能是在上位機(jī)控制面板上筆者會(huì)做一按鈕和筆者的手動(dòng)作邏輯,來(lái)判斷是選擇第一回路還是二回路。邏輯組態(tài)圖如圖4。
圖4 邏輯組態(tài)圖
部分重要功能塊詳細(xì)說(shuō)明:
①切換塊作為單極八位旋轉(zhuǎn)式開(kāi)關(guān)用于八種初始化輸入和操作。開(kāi)關(guān)位置可以通過(guò)操作員一個(gè)應(yīng)用程序或另一個(gè)功能塊改變。如圖5所示。
圖5 SWITCH切換塊圖
圖6 AUXSUMMER輔助加法器圖
用戶(hù)可以通過(guò)TRACKING選項(xiàng)強(qiáng)制非選擇輸入跟蹤選擇輸入:如打開(kāi)TRACKING,切換塊就持續(xù)初始化未經(jīng)選擇輸入。如打開(kāi)TRACKING,切換塊就持續(xù)初始化未經(jīng)選擇輸入。也就是在每一個(gè)循環(huán)周期,此開(kāi)關(guān)要求初始化非選擇要素并使其輸出達(dá)到選擇輸入值。無(wú)論是否打開(kāi)還是關(guān)閉TRACKING,該塊可通過(guò)一個(gè)浮動(dòng)偏置進(jìn)行無(wú)擾切換輸出。
切換塊的功能:該切換塊可使用戶(hù)從八個(gè)里面選擇一個(gè)輸入和一個(gè)選擇輸出值。選擇一個(gè)輸入的三種方法如下:方程式A:儲(chǔ)存輸入的一個(gè)數(shù)值選擇SELXINP。方程式B:打開(kāi)選擇標(biāo)記(SELXFL[1..8])的其中一個(gè)。每個(gè)標(biāo)記對(duì)應(yīng)一個(gè)輸入。切換塊關(guān)閉所有其它標(biāo)記并更新SELXINP。方程式C:用戶(hù)可重新設(shè)置或安排選擇標(biāo)記(SELXFL[1..8])的其中一個(gè)。塊不能改變其它任何一個(gè)標(biāo)記。相反,它能以升序(1 to 8)控制所有標(biāo)記并選擇打開(kāi)第一標(biāo)記。
用戶(hù)可以應(yīng)用該塊來(lái)分配一個(gè)不同主塊到一個(gè)二次塊。以下配置實(shí)例圖展示了五個(gè)PID主塊與一個(gè)SWITCH塊連接。通過(guò)打開(kāi)相應(yīng)SELXFL[1..5]輸入或儲(chǔ)存SELXINP輸入的適當(dāng)數(shù)字來(lái)選擇激活初級(jí),以及根據(jù)塊SWITCH方程式的選擇來(lái)選擇。SELXINP參數(shù)要求一個(gè)整數(shù)式并經(jīng)常通過(guò)操作符設(shè)定。默認(rèn)SELXINP值為1而且直到控制模塊制止切換及主塊在監(jiān)控模式下至少激活一次時(shí)才能改變。
②A(yíng)UXSUMMER (輔助加法器)模塊
AUXSUMMER (輔助加法器)模塊用以配置最多10個(gè)獨(dú)立輸入,對(duì)經(jīng)比例縮放或有偏差的過(guò)程變量(PV)值進(jìn)行計(jì)算。輸入和PV值均可采用狀態(tài)信息。用戶(hù)可通過(guò)配置定義每個(gè)輸入的比例因子、偏差值和說(shuō)明。也可選擇禁用某個(gè)輸入。所有輸入默認(rèn)為啟用。如圖6所示。
AUXSUMMER模塊的功能:該模塊采用下面的等式基于最多10個(gè)配置輸入計(jì)算出PV值。
AUXSUMMER模塊會(huì)從其他功能塊取值,在控制模塊的每個(gè)執(zhí)行周期確定它們的狀態(tài)。其對(duì)最多10個(gè)表達(dá)式求值并確定狀態(tài)。在對(duì)PV的總比例因子(CPV)參數(shù)和PV的總偏差系數(shù)(DPV)參數(shù)的輸入和配置輸入進(jìn)行計(jì)算后,根據(jù)結(jié)果推導(dǎo)出PV和PV狀態(tài)。
用戶(hù)也可選擇禁用輸入(PENABLE[1..10]),并為禁用輸入定義替換值(PSUB[1..10])。
③FANOUT塊
描述FANOUT塊有1路輸入和最多8路可初始化的輸出。同時(shí),它還可能有最多8路二次輸出,因?yàn)槊柯房沙跏蓟敵鼍陀幸宦范屋敵?。用?hù)可以分別指定每路輸出的增益、偏置和輸出率。每個(gè)指定值可能是固定值或外部值。固定值依靠手動(dòng)存儲(chǔ)或程序存儲(chǔ),而外部值來(lái)自另一個(gè)功能塊。此塊將分別計(jì)算,初始化或模式轉(zhuǎn)換后的每路輸出的浮動(dòng)偏置值。這為每路輸出提供了“無(wú)擾”轉(zhuǎn)換。其圖形7如下。
圖7 FANOUT塊
FANOUT塊需要一路輸入,即X1:
·X1必須為來(lái)自于另一個(gè)塊的可初始化輸入(無(wú)法由操作符或程序設(shè)置)。
·用戶(hù)必須為X1指定一個(gè)工程單位范圍(XEUHI和XEULO)。該塊不適合進(jìn)行范圍檢查。它假定X1在規(guī)定范圍內(nèi)。
·XEUHI和XEULO定義X1的滿(mǎn)刻度:
-XEUHI表示100%的滿(mǎn)標(biāo)值。
-XEULO表示0%的滿(mǎn)標(biāo)值。
注意
FANOUT塊:
·有1路輸入和多達(dá)8路可初始化輸出;
·有一個(gè)主塊和最多8個(gè)次塊。
CAScade模式轉(zhuǎn)換為MANual模式時(shí),它要求主塊進(jìn)行初始化。
輸出FANOUT塊最多有8路可初始化輸出,如下:
·OP[1~8]=計(jì)算的輸出,以百分?jǐn)?shù)表示。
·OPEU[1~8]=計(jì)算的輸出,以工程單位表示。
可初始化的輸入和輸出
“可初始化的輸入”和“可初始化的輸出”與數(shù)據(jù)類(lèi)型或訪(fǎng)問(wèn)級(jí)別類(lèi)似,都是屬性變項(xiàng)。具有“可初始化”屬性的參數(shù)有相關(guān)的BACKCALC參數(shù),建立可初始化輸入和可初始化輸出之間的連接的同時(shí),用戶(hù)還能建立其BACKCALC連接。ControlBuilder自動(dòng)建立需要的BACKCALC連接,因此用戶(hù)不必手動(dòng)創(chuàng)建。這些“隱式”建立的連接已“隱藏”不可見(jiàn),有關(guān)的參數(shù)引腳也不會(huì)顯示在控制表中。
例如,若用戶(hù)將FANOUT塊的OP連接到AUTOMAN塊或AOCHANNEL塊上,Control Builder將自動(dòng)創(chuàng)建 BACKCALCOUT與BACKCALCIN的連接。
·對(duì)于指定的次塊,可創(chuàng)建至OP或OPEU的連接,但不能同時(shí)創(chuàng)建這兩個(gè)連接。(顯示默認(rèn)的OP連接,但有需要時(shí),隱式/隱藏連接功能將自動(dòng)連接到值/狀態(tài)參數(shù)(OPX/OPEUX)上。)
·可分別指定每路輸出的增益和偏置。
·FANOUT塊用于給每路輸出應(yīng)用單獨(dú)的浮動(dòng)偏置。
·可給增益限值配置負(fù)值,以便能使用負(fù)增益進(jìn)行反向輸出。
·FANOUT塊通過(guò)BACKCALC向主塊提供X1的輸入范圍(XEUHI/XEULO)。主塊將它用于其輸出范圍(CVEUHI/CVEULO)。
輸出范圍
·CVEUHI[1~8]和 CVEULO[1~8]定義每路指定輸出的CV工程單位滿(mǎn)標(biāo)度。
-FANOUT塊不會(huì)通過(guò)保持每路輸出的單獨(dú)CV范圍,分離每路輸出的范圍,此類(lèi)范圍將追蹤相應(yīng)次塊的輸入范圍。
-每路輸出的CV范圍須與每個(gè)次塊的輸入范圍相同。FANOUT塊獲得每個(gè)次塊的輸入范圍(通過(guò)BACKCALC),并將其存儲(chǔ)為相應(yīng)的CV范圍。結(jié)果,每路輸出可能有一個(gè)不同的CV范圍。例如,F(xiàn)ANOUT塊使其輸出OP[1]和OP[2]分別與塊PID1和PID2連接。它獲得PID1和PID2的輸入范圍,分別將其OPX[1]和OPX[2]的CV范圍設(shè)為此類(lèi)輸入范圍。
-FANOUT塊獲得次塊的輸入范圍時(shí),不考慮SECINITOPT(即不考慮是否會(huì)使用次塊的初始化和被覆蓋數(shù)據(jù))。
·OPHILM和OPLOLM將OP的正常上限值和下限值定義為CV范圍的百分?jǐn)?shù)。這些值為用戶(hù)指定值。相同的限值適用于所有的輸出。若算法計(jì)算出的結(jié)果(CV)超過(guò)了此類(lèi)限值,或其他功能塊或用戶(hù)程序試圖存儲(chǔ)一個(gè)超過(guò)它們的OP值,OP將保持在此類(lèi)限值水平。但是操作符可存儲(chǔ)此類(lèi)限值范圍以外的OP值。
·OPEXHILM和OPEXLOLM將OP的擴(kuò)展上限值和下限值定義為CV范圍的百分?jǐn)?shù)。這些值為用戶(hù)指定值。相同的限值適用于所有的輸出。操作符無(wú)法存儲(chǔ)超過(guò)此類(lèi)限值的OP值。
輸出偏置
把輸出偏置(OPBIAS)加到算法計(jì)算出的值(CV)上,結(jié)果存儲(chǔ)于CV中。然后根據(jù)OP限值檢查CV值,如果沒(méi)有超過(guò)限值,則復(fù)制CV到輸出。由于FANOUT塊最多可有八路輸出,所以每路輸出都有各自的確定輸出偏置。這表示,所述引用參數(shù)實(shí)際上是指向給定輸出。例如,OPBIAS[1]和CV[1]是指向OP[1],其他7路輸出(2到8號(hào))以此類(lèi)推。
OPBIAS是用戶(hù)指定的固定偏置(OPBIAS.FIX)和算出的浮動(dòng)偏置值(OPBIAS.FLOAT)之和。只要FANOUT塊是第一個(gè)可初始化的塊,初始化功能塊或轉(zhuǎn)換模式時(shí),浮動(dòng)偏置用于提供一個(gè)無(wú)擾切換。
·下列情況下,重新計(jì)算OPBIAS,以避免出現(xiàn)輸出擾動(dòng)。(注意當(dāng)其為第一個(gè)可初始化塊時(shí),在后兩種情況下,功能塊僅輸出OPBIAS.FLOAT。)
-功能塊啟動(dòng)時(shí)(即被激活時(shí))。
-功能塊初始化時(shí)(例如,次塊請(qǐng)求初始化時(shí))。
-模式轉(zhuǎn)換到級(jí)聯(lián)時(shí)(如適用于指定塊的情況)。
注意
由于計(jì)算輸出,手動(dòng)模式下,不使用OPBIAS。這表示轉(zhuǎn)換到手動(dòng)模式時(shí),不重新計(jì)算OPBIAS。
·僅在功能塊未激活或手動(dòng)模式下,方可設(shè)置OPBIAS值。這樣做是為了避免,修改偏置時(shí)產(chǎn)生輸出擾動(dòng)。設(shè)置OPBIAS值時(shí),將出現(xiàn)以下情況。
給輸入值設(shè)置總偏置(OPBIAS)和固定偏置(OPBIAS.FIX)。
浮動(dòng)偏置(OPBIAS.FLOAT)設(shè)為零。
注意
功能塊被激活,或轉(zhuǎn)換為級(jí)聯(lián)模式時(shí)(如適用于指定塊的情況),將重新計(jì)算OPBIAS和OPBIAS.FLOAT。
·設(shè)置OPBIAS值時(shí),沒(méi)有限值檢查。但是,給CV加上偏置后,應(yīng)比較結(jié)果與輸出限值,必要時(shí)可固定結(jié)果值。
·配置固定偏置(OPBIAS.FIX)的值,它不可能被浮動(dòng)偏置(OPBIAS.FLOAT)覆蓋。這表示,若用戶(hù)將OPBIAS.RATE配置為緩慢降低的OPBIAS.FLOAT,總偏置值最終將等于OPBIAS.FIX。
其中:
·若主塊接受該塊的初始化請(qǐng)求,則CV+OPBIAS.FIX應(yīng)與CVINIT同,而OPBIAS.FLOAT將為零。多數(shù)情況下,OPBIAS.FLOAT將為零。但是,若由于主塊是FANOUT塊,或它的配置為忽略初始化,而不接受該塊的初始化請(qǐng)求,則OPBIAS.FLOAT值非零。
若OPBIAS.FLOAT非零,用戶(hù)可通過(guò)OPBIAS.RATE參數(shù)將其配置為緩慢降低到零。
·用戶(hù)可通過(guò)配置OPBIAS.RATE,給OPBIAS.FLOAT加上斜率。僅在OPBIAS.FLOAT非零時(shí)適用。OPBIAS.RATE以每分鐘的工程單位數(shù)表示,可能為下列值零:
若OPBIAS.RATE為零,則計(jì)算OPBIAS.FLOAT值,并保證無(wú)擾切換。但是,若OPBIAS.FLOAT非零,它將不會(huì)緩慢降低。
-非零:
若OPBIAS.RATE非零,則計(jì)算OPBIAS.FLOAT值,并保證無(wú)擾切換。若OPBIAS.FLOAT非零,則按用戶(hù)為OPBIAS.RATE參數(shù)配置的速率,將其緩慢降低到零。
-功能塊每次執(zhí)行時(shí),通過(guò)下面的計(jì)算,將OPBIAS.FLOAT緩慢降至零。
其中:
OPBIAS.RATE“非數(shù)值”(NaN)時(shí),不計(jì)算 OPBIAS.FLOAT。這表示,若主塊不接受該塊的初始化值,將出現(xiàn)輸出擾動(dòng)。
上位系統(tǒng)設(shè)計(jì)就是滿(mǎn)足下位系統(tǒng)的要求,主要實(shí)現(xiàn)這樣幾個(gè)功能1)在畫(huà)面中能彈出控制面板,并且控制面板中有手動(dòng)/自動(dòng)切換、投用功能按鈕、PV/OP顯示、操作權(quán)限等功能。2)所有操作必須有歷史記錄,并且要進(jìn)事件記錄。3)所有顯示都要有歷史記錄。4)換面整齊美觀(guān)。
根據(jù)以上要求筆者對(duì)畫(huà)面進(jìn)行組態(tài)如圖8,腳本制作圖見(jiàn)圖9。
圖8 畫(huà)面組態(tài)圖
圖9 腳本制作圖
在上位包括組態(tài)與腳本制作,筆者通過(guò)查找資料獨(dú)自完成,在跟需要上位還會(huì)繼續(xù)修改。目前上位參數(shù)連接就不一一舉例,遵循原則就是用那個(gè)管腳就去引用管腳就可以。
在經(jīng)過(guò)一段時(shí)間投用,程序運(yùn)行十分穩(wěn)定。并且達(dá)到預(yù)期的效果,在波動(dòng)比較頻繁時(shí),由于操作工不能及時(shí)調(diào)節(jié)造成工況不穩(wěn)定請(qǐng)況大大消除,并且提高了產(chǎn)品質(zhì)量。這套系統(tǒng)的投用已經(jīng)得到預(yù)期的成果,在今后的工作中筆者會(huì)進(jìn)一步對(duì)程序不斷完善和微調(diào)經(jīng)行修改,來(lái)適應(yīng)更高要求。