<sup id="x7dny"><rp id="x7dny"><big id="x7dny"></big></rp></sup>
    • <label id="x7dny"><tt id="x7dny"><tfoot id="x7dny"></tfoot></tt></label>
      <dfn id="x7dny"></dfn>
      <small id="x7dny"><rp id="x7dny"><rt id="x7dny"></rt></rp></small>
      加入收藏 在線留言 聯系我們
      關注微信
      手機掃一掃 立刻聯系商家
      全國服務熱線18475208684
      公司新聞
      西門子S7-1200 Modbus RTU通信及V3版指令功能
      發布時間: 2024-04-15 16:17 更新時間: 2024-12-02 08:00

      第一部分: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 RS2326ES7241-1AH32-0XB0
      CM1241 RS422/4856ES7241-1CH32-0XB0
      CB 1241 RS4856ES7241-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 以上更高版本。

      (二)Modbus RTU指令版本與限制

      隨著博途軟件和 S7-1200 CPU 固件的不斷更新,S7-1200 Modbus RTU 指令也出現了不同的版本。用戶需要根據使用的軟件和硬件,正確選擇使用符合要求的 S7-1200 Modbus RTU 指令來實現 Modbus RTU 通信,其軟件和硬件要求和指令版本說明如下。

      (1)博途中的 S7-1200 Modbus RTU 指令

      博途中提供了2個版本的 Modbus RTU指令。如下圖 1 所示:

      早期版本的 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 通信。

      (2)新版本 Modbus RTU 指令的使用限制條件
      新版本 Modbus RTU 指令通過CM1241通信模塊或CB1241通信板進行Modbus RTU通信時,需要滿足如下條件:
      a. S7-1200 CPU 的固件版本不能低于V4.1
      b. CM1241通信模塊 V2.1 以上或 CB1241

      圖片

      圖1. 兩個版本 Modbus RTU 指令

      (三)常見問題

      (1)S7-1200 是否支持 Modbus ASCII 通信模式?西門子不提供支持上述通信模式的的現成指令,需要用戶自己用自由口模式編程。(2)Modbus RTU指令V1和V2兩個版本有什么區別?Modbus RTU指令版本 V2 將參數 “REQ” 和 “DONE” 添加到“MB_COMM_LOAD”指令。而且,“MB_MASTER”和“MB_SLAVE ”指令的“MB_ADDR ”參數現在允許一個 UInt 值以進行擴展尋址。


      (3)同一CPU程序中是否可以同時使用V1和V2兩個不同版本的Modbus RTU指令?不能在同一CPU 程序中同時使用V1(V1.x)和V2(V2.y)指令版本。用戶程序的 Modbus 指令必須具有相同的主版本號;主版本組內的各個指令可具有不同的次版本號。(4)S7-1200 通信模塊CM1241是否可作為Modbus RTU主站或作為Modbus RTU從站?對S7-1200 通信模塊CM1241組態并編程調用“MB_COMM_LOAD”指令,可將其設置為Modbus RTU通信模式。通過編程調用“MB_MASTER”指令,S7-1200 通信模塊CM1241可作為Modbus RTU主站,或調用“MB_SLAVE”指令,S7-1200 通信模塊CM1241可作為Modbus RTU從站。注意:無論S7-1200 通信模塊CM1241作為Modbus RTU主站還是從站,都需要調用“MB_COMM_LOAD”指令進行編程。(5)S7-1200 CM1241/CB1241 Modbus RTU 通信是否支持兩位停止位?支持。注意:S7-1200 CM1241/CB1241屬性里可以設置停止位, 但是該模塊用于 Modbus 通信時,此設置的停止位無效, 需要在 Modbus_Commload 指令的背景 DB 里 Static 修改 STOP_BITS停止位數值為 2。如下圖 2-3所示:

      圖片

      圖2. CM1241 配置停止位參數

      Modbus_Commload 指令的背景 DB 里 Static 修改 STOP_BITS停止位數值為 2(默認值=1)

      圖片

      圖3. 修改 Modbus RTU 通信停止位

      第二部分:V3版指令功能

      (一)Modbus RTU指令概述

      博途V13 SP1版本軟件中提供了2個版本的Modbus RTU指令:

      圖片

      圖1. 兩個版本Modbus RTU指令

      (1)早期版本的Modbus RTU指令(圖1. 中 MODBUS (V2.2))僅可通過CM1241通信模塊或CB1241通信板進行Modbus RTU通信。
      (2)新版本的 Modbus RTU指令(圖1. 中 MODBUS(RTU) V3.0)擴展了Modbus RTU的功能,該指令除了支持CM1241通信模塊、CB1241通信板,還支持 PROFINET 或 PROFIBUS 分布式 I/O 機架上的PTP通信模塊實現Modbus RTU通信。(3)新版本 Modbus RTU指令所支持的PTP模塊如下圖2所示:

      圖片

      圖2. 新版本 Modbus RTU指令所支持的PTP模塊

      (二)Modbus RTU指令實例環境介紹

      新版本Modbus RTU指令中包含Modbus RTU 主站指令和從站指令。本文以 CPU1217C+CM1241 RS422/485+ET200SP CM PTP 模塊為例,介紹新版本 Modbus RTU 指令主從通信的編程步驟。其中CPU 機架CM1241 RS422/485作為Modbus RTU從站,分布式機架ET200SP 中 CMPTP 模塊作為Modbus RTU主站。

      1、網絡結構圖如下:

      圖片

      圖3. Modubus RTU 網絡通信結構圖

      2、本項目中使用到的硬件和軟件如下:

      (1)硬件:
      ① 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)

      (2)軟件:
      ① 博途SP1 UP 9

      (三)實例之設備組態1、組態CM1241 RS422/485模塊

      (1)打開設備視圖,添加S7-1200CPU,并在硬件目錄里找到“通信模塊”→“點到點”→“CM1241(RS422/485)”,拖拽此模塊至CPU左側即可,如下圖4所示:

      圖片

      圖4. 添加 CM 1241 RS422/485模塊

      注意:固件版本>=V2.1 的CM 1241 RS422/485模塊,才支持新版本Modbus RTU指令。

      (2)接下來,在“設備視圖”中用鼠標選中CM1241(RS422/485)模塊,在“屬性”→“端口組態”中配置此模塊硬件接口參數,本例以傳輸率=9.6Kbps,奇偶校驗=無奇偶校驗,數據位=8位字符,停止位=1為例。如CM 1241 端口組態設置如下圖5所示:

      圖片圖5. CM1241 RS422/485 模塊端口組態

      (3)Zui后在“硬件標識符”里確認一下硬件標識符為269(該參數在程序編程中會被使用),如下圖6所示:

      圖片

      圖6 硬件標識符

      (4)另外,S7-1200 還提供了系統和時鐘存儲器功能,為了便于后續指令,建議使能該功能。在CPU “屬性”→“常規”→“系統和時鐘存儲器”使能系統和時鐘存儲器功能,如圖7所示。

      圖片

      圖7. 系統和時鐘存儲器功能

      2、組態ET200 SP CM PtP 模塊(1)插入一個ET200SP分布式站點,打開網絡視圖并拖入一個ET200SP站點,并將其分配給相應的IO 控制器(本例CPU1217C 為 IO 控制器),如圖8所示:

      圖片

      圖8. 插入ET200SP站點

      (2)組態ET200SP 站點,在ET200SP的"設備視圖"環境下,為ET200SP 站點添加信號、通信模塊和服務器模塊,在本例中只添加了CM PTP模塊和服務器模塊。在ET200SP"設備視圖"中用鼠標選中CM PTP,在“屬性”→“常規”→“接口”→“操作模式”中配置此模塊硬件接口參數,本例設定“指定工作模式":"半雙工(RS485)2線制操作";"接收線路的初始狀態":"無"。如下圖9所示:

      圖片

      圖9. CM PTP 操作模式

      注意:ET200SP站點中,服務器模塊是必須組態的。服務器模塊隨接口模塊一起采購,無需單獨購買。ET200SP接口模塊需要為其分配IP地址和Device Name, 有關ET200 SP 分布式IO 組態詳細步驟,請參考《ET200 SP 使用快速入門》,本例不再描述Profinet IO通信的相關設置與步驟。《ET200 SP 使用快速入門》下載鏈接:

      https://support.industry.siemens.com/cs/cn/zh/view/78304711


      (3)接下來,在“屬性”→“常規”→“接口”→“端口組態”中配置此模塊端口組態參數,本例設定"協議":"Freeport/Modbus";"端口參數"設置:傳輸率=9.6Kbps,奇偶校驗=無奇偶校驗,數據位=8位字符,停止位=1為例。端口組態設置如下圖10所示:

      圖片

      圖10. CM PTP 端口組態

      (4)Zui后需要在“硬件標識符”里確認一下CM PTP 模塊硬件標識符,該參數在程序編程中會被使用。


      聯系方式

      • 電  話:13922889745
      • 經理:向小姐
      • 手  機:18475208684
      • 微  信:18475208684