前言
在学习Modbus协议时,如果没有相关的基础知识,每次看到线圈相关的概念时,可能会特别困惑,线圈到底是个啥东西,这段文字表达的是啥意思?那么本篇博客,就带大家 一起浅浅的了解一下线圈相关的知识。
定义
第一次在Modbus接触线圈的概念,应该是在介绍功能码的时候,因为其中有一个功能码是“读线圈状态”。我们可以把“线圈状态”理解为一种寄存器,类似于计算机中的寄存器概念,所以读线圈状态就是读某个寄存器,而这个特殊的寄存器其实就是一个bit,也就是要么是on/1,要么是off/0。
举例说明
为了更好的理解线圈的概念,我们就以功能码01(读线圈状态)作为例子来展开说明一下线圈的概念。
01功能码:用于读取设备或离散量输出的状态,即on/off。主设备发出的请求消息帧中指定了需要读取的线圈的起始地址和线圈数目。
现在假设我们的主设备发送了一个请求报文,具体内容如下表,该报文中,从设备的地址为0x03,表明从3号从设备读取线圈状态,起始地址的值为0x0013,转为十进制是19,寄存器数的值为0x0025,转为十进制是37,即本请求需要读3号从设备的线圈状态,不是读这个设备所有的线圈状态,而是读线圈起始地址为20(Modbus为19,而根据规定线圈地址应该+1,所以是20)到结束地址为56,共计37个线圈状态的值,每个状态需要1bit数据来表示。