PLC Address Input Reference
This is a reference that consolidates, by protocol, the PLC address and data type / format fields that are most often a source of confusion on the tag registration screen. Detailed guides for each PLC are linked to the respective page in the PLC Protocol Guides.
1. Common — The 4 Fields on the Registration Form
On the tag registration screen (Tag Registration), the 4 fields you enter along with the PLC address are:
| Field | Meaning | Example |
|---|---|---|
| PLC Address | The raw address the driver sends to the PLC | D00309 (LS), D100 (Melsec), DB1.DBW0 (S7) |
| Data Type | The type Java/JS will receive | Integer / Long / Float / Double / String / Boolean |
| format (format helper) | Option to interpret the same address differently | DW / UI / REAL / STR[10] / BIN[3], etc. |
| Calculation Formula | The arithmetic to apply after reading | ${VALUE}*0.1 / sqrt(${VALUE}) |
💡 format is key: The same PLC address can be interpreted as 16-bit / 32-bit / float / string / bit. If you leave format blank, it is assumed to be a 16-bit signed integer (this is the default for most drivers).
2. LS XGT (XGI / XBC / XBM) — LS Driver
Memory Area
| Letter | Area | Common Usage |
|---|---|---|
D | Data Register | ✅ Data (most common) |
M | Memory (bit) | ✅ Status bit |
K | Keep Relay (non-volatile) | ✅ Power-fail retention |
F | Flag | System bit |
T | Timer | Timer current value |
C | Counter | Counter current value |
R | File Register | (depends on series) |
P | I/O | External input/output |
Notation Examples
| PLC Value | Data Type | format | Address Example | Remarks |
|---|---|---|---|---|
| 16-bit signed | Integer | (blank) | D00309 | default |
| 16-bit unsigned | Integer | UI or UW | D00300 | 0–65535 |
| 32-bit signed | Integer | DW | D00600 | D00600~D00601 |
| 32-bit unsigned | Long | UDW or DUW | D00690 | 0–4_294_967_295 |
| 64-bit signed | Long | (blank + dt=Long) | D00700 | D00700~D00703 |
| 32-bit float | Float | REAL | D00450 | IEEE 754 |
| 64-bit double | Double | LREAL | D00500 | IEEE 754 |
| Bit (M/K/F/T/C/P) | Boolean | (blank) | M02704 | bit area |
| N-th bit of a word | Boolean | BIN[N] | D00309 (BIN[3]) | bit 3 |
| String of N words (= 2N chars) | String | STR[N] | D00500 (STR[10]) | low-byte-first |
| Byte | Integer | B or UB | D00100 | 1 byte |
Details: LS Electric
3. Mitsubishi MELSEC (Q / L / iQ-R) — MELSEC Driver
Memory Area
The devices this driver can read and write are the following:
| Letter | Area | Unit | Common Usage |
|---|---|---|---|
D | Data Register | word | ✅ Most common |
M | Internal Relay | bit | ✅ |
B | Link Relay | bit | ✅ |
X / Y | Input / Output | bit | I/O |
W | Link Register | word | |
R | File Register | word | |
T / C | Timer / Counter | word | current value |
L | Latch Relay | bit | |
F | Annunciator | bit | alarm |
V | Edge Relay | bit | |
S | Step Relay | bit | |
Z | Index Register | word |
SD · SM · ZR cannot be readSystem devices (SD / SM) and extended file registers (ZR) are not supported by this driver.
Attempting to register them as tags will result in a read failure. If you need system status values, copy them to the D area within your PLC program and read that address instead.
Notation Examples
| Data | Type | format | Address Example |
|---|---|---|---|
| 16-bit signed | Integer | (blank) | 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 |
| Bit | Boolean | (blank) | M100, B0010 |
| String | String | STR[N] | D200 (N words) |
⚠ There is a Controller Type (
controller-type) option on the registration form — the device code differs between Q/L and iQ-R series. If set incorrectly,Wrong device code.
Details: Mitsubishi MELSEC
4. Siemens S7 (S7-300 / 400 / 1200 / 1500) — S7 Driver
Memory Area
| Area | Notation | Meaning |
|---|---|---|
| DB (Data Block) | DB<n>.DB<X>0 | Most common — user-defined data block |
| M (Merker) | M<X>0 | Internal memory |
| I (Input) | I<X>0 or E<X>0 | Input |
| Q (Output) | Q<X>0 or A<X>0 | Output |
| C / T | C0 / T0 | Counter / Timer |
<X> = data width:
B= Byte (8-bit)W= Word (16-bit)D= DWord (32-bit, integer or float)X<bit>= Bit (e.g.,M0.3)
Notation Examples
| Data | Type | format | Address Example |
|---|---|---|---|
| 16-bit signed | Integer | (blank) | DB1.DBW0 |
| 32-bit signed | Integer | DW | DB1.DBD0 |
| 32-bit float | Float | REAL | DB1.DBD4 |
| Bit | Boolean | (blank) | DB1.DBX0.0 (bit 0 of byte 0 in DB1) |
| String | String | STR[N] | DB1.DBB0 (includes S7 STRING header) |
⚠
rack / slotoption — The PLC's Rack / Slot numbers from TIA Portal (usually 0/1 or 0/2). If set incorrectly, you will get connection refused.
Details: Siemens S7
5. Modbus TCP — MODBUS Driver
Area / Function Code
| Area | Function Code | Bit/Word | Notation |
|---|---|---|---|
| Coil | FC1 / FC5 / FC15 | bit | coil:<n> |
| Discrete Input | FC2 | bit (read-only) | discrete-input:<n> |
| Holding Register | FC3 / FC6 / FC16 | word | holding-register:<n> |
| Input Register | FC4 | word (read-only) | input-register:<n> |
Notation Examples
| Data | Type | format | Address Example |
|---|---|---|---|
| 16-bit signed | Integer | (blank) | 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 | (depending on driver option) |
| Bit | Boolean | (blank) | coil:5 |
| Input bit (read-only) | Boolean | (blank) | discrete-input:0 |
It varies by vendor (the starting number of the Modbus slave). The gateway's MODBUS driver sends the PDU address as-is, so enter the PDU address from the slave manual directly.
Details: Modbus TCP
6. OPC-UA — OPCUA Driver
NodeId Notation
OPC-UA is identified by NodeId — the standard format:
ns=<NamespaceIndex>;s=<StringId>
ns=<NamespaceIndex>;i=<NumericId>
ns=<NamespaceIndex>;g=<GuidId>
ns=<NamespaceIndex>;b=<ByteStringId>
Notation Examples
| Server | NodeId | Remarks |
|---|---|---|
| Kepware | ns=2;s=Channel1.Device1.Tag1 | channel.device.tag |
| Ignition | ns=1;s=[default]Tag1/Sub | tag path |
| PlantPulse's own OPC-UA server | ns=2;s=SITE_00001.OPC_00303.TAG_TEST_00042 | site.opc.tag |
| Numeric ID | ns=2;i=1234 | numeric ID |
Data Types
OPC-UA types are defined by the server itself — the gateway's 데이터 타입 / format are used only as interpretation hints. Generally:
| Server Node Type | When Registering | format |
|---|---|---|
Int16 / Int32 / Int64 | Integer / Long | (blank) |
Float / Double | Float / Double | (blank) |
Boolean | Boolean | (blank) |
String | String | (blank) |
Details: OPC-UA
7. AB EtherNet/IP / Logix — EIP / LOGIX Driver
Notation (Based on Logix Tag Names — Symbol Addressing)
ControlLogix / CompactLogix are accessed directly by tag name:
| Data | Type | format | Address Example |
|---|---|---|---|
| DINT | Integer | DW | MyTag |
| INT | Integer | (blank) | Pump.Speed |
| REAL | Float | REAL | Tank.Level |
| BOOL | Boolean | (blank) | Motor.Run |
| STRING | String | (Logix STRING structure) | Recipe.Name |
| Array | (scalar) | (blank) | Array[5] (direct index) |
Notation (PLC-5 / SLC-500 — Logical Addressing)
The AB-ETH card uses a different form:
| Data | Address Example |
|---|---|
| Word | N7:0 (file 7, element 0) |
| Float | F8:0 |
| Bit | B3:0/0 |
backplane / slotoption — Which slot the PLC is in.1(CPU) is common.
Details: AB EtherNet/IP
8. HTTP Push — HTTP Driver (Reverse)
The gateway does not read the PLC — this is a mode where external sources push data to the gateway.
| Notation | Meaning |
|---|---|
<area>/<key> | Free identifier — matched against the path that external sources send |
POST body example:
{ "tag_id": "TAG_OUTDOOR_TEMP", "value": "23.4" }
format / 데이터 타입 are just storage metadata. The PLC address is an arbitrary key — you can name it freely based on what key external sources push with.
Details: HTTP Push
9. Motor Sense — MOTOR_SENSE Driver (via OPC-UA)
Receives KOPENS Motor Sense devices via OPC-UA. Automatically discovers them on an asset basis.
| Type | PLC Address Automatically Filled In |
|---|---|
| HEALTH INDEX | <ASSET_ID>.health.<metric> |
| SIGNAL | <ASSET_ID>.signal.<metric> |
Manual input is generally not required — automatic asset discovery handles it.
Details: Motor Sense
10. OMRON FINS — FINS Driver
Memory Area
| Letter | Area |
|---|---|
D | DM (Data Memory) — most common |
H | Holding Relay |
W | Work Area |
A | Auxiliary |
T / C | Timer / Counter |
CIO | Core I/O |
Notation Examples
| Data | Type | format | Address Example |
|---|---|---|---|
| 16-bit signed | Integer | (blank) | D100 |
| 32-bit signed | Integer | DW | D100 |
| Float | Float | REAL | D100 |
| Bit | Boolean | (blank) | H0.05 (bit 5 of word 0) |
Network/Node/Unit options — routing information in the FINS header (
SA1/DA1, etc.). Configure according to your PLC manual.
11. PANASONIC MEWTOCOL — MEWTOCOL Driver
Memory Area
| Letter | Area |
|---|---|
DT | Data Register |
R | Internal Relay |
X / Y | Input / Output |
T / C | Timer / Counter |
Notation Examples
| Data | Type | format | Address Example |
|---|---|---|---|
| 16-bit signed | Integer | (blank) | DT0 |
| 32-bit signed | Integer | DW | DT0 |
| Bit | Boolean | (blank) | R0.0 |
12. FATEK FACON — FATEK Driver
Memory Area
| Letter | Area |
|---|---|
R | Register (Word) |
M / Y / X | Memory / Output / Input (Bit) |
D | Discrete |
Notation Examples
| Data | Type | format | Address Example |
|---|---|---|---|
| 16-bit signed | Integer | (blank) | R0 |
| Bit | Boolean | (blank) | M0, Y10 |
13. GE SRTP — GE Driver
Memory Area (GE Fanuc / Emerson PACSystems)
| Letter | Area |
|---|---|
R | Register |
AI / AQ | Analog Input / Output |
I / Q | Discrete Input / Output |
M | Internal |
Notation Examples
| Data | Type | format | Address Example |
|---|---|---|---|
| 16-bit signed | Integer | (blank) | R1 |
| 32-bit signed | Integer | DW | R1 |
| Float | Float | REAL | R1 |
| Discrete | Boolean | (blank) | I1 |
14. EMERSON DELTAV — DELTAV Driver (Planned)
DeltaV's DST (Data Service Tag) or I/O reference notation:
| Notation | Meaning |
|---|---|
MODULE/PARAMETER.FIELD | e.g., MOD01/AI1.PV |
Prior to a full driver implementation — we recommend using an OPC-UA or OPC-DA gateway (Kepware).
15. AB EtherNet (PLC-5 / SLC-500) — AB-ETH Driver
Use the PLC-5/SLC-500 notation section from 7. EIP / Logix as is:
| Area | Notation |
|---|---|
| Word | N7:0 |
| Float | F8:0 |
| Bit | B3:0/0 |
| Output | O:0/0 |
| Input | I:0/0 |
16. Beckhoff TwinCAT/ADS — ADS Driver (Planned)
TwinCAT variable name notation (Symbol-based):
| Data | Notation Example |
|---|---|
| Variable | MAIN.PumpSpeed |
| Array | MAIN.Tanks[5].Level |
| Struct | GVL.Recipe.Name |
Additional options: NetID + Port (usually
851for PLC1).
17. PROFINET — PROFINET Driver (Planned)
Slot/Subslot-based notation for Siemens / general Profinet IO:
| Notation | Meaning |
|---|---|
<slot>/<subslot>/<index> | e.g., 1/1/0 |
Real-time control protocol — the gateway is planned to support only non-real-time reads.
18. CANopen — CANOPEN Driver (Planned)
CANopen's OD (Object Dictionary) notation:
| Notation | Meaning |
|---|---|
<index>:<sub> | e.g., 0x6041:0 (Statusword) |
Requires a CAN-bus interface card (USB-CAN / PCIe-CAN).
19. BACnet/IP — BACNET Driver (Planned)
BACnet object notation:
| Notation | Meaning |
|---|---|
<object-type>:<instance>.<property> | e.g., analog-input:1.present-value |
| Object types | analog-input / analog-output / analog-value / binary-input / binary-output / binary-value / multi-state-* |
Building automation / HVAC / lighting domain.
20. KNXnet/IP — KNXNET Driver (Planned)
KNX Group Address (3-level) notation:
| Notation | Meaning |
|---|---|
<main>/<middle>/<sub> | e.g., 1/0/5 (lighting channel 5) |
| DPT (Data Point Type) | DPT_Switch / DPT_Value_Temp, etc. |
Building automation standard (mainly EU).
21. Open Protocol (Atlas Copco) — OP Driver
Based on tightening (screwdriver / torque controller) result messages:
| Notation | Meaning |
|---|---|
MID:<msg-id>.<param> | e.g., MID:0061.tightening_id (tightening result ID) |
| Common MIDs | 0001(union communication) / 0030(parameter set) / 0061(tightening result) |
Specialized for line tightening / assembly processes — integrates with a controller, not a PLC.
22. format Options — Integrated Table for All Drivers
The values commonly entered in the format helper field on the registration form. Support varies by driver:
| format | Meaning | Supported Drivers |
|---|---|---|
| (blank) | 16-bit signed integer (default for most) | All |
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) | All |
LREAL | 64-bit double | LS / S7 |
STR[N] | N-word / N-byte string | LS (word) / Melsec / S7 / Modbus |
BIN[N] | Extract N-th bit of a word | LS |
X or BIT | Bit (Boolean synonym) | LS / Modbus |
If the option doesn't match exactly, matching is done case-insensitively and after removing spaces.
dw/Dw/D Ware all recognized asDW.
23. Common Pitfalls — Applicable to All Drivers
| Symptom | Cause / Solution |
|---|---|
| 32-bit value is a completely different number | format blank → interpreted as 16-bit. Specify DW or REAL |
| Float is 0 or NaN | byte order (endianness) issue. Try REAL_BS (byte-swap) or formula swap32 |
| Bit is always false | bit notation in a word area (D) — use a bit area (M/B/coil:) or BIN[N] |
| String characters are garbled | low-byte-first vs high-byte-first difference. LS handles it automatically, S7 STRING includes a header — specify STR[N] length accurately |
Wrong device code (Melsec) | controller-type is set incorrectly for Q/L vs iQ-R. Change it in the form and restart OPC |
BadTypeMismatch (OPC-UA) | The registered data type doesn't match the server node type. Match it to the server-side type |
connection refused (S7) | Incorrect rack / slot. Confirm the exact values in TIA Portal |
| All tags read 0 | The address area is correct, but the PLC is not exporting that address. Check the PLC program logic that writes a value to that memory |
24. Further Reading
- Registration procedure (preparation + step-by-step): Adding a New PLC Connection
- Tag registration (single/CSV): Tag Registration
- Post-registration monitoring: Connection List / Tag List
- Details for each PLC: PLC Protocol Guides
- Driver internals: Advanced → Driver Technical Reference