不熟悉的会认为很高深,了解的会觉得其实没啥,Modbus协议就是这样,简单到除了看说明书,基本没啥需要说明的程度。
可以认为它是一个纯软件协议,和硬件没啥关系,唯一的那点关系是在不同的传输介质上采用的格式不一样。Modbus协议可以通过RS232、RS485或者以太网等进行传输,通过RS232、RS485等不可靠介质上传输时,需要添加校验信息以验证数据传输的正确性;而在以太网上传输时,因为TCP/IP协议已经可以保证传输的数据包的正确性,因此额外的校验已不必要。关于Modbus报文和Modbus TCP报文的格式请参见相关的资料。
Modbus广泛用于工业通信领域。比如典型的可编程控制器(PLC),包含数字量输入、模拟量输入、数字量输出、模拟量输出以及内部寄存器等,如果一台主机连接到该PLC并需要对其进行控制,就需要一种双方都能识别的格式进行通信,Modbus就是为此而生的。
Modbus协议规定了主机和PLC双方通信的格式,通信双方只要各自遵从这份规定就能正确解析通信的内容。至于主机如何控制PLC的输出、报文如何传输等均不在此协议的关心范围之内。
Modbus为主从通信协议,主机(master)发送请求、辅机(slave)进行应答的一问一答的形式进行通信。
Modbus提供了各种功能码供主机读写辅机的寄存器,比如0x03读保持寄存器的内容、0x06写保持寄存器的内容等,其它功能码请查询Modbus协议的相关文档。
Modbus支持一对多的通信方式,在一个网络中只能有一个主机(master),可以有多个辅机(slave),每个slave以slave id进行标示。Master查询时将查询报文广播到网络上,每个sl