<object id="ayu7o"></object>

      <object id="ayu7o"></object>

    1. <menuitem id="ayu7o"></menuitem>
      <object id="ayu7o"></object>
      加入收藏 在線留言 聯系我們
      關注微信
      手機掃一掃 立刻聯系商家
      全國服務熱線18475208684
      公司新聞
      S7-200 SMART Modbus RTU主站編程如何實現?
      發布時間: 2024-08-08 17:19 更新時間: 2024-12-02 08:00
      觀看S7-200 SMART Modbus RTU主站編程如何實現?視頻
      1


      Modbus通信概述


      Modbus 協議作為一個標準的工業協議,其Zui簡單的串行通信部分僅規定了在串行線路的基本數據傳輸格式,在 OSI 七層協議模型中只到 1層和2 層。Modbus 具有兩種串行傳輸模式,ASCII 和 RTU。它們定義了數據如何打包、解碼的不同方式。支持 Modbus 協議的設備一般都支持 RTU 格式。


      Modbus 是一種單主站的主/從通信模式。Modbus 網絡上只能有一個主站存在,主站在 Modbus 網絡上沒有地址,從站的地址范圍為 0 - 247,其中 0 為廣播地址。 


      Modbus 通信標準協議可以通過各種傳輸方式傳播,如 RS232C、RS485、光纖、無線電等。 


      詳細的協議和規范,請訪問 Modbus 組織的網站:http://www.modbus.org




      1.1 Modbus 主站尋址



      Modbus 數據區地址為五到六位數,包含了數據類型和地址值。


      不同的Modbus數據區地址通過不同的功能碼來讀取或者寫入,Modbus 數據區地址定義如下:

      ? 00001 至 09999 是離散量輸出(線圈)

      ? 10001 至 19999 是離散量輸入(觸點)

      ? 30001 至 39999 是輸入寄存器(通常是模擬量輸入)

      ? 40001 至 49999 和 400001 至 465535 是保持寄存器


      所有 Modbus 數據區地址均從 xxxx1 (或者xxxxx1)開始,不同的設備支持不同的數據類型和地址范圍。


      1.2 Modbus主站讀取和寫入功能



      Modbus 主站指令使用 Modbus 數據區地址讀取或寫入Modbus數據,相應的從站設備必須要支持對應的功能碼,如表1所示。


      表1  Modbus數據區地址對應Modbus從站需要支持的功能碼圖片


      S7 200 SMART CPU通過串行端口進行 Modbus RTU 通信,借助STEP 7?Micro/WIN SMART軟件中的庫指令,簡化了與 Modbus 設備的通信。




      圖片

      SIMATIC S7?200 SMART

      2


      Modbus RTU 庫

      圖片

      圖1 西門子標準指令庫(STEP 7-Micro/WIN SMART)


      STEP 7-Micro/WIN SMART 支持主站和從站設備通過 RS 485(集成端口 0 和可選信號板端口 1)和 RS-232(jinxian可選信號板端口 1)進行 Modbus 通信, S7-200 SMARTZui多可以配置 2 個 Modbus RTU 主站。軟件本身集成了指令庫,如圖1所示。


      3


      Modbus RTU 主站功能編程

      調用 Modbus RTU 主站初始化和控制子程序


      圖片

      圖2  調用主站初始化MBUS_CTRL指令


      1)使用 SM0.0 調用 MBUS_CTRL 完成主站的初始化,并啟動其功能控制:


      表2 MBUS_CTRL指令參數意義

      圖片


      2)調用Modbus RTU 主站讀寫子程序MBUS_MSG,發送一個Modbus請求:


      圖片

      圖 3  調用主站讀寫子程序MBUS_MSG指


      表3 MBUS_MSG指令參數意義

      圖片

      圖片


      3)庫存儲器分配

      Modbus Master 指令庫需要一個286個字節的全局 V 存儲區。 


      調用STEP 7 - Micro/WIN SMART指令庫需要分配庫指令數據區。該數據區是相應庫的子程序和中斷程序所要用到的變量存儲空間。


      如果在編程時不分配庫指令數據區,編譯時會產生許多相同的錯誤。


      操作步驟:

      a. 在指令樹的Project(項目)中,以鼠標右鍵單擊Program Block(程序塊),在彈出的快捷菜單中選擇Library Memory (庫存儲器…)。如圖4所示:


      圖片

      圖4 “庫存儲器”按鈕


      b. 在彈出的選項卡中設置庫指令數據區,如圖5所示:

      圖片

      圖5 庫存儲器地址分配


      4


      注意事項

      1)S7 200 SMART CPU一共支持兩個 Modbus RTU 主站。如果您在項目中使用兩個主站,則要確保 MBUS_CTRL/MBUS_MSG 和MB_CTRL2/ MBUS_MSG2成對使用,并采用不同的端口號做區分,如果只有一個主站則使用任意一對指令均可以。


      2)S7-200 SMART CPU 支持的 Modbus 消息為每條Zui多 240 個字節(1920 位或 120 個寄存器)的數據。


      3)通常 Modbus 協議的保持寄存器范圍在 40001 到 49999 之間,這個范圍對于多數應用來說已經足夠了,但有些 Modbus 從站保持寄存器區的地址會超出該范圍,此時主站協議庫也支持400001 到 465536的地址范圍,如果 Modbus 從站地址在該范圍內,只需在調用 MBUS_MSG / MBUS_MSG2時給 Addr 參數賦相應的值即可,如 416768。


      4)庫存儲器分配,可以自定義起始地址,或者使用 “建議地址” 設置數據區,但要注意應當確保該地址不與其他任何已使用的數據區重疊、沖突,這些數據區既包括一般尋址,還應該考慮間接尋址訪問的地址。


      5)Modbus數據區地址和S7-200 SMART存儲區地址的映射舉例。


      圖片

      圖片







      聯系方式

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