串口数据解包

简介
该功能模块用于“串口读”内,用于接收缓存区中的串口数据。按照已设置好的起始地址、数据类型、字节顺序的规则,把接收后的串口数据输出。“起始地址”可填的最大数值为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
读取通过串口外接的温控器的温度数值。
- 通过第三方串口工具,得知所需读取数据为: 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校验码
- 报文中仅需读取温度值,将其截取出来,并根据所接设备的数据规则进行设定。
- 温度数值的起始地址在整段报文中为3,数据类型为无符号整型-2byte,字节顺序为12,如下图所示。

示例2
读取通过串口外接的风机转速控制结果。
- 通过第三方串口工具,得知所需读取数据为: 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
- 报文中仅需读取风机转速控制结果,将其截取出来,并根据所接设备的数据规则进行设定。
- 风机转速的起始地址在整段报文中为4,数据类型为无符号整型-2byte,字节顺序为12,如下图所示。
