上位機C#通過OPCUA和西門子PLC通訊

寫在前面:

很多人在學習OPCUA的時候,有個非常苦惱的問題,就是沒有OPCUA伺服器的環境,這時候,有些人可能會想到通過類似於KepServer這樣的軟體來實現。那麼,有沒有一種方式,實現快速搭建OPCUA環境呢?答案是有的,今天繼續給大家分享S7-PLCSIM Advanced,S7-PLCSIM Advanced是SIEMENS推出的一款高功能模擬器,它的顯著特點是除了可以模擬一般的PLC邏輯控制程式外還可以模擬通訊,功能是非常強大的,今天主要講述如何基於S7-PLCSIM Advanced搭建OPCUA通訊模擬環境。

01.PLCSIM-Advanced安裝

對於該軟體的獲取,大家可以去西門子相關網站下載,也可以直接關注喜科堂上位機官方公眾號-dotNet工控上位機,然後發送關鍵詞PLCSIM-Advanced,即可下載使用。

圖表 1 PLCSIM Advanced軟體

 

PLCSIM-Advanced的安裝也比較簡單,基本上是一路NEXT即可,但是主要的是PLCSIM-Advanced會依賴WinPcap軟體,所以大家可以提前安裝好WinPcap,即使不提前安裝,安裝過程中也會提示你安裝的。

安裝完成後,電腦中會額外多出一個虛擬網卡,名稱為Siemens PLCSIM Virtual Ethernet Adapter,如下圖:

圖表 2網卡列表

 

 02.PLCSIM-Advanced使用

安裝完成後,桌面上會多出一個圖標,即S7-PLCSIM Advanced V3.0,如下圖所示:

  圖表 3 PLCSIM Advanced圖標

 

該軟體的使用可以按照下方的步驟執行和確定,一定要記住以下需要注意的地方,否則一個很小的問題,可能會讓你浪費半天的時間,這樣就得不償失了。

(1)軟體要以管理員許可權運行:可以直接每次右擊,以管理員許可權運行,如果想一勞永逸,可以點擊圖標,右擊屬性,在兼容性中,將以管理員身份運行此程式的選項勾選。

 圖表 4設置管理員許可權運行

 

(2)將本地網卡及虛擬網卡的IP地址獲取設置為自動獲取。

(3)設置PG/PC介面:

通過控制面板,打開設置PG/PC介面介面,按照下圖所示設置應用程式訪問點:

 圖表 5設置PG/PC介面

 

(4)打開PLCSIM-Advanced,依次按照步驟進行設置:

圖表 6設置PLCSIM-Advanced

 

(5)使用博圖創建一個簡單項目,一定要選擇1500PLC,PLCSIM-Advanced只支援1500PLC,但是對學習通訊來說,沒什麼影響。

(6)勾選允許Put/Get訪問:

圖表 7設置允許PUT GET訪問

 

(7)點擊項目,右擊屬性,將保護中的塊編譯時支援模擬選項勾選:

圖表 8設置塊編譯支援模擬

 

(8)下載PLC程式時,將PG/PC介面設置成Siemens PLCSIM Virtual Ethernet Adapter。

圖表 9選擇PG/PC介面

 

(9)選擇顯示所有兼容的設備,點擊開始搜索,搜索到之後,點擊下載即可。

圖表 10搜索設備下載

 

 03.OPCUA配置

上述過程和搭建S7通訊環境完全一樣,OPCUA其實就是在S7的基礎上,需要先增加一些DB存儲區,然後在DB塊中添加一些變數,這裡不需要去除優化訪問,如下圖所示:

圖表 11新建DB塊

 

       增加完成之後,雙擊CPU,在OPCUA選項中,將激活OPCUA伺服器勾選,如下圖示所示:

圖表 12激活OPCUA伺服器

 

激活OPCUA伺服器之後,選擇運行系統許可證選項,選擇一個OPCUA許可證:

圖表 13選擇OPCUA許可證

 

以上操作完成之後,將PLC程式重新下載,下載步驟如上述一致。

 04.UAExpert通訊測試

上述操作完成之後即完成了整個環境搭建的過程,下面先使用官方的UAExpert進行測試。

圖表 14 UAExpert通訊測試

 

 05.通訊測試平台測試

接著,我們使用新閣的通訊測試平台軟體進行通訊測試,設置伺服器節點為opc.tcp://192.168.1.20:4840(根據實際情況修改),點擊連接,連接成功後,點擊變數管理,即可看到OPCUA伺服器中的所有節點,通過選擇DataBlockGlobal下的KYJDB,找到了我們剛剛配置的變數,選擇想要讀取的變數,然後讀取即可。

圖表 15變數選擇

 

圖表 16新閣通訊測試平台

 

寫在最後:

本文旨在結合SIEMENS推出的一款高功能模擬器PLCSIM-Advanced軟體實現快速搭建OPCUA通訊模擬環境,對於從事上位機開發,想要學習OPCUA通訊,手頭又沒有硬體的學員來說,無疑是一大利好,基於OPCUA與西門子PLC通訊,可以通過變數名稱訪問,而不需要去除DB的優化訪問,這一點非常方便。