下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、v1.0可编辑可修改5ModBus协议I.Modbus是由Modicon (现为施耐德电气公司的一个品牌)在 1979年发明的,是全球第一个真正用于工业现场的总线协议,在中国,Modbus已经成为国家标准 GB/T19582-2008。2 .ModBus网络:系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。3 .Modbus协议:控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。当在同一 Modbus网络上通信时,此协议决定了每个控制器需要知道它们的设备地址, 识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用 Modbus协议
2、发出。在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。支持传统的 RS-232、RS-422、RS-485和以太网设备。许多工业设备,包括PLQ DCS智能仪表等都在使用 Modbus协议作为他们之间的通信标准。控制器能直接或经由Modem组网。BACnet IP坨唐聿片唯CJVL一士专匕驱动器MODBUS通信阿美MODBUSON MB+PLCHMIHUM*动器美K=CHUSON RS4X5业动需4 .标准的Modbus 口是使用RS-232-C兼容串行接口,它定义了连接口的针脚、电缆、信号位、 传
3、输波特率、奇偶校验。5 .Modbus协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的 数据、错误检测域。6 .从设备回应消息也由 Modbus协议构成,包括:确认要行动的域、任何要返回的数据、和 _ 一错误检测域。如果在消息接收过程中发生一错误,或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去。7 .查询:数据段包含了从设备要执行功能的任何附加信息:从何寄存器开始读、 要读的寄存器数量,错误检测域为从设备提供了一种验证消息内容是否正确的方法回应:查询消息中的功能代码的回应。数据段包括了从设备收集的数据:像寄存器值或状态。如果有错误发生,功能代码将被修
4、改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。错误检测域允许主设备确认消息内容是否可用。8 .传输方式:2种传输模式:一种模式是ASCII (美国信息交换码),另一种模式是RTU(远 程终端设备)。2种模式不能混用。ASCII可打印字符便于故障检测,而且对 用高级语言(如 Fortran )编程的主计算机及主PC很适宜。RTU则适用于机器语言编程的计算机和PC主机(1)ASCII 模式与RTUII式相互转换:RTU模式传输的数据:是 8位二进制字符,分高位和低位,每部分各含4位。ASCII模式传输的数据:是 16位十六进制字符。转换:将RTU的每4个高位和低位分别转换成
5、ASCII对应的16进制字符。区别:ASCII模式使用的字符虽是RTU莫式的两倍,但 ASCII数据的译码和处理更为容易一些用RTU模式时报文字符必须以连续数据流的形式传送,用ASCII模式,字符之间可产生长达1s的间隔,以适应速度较慢的机器。(2) ASCII 模式一个信息中的每4位字节作为1个ASCII字符传输,如数值63H用ASCII方式时,需发 送两个字节,即 ASCII “6” ( 0110110)和 ASCII” 3 “( 0110011) , 1 个 ASCII 字符占用的 位数有7位和8位,国际通用7位为多。这种方式的主要优点是字符发送的时间间隔可达到 1秒而不产生错误。代码系
6、统:十六进制,ASCII字符0.9,A.F消息中的每个 ASCII字符都是一个十六进制字符组成每个字节的位:1个起始位7个数据位,最小的有效位先发送1个奇偶校验位,无校验则无1个停止位(有校验时),2个Bit (无校验时)错误检测域LRC(纵向冗长检测)(3) RTU模式当控制器设为在 Modbus网络上以RTU模式通信,在消息中的每个8Bit字节按照原值传 送,不做处理,如 63H, RTU将直接发送01100011。这种方式的主要优点是:数据帧传送之 间没有间隔,相同波特率下传输数据的密度要比ASCII高,传输速度更快。代码系统:8位二进制,十六进制数 0.9 , A.F消息中的每个8位域
7、都是一或两个十六进制字符组成每个字节的位:1个起始位8个数据位,最小的有效位先发送1个奇偶校验位,无校验则无1个停止位(有校验时),2个Bit (无校验时)9.数据校验方式CRCCRCM是两个字节,包含一 16位的二进制值。它由传输设备计算后加入到消息中。接 收设备重新计算收到消息的 CRC并与接收到的CRCM中的值比较,如果两值不同,则有误。CR比先调入一值是全“ 1”的16位寄存器,然后调用一过程将消息中连续的8位字节和当前寄存器中的值进行处理。仅每个字符中的8Bit数据对CRCW效,起始位和停止位以及奇偶校验位均无效。CRCT生过程中,每个 8位字符都单独和寄存器内容相异或( XOR ,
8、结果向最低有效 位方向移动,最高有效位以 0填充。LSB被提取出来检测,如果 LSB为1,寄存器单独和预 置的值或一下,如果 LSB为0,则不进行。整个过程要重复 8次。在最后一位(第 8位)完 成后,下一个8位字节又单独和寄存器的当前值相异或( XOR。最终寄存器中的值,是消 息中所有的字节都执行之后的CRC直。CR%加到消息中时,低字节先加入,然后高字节。CRC-16错误校验程序如下:报文(此处只涉及数据位,不指起始位、停止位和任选的 奇偶校验位)被看作是一个连续的二进制,其最高有效位(MSB首选发送。报文先与XT 16相乘(左移16位),然后看 XT 16+XT 15+XT 2+1除,X
9、T 16+XT 15+XT 2+1可以表示为二 进制数11000, 0000, 0000, 0101。整数商位忽略不记,16位余数加入该报文 (MS眺发送), 成为2个CR或验字节。余数中的1全部初始化,以免所有的零成为一条报文被接收。经上述处理而含有CRC字节的报文,若无错误,到接收设备后再被同一多项式 (XT 16+XT 15+XT 2+1)除,会得到一个零余数(接收设备核验这个CRC?节,并将其与被传送的CRQ匕较)。全部运算以 2为模(无进位)。习惯于成串发送数据的设备会首选送出字符的最右位(LSB-最低有效位)。而在生成CRC青况下,发送首位应是被除数的最高有效位MSB由于在运算中不
10、用进位,为便于操作起见,计算CRC寸设MSEfe最右位。生成多项式的位序也必须反过来,以保持一致。多项式的MSB各去不记,因其只对商有影响而不影响余数。生成CRC-16校验字节的步骤如下:装如一个16位寄存器,所有数位均为 1。该16位寄存器的高位 字节与开始8位字节进行“异或”运算。 运算结果放入这个16 位寄存器。把这个16寄存器向右移一位。v1.0可编辑可修改若向右(标记位)移出的数位是1,则生成多项式10, 1000, 000, 0000, 001和这个寄存器进行“异或”运算;若向右移出的数位是0,则返回。重复和,直至移出 8位。另外8位与该十六位寄存器进行“异或”运算。重复,直至该报
11、文所有字节均与16位寄存器进行“异或”运算,并移位 8次。这个16位寄存器的内容即2字节CRC昔误校验,被加到报文的最高有效位。另外,在某些非 ModBus通信协议中也经常使用 CRC16乍为校验手段,而且产生了一些 CRC1的变种,他彳门是使用 CRC16项式XT 16+XT 15+XT 2+1,单首次装入的 16位寄存器 为0000;使用CRC1的反序XT 16+XT 14+XT 1+1,首次装入寄存器值为0000或FFFFHCRCII单函数如下:20712345678910111213141516171819unsignedchar*puchMsg; /* 要进行 CRm验的消息 */u
12、nsignedshortusDataLen; /* 消息中字节数 */unsignedshortCRC16(puchMsg,usDataLen)unsignedcharuchCRCHi=0xFF; /* 高 CRC节初始化 */unsignedcharuchCRCLo=0xFF; /* 彳氐 CRC节初始化 */unsigneduIndex; /*CRC 循环中的索引 */while (usDataLen-) /* 传输消息缓冲区 */v1.0可编辑可修改21222324252627282930313233343536373839404142434445464748495051525354uI
13、ndex=uchCRCHiA*puchMsg+; /* 计算 CRC*/uchCRCHi=uchCRCLoyuchCRCHiuIndex;uchCRCLo=auchCRCLouIndex;return (uchCRCHi8)|uchCRCLo);/*CRC高位字节值表*/staticunsignedcharauchCRCHi=0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0
14、x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0
15、x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0
16、x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,115556575859606162636465666768697071727374757677787980818283848586870x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0, 0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41, 0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0, 0x80,0x41,0x00,
17、0xC1,0x81,0x40,0x01,0xC0,0x80,0x41, 0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0, 0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40, 0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1, 0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41, 0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,
18、0x00,0xC1,0x81,0x40;/CRC低位字节值表staticcharauchCRCLo=0x00,0xC0,0xC1,0x01,0xC3,0x03,0x02,0xC2,0xC6,0x06, 0x07,0xC7,0x05,0xC5,0xC4,0x04,0xCC,0x0C,0x0D,0xCD, 0x0F,0xCF,0xCE,0x0E,0x0A,0xCA,0xCB,0x0B,0xC9,0x09, 0x08,0xC8,0xD8,0x18,0x19,0xD9,0x1B,0xDB,0xDA,0x1A, 0x1E,0xDE,0xDF,0x1F,0xDD,0x1D,0x1C,0xDC,0x14,0
19、xD4, 0xD5,0x15,0xD7,0x17,0x16,0xD6,0xD2,0x12,0x13,0xD3, 0x11,0xD1,0xD0,0x10,0xF0,0x30,0x31,0xF1,0x33,0xF3, 0xF2,0x32,0x36,0xF6,0xF7,0x37,0xF5,0x35,0x34,0xF4, 0x3C,0xFC,0xFD,0x3D,0xFF,0x3F,0x3E,0xFE,0xFA,0x3A, 0x3B,0xFB,0x39,0xF9,0xF8,0x38,0x28,0xE8,0xE9,0x29, 0xEB,0x2B,0x2A,0xEA,0xEE,0x2E,0x2F,0xEF,
20、0x2D,0xED, 0xEC,0x2C,0xE4,0x24,0x25,0xE5,0x27,0xE7,0xE6,0x26, 0x22,0xE2,0xE3,0x23,0xE1,0x21,0x20,0xE0,0xA0,0x60, 0x61,0xA1,0x63,0xA3,0xA2,0x62,0x66,0xA6,0xA7,0x67, 0xA5,0x65,0x64,0xA4,0x6C,0xAC,0xAD,0x6D,0xAF,0x6F, 0x6E,0xAE,0xAA,0x6A,0x6B,0xAB,0x69,0xA9,0xA8,0x68, 0x78,0xB8,0xB9,0x79,0xBB,0x7B,0x7A,0xBA,0xBE,0x7E, 0x7F,0xBF,0x7D,0xBD,0xBC,0x7C,0xB4,0x74,0x75,0xB5, 0x77,0xB7,0xB6,0x76,0x72,0xB2,0xB3,0x73,0xB1,0x71,89909192939495969798991001010x70,0xB0,0x50,0x90,0x91,0x51,0x93,0x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年湖北文理学院第二批专项公开招聘工作人员12人备考题库完整答案详解
- 广东省广州市花都区2024-2025学年九年级上学期期末化学试题(含答案)
- 2025年合肥市第四十六中学招聘体育教师备考题库参考答案详解
- 长沙市食品药品检验所2025年公开招聘编外合同制人员备考题库及1套完整答案详解
- 3D可视化技术在复杂颅脑损伤手术中的价值
- 2025年智能驾驶汽车外饰材料创新十年报告
- 2025年广州市市场监督管理局直属事业单位引进急需专业人才备考题库有答案详解
- 2025年山东钢铁集团有限公司招聘备考题库及参考答案详解一套
- 简约风黑白色新媒体运营培训
- 2025年中国作家协会所属单位公开招聘工作人员13人备考题库及一套参考答案详解
- 2025年度科室护士长工作总结与2026年工作计划
- 酒类进货合同范本
- 江苏省南京市2024-2025学年高一上学期期末学情调研测试物理试卷
- 2026年教师资格之中学综合素质考试题库500道及答案【真题汇编】
- TCEC5023-2020电力建设工程起重施工技术规范报批稿1
- 2025秋国开《人力资源管理理论与实务》形考任务1234参考答案
- 2026年5G网络升级培训课件
- 2025安徽宣城宁国市面向社会招聘社区工作者25人(公共基础知识)综合能力测试题附答案解析
- 广东省广州市越秀区2024-2025学年上学期期末考试九年级数学试题
- 2025年区域经济一体化发展模式可行性研究报告及总结分析
- 金螳螂家装工程管理制度
评论
0/150
提交评论