当前位置:首页 > PLC > 正文内容

Modbus TCP 常见问题

oozj5年前 (2019-07-11)PLC5985

常见问题

Modbus TCP 常见问题 PLC 第1张1、如何判断Modbus TCP连接是否建立?

答:进行Modbus TCP通信,需要建立连接,

S7-200 SMART CPU作为Modbus TCP客户端时:通过Modbus TCP Client指令 MBUS_CLIENT 的符号表中的 mConnected 参数来判断,如图1.所示

mConnected=1 表示已经建立连接,mConnected=0 表示尚未建立连接

Modbus TCP 常见问题 PLC 第2张

图1.mConnected判断连接状态

S7-200 SMART CPU作为Modbus TCP服务器时:通过Modbus TCP Server指令 MBUS_SERVER 的符号表中的 mConnected 参数来判断,如图2.所示

mConnected=1 表示已经建立连接,mConnected=0 表示尚未建立连接.

Modbus TCP 常见问题 PLC 第3张

图2.mConnected判断连接状态

Modbus TCP 常见问题 PLC 第4张2、如何查看错误代码?

答:出现错误时,MBUS_CLIENT 指令输出参数Done 会为1,但是,Done在连接建立完成,连接断开,响应完成时都会出现置位为1的情况。

出现错误时,还有Error字节会显现出错误代码,仅保留一个周期时间。

综上所述,查看错误代码,可以按照图3.所示的方法进行。

Modbus TCP 常见问题 PLC 第5张

图3.查看错误代码

Modbus TCP 常见问题 PLC 第6张3、进行 Modbus TCP 通信寄存器类型数据,数据量大超过120个字如何处理?

答:如果数据量超过120个字,可以进行如下两种方法操作:

A、建立多个连接,不同连接之间,可以并行操作,因为占用的通信资源不同;

B、建立一个连接,进行多个操作,不同操作之间需要进行轮询,同一时刻只有一个操作在进行。

Modbus TCP 常见问题 PLC 第7张4、Modbus TCP通信时,如何访问地址范围大于49999 的保持寄存器

Modbus 保持寄存器地址在 40001 到 49999 这一范围内。该范围足以满足大多数应用的要求,但有些 Modbus 从站设备将数据映射到地址范围更大的保持寄存器中。 MBUS_CLIENT 指令允许参数 Addr 的附加范围,以支持 400001 至 465536 的保持寄存器地址的扩

展范围。例如,要访问保持寄存器 16768,请将 MBUS_CLIENT 的 Addr 参数设置为 416768。 扩展寻址允许访问 Modbus 协议支持的全部 65536 个可能地址。此扩展寻址仅适用于保持寄存器。

Modbus TCP 常见问题 PLC 第8张5、S7-200 SMART作为 Modbus TCP客户端, 服务器为网关模块,连接多个 Modbus RUT 设备时如何区分 Modbus RTU 从站地址能?

答:S7-200 SMART CPU 作为 Modbus TCP 客户端与 Modbus TCP 服务器通信,当尝试访问比 Modbus TCP 服务器更低端的串行子网中的设备,会有报错 "无法建立连接"。如果 Modbus TCP 服务器用于 Modbus RTU 协议的网关,则 MB_UNIT_ID 可用于识别串行网

络上连接的从站设备。MB_UNIT_ID 用于将请求转发到正确的 Modbus RTU 从站地址。一些 Modbus TCP 设备可能要求 MB_UNIT_ID 参数在限制范围内。该参数所在位置,如图4.所示

mModbusUnitID默认值为255(16#FF),如果从站设备有多个,可以S7-200 SMART 和网关模块建立一个连接,在这个连接上通过修改UnitID的值进行UnitID的轮询。

Modbus TCP 常见问题 PLC 第9张

图4.mModbusUnitID

Modbus TCP 常见问题 PLC 第10张6、对于一些服务器不支持写单个数字量输出位(功能码 5)/单个保持寄存器(功能码 6),S7-200 SMART 如何实现写单个位/字。

答:一些 Modbus 服务器设备不支持 Modbus 功能写入单个离散输出位(Modbus 功能 5)或写入单个保持寄存器(Modbus 功能 6)。相反,这些设备只支持多位写入(Modbus 功能 15)或多寄存器写入(Modbus 功能 16)。如果服务器设备不支持单个位/字 Modbus

功能,则 MBUS_CLIENT 指令将返回错误代码 1。Modbus 客户端协议允许强制 MBUS_CLIENT 指令使用多个位/字 Modbus 功能,而非使用单个位/字 Modbus 功能。可通过在 Modbus 客户端符号表中查找符号 mModbusForceMulti,并在程序执行 MBUS_CLIENT 之前

更改此值,来强制多个位/字指令。将 mModbusForceMulti 设置为 TRUE,可在写入单个位或寄存器时强制使用多个位/字功能。如图5.所示。

Modbus TCP 常见问题 PLC 第11张

图5. mModbusForceMulti


扫描二维码推送至手机访问。

版权声明:本文由千城笔记发布,如需转载请注明出处。

本文链接:https://www.oozj.org/26.html

分享给朋友:

相关文章

顺序控制(SCR)指令

顺序控制(SCR)指令

顺序控制(SCR)指令顺序控制指令的功能是是按照控制工艺将一个复杂的步骤分割成几个简单的步骤(即顺控段),并根据工艺步骤顺序执行这些顺控段。 普通的PLC程序是从头到尾不断扫描执行的。SCR...

S7-200SMART Modbus TCP 通信

S7-200SMART Modbus TCP 通信

S7-200SMART Modbus TCP 通信Modbus TCP 是通过工业以太网 TCP/IP 网络传输的 Modbus 通信。S7-200 SMART 采用客户端-服务器方法,Modbus...

S7-200 SMART Modbus TCP 客户端指令

S7-200 SMART Modbus TCP 客户端指令

S7-200 SMART Modbus TCP 客户端指令STEP7-Micro/WIN SMART 从V2.4 版本开始,软件中直接集成 Modbus TCP 库指令,无需单独安装或者购买。安装软件...

Modbus RTU tcp 主从站 客户端服务端例程

Modbus RTU tcp 主从站 客户端服务端例程

Modbus RTU 主站例程为了更好地理解 Modbus TCP 客户端的编程,可参考下面的例程。 注意: 1. 该例程使用 STEP 7-Micro/WIN SMART V2....

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。