陳奕良,張帆
(廣東金明精機股份有限公司,廣東 汕頭 515098)
WINCC是一種實現現場數據采集、過程可視化和過程監控的自動化工具,俗稱SCADA。其運行在windows環境下,具有很好的兼容性和擴展性,適合復雜系統操作和數據監控。本文以WINCC professional V15為例,主要使用WINCC組態軟件開發第三方設備的可視化操作界面、過程數據監控以及數據庫記錄功能。
WINCC的組態如圖1所示。

圖1 WINCC自動化組態
第三方自動化設備由乙方提供,為采購設備,并不參與甲方設備的系統集成,因此無法直接由WINCC組態軟件的默認HMI通訊通道進行訪問。其控制系統由西門子SIMOTION控制器和西門子觸摸屏組成,如圖2所示,SIMOTION是以設備代理的形式與觸摸屏通訊,是單獨的一個自動化組態系統,沒法集成到WINCC里。不過基本市售的工業HMI觸摸屏都是支持OPC通訊的,西門子的也不例外,可以設置作為OPC服務器,這樣WINCC作為客戶端就能訪問西門子觸摸屏的變量了。

圖2 第三方設備自動化組態
WINCC組態軟件支持多種PLC控制器驅動,比如西門子的S7-300/400和S7-1200/1500系列,第三方的比如AB和三菱的TCP/IP協議等等,但是和第三方品牌或者乙方的設備通訊時必須有對方的編程源程序或者有支持與其得通訊驅動,在本例WINCC就不具備西門子自家的SIMOTION通訊驅動,所以和第三方設備通訊最適合的方式就是OPC訪問。
OPC(OLE for Process Control)技術是指為了給工業控制系統應用程序之間的通信建立一個接口標準,在工業控制設備與控制軟件之間建立統一的數據存取規范。它給工業控制領域提供了一種標準數據訪問機制,將硬件與應用軟件有效地分離開來,是一套與廠商無關的軟件數據交換標準接口和規程,主要解決過程控制系統與其數據源的數據交換問題,可以在各個應用之間提供透明的數據訪問。
首先在乙方提供的HMI組態程序中,設置其HMI觸摸屏作為OPC服務器運行,并記下其IP地址以便在WINCC中尋找遠程OPC服務器,如圖3所示。

圖3 HMI觸摸屏作為OPC服務器運行
接著在WINCC的連接通道中添加一個連接,通信驅動程序選擇OPC UA,并命名為OPCHMI。然后在此連接的參數界面中的OPC服務器欄目中選擇添加遠程服務器地址即是上面記下的IP地址,就會訪問到HMI觸摸屏所建立的OPC服務器OpcUaServerWinCC作為此連接的URL地址,如圖4所示。

圖4 添加OPC通信連接通道
添加好OPC連接通道后,就可以訪問所需要的設備變量,建立的變量表如圖5所示,可以按自己的習慣進行變量的命名。

圖5 訪問OPC服務器建立變量表
WINCC組態軟件最基本也是最必須的是可視化的過程監控畫面,在本文案例中操作員在中控室需要對第三方設備的生產運行狀態通過WINCC上位機對其進行實時監控。此設備為薄膜分切機,主要由放卷機、牽引機、分切刀、收卷機幾個部分組成,操作員希望得到機組運行線速度、放卷寬度、材料厚度、放卷收卷計長、薄膜收卷分切規格等信息進行監控。過程畫面的組要組成要素為 文本域、I/O域、按鈕。
文本域的作用為設置標題和變量信息,I/O域的作用為過程變量的輸入輸出讀寫操作,按鈕則有各種各樣的過程操作功能。其中I/O的過程變量設置一般為手動輸入,但對于較大的過程控制系統而言,存在功能相同編號順序不同的過程變量,對于這種變量如果每個都進行手動輸入設置,會浪費電氣工程師大量的時間進行重復工作,而WINCC支持VBS腳本,我們可以利用VBS腳本對這種類型的過程變量進行動態賦值。比如此過程畫面中存在8個收卷機卡位,每個卡位需要訪問的過程變量類型都是相同的,我們可以將其變量以類似“收卷張力_1”這種名字加序號的命名形式進行命名,然后將I/O域也以此名字規則進行命名,并在過程值屬性中的動態化欄目添加VBS動作,將其過程值以I/O域的名字進行賦值,即可在WINCC運行畫面中自動獲得過程值。之后將I/O進行復制粘貼操作,粘貼時新的I/O域會自動以“收卷張力_2”這樣序號自動遞增的形式命名,這樣就自動化組態了其他功能相同編號順序不同的過程變量,非常簡便聰明,大大減少了以往電氣工程師需要一個個手填過程畫面I/O域過程變量這樣低效可憐的工作,如圖6所示。
最后過程畫面實際運行的效果如圖7所示。

