Modbus是一种由Modicon在1979年开发的串行通信协议,最初用于其可编程逻辑控制器(PLCs)。该协议是一种在电子设备之间通过串行线路传输信息的方法。在标准的Modbus网络中,客户端(Client)请求信息,服务器端(Server)提供信息。一个典型的Modbus网络中有一个客户端和最多247个服务器端,每个服务器都有一个唯一的服务器地址,从1到247不等。客户端还可以将信息写入到服务器端。
Modbus的用途
Modbus是一个开放的协议,这意味着制造商可以将其集成到设备中而无需支付专利费。它已经成为工业领域的标准通信协议,现在是连接工业电子设备最常用的方式之一。许多制造商在各种行业中广泛使用Modbus。Modbus通常用于将来自仪器和控制设备的信号传输回主控制器或数据收集系统,例如测量温度和湿度的系统,并将结果传输到计算机。Modbus还用于在监控控制和数据采集(SCADA)系统中连接监督计算机与远程终端设备(RTU)。
Modbus协议有两种主要版本:用于串行线路的Modbus RTU和Modbus ASCII,以及用于以太网的Modbus TCP。
Modbus的工作原理
Modbus通过设备之间的串行线路传输。在最简单的设置中,一个串行电缆连接两个设备的串行端口,一个是客户端,一个是服务器端。数据作为一系列的1和0位传输,每个位以电压形式发送。通常的传输速度为9600波特率(位/秒)。
数据存储
Modbus数据在服务器设备中存储在四个不同的表中。两个表存储开/关离散值(线圈),两个表存储数字值(寄存器)。线圈和寄存器各有一个只读表和一个读写表。每个表有9999个值。每个线圈或接点为1位,数据地址在0000到270E之间。每个寄存器是1个字=16位=2个字节,数据地址也在0000到270E之间。
Modbus的优势
- 开放协议:Modbus是开放的协议,这使得制造商可以在不支付专利费的情况下在其设备中使用Modbus。
- 广泛应用:由于其在行业中的标准化使用,Modbus在许多行业和制造商中广泛应用。
- 通信灵活:Modbus支持多种通信方式,包括串行通信和以太网通信。
其他信息
- 数据类型:Modbus支持多种数据类型,包括16位无符号整数、16位有符号整数、2字符ASCII字符串和离散开/关值等。
- 数据存储:不同的设备制造商可能会以不同的顺序存储数据,但重要的是接收设备知道该如何处理数据。
Modbus网络配置
- 服务器ID:每个服务器在网络中都有一个唯一的单元地址,范围从1到247。
- 功能代码:客户端发送的第二个字节是功能代码,这个数字告诉服务器访问哪个表以及是读还是写。
Modbus命令和响应
Modbus的命令和响应格式取决于功能代码和数据地址。命令通常包括服务器地址、功能代码、数据地址、数据数量以及错误检测(CRC)等部分。
CRC校验
CRC(循环冗余校验)用于错误检测。在Modbus通信中,消息的每个字节都用于计算CRC。接收设备也会计算CRC并将其与发送设备的CRC进行比较。如果消息中的任何位接收错误,CRC值将不同,从而导致错误。
总结
Modbus是工业通信中广泛使用的协议。它通过简单、高效的通信方式在各种设备之间传输数据。无论是用于串行通信还是以太网通信,Modbus在许多行业和应用中都有着重要的地位。
作者介绍:
90后资深架构师,深耕工业可视化,数字化转型,深度学习技术在工业中的应用。深入研究Web3D,SCADA ,深度学习开发应用。开发语言技能JAVA/C#/Python/Golang/Vue3/TypeScript, 关注【工业可视化】带你一起学~