腳本編程在工控軟件中的應(yīng)用
1MCGS嵌入式組態(tài)軟件概述
組態(tài)軟件在工業(yè)控制領(lǐng)域得到了大量應(yīng)用 ,本文以國(guó)內(nèi)昆侖通態(tài)MCGs嵌入版軟件為例 ,分析了幾種常用的組態(tài)軟件的腳本編程方法。MCGs嵌入版還帶有一個(gè)模擬運(yùn)行環(huán)境 ,用于對(duì)組態(tài)后的工程進(jìn)行模擬測(cè)試 ,主要編程內(nèi)容有基本邏輯運(yùn)算、加減乘除賦值、布爾邏輯、位邏輯、條件判斷IF。
2 腳本編程案例分析
圖1是一個(gè)電氣控制系統(tǒng)中的啟動(dòng)畫(huà)面 , 當(dāng)按下"調(diào)試模式"的時(shí)候設(shè)備會(huì)依次按順序啟動(dòng)并進(jìn)行檢查 , 當(dāng)按下"自動(dòng)模式"時(shí) ,系統(tǒng)會(huì)按編寫(xiě)好的要求自動(dòng)完成所有工作 。調(diào)試模式控制系統(tǒng)自動(dòng)開(kāi)啟并完成所有電機(jī)工作調(diào)試 ,該按鈕的腳本編輯代碼如下:
IF!Logon( )=0 THEN
調(diào)試模式.open( )
endif
m250=1
其中m250=1就是啟動(dòng)條件 ,該腳本編寫(xiě)完成了一鍵啟動(dòng)所有電機(jī)的任務(wù) , 當(dāng)點(diǎn)擊進(jìn)入菜單以后馬上啟動(dòng)第一 臺(tái)電機(jī)工作。
圖1 啟動(dòng)選擇畫(huà)面
如果需要按照一 定順序完成電機(jī)控制 ,就需要進(jìn)入電機(jī)自動(dòng)模式 ,代碼如下:
IF!Logon( )=0 THEN
自動(dòng)模式.open( )
Endif
m200=1
m201=1
m202=1
m203=1
m204=1
這些m是內(nèi)部寄存器 , 當(dāng)參數(shù)為1的時(shí)候電機(jī)就按這個(gè)次序依次啟動(dòng)。
在組態(tài)軟件中需要于多個(gè)選項(xiàng)中選中一個(gè)并完成控制 ,例如圖2中多個(gè)電機(jī)的調(diào)試模式 ,這是一 個(gè)多個(gè)電機(jī)控制畫(huà)面 ,通過(guò)下拉菜單選中相應(yīng)電機(jī)并控制啟動(dòng)。比如選中通風(fēng)機(jī)然后點(diǎn)擊"確定"鍵 , 電機(jī)就會(huì)啟動(dòng)并工作 , 同時(shí)觸摸屏的相應(yīng)顯示燈光點(diǎn)亮。
圖2 下拉菜單選擇畫(huà)面
相應(yīng)的腳本程序如下:
1F!strComp(xlk, "壓縮機(jī)" )=0 THEN
m200=1
else
m200=0
endif
1F !strComp(xlk, "冷凝風(fēng)機(jī)1" )=0 THEN
m201=1
else
m201=0
endif
1F !strComp(xlk, "冷凝風(fēng)機(jī)2" )=0 THEN
m202=1
else
m202=0
endif
1F!strComp(xlk, "通風(fēng)機(jī)" )=0 THEN
m203=1
else
m203=0
endif
1F !strComp(xlk, "車(chē)輛電機(jī)" )=0 THEN
m204=1
else
m204=0
endif
該腳本程序使用了選擇語(yǔ)句與比較語(yǔ)句 , 由于下拉菜單
中選項(xiàng)較多 ,所以判斷語(yǔ)句1F和else反復(fù)使用多次 。需要注意的是 , 中文在腳本編程里面也是按照字符來(lái)看待的 。strComp 指令是比較字符型函數(shù) , 比較兩個(gè)字符串是否相等 ,返回值為0時(shí)相等就是選中了 ,否則不相等沒(méi)有選中 。這是一種多電機(jī)可以不按次序來(lái)選中控制的方法。
如果需要單個(gè)按鈕通過(guò)不斷按下來(lái)循環(huán)控制多個(gè)電機(jī) ,例如分別有四個(gè)電機(jī)需要通過(guò)一個(gè)按鈕循環(huán)控制 , 則腳本編程的代碼如下:
iftsall=0then tsal="選擇調(diào)試按鈕"
iftsall=1 thentsal="貨物傳送帶電機(jī)"
iftsall=2 thentsal="托盤(pán)傳送帶電機(jī)"
iftsall=3 thentsal="伺服電機(jī)"
iftsall=4 thentsal="步進(jìn)電機(jī)"
iftsall=5 then tsall=0
分析該程序可以看出 ,達(dá)到控制 目 的的方法是計(jì)算按鈕按下的次數(shù) ,tsall里面的數(shù)字就是按鈕按下的次數(shù)的統(tǒng)計(jì)數(shù)字 ,按鈕按下的次數(shù)可以借助PLC的計(jì)數(shù)器來(lái)計(jì)算 , 當(dāng)PLC的計(jì)數(shù)器記下數(shù)字以后通過(guò)回傳再把按下次數(shù)回傳給存儲(chǔ)器 ,腳本程序通過(guò)讀取回傳的數(shù)字再基于判斷指令分別控制相應(yīng)電機(jī)工作 。這種控制方式在按鈕使用不多但需要循環(huán)控制電機(jī)工作的環(huán)境中大量使用 ,其優(yōu)點(diǎn)是按鍵少 ,控制電機(jī)較多。
3 結(jié)語(yǔ)
以上腳本編程方法為幾種基本的腳本編寫(xiě)方法 ,可以看出 ,通過(guò)以上方法配合其他電氣設(shè)備可以完成復(fù)雜的電氣控制 ,使得設(shè)備運(yùn)行控制方法更多。腳本編程在使用時(shí)要特別注意編程軟件語(yǔ)法與格式 ,通過(guò)編程完善電氣控制的相關(guān)功能 。編程完成后 ,客戶可以使用本文前面提到的模擬運(yùn)行環(huán)境來(lái)模擬運(yùn)行 ,檢查腳本程序運(yùn)行正確與否。