Modbus TCP:学习与调试

Modbus TCP是在采用TCP协议的基础上,对应用层的数据进行了一层协议封装。并且这个Modbus和通过走串口的Modbus协议稍微有点不同,没有Address和Checksum,增加了Header。因为TCP本身会进行校验,保证了数据的准确性。对于Modbus TCP,如果是server的话,默认的端口是502。这个端口当然也可以修改和设置。

关于Modbus TCP详细的协议介绍可以参考这个英文文档。Introduction of ModbusTCP

 Modbus TCP可以使用MThings进行调试。MThings下载地址

接下来是调试的过程(以写线圈为例):

 先启动TCP Server。

root@myir:~# ./ethServer
Ethernet Router Constructor
Eth_APP::Eth_APP
ETHERNET ROUTER is alive
localIPAddress: 192.168.18.141
ethBase::entry start config..
Eth_APP::Config
ethBase::entry stop config..
Connection::setup mConnType: 0
Connection::setupTcpServer
ETHERNET ROUTER readyEvents:0

MThings作为TCP Client。 

 启动链接以后,发现我们的server建立了网络链接。

Connection::acceptTcpServerClient
ETHERNET ROUTER readyEvents:0
ETHERNET ROUTER readyEvents:1

这是我的写设置: 

 下面是我收到的数据:

TCP message received
0 1 0 0 0 6 1 5 0 100 255 0
TCP message received end

 收到消息之后,要进行回复该消息。否则,会显示写失败。

对于写线圈状态,server回复的消息和收到的消息是相同的。所以将原消息发给client就可以了。 

Modbus TCP Slave是一种网络调试工具,用于与主设备(即Modbus TCP Master)进行通信。它充当网络中的从设备,接收并处理来自主设备的Modbus协议请求。 Modbus TCP Slave具有以下功能: 1. 接收和解析请求:当主设备发送请求时,Modbus TCP Slave通过网络接收这些请求,并对其进行解析,以了解所需的操作类型和寄存器地址。 2. 执行请求:一旦解析请求内容,Modbus TCP Slave执行相应的操作,例如读取或写入寄存器中的数据。它将读取的数据发送回主设备,或将写入的数据存储在寄存器中。 3. 错误处理:如果Modbus协议遇到错误,例如无效的函数码或地址,Modbus TCP Slave将生成错误响应,并将其发送回主设备,以指示错误发生。 4. 响应主设备:在处理请求后,Modbus TCP Slave将生成相应的响应数据,并通过网络将其发送回主设备。这使主设备能够了解请求的处理状态和所需的数据。 5. 与其他设备通信:除了与主设备通信外,Modbus TCP Slave还可以与其他从设备进行通信。主设备通过Modbus TCP协议将请求转发给从设备,从设备使用相同的逻辑进行处理,并将响应返回给主设备。 通过使用Modbus TCP Slave网络调试工具,我们可以轻松测试和调试主设备与从设备之间的通信。它提供了一种可视化的方式来监视和管理Modbus协议通信,并帮助我们识别潜在的问题和故障。这使网络调试过程更加高效和方便。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AllenSun-1990

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值