2022年RS485-MODEBUS通讯协议资料_第1页
2022年RS485-MODEBUS通讯协议资料_第2页
2022年RS485-MODEBUS通讯协议资料_第3页
2022年RS485-MODEBUS通讯协议资料_第4页
2022年RS485-MODEBUS通讯协议资料_第5页
已阅读5页,还剩5页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、RS485-MODEBUS 通讯协议 1.字元结构 1.1 10bit 字元框( FOR ASCII 模式)资料格式 7. N .2START 0 1 2 3 4 5 6 STOP STOP BIT BIT BIT 7-data bits 10-bits character fram1 位起始位、 7 位数据位 低位在前,高位在后 资料格式 7. E .1 、2 位停止位 无校验时 START 0 1 2 3 4 5 6 Even STOP BIT Parity BIT 7-data bits 10-bits character fram 1 位起始位、 7 位数据位 低位在前,高位在后 资料

2、格式 7. O. 1、1 位偶校验位、 1 位停止位 有校验时 START 0 1 2 3 4 5 6 Odd STOP BIT Parity BIT 7-data bits 10-bits character fram1 位起始位、 7 位数据位 低位在前,高位在后 1.2 11 bit 字元框( FOR RTU 模式)资料格式 8. N .2 、1 位奇校验位、 1 位停止位 有校验时 START 0 1 2 3 4 5 6 7 STOP STOP BIT BIT BIT 8-data bits 11-bits character fram1 位起始位、 8 位数据位 低位在前,高位在后

3、资料格式 8. E .1 、2 位停止位 无校验时 START 0 1 2 3 4 5 6 7 Even STOP BIT Parity BIT 8-data bits 11-bits character fram1 位起始位、 8 位数据位 低位在前,高位在后 资料格式 8. O. 1 、1 位偶校验位、 1 位停止位 有校验时 START 0 1 2 3 4 5 6 7 Odd STOP BIT Parity BIT 8-data bits 11-bits character fram1 位起始位、 8 位数据位 低位在前,高位在后、1 位奇校验位、 1 位停止位 有校验时 波特率: 12

4、00, 2400,4800,9600,19200,38400 2.通信资料格式2.1 ASCII 格式起始字符STX 起始字元: (:的 ASCII 码为 3AH )从机地址高字节Adress High 通讯地址: 8- bits,由 2 个 ASCII 码组成;0为广播地址从机地址低字节Adress Low 功能码高字节Function High 功能码: 8- bits,由 2 个 ASCII 码组成功能码低字节Function Low 数据链最高字节DATAn-1 资料内容: N8- bits 资料内容,由2N 个 ASCII 码组成( N18)数据链中间字节 数据链最低字节DATA 0

5、 LRC 检查码:由2 个 ASCII 码组成LRC 高字节LRC Check High LRC 低字节LRC Check Low 终止字符高字节END High 终止字元, END High = CR (0DH ),END Low = LF (0AH )终止字符低字节END Low注: CR 和 LF 分别表示回车和换行的ASCII 码 0 x0D 、0 x0A 2.2 RTU 格式起始标志START 保持无输入讯号20ms 从机地址Adress 通信位址: 8-bits 二进制位址; 00H 为广播地址功能码Function 功能码: 8-bits 二进制位址数据链最高字节DATAn-1

6、资料内容: N8-bits 资料内容( N17)数据链中间字节 数据链最低字节DATA 0 CRC 检查码:由2 个 8-bits 二进制码组成CRC 低字节CRC Check Low CRC 高字节CRC Check High 终止标志END 保持无输入讯号20ms 2.3 功能码:03H:读出暂存器内容06H:写入一个WORD 至暂存器08H:回路侦测2.3.1 功能码 03H :读出暂存器内容例如:主机 如 PC对地址 01H 处的从机 如外表 进行数据读取操作:将从机起始暂存器地址为2022H 处的两个连续地址空间中的数据读取出来,表示方法如下RTU 模式:主机询问从机格式:Addre

