ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:21.83KB ,
资源ID:20244340      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20244340.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(MODBUS通信协议文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

MODBUS通信协议文档格式.docx

1、写入的具体数据 校验码(WORD以上所有字节的CRC16校验和 上行:设备地址( BYTE):01HFFH10H起始地址( WOR)D:0000H FFFFH 写的字数( WOR)D:0001H007DHCRC计算例程:unsigned short CalculateCRC(unsigned short* pData,unsigned short wLength)unsigned short wCRC; wCRC = 0xffff;while(wLength-) wCRC = (wCRC8Fc_wTableCRC(wCRCA*pData+)&0x00ff;return wCRC;unsigne

2、d short c_wTableCRC256 =0x0000,0xc0c1,0xc181,0x0140,0xc301,0x03c0,0x0280,0xc241,0xc601,0x06c0,0x0780,0xc741,0x0500,0xc5c1,0xc481,0x0440,0xcc01,0x0cc0,0x0d80,0xcd41,0x0f00,0xcfc1,0xce81,0x0e40,0x0a00,0xcac1,0xcb81,0x0b40,0xc901,0x09c0,0x0880,0xc841,0xd801,0x18c0,0x1980,0xd941,0x1b00,0xdbc1,0xda81,0x1

3、a40,0x1e00,0xdec1,0xdf81,0x1f40,0xdd01,0x1dc0,0x1c80,0xdc41,0x1400,0xd4c1,0xd581,0x1540,0xd701,0x17c0,0x1680,0xd641,0xd201,0x12c0,0x1380,0xd341,0x1100,0xd1c1,0xd081,0x1040,0xf001,0x30c0,0x3180,0xf141,0x3300,0xf3c1,0xf281,0x3240,0x3600,0xf6c1,0xf781,0x3740,0xf501,0x35c0,0x3480,0xf441,0x3c00,0xfcc1,0x

4、fd81,0x3d40,0xff01,0x3fc0,0x3e80,0xfe41,0xfa01,0x3ac0,0x3b80,0xfb41,0x3900,0xf9c1,0xf881,0x3840,0x2800,0xe8c1,0xe981,0x2940,0xeb01,0x2bc0,0x2a80,0xea41,0xee01,0x2ec0,0x2f80,0xef41,0x2d00,0xedc1,0xec81,0x2c40,0xe401,0x24c0,0x2580,0xe541,0x2700,0xe7c1,0xe681,0x2640,0x2200,0xe2c1,0xe381,0x2340,0xe101,0

5、x21c0,0x2080,0xe041,0xa001,0x60c0,0x6180,0xa141,0x6300,0xa3c1,0xa281,0x6240,0x6600,0xa6c1,0xa781,0x6740,0xa501,0x65c0,0x6480,0xa441,0x6c00,0xacc1,0xad81,0x6d40,0xaf01,0x6fc0,0x6e80,0xae41,0xaa01,0x6ac0,0x6b80,0xab41,0x6900,0xa9c1,0xa881,0x6840,0x7800,0xb8c1,0xb981,0x7940,0xbb01,0x7bc0,0x7a80,0xba41,

6、0xbe01,0x7ec0,0x7f80,0xbf41,0x7d00,0xbdc1,0xbc81,0x7c40,0xb401,0x74c0,0x7580,0xb541,0x7700,0xb7c1,0xb681,0x7640,0x7200,0xb2c1,0xb381,0x7340,0xb101,0x71c0,0x7080,0xb041,0x5000,0x90c1,0x9181,0x5140,0x9301,0x53c0,0x5280,0x9241,0x9601,0x56c0,0x5780,0x9741,0x5500,0x95c1,0x9481,0x5440,0x9c01,0x5cc0,0x5d80

7、,0x9d41,0x5f00,0x9fc1,0x9e81,0x5e40,0x5a00,0x9ac1,0x9b81,0x5b40,0x9901,0x59c0,0x5880,0x9841,0x8801,0x48c0,0x4980,0x8941,0x4b00,0x8bc1,0x8a81,0x4a40,0x4e00,0x8ec1,0x8f81,0x4f40,0x8d01,0x4dc0,0x4c80,0x8c41,0x4400,0x84c1,0x8581,0x4540,0x8701,0x47c0,0x4680,0x8641,0x8201,0x42c0,0x4380,0x8341,0x4100,0x81c

8、1,0x8081,0x4040 ;11位的字通讯数据的类型及格式说明:信息传输为异步方式,并以字节为单位。在主站和从站之间传递的通讯信息是 格式:字格式(串行数据)11位二进制起始位1位数据位8位奇偶校验位1位:有奇偶校验位/无:无奇偶校验位停止位有奇偶校验位/2位:通讯数据(信息帧)格式地址码功能码数据区错误校检1字节N字节16位CR(码(冗余循环码)数据格式:数据长度: 注:1、1个字节由8位二进制数组成(既8 bit )。2、ModBus是 Modicon公司的注册商标。3、“从机”在本文件中既为 PDM、通讯信息传输过程:当通讯命令由发送设备(主机)发送至接收设备(从机)时,符合相应地

9、址码的从机接 收通讯命令,并根据功能码及相关要求读取信息,如果 CRC校验无误,则执行相应的任务,然后把执行结果(数据)返送给主机。返回的信息中包括地址码、功能码、执行后的数据以 及CRC校验码。如果 CRC校验出错就不返回任何信息。1.1地址码:地址码是每次通讯信息帧的第一字节 (8位),从1到255。这个字节表明由用户设置地址的从机将接收由主机发送来的信息。 每个从机都必须有唯一的地址码, 并且只有符合地址码的从机才能响应回送信息。当从机回送信息时,回送数据均以各自的地址码开始。主机 发送的地址码表明将发送到的从机地址, 而从机返回的地址码表明回送的从机地址。 相应的地址码表明该信息来自于

10、何处。1.2功能码:是每次通讯信息帧传送的第二个字节。 ModBus通讯规约可定义的功能码为 1到127。PDM系列仪表/变送器仅用到其中的一部分功能码。作为主机请求发送,通过功能码告诉从机应 执行什么动作。作为从机响应,从机返回的功能码与从主机发送来的功能码一样, 并表明从机已响应主机并且已进行相关的操作。表8.1 MODBUS部分功能码定义操作(二进制)02读开关量输入读取一路或多路开关量状态输入数据01读开关量输出读取一路或多路开关量输出状态数据03读寄存器数据读取一个或多个寄存器的数据05写开关量输出控制一路继电器“合/分”输出06写单路寄存器把一组二进制数据写入单个寄存器10写多路寄

11、存器把多组二进制数据写入多个寄存器1.3数据区:数据区包括需要由从机返送何种信息或执行什么动作。 这些信息可以是数据 (如:开关量输入/输出、模拟量输入/输出、寄存器等等)、参考地址等。例如,主机通过功能码 03告诉从机返回寄存器的值(包含要读取寄存器的起始地址及读取寄存器的长度) ,则返回的数据包括寄存器的数据长度及数据内容。 对于不同的从机,地址和数据信息都不相同(应给出通讯信息表)。二、MODBU功能码简介2.1功能码“ 02” :读1路或多路开关量状态输入例如:主机要读取地址为 01,开关量DI1 DI4的输入状态。从机(PDM数据寄存器的地址和数据为:起始位地址DI寄存器数据(16进

12、制)备注00000BDI1/DI2/DI4 状态为 “ 1”,DI3 状态为“ 0”主机发送的报文格式:主机发送字节数发送的信息从机地址1发送至地址为01的从机读开关量输入状态起始BIT位2起始BIT位地址为0000读数据长度0004读取4路开关量输入状态位CRC码79C9由主机计算得到CRC码从机(PDM响应返回的报文格式:从机响应返回的信息来自从机01数据长度1个字节(8个BIT位)DI状态数据DI寄存器内容E04F由从机计算得到CRC码22功能码“ 01”:读1路或多路开关量输出状态主机要读取地址为 01,开关量DO1, DO2的输出状态。 从机(PDM数据寄存器的地址和数据为:DO寄存

13、器数据(16进制)DO2输出状态为“ 1”,DO1输出状态为“ 0”读开关量输出状态0002读取2路继电器输出状态位BDCBDO状态数据DO寄存器内容D0492.3功能码“ 03” :读多路寄存器输入主机要读取地址为 01,起始地址为0116的3个从机寄存器数据。寄存器地址寄存器数据(16进制)对应PDM电量01161784UA01171780UB0118178AUC读取寄存器起始地址起始地址为011630003读取3个寄存器(共6个字节)E5F3由主机计算得到 CRC码从机(PDM)响应返回的报文格式:读取字3个寄存器共6个字节寄存器数据1地址为0116内存的内容寄存器数据2地址为0117内

14、存的内容寄存器数据3地址为0118内存的内容5847由从机计算得到 CRC码2.4功能码“ 05” :写1路开关量输出(“遥控”)例1:开关量输出点 DO1,其当前状态为“分”,主机要控制该路继电器“合”控制命令为:“FF00”为控制继电器“合”;“ 0000 ”为控制继电器“分”;主机发送的报文格式:写开关量输出状态输出BIT位对应输出继电器 BIT位(DO1控制命令FF00控制该路继电器输出为“合”状态位 丁8C3A从机(PDM响应返回的报文格式:与主机发送的报文格式及数据内容完全相同。例2:开关量输出点 DO2其当前状态为“合”,主机要控制该路继电器“分”0001对应输出继电器 BIT位

15、(DO2控制该路继电器输出为“合”状态位 9C0A2.5功能码“ 06” :主机要把数据 07D0,保存到地址为 002C的从机寄存器中去(从机地址码为 01)。通讯数据保存结束后,地址为 002C的PDM表原存储信息为:地址原来存储数据(16进制)002C04B0举例要写入的寄存器地址写入数据07D0对应的新数据4BAF由主机计算得到的 CRC码从机(PDM)响应返回的报文格式:2.6功能码“10”:主机利用这个功能码把多个数据保存到 PDM表的数据存储器中去。Modbus通讯规约中的寄存器指的是16位(即2字节),并且高位在前。这样PDM勺存储器都是二个字节。由于 Modbus通讯规约允许

16、每次最多保存 60个寄存器,因此 PDM一次也最多允许保存 60个数据寄存器。主机要把0064,0010保存到地址为002C, 002D的从机寄存器中去 (从机地址码为 01)。通讯数据保存结束后,地址为 002C/002D的PDM表内存储信息为:002D1388发送信息:发送至从机01要写入的寄存器的起始地址保存数据字长度保存数据的字长度(共 2字)保存数据字节长04保存数据的字节长度(共 4字节)保存数据1数据地址002C保存数据2数据地址002DFC63起始地址为002C保存2个字长度的数据8001由从机计算得到的 CRC码三、 错误校验码(CRC校验):主机或从机可用校验码进行判别接收

17、信息是否正确。 由于电子噪声或一些其它干扰, 信息在传输过程中有时会发生错误,错误校验码( CRC可以检验主机或从机在通讯数据传送过程中的信息是否有误,错误的数据可以放弃(无论是发送还是接收) ,这样增加了系统的安全和效率。MODBU通讯协议的CRC(冗余循环码)包含 2个字节,即16位二进制数。CRC码由发 送设备(主机)计算,放置于发送信息帧的尾部。接收信息的设备(从机)再重新计算接收 到信息的CRC比较计算得到的 CRC是否与接收到的相符,如果两者不相符,则表明出错。在进行CRC计算时只用8个数据位,起始位及停止位,如有奇偶校验位也包括奇偶校验 位,都不参与CRC计算。 CRC码的计算方

18、法是:1.预置1个16位的寄存器为十六进制 FFFF (即全为1);称此寄存器为 CRC寄存器;2把第一个8位二进制数据(既通讯信息帧的第一个字节)与 16位的CRC寄存器的低8位相异或,把结果放于 CRC寄存器;3.把CRC寄存器的内容右移一位(朝低位)用 0填补最高位,并检查右移后的移出位;4.如果移出位为0:重复第3步(再次右移一位);如果移出位为 1: CRC寄存器与多项式 A001 (1010 0000 0000 0001 )进行异或;5重复步骤3和4,直到右移8次,这样整个8位数据全部进行了处理;6.重复步骤2到步骤5,进行通讯信息帧下一个字节的处理;7将该通讯信息帧所有字节按上述

19、步骤计算完成后,得到的 16位CRC寄存器的高、低字节进行交换;8.最后得到的 CRC寄存器内容即为:CRC码。四、 通讯错误信息及数据的处理:当PDM表检测到除了 CRC码出错以外的错误时,必须向主机回送信息,功能码的最高位 置为1,即从机返送给主机的功能码是在主机发送的功能码的基础上加 128。以下的这些代码表明有意外的错误发生。PDM从主机接收到的信息如有 CRC错误,则将被PDM表忽略。PDM 返送的错误码的格式如下(CRC码除外):地址码:功能码:1字节(最高位为1)错误码:CRC 码:2字节。PDM 响应回送如下错误码:81.非法的功能码。接收到的功能码PDM表不支持。82非法的数据位置。指定的数据位置超出 PDM俵的范围。83非法的数据值。接收到主机发送的数据值超出 PDM相应地址的数据范围。欢迎您的下载,资料仅供参考!致力为企业和个人提供合同协议, 策划案计划书,学习资料等等打造全网一站式需求

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1