0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Modbus TCP示例

機器人及PLC自動化應(yīng)用 ? 來源:機器人及PLC自動化應(yīng)用 ? 作者:微笑應(yīng)對 ? 2022-12-02 09:55 ? 次閱讀

Modbus TCP 示例:

示例:MB_SERVE 多 TCP 連接

可以擁有多個 Modbus TCP 服務(wù)器連接。為此,必須為每個連接單獨執(zhí)行 MB_SERVER。每個連接必須使用單獨的背景數(shù)據(jù)塊、連接 ID 和 IP 端口。S7-1200 僅允許每個 IP 端口進行一個連接。

為了達到最佳性能,應(yīng)在每個程序周期為各個連接執(zhí)行 MB_SERVER。CONNECT 參數(shù)使用系統(tǒng)數(shù)據(jù)類型 TCON_IP_V4。這些數(shù)據(jù)結(jié)構(gòu)的相關(guān)示例位于名為“Modbus 連接”的數(shù)據(jù)塊中。

“Modbus 連接”數(shù)據(jù)塊包含兩個 TCON_IP_V4 結(jié)構(gòu):“TCPpassive_1”(針對連接 1)和“TCP_passive_2”(針對連接 2)。

程序段注釋中描述的連接屬性 ID 和 LocalPort 為存儲在 CONNECT 數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)元素。TCON_IP_V4 CONNECT 數(shù)據(jù)同時包含 RemoteAddress ADDR 數(shù)組中的 IP 地址。

TCPpassive_1 和 TCP_passive_2 內(nèi)的 IP 地址分配對建立 TCP 服務(wù)器連接沒有影響,但是會決定哪些 Modbus TCP 客戶端可通過與各 MB_SERVER 連接進行通信

MB_SERVER 被動偵聽 modbus 客戶端消息,并將進入消息的 IP 地址與存儲在相應(yīng) RemoteAddress ADDR 數(shù)組中的 IP 地址進行比較。

兩個 MB_SERVER 指令可使用以下三種 MB_SERVER IP 地址變量:

● IP 地址 = 0.0.0.0

各 MB_SERVER 將響應(yīng)使用任意 IP 地址的所有 Modbus TCP 客戶端。

● IP 地址 = TCPpassive_1 和 TCPpassive_2 中的 IP 地址相同

兩個 MB_SERVER 連接僅響應(yīng)來自該 IP 地址的 Modbus 客戶端。

● IP 地址 = TCP_passive_1 和 TCP_passive_2 中的 IP 號不同

各 MB_SERVER 僅響應(yīng)來自其 TCON_IP_V4 數(shù)據(jù)中存儲的 IP 地址的 Modbus 客戶端。

程序段 1:連接 #1,背景 DB =“MB_SERVER_DB”、“Modbus connections.TCPpassive_1”內(nèi)(ID = 1 且 LocalPort = 502)

0f292906-716f-11ed-8abf-dac502259ad0.png

程序段 2:連接 #2,背景 DB =“MB_SERVER_DB_1”、“Modbus connections.TCPpassive_2”內(nèi)(ID = 2 且 LocalPort = 503)

0f45d632-716f-11ed-8abf-dac502259ad0.png

示例:MB_CLIENT 1:通過公共 TCP 連接發(fā)送多個請求

多個 Modbus 客戶端請求可通過同一連接發(fā)送。為此,必須使用相同的背景數(shù)據(jù)塊、連接 ID 和端口號。

因為兩個 MB_CLIENT 框使用相同的 CONNECT 參數(shù) TCON_IP_v4 數(shù)據(jù)結(jié)構(gòu) "Modbus_connections".TCPactive_1),因此連接 ID、端口號和 IP 地址均相同。CONNECT IP 地址數(shù)據(jù)分配目標 Modbus TCP 服務(wù)器的 IP 地址。

在任意給定時間內(nèi),只能有一個 MB_CLIENT 處于激活狀態(tài)。一個客戶端完成執(zhí)行后,下一個客戶端才能開始執(zhí)行。由程序邏輯負責(zé)執(zhí)行順序邏輯。

本示例所示為兩個客戶端從單個 Modbus 客戶端讀取遠程數(shù)據(jù)并將數(shù)據(jù)傳送至 Modbus 客戶端 CPU(從 M1000.0 起始的M 存儲器)。并捕獲返回的錯誤(可選)。

