标签注册
[标签] 是给 PLC 的一个内存单元赋予名称。由于每种 PLC 的内存地址表示法不同,请一并参考自己所用 PLC 类型的对应页面。
- 三菱:
D100,M50等格式 - 西门子:
%DB1.DBW0等格式 - LS:
D00309等格式 - OPC-UA:
ns=2;s=Channel1.Device1.Tag1等格式
详细表示法请参见各 PLC 页面的 [PLC 地址] 章节 → 各 PLC 类型指南
输入项
标签一行需输入以下信息。
| 列 | 填写内容 |
|---|---|
| 标签名称 | 界面显示的名称,可用中文(例:펌프1 회전수) |
| PLC 地址 | PLC 手册中的地址表示(例:D100) |
| 数据格式 | Float、Integer、Boolean、String、Long、Double 之一 |
格式辅助(format) | 若为 32-bit 则填 DW,若为实数则填 REAL 等(可选) |
| 计算公式 | 单位换算等后处理公式(可选)。详见 应用计算公式 |
| 说明 | 备注,界面上会一并显示 |
数据格式指南
| 数据格式 | 位宽·符号 | 何时使用 | 示例 |
|---|---|---|---|
Boolean | 1 位 | 开/关,ON/OFF | 泵运行 / 报警 ON |
Integer | 16-bit 有符号 | 整数(含负数)——最常见 | 计数器、转速 |
Long | 64-bit 有符号 | 大整数(超过 32-bit) | 累计产量 |
Float | 32-bit 实数 | 带小数点的值 | 温度、压力、速度 |
Double | 64-bit 实数 | 精密小数 | 精密测量数据 |
String | 可变 | 字符串 | 批次名、配方名称 |
以名称明确标示符号·位宽的精确类型(与 Kepware 含义相同):
| 数据格式 | 位宽·符号 | 何时使用 |
|---|---|---|
Short | 16-bit 有符号 | 与 Integer 相同(明确命名) |
Word | 16-bit 无符号 | 0~65535 计数器(无负数) |
DInt | 32-bit 有符号 | 32-bit 整数(替代旧的 Integer+DW 组合) |
DWord | 32-bit 无符号 | 超过 21 亿(2^31) 的累计计数器 —— 以 Integer 采集时曾失败的值 |
QWord | 64-bit 无符号 | 无符号大型计数器 |
Byte | 8-bit 无符号 | 状态字节 |
- S7
Integer:将原先被错误读取为无符号(u16)的情况,修正为**有符号(s16)**作为标准 —— 解决了负数显示为 65531 之类的问题。若需要无符号,请使用Word。 - S7 / MELSEC
Long:将原先按 32-bit 读取的情况统一为标准的64-bit。原先以Long读取 32-bit 的标签,请改为**DInt(有符号)或DWord(无符号)**。
数组标签(Base[N])
以 DInt[10] 这样的元素类型[数量]形式注册时,会将连续区域作为一个标签采集,并以 JSON 数组字符串("[1,2,3]")保存。
支持的驱动(2026.07 扩展):EIP + MELSEC / S7 / Modbus / LS。仅数值类型的元素才会实际采集
(不可注册 String 数组,Boolean/Byte 数组因驱动不支持——其值将为空)。
各驱动的上限:Modbus 总计 125 字(word) · LS 总计 64 字 · MELSEC 按系列区分(Q/L·iQ-R 960 / QnA 480 / A 32 字)
S7 协商 PDU − 19 字节 —— 超出时值会为空,请减少 N 或拆分标签。数组标签为只读(不支持写入)。
格式辅助(format)指南
即使是 PLC 中相同的地址,根据解析方式不同也会得出不同的值。例如将两个 16-bit 内存单元合并读取为 32-bit,或将四个单元合并读取为 64-bit 实数等差异。
| 您所拥有的值 | 데이터 형식 | 형식 보조 |
|---|---|---|
| 16-bit 整数(最常见) | Integer | (留空) |
| 16-bit 无符号整数 | Integer | UI |
| 32-bit 整数(两个内存单元) | Integer | DW |
| 32-bit 实数(最常见的实数类型) | Float | REAL |
| 64-bit 实数(精密) | Double | LREAL |
| 1 个位(开/关) | Boolean | (留空) |
| 字(word)中的特定位 | Boolean | BIN[3](第 3 位) |
| 字符串 N 个字符 | String | STR[N](例:STR[10]) |
若为 32-bit / 64-bit 却将格式辅助留空,会被错误地按 16-bit 读取,导致值异常地偏小或偏大。此时请将 format 栏填入 DW、REAL、LREAL 等值。
高级标签设置(参照 Kepware)
标签可以一并保存以下可选设置(全部未指定时保持原有行为不变)。
目前可通过备份/还原 JSON(/connect/restore)或 REST 指定,值会与标签行一起保存。
| 设置 | 值 | 含义 |
|---|---|---|
byte_order | AB_CD BA_DC CD_AB DC_BA | 32/64-bit 字节·字顺序(未指定=协议默认) |
scaling_type | linear sqrt | 原始值 → 工程单位换算 |
raw_low/raw_high | 数字 | 缩放输入(原始)范围 |
scaled_low/scaled_high | 数字 | 缩放输出(工程)范围 |
clamp | true/false | 将输出截断至 scaled 范围内 |
negate | true/false | 符号反转 |
units | 字符串 | 单位标签(例:degC) |
client_access | R / RW | 若为 R,写入 API 将被拒绝(只读) |
deadband | 数字 | 与前值相比变化量小于此值时省略发布 |
scan_divisor | 整数 | 每 n 个周期仅读取 1 次(采集周期的倍数) |
例 —— 将 4~20mA 原始值 0..4095 线性转换为 0..100%,并抑制小幅波动:
{"tags":[{ "opc_id":"OPC_X", "tag_id":"TAG_PCT", "tag_name":"압력%",
"data_type":"Float", "plc_address":"D100",
"scaling_type":"linear", "raw_low":0, "raw_high":4095,
"scaled_low":0, "scaled_high":100, "clamp":true, "deadband":0.5 }]}
可与计算公式(fomula)并用 —— 计算公式将在缩放结果之上应用。
CSV 批量注册(/ui/connect/csv)中也可指定相同设置 —— 在基本 9 列之后添加可选列:
RAW_TYPE, BYTE_ORDER, SCALING_TYPE, RAW_LOW, RAW_HIGH, SCALED_LOW, SCALED_HIGH, CLAMP, NEGATE, UNITS, CLIENT_ACCESS, DEADBAND, SCAN_DIVISOR, TAG_GROUP。
原有的 9 列 CSV 可照常使用。JSON 备份/还原中始终包含此设置(未设置的项在文件中省略)。
注册方法
方法 1 —— 在 PLC 注册表单中一并添加
[添加连接] 或 [修改] 界面中有标签输入表格。点击 [+ 添加标签] 按钮增加行,逐行输入后点击 [保存]。
方法 2 —— 仅向已注册的 PLC 添加标签
- 进入 [连接] 菜单 → 在左侧点击对应 PLC
- 点击右侧 [标签列表] 上方的**【添加标签】**按钮
- 逐一添加。添加后将在下一个采集周期立即开始接收数值。
方法 3 —— CSV 批量上传
若标签数量达到数十个以上,使用 [连接] 右上方的**【CSV 批量上传】**会更快捷。CSV 模板可在上传界面下载。
确认是否注册成功
点击 PLC 后,右侧 [标签列表] 中会显示已注册的标签。
| 列 | 含义 |
|---|---|
| 标签名称 / 地址 / 格式 | 与注册内容一致 |
| 当前值 | 最近一次采集到的值(每 5 秒自动刷新) |
| 采集时间 | 该值传入的时间 |
| 状态 | 정상 / 오류 |
若出现错误,很可能是 PLC 地址表示有误,或数据格式不匹配。请参考 故障排除 —— 数值异常。
标签修改 / 删除
- 点击标签列表中的一行即可打开修改表单。
- 通过行末的 [删除] 按钮逐行删除。
修改后将在下一个采集周期立即应用新设置。
常见问题
Q. 如何获取 PLC 地址?
- PLC 编程人员 / 设备制造商的手册中通常都有"数据映射表"。
- 在 PLC 编程工具(GX Works、TIA Portal、XG5000 等)的"Watch table / 监控界面"中可以确认当前使用的地址。
- 若为 OPC-UA,使用 UA Expert 等免费客户端点击/复制地址导入最为准确。
Q. 标签 ID 如何命名?
网关会自动以 <connection-id>_TAG_<number> 格式赋予。也可以自行指定,但请仅使用英文字母/数字/下划线。
Q. 可以将同一地址注册为两个标签吗?
可以。当希望对同一原始值应用不同计算公式,仅转换单位后发送两种不同结果时经常使用这种方式(例如:temperature 原始值 + temperature_F 华氏转换)。
Q. 一个 PLC 最多可以注册多少个标签?
达到几百个通常没有问题。但由于必须能在采集周期内全部读取完成,需考虑 PLC 的响应时间。若某个 PLC 的标签数超过 1000 个,建议同时监控该 PLC 的负载 / 网络延迟情况。