丁 為
(中國石化上海石油化工研究院,上海 201208)
DCS在化工裝置中應用廣泛[1],JX-300XP是SUPCON WebField控制系統成功經驗的集成,是全數字化、結構靈活且功能完善的開放式DCS,它不僅提供了功能塊圖(SCFBD)及梯形圖(SCLD)等組態工具。[2,3],還提供了開發復雜高級控制算法諸如模糊控制的類C語言編程環境SCX,規模變換靈活,可以實現從一個單元的過程控制到全廠范圍的自動化集成,王君紅等在JX-300XP中利用SCX語言,設計了一種基于免疫系統存儲記憶原理的智能控制算法[4];云蘇和等運用Modbus通信協議實現了JX-300XP和S7-300PLC的通信[5]
JX-300XP在上海石油化工研究院的評價裝置中也成功應用。現以順序控制、分程控制、流量積算和比值控制4個典型程序的設計為例,介紹JX-300XP在評價裝置DCS程序設計中的應用。
上海石油化工研究院的評價裝置主要用于對新開發的產品、原料或技術進行指標考察和評估,因此工藝流程完整而且復雜,工藝流程每一步的執行都有嚴格的約束條件,在這種情況下,順控程序便成為評價裝置最常用的控制模式。
順控程序是針對順序控制系統編寫的程序,按照生產工藝預先規定的順序在各輸入信號的作用下,根據內部狀態和時間順序,各執行機構自動有序地進行操作[6,7]。順控程序的設計相對復雜[8]。在JX-300XP中,可以采用梯形圖和功能塊圖相結合的方式,在圖形編程環境的LD段落中進行編寫,使設計層次分明。
典型的順控程序監控組態界面如圖1所示,典型的順控程序不僅包括必要的執行步驟(如準備→進料→反應→出料),還包括程序啟停、步號設定、單步時間設定、運行時間累積及暫停時間累積等。

圖1 典型的順控程序監控組態界面
在SUPCON DCS的編程界面中,點擊“文件—新建程序段—梯形圖”,在“段類型”中選擇“程序”,點擊“確定”即可[9],如圖2所示。

圖2 新建程序段
步選擇程序如圖3所示,其中START為布爾變量,對應圖1中的“啟動”按鈕;STEP為有符號整型變量,表示當前要執行的步,對應圖1中的“設定步”;P12_2~P12_5為等于比較模塊,兩值相等則輸出為1;STEP1~STEP4為布爾變量。該段程序的功能是:當“啟動”按鈕按下,即START=1時,程序根據STEP的值,選擇相應的步執行,如,如果STEP=1則STEP1=1,程序執行第一步。

圖3 步選擇程序
步執行程序如圖4所示,PAUSE為布爾變量,對應圖1中的“暫停”按鈕;P13_59模塊為順控程序第一步要執行的內容;P13_50模塊為兩個布爾變量的“或”門;P13_44為計數器CTU模塊。該段程序的功能是:當設定步為1,且不處于暫停狀態,即STEP1=1且PAUSE=0時,順控程序執行第一步的內容,同時對第一步的運行時間進行累積。時間累積程序的設計思路:由于CTU模塊最大計數值為32 767,因此當程序運行在第一步,即STEP=1且計數值RUNTIME1<32767時,每經過一個CPU掃描周期(0.5s),RUNTIME1值增加1;當計數值RUNTIME1=32767時,CTU模塊的Q端輸出為1,即CLEAR=1,此時CTU模塊的復位端R=1,CTU模塊復位,累積時間清零;當程序沒有運行在當前步時,該步所運行的累積時間也要清零。綜合上述兩項,P13_49模塊的輸出端和常開觸點CLEAR采用P13_50模塊相“或”后接入CTU模塊的復位端R。

圖4 步執行程序
其他步執行程序的設計以此類推。
步轉移程序的設計如圖5所示,RUN_MIN1為組態界面中第一步的設定運行時間,以分鐘為單位;RUNTIME1為第一步程序的實際執行時間,以0.5s為單位;P13_61為整數型乘法模塊,P13_62為整數型大于比較模塊,P13_63為整數型賦值模塊。該段程序的設計思路:將組態界面中第一步設定時間(RUN_MIN1)和第一步實際運行時間(RUNTIME1)作比較,若實際運行時間達到設定時間,則將程序向下一步轉移;由于兩個參數單位不一致,因此將RUN_MIN1乘以120,轉換成以0.5s為單位的值后再與RUNTIME1進行比較。

