PLC 地址输入 — 各协议完全指南
本参考手册将标签注册界面中最容易混淆的 PLC 地址 与 数据类型 / format,按协议集中整理在一处。各 PLC 的详细指南链接至 各类 PLC 指南 的对应页面。
1. 通用 — 注册表单的 4 个字段
在标签注册界面(标签注册)中与 PLC 地址一同填写的 4 个字段:
| 字段 | 含义 | 示例 |
|---|---|---|
| PLC 地址 | 驱动发送给 PLC 的原始地址 | D00309 (LS)、D100 (Melsec)、DB1.DBW0 (S7) |
| 数据类型 | Java/JS 接收的类型 | Integer / Long / Float / Double / String / Boolean |
| format(格式辅助) | 对同一地址采用不同解释方式的选项 | DW / UI / REAL / STR[10] / BIN[3] 等 |
| 计算公式 (fomula) | 读取后应用的算术表达式 | ${VALUE}*0.1 / sqrt(${VALUE}) |
💡 format 是关键:PLC 中同一地址可被解释为 16-bit / 32-bit / 实数 / 字符串 / 位。若 format 留空,则默认按 16-bit signed integer 处理(大多数驱动的 default)。
2. LS XGT (XGI / XBC / XBM) — LS 驱动
内存区域
| 字符 | 区域 | 常用 |
|---|---|---|
D | Data Register | ✅ 数据(最常见) |
M | Memory(位) | ✅ 状态位 |
K | Keep Relay(非易失) | ✅ 断电保持 |
F | Flag | 系统位 |
T | Timer | 定时器当前值 |
C | Counter | 计数器当前值 |
R | File Register | (视系列而定) |
P | I/O | 外部输入输出 |
表示示例
| PLC 中的值 | 数据类型 | format | 地址示例 | 备注 |
|---|---|---|---|---|
| 16-bit signed | Integer | (留空) | D00309 | default |
| 16-bit unsigned | Integer | UI 或 UW | D00300 | 0–65535 |
| 32-bit signed | Integer | DW | D00600 | D00600~D00601 |
| 32-bit unsigned | Long | UDW 或 DUW | D00690 | 0–4_294_967_295 |
| 64-bit signed | Long | (留空 + dt=Long) | D00700 | D00700~D00703 |
| 32-bit float | Float | REAL | D00450 | IEEE 754 |
| 64-bit double | Double | LREAL | D00500 | IEEE 754 |
| 位 (M/K/F/T/C/P) | Boolean | (留空) | M02704 | 位区域 |
| 字的第 N 位 | Boolean | BIN[N] | D00309 (BIN[3]) | 第 3 位 |
| 字符串 N 字(= 2N 个字符) | String | STR[N] | D00500 (STR[10]) | low-byte-first |
| Byte | Integer | B 或 UB | D00100 | 1 字节 |
详情:LS 产电
3. 三菱 MELSEC (Q / L / iQ-R) — MELSEC 驱动
内存区域
该驱动可读写的软元件仅限以下这些。
| 字符 | 区域 | 单位 | 常用 |
|---|---|---|---|
D | Data Register | 字 | ✅ 最常见 |
M | Internal Relay | 位 | ✅ |
B | Link Relay | 位 | ✅ |
X / Y | Input / Output | 位 | I/O |
W | Link Register | 字 | |
R | File Register | 字 | |
T / C | Timer / Counter | 字 | 当前值 |
L | Latch Relay | 位 | |
F | Annunciator | 位 | 报警 |
V | Edge Relay | 位 | |
S | Step Relay | 位 | |
Z | Index Register | 字 |
SD · SM · ZR 无法读取本驱动不支持系统软元件(SD / SM)和扩展文件寄存器(ZR)。
即使注册为标签,读取也会失败。如果需要系统状态值,请在 PLC 程序中
复制到 D 区域后再读取该地址。
表示示例
| 数据 | 类型 | format | 地址示例 |
|---|---|---|---|
| 16-bit signed | Integer | (留空) | D100 |
| 16-bit unsigned | Integer | UW | D100 |
| 32-bit signed | Integer | DW | D100 (D100~D101) |
| 32-bit unsigned | Long | UDW | D100 |
| 32-bit float | Float | REAL | D100 |
| 位 | Boolean | (留空) | M100、B0010 |
| 字符串 | String | STR[N] | D200 (N 字) |
⚠ 注册表单中有 控制器类型 (
controller-type) 选项 — 因为 Q/L 系列与 iQ-R 的软元件代码不同。设置错误会导致Wrong device code。
详情:三菱 MELSEC
4. 西门子 S7 (S7-300 / 400 / 1200 / 1500) — S7 驱动
内存区域
| 区域 | 表示 | 含义 |
|---|---|---|
| DB (Data Block) | DB<n>.DB<X>0 | 最常见 — 用户自定义数据块 |
| M (Merker) | M<X>0 | 内部存储器 |
| I (Input) | I<X>0 或 E<X>0 | 输入 |
| Q (Output) | Q<X>0 或 A<X>0 | 输出 |
| C / T | C0 / T0 | Counter / Timer |
<X> = 数据宽度:
B= Byte (8-bit)W= Word (16-bit)D= DWord (32-bit,整数或 float)X<bit>= 位(例如:M0.3)
表示示例
| 数据 | 类型 | format | 地址示例 |
|---|---|---|---|
| 16-bit signed | Integer | (留空) | DB1.DBW0 |
| 32-bit signed | Integer | DW | DB1.DBD0 |
| 32-bit float | Float | REAL | DB1.DBD4 |
| 位 | Boolean | (留空) | DB1.DBX0.0(DB1 中 byte 0 的第 0 位) |
| 字符串 | String | STR[N] | DB1.DBB0(含 S7 STRING 头) |
⚠
rack / slot选项 — TIA Portal 中 PLC 的 Rack / Slot 编号(通常为 0/1 或 0/2)。设置错误会出现 connection refused。
详情:西门子 S7
5. Modbus TCP — MODBUS 驱动
区域 / 功能码
| 区域 | 功能码 | 位/字 | 表示 |
|---|---|---|---|
| Coil | FC1 / FC5 / FC15 | 位 | coil:<n> |
| Discrete Input | FC2 | 位(read-only) | discrete-input:<n> |
| Holding Register | FC3 / FC6 / FC16 | 字 | holding-register:<n> |
| Input Register | FC4 | 字(read-only) | input-register:<n> |
表示示例
| 数据 | 类型 | format | 地址示例 |
|---|---|---|---|
| 16-bit signed | Integer | (留空) | holding-register:1 |
| 16-bit unsigned | Integer | UI | holding-register:1 |
| 32-bit signed | Integer | DW | holding-register:1 (HR1+HR2) |
| 32-bit float | Float | REAL | holding-register:1 |
| 32-bit float (byte-swap) | Float | REAL_BS | (视驱动选项而定) |
| 位 | Boolean | (留空) | coil:5 |
| 输入位(read-only) | Boolean | (留空) | discrete-input:0 |
各厂商不同(Modbus 从站的起始编号)。网关的 MODBUS 驱动会将输入原样发送为 PDU,因此请直接填写从站手册中的 PDU 地址。
详情:Modbus TCP
6. OPC-UA — OPCUA 驱动
NodeId 表示
OPC-UA 通过 NodeId 标识 — 标准格式:
ns=<NamespaceIndex>;s=<StringId>
ns=<NamespaceIndex>;i=<NumericId>
ns=<NamespaceIndex>;g=<GuidId>
ns=<NamespaceIndex>;b=<ByteStringId>
表示示例
| 服务器 | NodeId | 备注 |
|---|---|---|
| Kepware | ns=2;s=Channel1.Device1.Tag1 | 通道.设备.标签 |
| Ignition | ns=1;s=[default]Tag1/Sub | 标签路径 |
| PlantPulse 自带 OPC-UA 服务器 | ns=2;s=SITE_00001.OPC_00303.TAG_TEST_00042 | site.opc.tag |
| 数字型 ID | ns=2;i=1234 | 数字 ID |
数据类型
OPC-UA 由服务器自身持有类型 — 网关的 데이터 타입 / format 仅作为解释提示使用。一般情况下:
| 服务器节点类型 | 注册时 | format |
|---|---|---|
Int16 / Int32 / Int64 | Integer / Long | (留空) |
Float / Double | Float / Double | (留空) |
Boolean | Boolean | (留空) |
String | String | (留空) |
详情:OPC-UA
7. AB EtherNet/IP / Logix — EIP / LOGIX 驱动
表示(基于 Logix 标签名 — Symbol Addressing)
ControlLogix / CompactLogix 通过标签名称直接访问:
| 数据 | 类型 | format | 地址示例 |
|---|---|---|---|
| DINT | Integer | DW | MyTag |
| INT | Integer | (留空) | Pump.Speed |
| REAL | Float | REAL | Tank.Level |
| BOOL | Boolean | (留空) | Motor.Run |
| STRING | String | (Logix STRING 结构体) | Recipe.Name |
| 数组 | (标量) | (留空) | Array[5](直接指定索引) |
表示(PLC-5 / SLC-500 — Logical Addressing)
AB-ETH 卡采用不同的格式:
| 数据 | 地址示例 |
|---|---|
| Word | N7:0 (file 7, element 0) |
| Float | F8:0 |
| Bit | B3:0/0 |
backplane / slot选项 — 指定 PLC 位于哪个插槽。常见为1(CPU)。
8. HTTP 推送 — HTTP 驱动(反向)
网关不向 PLC 执行 read — 而是由外部向网关 push 的模式。
| 表示 | 含义 |
|---|---|
<area>/<key> | 自由标识符 — 与外部发送的 path 匹配 |
POST body 示例:
{ "tag_id": "TAG_OUTDOOR_TEMP", "value": "23.4" }
format / 데이터 타입 仅为简单的保存元数据。PLC 地址为任意键 — 可根据外部使用哪个键 push 而自由命名。
详情:HTTP 推送
9. Motor Sense — MOTOR_SENSE 驱动(经由 OPC-UA)
通过 OPC-UA 接收 KOPENS 电机传感设备数据。以资产 (asset) 为单位自动检索。
| 种类 | 自动填充的 PLC 地址 |
|---|---|
| HEALTH INDEX | <ASSET_ID>.health.<metric> |
| SIGNAL | <ASSET_ID>.signal.<metric> |
一般无需手动输入 — 可自动检索资产。
详情:Motor Sense
10. OMRON FINS — FINS 驱动
内存区域
| 字符 | 区域 |
|---|---|
D | DM (Data Memory) — 最常见 |
H | Holding Relay |
W | Work Area |
A | Auxiliary |
T / C | Timer / Counter |
CIO | Core I/O |
表示示例
| 数据 | 类型 | format | 地址示例 |
|---|---|---|---|
| 16-bit signed | Integer | (留空) | D100 |
| 32-bit signed | Integer | DW | D100 |
| Float | Float | REAL | D100 |
| 位 | Boolean | (留空) | H0.05(字 0 的第 5 位) |
Network/Node/Unit 选项 — FINS 头中的路由信息(
SA1/DA1等)。请依据 PLC 手册设置。
11. PANASONIC MEWTOCOL — MEWTOCOL 驱动
内存区域
| 字符 | 区域 |
|---|---|
DT | Data Register |
R | Internal Relay |
X / Y | Input / Output |
T / C | Timer / Counter |
表示示例
| 数据 | 类型 | format | 地址示例 |
|---|---|---|---|
| 16-bit signed | Integer | (留空) | DT0 |
| 32-bit signed | Integer | DW | DT0 |
| 位 | Boolean | (留空) | R0.0 |
12. FATEK FACON — FATEK 驱动
内存区域
| 字符 | 区域 |
|---|---|
R | Register (Word) |
M / Y / X | Memory / Output / Input (Bit) |
D | Discrete |
表示示例
| 数据 | 类型 | format | 地址示例 |
|---|---|---|---|
| 16-bit signed | Integer | (留空) | R0 |
| 位 | Boolean | (留空) | M0、Y10 |
13. GE SRTP — GE 驱动
内存区域 (GE Fanuc / Emerson PACSystems)
| 字符 | 区域 |
|---|---|
R | Register |
AI / AQ | Analog Input / Output |
I / Q | Discrete Input / Output |
M | Internal |
表示示例
| 数据 | 类型 | format | 地址示例 |
|---|---|---|---|
| 16-bit signed | Integer | (留空) | R1 |
| 32-bit signed | Integer | DW | R1 |
| Float | Float | REAL | R1 |
| Discrete | Boolean | (留空) | I1 |
14. EMERSON DELTAV — DELTAV 驱动(计划中)
DeltaV 的 DST (Data Service Tag) 或 I/O reference 表示:
| 表示 | 含义 |
|---|---|
MODULE/PARAMETER.FIELD | 例如:MOD01/AI1.PV |
正式驱动实现之前 — 建议经由 OPC-UA 或 OPC-DA 网关 (Kepware) 接入。
15. AB EtherNet (PLC-5 / SLC-500) — AB-ETH 驱动
与 7. EIP / Logix 中 PLC-5/SLC-500 表示章节相同:
| 区域 | 表示 |
|---|---|
| Word | N7:0 |
| Float | F8:0 |
| Bit | B3:0/0 |
| Output | O:0/0 |
| Input | I:0/0 |
16. Beckhoff TwinCAT/ADS — ADS 驱动(计划中)
TwinCAT 变量名表示 (Symbol-based):
| 数据 | 表示示例 |
|---|---|
| Variable | MAIN.PumpSpeed |
| Array | MAIN.Tanks[5].Level |
| Struct | GVL.Recipe.Name |
附加选项:NetID + Port(PLC1 通常为
851)。
17. PROFINET — PROFINET 驱动(计划中)
基于 Siemens / 通用 Profinet IO 的 Slot/Subslot 表示:
| 表示 | 含义 |
|---|---|
<slot>/<subslot>/<index> | 例如:1/1/0 |
实时控制协议 — 网关计划仅支持非实时 read。
18. CANopen — CANOPEN 驱动(计划中)
CANopen 的 OD (Object Dictionary) 表示:
| 表示 | 含义 |
|---|---|
<index>:<sub> | 例如:0x6041:0 (Statusword) |
需要 CAN-bus 接口卡 (USB-CAN / PCIe-CAN)。
19. BACnet/IP — BACNET 驱动(计划中)
BACnet object 表示:
| 表示 | 含义 |
|---|---|
<object-type>:<instance>.<property> | 例如:analog-input:1.present-value |
| Object types | analog-input / analog-output / analog-value / binary-input / binary-output / binary-value / multi-state-* |
建筑自动化 / HVAC / 照明领域。
20. KNXnet/IP — KNXNET 驱动(计划中)
KNX Group Address (3-level) 表示:
| 表示 | 含义 |
|---|---|
<main>/<middle>/<sub> | 例如:1/0/5(照明通道 5) |
| DPT (Data Point Type) | DPT_Switch / DPT_Value_Temp 等 |
建筑自动化标准(以欧盟为主)。
21. Open Protocol (Atlas Copco) — OP 驱动
基于拧紧(电动螺丝刀 / 扭矩控制器)结果消息:
| 表示 | 含义 |
|---|---|
MID:<msg-id>.<param> | 例如:MID:0061.tightening_id(拧紧结果 ID) |
| Common MIDs | 0001(通信建立) / 0030(参数集) / 0061(拧紧结果) |
专用于产线拧紧 / 装配工序 — 对接的是控制器而非 PLC。
22. format 选项 — 全驱动汇总表
以下为常填入注册表单格式辅助栏的值。各驱动支持情况不同:
| format | 含义 | 支持的驱动 |
|---|---|---|
| (留空) | 16-bit signed integer(多数为 default) | 全部 |
B | 8-bit signed byte | LS / Melsec |
UB | 8-bit unsigned byte | LS / Melsec |
UI / UW / UWORD | 16-bit unsigned word | LS / Melsec / Modbus |
DW | 32-bit signed dword | LS / Melsec / S7 / Modbus / EIP / Logix |
UDW / DUW / UDWORD | 32-bit unsigned dword | LS / Melsec / Modbus |
UL | 64-bit unsigned long | LS |
REAL | 32-bit float (IEEE 754) | 全部 |
LREAL | 64-bit double | LS / S7 |
STR[N] | N 字 / N 字节字符串 | LS(字) / Melsec / S7 / Modbus |
BIN[N] | 提取字的第 N 位 | LS |
X 或 BIT | 位(Boolean 的同义词) | LS / Modbus |
选项若不完全一致,将以忽略大小写 + 去除空格方式匹配。
dw/Dw/D W均识别为DW。
23. 常见陷阱 — 全驱动通用
| 现象 | 原因 / 解决方法 |
|---|---|
| 32-bit 值变成完全不同的数字 | format 留空 → 按 16-bit 解释。请明确指定 DW 或 REAL |
| 实数为 0 或 NaN | byte order (endianness) 问题。尝试 REAL_BS (byte-swap) 或计算公式 swap32 |
| 位始终为 false | 在字区域(D)使用了位表示 — 请使用位区域(M/B/coil:)或 BIN[N] |
| 字符串乱码 | low-byte-first 与 high-byte-first 的差异。LS 会自动处理,S7 STRING 含头部 — 请准确设置 STR[N] 长度 |
Wrong device code (Melsec) | controller-type 的 Q/L 与 iQ-R 设置错误。在表单中修改后重启 OPC |
BadTypeMismatch (OPC-UA) | 注册的数据类型与服务器节点类型不一致。请与服务器端类型保持一致 |
connection refused (S7) | rack / slot 错误。请在 TIA Portal 中确认准确值 |
| 所有标签 read 均为 0 | 地址区域正确但 PLC 未输出该地址的值。请检查 PLC 程序中向该内存写值的逻辑 |
24. 了解更多
- 注册流程(开始前准备 + 分步说明):添加新 PLC 连接
- 标签注册(单条/CSV):标签注册
- 注册后的监控:连接列表 / 标签列表
- 各 PLC 详情:各类 PLC 指南
- 驱动内部工作原理:高级 → 驱动技术参考