Modbus通讯协议简介解析

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Modbus通讯协议简介一种工业上广泛使用的串行通信协议MODBUS概述Modbus协议是工业控制器网络协议中的一种,此协议定义了一个控制器能认识的消息结构,描述了一个控制器请求访问其它设备、回应来自其它设备的请求以及侦测错误并记录的过程。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一种通用工业标准,可以将不同厂商生产的控制设备(例如:变频器,伺服驱动器,智能仪表,信号采集卡等)连成工业网络,进行集中监控。MODBUS组网图例Modbus主/从协议原理Modbus串行链路协议是一个主-从协议。在同一时间,只能将一个主站连接到总线,将一个或多个从站(最大数量为247)连接到相同的串行总线。Modbus通讯总是由主站发起,当从站没有收到来自主站的请求时,将不会发送数据。主站同时只能启动一个Modbus事务处理,从站之间不能相互通信。Modbus主/从协议原理主站用两种模式向从站发出Modbus请求,分别为单播模式和广播模式。单播模式工作方式:由主站寻址单个从站,从站接收并处理完请求之后,向主站返回一个报文(一个应答)。在这种模式下,一个Modbus事务处理包含2个报文:一个是主站的请求,另一个是从站的应答。每个从站必须有唯一的地址(1~247),这样才能区别于其它站而被独立地寻址。广播模式工作方式:主站可以向所有的从站发送请求,对于主站广播的请求没有应答返回,广播请求必须是写命令,所有设备必须接收写功能的广播,地址0被保留用来识别广播通信。Modbus寻址原则Modbus寻址空间由256个不同地址组成。地址0为广播地址,所有从站必须识别广播地址。Modbus主站没有特定地址,只有从站有一个地址,在Modbus串行总线上,这个地址必须是唯一的。表1Modbus寻址空间分配01-247248-255广播地址从站某个地址保留地址Require-Respond(请求-响应)周期主设备查询消息设备地址功能代码数据段错误检测设备地址功能代码错误检测数据段从设备回应消息Require-Respond(请求-响应)周期(1)请求主设备查询消息中的功能代码告之被选中的从设备要执行何种功能。数据段包含了从设备要执行功能的任何附加信息。例如:功能代码03是要求从设备读保持寄存器并返回它们的内容。数据段必须包含要告之从设备的信息:从何寄存器开始读及要读的寄存器数量。错误检测域为从设备提供了一种验证消息内容是否正确的方法。(2)响应如果从设备产生一个正常的回应,在回应消息中的功能代码是在查询消息中的功能代码的回应。数据段包括了从设备收集的数据(例如寄存器值或状态)。如果有错误发生,功能代码将被修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。错误检测域允许主设备确认消息内容是否可用。传输模式(Modbus的2种变种)控制器能设置为两种传输模式(ASCII或RTU)中的任何一种在标准的Modbus网络中进行通信。用户可以选择想要的模式,包括波特率、校验方式等串口通信参数,在配置每个控制器的时候,一个Modbus网络上的所有设备都必须选择相同的传输模式和串口参数。(1)ASCII模式当控制器设为在Modbus网络上以ASCII模式通信时,在消息中的每个数据字节都转换为两个表示其16进制编码的ASCII字符发送。这种方式的主要优点是人工可读、字符发送的时间间隔可达到1秒而不产生错误,缺点是表示方式冗长。(2)RTU模式当控制器设为在Modbus网络上以RTU(远程终端单元)模式通信时,在消息中的每个字节以8个bit发送。这种方式的主要优点是:在同样的波特率下,可比ASCII方式传送更多的数据。Modbus消息帧格式(1)ASCII帧使用ASCII模式,消息以冒号’:’字符(ASCII码3AH)开始,以回车换行符结束(ASCII码0DH,0AH),其它域可以使用的传输字符是”0...9,A...F”。网络上的设备不断侦测’:’字符,当有一个’:’接收到时,每个设备都解码下个域(地址域)来判断是否发给自己的。消息中字符间发送的时间间隔最长不能超过1秒,否则接收的设备将认为是传输错误。一个典型的ASCII模式消息帧如下所示:起始位设备地址功能代码数据LRC校验结束符1个字符2个字符2个字符n个字符2个字符2个字符Modbus消息帧格式Modbus消息帧格式2)RTU帧使用RTU模式,两个连续发送的数据帧之间至少要有3.5个字符的停顿时间间隔。传输的第一个域是设备地址。网络设备不断侦测网络总线上的有效数据和停顿间隔时间,当第一个域(地址域)接收到,每个设备都进行解码以判断是否发往自己的。如果发送完一个数据帧,间隔时间小于3.5个字符时间又发送第二个数据帧,那么接收站点就会误认为它们是同一个数据帧,从而造成接受数据混乱。一个典型的RTU模式消息帧如下所示。起始位设备地址功能代码数据CRC校验结束符28Bit8Bit8Bitn个8Bit16Bit28BitModbus消息帧格式Modbus差错控制标准的Modbus网络有两种错误校验方法。错误校验域的内容视所选的校验方法而定。(1)ASCII当选用ASCII模式作字符帧,错误校验域包含两个ASCII字符。这是使用LRC(纵向冗长校验)方法对消息内容计算得出的,不包括开始的冒号符及回车换行符。LRC字符附加在回车换行符前面。(2)RTU当选用RTU模式作字符帧,错误校验域包含一个16Bits值。错误校验域的内容是通过对消息内容进行CRC(循环冗长校验)方法得出的。CRC域附加在消息的最后,添加时先是低字节然后是高字节,故CRC的高位字节是发送消息的最后一个字节。Modbus功能码与数据类型Modbus功能码与数据类型数据类型•IEEE标准的浮点数•32位整型数•8位数据•混合数据类型•整数中的位域•整数倍数

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功