圖5 步轉移程序
其他步轉移程序的設計以此類推。要注意的是,若編寫的是最后一步轉移程序,當實際運行時間達到設定運行時間后,需將程序跳轉到第一步,即把“1”值賦給STEP,以實現順控程序的循環運行。
運行時間轉換程序的設計如圖6所示,P17_2為整型轉浮點型模塊,P17_3為浮點數除法模塊;RUN_MIN11對應監控界面上用于顯示第一步運行時間的變量。由于RUN_MIN11的顯示是以分鐘為單位,而RUNTIME1是以0.5s為單位的整型數,因此RUNTIME1必須先轉換為浮點數,再除以120,才能得到RUN_MIN11的值。

圖6 運行時間轉換程序
其他運行時間轉換程序的設計以此類推。
暫停時間累積程序的設計如圖7所示,當“暫停”按鈕按下,即PAUSE=1時,CTU模塊開始對暫停時間進行累積,周期為0.5s;當計數值P_TIME>32767時,RESET置1,CTU模塊復位,計數值清零。P13_13和P17_14模塊則將計數值P_TIME轉換為以分鐘為單位的值在界面上顯示,轉換原理如圖6所示。

圖7 暫停時間累積程序
評價裝置復雜多變的工藝特性及其特殊的安全要求往往需要通過調節閥的分程控制來實現,分程控制使一個調節器同時控制兩個或兩個以上的調節閥,每個調節閥可根據工藝要求在調節器輸出的一段信號范圍內動作[10]。
分程控制的特點是[11]:改善調節品質,優化調節閥的工作條件;滿足開停車時小流量和正常生產時大流量的要求,使之都能有較好的調節質量;滿足正常生產和事故狀態下的穩定性和安全性。
在JX-300XP中,分程控制程序的設計需用到單回路調節模塊BSCX,該模塊是對在自定義回路中聲明的單回路進行定義,確定它的輸入輸出,組成一個控制回路。BSCX模塊如圖8所示,PV為半浮點型,是測量值;N為無符號整型,是回路序號;SwAM為布爾型,是手/自動開關;SV為半浮點型,是內給定值;MV為半浮點型,是輸出閥位。

圖8 BSCX模塊
分程控制程序的設計如圖9所示,實現的功能是:當MV的輸出為0%~A%時,控制V1的開度從0%~100%;當MV的輸出為A%~100%時,控制V2的開度從0%~100%。其中,P4_15、P4_19為乘法模塊;P4_16和P4_20分別為大于比較模塊和小于比較模塊;P4_18為減法模塊;P4_17和P4_21為選擇模塊。

圖9 分程控制程序
該程序的設計需要注意:第一方面是對控制每個閥門動作的調節模塊所輸出的信號范圍,編程時需要將其轉換為0%~100%,也就是說,當閥門輸出信號范圍的分界點為A%時,P4_15、P4_18和P4_19模塊的輸入參數應分別為1/A%、A%和1/(1-A%),比如,當A=20且MV=10%時,根據圖9運算關系得出V1=50%,V2=0%;當A=20且MV=60%時,根據圖9運算關系得出V1=100%,V2=50%,這樣便達到分程控制的要求。第二個方面是BSCX模塊中的PV、SV、MV的數據類型均是半浮點型,因此選用的運算模塊也必須是半浮點型。半浮點數是JX-300XP設計的一個特點,相對于32浮點數而言可節省一半的存儲空間[12]。
分程控制程序的執行通常需要和順控程序相結合,在順控程序中主要進行BSCX模塊手動/自動選擇和目標值的設置工作。具體程序設計如圖10所示,其中P14_14和P14_15分別是布爾型賦值模塊和半浮點型賦值模塊,P14_14通過給g_bsc[N].SwAM賦值為ON將BSCX模塊設為自動模式;P14_15是將目標設定值賦給BSCX模塊。需要注意:g_bsc[N]中參數N表示組態時所建立的回路編號,范圍是0~31;執行分程控制前,BSCX模塊必須設為自動模式;C/D=(測量值-測量下限)/量程,是無因次化處理后的半浮點數。

