聶安興
1 前言
中原大化集團復合肥廠(以下簡稱為復合肥廠)配料稱重系統是復合肥生產的中心環節,尿素、磷肥和鉀肥以及粘合劑的比例配比直接影響著成品的質量和效用。復合肥廠為提高工藝控制水平,精確配方,采用了PLC控制系統。
2 系統結構
復合肥廠控制系統,上位機采用SIEMENS工控機,CPU為P4 1.4G,128MDRAM,20GHD,20’CRT。下位機為一臺S7-400型PLC系統,帶11個8×13bit模擬量輸入模塊,9個8×14bit模擬量輸入模塊,6個32bit24VDC開關量輸入模塊。上位機與下位機通過MPI電纜連接。
現場的4~20mA和24VDC開關量標準信號進入S7-400,上位機通過MPI/DP通訊口從S7-400獲得數據。
3 組態軟件
該系統硬件均采用SIEMENS公司的產品,并采用SIEMENS公司的配套開發軟件,上位機用WinCC軟件組態,下位機用STEP 7編程實現。整個系統中,下位機實現保護、控制和數據采集的功能,上位機執行顯示、報警、存儲等功能。
WinCC系統組態編程中,Tag是核心概念,人們把它理解為一個外部數據,可以與下位機的一個內存地址單元同步更新,稱為外部Tag;也可以作為WinCC系統組態編程的一個全局變量,稱為內部Tag(Internal Tag)。因此,上位機與下位機的數據通訊是通過外部Tag來實現的,一個工藝參數就對應一個外部Tag,控制系統的大小就決定了外部Tag的多少。WinCC軟件根據外部Tag的最大數量分為128、512等不同版本,以適應不同情況,價格相差很大。筆者采用的是128Tag版本。
4 應用技巧
WinCC是一套功能非常強大的組態軟件,但它不可能滿足所有的要求。有些功能可以用編程技巧來實現。
4.1 多Tag傳送
當需要的工藝參數超過WinCC版本限制的Tag數目,可以用嵌入式C語言編程實現多個工藝參數打包成一個Tag傳送。
復合肥廠配料稱重系統有146個參數,超過了WinCC的128個Tag的限制,筆者用C語言編程解決了這一問題,基本思想就是把多個參數在下位機內存中連續排列,然后在WinCC中定義一個Tag,它的長度是多個參數之和,取得這個Tag后編程將其分成多個參數。
例如:下位機有兩個參數LTN44001和LTN44023,都是16位整數,分別存放在DD99.DW146和DD99.DW148。在WinCC中定義一個外部Tag,命名為PackageTag,類型為32位整數,并聯地址為DD99.DBD146,再定義兩個內部Tag,名為LTN44001和LTN44023,在 Global Script(全局腳本)中C語言編程如下:
Union
{
Long Dword;
Int Word[2];
}union;
Union.Dword=GetTagDword(“PackageTag”);
SetTagWord(“LTN44001”,Union.Word[0]);
SetTagWord(“LTN44023”,Union.Word[0]);
這樣,兩個參數LTN44001和LTN44023就通過一個Tag傳送上來了。理論上只要下位機內存足夠,可以傳送任意數量的參數而不受WinCC版本外部Tag數目的限制。
4.2 彈出窗口
在WinCC中的Graphics Designer 不能制作彈出窗口,這一功能可以按下列步驟來實現:
第一步:制作好彈出窗口的畫面。
第二步:在流程圖中準備彈出窗口的位置插入一個與彈出窗口畫面同樣大小的 Picture Window。
第三步:將Picture Window的Miscellaneous Picture Name 設為彈出窗口畫面。將其 Miscellaneous Display屬性與一個Binary類型的InternalTag 相關聯。
使這個 Binary Tag置1,彈出窗口;清0,彈出窗口消失。這樣就實現了彈出窗口的功能。另外,在第二步,可以將Picture Window置于另一層(Layer),使它不至于遮蓋住流程圖。
4.3 自動啟動
為了實現WinCC監控系統的自動運行,保證安全性,筆者希望上位機一啟動就進入組態的工藝畫面,而這一功能可以按下面的步驟實現:
第一步:將WinCC軟件的快捷方式放進WinNT StartProgram中的Startup菜單。
第二步:進入WinCC的Computer Properties設置窗口,點擊Graphies-Runtime菜單條,將Start Picture設為自動進入的畫面。
第三步:將WinCC置為Active狀態,然后退出WinCC。
再重新啟動,就可以自動進入工藝畫面。
4.4 禁止Windows系統熱鍵
WinCC是WinNT應用軟件,而WinNT是一個多任務操作系統。在WinCC運行過程中,如果啟動其它程序,可能對系統產生不良影響,所以必須禁止WinNT的系統熱鍵,防止發生這種狀況。
進入WinCC的Computer Properties設置窗口,點擊Parameters菜單條,在Disable Keys欄將Ctrl+Alt+Del、Alt+Tab、Ctrl+Esc、Alt+ Esc前的方框打勾,就可以在WinCC中禁止這些熱鍵,再結合前述的自動啟動的方法,可以保證計算機只能運行WinCC。
5 在WinCC組態編程中需注意的問題
(1) 在工藝畫面中用I/O Field(域)來顯示工藝參數,I/O Field與該工藝參數的Tag相關聯,設置關聯屬性時,有一項Update cycle(更新周期)非常關鍵。WinCC是通過MPI/DP通訊從下位機取得數據的,如果Update cycle取得過小,通訊負擔就很重,造成系統整體性能下降。所以,在滿足需要的前提下,可針對不同的工藝參數Tag,設置適當的Update cycle,比如溫度取20秒,壓力取5秒,流量取2秒等,以減輕通訊負荷。
(2) C語言編程時,如用到用戶編寫的函數,那么在調用該函數的程序中必須增加一條語句。
//include “APDEFAP.H”
否則,編譯時找不到該函數。
6 結語
WinCC軟件是一套功能強大的組態軟件,能夠用于多種用途的控制系統,同時提供嵌入式C語言編程,用戶可以通過編程實現特殊的功能。通過組態實踐,可以開發出更為有效、貼近現場工藝、更為人性化的監控系統。