文档信息
| 项目 | 内容 |
|---|---|
| 文档名称 | viSCADA 平台协议 YAML 配置操作说明 |
| 版本号 | V1.0 |
| 编制日期 | 2026-03-12 |
| 适用对象 | 实施工程师、研发人员、运维人员 |
| 适用范围 | viSCADA 平台基于 HTTP、MQTT、Kafka、数据库等协议的 YAML 配置场景(本版本以 HTTP 协议为例) |
修订记录
| 版本号 | 更新时间 | 修订内容 |
|---|---|---|
| V1.0 | 2026-03-12 | 初始版本,以 HTTP 协议为例,整理并规范 YAML 配置流程 |
1 文档说明
1.1 文档目的
本文档指导实施工程师与运维人员在 viSCADA 平台中规范完成基于特定协议(HTTP、MQTT、Kafka、数据库等)的 YAML 配置,涵盖协议脚本录入、设备类关联、技术参数配置等核心环节。
完成本文档的学习后,您应能独立完成:
- 新增基于特定协议的数据采集与控制脚本
- 创建设备类并正确关联对应协议
- 配置设备通讯地址等核心技术参数
- 校验配置的正确性与生效状态
- 快速定位并排查常见配置问题
ℹ️ 版本说明:本版本示例与截图均以 HTTP 协议为蓝本,其他协议(MQTT、Kafka、数据库)的脚本细节将在后续版本中补充,但整体操作流程通用。
1.2 适用设备与业务
本文档适用于通过 HTTP、MQTT、Kafka、数据库等接口接入 viSCADA 平台,并需实现以下业务功能的设备:
- 设备实时数据采集
- 设备控制指令下发
1.3 前置条件
在开始配置前,请确认已满足以下条件:
- 已获取 viSCADA 平台的登录与操作权限。
- 已明确目标设备对外提供服务的协议类型。
- 已获取设备准确有效的通讯地址(如 IP 地址、域名及端口号)。
- 已确认 viSCADA 平台与目标设备之间网络互通,相关通讯端口正常开放。
- (HTTP 协议专属) 已确认设备接口支持以下交互方式:
- 使用 GET 请求获取实时数据
- 使用 PUT 请求下发控制指令
2 整体配置流程
| 步骤 | 操作路径 | 对应章节 |
|---|---|---|
| ① 新增协议脚本 | 设备管控 → 协议管理 | 5.1 新增协议脚本 |
| ② 新增设备类并关联协议 | 设备管控 → 设备类 | 5.2 新增设备类并关联协议 |
| ③ 查看/导出/编辑脚本 | 设备类详情页 → 脚本 | 5.3 查看、导出或编辑设备类脚本 |
| ④ 配置技术参数 address | 设备类详情页 → 技术参数编辑 | 5.4 配置技术参数 address |
| ⑤ 核对并验证 | —— | 6 配置检查清单 |
3 协议脚本说明
3.1 数据采集脚本
该脚本用于平台按固定周期从设备端拉取数据。
[[inputs.http]]
interval = "60s"
name_override = "${TEMPLATE_NAME}"
urls = [
"http://${attribute.address}/tags"
]
method = "GET"
insecure_skip_verify = true
timeout = "300s"
data_format = "json"
json_query = ""
json_timezone = "Asia/Shanghai"
json_string_fields = [${STRING_FIELD}]参数说明:
| 参数 | 说明 | 可否调整 |
|---|---|---|
interval | 数据采集周期,默认 60s | ✅ 可按业务调整 |
name_override | 设备模板名称,由平台运行时自动替换 | ❌ 保持默认 |
urls | 数据采集的接口地址,由平台拼接生成 | ❌ 保持默认 |
method | 请求方式 | ❌ 固定为 GET |
timeout | 请求超时时间,默认 300s | ✅ 可按网络状况调整 |
data_format | 返回数据格式 | ❌ 固定为 json |
占位符说明:
| 占位符 | 含义 |
|---|---|
${TEMPLATE_NAME} | 设备模板名称 |
${attribute.address} | 设备通讯地址 |
${STRING_FIELD} | 字符串字段列表 |
💡 配置建议:除
interval和timeout外,其余参数建议保持默认,不推荐随意修改。
3.2 控制脚本
该脚本用于平台向设备端发送控制指令。
control:
- async: false
carrier: "http"
url: "http://${attribute.address}/tag/${tslProperty.name?url('UTF-8')}"
method: "put"
headers:
Content-Type: "application/json"
body: "${TARGET_VALUE}"
timeout: 15000
successStatusCodes:
- 200
successResponseBody:
- "updated"参数说明:
| 参数 | 说明 | 可否调整 |
|---|---|---|
carrier | 通讯载体/方式 | ❌ 固定为 http |
url | 控制请求下发地址,由平台自动拼接 | ❌ 保持默认 |
method | 请求方式 | ❌ 固定为 put |
body | 控制下发的目标值,由平台自动替换 | ❌ 保持默认 |
timeout | 请求超时时间,单位毫秒 | ✅ 可按网络状况调整 |
successStatusCodes | 判定为成功的 HTTP 状态码 | ❌ 固定为 200 |
successResponseBody | 判定为成功的响应体关键字 | ❌ 固定为 "updated" |
占位符说明:
| 占位符 | 含义 |
|---|---|
${attribute.address} | 设备通讯地址 |
${tslProperty.name?url('UTF-8')} | 属性名称,平台下发时自动进行 URL 编码 |
${TARGET_VALUE} | 控制下发的目标值 |
⚠️ 严禁修改:
successStatusCodes和successResponseBody是平台判定控制指令是否执行成功的核心依据,修改后将导致平台误判设备状态。
4 YAML 技术参数配置
在构建 YAML 协议文件时,必须定义 attributes 节点。其中 address(设备通讯地址)为必填技术参数,用于配置目标设备的 IP 地址或域名(可含端口号)。
4.1 标准配置示例
attributes:
- name: address
content: "IP地址或者域名。示例: localhost:4444/127.0.0.1:4444"
value_editable: true
default_value:
generic: false
unit:
required: true
rule: REGEX
rule_content:
regex: ^(?:(?:(?:25[0-5]|2[0-4]\d|1?\d?\d)\.){3}(?:25[0-5]|2[0-4]\d|1?\d?\d)|(?=.{1,253}$)(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?\.)+[A-Za-z]{2,})(?::(?:6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|[1-5]\d{4}|[1-9]\d{0,3}))?$4.2 关键参数说明
| 参数名 | 配置值 | 说明 |
|---|---|---|
name | address | 技术参数的唯一标识名称 |
value_editable | true | 允许用户在平台页面前端修改 |
required | true | 标记为必填项,为空则无法保存配置 |
rule | REGEX | 采用正则表达式进行格式校验 |
generic | false | 标识该参数为特定设备的专属参数 |
rule_content.regex | 固定内容 | 校验 IP、域名及端口号格式合法性的正则规则 |
4.3 address 填写规范
填写 address 时,仅录入设备的实际通讯地址,切勿添加 http:// 等协议前缀。
| 示例 | 是否合规 | 说明 |
|---|---|---|
127.0.0.1:4444 | ✅ | 本机/本地环回地址 |
192.168.1.10:8080 | ✅ | 内网/局域网设备地址 |
example.com:9000 | ✅ | 公网/域名方式访问 |
http://127.0.0.1:4444 | ❌ | 包含多余的协议头 |
localhost:abc | ❌ | 端口号包含非法字符 |
192.168.1.10:70000 | ❌ | 端口号超出最大范围 65535 |
ℹ️ 平台保存时会调用正则表达式对地址格式自动校验。格式不合规时页面将拦截并提示,无法保存。
5 平台操作流程
5.1 新增协议脚本
操作路径:设备管控 → 协议管理
图 1 协议管理 - 新增脚本页面
操作步骤:
- 登录 viSCADA 平台。
- 在左侧导航栏依次点击**「设备管控」** → 「协议管理」。
- 点击**「新增脚本」**按钮。
- 填写脚本基础信息(例如将协议名称命名为
OPCAD)。 - 将 3.1 数据采集脚本 与 3.2 控制脚本 分别复制并粘贴至对应编辑区域。
- 检查脚本内容,确认所有
${XXX}占位符均完整保留。 - 点击**「保存」**提交。
操作结果:
- 协议脚本成功入库
- 在后续设备类创建流程中,下拉列表内可选择该协议
5.2 新增设备类并关联协议
操作路径:设备管控 → 设备类
图 2 设备类 - 新增页面
操作步骤:
- 在左侧导航栏依次点击**「设备管控」** → 「设备类」。
- 点击**「新增设备类」**按钮。
- 根据页面提示填写以下基础信息:
- 设备类 ID
- 设备类名称
- 标准化名称
- 在**「通讯协议」**下拉菜单中选择 5.1 新增协议脚本 中新增的协议(如
OPCAD)。 - 将**「设备通讯类型」配置为「直连设备」**。
- 点击**「保存」**提交。
操作结果:
- 成功创建新的设备类
- 新设备类已与指定的通讯协议完成绑定
5.3 查看、导出或编辑设备类脚本
操作路径:目标设备类详情页 →「脚本」标签页
图 3 设备类 - 脚本标签页
操作步骤:
-
点击进入目标设备类的详情页。
-
切换至顶部的**「脚本」**标签页,可直接查看当前设备类关联的协议脚本内容。
-
根据需要执行以下操作之一:
场景 操作 结果 备份脚本 点击**「导出脚本」** 下载当前脚本文件 修改脚本 编辑器内直接修改后点击**「保存」** 修改立即生效 回退异常 点击**「重置脚本」** 恢复为协议初始配置
操作结果:
- 实现对当前设备类专属脚本的可视化管理、备份与热更新
5.4 配置技术参数 address
操作路径:目标设备类详情页 →「技术参数编辑」模块
图 4 设备类 - 技术参数编辑模块
操作步骤:
- 点击进入目标设备类的详情页。
- 定位至**「技术参数编辑」**模块。
- 点击**「+ 新增项」**按钮。
- 在弹出的参数名称选项中选择
address。 - 在参数值输入框中填写目标设备的通讯地址(例如
127.0.0.1:4444)。 - 系统自动校验输入格式的合法性。
- 校验通过后点击**「保存」**提交配置。
操作结果:
- 设备类的核心技术参数配置完毕
address参数正式生效,设备具备基本的通讯寻址能力
6 配置检查清单
为保障设备顺利接入,建议在配置完成后按下表逐项核对:
- 协议脚本已成功新增并保存
- 数据采集脚本已完整粘贴
- 控制脚本已完整粘贴
- 脚本内所有
${XXX}占位符均未被改动 - 设备类已成功创建并绑定了正确的协议
-
address技术参数已完成添加与配置 -
address格式校验通过(无协议前缀) - 所有流程中的修改均已点击「保存」确认
7 注意事项
| 项 | 要求 |
|---|---|
| ⚠️ 占位符 | 脚本中所有形如 ${XXX} 的占位符依赖平台底层动态替换,严禁修改或删除,否则将导致通讯瘫痪 |
| ⚠️ address 必填 | 未填写或格式错误时,平台将拦截保存请求 |
| ⚠️ address 不带协议头 | 仅录入 IP/域名及端口(如 127.0.0.1:4444),不要填写 http://127.0.0.1:4444 |
| ⚠️ 控制判定规则 | 控制脚本中 successStatusCodes: 200 与 successResponseBody: "updated" 是固定规则,严禁修改 |
| 💡 参数调整克制 | 除业务确需调整 interval 和 timeout 外,其余底层参数建议保持默认 |
| 💡 及时保存 | 各页面的修改必须点击对应的**「保存」**按钮方能写入数据库 |
8 常见问题排查
若配置完成后设备仍离线或无法受控,请按以下链路逐级排查。
8.1 分层排查清单
| 层级 | 排查项 | 典型问题 |
|---|---|---|
| 基础层(通讯地址) | address 拼写 | IP 或域名拼写错误 |
| 端口号 | 遗漏设备通讯端口 | |
| 协议头 | 误填了 http:// 等协议前缀 | |
| 网络层(连通性) | 服务器连通性 | 平台服务器无法 Ping 通设备 |
| 端口状态 | 目标端口(如 4444、8080)未监听或未开放 | |
| 隔离策略 | 存在物理隔离、防火墙拦截或安全组限制 | |
| 应用层(脚本与绑定) | 占位符完整性 | ${XXX} 占位符被误删或误改 |
| 协议绑定 | 设备类关联的协议与目标脚本不一致 | |
| 交互层(控制接口) | HTTP 状态码 | 设备响应状态码不是 200 |
| 响应体关键字 | 响应体未包含 "updated" 关键字 |
8.2 控制下发失败专项排查
若设备数据采集正常,但控制下发失败,请通过抓包或测试工具(如 Postman)确认设备实际接口响应是否同时满足:
- HTTP 响应状态码为
200 - 响应体(Body)内容中包含
"updated"关键字
ℹ️ 两个条件必须同时满足,缺一不可。
9 附录
9.1 常用地址配置参考
✅ 合法示例:
| 示例值 | 场景 |
|---|---|
127.0.0.1:4444 | 本机/本地环回地址 |
192.168.1.10:8080 | 内网/局域网设备地址 |
example.com:9000 | 公网/域名方式访问 |
❌ 错误示例:
| 示例值 | 错误原因 |
|---|---|
http://127.0.0.1:4444 | address 字段中严禁包含协议头 |
localhost:abc | 端口部分包含非法字母 |
192.168.1.10:70000 | 端口号超出最大范围 65535 |
ℹ️ 完整的脚本与 YAML 技术参数模板已在 3 协议脚本说明 与 4 YAML 技术参数配置 中提供,请直接参考对应章节,无需在附录重复列出。