通信网络
Modbus TCP是在TCP/IP网络上运行的Modbus的实现,旨在允许Modbus ASCII/RTU协议在基于TCP/IP的网络上传输。
一、格式形式
Modbus TCP报文格式由事务处理标识、协议标识、报文长度、单元标识、功能码、寄存器个数组成。
1)读取时的格式
2)写入时的格式
事务处理标识符: 表示报文的序列号
协议标识符: 用00 00表示Modbus TCP通信协议
报文长度: 表示接下来的数据长度
单元标识符: 表示从站地址
功能码: 选择报文的功能
起始地址: 设置读取或写入的起始寄存器地址
寄存器个数: 设置需要读取或写入寄存器的个数
写入数据字节数: 根据需要设置写入的数据字节个数
写入数据: 字节占用根据设置的写入数据字节数的变化而变化
二、指令运用
按照浅谈Modbus通信协议中的步骤配置好网络调试助手和Modbus Slave后对报文格式进行演示。
1)读线圈
首先,将Modbus Slave中的从站地址设置为:01,寄存器线圈类型设置为:01 Coil Status(0x)。设置完成后单击“OK”并连接主站。
然后,连接网络调试助手,并将示例中的报文复制到网络调试助手中单击“发送”,得到从站回复的报文。
再然后,解析从站回复的报文。
最后,随意改变Modbus Slave中线圈的状态后再次读取从站数据并解析。
2)读保持寄存器
首先,将Modbus Slave中的从站地址设置为:01,寄存器线圈类型设置为:03 Holding Register(4x)。设置完成后单击“OK”连接主站,并修改寄存器的值(此处输入的值为十进制)。
然后,连接网络调试助手,并将示例中的报文复制到网络调试助手中单击“发送”,得到从站回复的报文。
最后,解析从站回复的报文。
3)写多个线圈
首先,将Modbus Slave中的从站地址设置为:01,寄存器线圈类型设置为:01 Coil Status(0x)。设置完成后单击“OK”连接主站,并修改线圈的状态。
最后,连接网络调试助手,并将示例中的报文复制到网络调试助手中单击“发送”,可以观察到Modbus Slave中对应的线圈状态改变。
4)写多个保持寄存器
首先,将Modbus Slave中的从站地址设置为:01,寄存器线圈类型设置为:03 Holding Register(4x)。设置完成后单击“OK”连接主站,并修改寄存器的值(此处输入的值为十进制)。
最后,连接网络调试助手,并将示例中的报文复制到网络调试助手中单击“发送”,可以观察到Modbus Slave中对应的保持寄存器的值改变(此处会自动转换成十进制显示)。
全部0条评论
快来发表一下你的评论吧 !