凡亿专栏 | 通信Modbus是如何工作的?
通信Modbus是如何工作的?

学电子需要掌握一些常见的通信协议,Modbus就属其中一种,Modbus在现实生活中应用非常广泛,很多工业电子设备的系统中基本都有它的存在。
c1896827acb9d521507329ed145c95.jpg今天针对初学描述关于一些Modbus常见的问题。

什么是Modbus?

Modbus 是由 Modicon 公司(现施耐德),于1979年针对 PLC 开发的一种通信协议,当时主要用于工业电子设备之间联网通信。
f8e8ce43a79915e6c1bdb410afb749.jpg
Modbus 是一种应用层通信息协议,位于 OSI(开放式系统互联通信)模型的第 7 层。它在不同类型的总线或网络上连接的设备之间提供客户端/服务器通信。
Modbus 是由一个 Master(主机) 和最多 247 个 Slave(从机)组成的通信网络。
更多关于Modbus的介绍,可以参看:
https://modbus.org/

Modbus干什么用?

Modbus 是一种开放的通信协议,你可以免费将其应用到你的设备中,而无需支付版税。
Modbus 是一种广泛使用的标准通信协议,你和其他厂家的设备,如果都遵循 Modbus 标准协议,就可以进行通信传输数据。

Modbus是如何工作的?

Modbus 通常底层基于 UART 串口485进行通信,最简单的一个主设备和一个从设备通信,就是通过串口Tx和Rx进行收发数据。3a972120c95423c45f3aa2e8acd14b.jpg
底层串口的通信,就是大家熟悉的“0”“1”通信,在这个基础上,添加 Modbus 通信协议,方便解析协议和多设备组网。
一主多从,在从设备中都有唯一的地址,通过解析从机地址,主机就能和对应的从机进行通信。

什么是Modbus ASCII?

Modbus ASCII是Modbus协议中的一种传输方式,对应的还有另外一种Modbus RTU传输方式。
施耐德电气(Schneider Electric)收购了Modicon公司之后,有推出了Modbus TCP协议。731378e69a1c81b44b818979b1f1ad.jpg
协议格式:4c18968f798b946c656ee8c97938a7.jpg

什么是从机地址?

从机地址(或从站ID),就是为每一个从设备分配的唯一地址,方便主机建立通信时进行识别,从机地址在出厂时就会设置好。

什么是功能码?

功能码是 Modbus 通信协议中的一项,主机发送的第二个字节就是功能码。就是你看到的读写线圈寄存器那些内容。
下面贴几个常见功能码:a8c8a3240cade94ea8094925550b1d.jpg

什么是CRC?

正规的通信协议基本都有校验码,目的就是为了确保传输的数据没有错误。像校验和、CRC校验等是嵌入式设备通信协议常见的校验码。
Modbus使用CRC循环冗余校验,其校验信息位于消息末尾的两个字节。
这里推荐阅读文章《自定义串口通信协议》中文末校验相关的内容。
参考:http://www.simplymodbus.ca/crc.xls

什么是字/字节排序?

字节排序就是先存储(传输)高字节,还是先传输低字节。比如:0x1234,它是两个字节,传输时通常是分0x12和0x34传输。
在通信中,会牵涉到一个字节排序的问题,但在Modbus 规范中并未准确定义数据在寄存器中的存储方式。
Modbus标准协议没有具体约定,就需要开发者在开发过程中人为约定先传输高字节,还是低字节。

最后

Modbus是一种应用非常广泛的标准通信协议,工业自动化、电子、嵌入式等这些专业的同学,建议都抽时间学习一下。
由于时间有限,本文只介绍了一些基础内容,更多介绍和协议具体内容,请到官网深入了解。
https://modbus.org/

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。
相关阅读
进入分区查看更多精彩内容>
精彩评论

暂无评论