图中是一种典型MODBUS寄存器位数据定义方式,这种数据定义主要基于数据紧凑设计原则(精确位宽分配),将明确含义(取值范围)的字段分配最小必要的数据长度,进而减少寄存器总数,提升数据刷新效率。
寄存器位数据可延伸多种变种,包括:
1、单个寄存器中包含多个字段,每个字段占用若干BIT(大于1),各字段被定义为枚举或浮点数据;
2、多个寄存器中包含多个字段,部分字段跨寄存器;
3、保持寄存器中定义位数据,支持主机按位写数据;
嵌入式设备一般采用特定的通信协议,可通过位域定义高效地处理寄存器位数据操作。然而,对于强调通用性的上位机软件来说,需要实现更为专业的配置方法和逻辑处理机制来适应这种精细的功能需求。
目前,市面上的上位机软件大多尚未提供针对此类需求的解决方案。不过,摩尔信使MThings已经成功实现了对这一功能的全面支持,为上位机与嵌入式设备之间的通信和数据处理提供了强大的工具。
摩尔信使MThings中的配置举例:
步骤1: 按字段添加两条数据配置,寄存器地址和数量相同。
步骤2: 按数据定义,修改“位偏移”和“位数”; 枚举数据将“呈现类型”改为枚举类型,并按照提示添加枚举定义;浮点数据将“呈现类型”改为浮点数类型,并修改系数和小数位数参数。
按照如上两个步骤即可完成位数据的配置过程。
注意:
1、如需对“保持寄存器”的位数据进行写操作,需提前刷新一次各字段的当前值,否则将写数据失败。
2、位数据的写操作可能导致未配置的字段强制为0,所以安全起见,应完整配置所有有效字段。