【曹俊义专栏】Modbus协议简介(四)

上一节为大家做了Modbus 协议栈和功能码的介绍,本节给大家介绍Modbus RTU/ASCII,也就是Modbus在串行链路上的实现形式:

Modbus在串行链路上的实现主要是通过RS-485和RS232或者RS422物理接口来实现,从OSI七层协议模型来讲主要占用OSI的第一层,第二层和第七层;第一层物理层采用EIA/TIA485 和 EIA/TIA232,数链层采用Modbus串行链路协议,应用层采用Modbus应用协议


Modbus在串行链路上的帧结构

· Modbus串行链路协议是一个主/从协议

· 网络上的每个从站必须具有唯一的地址(1--247)

· 从站地址用于寻址从站设备,由主站发起地址0用于广播模式,不需要响应

· 采用Rs485 / Rs232物理接口,提高了网络的互操作性

Modbus串行传输模式-RTU模式

RTU报文格式:CRC16校验

报文帧的标识:两帧之间至少3.5个字符,小于3.5个字符认为是1帧

字符之间的要求:字符与字符之间需小于1.5个字符。

Modbus 串行传输模式-ASCII模式:

· 报文必须以“:”开头

· 报文必须以“LF-CR”结束

· 数据用16进制ASCII码表示

· 使用LRC进行差错校验

Modbus串行链路总结:

标准的Modbus口是使用一RS-232C兼容串行接口,它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验。控制器能直接或经由Modem组网。
控制器通信使用主—从技术,即仅一设备(主设备)能初始化传输(查询)。其它设备(从设备)根据主设备查询提供的数据作出相应反应。典型的主设备:主机和可编程仪表。典型的从设备:可编程控制器。

主设备可单独和从设备通信,也能以广播方式和所有从设备通信。如果单独通信,从设备返回一消息作为回应,如果是以广播方式查询的,则不作任何回应。Modbus协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、一错误检测域。

从设备回应消息也由Modbus协议构成,包括确认要行动的域、任何要返回的数据、和一错误检测域。如果在消息接收过程中发生一错误,或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去。