Modbus通讯协议刹车脚轮

2022-07-29 01:20

Modbus通讯协议

Modbus通讯协议 2011年12月10日 来源: Modbus协议最初由Modicon公司开发出来,在1979年末该公司成为施耐德自动化(Schneider Automation)部门的一部分,现在Modbus已经是工业领域全球最流行的协议。此协议支持传统的RS-232、RS-422、RS-485和以太网设备。许多工业设备,包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通讯标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。 当在网络上通信时,Modbus协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成应答并使用Modbus协议发送给询问方。 Modbus协议包括ASCII、RTU、TCP等,并没有规定物理层。此协议定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。标准的Modicon控制器使用RS232C实现串行的Modbus。Modbus的ASCII、RTU协议规定了消息、数据的结构、命令和就答的方式,数据通讯采用Maser/Slave方式,Master端发出数据请求消息,Slave端接收到正确消息后就可以发送数据到Master端以响应请求;Master端也可以直接发消息修改Slave端的数据,实现双向读写。 Modbus协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式采用LRC校验,RTU模式采用16位CRC校验,但TCP模式没有额外规定校验,因为TCP协议是一个面向连接的可靠协议。另外,Modbus采用主从方式定时收发数据,在实际使用中如果某Slave站点断开后(如故障或关机),Master端可以诊断出来,而当故障修复后,网络又可自动接通。因此,Modbus协议的可靠性较好。 下面简单的介绍一下,对于Modbus的ASCII、RTU和TCP协议来说,其中TCP和RTU协议非常类似,我们只要把RTU协议的两个字节的校验码去掉,然后在RTU协议的开始加上5个0和一个6并通过TCP/IP网络协议发送出去即可。所以在这里我仅介绍一下Modbus的ASCII和RTU协议。 下表是ASCII协议和RTU协议进行的比较: 协议 开始标记 结束标记 校验 传输效率 程序处理ASCII :(冒号) CR,LF LRC 低 直观,简单,易调试RTU 无 无 CRC 高 不直观,稍复杂通过比较可以看到,ASCII协议和RTU协议相比拥有开始和结束标记,因此在进行程序处理时能更加方便,而且由于传输的都是可见的ASCII字符,所以进行调试时就更加的直观,另外它的LRC校验也比较容易。但是因为它传输的都是可见的ASCII字符,RTU传输的数据每一个字节ASCII都要用两个字节来传输,比如RTU传输一个十六进制数0xF9,ASCII就需要传输’F’’9’的ASCII码0x39和0x46两个字节,这样它的传输的效率就比较低。所以一般来说,如果所需要传输的数据量较小可以考虑使用ASCII协议,如果所需传输的数据量比较大,最好能使用RTU协议。

下面对两种协议的校验进行一下介绍。1、LRC校验LRC域是一个包含一个8位二进制值的字节。LRC值由传输设备来计算并放到消息帧中,接收设备在接收消息的过程中计算LRC,并将它和接收到消息中LRC域中的值比较,如果两值不等,说明有错误。LRC校验比较简单,它在ASCII协议中使用,检测了消息域中除开始的冒号及结束的回车换行号外的内容。它仅仅是把每一个需要传输的数据按字节叠加后取反加1即可。下面是它的VC代码: BYTE GetCheckCode(const char * pSendBuf, int nEnd)//获得校验码 { BYTE byLrc = 0; char pBuf[4>; int nData = 0; for(i=1; i { //每两个需要发送的ASCII码转化为一个十六进制数 pBuf [0> = pSendBuf [i>; pBuf [1> = pSendBuf [i+1>; pBuf [2> = \0; sscanf(pBuf,"%x",& nData); byLrc += nData; } byLrc = ~ byLrc; byLrc ++; return byLrc; }