程序段 1:Modbus 功能 1 - 從使用“Modbus 連接”.TCPactive_1 中所分配的 IP 地址的 Modbus TCP 服務(wù)器中讀取 16 位輸出位。

0f5eabc6-716f-11ed-8abf-dac502259ad0.png

程序段 2:Modbus 功能 2 - 從使用“Modbus 連接”.TCPactive_1 中所分配的 IP 地址的 Modbus TCP 服務(wù)器中讀取 32 位輸入位。

0f8515d6-716f-11ed-8abf-dac502259ad0.png

示例:MB_CLIENT 3:輸出映像寫入請求

本示例所示為 Modbus 客戶端請求將位數(shù)據(jù)從本地 CPU 存儲區(qū)(起始地址為 M1000.0)傳送至遠程 Modbus TCP 服務(wù)器。

程序段 1:Modbus 功能 15 - 在 Modbus 服務(wù)器中寫入輸出位

0fa27df6-716f-11ed-8abf-dac502259ad0.png

示例:MB_CLIENT 4:協(xié)調(diào)多個請求

必須確保各個 Modbus TCP 請求都完成執(zhí)行。必須由程序邏輯來控制執(zhí)行順序。下面的示例顯示了首個和第二個客戶端請求輸出如何控制執(zhí)行順序。

該示例所示為兩個客戶端使用同一 CONNECT 連接數(shù)據(jù)(不同時使用)。

客戶端將保持寄存器數(shù)據(jù)從同一遠程 Modbus TCP 服務(wù)器傳送至同一本地 CPU 存儲區(qū) M 地址。此外,還捕獲了返回的錯誤,這是可選的。

程序段 1:Modbus 功能 3 - 讀取 Modbus TCP 服務(wù)器保持寄存器字

0fc485ea-716f-11ed-8abf-dac502259ad0.png

程序段 2:Modbus 功能 3 - 讀取 Modbus TCP 服務(wù)器保持寄存器字

0fe24ce2-716f-11ed-8abf-dac502259ad0.png






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10863

    瀏覽量

    211760
  • ModBus協(xié)議
    +關(guān)注

    關(guān)注

    3

    文章

    177

    瀏覽量

    33428
  • TCP通信
    +關(guān)注

    關(guān)注

    0

    文章

    146

    瀏覽量

    4223

原文標題:S7 1200-Modbus TCP 示例

