串口数据解包

简介

该功能模块用于“串口读”内,用于接收缓存区中的串口数据。按照已设置好的起始地址、数据类型、字节顺序的规则,把接收后的串口数据输出。“起始地址”可填的最大数值为63.

功能

  • 起始地址:所需读取的数据在一段完整报文中的起始地址。注意:报文的数据地址第一位为0,第二位为1,第n位为n-1。
  • 数据类型:
    • 无符号整型-1byte (unsigned, 1字节,数值范围0~255)
    • 无符号整型-2byte (unsigned, 2字节,数值范围0~65535)
    • 无符号整型-4byte (unsigned, 4字节,数值范围0~4294967295)
    • 有符号整型-1byte (signed, 1字节,数值范围-128~127)
    • 有符号整型-2byte (signed, 1字节,数值范围-32768~32767)
    • 有符号整型-4byte (signed, 4字节,数值范围-2147483648~2147483647)
    • 单精度浮点数-4byte (signed, 4字节,数值范围-3.4E38~3.4E38)
  • 字节顺序:设置读数据(Input)输出的字节顺序,该设置项仅对大于1字节的数据有效。
    • 如串口接收到的数据为AB,
    • 字节顺序12,输出数值为AB;
    • 字节顺序21,输出数值为BA。
    • 如串口收到的数据为ABCD,
    • 字节顺序1234,输出数值为ABCD;
    • 字节顺序2143,输出数值为BADC;
    • 字节顺序3412,输出数值为CDAB;
    • 字节顺序4321,输出数值为DCBA。

输入

名称

数据类型

单位

范围

默认值

描述

起始地址

数值量

-

-

-

输入为十进制数值量

输出

名称

数据类型

单位

范围

默认值

描述

读数据

数值量

-

-

-

输出为十进制数值量

示例1

读取通过串口外接的温控器的温度数值。

  1. 通过第三方串口工具,得知所需读取数据为: Rx: 01 04 02 04 97 FA 5E。
    • 01:从站地址:01
    • 04:功能码:读取输入寄存器(Input Register)
    • 02:数据字节数:2
    • 04 97:实际温度数值:1175 (1175÷50=23.5℃,此处除以50仅适用于SIEMENS RDF302房间温控器。注意:数据转换方式由所接设备决定。)
    • FA 5E: CRC16/MODBUS校验码
  2. 报文中仅需读取温度值,将其截取出来,并根据所接设备的数据规则进行设定。
  3. 温度数值的起始地址在整段报文中为3,数据类型为无符号整型-2byte,字节顺序为12,如下图所示。

示例2

读取通过串口外接的风机转速控制结果。

  1. 通过第三方串口工具,得知所需读取数据为: Rx:01 06 00 65 00 64 98 3E。
    • 01:从站地址:01
    • 06:功能码:06
    • 00 65:起始地址:101
    • 00 64:写值:100(即高速,此处100为高速仅适用于SIEMENS RDF302房间温控器。注意:数据含义由所接设备决定。)
    • 98 3E:CRC16/MODBUS
  2. 报文中仅需读取风机转速控制结果,将其截取出来,并根据所接设备的数据规则进行设定。
  3. 风机转速的起始地址在整段报文中为4,数据类型为无符号整型-2byte,字节顺序为12,如下图所示。