Modbus是一种串行通信协议,是Modicon于1979年为使用可编程逻辑控制器(PLC)而发表的。Modbus是工业领域通信协议的业界标准,并且现在是工业电子设备之间相当常用的连接方式。
Modbus协议包括ASCII、RTU、TCP等,但并没有规定物理层,标准的Modicon控制器使用RS232C实现串行的Modbus。
此协议定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。Modbus的ASCII、RTU协议规定了消息、数据的结构、命令和就答的方式,数据通讯采用Maser/Slave方式,Master端发出数据请求消息,Slave端接收到正确消息后就可以发送数据到Master端以响应请求;Master端也可以直接发消息修改Slave端的数据,实现双向读写。
Modbus具有以下几个特点:
- 标准、开放,用户可免费使用Modbus协议,目前支持Modbus的厂家超过400家,支持Modbus的产品超过600种。
- Modbus可以支持多种电气接口,如RS-232、RS-485等,还可以在各种介质上传送,如双绞线、光纤、无线等。
- Modbus的帧格式简单、紧凑,通俗易懂。
读从机线圈寄存器,位操作,可读单个或者多个;
读离散输入寄存器,位操作,可读单个或多个,协议类似功能码0X01协议,此处省;
读保持寄存器,字节指令操作,可读单个或者多个;
读输入寄存器,字节指令操作,可读单个或者多个;
写单个线圈,位操作,只能写一个,写0xff00表示设置线圈状态为ON,写0x0000表示设置线圈状态为OFF
写单个保持寄存器,字节指令操作,只能写一个;
写多个线圈寄存器。若数据区的某位值为“1”表示被请求的相应线圈状态为ON,若某位值为“0”,则为状态为OFF。
写多个保持寄存器,字节指令操作,可写多个;
包括协议相关文档
包括各种安装库文件
包括mcu实现相关代码
在树莓派上实现和相关代码
包括c的实现方式和相关代码
包括go的实现方式和相关代码
包括lua的实现方式和相关代码
包括py的实现方式和相关代码