资源描述
Modbus主要内容n什么是Modbus及Modbus协议特点nModbus协议具体介绍n10CH的Modbus 协议 nModbus协议对应Firmware编写Modbus协议:一一.概念 Modbus 是一个请求应答的协议,并且提供功能码规定的服务。通过此协议,控制器相互之间、控制器经由网络(例如以太网、485总线)和其它设备之间可以通信。它已经成为一通用工业标准。Modbus协议特点:Modbus协议采用主从工作方式,允许一台主设备和多台从设备通信,每台从设备地址由用户设定,地址范围为1-247。通信采用命令/应答方式,每一种命令帧都对应一个应答帧。命令帧由主设备发出,所有从设备都将收到报文,但只有被寻址的从设备才会响应相应命令,返回相应的应答帧。如图1所示。Modbus协议特点:图1 Modbus协议具体介绍:nModbus 通讯协议传送方式。nModbus 通信的数据帧结构。nModbus 功能代码。nModbus 数据校验方式。nModbus 错误处理。Modbus 通讯协议传送方式:Modbus通讯协议有两种传送方式:RTU方式和ASCII方式 两种方式如下所示:Modbus 通讯协议传送方式:ASCII模式:在消息中的每个8Bit字节都作为两个ASCII字符发送。这种方式的主要优点是字符发送的时间间隔可达到1秒而不产生错误。Modbus 通讯协议传送方式:RTU模式:在消息中的每个8Bit字节包含两个4Bit的十六进制字符。这种方式的主要优点是:相对于ASCII模式,RTU模式表达相同的信息需要较少的位数,且在相同通讯速率下具有更大的数据流量。因此通常情况下,一般工业智能仪器仪表都是采用RTU模式的Modbus规约。10CH采样RTU。模式Modbus 通信的数据帧结构:nRTU数据帧结构图。Modbus 通信的数据帧结构:1.设备地址:设备地址:单个从设备的地址范围是十进制的1247(地址0是向所有从设备的广播地址)主设备通过将要联络的从设备的地址放入消息中的地址域来选择从设备。当从设备发送回应消息时,它把自己的地址放入回应的地址域中,以便主设备知道是哪一个设备作出回应。2.功能代码功能代码:功能代码域包含了8bit,代码范围为十进制的1255,功能代码告知从设备需执行哪种动作。Modbus 通信的数据帧结构:1.公共功能码表2.常用的功能码为03 06 163.10CH使用了 03和06功能码Modbus 通信的数据帧结构:3.数据域:数据域:数据域是由两个十六进制数集合构成的,范围00FF。根据网络传输模式,可以是由一对ASCII字符组成或由一个RTU字符组成。4.校验码校验码:ASCII:采用纵向冗余错误校验-LRCRTU:采用循环冗余错误校验-CRC-16Modbus 功能代码:从设备响应:功能码1个字节0 x03字节数1个字节2N*寄存器值N*2个字节 N*寄存器数量错误:差错码1个字节0 x83异常码1个字节01或02或03或04读取保持寄存器流程图读取保持寄存器流程图写单个寄存器流程图写单个寄存器流程图Modbus 数据校验方式:nCRC-16(RTU 循环冗余错误校验)CRC校验码是两个字节,包含一个16位的二进制值。它由传输设备计算后加入到消息中。接收设备重新计算收到消息的CRC,并与接收到的CRC域中的值比较,如果两值不同,则有误。nASCII(LRC 纵向冗余错误校验)LRC校验码是一个包含一个8位二进制值的字节。LRC值由传输设备来计算并放到消息帧中,接收设备在接收消息的过程中计算LRC,并将它和接收到消息中LRC域中的值比较,如果两值不等,说明有错误。谢谢!
展开阅读全文