文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    使用協(xié)議棧實現(xiàn)Modbus TCP客戶端應(yīng)用

    自從開源了我們自己開發(fā)的Modbus協(xié)議棧之后,有很多朋友建議我針對性的做幾個示例。所以我們就基于平時我們的應(yīng)用整理了幾個簡單但可以說明基本的應(yīng)用方法的示例,這一篇中我們將解說如何使用協(xié)議棧實現(xiàn)一個
    的頭像 發(fā)表于 12-13 16:18 ?1769次閱讀
    使用協(xié)議棧實現(xiàn)<b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>客戶端應(yīng)用

    Modbus TCP通信報文解析

    Modbus TCP是在TCP/IP網(wǎng)絡(luò)上運行的Modbus的實現(xiàn),旨在允許Modbus ASCII/RTU協(xié)議在基于
    發(fā)表于 09-20 15:55 ?3w次閱讀
    <b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>通信報文解析

    Modbus TCP轉(zhuǎn)Modbus RTU的實現(xiàn)

    使用ZLSN2040、NETCOM2040實現(xiàn)Modbus TCPModbus RTU的轉(zhuǎn)化。1.Modbus TCP
    發(fā)表于 08-10 10:04

    Modbus TCP如何使用

    大家好。我有ApIC32 MX575 F512L,它使用了Modbus TCP在從配置(它完美地工作)?,F(xiàn)在,我需要實現(xiàn)另一個軟件(也就是FPIC32 MX575 F512L),使主板工作在主模式中
    發(fā)表于 01-08 14:25

    Modbus/TCP通訊配置

    MODBUSTCP 是簡單的、中立廠商的用于管理和控制自動化設(shè)備的MODBUS 系列通訊協(xié)議的派生產(chǎn)品,它覆蓋了使用TCP/IP 協(xié)議的Intranet和Internet環(huán)境中MODBUS 報文
    發(fā)表于 09-30 09:13 ?38次下載
    <b class='flag-5'>Modbus</b>/<b class='flag-5'>TCP</b>通訊配置

    Modbus TCP通訊協(xié)議概述

    1? Modbus TCP通訊概述 MODBUS/TCP是簡單的、中立廠商的用于管理和控制自動化設(shè)備的MODBUS系列訊協(xié)議的派生產(chǎn)品,顯而
    的頭像 發(fā)表于 01-04 17:51 ?3w次閱讀
    <b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>通訊協(xié)議概述

    Modbus RTU和Modbus TCP的區(qū)別

    Modbus RTU和Modbus TCP的區(qū)別: 1.概念不同:MODBUS是一種標準的工業(yè)控制數(shù)據(jù)交換協(xié)議,可以通過RTU和ASCII交換協(xié)議數(shù)據(jù)。RTU通過二進制數(shù)據(jù)直接傳輸數(shù)據(jù)
    發(fā)表于 08-03 17:00 ?5.4w次閱讀

    Modbus TCP常見問題

    Modbus RTU和 Modbus TCP的區(qū)別?
    的頭像 發(fā)表于 12-19 14:57 ?3345次閱讀

    ModBus RTU 與 ModBus TCP

    一、兩個密切相關(guān)的協(xié)議:RTU 與 TCP ModBus RTU和ModBus TCP作為ModBus協(xié)議的兩個主要變體,傳統(tǒng)上,
    的頭像 發(fā)表于 02-07 10:05 ?3028次閱讀

    如何仿真Modbus_TCP

    仿真Modbus_TCP。
    的頭像 發(fā)表于 02-07 10:16 ?5007次閱讀
    如何仿真<b class='flag-5'>Modbus_TCP</b>

    Modbus TCP通訊概述

    MODBUS/TCP是簡單的、中立廠商的用于管理和控制自動化設(shè)備的MODBUS系列訊協(xié)議的派生產(chǎn)品,顯而易見,它覆蓋了使用TCP/IP協(xié)議的“Intranet”和“Internet”環(huán)
    的頭像 發(fā)表于 04-20 09:46 ?2800次閱讀

    CCLINK IE FIELD BASIC轉(zhuǎn)MODBUS-TCP網(wǎng)關(guān)MODBUS TCP協(xié)議詳解

    協(xié)議的不同,數(shù)據(jù)讀取困難,這是很多生產(chǎn)管理系統(tǒng)的難題。但是現(xiàn)在,遠創(chuàng)智控YC-CCLKIE-TCP通訊網(wǎng)關(guān),讓這個問題變得非常簡單。這款通訊網(wǎng)關(guān)可以將各種MODBUS-TCP設(shè)備接入到CCLINK
    的頭像 發(fā)表于 07-11 12:15 ?1458次閱讀
    CCLINK IE FIELD BASIC轉(zhuǎn)<b class='flag-5'>MODBUS-TCP</b>網(wǎng)關(guān)<b class='flag-5'>MODBUS</b> <b class='flag-5'>TCP</b>協(xié)議詳解

    EtherCAT轉(zhuǎn)Modbus TCP協(xié)議網(wǎng)關(guān)(JM-ECT-TCP

    JM-ECT-TCP網(wǎng)關(guān)實現(xiàn)EtherCAT網(wǎng)絡(luò)與Modbus TCP網(wǎng)絡(luò)之間的數(shù)據(jù)通訊,即將Modbus TCP設(shè)備轉(zhuǎn)換為EtherCAT
    的頭像 發(fā)表于 09-07 17:05 ?340次閱讀
    EtherCAT轉(zhuǎn)<b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>協(xié)議網(wǎng)關(guān)(JM-ECT-<b class='flag-5'>TCP</b>)

    MODBUS TCP 轉(zhuǎn) CANOpen

    產(chǎn)品概述 SG-TCP-COE-210 網(wǎng)關(guān)可以實現(xiàn)將 CANOpen 接口設(shè)備連接到 MODBUS TCP 網(wǎng)絡(luò)中。用戶不需要了解具體的 CANOpen 和 Modbus
    的頭像 發(fā)表于 09-24 13:59 ?276次閱讀
    <b class='flag-5'>MODBUS</b> <b class='flag-5'>TCP</b> 轉(zhuǎn) CANOpen