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

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

    1. <menuitem id="ayu7o"></menuitem>
      <object id="ayu7o"></object>
      加入收藏 在線留言 聯系我們
      關注微信
      手機掃一掃 立刻聯系商家
      全國服務熱線18475208684
      公司新聞
      西門子S7-1200 Modbus-TCP 通信案例
      發布時間: 2024-04-28 22:41 更新時間: 2024-12-02 08:00
       S7-200 Modbus TCP 通信 1 、S7-200 Modbus TCP 通信簡介Modbus 是公開通信協議,詳細的協議和規范,請訪問 Modbus 組織的網站:http://www.modbus.org/S7-1200 CPU 本體上集成了一個 PROFINET 通信口,支持以太網和基于 TCP/IP 和 UDP 的通信標準。這個 PROFINET 物理接口是支持10/100Mb/s 的 RJ45 口,支持電纜交叉自適應, 因此一個標準的或是交叉的以太網線都可以用于這個接口。使用這個通信口可以實現 S7-1200 CPU 與編程設備的通信,與 HMI 觸摸屏的通信,以及與其它 CPU 之間的通信,S7-1200 CPU 的 PROFINET 通信口主要支持以下通信協議及服務Profinet IO (V2.0 開始)S7 通信 (V2.0 開始支持客戶端)TCPISO on TCPUDP(V2.0 開始)Modbus TCPHMI 通信Web 通信(V2.0 開始)。硬件版本 V4.1 支持的協議和Zui大的連接資源:S7-1200 的連接資源分配給每個類別的預留連接資源數為固定值;您無法更改這些值。但可組態 6個"可用自由連接"以按照應用要求增加任意類別的連接數。示例 1: 1 個 PG 具有 3 個可用連接資源。根據當前使用的 PG 功能,該 PG 實際可能使用其可用連接資源的 1、2 或 3。在 S7-1200 中,始終保證至少有 1 個 PG,但不允許超過 1 個 PG。在 CPU 屬性>常規>連接資源顯示:硬件版本 V3.0 支持的協議和Zui大的連接資源:3 個連接用于操作面板1 個連接用于編程設備(PG)與 CPU 的通信8 個連接用于Open IE ( TCP, ISO on TCP, UDP) 的編程通信,使用 T-block 指令來實現3 個連接用于 S7 通信的服務器端連接,可以實現與 S7-200,S7-300 以及 S7-400 的以太網S7 通信8 個連接用于 S7 通信的客戶端連接,可以實現與 S7-200,S7-300 以及 S7-400 的以太網 S7通信連接數是固定不變的,不能自定義。 注意:建立被動的 TCP 、ISO on TCP 和 UDP 的連接時,建議使用端口范圍: 2000~5000。一些端口號和 TSAP 號是受到限制不能被使用的。下列端口號和 TSAP 號不能使用:ISO TSAP (passive): 01.00, 01.01, 02.00, 02.01, 03.00, 03.01TCP/UDP port (passive): 20, 21, 25, 80, 102, 135, 161, 34962 … 34964,53, 80, 162, 443,520, 90012 、Modbus TCP 指令庫S7-1200集成PN接口MODBUS TCP通信概述Modbus TCP 是標準的網絡通信協議,通過 CPU 上 PN 接口進行 TCP/IP 通信,不需要額外的通信硬件模塊,Modbus TCP 使用開放式用戶通信連接作為 Modbus 通信路徑,所支持的混合客戶機和服務器連接數Zui大為 CPU 所允許的Zui大開放式用戶通信連接數 8 個。軟件 STEP7 V11 SP1 版本開始,S7-1200CPU 從 Firmware V1.0.2 開始,不再需要安裝Modbus TCP 的庫文件,可以直接調用 Modbus TCP 的庫指令“MB_CLIENT”和“MB_SERVER”使用實現 Modbus TCP 通信功能,如圖 1 所示。圖 1. Modbus TCP 的庫指令 3、Modbus TCP 功能編程S7-1200 做Modbus Tcp Client(客戶端)MB_CLIENT 進行客戶機和服務器 TCP 連接、發送命令消息、接收響應以及控制服務器的斷開。1. 調用 MB_CLIENT 通信指令,進入 “Program blocks” > “OB1” 主程序中,調用 MODBUS TCP 客戶機指令,如圖 2 所示。圖 2. MB_CLIENT 通信指令功能塊參數意義如下表 1.表 1. 功能塊參數意義2、MB_DATA_PTR 數據塊的新建通過“Program blocks”>“Add new block”,選擇“Data block”創建 DB 塊,選擇“標準與 S7- 300/400 兼容” ,點擊“OK”鍵,定義數據區為 100 個字的數組,如圖 3 所示。圖 3. 創建 MB_DATA_PTR 數據塊3、MB_MODE、MB_DATA_ADDR 和功能碼的關系MB_CLIENT 指令中,MB_MODE、MB_DATA_ADDR 和 MB_DATA_LEN 三個參數組合定義了當前 Modbus 消息中所用的功能代碼,如表 2.。表 2. MB_MODE、MB_DATA_ADDR 和功能碼的關系如上例中 S7-1200 作客戶機,用 FC04 功能碼讀取 ZKA-4488-ETH 的模擬輸入 AI1 通道的讀數的兩個字,起始從 Modbus 地址 30001 開始,接收的數據存放在緩沖區 DB3.DBX0.0 開始區域,設置如上:MB_MODE=0,MB_DATA_ADDR=30001,MB_DATA_LEN=2,對應關系為:30001->DB3.DBW0 ,30002->DB3.DBW2。注意:Slave ID 是 ZKA-4488-ETH 的站地址,和客戶機中“MB_CLIENT” 中的“CONNECT_ID” 不是一個概念,實際上與客戶機中“MB_CLIENT”的背景數據塊中的 STAT 變量“MB_UNIT_ID”需要一致,在 1200 中該地址默認為 16#00FF,實際使用時可以改成 1,即:與 ZKA-4488-ETH 配置文件中的站號保持一致,當 S7-1200 掛接了多個 ZKA-4488-ETH 時,該值可以按序編號,也可以都使用值 1,因為 modbus-tcp 依然可以根據指向的 IP地址發送數據。圖 7. 客戶機中“MB_CLIENT”的背景數據塊中的 STAT 變量“MB_UNIT_ID”4. 通訊測試S7-1200 作客戶機,用 FC04 功能碼讀取 ZKA-4488-ETH 的兩個字,設置客戶機和 ZKA-4488-ETH 的功能、起始地址、端口等參數相對應,具體設置如上,設置 M5.0 和 M0.0 為 1, 觸發請求,如圖 8 所示。圖 8. S7-1200 作客戶機,用 FC04 功能碼讀取服務器的兩個字通訊結果如圖 9 所示,從服務器讀到數據 00,11 到客戶機的 DB3.DBW0 和 DB3.DBW2 區域。圖 9. 通訊結果6、 MB_CLIENT 參數 STATUS 錯誤代碼查詢參考下面兩個列表 3.和表 4.。表 3. 協議錯誤代碼表 4. 參數錯誤代碼除了上面列出的 MB_CLIENT 錯誤外,也可以從底層傳輸通信指令(TCON、TDISCON、TSEND和 TRCV)返回錯誤,參考相應指令的錯誤代碼。

      聯系方式

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