S7-1200 Modbus-TCP 通訊配置嚮導說明
01
相關使用說明:
(1)
Modbus TCP 客戶端透過 PROFINET 連線進行通訊。
透過“MB_CLIENT”指令,可以在客戶端和伺服器之間建立連線、傳送 Modbus 請求、接收響應並控制 Modbus TCP 客戶端的連線終端。
透過“MB_SERVER”指令將處理 Modbus TCP 客戶端的連線請求、接收並處理 Modbus 請求併發送響應。
(2)
S7-1200 韌體版本 V4。0 支援“MB_CLIENT”指令和最高 V3。1 版本的庫。S7-1200 韌體版本 V4。1 及更高版本和 S7-1500,支援“MB_CLIENT”指令與“MB_SERVER”指令的所有庫版本。
使用該指令時,無需其它任何硬體模組。
(3)
使用各客戶端連線時,請記住以下規則:
▀ 每個“MB_CLIENT”連線都必須使用唯一的背景資料塊。
▀ 對於每個“MB_CLIENT”連線,必須指定唯一的伺服器 IP 地址。
02
MB_CLIENT指令中
MB_MODE、MB_DATA_ADDR和MB_DATA_LEN三個引數組合定義了當前Modbus訊息中所用的功能程式碼,如表
03
準備工作
(1) S7-1200作為伺服器的話,埠號必須是502,作為客戶端埠號是0;
(2) 硬體識別符號一般是64 (16#40)
04
程式設計
(1)客戶端
CONNECT 引腳的指標型別
先建立一個新的全域性資料塊DB, 雙擊開啟新生成的DB塊,定義變數名稱為“aa“,資料型別為“TCON_IP_v4”(可以將 TCON_IP_v4 複製到該對話方塊中),然後點選“回車”按鍵。該資料型別結構建立完畢(
ID號的意義不大在這裡,可以不考慮數值問題,主要是透過IP地址通訊
)
注意: MB_DATA_PTR指定的資料緩衝區可以為DB塊或M儲存區地址中。DB塊可以為最佳化的資料塊,也可以為標準的資料塊結構。若為最佳化的資料塊結構,程式設計時需要以符號定址的方式填寫該引腳;若為標準的資料塊結構(
可以右鍵單擊DB塊,“屬性”中將“最佳化的塊訪問”前面的勾去掉,需要以絕對地址的方式填寫該引腳,這樣便於寫P#格式。
)
(2)伺服器端
CONNECT 引腳的指標型別
先建立一個新的全域性資料塊DB, 雙擊開啟新生成的DB塊,定義變數名稱為“aa”,資料型別為“TCON_IP_v4”(可以將 TCON_IP_v4 複製到該對話方塊中),然後點選“回車”按鍵。該資料型別結構建立完畢(
ID號的意義不大在這裡,可以不考慮數值問題,主要是透過IP地址通訊
)
05
程式設計注意事項:
(1)MODBUS-TCP通訊需要用分時控制各MB_CLIENT功能塊,在同一時間只能有一個MB_CLIENT功能塊的DISCONNET處於OFF(即:建立連線),不然會出現通訊不正常。
(2)不同的MB_CLIENT功能塊暫存器地址範圍注意不要一樣(40001-49999),特別是讀寫時一定不能一樣,容易造成資料混亂,因為讀寫的40001-49999的暫存器地址是同一個區域。
(3)“MB_SERVER”功能塊在伺服器側一般只調用1次。所有客戶端的讀寫資料全部包含在裡面,所以要注意分別。
(4)在修改過CONNECT 引腳的指標引數或埠引數後一般需要PLC重新啟動才有效。
06
實際案列程式:
(1)客戶端程式
(2)伺服器端程式
#FormatImgID_53##FormatImgID_54#
(3)引數狀態說明