Modbus 是在工业自动化、智能家居、小型自动化 络(仓库、温室等)系统中经常用到的通信协议。该协议也可以将不同类型的设备连接到家用电脑。像 Arduino 和 Raspberry Pi 这类项目的开发显著提高了机器人和自动化相关工作的益处。这些都增强了 Modbus 在业余爱好者和专业人士心目中的特殊地位。
如果您对协议架构比较熟悉,可以直接转到Modbus 软件描述。如果您对协议架构不熟悉,可以参看下面 Modbus 的简要介绍
目录:
关于 Modbus 协议
Modbus 是自动化系统中低层的常用协议。中层是指控制器-设备层。 该层级收集数据,并控制技术过程。 现场层负责传感器与控制器或者传感器与服务器之间的交互。
典型的自动化系统架构采用 Modbus 作为基础协议,如下所示。
ID – 设备地址 (1 字节),
FN – Modbus 功能 (1 字节),
[args] – 功能自变量 (N 字节, 由函数决定),
CRC – 检验和 CRC-16 (2 字节)。
响应消息格式:

大家可以看出来,响应和请求帧有类似的结构,除了 Data 区域外。该区域根据不同功能,提供不同的内容。
如果从设备不支持请求的功能,或者请求的 [args] 区域内自变量不适用该服务器,响应的 FN 区域高位将被设定为 1,而 Data 区域则会包含有关错误的更多信息。
同时,一些从设备可能采用特殊寄存器,提供更多信息。
Modbus 设备寄存器有以下类型:
区域
访问
大小
描述
离散输入
只读
1 位
用作输入
线圈输出
读/写
1 位
用作控制离散
输入寄存器
只读
16 位
用作输入
保持寄存器
读/写
16 位
用作任意变量
Modbus RTU 协议的完整说明可以参考其规格说明。
当设置好 Modbus 络后,需要注意的一点是,该协议实现了从安装了 Modbus 驱动的服务器或控制器与多台接收设备之间的数据传输。 串口程序可以控制服务器的通信端口(例如,COM1)。 该端口接收来自多个传感器的 Modbus 数据。
不幸的是,在这里存在限制,那就是多个程序同时打开接收端口时,会带来明显的问题。
有一个方案可以解决这一难题。Eltima 出品的 Virtual COM Port Driver PRO 可以创建虚拟 RS485 端口,并复制 Modbus 数据。 这样多个端口可以同时接收数据。
相关资源:透射处理软件-专业指导其他资源-CSDN文库
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!