S7-1200 MODBUS TCP 通信多請(qǐng)求處理
單獨(dú)的客戶機(jī)連接需要遵循的規(guī)則:
1. 每個(gè)“MB_CLIENT”連接需要使用一個(gè)不同的背景數(shù)據(jù)塊;
2. 每個(gè)“MB_CLIENT”連接必須指定一個(gè)服務(wù)器 IP 地址;
3. 每個(gè)“MB_CLIENT”連接必須指定一個(gè)唯一的連接 ID;
4. 是否需要唯一的 IP 端口號(hào)取決于服務(wù)器組態(tài);
連接 ID 和背景數(shù)據(jù)塊組合成對(duì),對(duì)每個(gè)連接來(lái)說(shuō),組合對(duì)都是唯一的。
對(duì)于多請(qǐng)求處理,有兩種方法:
方法一:如果 TCP 連接充裕,可以建立多個(gè)不同的連接發(fā)送請(qǐng)求,即每個(gè)請(qǐng)求使用一個(gè)獨(dú)立的連接,調(diào)用獨(dú)立的“MB_CLIENT”功能塊,具體操作參考“Modbus TCP”部分,鏈接。
通過(guò)不同的連接發(fā)送多個(gè)請(qǐng)求,“MB_CLIENT”功能塊多次調(diào)用,但是需要使用不同的背景數(shù)據(jù)塊,不同的 ID 號(hào)和不同的端口號(hào)。
方法二:通過(guò)公共的連接發(fā)送多個(gè)請(qǐng)求
這個(gè)方法適合 CPU 訪問(wèn)一個(gè) Modbus TCP 服務(wù)器,但是有多個(gè)作業(yè)的情況,例如有讀也有寫(xiě),或者讀多個(gè)區(qū)域等。
通過(guò)公共的連接發(fā)送多個(gè)請(qǐng)求,“MB_CLIENT”功能塊多次調(diào)用,但是需要使用相同的背景數(shù)據(jù)塊,連接 ID 號(hào),IP 地址和端口號(hào),根據(jù)需要修改模式、地址、長(zhǎng)度、指針等。
在任意時(shí)間,只能有一個(gè) MB_CLIENT 請(qǐng)求處于激活狀態(tài),在一個(gè)請(qǐng)求完成執(zhí)行后,下一個(gè)請(qǐng)求再開(kāi)始執(zhí)行,輪循處理。
方法二特例:MODBUS TCP 客戶端訪問(wèn)網(wǎng)關(guān)后的多個(gè) MODBUS RTU 從站
這個(gè)方法適合 CPU 通過(guò) Modbus TCP 轉(zhuǎn) Modbus RTU 網(wǎng)關(guān),訪問(wèn)網(wǎng)關(guān)后多個(gè) Modbus RTU 從站數(shù)據(jù)。CPU 僅僅和網(wǎng)關(guān)建立一個(gè) Modbus TCP 連接,就可以訪問(wèn)多個(gè)站的數(shù)據(jù)。
通過(guò)公共的連接發(fā)送多個(gè)請(qǐng)求,“MB_CLIENT”功能塊多次調(diào)用,但是需要使用相同的背景數(shù)據(jù)塊,連接 ID 號(hào),IP 地址和端口號(hào)。參數(shù)“ MB_Unit_ID ” 使用不同的值,根據(jù)需要修改模式、地址、長(zhǎng)度、指針等。
在任意時(shí)間,只能有一個(gè) MB_CLIENT 請(qǐng)求處于激活狀態(tài),在一個(gè)請(qǐng)求完成執(zhí)行后,下一個(gè)請(qǐng)求再開(kāi)始執(zhí)行,輪循處理。
方法二輪循處理的操作
一。軟硬件要求
MB_Client 指令的使用要求:軟件 V11 SP1 及以上版本,CPU 固件版本 V1.02 及以上版本。
二。測(cè)試條件
硬件:CPU 1214C(DC/DC/DC) V4.5 ,電腦(ModSim32 調(diào)試軟件);
軟件:TIA PORTAL STEP 7 V17
實(shí)驗(yàn):S7-1200 作 Modbus TCP 客戶機(jī),用功能碼 3 對(duì)調(diào)試軟件先進(jìn)行讀取地址 40001 開(kāi)始的 2 個(gè)字,然后用功能碼 16 對(duì)地址 40003 開(kāi)始的 2 個(gè)字進(jìn)行寫(xiě)入。
三。組態(tài)配置
1. S7-1200 的 IP 地址192.168.1.42,如圖 1 所示。
圖 1. IP 地址設(shè)置
2. ModSim32 調(diào)試軟件設(shè)置
服務(wù)器采用 ModSim32 軟件測(cè)試,首先將測(cè)試電腦的 IP 地址設(shè)置成192.168.1.201,如圖 2 所示。
圖 2. 電腦的 IP 地址
打開(kāi) ModSim32 軟件,然后通過(guò) “File”》“New”,新建設(shè)置 03 地址區(qū)、起始地址 40001、長(zhǎng)度 4、設(shè)備 ID 255 等,如圖 3 所示。
圖 3. ModSim32 調(diào)試軟件的從站設(shè)置
在“Connection”中選擇“Modbus/TCP Svr”,設(shè)置本地服務(wù)器端口號(hào)為 502,如圖 4 所示。
圖 4. 連接設(shè)置
四。編程
1. 新建 FB
如圖 5 所示,新建 FB,命名為 Comm,在靜態(tài)變量中增加參數(shù)。
圖 5. 設(shè)置 FB 參數(shù)
參數(shù)含義參見(jiàn)表 1:
表 1. FB 接口參數(shù)含義
2. 編寫(xiě)輪循功能
如圖 6 所示,例子中使用 SCL 的 CASE OF 方式編寫(xiě)輪詢程序,SCL 的 CASE OF 指令編寫(xiě)順控可以參考鏈接:文檔。
思路如下:
步驟 0:等待連接建立,當(dāng)連接建立則跳轉(zhuǎn)到步驟 1。
步驟 1:設(shè)置讀取參數(shù),觸發(fā)讀取,當(dāng)讀取正常后,將讀取到的數(shù)據(jù)存入指定數(shù)據(jù)區(qū),然后跳轉(zhuǎn)到步驟 2,如果故障則跳轉(zhuǎn)到步驟 100。
步驟 2:設(shè)置寫(xiě)入?yún)?shù),將待寫(xiě)入數(shù)據(jù)送入指定區(qū)域,觸發(fā)寫(xiě)入,當(dāng)寫(xiě)入正常后,跳轉(zhuǎn)到步驟 1,如果故障則跳轉(zhuǎn)到步驟 100。
步驟 100:當(dāng)故障消失,則跳轉(zhuǎn)到步驟 0。
如果有更多的讀寫(xiě)需要,可以建立更多的步驟。
以下程序的源文件壓縮包鏈接:源文件。將壓縮包下載解壓縮后,得到文件“Comm.scl”,然后在 TIA Portal 項(xiàng)目中導(dǎo)入即可使用,導(dǎo)入源文件方式參見(jiàn)鏈接:文檔。
以下例程僅供參考。讀者如欲采納,風(fēng)險(xiǎn)自擔(dān)。
圖 6. 例子程序
3. 在主程序中調(diào)用該 FB,如圖 7 所示。
圖 7. 調(diào)用程序
五。通訊測(cè)試
對(duì) FB 背景數(shù)據(jù)塊與 Modsim32 軟件進(jìn)行監(jiān)視,如圖 8 所示。
圖 8. 測(cè)試結(jié)果
注意:
如果需要更多的讀寫(xiě)任務(wù)可以按照例子自行添加。
ModSim32 是做 Modbus RTU 從站以及 Modbus TCP 服務(wù)器的測(cè)試軟件,是第三方軟件,可以從網(wǎng)絡(luò)上下載。
方法二特例輪循處理的操作
一。軟硬件要求
MB_Client 指令的使用要求:軟件 V11 SP1 及以上版本,CPU 固件版本 V1.02 及以上版本。
二。測(cè)試條件
硬件:CPU 1214C(DC/DC/DC) V4.5 ,電腦(ModSim32 調(diào)試軟件);
軟件:TIA PORTAL STEP 7 V17
實(shí)驗(yàn):S7-1200 作 Modbus TCP 客戶機(jī),用功能碼 3 對(duì)調(diào)試軟件先后進(jìn)行讀取 ID 為 1 的 40001 開(kāi)始的 2 個(gè)字以及 ID 為 2 的 40003 開(kāi)始的 2 個(gè)字。
該實(shí)驗(yàn)仿真讀取 Modbus TCP 轉(zhuǎn) Modbus RTU 網(wǎng)關(guān)后的多個(gè) Modbus RTU 從站數(shù)據(jù)的功能。
三。組態(tài)配置
1. CPU 硬件組態(tài)參考圖 1 的設(shè)置。
2. 電腦 IP 地址設(shè)置參考圖 2 的設(shè)置。
3. ModSim32 通過(guò) “File”》“New”,新建 2 個(gè)文件,設(shè)置 03 地址區(qū)、起始地址 40001、長(zhǎng)度 2、設(shè)備 ID 分別是 1 和 2,如圖 9 所示。然后參考圖 4 進(jìn)行連接設(shè)置。
圖 9. ModSim32 的設(shè)置
四。編程
1. 新建 FB
如圖 10 所示,新建 FB,命名為 CommUnitId,在靜態(tài)變量中增加參數(shù)。
圖 10. 設(shè)置 FB 參數(shù)
參數(shù)含義參見(jiàn)表 2:
表 2. FB 接口參數(shù)含義
2. 編寫(xiě)輪循功能
如圖 11 所示,例子中使用 SCL 的 CASE OF 方式編寫(xiě)輪詢程序,SCL 的 CASE OF 指令編寫(xiě)順控可以參考鏈接:文檔。
思路如下:
步驟 0:等待連接建立,當(dāng)連接建立則跳轉(zhuǎn)到步驟 1。
步驟 1:設(shè)置讀取參數(shù),設(shè)置 MB_Unit_ID = 1,觸發(fā)讀取,當(dāng)讀取正常后,將讀取到的數(shù)據(jù)存入指定數(shù)據(jù)區(qū),然后跳轉(zhuǎn)到步驟 2,如果故障同樣跳轉(zhuǎn)到步驟 2,如果連接中斷則跳轉(zhuǎn)到步驟 0。
步驟 2:設(shè)置讀取參數(shù),設(shè)置 MB_Unit_ID = 2,觸發(fā)讀取,當(dāng)讀取正常后,將讀取到的數(shù)據(jù)存入指定數(shù)據(jù)區(qū),然后跳轉(zhuǎn)到步驟 1,如果故障同樣跳轉(zhuǎn)到步驟 1,如果連接中斷則跳轉(zhuǎn)到步驟 0。
如果有更多的讀寫(xiě)需要,可以建立更多的步驟。
以下程序的源文件壓縮包鏈接:源文件。將壓縮包下載解壓縮后,得到文件“CommUnitId.scl”,然后在 TIA Portal 項(xiàng)目中導(dǎo)入即可使用,導(dǎo)入源文件方式參見(jiàn)鏈接:文檔。
以下例程僅供參考。讀者如欲采納,風(fēng)險(xiǎn)自擔(dān)。
圖 11. 例子程序
3. 在主程序中調(diào)用該 FB,如圖 12 所示。
圖 12. 調(diào)用程序
五。通訊測(cè)試
通訊結(jié)果如圖 13 所示。
圖 13. 測(cè)試結(jié)果
審核編輯:郭婷
-
服務(wù)器
+關(guān)注
關(guān)注
13文章
9786瀏覽量
87910 -
TCP
+關(guān)注
關(guān)注
8文章
1402瀏覽量
81003
原文標(biāo)題:S7-1200 MODBUS TCP 通信多請(qǐng)求處理
文章出處:【微信號(hào):gh_a8b121171b08,微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
Modbus TCP轉(zhuǎn)Profinet網(wǎng)關(guān)實(shí)現(xiàn)視覺(jué)相機(jī)與西門(mén)子PLC配置實(shí)例研究

