跳到主要内容

标签注册(指定读取哪个值)

[标签] 就是为 PLC 的一个内存单元取一个名字。由于每种 PLC 的内存地址表示法不同,请一并参考自己所用 PLC 类型的页面。

  • 三菱:D100M50 这类格式
  • 西门子:%DB1.DBW0 这类格式
  • LS:D00309 这类格式
  • OPC-UA:ns=2;s=Channel1.Device1.Tag1 这类格式

详细表示法见各 PLC 页面的 [PLC 地址] 一节 → 各类 PLC 指南


输入项

一行标签需要输入以下信息。

栏位填写内容
标签名称界面上显示的名称。可用中文(例:펌프1 회전수
PLC 地址PLC 手册中给出的地址表示(例:D100
数据格式FloatIntegerBooleanStringLongDouble 之一
格式辅助(format32-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 字 · LS 合计 64 字 · MELSEC 按系列(Q/L·iQ-R 960 / QnA 480 / A 32 字) · S7 协商 PDU − 19 字节 —— 超出时值会为空,请减小 N 或拆分标签。数组标签仅支持 read(不支持 write)。


格式辅助(format)指南

即使是 PLC 的同一地址,解释方式不同得到的值也不同。例如把两个 16-bit 内存单元合并按 32-bit 读取,或把 4 个单元合并按 64-bit 浮点读取。

您的值데이터 형식형식 보조
16-bit 整数(最常见)Integer(留空)
16-bit 无符号整数IntegerUI
32-bit 整数(两个内存单元)IntegerDW
32-bit 浮点(最常见的浮点类型)FloatREAL
64-bit 浮点(高精度)DoubleLREAL
单个位(开/关)Boolean(留空)
字中的特定位BooleanBIN[3](第 3 位)
N 个字符的字符串StringSTR[N](例:STR[10]
数值异常时

若实际是 32-bit / 64-bit 却把格式辅助留空,会被误按 16-bit 读取,导致数值异常偏小或偏大。此时请在 format 栏填入 DWREALLREAL 之类的值。


高级标签设置(参考 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 / RWR 时写入 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. 同一地址可以注册为两个标签吗?

可以。当希望对同一 raw 值应用不同计算公式、仅改变单位后以两种形式发送时经常这样用(例:temperature raw + temperature_F 华氏换算)。

Q. 一个 PLC 最多能注册多少个标签?

数百个不成问题。但必须能在采集周期内全部读完,因此要考虑 PLC 的响应时间。若一个 PLC 的标签超过 1000 个,建议同时监控 PLC 负载与网络延迟。