什么是标准MODBUS协议

什么是标准MODBUS协议,第1张

关于什么是标准MODBUS协议,可以百度MODBUS协议的标准,这个中国是有国标的,符合这个标准的就是标准MODBUS。
其实严格说起来,并不存在所谓的标准MODBUS协议,谈到MODBUS就应该是标准的,不标准的,就不是MODBUS,倒是有不完全符合标准的MODBUS这种说法,有点绕,呵呵。两个方面,虽然MODBUS是一个很简单的协议,但协议文本并不是事无巨细的都做了规定,比如32位的浮点数,到底是高位在前还是低位在前,这个就没有个明确的规定,大家各行其事,无所谓谁准谁不准。另一方面,MODBUS有许多命令或者说功能,通常需要用到的只有很少的部分,没有用到的功能,或者说不支持的命令,按协议约定应该有必要的异常响应,但很多设备简化了,只支持自己用到的命令,没用到的命令就不预理会,按协议约定来说,这是不标准的,但如果通讯双方,大家都对这部分命令不预理会,那就不会问题。

回答你关心的问题,什么叫需要转换成标准的MODBUS,这是因为有些PLC或者设备根本不支持MODBUS,比如S7-300的CPU就不支持MODBUS,但可以用网关把MODBUS转换成ProfiBus,这样一来,S7-300也就可以访问MODBUS站点了,换个说法,S7-300的ProfiBUS通过网关转换成了标准的MODBUS。其实那有什么标准的MODBUS,就是一个ProfiBUS转MODBUS的网关。同理,如果设备不支持MODBUS,也可以用网关来转换,比如TCP转MODBUS的网关。
另外说一句,TCP转MODBUS 和 TCP的MODBUS 不是一回事。

与PLC通讯的意思,一般是指可以使用PLC的组态软件。
符合MODBUS标准的设备,设备厂家会提供一个地址表,用这个地址表在PLC组态软件上组态就可以了。
用组态软件处理设备的数据,可以不用了解一些通讯的底层的细节,知道某个数据存放在哪个地址就可以处理。当然,底层的细节不用了解,MODBUS的一些相关设置还是要知道,比如通讯协议是RS485,通讯速度9600,偶校验,,,这些设置有些可以在设备上进行跳线选择,具体看厂家说明书。

Modbus协议包括RTU、ASCII、TCP。其中MODBUS-RTU最常用,比较简单,在单片机上很容易实现。

1、报文

一个报文就是一帧数据,一个数据帧就一个报文: 指的是一串完整的指令数据,就像上面的一串数据。

2、CRC校验

意义:例如98 04  是数据(01 06 00 01 00 17)通过一算法计算出来的结果,其实就像是计算累加和那样。(累加和:就是010600010017加起来的值,然后它的算法就是加法)。

3、功能号

意义:modbus 定义。

作用:指示具体的 *** 作。

扩展资料

大多数Modbus设备通信通过串口EIA-485物理层进行。

对于串行连接,存在两个变种,它们在数值数据表示不同和协议细节上略有不同。Modbus RTU是一种紧凑的,采用二进制表示数据的方式,Modbus ASCII是一种人类可读的,冗长的表示方式。这两个变种都使用串行通信(serial communication)方式。

RTU格式后续的命令/数据带有循环冗余校验的校验和,而ASCII格式采用纵向冗余校验的校验和。被配置为RTU变种的节点不会和设置为ASCII变种的节点通信,反之亦然。

对于通过TCP/IP(例如以太网)的连接,存在多个Modbus/TCP变种,这种方式不需要校验和计算。

对于所有的这三种通信协议在数据模型和功能调用上都是相同的,只有封装方式是不同的。

Modbus有一个扩展版本Modbus Plus(Modbus+或者MB+),不过此协议是Modicon专有的,和Modbus不同。

它需要一个专门的协处理器来处理类似HDLC的高速令牌旋转。它使用1Mbit/s的双绞线,并且每个节点都有转换隔离装置,是一种采用转换/边缘触发而不是电压/水平触发的装置。连接Modbus Plus到计算机需要特别的接口,通常是支持ISA(SA85),PCI或者PMCIA总线的板卡。

参考资料来源:百度百科-Modbus通讯协议


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/dianzi/13101181.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-30
下一篇 2023-05-30

发表评论

登录后才能评论

评论列表(0条)

保存