原来modbus 传感器都是有对应的指令码的,不同功能的指令码也不一样,比如测温度和湿度的指令码也是不一样的;
Modbus是一种串行通信协议,常用于工业自动化系统中。它主要分为两种形式:Modbus RTU和Modbus TCP。这两种形式的Modbus之间有以下区别:
物理层:Modbus RTU是基于串行通信的,使用RS-232或RS-485等串行通信方式。而Modbus TCP是基于以太网的通信协议,使用TCP/IP协议栈进行通信。
帧结构:Modbus RTU的帧结构是二进制的,具有较小的帧头和校验,适用于传输较少数据量的情况。Modbus TCP的帧结构是基于TCP/IP协议栈的,帧头和帧尾都有固定的标识符,支持传输较大的数据量。
速度:Modbus RTU的通信速度较快,可以达到115200bps,而Modbus TCP的速度相对较慢,最高速度为100Mbps。
安全性:由于Modbus RTU是基于串行通信的,因此它的安全性较差。而Modbus TCP使用TCP/IP协议栈,可以通过网络安全性协议来提高通信的安全性。
将 RS232 RS485 TO ETH 配置为Modus TCP 模式:
Modbus TCP<->Modbus RTU 原理说明
Modbus rtu和modbus tcp协议区别:Modbus TCP 协议则是在 Modbus RTU 协议上加一个 MBAP 报文头,这个 MBAP 报文头共七个字节长度,除了第五、六个字节外,其余的基本上都是不变(比如,modbus rtu数据是:01 03 10 01 00 07 51 08,modbus tcp数据就是:00 00 00 00 00 06 01 03 10 01 00 07,第五、六个字节为00 06,表示00 06 后面有6个字节)
主机(RS232 RS485 TO ETH)给modbus 传感器发送Modbus TCP 请求数据帧,从机(传感器)返回应答的数据帧 ,如图所示:
根据传感器的指导书,将返回的数据转换为对应的温湿度数据,测试成功
FAQ
我无法通过Modbus从我的能源设备中提取数据
-
通信速率匹配: 确保两个RS232/RS485转以太网转换器的通信速率(波特率)与Modbus设备的设置相匹配。
-
奇偶校验位: 配置RS485转换器和Modbus设备的奇偶校验位以确保一致性。
-
数据位和停止位: 确保数据位和停止位的设置与Modbus设备一致。
-
Modbus地址: 确保每个Modbus设备都有唯一的Modbus地址。这通常在Modbus设备的设置中配置。
-
Modbus模式: 通常,Modbus设备可以设置为RTU模式或ASCII模式。确保RS485转换器和Modbus设备使用相同的模式。
-
Modbus功能码: 确保RS485转换器和Modbus设备都能够理解相同的Modbus功能码,例如读取保持寄存器(03)或写入多个寄存器(16)等。
-
Modbus寄存器映射: 配置RS485转换器和Modbus设备以指定要访问的寄存器地址。
-
电气连接: 确保RS485转换器和Modbus设备的电气连接正确,包括终端电阻和线缆连接。
-
Modbus通信模式: 确保Modbus设备支持TCP/IP模式,而不仅仅是串口模式。
-
防火墙和网络设置: 检查网络防火墙和路由器设置,确保数据包能够从一个设备传输到另一个设备。