7、ss 01H 从机回应主机格式:Address 01H 从机地址从机地址功能码Function 03H 功能码Function 03H 从机起始Data Addr Hight 20H 返回字节总数 一个Number of data 04H 暂存器地址Data Addr Low 00H 字 Word 为两个字节 count by byte 读地址总个数 一个Number of data 00H 返回暂存器第一个地Content of data 01H 字 Word 为两个字节 count by word 02H 址中的两个字节数据( Address 0000)F4H CRC 低字节返回暂存器其次

8、个地Content of data CRC Check Low CFH 00H CRC 高字节CRC Check Hight CBH 址中的两个字节数据64H ( Address 0001)CRC 低字节CRC CHK Low BBH CRC 高字节CRC CHK Hight D6H ASCII 模式:主机询问从机格式:从机回应主机格式:起始字符 STX :(3AH )起始字符 STX :(3AH )00从机地址 Address 从机地址 Address 1100功能码 Function 功能码 Function 332返回字节总数 一个0Sub-Func-Hi Data(任意)从机起始0字

9、Word 为两个字节 4暂存器地址00Sub-Func-Lo 0返回暂存器第一个 Content of data 10地址中的两个字节数据(Address 0000)F读地址总个数04一个字 Word Data(任意)00为两个字节 2返回暂存器其次个 Content of data 0LRC 高字节 LRC CHK Hi D地址中的两个字节数据(Address 0001)6LRC 低字节 LRC CHK Lo A 4终止字符高字节 END High CR(0DH )LRC 高字节 LRC CHK Hi 9终止字符低字节 END Low LF (0AH )LRC 低字节 LRC CHK Lo

10、F终止字符高字节 END High CR(0DH )终止字符低字节 END Low LF( 0AH )2.3.2 功能码 06H :写入一个 WORD 至暂存器例如:主机 如 PC对地址 01H 处的从机 如外表 进行数据写入操作:主机将数据 03E8H 写入到从机暂存器2022H 地址中,表示方法如下RTU 模式:主机询问从机格式:Address 01H 从机回应主机格式:Address 01H 从机地址从机地址功能码Function 06H 功能码Function 06H 从机暂存器地址Data Addr Hight 20H 返回被写入的Data Addr Hight 20H Data A

11、ddr Low 05H 从机暂存器地址Data Addr Low 05H 写入的数据 一个字Data Content Hight 03H 返回被写入的数据内容Data Content Hight 03H Word 为两个字节 Data Content Low E8H 一个字 Word 为两个字节 Data Content Low E8H CRC Check Low CRC 低字节CRC Check Low 92H CRC 低字节92H CRC 高字节CRC Check Hight B5H CRC 高字节CRC Check Hight B5H ASCII 模式:主机询问从机格式:STX : (3

12、AH )从机回应主机格式:STX :(3AH )起始字符起始字符从机地址Address 0从机地址Address 011功能码Function 0功能码Function 066从机暂存器地址Sub-Func-Hi 2返回被写入的Sub-Func-Hi 2写入的数据 一个字Sub-Func-Lo 0从机暂存器地址Sub-Func-Lo 00055Data(任意)0返回被写入的数Data(任意)033据内容 一个字Word 为两个字节 EEWord 为两个字节 88LRC 高字节LRC CHK Hi ELRC 高字节LRC CHK Hi ELRC 低字节LRC CHK Lo 9LRC 低字节LRC

13、 CHK Lo 9终止字符高字节END High CR(0DH )终止字符高字节END High CR(0DH )终止字符低字节END Low LF (0AH )终止字符低字节END Low LF( 0AH )2.3.3 功能码 08H :回路侦测RTU 模式:主机询问从机格式:Address 01H 从机回应主机格式:Address 01H 从机地址从机地址功能码Function 08H 功能码Function 08H 从机暂存器地址Sub-Func-Hi 00H 任意 返回被写入的Sub-Func-Hi 00H Sub-Func-Lo 00H 任意 从机暂存器地址Sub-Func-Lo 0

14、0H 写入的数据 一个字Data Content Hight 12H 任意 返回被写入的数据内容Data Content Hight 12H Word 为两个字节 Data Content Low 34H 任意 一个字 Word 为两个字节 Data Content Low 34H CRC Check Low CRC 低字节CRC Check Low EDH CRC 低字节EDH CRC 高字节CRC Check Hight 7CH CRC 高字节CRC Check Hight 7CH ASCII 模式:主机询问从机格式:STX : (3AH )从机回应主机格式:STX :(3AH )起始字符