圖10 BSCX模塊手動/自動、目標值設置
流量積算在評價裝置中不可或缺,主要用于對現場液體及氣體等通過某一管道的瞬時流量在一定時間內進行累積。流量積算程序的設計根據流量計測量范圍的不同一般分為測量下限為0和測量下限非0兩種。
對于下限為0的累積對象,積算程序的設計相對簡單,如圖11所示,P19_1為累積模塊,其中y與accum使用同一變量,此變量以x即FI1.PV每秒的速度遞增,accum和x的量綱必須一致,x為半浮點型數據。FIQ1表示累積流量值,FI1.PV為瞬時流量值的半浮點數表示形式。

圖11 流量累積程序1
實際設計中可能會有流量計的測量范圍是A~B且A>0的情況,對此類流量值的累積,必須先將其測量范圍換算為0~B才能進行(換算公式[FI1.PV·(B-A)+A]/B)。程序如圖12所示。

圖12 流量累積程序2
需要注意的是,由于FI1.PV是無因次化處理后的半浮點數,故必須轉換為浮點數后再進行換算,換算完成后再將結果重新轉換為半浮點數參與流量累積。
比值控制程序的設計如圖13、14所示。評價

圖13 BSCX模塊手/自動設置
裝置在工藝上對物料配比有嚴格規定,比例一旦失調將影響生產或造成事故。實現兩個或兩個以上參數符合一定比例關系的控制系統即為比值控制系統。

圖14 比值控制回路
圖13中,BSCX模塊被設置為自動狀態,這是比值控制程序運行的必要條件,該步通常可放在順控程序中執行,利用MOVE模塊將BSCX的參數g_bsc[N].SwAM賦值為ON即可。
圖14中,參數x表示FIC1和FIC2按照x∶1的進料比例控制,A和B分別表示FIC1和FIC2的量程。由于FIC1.PV為半浮點數,因此同樣需要轉換為浮點數后參與運算,運算完成后再重新轉換為半浮點數賦給BSCX模塊的SV引腳,作為設定值輸入。
以上4個例子代表性地體現了JX-300XP在評價裝置DCS程序設計中的具體應用,這些程序經過上海石油化工研究院評價裝置的充分驗證,運行穩定可靠,完全滿足控制要求,且易于調試和維護。JX-300XP為設計人員提供了功能強大的高級語言程序設計平臺[13]。在理解和掌握這些設計思路和實現方法的基礎上,針對不同的控制對象和控制要求,可進行靈活調整;同時,這些思路和方法對于其他型號的DCS設計同樣具有借鑒意義。
[1] 王勝潮,張允站,李小平,等.FCC裝置沉降器直接耦合式旋風分離技術的應用[J].化工機械,2014,41(1):114~116.
[2] 秦緒香,吳智賢.基于JX-300XP DCS的催化裂解裝置兩機組改造[J].化工自動化及儀表,2011,38(6):747~750.
[3] 柳玉松.JX-300X在磷酸一銨裝置中的應用[J].石油化工自動化,2003,39(5):66~67.
[4] 王君紅,劉寶,瞿虎,等.免疫智能控制算法在JX-300 DCS中的應用[J].化工自動化及儀表,2009,36(3):73~75.
[5] 云蘇和,陳健,劉彥芳,等.JX-300XP和S7-300PLC的數據通信[J].化工自動化及儀表,2011,38(8):1023~1024.
[6] 黃靜雯.大型化工裝置控制系統設計[J].石油化工自動化,2013,49(7):10~13.
[7] 黃步余.分散型控制系統在工業過程控制中的應用[M].北京:中國石化出版社,1994.
[8] 唐玉玲.延遲焦化過程間歇操作順序控制系統開發[J].自動化儀表,2013,34(5):36~39.
[9] 浙江中控技術有限公司培訓中心.WebField JX-300XP教材[M].杭州:浙江中控技術股份有限公司,2009.
[10] 雷軍霞,王赟.分程控制在DeltaV系統中的應用[J].化工自動化及儀表,2013,40(8):1068~1069.
[11] 陸德民,張振基,黃步余.石油化工自動控制設計手冊[M].北京:化學工業出版社,2000.
[12] 朱國良,孫志明,鮑峰.DCS圖形化編程教程[M].杭州:浙江中控技術股份有限公司,2006:30~37.
[13] 王德康,王為民,裘坤,等.集散控制系統嵌入式實時高級語言的設計與實現[J].化工自動化及儀表,2001,28(1):41~46.