工控网首页
>

应用设计

>

Modbus那些事儿

Modbus那些事儿

Modbus协议可以说是工业自动化领域应用最为广泛的通讯协议,因为它的开放性、可扩充性和标准化使它成为一个通用工业标准。有了它,不同厂商的产品可以简单可靠的接入网络,实现系统的集中监控,分散控制功能。

 

目前Modbus规约主要使用的是ASCII, RTU, TCP等,并没有规定物理层。目前Modbus常用的接口形式主要有RS-232C,RS485,RS422,也有使用RJ45接口的,ModBus的ASCII, RTU协议则在此基础上规定了消息、数据的结构、命令和应答的方式。ModBus数据通信采用Master/Slave方式(主/从),即Master端发出数据请求消息,Slave端接收到正确消息后就可以发送数据到Master端以响应请求;Master端也可以直接发消息修改Slave端的数据,实现双向读写。

 

1.png

在串行通信中,用“波特率”来描述数据的传输速率。国际上规定了一个标准波特率系列:110、300、600、1200、1800、2400、4800、9600、14.4Kbps、19.2Kbps、28.8Kbps、33.6Kbps、56Kbps。例如:9600bps,指每秒传送9600位,包含字符的数位和其它必须的数位,如起始位、停止位和奇偶校验位等。

在自动化领域我们常用RTU模式,RTU 模式中每个字节的格式:

 

编码系统:

8 位二进制,十六进制 0-9,A-F

 

数据位:

1 起始位

8 位数据,低位先送 奇/偶校验时 1 位;无奇偶校验时 0 位 带校验时 1 位停止位;无校验时 2 位停止位

错误校验区:

循环冗余校验(CRC)

 

从站地址设置:

信息地址包括2 个字符(ASCII)或 8  位(RTU),有效的从机设备地址范围 0-247(十进  制)。

 

功能码设置:

信息帧功能代码包括字符(ASCII)或 8 位(RTU)。有效码范围 1-225(十进制);

 

数据区的内容:

数据区有 2 个 16 进制的数据位,数据范围为 00-FF(16 进制),根据网络串行传输的方式,数据区可由一对 ASCII 字符组成或由一个 RTU 字符组成。

 

RTU方式的消息帧

2.png

 

Modbus的功能码

功能码.png

 

ModBus 功能码与数据类型对应表

3.png

 

RTU 方式读取整数据的例子

4.png

 

解析一下:主机发送指令,访问从站地址为1,使用功能码03(读保持寄存器),起始地址高8位、低8位:表示想读取的模拟量的起始地址(起始地址为0)。比如例子中的起始地址为38,十进制为:56。寄存器数量高8位、低8位:表示从起始地址开始读多少个模拟量。例子中为1个模拟量。注意,在返回的信息中一个模拟量需要返回两个字节。错误校验为CRC校验。

从站应答:设备地址和命令号和上面的相同。返回的字节数:表示数据的字节个数,也就是数据1,2...n中的n的值。例子中返回了1个模拟量的数据,因为一个模拟量需要2个字节所以共2个字节。数据高低字节:41和24代表返回的1个模拟量的值,即十进制的16676。错误校验为CRC校验。

 

modbus.png

Modbus.png

 

TIM截图20191009161711.jpg

EP1C及EP1C Plus系列伺服驱动器支持Modbus总线通讯,适用于机器人、数控系统、自动化设备等。Modbus总线采用RJ45接口形式,接线简单、稳定可靠。

6.jpg


推广二维码2019.jpg 

审核编辑(
王静
)
投诉建议

提交

查看更多评论
其他资讯

查看更多

迈信电气许强博士荣获“光谷工匠企业家”称号

EP5系列产品应用案例集(第一期)

迈信EP5系列高性能伺服

EP5新一代高性能伺服亮相中国(玉环)国际机床展

迈信电气获湖北省专精特新“小巨人”企业荣誉称号