15、起始字符从机地址Address 0从机地址Address 011功能码Function 0功能码Function 088从机暂存器地址Sub-Func-Hi 0返回被写入的Sub-Func-Hi 000Sub-Func-Lo 0从机暂存器地址Sub-Func-Lo 000写入的数据 一个字Data(任意)1返回被写入的数Data(任意)12据内容 一个字2Word 为两个字节 3Word 为两个字3LRC CHK Hi 4LRC CHK Hi 4节 LRC 高字节BLRC 高字节BLRC 低字节LRC CHK Lo 1LRC 低字节LRC CHK Lo 1终止字符高字节END High CR(

16、0DH)终止字符高字节END High CR(0DH)终止字符低字节END Low LF( 0AH )终止字符低字节END Low LF (0AH )2.4.错误通讯时的额外回应:当把握器 从机如外表 做通信连接时,假如产生错误,此时把握器 从机如外表 会回应错误码且将 Function code AND 80H 回应给主控系统 主机如 PC,让主控系统 主机如 PC知道有错误产生; 错误通信时错误码详细涵义请参考“ 错误码的意义” 表格RTU 模式:ASCII 模式:从机回应主机格式:从机回应主机格式:从机地址Address 01H 起始字符STX 从机地址Address 0功能码Funct

17、ion 86H 1功能码Function 8错误码Except code 02H 6错误码Except code 0CRC 低字节CRC Check Low C3H 2LRC 高字节LRC CHK Hi 7CRC 高字节CRC Check Hight A1H LRC 低字节LRC CHK Lo 7终止字符高字节END High CR 注:其中将原功能码AND 80H 后返回,并在终止字符低字节END Low LF Except code 中返回错误码(见下表格)错误码的意义:错误码 说明01 功能码错误:把握器可以辨识的功能码为 03H、06H、08H 02 寄存器地址错误:从机地址处的把握器

18、无法辨识此寄存器地址03 资料内容值错误:资料内容值太大或者太小,不是把握器所能辨识的内容值04 把握器无法处理:把握器对此命令,无法执行09 CRC 或者 LRC 校验错误10 奇偶校验错误12 接收数据低于规定长度13 接收数据超过规定长度2.5 ASCII 模式检查码( LRC Check )将从 Address 开头到 Data Content 终止之间的数进行相加,再对相加的和值取其补码就得出检查码;例如:用“ 错误通讯时的额外回应” 来运算 01H+08H+00H+00H+12H+34H=4FHLRC 检查码,详细运算方法如下,再对 4FH 取补码后的值 =B1H 4FH 的原码值

19、为 01001111B,4FH 的反码值为 10110000B,4FH 的补码值为 10110001B 原码与补码的运算规章是:补码 =原码取反 +1 2.6 RTU 模式的检查码(CRC Check )检查码运算数据由 Address 开头到 Data content 终止;其运算规章如下:步骤 1:令 16-bit 暂存器( CRC 暂存器) = FFFFH 步骤 2:将第一个 8-bite byte 的讯息指令与 16-bite CRC 暂存器中的数据按位做 Exclusive OR 异或 ,将异或后的结果存入到 16-bite CRC 暂存器内;一个 8-bite byte 讯息指令为

20、 8 位,在参与运算时高八位补充为 00H,讯息指令数据从Address Data content 步骤 3:将 CRC 暂存器中的数据向右移出一位,空出 CRC 暂存器的最高位,将 0 补入到 CRC 暂存器的最高位步骤 4:检查 CRC 暂存器向右移出的一位值:假如是 0,将步骤 3 操作后的新值存入到 CRC 暂存器内;假如是 1 就将步骤 3 操作后得到的新值与 A001H 进行按位做 Exclusive OR 异或 操作, 将异或后的结果存入到 CRC 暂存器内步骤 5:重复上述步骤 3步骤 4,将 8-bit 全部运算完毕步骤 6:重复步骤 2步骤 5,取下一个 8-bit 的讯息