2、CRC校验 CRC域是两个字节,包含一16位的二进制值。它由传输设备计算后加入到消息中。接收设备重新计算收到消息的CRC,并与接收到的CRC域中的值比较,如果两值不同,则有误。CRC是先调入一值是全“1”的16位寄存器,然后调用一过程将消息中连续的8位字节各当前寄存器中的值进行处理。仅每个字符中的8Bit数据对CRC有效,起始位和停止位以及奇偶校验位均无效。CRC产生过程中,每个8位字符都单独和寄存器内容相或(OR),结果向最低有效位方向移动,最高有效位以0填充。LSB被提取出来检测,如果LSB为1,寄存器单独和预置的值或一下,如果LSB为0,则不进行。整个过程要重复8次。在最后一位(第8位)完成后,下一个8位字节又单独和寄存器的当前值相或。最终寄存器中的值,是消息中所有的字节都执行之后的CRC值。CRC添加到消息中时,低字节先加入,然后高字节。下面是它的VC代码: WORD GetCheckCode(const char * pSendBuf, int nEnd)//获得校验码 { WORD wCrc = WORD(0xFFFF);for(int i=0; i {wCrc ^= WORD(BYTE(pSendBuf[i>));for(int j=0; j<8; j++){if(wCrc & 1){wCrc

江苏电子拉力试验机WDS-100M

济南电子万能试验机WDS-10M厂家

济南YAW-3000全自动压力试验机厂家

济南WDW-100万能拉力试验机厂

珠海试验机

相关阅读
最好五轴联动数控技术倒顺开关海林铝合金梯饲料机扎带Trp

五轴联动数控技术您当前位置:首页 技术支持五轴联动数控技术五轴联动数控技术来源:中国五金商机日期: 装备制造业是一国工业之基石,它为新技术、新产品的开发和现代工业生产提供重要的手段,是不可或缺的战略性产业。

2024-04-25 00:43
最好29日佛山200系冷轧卷板价格行情传动齿轮管阀连接导线手机主板引擎支架Trp

29日佛山200系冷轧卷板价格行情您当前位置:首页 价格行情29日佛山200系冷轧卷板价格行情29日佛山200系冷轧卷板价格行情来源:中国五金商机日期:-国家发展改革委、科学技术部、工业和信息化部、商务部、知识产权局联合公告(

2024-04-24 16:22
最好1日宁波市场Cr系合结钢价格行情车载逆变器工业电炉拉网头声表谐振器液位继电器Trp

1日宁波市场Cr系合结钢价格行情您当前位置:首页 价格行情1日宁波市场Cr系合结钢价格行情1据中国重汽(香莱州港)有限公司高级工程师李光耀介低压熔断器绍日宁波市场Cr系合结钢咸宁价格行情来另外有益于新品的开发设计源:中

2024-04-24 01:58
最好包头铝业向包头市市长孙炜东进行专题汇报工玻璃丝包线富士变频器开沟机日喀则蓄能器Trp

包头铝业向木工锯包头市市长孙炜东进行专题汇报工作城市化和可延续性也有影响【铝道】3月6日,包头市市委副书记、市长孙炜东一行到东河区调研,在听取东河区政府的汇报后,专门听取了包头铝业公司的专题汇报。包铝主要

2024-04-23 00:37
最好防疫消毒机器人实现消毒作业无人化醋酸布胶带光纤适配器浏阳数字示波器油烟净化机Trp

防疫消毒机剥皮刀器人实现消毒作业无人化您当前位置:首页 企业防疫消毒机器人实现消毒作业无人化防疫消毒机器人实现消毒作业无人化来源:深圳市米克力美科技有限公司日期:作者:米克力美在新型冠状病毒感染防控中,消毒

2024-04-20 06:21
最好10月30日冀钢板材价格下调20元吨电器装置活套法兰尼龙壁虎通辽智能开关TRp

10月30日冀钢板材价格下调20元/吨您当前位置:首页 价格行情10月30日冀钢板材价格下调20元/吨10月30日冀钢板材价格下调20元/吨来源:是不是过冲互联日期:就换1个暖风机性能好的无转子硫化仪检测器钢厂 种类除和1般碳素材料1样具

2024-04-03 10:32