盧振羽
(航空工業(yè)貴陽萬江航空機(jī)電有限公司,貴陽 550003)
隨著人工智能的進(jìn)一步發(fā)展,利用西門子WCC組態(tài)開發(fā)控制系統(tǒng)已經(jīng)越來越廣泛,在開發(fā)控制系統(tǒng)的過程中,如何通過文本列表的運(yùn)用進(jìn)行程序的選擇、指令的執(zhí)行、數(shù)據(jù)的讀取和顯示尤其重要[1-2]。本文通過兩個工程實(shí)踐的例子,通過西門子WCC設(shè)計(jì)文本列表,利用西門子PLC及VBS編制程序,實(shí)現(xiàn)了在西門子WCC的操作界面上進(jìn)行程序選擇、數(shù)據(jù)導(dǎo)入,其他一些功能可參照設(shè)計(jì)。
在某控制系統(tǒng)設(shè)計(jì)過程中,需要對文本列表中的不同車型選擇不同的試驗(yàn)標(biāo)準(zhǔn)進(jìn)行試驗(yàn)[3],不同的試驗(yàn)標(biāo)準(zhǔn)已在PLC中設(shè)計(jì)了不同的子程序,需要在上位機(jī)WCC中選擇文本列表框中的主機(jī)廠試驗(yàn)標(biāo)準(zhǔn)如“神龍”,將執(zhí)行下位機(jī)PLC中對應(yīng)的“神龍”子程序,如圖1所示。
圖1 利用文本列表選擇不同的程序
設(shè)計(jì)過程介紹如下。
(1)先在WCC的操作界面創(chuàng)建文本列表,并設(shè)置外部變量VW1014,該文本列表與外部變量VW1014鏈接,對于VW1014的使用,后面的PLC編程將會用到,根據(jù)西門子PLC 200對“VW”的定義,“VW”是變量存儲器,代表“字”,共16位,包括低8位和高8位,故VW1014代表如下。
低8位:V1015.0 V1015.1 V1015.2 V1015.3 V1015.4 V1015.5 V1015.6 V1015.7。
高8位:V1014.0 V1014.1 V1014.2 V1014.3 V1014.4 V1014.5 V1014.6 V1014.7。
(2)對WCC中的文本列表創(chuàng)建完后,必須對數(shù)值(0、1、2、3、4…)進(jìn)行分配,這時,可以通過“附加”的方式增加試驗(yàn)項(xiàng)目(“0”代表“按下雙擊選擇車型”、“1”代表“凱越”、“2”代表“神龍”、“3”代表“NCS”),如圖2所示。
圖2 WCC文本列表的數(shù)值分配
(3)編制PLC程序,本工程設(shè)計(jì)的目的是點(diǎn)擊WCC中的文本列表VW1014“1凱越”、“2神龍”、“3 NCS”后,執(zhí)行下位機(jī)PLC中的子程序,這時,需要對VW1014對應(yīng)的低8位、高8位按順序組合編程,共可以編出65 536個子程序出來,實(shí)際工程中用不了那么多。根據(jù)這一思路,編制PLC程序,如圖3所示,這時WCC文本列表中的“2神龍”與下位機(jī)PLC中的子程序“神龍”實(shí)現(xiàn)了對應(yīng)關(guān)系,也就是說,在點(diǎn)擊上位機(jī)WCC操作界面的“神龍”時,就可以執(zhí)行下位機(jī)PLC中的子程序“神龍”了。
(4)給下位機(jī)PLC下載程序,運(yùn)行上位機(jī)WCC,在WCC的操作界面文本列表中點(diǎn)擊想要運(yùn)行的程序如“神龍”,點(diǎn)擊后就可以執(zhí)行對應(yīng)的PLC子程序,就可以開展需要的試驗(yàn)了。
在某系統(tǒng)開發(fā)中,需要將文本列表中產(chǎn)品型號如GZD-70H產(chǎn)品(文本列表中已設(shè)置多個產(chǎn)品型號)的“產(chǎn)品電流”的“上限值”和“下限值”顯示在WCC的操作界面上,以及“產(chǎn)品轉(zhuǎn)速”的“上限值”和“下限值”顯示在WCC的操作界面上,方便檢測人員目視觀察[4-5],同時將在檢測過程中檢測到的“產(chǎn)品電流”及“產(chǎn)品轉(zhuǎn)速”的值和“上限值”和“下限值”進(jìn)行比較,當(dāng)檢測值超過“上限值”及檢測值低于“下限值”時進(jìn)行報(bào)警,防止不合格產(chǎn)品流出,如圖4所示。
圖3 PLC程序圖
圖4 對應(yīng)產(chǎn)品數(shù)據(jù)的讀取
設(shè)計(jì)過程介紹如下。
(1)先將要顯示的數(shù)據(jù)存放于某一文件中,在電腦D盤下建立excel文件,并命名“設(shè)置產(chǎn)品合格限.xlsx”,該文件中每個產(chǎn)品型號對應(yīng)“電流”的“上限值”和“下限值”及“轉(zhuǎn)速”的“上限值”和“下限值”,如產(chǎn)品名稱是“GZD-70H”的產(chǎn)品的電流“上限值”是3.4 A,“下限值”是0.4 A,轉(zhuǎn)速“上限值”是40,下限值是21。這個表格上的數(shù)值將是在WCC操作界面上要顯示的數(shù)值,如圖5所示。
圖5 利用Excel建立需要顯示的數(shù)值
(2)在WCC的操作界面創(chuàng)建文本列表,按1.1節(jié)的方式設(shè)計(jì),設(shè)置外部變量“CPXZ”與該文本列表進(jìn)行鏈接,并對文本列表的數(shù)值進(jìn)行分配,其中值“0”對應(yīng)文本列表中的“GZD-70H”,值“1”對應(yīng)文本列表中的“GZD-70AH”,依次進(jìn)行設(shè)計(jì)。
(3)此時,可以在WCC中利用VBS編制程序[6],編程思路“打開d:設(shè)置產(chǎn)品合格限.xlsx文件,讀取該excel中的電流“上限值”在WCC操作界面“產(chǎn)品電流”的“上限值”既“dlsx”處寫入,其他的參數(shù),電流“下限值”及轉(zhuǎn)速的“上限值”及“下限值”也按該方式讀取,既讀取預(yù)先在excel表格中設(shè)置的參數(shù)“轉(zhuǎn)速”和“電流”值的“上限值”和“下限值”,并將這些參數(shù)值顯示在WCC的操作界面上(圖4)。部分程序如下:
Dim cpxz,app,a
cpxz=HMIRuntime.tags("CPXZ").read
Set app=CreateObject("excel.application")
app.workbooks.open"d:設(shè)置產(chǎn)品合格限.xlsx"
a=cpxz+2
HMIRuntime.tags("dlsx").write app.worksheets("sheet1").cells(a,2).value
HMIRuntime.tags("dlxx").write app.worksheets("sheet1").cells(a,3).value
HMIRuntime.tags("zssx").write app.worksheets("sheet1").cells(a,4).value
HMIRuntime.tags("zsxx").write app.worksheets("sheet1").cells(a,5).value
app.quit
End Function
(4)在VBS程序設(shè)計(jì)完后,需要設(shè)置觸發(fā)器,觸發(fā)器分周期性觸發(fā)和變量有變化時觸發(fā),根據(jù)本工程的目的,當(dāng)點(diǎn)擊WCC操作界面文本列表“CPXZ”時,需要顯示所選擇的產(chǎn)品的參數(shù),故設(shè)置觸發(fā)器為“變量變化時”,當(dāng)選擇任一產(chǎn)品如“GZD-70H”時,即可顯示所選擇的產(chǎn)品的參數(shù)[7-8]。
(5)程序設(shè)計(jì)完后,運(yùn)行WCC程序(圖4),在文本列表框中點(diǎn)擊GZD-70H,實(shí)現(xiàn)了在WCC的操作界面上顯示了轉(zhuǎn)速值及電流值的上下限值,方便檢測人員觀察,同時將在檢測過程中檢測到的“產(chǎn)品電流”及“產(chǎn)品轉(zhuǎn)速”的值和“上限值”和“下限值”進(jìn)行比較,當(dāng)檢測值超過“上限值”及檢測值低于“下限值”時進(jìn)行報(bào)警,防止不合格產(chǎn)品流出。
通過兩個工程例子的探索研究,在掌握了西門子WCC文本列表運(yùn)用的同時,還需要掌握西門子PLC編程、VBS語言編程、變量的定義、數(shù)據(jù)庫的使用、觸發(fā)器的使用。本文通過西門子WCC、西門子PLC、VBS及相關(guān)知識的綜合使用,實(shí)現(xiàn)了程序選擇、數(shù)據(jù)導(dǎo)入顯示的功能。毋庸置疑,WCC文本列表在工程設(shè)計(jì)中還可以實(shí)現(xiàn)非常多的功能,這需要在工程設(shè)計(jì)時靈活運(yùn)用各軟件及相關(guān)知識,才能達(dá)到工程設(shè)計(jì)的目的。