Skip to Content

面向用户: 实施工程师 / 项目经理 版本: viSCADA 1.8.0 及以上

本手册指导实施人员完成 viSCADA 平台设备类的完整配置流程,涵盖协议导入、设备类创建、技术参数、脚本查看、属性定义与设备实例添加。按本手册操作完成后,设备数据可正常上报、落库并用于后续展示与分析。

本手册适用于单属性推送模式:一条上报报文中的每个字段都是独立的属性点(如 DDM.SIS.0DCS_00BHT03GT001XQ001),经脚本处理后转为扁平 Key:Value 结构,「属性标识」Key

💡 若项目为单设备推送模式(一条报文包含一个设备的多个属性字段),请参考 《viSCADA 设备类配置与设备添加操作手册(单设备推送模式)》 

1 整体流程

设备类配置由「协议导入 → 设备类创建 → 技术参数(可选)→ 脚本查看 → 属性配置 → 设备实例」六个环节构成,任一环节失败都会导致数据无法落库。

图 1 设备类配置整体流程

步骤操作目标对应章节
1导入协议文件,生成可选通讯协议2 导入协议文件
2创建设备类并关联协议3 创建设备类并关联协议
3配置通讯地址类技术参数(按协议)4 配置技术参数
4查看或微调自动生成的脚本5 脚本查看与微调
5定义设备属性并配置标准化名称与 @PID6 属性配置
6添加具体设备实例,开始数据采集7 设备实例添加

2 导入协议文件

协议脚本通过 YAML 协议文件导入,由平台自动生成设备类可用的输入脚本。

操作路径: 「后台管理」「协议管理」

操作步骤:

  1. 进入 「协议管理」 页面,点击 「新增协议」
  2. 填写 「协议名称」 并上传 YAML 协议文件。
  3. 点击 「添加协议」 完成提交,协议将在后续创建设备类时的 「通讯协议」 下拉中可选。

📌 YAML 协议文件由产品/研发方提供,详细导入流程与截图参见 《viSCADA YAML 协议文件导入与设备类创建操作说明》 

💡 若本项目使用 API / MQTT 通讯方式且由《项目数据对接文档》直接提供脚本,可跳过本章,在 5 脚本查看与微调 中直接粘贴脚本。

3 创建设备类并关联协议

3.1 操作入口

操作路径: 「设备管控」「设备类」「新建设备类」

设备类列表页 图 2 设备类列表页

新建设备类弹窗 图 3 新建设备类弹窗

3.2 字段说明

字段是否必填示例说明
「设备类 ID」dcsPoint设备类唯一标识,英文/数字
「设备类名称」DCS 点位业务含义名称
「标准化名称」dcs_point按统一规则命名,对应数仓字段
「通讯协议」OPCDA下拉选择 2 导入协议文件 中上传的协议,或 API / MQTT
「设备通讯类型」直连设备直连设备 / 网关子设备,按协议说明文档为准
「时间格式」yyyy-MM-dd HH:mm:ss按《项目数据对接文档》填写
「jsonQuery」$.info[*]API / MQTT 推送模式需填写,通常指向数据数组节点

💡 jsonQuery 用于在平台上报报文中定位目标数据节点,常见写法如 $.info[*],将数组展开为独立的数据条目。YAML 直连协议通常无需填写。

4 配置技术参数

📌 是否需要配置、配置哪些参数,以协议说明文档或《项目数据对接文档》为准。YAML 直连协议(如 OPCDA、Modbus 等)通常需配置通讯地址类技术参数;API / MQTT 推送模式一般不需要。

操作路径: 设备类详情页 → 「技术参数编辑」 模块

4.1 操作步骤

  1. 点击 「+ 新增项」
  2. 「参数名称」 下拉中选择对接文档指定的参数。
  3. 「参数值」 中按对接文档要求的格式填写。
  4. 格式校验通过后点击 「确认」

4.2 示例:OPCDA 协议的 address 参数

以 OPCDA 协议为例,其协议文件要求配置 address 参数:

字段是否必填示例说明
「参数名称」addressOPCDA 协议要求的通讯地址参数
「参数值」127.0.0.1:4444格式为 IP:端口,不含协议前缀

⚠️ 配置 OPCDA 的 address 时,参数值仅填写 IP/域名及端口(如 127.0.0.1:4444),切勿携带 http://https:// 等协议前缀,否则校验不通过。其他协议的参数名称与格式约束以对接文档为准。

5 脚本查看与微调

📌 YAML 协议文件导入后,平台会自动生成对应脚本,通常无需人工编辑。本章仅适用于:① API / MQTT 推送模式需粘贴《项目数据对接文档》提供的脚本;② 需要查看或微调已生成脚本的场景。

