陳奕良,張帆
(廣東金明精機(jī)股份有限公司,廣東 汕頭 515098)
WINCC是一種實(shí)現(xiàn)現(xiàn)場數(shù)據(jù)采集、過程可視化和過程監(jiān)控的自動(dòng)化工具,俗稱SCADA。其運(yùn)行在windows環(huán)境下,具有很好的兼容性和擴(kuò)展性,適合復(fù)雜系統(tǒng)操作和數(shù)據(jù)監(jiān)控。本文以WINCC professional V15為例,主要使用WINCC組態(tài)軟件開發(fā)第三方設(shè)備的可視化操作界面、過程數(shù)據(jù)監(jiān)控以及數(shù)據(jù)庫記錄功能。
WINCC的組態(tài)如圖1所示。
圖1 WINCC自動(dòng)化組態(tài)
第三方自動(dòng)化設(shè)備由乙方提供,為采購設(shè)備,并不參與甲方設(shè)備的系統(tǒng)集成,因此無法直接由WINCC組態(tài)軟件的默認(rèn)HMI通訊通道進(jìn)行訪問。其控制系統(tǒng)由西門子SIMOTION控制器和西門子觸摸屏組成,如圖2所示,SIMOTION是以設(shè)備代理的形式與觸摸屏通訊,是單獨(dú)的一個(gè)自動(dòng)化組態(tài)系統(tǒng),沒法集成到WINCC里。不過基本市售的工業(yè)HMI觸摸屏都是支持OPC通訊的,西門子的也不例外,可以設(shè)置作為OPC服務(wù)器,這樣WINCC作為客戶端就能訪問西門子觸摸屏的變量了。
圖2 第三方設(shè)備自動(dòng)化組態(tài)
WINCC組態(tài)軟件支持多種PLC控制器驅(qū)動(dòng),比如西門子的S7-300/400和S7-1200/1500系列,第三方的比如AB和三菱的TCP/IP協(xié)議等等,但是和第三方品牌或者乙方的設(shè)備通訊時(shí)必須有對(duì)方的編程源程序或者有支持與其得通訊驅(qū)動(dòng),在本例WINCC就不具備西門子自家的SIMOTION通訊驅(qū)動(dòng),所以和第三方設(shè)備通訊最適合的方式就是OPC訪問。
OPC(OLE for Process Control)技術(shù)是指為了給工業(yè)控制系統(tǒng)應(yīng)用程序之間的通信建立一個(gè)接口標(biāo)準(zhǔn),在工業(yè)控制設(shè)備與控制軟件之間建立統(tǒng)一的數(shù)據(jù)存取規(guī)范。它給工業(yè)控制領(lǐng)域提供了一種標(biāo)準(zhǔn)數(shù)據(jù)訪問機(jī)制,將硬件與應(yīng)用軟件有效地分離開來,是一套與廠商無關(guān)的軟件數(shù)據(jù)交換標(biāo)準(zhǔn)接口和規(guī)程,主要解決過程控制系統(tǒng)與其數(shù)據(jù)源的數(shù)據(jù)交換問題,可以在各個(gè)應(yīng)用之間提供透明的數(shù)據(jù)訪問。
首先在乙方提供的HMI組態(tài)程序中,設(shè)置其HMI觸摸屏作為OPC服務(wù)器運(yùn)行,并記下其IP地址以便在WINCC中尋找遠(yuǎn)程OPC服務(wù)器,如圖3所示。
圖3 HMI觸摸屏作為OPC服務(wù)器運(yùn)行
接著在WINCC的連接通道中添加一個(gè)連接,通信驅(qū)動(dòng)程序選擇OPC UA,并命名為OPCHMI。然后在此連接的參數(shù)界面中的OPC服務(wù)器欄目中選擇添加遠(yuǎn)程服務(wù)器地址即是上面記下的IP地址,就會(huì)訪問到HMI觸摸屏所建立的OPC服務(wù)器OpcUaServerWinCC作為此連接的URL地址,如圖4所示。
圖4 添加OPC通信連接通道
添加好OPC連接通道后,就可以訪問所需要的設(shè)備變量,建立的變量表如圖5所示,可以按自己的習(xí)慣進(jìn)行變量的命名。
圖5 訪問OPC服務(wù)器建立變量表
WINCC組態(tài)軟件最基本也是最必須的是可視化的過程監(jiān)控畫面,在本文案例中操作員在中控室需要對(duì)第三方設(shè)備的生產(chǎn)運(yùn)行狀態(tài)通過WINCC上位機(jī)對(duì)其進(jìn)行實(shí)時(shí)監(jiān)控。此設(shè)備為薄膜分切機(jī),主要由放卷機(jī)、牽引機(jī)、分切刀、收卷機(jī)幾個(gè)部分組成,操作員希望得到機(jī)組運(yùn)行線速度、放卷寬度、材料厚度、放卷收卷計(jì)長、薄膜收卷分切規(guī)格等信息進(jìn)行監(jiān)控。過程畫面的組要組成要素為 文本域、I/O域、按鈕。
文本域的作用為設(shè)置標(biāo)題和變量信息,I/O域的作用為過程變量的輸入輸出讀寫操作,按鈕則有各種各樣的過程操作功能。其中I/O的過程變量設(shè)置一般為手動(dòng)輸入,但對(duì)于較大的過程控制系統(tǒng)而言,存在功能相同編號(hào)順序不同的過程變量,對(duì)于這種變量如果每個(gè)都進(jìn)行手動(dòng)輸入設(shè)置,會(huì)浪費(fèi)電氣工程師大量的時(shí)間進(jìn)行重復(fù)工作,而WINCC支持VBS腳本,我們可以利用VBS腳本對(duì)這種類型的過程變量進(jìn)行動(dòng)態(tài)賦值。比如此過程畫面中存在8個(gè)收卷機(jī)卡位,每個(gè)卡位需要訪問的過程變量類型都是相同的,我們可以將其變量以類似“收卷張力_1”這種名字加序號(hào)的命名形式進(jìn)行命名,然后將I/O域也以此名字規(guī)則進(jìn)行命名,并在過程值屬性中的動(dòng)態(tài)化欄目添加VBS動(dòng)作,將其過程值以I/O域的名字進(jìn)行賦值,即可在WINCC運(yùn)行畫面中自動(dòng)獲得過程值。之后將I/O進(jìn)行復(fù)制粘貼操作,粘貼時(shí)新的I/O域會(huì)自動(dòng)以“收卷張力_2”這樣序號(hào)自動(dòng)遞增的形式命名,這樣就自動(dòng)化組態(tài)了其他功能相同編號(hào)順序不同的過程變量,非常簡便聰明,大大減少了以往電氣工程師需要一個(gè)個(gè)手填過程畫面I/O域過程變量這樣低效可憐的工作,如圖6所示。
最后過程畫面實(shí)際運(yùn)行的效果如圖7所示。
圖6 使用VBS腳本動(dòng)態(tài)獲得重復(fù)性的過程變量
圖7 WINCC過程控制畫面運(yùn)行效果
SCADA一 般 指SCADA系 統(tǒng)。SCADA(Superv isory Control And Data Acquisition)系統(tǒng),即數(shù)據(jù)采集與監(jiān)視控制系統(tǒng)。既然進(jìn)行了數(shù)據(jù)采集,那勢(shì)必得將采集到的數(shù)據(jù)進(jìn)行數(shù)據(jù)記錄,WINCC組態(tài)軟件和組態(tài)王、IFIX這些知名得組態(tài)軟件一樣,有過程值歸檔的功能,可以在數(shù)據(jù)記錄欄目中選擇自己需要的過程值變量進(jìn)行歸檔,并可設(shè)置采集周期、分段時(shí)間等。不過此歸檔形式在導(dǎo)出到數(shù)據(jù)庫的操作并不直接,需要通過一些非標(biāo)準(zhǔn)的協(xié)議和軟件環(huán)境才能導(dǎo)出到數(shù)據(jù)庫,并且在數(shù)據(jù)庫內(nèi)還得對(duì)數(shù)據(jù)進(jìn)行二次處理轉(zhuǎn)換,相當(dāng)不便,因此本文案例中使用WINCC支持的VB腳本進(jìn)行過程變量的數(shù)據(jù)庫記錄操作。
首先要連接數(shù)據(jù)庫,VBA提供了對(duì)象訪問的函數(shù),比如在Createobject函數(shù)可以創(chuàng)建并返回一個(gè)對(duì)ActiveX對(duì)象的引用,要?jiǎng)?chuàng)建 ActiveX 對(duì)象,只需將CreateObject 返回的對(duì)象賦給一個(gè)變量。以下為連接本機(jī)數(shù)據(jù)庫服務(wù)器的代碼:
"Con="Provider=SQLOLEDB.1;Password=密碼;Persist Security Info=True;User ID=賬號(hào);Data Source=電腦名稱數(shù)據(jù)庫連接名"
Con="Provider=SQLOLEDB.1;Password=jm 666;Persist Security Info=True;User ID=sa;Data Source=" & SmartTags("@LocalMachineName") &"JMJJTEST"
Set conn = CreateObject("ADODB.Connection")
conn.ConnectionString=Con
conn.CursorLocation=3
conn.Open
之后需要?jiǎng)?chuàng)建WINCC過程變量所需的數(shù)據(jù)庫,將其命名為winccdatabase,代碼如下:
"創(chuàng)建數(shù)據(jù)庫,只能創(chuàng)建一次
"sSql="create database 數(shù)據(jù)庫名稱;"
sSql="create database winccbase;"
Set oRs = CreateObject("ADODB.Recordset")
Set oCom = CreateObject("ADODB.Command")
Set oCom.ActiveConnection = conn
oCom.CommandType = 1
oCom.CommandText = sSql
Set oRs = oCom.Execute
Set oRs = Nothing
conn.Close
Set conn = Nothing
SmartTags("dataBaseCreated") = 1
之后需要在上面創(chuàng)建的數(shù)據(jù)庫中建立存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)表,將其命名為MesCutSplit,代碼如下:
"創(chuàng)建數(shù)據(jù)表,只能創(chuàng)建一次
"sSql="create table 數(shù)據(jù)表名稱 (字段名1 類型,字段名2 類型,字段名3 類型,字段名3 類型,字段名4 類型);",create_time datetime是必要的,插入時(shí)間
sSql="create table MECutSplit_" & Year(Now)& " (create_time datetime,fHeight real,fLength r e a l,f Widthreal,f Screens in t,f Machine Speed real,fWindingTension real,fTension real);"
oCom.CommandText = sSql
Set oRs = oCom.Execute
Set oRs = Nothing
conn.Close
Set conn = Nothing
以上數(shù)據(jù)表含義為下:
表:MECutSplit_2021
create_time 創(chuàng)建時(shí)間
fHeight 厚度
fLength 長度(放卷長度)
fWidth 寬度
fScreens 卡位(顯示張力卡位1-8)
fMachineSpeed 機(jī)速
fWindingTension 收卷張力(當(dāng)然卡位1-8的其中一個(gè)張力)
fTension 放卷張力
之后需要將腳本設(shè)置定時(shí)將這些過程變量插入到數(shù)據(jù)表,其代碼如下:
卡位收卷張力
VB
sData(0)=SmartTags("daHua#setThickness")
sData(1)=SmartTags("actUnwindLength")
sData(2)=SmartTags("daHua#setUnwindWidth")
sData(3)=SmartTags("MES
")
sData(4)=SmartTags("daHua#actualSpeed")
sData(5)=SmartTags("MES
")
sData(6)=SmartTags("daHua#setUnwindTensi on")
sSql="insert into MECutSplit_" & Year(Now)& " VALUES("" & Now & ""," & sData(0) & "," &sData(1) & "," & sData(2) & "," & sData(3) & "," &sData(4) & "," & sData(5) & "," & sData(6) & ");"
oCom.CommandType = 1
oCom.CommandText = sSql
Set oRs = oCom.Execute
Set oRs = Nothing
conn.Close
Set conn = Nothing
SQL
ACCESS
ERP
最后實(shí)現(xiàn)的數(shù)據(jù)庫記錄效果如圖8所示,每隔所設(shè)定的間隔時(shí)間數(shù)據(jù)就會(huì)自動(dòng)插入到數(shù)據(jù)表中,因?yàn)閿?shù)據(jù)庫為,所以車間行政辦公人員通過聯(lián)網(wǎng)后可以通過或者系統(tǒng)訪問設(shè)備的生產(chǎn)記錄歸檔,從而實(shí)現(xiàn)了設(shè)備生產(chǎn)的信息自動(dòng)化,達(dá)到工業(yè)4.0。
圖8 實(shí)現(xiàn)的數(shù)據(jù)庫記錄
本文介紹了WINCC組態(tài)軟件和第三方設(shè)備的SCADA應(yīng)用系統(tǒng),分別對(duì)WINCC組態(tài)系統(tǒng)和通信連接原理進(jìn)行了介紹,重點(diǎn)闡述了與第三方設(shè)備的通訊連接訪問方法和過程值的數(shù)據(jù)采集和記錄功能,該功能在薄膜拉伸機(jī)組系統(tǒng)已有應(yīng)用,方便了工廠在使用過程的設(shè)備管理,而WINCC組態(tài)軟件的運(yùn)行環(huán)境是Windows操作系統(tǒng),在工廠應(yīng)用中實(shí)現(xiàn)數(shù)據(jù)共享和追溯查詢,符合當(dāng)前工業(yè)4.0的時(shí)代發(fā)展。