[西门子] 科普:什么是Modbus?

[复制链接]
查看20611 | 回复0 | 2024-1-18 18:00:17 | 显示全部楼层 |阅读模式
可能有人还不知道什么是Modbus,其实Modbus在现实生活中应用非常广泛,很多工业电子设备的系统中基本都有它的存在。

今天针对初学描述关于一些Modbus常见的问题。

什么是Modbus?
Modbus 是由 Modicon 公司(现施耐德),于1979年针对 PLC 开发的一种通信协议,当时主要用于工业电子设备之间联网通信。



Modbus 是一种应用层通信息协议,位于 OSI(开放式系统互联通信)模型的第 7 层。它在不同类型的总线或网络上连接的设备之间提供客户端/服务器通信。
Modbus 是由一个 Master(主机) 和最多 247 个 Slave(从机)组成的通信网络。

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

Modbus是如何工作的?
Modbus 通常底层基于 UART 串口485进行通信,最简单的一个主设备和一个从设备通信,就是通过串口Tx和Rx进行收发数据。


底层串口的通信,就是大家熟悉的“0”“1”通信,在这个基础上,添加 Modbus 通信协议,方便解析协议和多设备组网。
一主多从,在从设备中都有唯一的地址,通过解析从机地址,主机就能和对应的从机进行通信。

什么是Modbus ASCII?
Modbus ASCII是Modbus协议中的一种传输方式,对应的还有另外一种Modbus RTU传输方式。
施耐德电气(Schneider Electric)收购了Modicon公司之后,有推出了Modbus TCP协议。


协议格式:


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

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


什么是CRC?
正规的通信协议基本都有校验码,目的就是为了确保传输的数据没有错误。像校验和、CRC校验等是嵌入式设备通信协议常见的校验码。
Modbus使用CRC循环冗余校验,其校验信息位于消息末尾的两个字节。

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

最 后
Modbus是一种应用非常广泛的标准通信协议,工业自动化、电子、嵌入式等这些专业的同学,建议都抽时间学习一下。
由于时间有限,本文只介绍了一些基础内容,更多介绍和协议具体内容,请到官网深入了解。
作者:strongerHuang来源:嵌入式专栏
温馨提示:
因最近微信公众平台推送规则改变,很多读者反馈没有及时看到更新的文章。根据最新规则,建议多点击“推荐阅读、分享、收藏”等,成为常读用户。

推荐阅读:

    外媒:俄罗斯的键盘不够用了

    揭秘“胖五”火箭发动机研制背后的故事

    一男子偷窃8块基带处理模块,致全区信号瘫痪


请点下【在看】给小编加鸡腿

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则