5.1 脚本类型

脚本类型说明
输入脚本将上报 JSON 解析为「设备标识 + 属性值 + 时间」等平台可识别结构,必需
新增脚本做字段转换、数据处理等增强逻辑,可选

5.2 按协议配置脚本

API 协议:

  1. 进入设备类详情页 → 「脚本」 页签 → 点击 「新增脚本」
  2. 将《项目数据对接文档》提供的脚本粘贴替换。
  3. 点击 「保存」 完成配置。

MQTT 协议:

  1. 进入设备类详情页 → 「脚本」 页签。
  2. 找到 [[inputs.mqtt_consumer]] 节点 → 点击 「编辑」
  3. 将《项目数据对接文档》提供的脚本粘贴替换。
  4. 点击 「保存」 完成配置。

YAML 导入协议(OPCDA / Modbus 等):

  1. 进入设备类详情页 → 「脚本」 页签,确认脚本已由 YAML 自动生成。
  2. 仅当需要微调时,在编辑器内修改后点击 「保存」
  3. 需备份时点击 「导出脚本」;需回退初始状态时点击 「重置脚本」

输入脚本编辑页 - 列表视图 图 4 输入脚本编辑页 - 列表视图

输入脚本编辑页 - 详情视图 图 5 输入脚本编辑页 - 详情视图

⚠️ 脚本修改会影响该设备类下所有设备的解析逻辑,修改前请先点击 「导出脚本」 备份。

5.3 脚本配置检查清单

脚本配置完成后,请逐项核对:

  • 能正确定位数据模型(jsonQuery 指向正确的数据节点)
  • 能正确将数据模型映射为 Key:Value 结构
  • 能正确识别属性字段(如 DDM.SIS.0DCS_00BHT03GT001XQ001),详见《项目数据对接文档》

6 属性配置

6.1 操作入口

操作路径: 设备类详情页 → 「物模型」 页签 → 「添加属性」

物模型属性列表 图 6 物模型属性列表

新增属性页面 图 7 新增属性页面

6.2 字段说明

脚本处理后的典型数据结构为 Key:Value,其中 Key「属性标识」:

{ "DDM.SIS.0DCS_00BHT03GT001XQ001": 96.66479555734657, "DDM.SIS.0DCS_00BHT03GT001XQ001_time": 1635320374000, "DDM.SIS.0DCS_00BHT03GT001XQ002": 25.33885302270709, "DDM.SIS.0DCS_00BHT03GT001XQ003": 7.804157681671977 }

对每个需要入库、展示或上报的字段,按下表逐条配置:

字段是否必填示例说明
「属性标识」DDM.SIS.0DCS_00BHT03GT001XQ001必须与 JSON 字段名(或脚本最终输出的 Key)一致
「属性名称」主冷却水泵房变压器A高压断路器高压侧电流中文可读名称,以《设备点表资料》为准
「标准化名称」m_001t@20260119格式为 标准化字段名@PID,详见 6.3 标准化名称与 PID
「读写模式」只读仅采集选 「只读」;涉及下控选 「读写」
「数据类型」浮点浮点 / 整数 / 字符串 / 布尔 / 时间
「单位」A按字段业务属性填写,如 AkW
「精度」2小数位数
「范围」0–100取值范围
「数据上报公式」value * 0.1需要平台侧计算后上报时配置,参考 计算公式配置说明 
「采集时间字段」DDM.SIS.0DCS_00BHT03GT001XQ001_time当数据模型含 XXX_time 时成对配置,详见 6.4 采集时间字段成对配置

6.3 标准化名称与 PID

标准化名称格式为 标准化字段名@PID,由两部分组成:

组成示例说明
标准化字段名m_001t与平台数仓字段对齐的命名,参考 数仓字段文档 
@@分隔符
PID20260119设备所属平台的唯一标识

完整示例: m_001t@20260119 —— 含义:将该属性映射到 PID 为 20260119 的设备上的标准字段 m_001t

⚠️ PID 唯一性要求:同一 PID 下各属性的标准化名称(字段名@PID)必须唯一,否则会导致跨属性映射冲突。同一 PID 可被不同设备类型、不同设备复用。

6.4 采集时间字段成对配置

当数据模型同时包含主值字段与对应的 _time 时间字段时,建议「主值字段 + 时间字段」成对配置:

配置项主值字段时间字段
「属性标识」DDM.SIS.0DCS_00BHT03GT001XQ001DDM.SIS.0DCS_00BHT03GT001XQ001_time
「标准化名称」m_001t@20260119m_001t_time@20260119
「数据类型」浮点时间(或平台要求的时间戳类型)

💡 命名规则: 时间字段的标准化名称 = 主标准化字段名 + _time,@PID 保持一致。

