跳到主要内容

标签注册

[标签] 是给 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 等(可选)
计算公式单位换算等后处理公式(可选)。详见 应用计算公式
说明备注,界面上会一并显示

数据格式指南​

数据格式位宽·符号何时使用示例
Boolean1 位开/关,ON/OFF泵运行 / 报警 ON
Integer16-bit 有符号整数(含负数)——最常见计数器、转速
Long64-bit 有符号大整数(超过 32-bit)累计产量
Float32-bit 实数带小数点的值温度、压力、速度
Double64-bit 实数精密小数精密测量数据
String可变字符串批次名、配方名称

以名称明确标示符号·位宽的精确类型(与 Kepware 含义相同):

数据格式位宽·符号何时使用
Short16-bit 有符号与 Integer 相同(明确命名)
Word16-bit 无符号0~65535 计数器(无负数)
DInt32-bit 有符号32-bit 整数(替代旧的 Integer+DW 组合)
DWord32-bit 无符号超过 21 亿(2^31) 的累计计数器 —— 以 Integer 采集时曾失败的值
QWord64-bit 无符号无符号大型计数器
Byte8-bit 无符号状态字节
现有标签迁移(2026.07 行为变更)
  • 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 无符号整数IntegerUI
32-bit 整数(两个内存单元)IntegerDW
32-bit 实数(最常见的实数类型)FloatREAL
64-bit 实数(精密)DoubleLREAL
1 个位(开/关)Boolean(留空)
字(word)中的特定位BooleanBIN[3](第 3 位)
字符串 N 个字符StringSTR[N](例:STR[10])
值显示异常时

若为 32-bit / 64-bit 却将格式辅助留空,会被错误地按 16-bit 读取,导致值异常地偏小或偏大。此时请将 format 栏填入 DW、REAL、LREAL 等值。


高级标签设置(参照 Kepware)​

标签可以一并保存以下可选设置(全部未指定时保持原有行为不变)。 目前可通过备份/还原 JSON(/connect/restore)或 REST 指定,值会与标签行一起保存。

设置值含义
byte_orderAB_CD BA_DC CD_AB DC_BA32/64-bit 字节·字顺序(未指定=协议默认)
scaling_typelinear sqrt原始值 → 工程单位换算
raw_low/raw_high数字缩放输入(原始)范围
scaled_low/scaled_high数字缩放输出(工程)范围
clamptrue/false将输出截断至 scaled 范围内
negatetrue/false符号反转
units字符串单位标签(例:degC)
client_accessR / 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 添加标签​

  1. 进入 [连接] 菜单 → 在左侧点击对应 PLC
  2. 点击右侧 [标签列表] 上方的**【添加标签】**按钮
  3. 逐一添加。添加后将在下一个采集周期立即开始接收数值。

方法 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 的负载 / 网络延迟情况。