0216 【萬泉河】 WINCC與TC2實作OPC UA通訊
兩台電腦(或虛擬機器系統):
電腦1:
作業系統:WIN7 32位元
安裝軟件:
BECKHOFF TWINCAT V2.11.2308
BECKHOFF TwinCAT OPC UA Configurator V3.2.1
SIEMENS OPC UA CLIENT V2.2(無需安裝,直接復制使用,也可以隨便其它的OPC UA CLIENT工具)
電腦2:
作業系統:WIN10 64位元
安裝軟件:
SIEMENS WINCC 7.5
步驟:
- 新建PLC工程,類別選擇x86 , 即使用本電腦模擬PLC RUNTIME執行。
- 主程式MAIN中輸入語句:
AAA:=AAA+1;
- 輸入完成後自動在MAIN的局部標簽中建立變量AAA,類別INT, 並在變量後面添加註釋(* ~ (OPC : 1 : available for OPC-clients) *)。完成後程式如圖:
Rebuild All並存盤。
- 在TWINCAT SYSTEM MANAGER中選擇程式,並Active Configuration啟用配置
- PLC程式下載到RUNTIME中,LOGIN並START後,可以看到變量AAA數據在增長,PLC程式執行成功。
- 開啟TwinCAT OPC UA Configurator,配置驅動,並將PLC程式指定給Symbol File。
- 啟用配置並Restart Server 重新開機動服務。在Online Panel中得到endpoints地址:
TcOpcUaServer@TC2 [None, None] [opc.tcp://TC2:4840]
其中TC2為電腦名稱。
- 本機執行Siemens.OpcUA.Client.exe,輸入endpoints地址,點connect連線
- 在提示對話方塊時選擇Y,則連線成功
- 瀏覽樹中找到註冊的變量AAA,將其拖拽到下方的監控視窗,即看到了數值在變化,說明OPC UA通訊成功。
- 另一台電腦2中,在區域網路網絡常通的情況下,同樣執行OPC UA CLIENT,也同樣可以成功。
- 開啟WINCC,新建專案,新建OPC UA驅動, 右鍵選擇「連線參數」:
彈出的視窗中 <雙擊以添加伺服器>的位置,填入伺服器地址opc.tcp://TC2:4840
圖6.7‑6 OPC條目管理器
- 完成後回到右鍵選單中,點「瀏覽OPC伺服器」,瀏覽到OPC驅動中的變量,選中後即在WINCC中建立了變量。
- 然後WINCC變量表中可以看到增加了驅動連線和變量,標題中取消隱藏列「值」,即顯示數值列,啟用WINCC執行模式,即看到變量的值:
圖‑8 WINCC變量執行值
與PLC中執行值同步變化,證明通訊成功。
- WINCC中建立畫面,畫面中加入變量,可以顯示和修改數值。
即實作了WINCC與TC2 PLC的OPC UA 通訊功能。
如果將WINCC換做其它支持OPC UA的上位機系統,同樣的方法也可以成功。而如果從OPC UA換成其它的通訊協定,也都同樣可以。只要選擇上位機和PLC同時支持的協定即可。
理論上講, 上述的實驗當然也可以在同一台電腦上完成。 只要電腦上同時安裝了所有軟件。 然而在實際操作中發現,當電腦上安裝了WINCC之後, 原本組態成功的TcOpcUaServer會失效。經過研究發現是因為WINCC安裝時也自動帶了OPC UA SERVER元件,兩者可能發生了幹擾。 將WINCC OPC UA SERVER解除安裝後即可通訊正常。 然而也還有其他方面的問題。有讀者如要測試,請留意其中的坑。
本文是我正在撰寫的新書【倍福標準化編程煙台方法】的其中一節。 標準化編程煙台方法實作了編程的模組化,即在原本S7-1500+WINCC的配置下,可以只將S7-1500更換為倍福PLC,即實作了程式移植,而WINCC部份可以保留不動。 當然這只是第一步。 只要需要,還可以繼續進行模組化的更換,比如上位機從WINCC更換為其它類別的軟件或者HMI。
在進行移植的第一步時,選擇了OPC UA協定作為WINCC與TC2的通訊協定,原本這些屬於基礎的通訊技能,然而考慮到大多數的讀者之前未做過相關配置的通訊,所以就把這部份基礎功能先演示講解。並在完成這個章節後第一時間發表在公眾號上,奉獻給讀者。
如果有讀者想演練復現文中實作的功能,缺少的軟件可以私信向我索取。