6.5 配置效果

属性配置完成后的效果图 图 8 属性配置完成后的效果图

6.6 属性字段梳理模板

建议在配置前先以表格形式梳理所有字段,再逐条录入平台:

序号属性标识属性名称数据类型单位读写模式标准化名称
1DDM.SIS.0DCS_00BHT03GT001XQ001主冷却水泵房变压器B高压断路器高压侧电流浮点A只读m_005fi_1_1@20260119
2DDM.SIS.0DCS_00BHT03GT001XQ001_time主冷却水泵房变压器B高压断路器高压侧电流采集时间时间unix只读m_005fi_1_1_time@20260119
3DDM.SIS.0DCS_00BHT03GT001XQ002主冷却水泵房变压器B有功功率浮点kW只读m_003fpower_1@20260119

7 设备实例添加

7.1 操作入口

操作路径: 「设备管控」「设备」「新增设备」 → 选择对应设备类

设备列表页 - 新增设备入口 图 9 设备列表页 - 新增设备入口

新增设备表单 图 10 新增设备表单

7.2 字段说明

字段是否必填示例说明
「设备标识」DCS-POINT-01取值规则以协议说明文档为准;推送协议下通常为对接文档定义的「设备唯一标识字段」值
「设备名称」主冷却水泵房-DCS 点位中文名称,建议包含位置 / 楼栋 / 楼层 / 房间 / 系统或回路等信息
「标准化名称(PID)」20260119归属平台 / 系统的唯一标识,需与属性侧 @PID 保持一致
「通讯类型 / 协议」OPCDA与设备类保持一致
「位置 / 部门」主冷却水泵房便于后续检索与运维

⚠️ 「设备标识」 取值以协议说明文档为准。不同协议对设备标识的含义不同(推送协议通常为报文中的唯一标识字段值;直连协议可能为通讯地址、NodeId 等),填写前请严格比对协议文档,注意大小写、空格、前后缀完全一致。

⚠️ 设备实例的 PID 必须与属性配置中标准化名称的 @PID 完全一致,否则数据将无法落到目标设备。

7.3 配置效果

设备实例配置效果 图 11 设备实例配置效果

8 常见问题

现象可能原因处理建议
上报数据未入库jsonQuery 未正确指向数据节点5.3 脚本配置检查清单 核对
属性值全部为空「属性标识」 与脚本输出 Key 不一致对照脚本最终输出的扁平 Key:Value 结构修正
数据落到错误设备属性 @PID 与设备 PID 不一致参见 7.2 字段说明 修正
跨属性映射冲突同一 PID 下标准化名称重复参见 6.3 标准化名称与 PID 检查唯一性
OPCDA 连接失败「参数值」 携带了 http:// 前缀参见 4.2 示例:OPCDA 协议的 address 参数 修正
采集时间缺失未成对配置 _time 字段参见 6.4 采集时间字段成对配置 补充
脚本修改后解析异常未备份原始脚本点击 「重置脚本」 回退,或从 「导出脚本」 备份恢复

9 附录:数据模型示例

9.1 原始数据模型

平台接收到的原始上报报文结构如下(为节省篇幅,仅列举 2 条,实际场景为多条并列):

[ { "Key": "DDM.SIS.0DCS_00BHT03GT001XQ001", "Value": { "ExpandName": "0DCS_00BHT03GT001XQ001", "PointDescribe": "主冷却水泵房变压器A高压断路器高压侧电流", "PointName": "DDM.SIS.0DCS_00BHT03GT001XQ001", "PointTime": "2021-10-27 15:39:34", "PointUnit": "A", "PointValue": 96.66479555734657 } }, { "Key": "DDM.SIS.0DCS_00BHT03GT001XQ002", "Value": { "ExpandName": "0DCS_00BHT03GT001XQ002", "PointDescribe": "主冷却水泵房变压器A有功功率", "PointName": "DDM.SIS.0DCS_00BHT03GT001XQ002", "PointTime": "2021-10-27 15:39:34", "PointUnit": "KW", "PointValue": 25.33885302270709 } } ]

9.2 脚本处理后的 Key:Value 结构

经输入脚本解析后,数据转换为平台可直接识别的扁平 Key:Value 结构:

{ "DDM.SIS.0DCS_00BHT03GT001XQ001": 96.66479555734657, "DDM.SIS.0DCS_00BHT03GT001XQ002": 25.33885302270709, "DDM.SIS.0DCS_00BHT03GT001XQ003": 7.804157681671977 }

ℹ️ 属性配置时,「属性标识」 需直接使用左侧的 Key 值(如 DDM.SIS.0DCS_00BHT03GT001XQ001),与脚本输出保持一一对应。