Modbus TCP是標(biāo)準(zhǔn)的網(wǎng)絡(luò)通信協(xié)議,通過(guò)CPU上PN接口進(jìn)行TCP/IP通信,不需要額外的通信硬件模塊,Modbus TCP使用開(kāi)放式用戶通信連接作為Modbus通信路徑,所支持的混合客戶機(jī)和服務(wù)器連接數(shù)最大為CPU所允許的最大開(kāi)放式用戶通信連接數(shù)8個(gè)。
軟件 STEP7 V11 SP1版本開(kāi)始,S7-1200CPU 從Firmware V1.0.2開(kāi)始,不再需要安裝Modbus TCP的庫(kù)文件,可以直接調(diào)用Modbus TCP的庫(kù)指令“MB_CLIENT”和“MB_SERVER”使用實(shí)現(xiàn)Modbus TCP通信功能,如圖1所示。
圖1. Modbus TCP的庫(kù)指令
S7-1200 做 Modbus Tcp Server (服務(wù)器)
“MB_SERVER”指令將處理Modbus TCP客戶機(jī)的連接請(qǐng)求、接收Modbus功能的請(qǐng)求并發(fā)送響應(yīng)。
1.調(diào)用MB_SERVER通信指令,進(jìn)入 “Program blocks” 》 “OB1” 主程序中調(diào)用,設(shè)置連接ID、IP端口等參數(shù),如下圖2所示。
圖2.調(diào)用MB_SERVER通信指令
功能塊參數(shù)意義如下表5.
表1. 功能塊“MB_SERVER”參數(shù)
2.MB_DATA_PTR數(shù)據(jù)塊的新建
通過(guò)“Program blocks”》“Add new block”,選擇“Data block”創(chuàng)建 DB 塊,選擇“標(biāo)準(zhǔn)與S7- 300/400兼容” ,點(diǎn)擊“OK”鍵,定義數(shù)據(jù)區(qū)為100個(gè)字的數(shù)組,如圖3所示。
圖3.新建MB_DATA_PTR數(shù)據(jù)塊
3.Modbus地址的對(duì)應(yīng)關(guān)系
“MB_SERVER”指令允許到達(dá)的Modbus功能(FC01、FC02、FC04、FC05、FC15)直接讀取和寫(xiě)入訪問(wèn)S7-1200CPU的過(guò)程映像輸入/輸出區(qū)(數(shù)據(jù)類(lèi)型:BOOL和WORD),通過(guò)Modbus功能代碼(FC03、FC06和FC16)將到達(dá)的Modbus消息寫(xiě)入Modbus保持寄存器或從寄存器中讀?。赏ㄟ^(guò)MB_SERVER指令的參數(shù)“MB_HOLD_REG”指定保持寄存器),保持寄存器的大小(MB_HOLD_REG參數(shù))必須大于1個(gè)字節(jié),詳細(xì)參考表2.。
表2.Modbus地址的對(duì)應(yīng)關(guān)系
4.客戶機(jī)端 Modscan32 軟件設(shè)置
注意:客戶機(jī)采用Modscan32軟件測(cè)試,Modscan32 做 Modbus TCP Client 測(cè)試軟件,是第三方軟件,可以從 internet 網(wǎng)絡(luò)上下載。
將測(cè)試電腦的IP地址設(shè)置成192.168.0.210,打開(kāi)Modscan32 軟件,在Modscan32的“Setup-》Data Definition”中設(shè)置功能碼、起始地址、長(zhǎng)度等,如圖4所示。
圖4.設(shè)置“Data Definition”參數(shù)
在“Connection-》connect.。.”中打開(kāi)連接屬性對(duì)話框,選擇“Remote modbus TCP Server”,設(shè)置服務(wù)器的IP地址,端口號(hào),如圖5所示。
圖5.設(shè)置連接屬性
注意:用Modsscan32做客戶機(jī)不需要考慮Device ID和服務(wù)器一致的情況,服務(wù)器自動(dòng)響應(yīng)客戶機(jī)的Device ID。
5.通訊測(cè)試
S7-1200作服務(wù)器,客戶機(jī)Modscan32用FC03功能碼讀取服務(wù)器的兩個(gè)字,設(shè)置客戶機(jī)和服務(wù)器的功能、起始地址、端口等參數(shù)相對(duì)應(yīng),具體設(shè)置如圖5~6所示,
圖6.S7-1200作服務(wù)器
通訊結(jié)果如下圖7所示,Modscan32從服務(wù)器讀到數(shù)據(jù)10,20到客戶機(jī)的DB4.DBW0和DB4.DBW2區(qū)域。
圖7.FC03通訊結(jié)果
用功能FC15向服務(wù)器的Q0.0~Q0.7寫(xiě)8位數(shù)據(jù),設(shè)置連接參數(shù),Modscan32設(shè)置結(jié)果如下圖8所示。
圖8.使用FC15通訊,設(shè)置Modscan32
測(cè)試結(jié)果,服務(wù)器側(cè)直接對(duì)應(yīng)過(guò)程映像輸出區(qū),00001~00008對(duì)應(yīng)Q0.0~Q0.7,如下圖9所示。
圖9. 使用FC15通訊測(cè)試結(jié)果
6.HR_Start_Offset背景參數(shù)
HR_Start_Offset是類(lèi)型為字,用于指定Modbus保持寄存器的起始地址,存儲(chǔ)在MB_SERVER背景數(shù)據(jù)塊中,默認(rèn)值是0,可以通過(guò)編程將值寫(xiě)入HR_Start_Offset。以上面FC03功能讀2個(gè)字為例,將HR_Start_Offset的偏移量設(shè)置成2,其他參數(shù)不修改,HR_Start_Offset偏移前后地址對(duì)應(yīng)關(guān)系如下表7,編程調(diào)用和結(jié)果如圖10~11所示。
表3. HR_Start_Offset偏移前后地址對(duì)應(yīng)關(guān)系
編程調(diào)用如下圖10所示
圖10.HR_Start_Offset的偏移量設(shè)置
通訊結(jié)果如下圖11所示
圖11. 通訊結(jié)果
7.MB_SERVER參數(shù)STATUS的查詢參考下面列表4.
表4.MB_SERVER參數(shù)STATUS
審核編輯:郭婷
-
接口
+關(guān)注
關(guān)注
33文章
8693瀏覽量
151923 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9306瀏覽量
86069 -
TCP
+關(guān)注
關(guān)注
8文章
1378瀏覽量
79303
原文標(biāo)題:S7-1200集成PN接口MODBUS TCP通信概述
文章出處:【微信號(hào):gh_a8b121171b08,微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論