- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
modbus协议格式
MR chen_odot2016/5/2 1
Modbus 通讯协议
1、Modbus 协议包括ASCII、RTU 、TCP 等,并没有规定物理层。
2 、校验
Modbus 协议需要对数据进行校验,串行协议中除有奇偶校验
外,ASCII 式采用LRC 校验,RTU 式采用16 位CRC 校验,
但 TCP 式没有额外规定校验,因为 TCP 协议是一个面向连接
的可靠协议。另外,Modbus 采用主从方式定时收发数据,在实际
使用中如果某Slave 站点断开后 (如故障或关机),Maste 端可以
诊断出来,而当故障修复后,网络又可自动接通。因此,Modbus
协议的可靠性较好。
3、TCP 和RTU 协议区别
对于Modbus 的ASCII 、RTU 和TCP 协议来说,其中TCP 和
RTU 协议非常类似,我们只要把RTU 协议的两个字节的校验码去
掉,然后在RTU 协议的开始加上5 个0 和一个6 并通过TCP/IP
网络协议发送出去即可。
4 、ASCII 和RTU 协议区别
协议
开始标记 - 结束标记 - 校验 - 传输效率 - 程序处理
ASCII 协议
: (冒号) - CR,LF - LRC - 低 - 直观,简单,易调试
RTU 协议
无 - 无 - CRC - 高 - 不直观,稍复杂
1
MR chen_odot2016/5/2 1
通过比较可以看到,ASCII 协议和RTU 协议相比拥有开始和结
束标记,因此在进行程序处理时能更加方便,而且由于传输的都是可
见的ASCII 字符,所以进行调试时就更加的直观,另外它的LRC 校
验也比较容易。但是因为它传输的都是可见的 ASCII 字符,ASCII
传输的数据每一个字节 ASCII 都要用两个字节来传输,比如 ASCII
传输一个十六进制数 0xF9,ASCII 就需要传输’F ’’9 ’的ASCII 码
0x39 和0x46 两个字节,这样它的传输的效率就比较低。所以一般来
说,如果所需要传输的数据量较小可以考虑使用ASCII 协议,如果所
需传输的数据量比较大,最好能使用RTU 协议。
5、协议介绍
5.1 LRC 校验
LRC 域是一个包含一个8 位二进制值的字节。LRC 值由传输设备
来计算并放到消息帧中,接收设备在接收消息的过程中计算 LRC,
并将它和接收到消息中LRC 域中的值比较,如果两值不等,说明有
错误
5.2 LRC 校验算法
LRC 校验比较简单,它在ASCII 协议中使用,检测了消息域中除
开始的冒号及结束的回车换行号外的内容。它仅仅是把每一个需要传
输的数据按字节叠加后取反加1 即可。
2
MR chen_odot2016/5/2 1
LRC 的VC 代码:
BYTE GetCheckCode(const cha * pSendBuf, int nEnd)//获得校验
码
{
BYTE byL c = 0;
cha pBuf[4];
int nData = 0;
fo (i= 1; iend; i+=2) //i
文档评论(0)