Modbus 协议是一种已广泛应用于当今工业控制领域的通用通讯协议,是串行通讯协议(PLC,工业领域),通过此协议,控制器相互之间、或控制器经由网络(如以太网)可以和其它设备之间进行通信。Modbus 协议使用的是主从通讯技术,即由主设备主动查询和操作从设备。Modbus 比其他通信协议使用的更广泛的主要原因有:
1.公开发表并且无版权要求
2.易于部署和维护
3.帧格式简单、紧凑、易懂,用户使用容易
4.可以支持多种电气接口(RS232、RS485 等),还可以在各种介质上传输(光纤、无线等)Modbus 的工作方式是请求/应答、一问一答,每次通讯都是主站先发送指令,可以是广播,或是向特定从站的单播,从站响应指令,并按要求应答,或者报告异常。当主站不发送请求时,从站不会自己发出数据,从站和从站之间不能直接通讯。
Modbus 有下列三种通信方式:
(1)以太网:对应的通信模式是 MODBUS TCP/IP。
(2)高速令牌传递网络:对应的通信模式是 Modbus PLUS
(3)异步串行传输(各种介质如有线 RS-232-/422/485/;光纤、
无线等):对应的通信模式是 MODBUS RTU 或 MODBUS ASCII。
Modbus 协议的报文(或帧)的基本格式是:设备地址 + 功能码 + 数据区 + 校验码设备地址:就是每台设备的 ID 号,由一个字节(8 位二进制码)组成,十进制为 0~255。功能码:就是选取功能、选取作用,告诉设备要执行哪种功能。数据区:包含了设备执行特定功能所需的数据或者采集到的数据,这些数据可能是数值、参考地址或者设置值。数据区需要指明从哪个寄存器开始及读取多少个数据。校验码:就是检查主机和设备传输过程中的错误,保证主机或者设备不会响应哪些错误的数据,提高了系统的安全性和效率。功能码和数据区在不同类型的网络都是固定不变的,设备地址和校验码则因网络底层的实现方式不同而有所区别。设备地址包含了从站的地址,功能码告诉从站要执行何种功能,数区是具体的信息