Modbus数据类型闲谈

日期:2013-10-29点击次数:9060

在modbus学习之初,对其的数据类型不是特别理解,经过这段时间和设备打交道,对于这些数据类型有了较为明晰的理解,在此做个记录。



       上面是表格在很多介绍Modbus协议的文档中都可以找到。“基本表格”中“表格”是指指用于存储数据的存储器阵列或块。离散输入量、线圈、输入寄存器、保持寄存器对应的是Modbus标准协议的4类寄存器地址,Modbus协议中对数据的使用是通过这地址来完成。
       按照Modbus协议,数据应该有两种,一种是位数据,一种是字数据(16位)。其中离散输入量、线圈中存储的是位数据对应的我们常听到的开关量,输入寄存器、保持寄存器对应字数据(16位),一般存储的是模拟量。
       离散量输入都是只读的布尔值。它们通常用来表示传感器的输入和其他能被读取但不能由用户能写入的布尔值。比如设备接入的红外探测,红外探测的状态,这完全取决于外部环境,设备是无法对其的状态进行控制,对设备来说红外探测是只读的。因此对与设备通讯的上位机来说也是只读的。
       线圈都是可读写的布尔值。它们通常用于表示输出或是能被用户读取和编写的存储器内部位。比如设备接入的声光报警,首先与设备通讯的上位机可以知道诸如声光报警等开关量输出设备的状态,并可通过设备对其进行状态改变,比如让声光报警设备报警。
       输入寄存器,这些都是在存储器中占16位的只读整数。它们通常用于模拟量输入值和其他能被读取但不能被写入的整数值。比如一些外部传感器的值,如温湿度,像离散输入量一样,这些数据设备是不控制的,完全取决于外部环境。
       保持寄存器,这些都是在存储器中占16位的可读写整数。它们通常是用来表示模拟量输出或是能被用户读取和编写的内部数字。比如设备的地址,设备的波特率,上位机可以对这些数据进行改变。



软件部       段苏敏

姓名:
性别:
电话:
E-mail
问题:
问题描述: