MODBUS协议简介

MODBUS协议简介

ID:37056992

大小:92.50 KB

页数:7页

时间:2019-05-15

MODBUS协议简介_第1页
MODBUS协议简介_第2页
MODBUS协议简介_第3页
MODBUS协议简介_第4页
MODBUS协议简介_第5页
资源描述:

《MODBUS协议简介》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、第一章MODBUS协议简介MODBUS协议详细定义了校验码、数据序列等,这些都是特定数据交换的必要内容。MODBUS协议在一根通讯线上使用RS485应答式连接(半双工),这意味着在一根单独的通讯线上信号沿着相反的两个方向传输。首先,主计算机的信号寻址到一台唯一的终端设备(从机),然后,在相反的方向上终端设备发出的应答信号传输给主机。MODBUS协议只允许在主计算机和终端设备之间,而不允许独立的设备之间的数据交换,这就不会在使它们初始化时占据通讯线路,而仅限于响应到达本机的查询信号。1.1传输方式传输方式是一个数据帧内一系

2、列独立的数据结构以及用于传输数据的有限规则,下面定义了与MODBUS协议–RTU方式相兼容的传输方式。uCodingSystem二进制编码8位uStartbit起始位1位uDatabits数据位8位uParity校验无奇偶校验uStopbit停止位1位uErrorchecking错误检测CRC(循环冗余校验)[注]瑞士DAE公司的网络电力仪表响应查询信号的时间为0.1~1.0秒(典型值为0.4秒)1.2协议当数据帧到达终端设备时,它通过一个简单的“口”进入寻址到的设备,该设备去掉数据帧的“信封”(数据头),读取数据,如果

3、没有错误,就执行数据所请求的任务,然后,它将自己生成的数据加入到取得的“信封”中,把数据帧返回给发送者。返回的响应数据中包含了以下内容:终端从机地址(Address)、被执行了的命令(Function)、执行命令生成的被请求数据(Data)和一个校验码(Check)。发生任何错误都不会有成功的响应。1.2.1数据帧格式AddressFunctionDataCheck8-Bits8-BitsNx8-Bits16-Bits图1–1.数据帧格式1.2.2地址(Address)域地址域在帧的开始部分,由一个字节8位(0~255)

4、组成,这些位标明了用户指定的终端设备的地址,该设备将接收来自与之相连的主机数据。每个终端设备的地址必须是唯一的,仅仅被寻址到的终端会响应包含了该地址的查询。当终端发送回一个响应,响应中的从机地址数据便告诉了主机哪台终端正与之进行通信。1.2.3功能(Function)域功能域代码告诉了被寻址到的终端执行何种功能。表1–1列出了所有的功能码、它们的意义及它们的初始功能。表1–1功能码代码意义行为01读DO状态获得数字输出的当前状态(of/off)02读DI状态获得数字输入的当前状态(of/off)03读数据获得一个或多个寄

5、存器的当前二进制值05控制DO强行设置DO的状态为on或off16预置多寄存器放置特定的二进制值到一系列多寄存器中1.2.4数据域数据域包含了终端执行特定功能所需要的数据或者终端响应查询时采集到的数据。这些数据的内容可能是数值、参考地址或者设置值。例如:功能域码告诉终端读取一个寄存器,数据域则需要指明从哪个寄存器开始及读取多少个数据,内嵌的地址和数据依照类型和从机之间的不同内容而有所不同。1.2.5错误校验域该域允许主机和终端检查传输过程中的错误。有时,由于电噪声和其它干扰,一组数据在从一个设备传输到另一个设备时在线路上

6、可能会发生一些改变,出错校验能够保证主机或者终端不去响应那些传输过程中发生了改变的数据,这就提高了系统的安全性和效率,出错校验使用了16位循环冗余的方法(CRC16)。[注]发送序列总是相同的–地址、功能码、数据和与方向相关的出错校验。1.3错误检测循环冗余校验(CRC)域占用两个字节,包含了一个16位的二进制值。CRC值由传送设备计算出来,然后附加到数据帧上,接收设备在接收数据时重新计算CRC值,然后与接收到的CRC域中的值进行比较,如果这两个值不相等,就发生了错误。CRC运算时,首先将一个16位的寄存器预置为全1,然

7、后连续把数据帧中的每个字节中的8位与该寄存器的当前值进行运算,仅仅每个字节的8个数据位参与生成CRC,起始位和终止位以及可能使用的奇偶位都不影响CRC。在生成CRC时,每个字节的8位与寄存器中的内容进行异或,然后将结果向低位移位,高位则用“0”补充,最低位(LSB)移出并检测,如果是1,该寄存器就与一个预设的固定值(0A001H)进行一次异或运算,如果最低位为0,不作任何处理。上述处理重复进行,知道执行完了8次移位操作,当最后一位(第8位)移完以后,下一个8位字节与寄存器的当前值进行异或运算,同样进行上述的另一个8次移位

8、异或操作,当数据帧中的所有字节都作了处理,生成的最终值就是CRC值。生成一个CRC的流程为:1、预置一个16位寄存器为0FFFFH(全1),称之为CRC寄存器。2、把数据帧中的第一个字节的8位与CRC寄存器中的低字节进行异或运算,结果存回CRC寄存器。3、将CRC寄存器向右移一位,最高位填以0,最低位移出并检测。1、

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。