欢迎来到天天文库
浏览记录
ID:38033462
大小:43.00 KB
页数:4页
时间:2019-05-23
《重量限制器modbus通讯协议》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、MODBUS通讯协议modbus通讯协议详解重量限制器的通讯物理层为半双工RS-485,波特率为9600bps串行口数据格式:1个起始位,8个数据位,1个停止位,无奇偶校验位。一、、MODBUS协议简介Modbus协议是一种串行主/从协议。Modbus协议定义了通讯链路上串行传输的内容。这里仅有一台设备(主机)可以请求数据交换(叫作“查询”),其它设备(从机)单独向主机回送消息(叫作“响应”)。典型的主机为上位计算机,典型的从机为四重量限制器。1、查询与响应Modbus协议定义了主机查询消息的格式和从机响应消息的格式。主机查询消息包括地址、功能代码、数据以及错误校
2、验。从机响应消息包括地址、功能代码、数据及错误校验。如果从机在接收消息时出错或是从机不能执行所接收的命令,它将生成错误消息并作为响应发送给主机或不作响应使主机产生超时错误。查询:查询消息中的功能代码告诉从机做什么。数据是从机执行命令所需要的附加信息。例如:功能代码03表示让从机读通道测量值,并把所读内容返回主机。功能代码之后的数据告诉从机:从哪个通道开始读,读多少个通道的测量值。错误校验为从机提供了验证信息正确性的方法。响应:如果从机作出常规响应,则响应消息中的功能代码就是查询消息中的功能代码。数据域包含从机收集的信息,如通道测量值等等。如果发生错误,则功能代码被
3、修正以指示这是一个错误响应,数据域包含了对错误的描述代码。错误校验使主机可以确认信息的有效性。2、传输模式Modbus协议有两种不同的传输模式:ASCII模式和RTU模式。鉴于RTU模式更加高效简洁,四重量限制器采用了RTU模式,所以下面只介绍RTU模式。-4-MODBUS通讯协议RTU模式:当采用RTU模式时,每一个8位字节用2个4位16进制字符表示。这种模式的主要优点是,在相同的波特率下,能提供比ASCII模式更大的数据吞吐量。每一帧消息必须连续传输。RTU模式中每字节的格式为:码制:8位二进制,16进制0~9,A~F,每一个8位字节用两个16进制字符表示。每
4、字节位数:1个起始位8个数据位,低位在前无奇偶校验位1个停止位错误校验:循环冗余校验(CRC)3、Modbus消息帧在RTU模式中,消息以至少3.5个字符间隔的空闲开始,这是最容易实现的,在网络使用的波特率下,它是一个字符传输时间的整倍数,紧随其后的第一个域是设备地址。在消息帧中,所有数据域只允许以16进制字符表示;联网设备连续监视网络总线,包括对空闲间隔的监视。当接收到第一个域(地址域)时,所有设备都对地址进行译码,检查是否本设备被寻址。整个消息帧必须连续传输,如果在一帧消息结束前,出现大于3.5个字符的时间间隔,则设备将不完整的消息溢出并认为下一个字节是一个新
5、消息帧的地址域。同样地,如果一个新消息的开始紧随前一个消息,其时间间隔小于3.5个字符,则设备将把它看作是前一个消息的连续,这将导致错误,因为最后的CRC域与所接收的内容不一致。典型的消息帧表示如下:开始地址功能数据CRC校验结束T1-T2-T3-T48bits8bitsn*8bits16bitsT1-T2-T3-T44、CRC校验在RTU模式中,消息帧含有一个校验域,是基于循环冗余校验(CRC)方法生成的,CRC校验域是对整个消息帧的内容进行校验,它的应用与位校验无关。CRC校验域有两个字节,含16位二进制数,CRC值由发送设备计算生成,附加在消息之后。接收设备
6、在接收信息过程中,对消息的CRC进行计算,并将计算值与接收的CRC值进行比较,如果两个值不相等,则产生错误。CRC的计算从预装FFH到一个16位寄存器开始,然后将消息的8位字节顺序与寄存器中的值运算。仅使用字符贞中的8位参与CRC运算,起始位、停止位和校验位不参与CRC运算。在CRC生成过程中,每一个8位字节与CRC寄存器的内容进行异或操作,将结果向低位(LSB)移位,高位(MSB)用0填充。对移出的LSB位进行检查,如果是1,则寄存器与一个固定的值进行异或操作;如果为0,则不进行异或。这一过程重复,直到将8位全部移出。在最后一次移出之后,下一个字节与CRC寄存器
7、进行异或操作。重复上述操作,所有消息贞中的字节都运算完之后,CRC寄存器中的值就是CRC值。生成CRC的过程为:(1)用FFFFH装载16位的CRC寄存器。(2)将CRC寄存器与消息帧中的第一个字节进行异或操作,结果存于CRC寄存器中。(3)将CRC寄存器向低位(LSB)方向移位一次,高位(MSB)用0填充,检查移出的位。(4)-4-MODBUS通讯协议如果是0,则重复第(3)步。如果是1,则将CRC寄存器与A001H进行异或操作,结果存于CRC寄存器。(1)重复第(3)、(4)步8次,处理完一个字节。(2)重复第(2)~(5)步,直到处理完消息帧中的所有字节。(
8、3)CRC
此文档下载收益归作者所有