本文参考'MODBUS over Serial Line V1.02',根据个人的理解对MODBUS over Serial Line进行介绍,若要阅读协议文档请访问MODBUS官网。
MODBUS标准定义了一个应用层的消息传输协议,即位于OSI模型的第七层,它为连接至不同类型总线或网络的设备提供了Client/Server通信机制。此外,MODBUS也标定了一个串行线上的协议,即MODBUS over Serial Line,用于主机与从机之间交换MODBUS请求。
MODBUS over Serial Line也可被称为MODBUS Serial Line protocol,该协议位于OSI模型的第二层,即数据链路层。它是一种主从式的协议,支持的物理层协议是TIA/EIA-485或TIA/EIA-232,即RS485和RS232。
MODBUS over Serial Line主从式系统的特点如下:
主节点下达的MODBUS请求有如下两种模式:
MODBUS的寻址空间包括256个地址,主节点没有地址,一条MODBUS串行总线上的从节点必须有一个独立的地址,具体的地址分配如下:
帧结构图如下,PDU即Protocol Data Unit。主机下达请求时,将从机的地址写入地址字段,从机返回响应时,将自己的地址写入地址字段。功能码用于指示功能,数据字段包含请求或响应的参数。
主机状态转换图:
从机状态转换图:
RTU即Remote Terminal Unit,该模式下,数据以二进制数字形式传输,例如需传输的一个字节是0x5B,实际传输的数据也是0x5B。RTU模式主要包含如下几点约定:
ASCII模式下,数据以ASCII字符形式传输,例如需传输的一个字节是0x5B,实际传输的是0x35(“5”)和0x42(“B”),显然该模式的传输效率比RTU低。通常,只有当设备不满足RTU模式所需的定时器要求时,才使用ASCII模式。ASCII主要包含如下几点约定:
注:本文为作者原创,欢迎批评指正,转载请注明出处。