圖6 使用VBS腳本動態獲得重復性的過程變量

圖7 WINCC過程控制畫面運行效果
SCADA一 般 指SCADA系 統。SCADA(Superv isory Control And Data Acquisition)系統,即數據采集與監視控制系統。既然進行了數據采集,那勢必得將采集到的數據進行數據記錄,WINCC組態軟件和組態王、IFIX這些知名得組態軟件一樣,有過程值歸檔的功能,可以在數據記錄欄目中選擇自己需要的過程值變量進行歸檔,并可設置采集周期、分段時間等。不過此歸檔形式在導出到數據庫的操作并不直接,需要通過一些非標準的協議和軟件環境才能導出到數據庫,并且在數據庫內還得對數據進行二次處理轉換,相當不便,因此本文案例中使用WINCC支持的VB腳本進行過程變量的數據庫記錄操作。
首先要連接數據庫,VBA提供了對象訪問的函數,比如在Createobject函數可以創建并返回一個對ActiveX對象的引用,要創建 ActiveX 對象,只需將CreateObject 返回的對象賦給一個變量。以下為連接本機數據庫服務器的代碼:
"Con="Provider=SQLOLEDB.1;Password=密碼;Persist Security Info=True;User ID=賬號;Data Source=電腦名稱數據庫連接名"
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
之后需要創建WINCC過程變量所需的數據庫,將其命名為winccdatabase,代碼如下:
"創建數據庫,只能創建一次
"sSql="create database 數據庫名稱;"
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
之后需要在上面創建的數據庫中建立存儲數據的數據表,將其命名為MesCutSplit,代碼如下:
"創建數據表,只能創建一次
"sSql="create table 數據表名稱 (字段名1 類型,字段名2 類型,字段名3 類型,字段名3 類型,字段名4 類型);",create_time datetime是必要的,插入時間
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
以上數據表含義為下:
表:MECutSplit_2021
create_time 創建時間
fHeight 厚度
fLength 長度(放卷長度)
fWidth 寬度
fScreens 卡位(顯示張力卡位1-8)
fMachineSpeed 機速
fWindingTension 收卷張力(當然卡位1-8的其中一個張力)
fTension 放卷張力
之后需要將腳本設置定時將這些過程變量插入到數據表,其代碼如下:
卡位收卷張力
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
最后實現的數據庫記錄效果如圖8所示,每隔所設定的間隔時間數據就會自動插入到數據表中,因為數據庫為,所以車間行政辦公人員通過聯網后可以通過或者系統訪問設備的生產記錄歸檔,從而實現了設備生產的信息自動化,達到工業4.0。

圖8 實現的數據庫記錄
本文介紹了WINCC組態軟件和第三方設備的SCADA應用系統,分別對WINCC組態系統和通信連接原理進行了介紹,重點闡述了與第三方設備的通訊連接訪問方法和過程值的數據采集和記錄功能,該功能在薄膜拉伸機組系統已有應用,方便了工廠在使用過程的設備管理,而WINCC組態軟件的運行環境是Windows操作系統,在工廠應用中實現數據共享和追溯查詢,符合當前工業4.0的時代發展。