前言
在工业控制领域,MODBUS协议凭着简单、小巧、高效的特点,在RS485、以太网的硬件设备总线拓扑环境中应用广泛;MODBUS RTU是一种基于UART、TCP数据流之上的应用层协议,天生支持分布式网络,支持二进制、寄存器读写,而且还支持数据CRC校验,它的数据帧组成如下:
- 从设备地址
- 功能码
- 数据区:寄存器+数值
- 校验码
问题
有人问我:用USB TTL组成的电脑 <–> 从设备的点对点网络中,我能不能跑MODBUS RTU协议,借用它的寄存器读写协议栈进行设备信息访问?MODBUS RTU会不会跟硬件有关,比如从设备号的识别和确认?
解答
原则上是可以的,只要你能知道从设备的地址和寄存器读写映射关系,就可以根据RTU的帧结构组帧去发请求,而从设备也能够根据请求的消息去安排应答;原因很简单,因为RTU本质就是一组关于主从设备的请求和应答怎么组织的通信协议,从设备号的访问也是软件协议解析的
参考
比如,光测未来的TEC控制器,它就支持TTL串口的MODBUS RTU协议:微电脑数字PID温控器|制冷片温控器|通用PID温控器(TEC215系列) - 光测未来