Tag Registration (Specifying Which Values to Read)
A [Tag] is a name assigned to a single memory location in a PLC. Address notation differs by PLC, so refer to the page for your PLC type as well.
- Mitsubishi: formats such as
D100,M50 - Siemens: formats such as
%DB1.DBW0 - LS: formats such as
D00309 - OPC-UA: formats such as
ns=2;s=Channel1.Device1.Tag1
Detailed notation is in the [PLC Address] section of each PLC page → Guide by PLC Type
Input Fields
Enter the following information on each tag row.
| Field | What to enter |
|---|---|
| Tag Name | The name shown on screen. Korean is allowed (e.g., 펌프1 회전수) |
| PLC Address | The address notation given in the PLC manual (e.g., D100) |
| Data Type | One of Float, Integer, Boolean, String, Long, Double |
Type Modifier (format) | DW for 32-bit, REAL for floating point, etc. (optional) |
| Formula | Post-processing expression such as unit conversion (optional). For details, see Applying Formulas |
| Description | A memo. Displayed alongside on screen |
Data Type Guide
| Data Type | Width / Sign | When to use | Example |
|---|---|---|---|
Boolean | 1 bit | On/off, ON/OFF | Pump running / alarm ON |
Integer | 16-bit signed | Integers (including negatives) — most common | Counters, RPM |
Long | 64-bit signed | Large integers (exceeding 32-bit) | Cumulative production |
Float | 32-bit float | Values with decimals | Temperature, pressure, speed |
Double | 64-bit float | High-precision decimals | Precision measurement data |
String | Variable | Strings | Batch name, recipe name |
Precision types that state width and sign explicitly in the name (same meaning as Kepware):
| Data Type | Width / Sign | When to use |
|---|---|---|
Short | 16-bit signed | Same as Integer (explicit name) |
Word | 16-bit unsigned | 0–65535 counters (no negatives) |
DInt | 32-bit signed | 32-bit integers (replaces the old Integer+DW combination) |
DWord | 32-bit unsigned | Cumulative counters exceeding 2.1 billion (2^31) — values that failed when collected as Integer |
QWord | 64-bit unsigned | Large unsigned counters |
Byte | 8-bit unsigned | Status bytes |
- S7
Integer: Corrected from being incorrectly read as unsigned (u16) to the canonical signed (s16) — resolves the issue where negative values appeared as 65531. If unsigned is required, useWord. - S7 / MELSEC
Long: Unified from 32-bit reads to the canonical 64-bit. Change existing tags that read 32-bit values viaLongtoDInt(signed) orDWord(unsigned).
Array Tags (Base[N])
Registering as element type[count], e.g. DInt[10], collects a contiguous area as a single tag and stores it as a JSON array string ("[1,2,3]").
Supported drivers (expanded in 2026.07): EIP + MELSEC / S7 / Modbus / LS. Only numeric element types are actually collected
(String arrays cannot be registered; Boolean/Byte arrays are unsupported by the drivers — their values will be empty).
Per-driver limits: Modbus 125 words total · LS 64 words total · MELSEC by series (Q/L·iQ-R 960 / QnA 480 / A 32 words) ·
S7 negotiated PDU − 19 bytes — exceeding these leaves values empty, so reduce N or split the tag. Array tags are read-only (write is not supported).
Type Modifier (format) Guide
The same PLC address yields different values depending on how it is interpreted. Differences include reading two 16-bit memory locations together as 32-bit, or four locations as a 64-bit float.
| The value you have | 데이터 형식 | 형식 보조 |
|---|---|---|
| 16-bit integer (most common) | Integer | (leave empty) |
| 16-bit unsigned integer | Integer | UI |
| 32-bit integer (two memory locations) | Integer | DW |
| 32-bit float (most common float type) | Float | REAL |
| 64-bit float (precision) | Double | LREAL |
| A single bit (on/off) | Boolean | (leave empty) |
| A specific bit within a word | Boolean | BIN[3] (bit 3) |
| String of N characters | String | STR[N] (e.g., STR[10]) |
If a value is 32-bit or 64-bit but the type modifier is left empty, it is misread as 16-bit and the value comes out abnormally small or large. In that case, fill the format field with a value such as DW, REAL, or LREAL.
Advanced Tag Settings (Kepware Reference)
The following optional settings can be saved with a tag (if all are unspecified, behavior is unchanged).
They are currently specified via backup/restore JSON (/connect/restore) or REST, and the values are stored together with the tag row.
| Setting | Value | Meaning |
|---|---|---|
byte_order | AB_CD BA_DC CD_AB DC_BA | Byte/word order for 32/64-bit (unspecified = protocol default) |
scaling_type | linear sqrt | Raw value → engineering unit conversion |
raw_low/raw_high | Number | Scaling input (raw) range |
scaled_low/scaled_high | Number | Scaling output (engineering) range |
clamp | true/false | Clamp output to the scaled range |
negate | true/false | Invert sign |
units | String | Unit label (e.g., degC) |
client_access | R / RW | If R, the write API rejects requests (read-only) |
deadband | Number | Skip publishing if the change from the previous value is below this amount |
scan_divisor | Integer | Read only once every n cycles (multiple of the collection interval) |
Example — linearly convert a 4–20 mA raw range of 0..4095 to 0..100% and suppress minor fluctuations:
{"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 }]}
This can be used together with formulas (fomula) — the formula is applied on top of the scaling result.
The same settings can also be specified in CSV bulk registration (/ui/connect/csv) — optional columns after the base 9 columns:
RAW_TYPE, BYTE_ORDER, SCALING_TYPE, RAW_LOW, RAW_HIGH, SCALED_LOW, SCALED_HIGH, CLAMP, NEGATE, UNITS, CLIENT_ACCESS, DEADBAND, SCAN_DIVISOR, TAG_GROUP.
Existing 9-column CSV files continue to work as-is. JSON backup/restore always includes these settings (unspecified items are omitted from the file).
How to Register
Method 1 — Add along with the PLC registration form
The [Add Connection] or [Edit] screen contains a tag entry table. Click the [+ Add Tag] button to add rows, fill in each row, then click [Save].
Method 2 — Add tags only to an already registered PLC
- [Connection] menu → click the PLC on the left
- Click the [Add Tag] button above the [Tag List] on the right
- Add them one at a time. Values begin arriving on the next collection cycle immediately after adding.
Method 3 — CSV bulk upload
If you have dozens of tags or more, [CSV Bulk Upload] at the top right of [Connection] is faster. The CSV template can be downloaded from the upload screen.
Verifying Registration
Click a PLC and the registered tags appear in the [Tag List] on the right.
| Column | Meaning |
|---|---|
| Tag Name / Address / Type | Exactly as registered |
| Current Value | The most recently collected value (auto-refreshed every 5 seconds) |
| Collection Time | The time that value arrived |
| Status | 정상 / 오류 |
If an error appears, the most likely causes are a typo in the PLC address notation or a data type mismatch. See Troubleshooting — Values Look Wrong.
Editing / Deleting Tags
- Click a row in the tag list to open the edit form.
- Use the [Delete] button at the end of a row to delete rows one at a time.
Changes take effect on the next collection cycle immediately after editing.
Frequently Asked Questions
Q. How do I find out the PLC address?
- The PLC programmer or the equipment manufacturer's manual often contains a "data mapping table."
- You can check the addresses in use from the "Watch table / monitor screen" of the PLC programming tool (GX Works, TIA Portal, XG5000, etc.).
- For OPC-UA, the most accurate approach is to click and copy the address using a free client such as UA Expert.
Q. How should I name tag IDs?
The gateway assigns them automatically in the <connection-id>_TAG_<number> format. You can specify them manually, but use only letters, digits, and underscores.
Q. Can I register the same address as two tags?
Yes. This is commonly used when you want to apply different formulas to the same raw value and send it in two forms with different units (e.g., temperature raw + temperature_F Fahrenheit conversion).
Q. How many tags can I register on one PLC?
Several hundred pose no problem. However, all of them must be readable within the collection interval, so consider the response time the PLC can sustain. If a single PLC has more than 1000 tags, it is advisable to monitor PLC load and network latency as well.