S7-1200 Modbus RTU通信概述
(資料信息來源西門官網)
Modbus具有兩種串行傳輸模式:分別為ASCII和RTU。
Modbus是一種單主站的主從通信模式,Modbus網絡上只能有一個主站存在,主站在Modbus網絡上沒有地址,每個從站必須有唯一的地址,從站的地址范圍為0 - 247,其中0為廣播地址,從站的實際地址范圍為1 - 247。Modbus RTU通信以主從的方式進行數據傳輸,在傳輸的過程中Modbus RTU主站是主動方,即主站發送數據請求報文到從站,Modbus RTU從站返回響應報文。
S7-1200以下模塊支持 Modbus RTU通信:
通信模塊/通信板 | 訂貨號 |
CM1241 RS232 | 6ES7 241-1AH32-0XB0 |
CM1241 RS485 | 6ES7 241-1CH30-0XB0 |
CM1241 RS422/485 | 6ES7 241-1CH32-0XB0 |
CB 1241 RS485 | 6ES7 241-1CH30-1XB0 |
1. 使用通信模塊CM 1241 RS232作為Modbus RTU主站時,只能與一個從站通訊。
2. 使用通信模塊CM 1241 RS485作為Modbus RTU主站時,則允許建立Zui多與 32 個從站的通訊。
3. 使用通信板CB 1241 RS485時,CPU 固件必須為 V2.0 或更高版本,且使用軟件必須為STEP 7 Basic V11 或STEP 7 Professional V11 以上更高版本。
S7-1200 Modbus RTU指令
隨著 TIA PORATL 軟件和 S7-1200 CPU 固件的不斷更新,S7-1200 Modbus RTU 指令也出現了不同的版本。用戶需要根據使用的軟件和硬件,正確選擇使用符合要求的 S7-1200 Modbus RTU 指令來實現 Modbus RTU 通信。
軟件,硬件要求和指令版本說明如下。
軟件STEP 7 V11版本開始,可以從“指令”→“通信處理器”→“MODBUS”下直接調用 “MB_COMM_LOAD”和“MB_MASTER”或“MB_SLAVE”指令,如下圖1所示:
圖1 Modbus RTU指令
Modbus RTU指令有兩個版本:分別為V1 和V2。版本V1Zui初在 STEP 7 Basic V10.5 中提供;版本V2 在 STEP 7 Basic/Professional V11 中提供。
TIA V13 SP1版本軟件中提供了2個版本的 Modbus RTU指令。如下圖 2 所示:早期版本的 Modbus RTU 指令(圖2. 中 MODBUS (V2.2))僅可通過 CM1241 通信模塊或 CB1241 通信板進行 Modbus RTU 通信。新版本的Modbus RTU指令(圖2. 中 MODBUS(RTU) V3.0)擴展了Modbus RTU的功能,該指令除了支持 CM1241 通信模塊、CB1241 通信板,還支持PROFINET或PROFIBUS分布式 I/O 機架上的PTP通信模塊實現 Modbus RTU 通信。
注意:新版本 Modbus RTU 指令的使用限制條件
新版本 Modbus RTU 指令通過CM1241通信模塊或CB1241通信板進行Modbus RTU通信時,需要滿足如下條件:a. S7-1200 CPU 的固件版本不能低于V4.1;b. CM1241通信模塊 V2.1 以上或 CB1241。
圖2. 兩個版本 Modbus RTU 指令
1、西門子不提供支持MODBUS-ASCII通信模式的的現成指令,需要用戶自己用自由口模式編程。2、Modbus RTU指令版本 V2 將參數“REQ”和“DONE”添加到“MB_COMM_LOAD”指令。而且,“MB_MASTER”和“MB_SLAVE ”指令的“MB_ADDR ”參數現在允許一個UInt值以進行擴展尋址。3、不能在同一CPU 程序中同時使用V1(V1.x)和V2(V2.y)指令版本。用戶程序的 Modbus 指令必須具有相同的主版本號;主版本組內的各個指令可具有不同的次版本號。4、對S7-1200 通信模塊CM1241組態并編程調用“MB_COMM_LOAD”指令,可將其設置為Modbus RTU通信模式。通過編程調用“MB_MASTER”指令,S7-1200 通信模塊CM1241可作為Modbus RTU主站,或調用“MB_SLAVE”指令,S7-1200 通信模塊CM1241可作為Modbus RTU從站。5、無論S7-1200 通信模塊CM1241作為Modbus RTU主站還是從站,都需要調用“MB_COMM_LOAD”指令進行編程。6、S7-1200 CM1241/CB1241 Modbus RTU 通信支持兩位停止位。S7-1200 CM1241/CB1241屬性里可以設置停止位,但是該模塊用于 Modbus 通信時,此設置的停止位無效,需要在 Modbus_Commload 指令的背景DB里Static修改STOP_BITS停止位數值為2。如下圖3、4所示:
圖3. CM1241 配置停止位參數
Modbus_Commload 指令的背景DB里Static修改STOP_BITS停止位數值為2(默認值=1)
圖4. 修改 Modbus RTU 通信停止位
(資料信息來源西門官網)
TIA V13 SP1版本軟件中提供了2個版本的Modbus RTU指令:
圖1. 兩個版本Modbus RTU指令
早期版本的Modbus RTU指令(圖1中MODBUS (V2.2))僅可通過CM1241通信模塊或CB1241通信板進行Modbus RTU通信。
新版本的Modbus RTU指令(圖1中 MODBUS(RTU) V3.0)擴展了Modbus RTU的功能,該指令除了支持CM1241通信模塊、CB1241通信板,還支持PROFINET或 PROFIBUS分布式I/O機架上的PTP通信模塊實現Modbus RTU通信。
新版本Modbus RTU指令所支持的PTP模塊如下圖2所示:
圖2. 新版本 Modbus RTU指令所支持的PTP模塊
新版本Modbus RTU指令中包含Modbus RTU 主站指令和從站指令。本文以 CPU1217C+CM1241 RS422/485+ET200SP CM PTP 模塊為例,介紹新版本 Modbus RTU 指令主從通信的編程步驟。
其中CPU機架CM1241 RS422/485作為Modbus RTU從站,分布式機架ET200SP中 CMPTP模塊作為Modbus RTU主站。網絡結構圖如下:
圖3. Modubus RTU 網絡通信結構圖
使用到的硬件和軟件如下:
硬件:
① CPU1217C(訂貨號:6ES7 217-1AG40-0XB0),固件版本V4.1.3
② CM1241 RS422/485模塊(訂貨號:6ES7 241-1CH32-0XB0),固件版本V2.1
③ 24V 電源PS307(訂貨號:6ES7307-1KA02-0AA0)
④ ET200 SP IM155-6PN HF(訂貨號:6ES7155-6AU00-0CN0)
⑤ CM PTP模塊(訂貨號:6ES7137-6AA00-0BA0)
軟件:
① TIA V13 SP1 UP 9
- 西門子1200PLC的Modbus(RTU)詳細說明(三) 2024-12-02
- PLC編程實例|基本控制電路設計方法,教你吃透控制原理! 2024-12-02
- 西門子S7-1200 PLC基礎:創建一個完成項目 2024-12-02
- 如何降低電機損耗?這里有妙招 2024-12-02
- 伺服驅動器和伺服電機的區別 2024-12-02
- 線性伺服驅動器在精密運動平臺的應用 2024-12-02
- 工業伺服編碼器應用 2024-12-02
- 液壓伺服控制系統的控制要求 2024-12-02
- 電氣伺服驅動裝置包括直流伺服和交流伺服嗎? 2024-12-02
- 伺服電機加速度的一般范圍 2024-12-02
- 工業控制——PLC電氣控制系統中,如何選擇步進電機和伺服電機 2024-12-02
- 一文讀懂伺服系統組成及其控制原理 2024-12-02
- 詳析面向伺服驅動器的運動控制解決方案 2024-12-02
- 伺服驅動器時不可忽視的那些小細節 2024-12-02
- 伺服系統控制架構解析及應用 2024-12-02
聯系方式
- 電 話:13922889745
- 經理:向小姐
- 手 機:18475208684
- 微 信:18475208684