版本: v1.0 修改日期: 2026-05-29 本文介绍
opc-cli.exe与opcapi.exe两个命令行工具的使用方法,帮助实施人员快速完成 OPC Server 的标签浏览、实时值读写与 HTTP API 服务部署。适用于与 Graybox Simulator、KEPServerEX 等 OPC Server 对接的场景。
💡 环境准备可参考:<viSCADA - OPCDA 协议数据对接配置.md>
1 环境准备
1.1 文件准备
将 opc-cli.exe 和 opcapi.exe 放在同一文件夹中(例如在桌面新建 opc_tools 目录)。
1.2 OPC Server 安装与启动
ℹ️ 若现场已部署 OPC Server,可跳过本节。
- 安装 Graybox Simulator、KEPServerEX 或其他 OPC Server,并确保可正常运行;
- 通过 OPC Server 官方工具检查服务状态,记录 OPC Server 名称备用。
1.3 打开命令行窗口
在存放 exe 文件的文件夹中,选择以下任一方式:
| 方式 | 操作 |
|---|---|
| 方式一 | 按住 Shift 键,点击右键,选择「在此处打开命令窗口」 |
| 方式二 | 在资源管理器路径栏输入 cmd 后回车 |
2 opc-cli 基础操作
opc-cli.exe 用于查询 OPC Server、浏览标签、读取实时值。
2.1 查询本机 OPC Server 列表
opc-cli.exe list localhost命令输出本机可用的 OPC Server 名称,建议记录备用。
2.2 浏览指定 OPC Server 标签
opc-cli.exe browse localhost Graybox.Simulator.1 textual参数说明:
| 参数 | 示例值 | 说明 |
|---|---|---|
| 主机地址 | localhost | 本机使用 localhost,远程使用主机 IP |
| Server 名称 | Graybox.Simulator.1 | 由 2.1 查询得到 |
| 输出格式 | textual | 文本格式输出 |
2.3 读取标签值
opc-cli.exe read localhost Graybox.Simulator.1 options.sinfreq numeric.sin.float参数中第四位及之后为需读取的标签名,可一次读取多个。输出包含标签名、实时值与时间戳。
3 部署 OPC API 服务
opcapi.exe 将 OPC 数据通过 HTTP API 对外提供,便于其他系统以 REST 方式访问。
3.1 创建配置文件 api.conf
在 exe 目录下新建 api.conf,内容参考如下:
[config]
allow_write = false
allow_add = true
allow_remove = true
all_tags = true
[opc]
server = "Graybox.Simulator.1"
nodes = [ "localhost" ]
tags = [ "numeric.sin.float", "numeric.saw.float" ]参数说明:
| 参数 | 默认值 | 说明 |
|---|---|---|
allow_write | false | 是否允许写入,默认禁止,安全推荐 |
allow_add | true | 是否允许新增标签 |
allow_remove | true | 是否允许移除标签 |
all_tags | true | 是否读取全部标签(而非仅 tags 设定项) |
server | — | 目标 OPC Server 名称 |
nodes | — | 主机列表,多主机写 [ "localhost", "192.168.1.101" ] |
tags | — | 标签列表,可手动补充其他已知标签 |
⚠️ 文件保存时请确认编码为 UTF-8,避免启动时配置解析失败。
3.2 启动 API 服务
opcapi.exe -conf api.conf -addr ":4444"参数说明:
| 参数 | 说明 |
|---|---|
-conf | 指定配置文件名 |
-addr | 监听端口,若被占用可改为 :5555 等其他端口 |
启动成功后终端显示「服务已启动」。若遇报错,依次检查路径、端口与配置项。
💡 执行
opcapi.exe -h可查看所有参数说明。
4 调用 HTTP API
API 服务启动后,可通过 curl 命令或浏览器访问以下端点。
4.1 接口速查
| 端点 | 方法 | 用途 | 说明 |
|---|---|---|---|
/tags | GET | 获取所有标签列表 | 返回 JSON 格式标签清单 |
/read | GET | 读取指定标签值 | 通过 tag 参数传入标签名 |
/write | POST | 写入标签值 | 需 allow_write = true |
4.2 获取所有标签列表
命令行:
curl -X GET "http://localhost:4444/tags"浏览器:直接访问 http://localhost:4444/tags ,返回 JSON 结果,可直接复制需要的标签名。
4.3 读取指定标签值
curl "http://localhost:4444/read?tag=numeric.sin.float"返回示例:
{
"tag": "numeric.sin.float",
"value": 23.5,
"timestamp": "2025-12-15T15:29:00Z"
}4.4 写入标签值
写入操作前需启用写入权限:
-
编辑
api.conf,将allow_write设为true; -
重启 API 服务使配置生效;
-
执行写入命令:
curl -X POST "http://localhost:4444/write?tag=numeric.sin.float&value=123.45"
参数:tag 为标签名,value 为写入值。
⚠️ 生产环境建议关闭写入功能,或通过内网防火墙、白名单 IP 等方式严格限制访问来源。
5 常见问题
| 问题 | 可能原因 | 处理建议 |
|---|---|---|
| API 启动端口冲突 | :4444 被占用 | 改用 -addr ":5555" 或其他空闲端口 |
| 启动报错无法解析配置 | api.conf 编码非 UTF-8 | 以 UTF-8 重新保存配置文件 |
| 写入接口返回权限错误 | allow_write = false | 修改配置后重启服务 |
curl 返回空或连接失败 | 服务未启动或端口不通 | 确认服务进程、防火墙与端口状态 |
| 无法列出 OPC Server | 服务未运行或主机不可达 | 检查 OPC Server 运行状态,远程时核对 IP |
6 命令速查
| 场景 | 命令 |
|---|---|
| 列出本机 OPC Server | opc-cli.exe list localhost |
| 浏览主机标签 | opc-cli.exe browse localhost Graybox.Simulator.1 textual |
| 读取标签值(CLI) | opc-cli.exe read localhost Graybox.Simulator.1 <tag> |
| 启动 API 服务 | opcapi.exe -conf api.conf -addr ":4444" |
| 查询所有标签 | curl "http://localhost:4444/tags" |
| 读取标签值(API) | curl "http://localhost:4444/read?tag=<tag>" |
| 写入标签值(API) | curl -X POST "http://localhost:4444/write?tag=<tag>&value=<value>" |