设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
S7 1200-Modbus TCP 示例
返回列表
发新帖
[西门子]
S7 1200-Modbus TCP 示例
[复制链接]
87112
|
0
|
2024-4-8 21:46:46
|
显示全部楼层
|
阅读模式
Modbus TCP 示例:
示例:MB_SERVE 多 TCP 连接
可以拥有多个 Modbus TCP 服务器连接。为此,必须为每个连接单独执行 MB_SERVER。每个连接必须使用单独的背景数据块、连接 ID 和 IP 端口。S7-1200 仅允许每个 IP 端口进行一个连接。
为了达到最佳性能,应在每个程序周期为各个连接执行 MB_SERVER。CONNECT 参数使用系统数据类型 TCON_IP_V4。这些数据结构的相关示例位于名为“Modbus 连接”的数据块中。“Modbus 连接”数据块包含两个 TCON_IP_V4 结构:“TCPpassive_1”(针对连接 1)和“TCP_passive_2”(针对连接 2)。程序段注释中描述的连接属性 ID 和 LocalPort 为存储在 CONNECT 数据结构中的数据元素。TCON_IP_V4 CONNECT 数据同时包含 RemoteAddress ADDR 数组中的 IP 地址。TCPpassive_1 和 TCP_passive_2 内的 IP 地址分配对建立 TCP 服务器连接没有影响,但是会决定哪些 Modbus TCP 客户端可通过与各 MB_SERVER 连接进行通信。MB_SERVER 被动侦听 modbus 客户端消息,并将进入消息的 IP 地址与存储在相应 RemoteAddress ADDR 数组中的 IP 地址进行比较。
两个 MB_SERVER 指令可使用以下三种 MB_SERVER IP 地址变量:
● IP 地址 = 0.0.0.0
各 MB_SERVER 将响应使用任意 IP 地址的所有 Modbus TCP 客户端。
● IP 地址 = TCPpassive_1 和 TCPpassive_2 中的 IP 地址相同
两个 MB_SERVER 连接仅响应来自该 IP 地址的 Modbus 客户端。
● IP 地址 = TCP_passive_1 和 TCP_passive_2 中的 IP 号不同
各 MB_SERVER 仅响应来自其 TCON_IP_V4 数据中存储的 IP 地址的 Modbus 客户端。程序段 1:连接 #1,背景 DB =“MB_SERVER_DB”、“Modbus connections.TCPpassive_1”内(ID = 1 且 LocalPort = 502)
程序段 2:连接 #2,背景 DB =“MB_SERVER_DB_1”、“Modbus connections.TCPpassive_2”内(ID = 2 且 LocalPort = 503)
示例:MB_CLIENT 1:通过公共 TCP 连接发送多个请求
多个 Modbus 客户端请求可通过同一连接发送。为此,必须使用相同的背景数据块、连接 ID 和端口号。
因为两个 MB_CLIENT 框使用相同的 CONNECT 参数 TCON_IP_v4 数据结构 "Modbus_connections".TCPactive_1),因此连接 ID、端口号和 IP 地址均相同。CONNECT IP 地址数据分配目标 Modbus TCP 服务器的 IP 地址。
在任意给定时间内,只能有一个 MB_CLIENT 处于激活状态。一个客户端完成执行后,下一个客户端才能开始执行。由程序逻辑负责执行顺序逻辑。本示例所示为两个客户端从单个 Modbus 客户端读取远程数据并将数据传送至 Modbus 客户端 CPU(从 M1000.0 起始的M 存储器)。并捕获返回的错误(可选)。
程序段 1:Modbus 功能 1 - 从使用“Modbus 连接”.TCPactive_1 中所分配的 IP 地址的 Modbus TCP 服务器中读取 16 位输出位。
程序段 2:Modbus 功能 2 - 从使用“Modbus 连接”.TCPactive_1 中所分配的 IP 地址的 Modbus TCP 服务器中读取 32 位输入位。
示例:MB_CLIENT 3:输出映像写入请求
本示例所示为 Modbus 客户端请求将位数据从本地 CPU 存储区(起始地址为 M1000.0)传送至远程 Modbus TCP 服务器。
程序段 1:Modbus 功能 15 - 在 Modbus 服务器中写入输出位
示例:MB_CLIENT 4:协调多个请求
必须确保各个 Modbus TCP 请求都完成执行。必须由程序逻辑来控制执行顺序。下面的示例显示了首个和第二个客户端请求输出如何控制执行顺序。
该示例所示为两个客户端使用同一 CONNECT 连接数据(不同时使用)。客户端将保持寄存器数据从同一远程 Modbus TCP 服务器传送至同一本地 CPU 存储区 M 地址。此外,还捕获了返回的错误,这是可选的。
程序段 1:Modbus 功能 3 - 读取 Modbus TCP 服务器保持寄存器字
程序段 2:Modbus 功能 3 - 读取 Modbus TCP 服务器保持寄存器字
------------------------------END-----------------------
每天进步一点点
Make small but daily progress
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
jinjingen88aa
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』