[西门子] 西门子博图MODBUS TCP通讯指令(3)

[复制链接]
查看211 | 回复0 | 2024-6-10 17:44:47 | 显示全部楼层 |阅读模式
>MB_SERVER指令:MODBUS TCP通讯客户端指令。指令格式如下图所示:

“MB_SERVER”指令作为 Modbus TCP 服务器通过 PROFINET 连接进行通信。“MB_SERVER”指令将处理 Modbus TCP 客户端的连接请求、接收并处理 Modbus 请求并发送响应。
S7-1200 固件版本 V4.0 支持“MB_SERVER”指令和最高 V3.1 版本的库。S7-1200 固件版本 V4.1 及更高版本和 S7-1500,支持“MB_SERVER”指令的所有库版本。
可通过 CPU 或 CM/CP 的本地接口建立连接。
使用该指令时,无需其它任何硬件模块。
各个端口参数介绍:

DISCONNECT参数:
“MB_SERVER”指令建立与一个伙伴模块的被动连接。服务器会响应在 CONNECT 参数的 SDT“TCON_IP_v4”中输入的 IP 地址的连接请求。
接受一个连接请求后,可以使用该参数进行控制:

  • 0:在无通信连接时建立被动连接。
  • 1:终止连接初始化。如果已置位该输入,那么不会执行其它操作。成功终止连接后,STATUS 参数将输出值 0003。
MB_HOLD_REG 参数:
MB_HOLD_REG 参数是一个指向数据缓冲区的指针,该缓冲区用于存储从 Modbus 服务器读取或向 Modbus 服务器写入的数据。可使用全局数据块或位存储器 (M) 作为存储区。

  • 数据块 (D) 中地址的最大数量取决于 CPU 的最大数据块大小。
  • 位存储器 (M) 中地址的最大数量取决于 CPU 的最大位存储区。
MB_HOLD_REG 引用的存储区必须大于两个字节。
保持性寄存器中包含 Modbus 客户端通过 Modbus 功能 3(读取)、6(写入)、16(多次写入)和 23(在一个作业中读写)可访问的值。
作为保持性寄存器,可以使用具有优化访问权限的全局数据块,也可以使用位存储器的存储区。
CONNECT 参数:与服务器指令中CONNECT参数用法基本一致。
“MB_SERVER”指令可使用 2 种不同的连接描述:

  • TCON_IP_v4 结构的设定连接
    该连接参数存储在 TCON_IP_v4 结构中,并通过调用指令“MB_SERVER”来建立连接。
  • 通过结构 TCON_Configured 组态的连接(仅限 S7-1500)
    CPU 已建立了组态连接。使用 TCON_Configured 结构指定指令使用的现有连接。
具体参数可查询手册。

输出参数:比较简单主要就是指令执行状态,错误代码等。

NDR:

  • 0:无新数据
  • 1:从 Modbus 客户端写入的新数据
DR:

  • 0:未读取数据
  • 1:从 Modbus 客户端读取的数据
ERROR:
指令执行出错时为“1”.
STATUS:出现报警代码时可查手册。
指令的详细状态信息。
在MODBUS TCP通讯时一般MB_CLINET服务器指令和MB_SERVER客户端指令一起使用,有点一个发数据,一个接数据的意思。
通讯指令关键在于实际调试,看的效果不佳,下次分享调试过程。

==END



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则