一、上一篇的补充
1、数据模型
Modbus 协议最开始被用于 PLC 通信中,为了抽象 PLC 中可访问的数据 Modbus 协议定义了 数据模型 概念,数据模型定义了四种可访问的数据类型,分别是:
(1) 输出线圈(Coils),大小只有 1 Bit,属于开关量,数值范围 ON 或 OFF,权限是 可读可写,既可以是一个输出量输出点,也可以是数字量输入点。
(2) 输入离散量(Discrete Input),属于离散量,大小只有 1 Bit,数值范围 ON 或 OFF,权限是 只读,即数字量输出点。
(3) 输入寄存器(Input Registers),16 Bit 的寄存器,权限是 只读,可以用作模拟量或 16 位打包输入点。
(4) 保持寄存器(Holding Registers),16 Bit 的寄存器,权限是 可读可写,既可以是一个模拟量或 16 位打包输入点,也可以是模拟量或 16 位打包输出点。
2、数据地址模型
数据模型是一种抽象,在实际使用时必须将其映射到真实的物理存储区才能被访问。
Modbus 协议允许设备将四种数据分别映射到不同的存储区块中,各个区块之间相互独立,使用不同的功能码可读取到不同的数值,如下图所示:
二、一主多从
上篇提到Modbus RTU的通讯架构为一主多从,也就是通讯包括一个主机和多个从机,主机通常是PLC、HMI或SCADA系统,从机一般是传感器、执行器或其他智能设备。主机和从机的区别主要是:(1)发出指令不同,主站可以主动发出指令,从站不会主动发出指令;(2)唯一性不同,主站具有唯一性,从站不具有唯一性,可以有多个;对接不同,主站可以对接多个Modbus从站,从站职能对接一个Modbus主站。
三、模拟软件
在正式编写程序之前,我们先用模拟软件来体验一下主站、从站的数据收发过程,熟悉软件的使用,