串行通信采集
提供读写串口功能,用来通过指定格式和本地串口通讯,获取或写入串口数据。
1. 创建节点
Section titled “1. 创建节点”(1) 进入 CommBridge 页面的【智慧孪生】,在左侧点击切换至【设备智联】。

(2) 依次拖拽 串行通信、数据处理和 MQTT 上传插件到插件工作区,分别生成三个节点。

(3) 依次连接三个节点,连接顺序:串行通信 → 数据处理 → MQTT 上传。

2. 创建方案
Section titled “2. 创建方案”(1) 双击【串行通信】,点击【添加方案】按钮。

(2) 填写连接配置,点击【下一步】。

(3) 点击【添加配置】,填写配置信息,点击【确认】。

(4) 点击下一步,成功进入数据帧解析页面。
(5) 点击【添加解析】,填写点位数据,点击【确认】。

(6) 点击【完成】,成功添加采集方案。

(7) 打开方案的开关,点击【保存】。

3. 查看结果
Section titled “3. 查看结果”(1) 点击【设备智联】的【部署】按钮,部署成功。

(2) 点击切换至【智慧孪生】,鼠标移动至【串行通信】节点,弹出节点信息列表。

(3) 点击方案,查看该方案下各分组的点位实时数据和历史数据。
采集实时数据的值为 16 进制

4. 配置描述说明
Section titled “4. 配置描述说明”| 参数 | 描述 | 格式 | 举例 | 备注 |
|---|---|---|---|---|
| 方案名称 | 用户自定义该方案的名称 | 非空 | 采集温湿度 | |
| 接口 | 根据具体设备上的实际串口决定 | ttyS0、ttyS1 | ttyO3 | 一般运行在 RS485,取决于 usb 插入的顺序 |
| 数据位 | 表示一组数据实际包含的数据位数 | 7、8 | 8 | |
| 停止位 | 用于表示单个包的最后一位 | 1、2 | 1 | |
| 校验位 | 串口通信中一种简单的验错方式 | Odd、Even 或 None | None | |
| 波特率 | 衡量符号传输速率的参数,表示每秒传送的符号的个数 | 11520、57600、38400、19200、9600 或 4800 | 19200 |
| 参数 | 前提 | 描述 | 格式 | 举例 | 备注 |
|---|---|---|---|---|---|
| 名称 | 用户自定义名称 | 非空,不能以数字开头,不能包含.,[]{}();= | 距离分组一 | ||
| 帧模式 | 数据帧传输模式 | HEX 、 ASCII | HEX | ASCII 运用很少 | |
| 数据帧格式 | 帧模式决定 | 正则: ^(?:[0-9a-fA-F]{2} )*[0-9a-fA-F]{2}$ | 以空格间隔的十六进制字符串 | 0f 03 00 00 00 01 85 24 | |
| 循环时间 (ms) | 数字 | 1000 | |||
| 使能 | 若选择 disabled,则在数据帧解析中不能出现,且进行配置 | disabled 、 enabled | enabled |
注意:Serial 一次性只能读取 20 条数据。
| 参数 | 描述 | 格式 | 举例 | 备注 |
|---|---|---|---|---|
| 名称 | 用户自定义名称 | 非空 | H | |
| 解析 | byte[3]byte[4] | |||
| 使能 | 若选择 disabled,则在数据帧解析中不能出现,且进行配置 | disabled 、 enabled | enabled |
5. 串行通信协议相关参数说明
Section titled “5. 串行通信协议相关参数说明”帧模式:
- HEX:十六进制,表示 16 种不同的 0~F 的字符
- ASCII:字符集,能够表示 128 个不同的字符
ASCII 和 Hex 的主要区别在于它们表示的字符范围不同。
以下以 Modbus RTU 读取保持寄存器(功能码 0x03)的 HEX 请求为例:
| 设备地址[1 字节] | 功能码[1 字节] | 起始地址[2 字节] | 寄存器数量[2 字节] | CRC 校验[2 字节] |
|---|---|---|---|---|
| address | 03 | AddrH AddrL | NumH NumL | CRCL CRCH |
其中,CRC(循环冗余校验)采用 CRC-16/MODBUS,多项式为 X16+X15+X2+1,校验值低字节先传输。
例如:01 03 00 10 00 01 85 CF
| 指令 | 01 | 03 | 00 | 10 | 00 | 01 | 85 | CF |
|---|---|---|---|---|---|---|---|---|
| 说明 | 设备地址 | 读指令 | 寄存器起始地址高 | 寄存器起始地址低 | 读取数量高位 | 读取数量低位 | CRCL | CRCH |
以下以 Modbus ASCII 读取保持寄存器(功能码 0x03)的请求为例。每个原始字节编码为两个 ASCII 十六进制字符;下表不含起始字符“:”及结束字符 CR/LF:
| 设备地址[2 字符] | 功能代码[2 字符] | 起始地址[4 字符] | 寄存器数量[4 字符] | LRC 校验[2 字符] |
|---|---|---|---|---|
| address | 03 | AddrH AddrL | NumH NumL | LRC 的两个十六进制字符 |
其中,LRC(纵向冗余校验)对地址、功能码及数据的原始字节求和,丢弃超出 8 位的进位,再取二进制补码,得到一个字节的校验值。计算不包含起始字符“:”及结束字符 CR/LF。