DFS 适配器¶
DFS 适配器是连接外部数据源与 DFS 平台之间的桥梁,主要用于接收、预处理并转换实时数据流,确保数据在进入 DFS 系统后能够被正确解析、存储和应用。
通过 DFS 适配器,您可以将设备、控制系统或业务平台中的实时数据接入 FactVerse 数字孪生平台,实现数据驱动的孪生体实时响应和业务联动。
核心作用
-
数据接入:连接各类工业数据源(如 PLC、IoT 平台、网关等);
-
数据预处理:对数据进行清洗、格式转换、结构标准化;
-
数据驱动孪生体:绑定孪生体属性,实时反映现场运行状态;
-
配置灵活:支持图形化流程配置(Node-RED),提高数据处理透明度和效率。
关键概念
| 名称 | 说明 |
|---|---|
| 适配器模板 | 预定义的 Node-RED 数据流模板,包含数据采集、处理、清洗等规则,便于快速复用和统一标准。 |
| 适配器实例 | 基于模板创建的具体数据接入点,每个实例对应一个实际的数据源接入任务,配置独立的地址、端口、密钥等参数。 |
| 实时数据源 | 实时输出数据的设备或平台,如 PLC 控制器、传感器网关、IoT 平台、工业协议接口等。 |
实时数据源典型应用场景
| 场景类型 | 应用说明 |
|---|---|
| 动态监控 | 实时采集设备状态变化(温度、转速、位置等),同步驱动孪生体表现 |
| 实时决策支持 | 依赖新鲜数据进行产线调度、故障预测、能耗优化等决策 |
设置数据处理和加工规则¶
在适配器实例正式运行前,需配置对应的数据处理逻辑,确保采集到的数据可被系统正确识别、清洗、存储等。
创建适配器模板(可选)¶
适配器模板用于标准化处理流程,便于在多个实例中复用,减少重复配置。模板内容为 Node-RED 流程 JSON 文件。
说明: 若无复用需求,可跳过模板创建,直接在实例中手动配置流程。
操作步骤
-
在DFS适配器 /> 适配器模板页面,点击【新建】。
-
填写模板名称,在模板数据输入框中填写或粘贴 JSON 格式的 Node-RED 流程。
图 10 新建适配器模板
- 点击【确认】保存模板。
编辑数据处理流程(Node-RED)¶
Node-RED 是图形化流程编辑器,用于可视化配置数据采集、解析与推送逻辑。
操作步骤
-
在浏览器中访问适配器实例对应的 Node-RED 地址。
-
在流程画布中配置数据采集频率、字段处理、输出格式等节点。
图 11 Node-RED 编辑界面
- 完成编辑后,点击【部署】按钮,将流程应用至运行中的适配器服务。
可参考《Node-RED 用户指南》获取详细操作方法。
创建适配器实例¶
适配器实例是与具体数据源对接的配置入口,每个实例对应一个数据接入任务,具备独立的监听地址、端口和数据处理逻辑。
创建实例¶
操作步骤
-
在DFS适配器 /> 适配器实例页面,点击【新建】按钮创建一个新的适配器实例。
-
在弹出的窗口中填写以下信息:
| 字段 | 描述 |
|---|---|
| 名称 | 自定义适配器实例名称,便于识别数据源。 |
| 边缘密钥(选填) | 支持边缘设备身份认证,增强数据安全性。 |
| IP | DFS 适配器服务的被管理IP |
| 端口 | 适配器实例的端口 |
| 描述(选填) | 对该适配器实例的简要说明 |
IP 及端口设置说明:
-
单机部署多个实例:IP地址相同,端口不同;
-
多机部署:IP 地址根据实际设备设置,不同实例使用不同 IP。
图 12 新建DFS适配器
- 填写完成后,点击【确认】。
绑定适配器模板(可选)¶
在DFS适配器 /> 适配器实例页面,点击适配器实例相应的【选择模板】按钮
,选择适配器模板为适配器实例设置数据处理规则。
图 13 选择模板
编辑 Node-RED 流¶
本节旨在指导企业内部开发工程师在已部署的 DFS Node-RED 环境中,按照具体业务需求,安全有效地修改、扩展或更新数据流。
一、前置条件
在修改前,请确认以下条件已满足:
-
已成功部署 Node-RED,并可通过浏览器访问(默认地址通常为 http:///
:1880)。 -
已具备 Node-RED 基本概念(节点、连接线、部署按钮)。
-
已获取 DFS 平台账号及关键设备信息(如 edgeId、digitalTwinId)。
-
已完成流程文件备份(建议通过“导出 JSON”方式)。
二、流程结构概览
DFS Node-RED 流程通常包含以下三个主要部分,彼此协同运行:
-
DFS 心跳流程:定期向 DFS 平台发送“存活心跳”以确认节点在线状态。
-
设备绑定流程:从 Redis 拉取设备与数字孪生体映射关系,写入全局缓存。
-
设备数据发送流程:接收或模拟设备原始数据,依据映射关系推送到对应的数字孪生体,并通过 MQTT 分别发往 DFS Server(用于后端存储)和前端(用于可视化驱动)。
三、关键参数说明:
| 参数名 | 说明 | 示例值 | 注意事项 |
|---|---|---|---|
| edgeId | 边缘节点唯一标识(DFS 分配) | 68979c3e78f3d473c54e0cd9 | 应与平台信息一致 |
| edgeName | 节点显示名称,方便识别 | nodered | 可自定义,便于识别 |
| DFS 心跳接口 URL | 心跳请求的目标地址 | https:/// |
必填项,需与平台信息匹配 |
| tenantId | 租户ID | c299600a2e86b582746956d23e132b690 | 请向平台支持人员确认,避免配置不一致 |
| digitalTwinId | 数字孪生体唯一标识 | 600ab3a6391d44c499da0babe90f9e1f | 可在 DFS 平台数字孪生体详情页面中获取 |
四、数据主题
Node-RED 流程通过不同的主题向后端和前端发送数据:
-
/DFS/telemetry/{edgeId}:用于向 DFS Server(Artemis)发送遥测数据。
-
/DFS/{tenantId}/{digitalTwinId}:向前端(通过 EMQX)发送孪生体驱动数据,用于实时驱动数字孪生体在前端展示。
五、数据格式要求
DFS 接口接收的数据通常为 JSON 格式,建议保持以下结构:
[ { "serial": "Device name", "ts": 63, "datas": { "key1": "data1", "key2": "data2" } } ] |
|---|
字段说明:
-
serial:设备名称或序列号(应与绑定关系中保持一致)。
-
ts:时间戳(毫秒)。
-
datas:设备属性与对应值的键值对。
⚠️ 注意事项:
- datas 中的属性名应与 DFS 平台中配置的数字孪生体属性一致。若名称不一致,可通过平台提供的手动绑定功能完成属性映射。
六、常见业务修改点
以下是根据业务调整流程时最常涉及的节点类型及其可修改参数:
| 节点类型 | 用途 | 可修改的参数 | 修改示例 |
|---|---|---|---|
| Inject | 定时触发(心跳 / 数据采集) | 触发间隔 | 心跳 10 秒一次,数据 1 秒一次 |
| File in | 从文件读取数据 | 文件路径 | /home/user/device.json |
| MQTT in | 从 MQTT 订阅数据 | Broker 地址、Topic | mqtt://192.168.1.100:1883,robot/pose |
| Kafka in | 从 Kafka 订阅数据 | Broker 地址、Topic | kafka://broker1:9092, device-data |
| Function | 数据格式清洗、字段映射 | JS 脚本逻辑 | 将 temp:28.5C 转换为 |
| HTTP request | 数据上报到 DFS | URL | https:/// |
| MQTT out | 数据转发到消息队列 | Broker 地址、Topic | ws://192.168.2.80:83 / 192.168.2.60:1884 |
七、连接配置
请确保以下连接节点配置正确,特别是在部署环境切换(如测试/生产)时:
- MQTT out(前端)
示例地址:ws://192.168.2.80:83/ 配置名称:emqx-mqtt
- MQTT out(DFS Server)
示例地址:192.168.2.80:1884/ 配置名称:artemis-mqtt
- Redis 数据源
示例地址:192.168.2.80:6379/ 用于定期拉取设备与孪生体绑定映射(键名形如:dfs:device:/
)