1 引言
國內外有多種基于PC機WINDOWS操作系統的監控組態軟件,美國Wonderware公司的FactorySuite軟件是其中之一,它由InTouch,InControl,I/O Server,IndustrialSQL Server,InTrack,InBatch,SuiteVoyager等組件構成。本文僅介紹了其中的InTouch、InControl和I/O Server三種組件及其應用開發方法,并列舉了實現連續控制、邏輯控制和順序控制的應用實例。
InTouch是過程監視組件,采用面向對象的圖形開發環境,便于高效、快捷地組態人機界面(MMI)。用于開發形象直觀、圖文并茂的操作監控畫面、實時和歷史數據曲線。
InControl是實時控制組件,支持邏輯梯形圖(LD)、順序功能圖(SFC)和結構文本(ST)等組態方式,也提供了PID控制及運算模塊的組態功能。用于開發連續控制、邏輯控制和順序控制策略。
I/O Server是過程輸入輸出接口驅動程序,負責對物理接口的直接訪問,實現該監控組態軟件與硬件設備的數據交換。根據不同的硬件設備,選用相應的I/O驅動程序,用于實時數據的通信。
另外還提供了SuiteLink通信協議和OPC(OLE for Process Control)功能,具有靈活性與擴展性。
2 監控系統的設計
監控系統的設計包括人機界面設計、控制策略設計、人機界面與控制策略的通信。
2.1 人機界面設計
人機界面的組態和運行分別由InTouch中的WindowMaker和WindowViewer完成。WindowMaker是一個應用開發環境,用來建立窗口圖形界面,定義I/O的連接。主要功能有操作監控畫面的組態和數據點的組態,定義數據的類型和范圍、報警和事件等。
WindowViewer是一個實時運行環境,運行操作監控畫面。各種實時和歷史數據、動態鏈接和動畫顯示,都只有在WindowViewer運行時才能生效[3]。
2.2 控制策略設計
控制策略的組態和運行由InControl實現,提供與IEC61131-3兼容的三種組態編程方式。
(1) 邏輯梯形圖。通過對開關、觸點、線圈和算法功能塊的編輯,描述并實現邏輯控制功能。
(2) 順序功能圖。通過對有方向的流程框圖和算法功能塊的編輯,描述并實現順序控制功能。
(3) 結構化文本。用腳本(script)語言編程,可以實現復雜控制算法。
以上三種基本的組態編程方式可以綜合使用,例如用腳本語言實現邏輯梯形圖中的功能塊或順序功能圖中的一些步驟等。
除了以上幾種組態編程方式,InControl還提供了符合ActiveX Server 規范的工廠對象編輯器FOE (Factory Object Editor),提供了幾種常用的FOE模塊,包括PID模塊、模擬報警模塊等,另外用戶還可以向工程中添加ActiveX控件。
組態完成的算法程序以工程的方式存儲,并在Runtime Engine上周期性地運行。Runtime Engine是InControl工程的運行平臺,其他應用程序與InControl通信時,也是直接從Runtime Engine中獲取數據。
2.3 人機界面與控制策略的通信
InTouch與InControl之間的通信方式主要有DDE方式和SuiteLink協議兩種。
本應用系統采用SuiteLink協議。數據通信配置的方法是,在InTouch的數據點組態過程中,將需要與InControl通信的變量定義為I/O類型,然后在訪問名中設置應用名為RTEngine,主題名為TagName,項目名為所要監視的變量名稱。項目名稱的選取遵循以下原則,對于InControl中的全局變量,直接使用InControl中的變量名;對于InControl中的局部變量,使用模塊名.變量名的方式,如模塊名為PID,變量名為PV,則項目名稱為PID.PV;如果是用戶自定義數據類型,則項目名稱為用戶自定義類型.變量名,例如用戶自定義類型名稱為Device,需要監視的變量為Level,那么項目名為Device.Level。
3 應用實例
本文用InTouch、InControl和I/O Server三種組件,實現了連續控制、邏輯控制和順序控制。
3.1 連續控制實例
圖1 貯罐液位的操作監控畫面
貯罐液位的連續控制如圖1所示,上有進口閥門,下有出口閥門,采用單回路PID控制。其應用開發的方法與步驟如下:
(1) 定義I/O點。根據應用要求確定所需參數和I/O點,并在InTouch標記名字典中為每個變量定義標記名和類型,如表1所示。其中所有I/O類型的標記名,將要與InControl變量進行數據交換。
表1 貯罐液位單回路PID控制的I/O標記名
(2) 設計操作監控畫面。在InTouch中組態畫面,如圖1所示,其中有設備圖、PID控制器面板、PID參數設置按鈕、趨勢曲線按鈕、報警按鈕等[1],并對圖形對象和已定義的標記名建立動畫鏈接關系,規定動畫屬性。定義各個按鈕的動作屬性,單擊PID參數設置按鈕后彈出軟鍵盤,進行PID參數設置。實時和歷史趨勢曲線以及報警均采用InTouch提供的模板。
(3) 組態控制策略。在InControl中組態單回路控制,其中PID控制算法由工廠對象(Factory Object)中的PID模塊實現。通過填寫對話框,可以對PID控制器的被控量PV、設定值SP、輸出值、控制參數等進行組態。另外可以用腳本語言直接對參數進行賦值,例如,用PID.SP=80給SP賦值。
(4) 建立InTouch和InControl之間的數據交換鏈接。在InTouch的標記名字典中,通過設置訪問名和項目名,利用SuiteLink通信協議,可以將InTouch中的標記名與InControl中的變量鏈接起來,如表1所示。建立鏈接后,在InTouch中調整相應的數據,InControl中對應的數據會發生同步的變化,反之亦然。
上述四步完成應用開發,再運行InTouch中的WindowViewer和InControl,操作員通過畫面(如圖1所示)進行操作監控。調整P,I,D參數,直至滿足控制要求[2]。
3.2 邏輯控制實例
圖2 燃油鍋爐的操作監控畫面
表2 燃油鍋爐邏輯控制的I/O標記名
燃油鍋爐的邏輯控制如圖2所示,燃油經預熱器預熱,由噴油泵經噴油嘴噴射到爐膛內燃燒。首先用點火器點燃煤氣,再點燃油,并用火焰檢測器監視燃油火焰。為了保證燃油鍋爐的安全穩定地運行,其點火、燃燒、停火清爐都必須嚴格地按要求進行。具體的工藝流程如下:
點火過程:首先燃油預熱90秒,鼓風機送風,點火器接通點火,煤氣閥打開點燃煤氣(子火),子火燃燒60秒;然后打開噴油泵,點燃燃油(母火),母火燃燒40秒;最后關閉點火和子火,母火繼續,進入持續燃油階段。
持續燃油:此階段用火焰檢測器監視母火,一旦滅火立即進入停火清爐階段。
停火清爐:首先關閉燃油預熱器和噴油泵,并繼續送風80秒,將鍋膛內廢氣和雜質吹掃干凈;然后關閉鼓風機,停止清爐。
異常處理:異常事件有母火滅火、蒸汽壓力過高、水位高于上限或低于下限。一旦出現異常事件,立即進入停火清爐階段。異常事件消失后,按啟動按鈕又自動點火,重新進入正常燃燒階段。
根據應用要求確定所需參數和I/O點,并在InTouch標記名字典中為每個變量定義標記名和類型,如表2所示。另外定義定時器T1(燃油預熱90秒)、T2(子火燃燒60秒)、T3(母火燃燒40秒)和T4(吹掃80秒),均為內存整型變量類型。
根據燃油鍋爐的工藝流程,在InTouch中設計圖2所示的操作監控畫面。操作員可以操作ON/OFF開關、進水和出水閥,畫面上有參數顯示和狀態顯示。
根據燃油鍋爐邏輯控制要求,在InControl中用邏輯梯形圖(LD)組態工具,進行邏輯控制組態,如圖3所示。這些符號可以從邏輯梯形圖(LD)工具條中拖至開發界面,構成邏輯控制。
圖3 燃油鍋爐的邏輯控制梯形圖
3.3 順序控制實例
燃油鍋爐配套的油料罐如圖4所示,上、下分別安裝了液位測量開關LH和LL,用兩臺進料泵P1和P2進油。當液位低于低限LL(LL=1,LH=1)時,兩臺進料泵P1和P2同時運行,以便盡快使液位上升到正常液位;當液位在高低限值范圍內(LL=0,LH=1),即液位L處于LH和LL之間(LL<L<LH),液位為正常,只有一臺泵運行,而且采用交替運行的方式,即上次是泵P1運行,下次在一臺泵運行時應是泵P2運行,反之交替,依次循環;當液位高于高限LH(LL=0,LH=0)時,兩臺進料泵都停止。
類似于前面的例子,根據應用要求確定所需參數和I/O點,在標記名字典中為每個變量定義標記名和類型。根據油料罐的工藝流程,在InTouch中設計人機界面;在InControl中用順序功能圖(SFC)組態工具,進行油料罐的順序控制功能組態,如圖4(b)所示。圖中用方框表示步(Step)和命令(Command),框內寫步號和命令,步框和命令框之間用短水平線連接。步框之間用垂直線連接,再在垂直線上用短水平線表示轉換,其旁寫轉換條件,用邏輯式表示。這些符號可以從順序功能圖(SFC)工具條中拖至開發界面,構成順序控制。
順序功能圖4(b)由上、下兩部分組成。上選擇序列由步1,6,2組成,下選擇序列由步4,3,5組成。每個步對應一個命令,運行或停止進料泵。為了滿足兩臺進料泵交替運行,設置了步2和步5的交替功能命令。步3和步6使另一臺進料泵運行,即兩臺進料泵同時運行。步1和步4使其中一臺進料泵停止。
圖4 油料罐的順序控制功能圖
4 總結
本應用系統利用了FactorySuite軟件中的InTouch,InControl和I/O Server,實現了貯罐液位連續控制、燃油鍋爐的邏輯控制和油料罐的順序控制,控制效果良好,受到用戶好評。