目录
一、什么是Modbus协议?
Modbus协议是一种用于工业控制的网络通讯协议,可以片面的理解为,Modbus协议一种机器与机器之间进行数据、信息传递的一种格式规范。
Modbus协议还遵循主从协议,支持单主机,多从机,最多支持247个从机设备。并且,在同一个通信线路上只会有一个主机,所有的通讯过程全部由主机主动发起,从机接收到主机请求后,会对请求做出响应。从机不会主动进行数据的发送,从机之间也不会有通讯过程。
二、Modbus通讯方式
Modbus的通讯方式有:串行通讯方式、以太网通讯方式、串行-以太网转换方式、无线通讯方式
表现在物理层就是,可使用3线232、2线485、4线422进行主从机之间的连接,或通过光纤、网线、无线网络等进行主从机之间的连接
通俗一点来说:
主机从机之间想要实现通讯,需要将主机与从机进行连接,然后再进行数据传输。而连接方式有上述4种方式,连接实现之后,主机与从机之间就可以进行数据传输了。而它们传输的数据内容,均按照Modbus协议规定的格式进行转换。这样,就保证了能够让同一个主机与不同功能、不同厂家的设备之间进行准确的通讯。
三、Modbus通信协议的特点
- 标准、开放、免费
- 支持多种电器接口,如串行接口RS-232、RS-485等,还可以在各种介质上传递,如:光纤、无线等
- Modbus的帧格式简单、紧凑、通俗易懂。用户使用简单,厂商开发简单。
四、Modbus的4种寄存器类型
- 线圈(Coils)
- 离散量输入(Discrete Input)
- 输入寄存器(Input registers)
- 保持寄存器(Holding registers)
暂不细讲,大家可以自行了解,或者等我更新。
五、Modbus的协议版本
包括Modbus RTU、Modbus ASCII、Modbus TCP/IP、Modbus UDP/IP等
Modbus RTU与Modbus ASCII,都使用串口通讯协议,Modbus RTU使用二进制格式进行数据传输,通讯效率更高,Modbus ASCII使用ASCII码进行数据传输,可读性好,但通讯效率更低。
Modbus TCP/IP是基于以太网的一种通讯方式,它将Modbus协议封装在TCP/IP协议栈中,通过以太网传输数据。具有高速、稳定的特点。
Modbus UDP/IP是基于UDP/IP协议的一种通讯方式。与Modbus TCP/IP不同,Modbus UDP/IP采用无连接的通讯方式,不保证数据的可靠性和顺序。相比于Modbus TCP/IP,Modbus UDP/IP的通讯开销较小,可以减少网络负载。
六、Modbus数据帧格式
无论哪一种Modbus协议版本的帧格式都是一样的
- 地址域:主机要访问的从机的地址
- 功能码:主机对从机实现的操作,功能码有很多,不同的功能码也对应操作不同类型的寄存器。比如:0x01读线圈、0x03读保持寄存器、0x06写单个寄存器、0x