传输层
有几种标准传输用于移动Modbus协议消息:RS-232和RS-485。你可以使用其他的,但这些是最常见的。
RS-485是RS-232的继承者。关于协调从发送站到接收站的比特传输的同步位,它以类似的方式工作。然而,有两个定义特征使RS-485不同于RS-232。首先是驾驶多个目的地的能力。RS-485发射机可以电信号多达32个目标设备。这使得RS-485成为串行传输Modbus消息的首选方式。
RS-485的另一个定义特性是增强的抗噪性。RS-485不使用电气通用作为其电信号的参考。相反,RS-485使用一对导线,并通过在导线两端设置电压电位来驱动信号。通过这样做,任何环境电噪声对两根电线的影响都是一样的,两根电线之间的电位不会改变。
Modbus RTU数据编码
编码机制描述了如何从编码到数据包中的控制值和数据值形成位模式。发送方和接收方都必须使用相同的编码才能正确理解数据的内容。Modbus消息有两种编码机制:ASCII和RTU。
RTU编码是Modbus上使用的更常见的编码机制。RTU仅仅意味着值被编码为标准的大端二进制。这意味着在16位值的情况下,最高有效字节(MSB)在最低有效字节(LSB)之前编码。像十进制41(29十六进制)这样的8位值被简单地编码为0010 1001。而像十进制300 (12C十六进制)这样的16位值被编码为0000 0001 0010 1100。01的MSB在2C的LSB之前进行编码和传输。
modbus RTU内存映射
Modbus RTU数据类型通用名称起始地址
Modbus线圈位,二进制值,标志00001
数字输入二进制输入10001
模拟输入二进制输入30001
Modbus记录模拟值,变量40001
Modbus RTU和Modbus TCP的区别
Modbus RTU和Modbus TCP(也称为Modbus IP、Modbus EtherNet和Modbus TCP/IP)最基本的区别是TCP运行在以太网物理层上,而RTU是串行级协议。TCP也使用一个6字节的报头来允许路由。
RTU客户机是单个客户机总线。它向RTU服务器设备发送消息并获得应答。RTU仅限于单个客户端。在任何时候,RS-485链路上只能有一组信号。要么是单个RTU客户端在发送,要么是其中一个RTU客户端设备在发送。
随着TCP的引入,一切都简化了,变得更容易了。控制器可以更有效地利用以太网上的带宽作为数百个TCP设备的客户端。而且,TCP允许多个客户端。RS-485有32个设备的电气限制,以太网是无限的。操作RAM是唯一的实际限制。如果网络设计者选择Modbus TCP,他们可以使用多个客户端。
您需要使用一个昂贵的TCP(以太网)交换机。你可以通过RTU(串行)将所有设备连接在一起。带有老式8位处理器和少量内存的设备可以很容易地实现Modbus串行,但需要更昂贵的平台来实现以太网。