S7-1200 MODBUS TCP通信多請求處理
單獨的客戶機連接需要遵循的規則:
1.每個“MB_CLIENT”連接需要使用一個不同的背景數據塊;
2.每個“MB_CLIENT”連接必須指定一個服務器IP地址;
3.每個“MB_CLIENT”連接必須指定一個唯一的連接ID;
4.是否需要唯一的IP端口號取決于服務器組態;
連接ID和背景數據塊組合成對,對每個連接來說,組合對都是唯一的。
對于多請求處理,有兩種方法:
方法一:如果TCP連接充裕,可以建立多個不同的連接發送請求,即每個請求使用一個獨立的連接,調用獨立的“MB_CLIENT”功能塊,具體操作參考“Modbus TCP”部分。
通過不同的連接發送多個請求,“MB_CLIENT”功能塊多次調用,但是需要使用不同的背景數據塊,不同的ID號和不同的端口號。
方法二:通過公共的連接發送多個請求。
通過公共的連接發送多個請求,“MB_CLIENT”功能塊多次調用,但是需要使用相同的背景數據塊,連接ID號,IP地址和端口號。
在任意時間,只能有一個MB_CLIENT請求處于激活狀態,在一個請求完成執行后,下一個請求再開始執行,輪循處理。
方法二特例:MODBUS TCP客戶端訪問網關后的多個MODBUS RTU從站
方法二輪循處理的操作
一.軟硬件要求
MB_Client/Server指令的使用要求:軟件 V11 SP1及以上版本,CPU固件版本V1.02及以上版本。
二.測試條件
硬件:CPU 1214C(DC/DC/DC) V4.4 ,電腦(ModSim32 調試軟件);
軟件:TIA PORTAL STEP 7 V16
實驗:S7-1200作Modbus TCP客戶機,用FC03功能對調試軟件先后進行讀取40001開始的2個字以及40003開始的2個字。
三.組態配置
1.S7-1200的IP地址192.168.1.218,將系統存儲器字節設置為MB1,如圖1所示,圖2所示。
圖1 IP地址設置
圖2 系統存儲器字節設置
2.ModSim32 調試軟件設置
服務器采用ModSim32 軟件測試,首先將測試電腦的IP地址設置成192.168.1.216,如圖3所示,打開ModSim32 軟件,在設置功能碼FC03、起始地址、長度、設備ID等,如圖4所示。
圖3 電腦的IP地址
圖4 ModSim32 調試軟件的從站設置
在“Connection”中選擇“Modbus/TCP Svr”,設置本地服務器端口號為502,如圖5所示。
圖5 連接設置
四.編程
1.新建數據塊
如圖6所示,新建DB,添加變量類型為TCON_IP_V4,設置InterfaceId,ID,ActiveEstablished,RemoteAddress,RemotePort等參數,具體含義參見鏈接。
圖6 設置連接變量
如圖7所示,在DB中建立結構數組,用于輪詢控制位以及數據,其中元素0用于第一次讀取,元素1用于第二次讀取。Init用于初始標志位。
圖7 輪詢數據
2.編寫輪循功能
1)如圖8所示,用“FirstScan”在第一次掃描中將初始標志位置位。
圖8 初始化標志位
2)如圖9所示,程序段2中,第二步的完成位或者錯誤位去置位第一步的使能位復位第二步的使能位,同時復位第二步的完成位、錯誤位、觸發的沿變量。
程序段3中,一般情況下是EN通過第一步的使能位使能,REQ通過使能位的上升沿觸發,設置模式、讀取數據地址、長度、存儲地址、連接數據、完成、錯誤位等。此外需要考慮第一次觸發輪詢,可以使用手動觸發,在這里使用初始化標志位實現指令的第一次使能,去進行CPU和調試軟件的TCP連接,使用Connected標志位觸發第一次的REQ觸發。
圖9 請求1觸發
如圖10所示,程序段4中,第一步的完成位或者錯誤位去置位第二步的使能位復位第一步的使能位,同時復位第一步的完成位、錯誤位、觸發的沿變量,Zui后復位初始化標志位,確保第一個MB_CLIENT不會一直接通。
程序段5中,EN通過第二步的使能位使能,REQ通過使能位的上升沿觸發,設置模式、讀取數據地址、長度、存儲地址、連接數據、完成、錯誤位等。
圖10 請求2觸發
五.通訊測試
通訊結果如圖11 所示。
圖11 測試結果
注意:
1.如果需要更多的讀寫任務可以按照例子自行添加。2.ModSim32 是做 Modbus RTU從站以及Modbus TCP服務器的測試軟件,是第三方軟件,可以從網絡上下載。
- 西門子S7-1200 Zui大 I/O 能力計算 2024-11-23
- 關于西門子產品合格證的說明 2024-11-23
- 西門子NET OPC Server 與 S7-1200 CM1242-5 的 DP 主從通信 2024-11-23
- 西門子三菱臺達編程軟件優缺點對比 2024-11-23
- 一分鐘帶你了解西門子S7-200 SMART 2024-11-23
- 西門子1200如何計算連接資源 2024-11-23
- 西門子S7-1200運動控制功能 2024-11-23
- 什么是西門子OPC UA?一分鐘告訴你 2024-11-23
- 西門子安全模塊替代方案3SK2 2024-11-23
- 西門子S7-1200 PWM 功能 2024-11-23
- 西門子S7-1200作為智能IO設備和CP343-1的 Profinet 通信 2024-11-23
- 西門子GetError 與 GetErrorID 指令的使用 2024-11-23
- 西門子S7-1200 如何創建 AT 覆蓋變量 2024-11-23
- 西門子安全程序中的反饋監視 2024-11-23
- 西門子安全模塊的Zui大回讀周期如何設定 2024-11-23
聯系方式
- 電 話:13510737515
- 聯系人:董海波
- 手 機:13185520415
- 微 信:13185520415