21、指令,直到全部讯息指令全部运算完毕;最终得到的CRC 暂存器的值, 即是 CRC 的检查码; 值得留意的是CRC 的检查码必需分低八位和高八位分别放置于讯息指令的 CRC 检查码暂存器中,低八位 =CRC 检查码 %256,高八位 =CRC 检查码 /256 注:Exclusive OR 异或 运算是实现 “ 不同为 1,同就为 0” 这种规律关系的一种运算,其规律运算符为 “ ” ,其运算规章如下:00 = 0, 0 1 = 1, 1 0 = 1, 1 1 = 0 ,在 C语言中有“ 按位异或” 运算“”以下程序为用 C 语言所写的 CRC 检查码运算范例:unsigned char *da

22、ta; /定义一个指针用于存放讯息指令数据链的首地址 unsigned char length;/定义一个长度变量用于存放讯息指令的长度即字节长度 unsigned int crc_chkunsigned char *data,unsigned char length /此函数中的两个变量功能在上面已说明 int j; /定义一个变量 j 用于储备每个讯息指令向右移动到了第几位 unsigned int reg_crc=0 xffff; /给 CRC 暂存器赋初值 0 xffff whilelength- /每次将讯息指令的长度数值减一,即操作完一个讯息指令就将总的讯息指令数减一 reg_cr

23、c = *data+; /将指针变量 data 中的讯息指令数据与 CRC 暂存器中的数据进行按位异或操 作,将操作后的结果存放到 reg_crc 暂存器中, 操作过后指针变量 data 指向下一个讯息指令的地址forj = 0; j 1 0 xa001; return reg_crc; /返回操作后 CRC 暂存器中的数据 例如:用“ 错误通讯时的额外回应” 来运算CRC 检查码,详细步骤如下Address = 01H ,Function = 86H , Except code = 02H,令 CRC Check = FFFFH 序位讯息指令CRC 暂存器CRC 右移CRC 右移一是否异是否

24、与 A001H 异或后号号一位的数据位后的数据或操作进行异或操作的数据1 1 说明一:下面第一步执行Address 中的数据与CRC 暂存器中的数据进行异或操作1111 1111 1111 1111 1111 1111 1111 1110 0 0111 1111 1111 1111 2 1111 1111 1111 1110 3 2 0111 1111 1 0011 1111 1010 0000 1001 1111 1111 1111 1111 1111 0000 0001 1111 1110 4 3 Address 1001 1111 0 0100 1111 1111 1111 1000 0

25、111 = 1111 1110 01H 0100 1111 1 0010 0111 1010 0000 5 4 = 1111 1111 1111 1111 0000 0001 1111 1110 6 5 0000 1000 0111 0 0100 0011 1111 1111 1000 0001 0001B 1111 1110 0100 0011 1 0010 0001 1010 0000 7 6 1111 1111 1111 1111 0000 0001 1111 1110 8 7 1000 0001 0 0100 0000 1111 1111 1000 0000 1111 1110 010

26、0 0000 1 0010 0000 1010 0000 9 8 1111 1111 0111 1111 0000 0001 0111 1110 10 1 说明二:下面第一步执行Function 中的数据与CRC 暂存器中的数据进行异或操作1000 0000 1000 0000 0111 1110 1111 1000 0 0100 0000 0111 1100 11 1000 0000 1111 1000 12 2 0100 0000 0 0010 0000 0011 1110 1010 1000 Function 0111 1100 13 3 = 0010 0000 0 0001 0000

27、0001 1111 86H 0011 1110 = 0001 0000 1 0000 1000 1010 0000 14 4 1000 0001 1111 0000 1111 0000 0001 0000 1110 15 5 0110B 1010 1000 0 0101 0100 0000 0111 1000 1010 0000 1110 0101 0100 1 0010 1010 1010 0000 16 6 0000 0111 0000 0011 0000 0001 0000 0010 17 7 1000 1010 0 0100 0101 0000 0001 1000 0010 0000 0010 0100 0101 1 0010 0010 1010 0000 18 8 0000 0001 1000 0000 0000 0001 1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论