【曹俊义专栏】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协议构成,包括确认要行动的域、任何要返回的数据、和一错误检测域。如果在消息接收过程中发生一错误,或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去。