當前位置: 華文世界 > 數位

0216 【萬泉河】 WINCC與TC2實作OPC UA通訊

2024-02-16數位

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

步驟:

  1. 新建PLC工程,型別選擇x86 , 即使用本電腦模擬PLC RUNTIME執行。
  1. 主程式MAIN中輸入語句:

AAA:=AAA+1;

  1. 輸入完成後自動在MAIN的局部標簽中建立變量AAA,型別INT, 並在變量後面添加註釋(* ~ (OPC : 1 : available for OPC-clients) *)。完成後程式如圖:

Rebuild All並存盤。

  1. 在TWINCAT SYSTEM MANAGER中選擇程式,並Active Configuration啟用配置
  1. PLC程式下載到RUNTIME中,LOGIN並START後,可以看到變量AAA數據在增長,PLC程式執行成功。
  2. 開啟TwinCAT OPC UA Configurator,配置驅動,並將PLC程式指定給Symbol File。
  1. 啟用配置並Restart Server 重新開機動服務。在Online Panel中得到endpoints地址:

TcOpcUaServer@TC2 [None, None] [opc.tcp://TC2:4840]

其中TC2為電腦名稱。

  1. 本機執行Siemens.OpcUA.Client.exe,輸入endpoints地址,點connect連線
  2. 在提示對話方塊時選擇Y,則連線成功
  3. 瀏覽樹中找到註冊的變量AAA,將其拖拽到下方的監控視窗,即看到了數值在變化,說明OPC UA通訊成功。
  1. 另一台電腦2中,在區域網路網路常通的情況下,同樣執行OPC UA CLIENT,也同樣可以成功。
  2. 開啟WINCC,新建計畫,新建OPC UA驅動, 右鍵選擇「連線參數」:

彈出的視窗中 <雙擊以添加伺服器>的位置,填入伺服器地址opc.tcp://TC2:4840

圖6.7‑6 OPC條目管理器

  1. 完成後回到右鍵選單中,點「瀏覽OPC伺服器」,瀏覽到OPC驅動中的變量,選中後即在WINCC中建立了變量。
  2. 然後WINCC變量表中可以看到增加了驅動連線和變量,標題中取消隱藏列「值」,即顯示數值列,啟用WINCC執行模式,即看到變量的值:

圖‑8 WINCC變量執行值

與PLC中執行值同步變化,證明通訊成功。

  1. 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的通訊協定,原本這些屬於基礎的通訊技能,然而考慮到大多數的讀者之前未做過相關配置的通訊,所以就把這部份基礎功能先演示講解。並在完成這個章節後第一時間發表在公眾號上,奉獻給讀者。

如果有讀者想演練復現文中實作的功能,缺少的軟體可以私信向我索取。