摘 要:本文概要地介紹了組態(tài)軟件WinCC,并通過對中厚板軋機(jī)過程設(shè)定計(jì)算的描述詳細(xì)地介紹了Globe Script使用方法,展現(xiàn)了Global Script的強(qiáng)大后臺功能。
關(guān)鍵詞:組態(tài)軟件;WinCC;Global Script;過程機(jī)
1. WINCC監(jiān)控軟件
1.1 WinCC的外部結(jié)構(gòu)
WINCC4.02版本也是德國SIEMENS公司系列軟件之一,它不但具有較強(qiáng)大的組態(tài)監(jiān)控功能,而且具有靈活方便的后臺運(yùn)算功能以及自成一體的數(shù)據(jù)庫管理功能,主要體現(xiàn)在以下兩個(gè)方面。
1) Tag Management 用于管理內(nèi)部標(biāo)簽和外部標(biāo)簽,內(nèi)部標(biāo)簽作為工程的內(nèi)部變量,外部標(biāo)簽是上位機(jī)和下位機(jī)PLC進(jìn)行數(shù)據(jù)交換的過程變量;
2) 在Editor工具中主要有下面幾種開發(fā)環(huán)境:
(1) Graphics Designer用于設(shè)計(jì)監(jiān)控界面圖;
?。?) Alarm Logging 用來實(shí)現(xiàn)報(bào)警信息的記錄;
(3) Tag Logging 用于實(shí)現(xiàn)標(biāo)簽值的實(shí)時(shí)記錄與歸檔以及實(shí)時(shí)監(jiān)視的趨勢曲線;
?。?) User Archive 用于用戶數(shù)據(jù)庫的管理工作;
?。?) Global Script用于加入用戶程序,通過各種觸發(fā)方式來完成過程運(yùn)算及控制。
1.2 Global Script功能與組成
由于組態(tài)軟件的圖形編輯、報(bào)警及趨勢等功能都是大同小異,本文不做詳細(xì)介紹,而后臺腳本卻有較大的差別。Global Script即全局腳本,擁有全局變量的特點(diǎn),即為整個(gè)程序中隨時(shí)隨處可以調(diào)用的全局函數(shù)。Global Script基于類C語言,除了具備C語言的內(nèi)核外,Siemens還開發(fā)了針對WinCC的各種函數(shù)庫。由以下四部分組成。
1.Project Functions
稱為項(xiàng)目函數(shù),由用戶根據(jù)需要創(chuàng)建,可以是主過程或主函數(shù),也可以是子過程或子函數(shù)。創(chuàng)建函數(shù)或過程時(shí),需要加頭文件“apdefap.h”。
2.Standard Functions
稱為標(biāo)準(zhǔn)函數(shù),是Siemens公司自開發(fā)函數(shù),提供了對報(bào)警、圖形、標(biāo)簽記錄、WINCC、WINDOWS、用戶歸檔數(shù)據(jù)庫等操作的函數(shù)。供所有程序調(diào)用,用戶也可以在此處開發(fā)常用函數(shù),也可改變現(xiàn)有的標(biāo)準(zhǔn)函數(shù)。
3.Internal Functions
稱為內(nèi)部函數(shù),在c_bib函數(shù)庫中羅列了源于C語言標(biāo)準(zhǔn)庫的函數(shù),同時(shí)給出了操作標(biāo)簽的讀出和寫入、圖形對象屬性及視窗控制中心等函數(shù)。供所有程序調(diào)用,但不能創(chuàng)建和改變內(nèi)部函數(shù)。
4.Actions
稱為動作,是創(chuàng)建執(zhí)行程序的腳本,可以調(diào)用項(xiàng)目函數(shù)及標(biāo)準(zhǔn)函數(shù)中的任何函數(shù)。它有兩種觸發(fā)方式:一種是時(shí)間觸發(fā),分為定時(shí)觸發(fā)和周期觸發(fā)。定時(shí)觸發(fā)是根據(jù)需要在某一特定的時(shí)刻觸發(fā)程序運(yùn)行;周期觸發(fā)是在某一定長時(shí)間內(nèi)周期性地觸發(fā)程序運(yùn)行。另一種是標(biāo)簽觸發(fā),當(dāng)被設(shè)定為觸發(fā)標(biāo)簽的標(biāo)簽值有變化時(shí)觸發(fā)程序。一般情況下盡可能選擇標(biāo)簽觸發(fā),以減輕CPU的負(fù)擔(dān)。
2. 中厚板軋機(jī)過程機(jī)的任務(wù)
依據(jù)原料、產(chǎn)品的要求以及實(shí)際的軋制工藝、設(shè)備條件,制定合理的壓下規(guī)程,在軋制設(shè)備允許的條件下,實(shí)現(xiàn)制定的溫度制度和變形制度,保證軋制產(chǎn)品的外形尺寸和內(nèi)部的冶金質(zhì)量,這是軋制工藝規(guī)程計(jì)算的基本任務(wù)。所以軋制工藝規(guī)程計(jì)算是軋制過程得以順利進(jìn)行的前提條件。
2.1軋制工藝規(guī)程計(jì)算的基本組成:
?。?)預(yù)計(jì)算;(2)再計(jì)算;(3)后計(jì)算。
?。?) 軋制規(guī)程預(yù)計(jì)算就是根據(jù)原始數(shù)據(jù)運(yùn)用數(shù)學(xué)模型及經(jīng)驗(yàn)數(shù)據(jù)進(jìn)行計(jì)算,確定各道次的實(shí)際壓下量、空載輥縫、軋制力和溫度等參數(shù),預(yù)計(jì)算的準(zhǔn)確與否是實(shí)現(xiàn)精確的在線控制的關(guān)鍵。預(yù)計(jì)算是在軋鋼之前完成。
?。?) 軋制工藝規(guī)程再計(jì)算是根據(jù)預(yù)計(jì)算的計(jì)算結(jié)果和粗軋的實(shí)際測量結(jié)果,考慮到預(yù)設(shè)定和實(shí)測的偏差,對隨后的各道次參數(shù)進(jìn)行修正計(jì)算。其結(jié)果可進(jìn)一步依據(jù)實(shí)測數(shù)據(jù)對軋制參數(shù)進(jìn)行修正,提高設(shè)定計(jì)算的精度。再計(jì)算是在軋制過程中進(jìn)行,所以也稱動態(tài)計(jì)算。
?。?) 軋制工藝規(guī)程后計(jì)算也稱為軋制工藝參數(shù)的自適應(yīng)計(jì)算,就是在一塊鋼軋制完以后,記錄其所有實(shí)測數(shù)據(jù),利用相應(yīng)的自適應(yīng)算法來提高數(shù)學(xué)模型計(jì)算精度,提高下塊鋼輥縫值設(shè)定精度的過程。
3. 程序的嵌入與觸發(fā)
3.1程序的嵌入
在Project Functions中按程序自下而上的方式,先把每個(gè)獨(dú)立的最小輩份的子過程嵌入并通過編譯,接著是比它高一級的子過程或函數(shù)的嵌入及編譯,直到主過程的嵌入并進(jìn)行全程編譯。如果在編譯過程中發(fā)現(xiàn)錯(cuò)誤,在程序下方自動彈出編譯信息,提示程序員具體出錯(cuò)位置及錯(cuò)誤內(nèi)容。
3.2過程或函數(shù)之間數(shù)據(jù)的傳遞
在C語言的程序中,常以全局變量及參數(shù)的形式進(jìn)行過程及函數(shù)之間的數(shù)據(jù)傳遞。在WinCC的Global Script中的全局變量就是標(biāo)簽。其中間數(shù)據(jù)傳遞有兩種方式:(1)Tag方式;(2)結(jié)構(gòu)變量方式。
?。?) Tag方式 是把中間變量通過內(nèi)部函數(shù)中的SetTag函數(shù)存儲在內(nèi)部標(biāo)簽中,每次需要使用中間變量時(shí),要通過GetTag函數(shù)把標(biāo)簽中數(shù)據(jù)取出來進(jìn)行計(jì)算。
?。?) 結(jié)構(gòu)變量方式 是在頭文件(apdefap.h)中把中間變量全部定義成結(jié)構(gòu)變量,并以參數(shù)傳遞的方式傳遞中間數(shù)據(jù)。
3.3程序的觸發(fā)
3.3.1預(yù)計(jì)算的觸發(fā)
在原始數(shù)據(jù)輸入后并得到現(xiàn)場工人的確認(rèn)時(shí)觸發(fā)預(yù)計(jì)算,可以通過確認(rèn)按鈕直接觸發(fā)預(yù)計(jì)算,即在確認(rèn)按鈕的Events中的Mouse Action事件中直接調(diào)用預(yù)計(jì)算的主程序;也可以設(shè)定一個(gè)特別的二進(jìn)制外部觸發(fā)標(biāo)簽,由PLC將標(biāo)簽值置為1,而需要在Global Script中的Actions中添加調(diào)用程序,并將那個(gè)二進(jìn)制標(biāo)簽設(shè)為觸發(fā)標(biāo)簽,在程序調(diào)用結(jié)束后,將觸發(fā)標(biāo)簽值置為0。
3.3.2再計(jì)算的觸發(fā)
再計(jì)算發(fā)生在軋制過程中,所以要經(jīng)常觸發(fā),而用時(shí)間觸發(fā)方式不能達(dá)到理想,一定要采用標(biāo)簽觸發(fā)。軋制過程中道次變化最具代表性,所以采用道次標(biāo)簽作為觸發(fā)標(biāo)簽。標(biāo)簽值的變化是每軋完一個(gè)道次加1,連同實(shí)測的道次溫度值、道次軋制力值一起由PLC送到WinCC的外部標(biāo)簽中。被觸發(fā)的再計(jì)算程序,首先用GetTag函數(shù)取來當(dāng)前道次溫度值及軋制力值,并根據(jù)預(yù)計(jì)算結(jié)果用SetTag修正下一道次的壓下量的標(biāo)簽值。
3.3.3后計(jì)算的觸發(fā)
后計(jì)算發(fā)生在一塊鋼軋制完成之后,為了確切地得到這個(gè)消息,在操作臺上設(shè)了一個(gè)規(guī)程復(fù)位按鈕。在后計(jì)算的Actions程序中將規(guī)程復(fù)位標(biāo)簽設(shè)為觸發(fā)標(biāo)簽,當(dāng)規(guī)程復(fù)位按鈕被按下,PLC將與之對應(yīng)的標(biāo)簽值置為1時(shí)觸發(fā)程序,程序運(yùn)行結(jié)束后將標(biāo)簽值置為0。
4. 程序調(diào)試
4.1離線調(diào)試方法
離線狀態(tài)下,即PLC與上位機(jī)沒有通訊關(guān)系情況下,外部標(biāo)簽不能使用,所以在離線調(diào)試時(shí)不能使用外部標(biāo)簽,可以先將其定義成內(nèi)部標(biāo)簽。程序可以設(shè)置成周期觸發(fā),也可由內(nèi)部標(biāo)簽通過I/O控件修改標(biāo)簽值觸發(fā)。預(yù)計(jì)算程序可以進(jìn)行離線調(diào)試,再計(jì)算和后計(jì)算可先用內(nèi)部標(biāo)簽進(jìn)行離線模擬計(jì)算過程調(diào)試,再進(jìn)行在線精確調(diào)試。
4.2程序運(yùn)行過程監(jiān)視
即使程序全程編譯通過,也不能算大功告成,要使程序按計(jì)劃運(yùn)行,還要進(jìn)行仔細(xì)調(diào)試。WINCC提供了程序調(diào)試窗口。打開Graphics Designer,在右側(cè)的對象工具箱中點(diǎn)擊Application Window,在圖中拉出適當(dāng)大小,系統(tǒng)自動彈出選擇對話框,選擇Global Script按ok,再選擇GSC Diagnostics按ok。運(yùn)行過程如圖1所示,停止運(yùn)行時(shí)還可對運(yùn)行結(jié)果進(jìn)行存儲和打印。
[align=center]

圖1 調(diào)試窗口[/align]
5.結(jié)束語
隨著工業(yè)控制及自動化的不斷發(fā)展,工業(yè)控制計(jì)算機(jī)已成為控制過程必不可少的成份,組態(tài)軟件的應(yīng)用也越來越廣泛,WinCC不但具有強(qiáng)大的組態(tài)、報(bào)警、趨勢曲線等功能,還具有強(qiáng)大的全局腳本后臺功能。本文根據(jù)某中厚板過程機(jī)的實(shí)際應(yīng)用闡明了WinCC的Global Script的具體使用方法及調(diào)試手段,突出了WinCC組態(tài)軟件的后臺開發(fā)能力及其在工業(yè)過程控制中的應(yīng)用。
參考文獻(xiàn):
1. WinCC4.0 Graphic Designer + Global Scripts Manual
2. WinCC4.0 Control Center