西門(mén)子PLC(S7-1200/1500/300/400)的數(shù)據(jù)采集與監(jiān)控方案
西門(mén)子S7-1200 G2的7大亮點(diǎn)及最新功能

S7-200Smart與S7-1200通過(guò)Modbus協(xié)議對(duì)接到上位機(jī)

EtherNetIP轉(zhuǎn)MODBUS TCP協(xié)議轉(zhuǎn)換網(wǎng)關(guān)實(shí)現(xiàn)西門(mén)子S7-1200與ABB IRB6700基礎(chǔ)通信配置

S7-1200與歐姆龍智能儀表Modbus通信案例

MODBUS轉(zhuǎn)PROFINET網(wǎng)關(guān)在污水處理廠變頻系統(tǒng)的一站式解決方案

RS485MODBUS轉(zhuǎn)PROFINET網(wǎng)關(guān)配置安川變頻器接入1200PROFINET通訊

分布式IO模塊與S7-1200 PLC:打造高效分揀系統(tǒng)的新引擎

如何選擇適合的西門(mén)子S7-1200系列PLC型號(hào)?

代際躍升丨Modbus轉(zhuǎn)Profinet網(wǎng)關(guān)與伺服的智能之旅

如何用 S7-200 實(shí)現(xiàn) Modbus 通信?
如何快速實(shí)現(xiàn)MODBUS TCP轉(zhuǎn)Profinet——泗博網(wǎng)關(guān)EPN-330

評(píng)論