基於PLCSIM-Advanced搭建ModbusTCP通訊模擬環境

寫在前面:

當我們學習Modbus TCP時,我們可以採用Modbus Poll + Modbus Slave快速搭建一個Modbus TCP的環境,看似很美好,但是深入學習之後,大家就會發現Modbus Slave的一個弊端,Modbus Slave只能模擬4個儲存區中的1個儲存區,如果我們通訊時,涉及到多個儲存區,那麼Modbus Slave就很難滿足要求了。這時候,有的人就會問,有沒有方法解決這個問題,搭建一個Modbus TCP伺服器,並且同時支援4個儲存區呢?答案是有的,今天主要講述如何基於S7-PLCSIM Advanced搭建Modbus TCP伺服器模擬環境。

1、PLCSIM-Advanced安裝

對於該軟體的獲取,大家可以去西門子相關網站下載,也可以透過下方連結獲取:

【免費領取】這個免費的軟體資源庫,你一定要收藏好!

mp。weixin。qq。com/s/EIRXVHY74rSCvzsC5JkEmQ

基於PLCSIM-Advanced搭建ModbusTCP通訊模擬環境

PLCSIM Advanced軟體

PLCSIM-Advanced的安裝也比較簡單,基本上是一路NEXT即可,但是主要的是PLCSIM-Advanced會依賴WinPcap軟體,所以大家可以提前安裝好WinPcap,即使不提前安裝,安裝過程中也會提示你安裝的,如果按照WinPcap提示Windows版本不相容,請以相容模式執行應用程式。

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

基於PLCSIM-Advanced搭建ModbusTCP通訊模擬環境

網絡卡列表

2、PLCSIM-Advanced使用

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

基於PLCSIM-Advanced搭建ModbusTCP通訊模擬環境

PLCSIM Advanced圖示

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

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

基於PLCSIM-Advanced搭建ModbusTCP通訊模擬環境

設定管理員許可權執行

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

(3)設定PG/PC介面:

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

基於PLCSIM-Advanced搭建ModbusTCP通訊模擬環境

設定PG/PC介面

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

基於PLCSIM-Advanced搭建ModbusTCP通訊模擬環境

設定PLCSIM-Advanced

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

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

基於PLCSIM-Advanced搭建ModbusTCP通訊模擬環境

設定允許PUT GET訪問

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

基於PLCSIM-Advanced搭建ModbusTCP通訊模擬環境

設定塊編譯支援模擬

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

基於PLCSIM-Advanced搭建ModbusTCP通訊模擬環境

選擇PG/PC介面

(9)選擇顯示所有相容的裝置,點選開始搜尋,搜尋到之後,點選下載即可。

基於PLCSIM-Advanced搭建ModbusTCP通訊模擬環境

搜尋裝置下載

3、Modbus TCP伺服器配置

ModbusTCP伺服器配置需要編寫一段PLC程式,從指令庫中拖拽一個MB_SERVER指令到OB中,如下圖所示:

基於PLCSIM-Advanced搭建ModbusTCP通訊模擬環境

MB_HOLD_REG中直接填寫P#M100。0 byte 100,將MB100-MB199與40001-40050對映,CONNECT填寫一個CONN變數,如下圖所示:

基於PLCSIM-Advanced搭建ModbusTCP通訊模擬環境

CONNECT引腳需要填寫一個TCON_IP_v4的結構體,建立一個DB2,新增一個變數,型別為TCON_IP_v4,如下圖所示:

基於PLCSIM-Advanced搭建ModbusTCP通訊模擬環境

CONNECT引腳各個引數填寫格式如下圖所示:

基於PLCSIM-Advanced搭建ModbusTCP通訊模擬環境

按照幫助給CONN變數賦初始值,如下圖所示:

基於PLCSIM-Advanced搭建ModbusTCP通訊模擬環境

將PLC程式下載到PLCSIM-Advanced中。

4、Modbus Poll通訊測試

我們使用ModbusPoll軟體進行測試,IP地址填寫192。168。1。20,埠號填寫502,如下圖所示:

基於PLCSIM-Advanced搭建ModbusTCP通訊模擬環境

連線成功後,與PLC資料進行對比,看看資料是否正確,結果如下圖所示:

基於PLCSIM-Advanced搭建ModbusTCP通訊模擬環境

5、通訊測試平臺測試

我們使用通訊測試平臺軟體進行通訊測試,設定IP地址為192。168。1。20,埠號為502,點選連線,連線成功後,設定儲存區為輸出暫存器4x,起始地址為0,讀取長度為6,資料型別為Float,點選讀取,讀取結果如下圖所示:

基於PLCSIM-Advanced搭建ModbusTCP通訊模擬環境