PLC-Adresseingabe — vollständiger Leitfaden nach Protokoll
Diese Referenz fasst die im Tag-Registrierungsdialog am häufigsten verwechselten Punkte — PLC-Adresse sowie Datentyp / format — protokollweise an einer Stelle zusammen. Ausführliche Anleitungen zu den einzelnen PLCs sind auf die jeweilige Seite unter Leitfaden nach PLC-Typ verlinkt.
1. Allgemein — die 4 Felder des Registrierungsformulars
Die 4 Felder, die im Tag-Registrierungsdialog (Tag registrieren) zusammen mit der PLC-Adresse angegeben werden:
| Feld | Bedeutung | Beispiel |
|---|---|---|
| PLC-Adresse | Rohadresse, die der Treiber an die PLC sendet | D00309 (LS), D100 (Melsec), DB1.DBW0 (S7) |
| Datentyp | Typ, den Java/JS erhält | Integer / Long / Float / Double / String / Boolean |
| format (Formathilfe) | Option zur abweichenden Interpretation derselben Adresse | DW / UI / REAL / STR[10] / BIN[3] usw. |
| Formel (fomula) | Nach dem Lesen angewandter arithmetischer Ausdruck | ${VALUE}*0.1 / sqrt(${VALUE}) |
💡 format ist entscheidend: Dieselbe PLC-Adresse kann als 16-Bit / 32-Bit / Gleitkomma / Zeichenkette / Bit interpretiert werden. Bleibt format leer, wird ein 16-Bit-Signed-Integer angenommen (Default der meisten Treiber).
2. LS XGT (XGI / XBC / XBM) — Treiber LS
Speicherbereiche
| Buchstabe | Bereich | Häufig verwendet |
|---|---|---|
D | Data Register | ✅ Daten (am häufigsten) |
M | Memory (Bit) | ✅ Statusbits |
K | Keep Relay (nichtflüchtig) | ✅ Spannungsausfallsicher |
F | Flag | Systembits |
T | Timer | Timer-Istwert |
C | Counter | Zähler-Istwert |
R | File Register | (je nach Serie) |
P | I/O | Externe Ein-/Ausgänge |
Schreibweise-Beispiele
| Wert in der PLC | Datentyp | format | Adressbeispiel | Hinweis |
|---|---|---|---|---|
| 16-bit signed | Integer | (leer) | D00309 | Default |
| 16-bit unsigned | Integer | UI oder UW | D00300 | 0–65535 |
| 32-bit signed | Integer | DW | D00600 | D00600~D00601 |
| 32-bit unsigned | Long | UDW oder DUW | D00690 | 0–4_294_967_295 |
| 64-bit signed | Long | (leer + 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 | (leer) | M02704 | Bitbereich |
| Bit Nr. N eines Wortes | Boolean | BIN[N] | D00309 (BIN[3]) | Bit 3 |
| Zeichenkette mit N Wörtern (= 2N Zeichen) | String | STR[N] | D00500 (STR[10]) | low-byte-first |
| Byte | Integer | B oder UB | D00100 | 1 Byte |
Details: LS Electric
3. Mitsubishi MELSEC (Q / L / iQ-R) — Treiber MELSEC
Speicherbereiche
Die folgenden Geräte sind die einzigen, die der Treiber lesen und schreiben kann.
| Buchstabe | Bereich | Einheit | Häufig verwendet |
|---|---|---|---|
D | Data Register | Wort | ✅ am häufigsten |
M | Internal Relay | Bit | ✅ |
B | Link Relay | Bit | ✅ |
X / Y | Input / Output | Bit | I/O |
W | Link Register | Wort | |
R | File Register | Wort | |
T / C | Timer / Counter | Wort | Istwert |
L | Latch Relay | Bit | |
F | Annunciator | Bit | Meldung |
V | Edge Relay | Bit | |
S | Step Relay | Bit | |
Z | Index Register | Wort |
SD · SM · ZR können nicht gelesen werdenSystemgeräte (SD / SM) und erweiterte Dateiregister (ZR) werden von diesem Treiber nicht unterstützt.
Auch wenn sie als Tag registriert werden, schlägt das Lesen fehl. Werden Systemzustandswerte benötigt, kopieren Sie diese im PLC-Programm in den Bereich D und lesen Sie diese Adresse.
Schreibweise-Beispiele
| Daten | Typ | format | Adressbeispiel |
|---|---|---|---|
| 16-bit signed | Integer | (leer) | 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 | (leer) | M100, B0010 |
| Zeichenkette | String | STR[N] | D200 (N Wörter) |
⚠ Die Option Controller-Typ (
controller-type) befindet sich im Registrierungsformular — da sich die Gerätecodes der Q/L-Serie und der iQ-R unterscheiden. Bei falscher Einstellung:Wrong device code.
Details: Mitsubishi MELSEC
4. Siemens S7 (S7-300 / 400 / 1200 / 1500) — Treiber S7
Speicherbereiche
| Bereich | Schreibweise | Bedeutung |
|---|---|---|
| DB (Data Block) | DB<n>.DB<X>0 | am häufigsten — benutzerdefinierter Datenbaustein |
| M (Merker) | M<X>0 | Interner Speicher |
| I (Input) | I<X>0 oder E<X>0 | Eingang |
| Q (Output) | Q<X>0 oder A<X>0 | Ausgang |
| C / T | C0 / T0 | Counter / Timer |
<X> = Datenbreite:
B= Byte (8-bit)W= Word (16-bit)D= DWord (32-bit, Integer oder Float)X<bit>= Bit (z. B.M0.3)
Schreibweise-Beispiele
| Daten | Typ | format | Adressbeispiel |
|---|---|---|---|
| 16-bit signed | Integer | (leer) | DB1.DBW0 |
| 32-bit signed | Integer | DW | DB1.DBD0 |
| 32-bit float | Float | REAL | DB1.DBD4 |
| Bit | Boolean | (leer) | DB1.DBX0.0 (Bit 0 von Byte 0 in DB1) |
| Zeichenkette | String | STR[N] | DB1.DBB0 (inkl. S7-STRING-Header) |
⚠ Option
rack / slot— die Rack- / *Slot-*Nummer der PLC aus dem TIA Portal (meist 0/1 oder 0/2). Bei falschen Werten: connection refused.
Details: Siemens S7
5. Modbus TCP — Treiber MODBUS
Bereiche / Funktionscodes
| Bereich | Funktionscode | Bit/Wort | Schreibweise |
|---|---|---|---|
| Coil | FC1 / FC5 / FC15 | Bit | coil:<n> |
| Discrete Input | FC2 | Bit (read-only) | discrete-input:<n> |
| Holding Register | FC3 / FC6 / FC16 | Wort | holding-register:<n> |
| Input Register | FC4 | Wort (read-only) | input-register:<n> |
Schreibweise-Beispiele
| Daten | Typ | format | Adressbeispiel |
|---|---|---|---|
| 16-bit signed | Integer | (leer) | 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 | (je nach Treiberoption) |
| Bit | Boolean | (leer) | coil:5 |
| Eingangsbit (read-only) | Boolean | (leer) | discrete-input:0 |
Das ist herstellerabhängig (Startnummer des Modbus-Slaves). Der Treiber MODBUS des Gateway sendet die Eingabe unverändert als PDU — tragen Sie daher direkt die PDU-Adresse aus dem Slave-Handbuch ein.
Details: Modbus TCP
6. OPC-UA — Treiber OPCUA
NodeId-Schreibweise
OPC-UA identifiziert über die NodeId — Standardformat:
ns=<NamespaceIndex>;s=<StringId>
ns=<NamespaceIndex>;i=<NumericId>
ns=<NamespaceIndex>;g=<GuidId>
ns=<NamespaceIndex>;b=<ByteStringId>
Schreibweise-Beispiele
| Server | NodeId | Hinweis |
|---|---|---|
| Kepware | ns=2;s=Channel1.Device1.Tag1 | Kanal.Gerät.Tag |
| Ignition | ns=1;s=[default]Tag1/Sub | Tag-Pfad |
| PlantPulse-eigener OPC-UA-Server | ns=2;s=SITE_00001.OPC_00303.TAG_TEST_00042 | site.opc.tag |
| Numerische ID | ns=2;i=1234 | Numerische ID |
Datentypen
Bei OPC-UA hält der Server den Typ selbst — 데이터 타입 / format des Gateway dienen nur als Interpretationshinweis. Üblicherweise:
| Server-Node-Typ | Bei der Registrierung | format |
|---|---|---|
Int16 / Int32 / Int64 | Integer / Long | (leer) |
Float / Double | Float / Double | (leer) |
Boolean | Boolean | (leer) |
String | String | (leer) |
Details: OPC-UA
7. AB EtherNet/IP / Logix — Treiber EIP / LOGIX
Schreibweise (auf Basis von Logix-Tagnamen — Symbol Addressing)
ControlLogix / CompactLogix greifen direkt über den Tagnamen zu:
| Daten | Typ | format | Adressbeispiel |
|---|---|---|---|
| DINT | Integer | DW | MyTag |
| INT | Integer | (leer) | Pump.Speed |
| REAL | Float | REAL | Tank.Level |
| BOOL | Boolean | (leer) | Motor.Run |
| STRING | String | (Logix-STRING-Struktur) | Recipe.Name |
| Array | (Skalar) | (leer) | Array[5] (Index direkt) |
Schreibweise (PLC-5 / SLC-500 — Logical Addressing)
AB-ETH-Karten verwenden eine andere Form:
| Daten | Adressbeispiel |
|---|---|
| Word | N7:0 (file 7, element 0) |
| Float | F8:0 |
| Bit | B3:0/0 |
Option
backplane / slot— in welchem Slot sich die PLC befindet.1(CPU) ist üblich.
Details: AB EtherNet/IP
8. HTTP-Push — Treiber HTTP (Gegenrichtung)
Das Gateway liest nicht von der PLC — hier pusht eine externe Quelle Daten an das Gateway.
| Schreibweise | Bedeutung |
|---|---|
<area>/<key> | Freier Bezeichner — wird mit dem extern gesendeten Pfad abgeglichen |
Beispiel für den POST-Body:
{ "tag_id": "TAG_OUTDOOR_TEMP", "value": "23.4" }
format / 데이터 타입 sind lediglich Metadaten zur Ablage. Die PLC-Adresse ist ein beliebiger Schlüssel — frei benennbar, je nachdem, mit welchem Schlüssel extern gepusht wird.
Details: HTTP-Push
9. Motor Sense — Treiber MOTOR_SENSE (über OPC-UA)
Empfängt KOPENS-Motorsense-Geräte über OPC-UA. Automatische Suche je Asset.
| Art | Automatisch befüllte PLC-Adresse |
|---|---|
| HEALTH INDEX | <ASSET_ID>.health.<metric> |
| SIGNAL | <ASSET_ID>.signal.<metric> |
Eine manuelle Eingabe erfolgt in der Regel nicht — die Assets werden automatisch erkannt.
Details: Motor Sense
10. OMRON FINS — Treiber FINS
Speicherbereiche
| Buchstabe | Bereich |
|---|---|
D | DM (Data Memory) — am häufigsten |
H | Holding Relay |
W | Work Area |
A | Auxiliary |
T / C | Timer / Counter |
CIO | Core I/O |
Schreibweise-Beispiele
| Daten | Typ | format | Adressbeispiel |
|---|---|---|---|
| 16-bit signed | Integer | (leer) | D100 |
| 32-bit signed | Integer | DW | D100 |
| Float | Float | REAL | D100 |
| Bit | Boolean | (leer) | H0.05 (Bit 5 von Wort 0) |
Optionen Network/Node/Unit — Routing-Informationen im FINS-Header (
SA1/DA1usw.). Gemäß PLC-Handbuch einstellen.
11. PANASONIC MEWTOCOL — Treiber MEWTOCOL
Speicherbereiche
| Buchstabe | Bereich |
|---|---|
DT | Data Register |
R | Internal Relay |
X / Y | Input / Output |
T / C | Timer / Counter |
Schreibweise-Beispiele
| Daten | Typ | format | Adressbeispiel |
|---|---|---|---|
| 16-bit signed | Integer | (leer) | DT0 |
| 32-bit signed | Integer | DW | DT0 |
| Bit | Boolean | (leer) | R0.0 |
12. FATEK FACON — Treiber FATEK
Speicherbereiche
| Buchstabe | Bereich |
|---|---|
R | Register (Word) |
M / Y / X | Memory / Output / Input (Bit) |
D | Discrete |
Schreibweise-Beispiele
| Daten | Typ | format | Adressbeispiel |
|---|---|---|---|
| 16-bit signed | Integer | (leer) | R0 |
| Bit | Boolean | (leer) | M0, Y10 |
13. GE SRTP — Treiber GE
Speicherbereiche (GE Fanuc / Emerson PACSystems)
| Buchstabe | Bereich |
|---|---|
R | Register |
AI / AQ | Analog Input / Output |
I / Q | Discrete Input / Output |
M | Internal |
Schreibweise-Beispiele
| Daten | Typ | format | Adressbeispiel |
|---|---|---|---|
| 16-bit signed | Integer | (leer) | R1 |
| 32-bit signed | Integer | DW | R1 |
| Float | Float | REAL | R1 |
| Discrete | Boolean | (leer) | I1 |
14. EMERSON DELTAV — Treiber DELTAV (geplant)
Schreibweise über DST (Data Service Tag) oder I/O reference von DeltaV:
| Schreibweise | Bedeutung |
|---|---|
MODULE/PARAMETER.FIELD | z. B.: MOD01/AI1.PV |
Vor Fertigstellung des offiziellen Treibers — Anbindung über OPC-UA- oder OPC-DA-Gateway (Kepware) empfohlen.
15. AB EtherNet (PLC-5 / SLC-500) — Treiber AB-ETH
Identisch zum Abschnitt PLC-5/SLC-500 unter 7. EIP / Logix:
| Bereich | Schreibweise |
|---|---|
| Word | N7:0 |
| Float | F8:0 |
| Bit | B3:0/0 |
| Output | O:0/0 |
| Input | I:0/0 |
16. Beckhoff TwinCAT/ADS — Treiber ADS (geplant)
Schreibweise über TwinCAT-Variablennamen (Symbol-based):
| Daten | Schreibweise-Beispiel |
|---|---|
| Variable | MAIN.PumpSpeed |
| Array | MAIN.Tanks[5].Level |
| Struct | GVL.Recipe.Name |
Zusätzliche Optionen: NetID + Port (üblicherweise
851für PLC1).
17. PROFINET — Treiber PROFINET (geplant)
Schreibweise auf Basis von Slot/Subslot bei Siemens / allgemeinen Profinet-IO-Geräten:
| Schreibweise | Bedeutung |
|---|---|
<slot>/<subslot>/<index> | z. B.: 1/1/0 |
Echtzeit-Steuerungsprotokoll — das Gateway wird nur nicht-echtzeitfähiges Lesen unterstützen.
18. CANopen — Treiber CANOPEN (geplant)
Schreibweise über das OD (Object Dictionary) von CANopen:
| Schreibweise | Bedeutung |
|---|---|
<index>:<sub> | z. B.: 0x6041:0 (Statusword) |
Erfordert eine CAN-Bus-Schnittstellenkarte (USB-CAN / PCIe-CAN).
19. BACnet/IP — Treiber BACNET (geplant)
BACnet-Objektschreibweise:
| Schreibweise | Bedeutung |
|---|---|
<object-type>:<instance>.<property> | z. B.: analog-input:1.present-value |
| Object types | analog-input / analog-output / analog-value / binary-input / binary-output / binary-value / multi-state-* |
Domäne Gebäudeautomation / HVAC / Beleuchtung.
20. KNXnet/IP — Treiber KNXNET (geplant)
Schreibweise der KNX-Gruppenadresse (3-stufig):
| Schreibweise | Bedeutung |
|---|---|
<main>/<middle>/<sub> | z. B.: 1/0/5 (Beleuchtungskanal 5) |
| DPT (Data Point Type) | DPT_Switch / DPT_Value_Temp usw. |
Standard der Gebäudeautomation (vorwiegend EU).
21. Open Protocol (Atlas Copco) — Treiber OP
Basiert auf Ergebnismeldungen von Verschraubungen (Schrauber / Drehmomentregler):
| Schreibweise | Bedeutung |
|---|---|
MID:<msg-id>.<param> | z. B.: MID:0061.tightening_id (ID des Verschraubungsergebnisses) |
| Common MIDs | 0001 (Kommunikationsaufbau) / 0030 (Parametersatz) / 0061 (Verschraubungsergebnis) |
Speziell für Verschraubungs- und Montageprozesse in der Linie — Anbindung an einen Controller, nicht an eine PLC.
22. format-Optionen — Gesamttabelle für alle Treiber
Werte, die häufig im Feld Formathilfe des Registrierungsformulars eingetragen werden. Die Unterstützung unterscheidet sich je Treiber:
| format | Bedeutung | Unterstützende Treiber |
|---|---|---|
| (leer) | 16-bit signed integer (meist Default) | alle |
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) | alle |
LREAL | 64-bit double | LS / S7 |
STR[N] | Zeichenkette mit N Wörtern / N Bytes | LS (Wort) / Melsec / S7 / Modbus |
BIN[N] | Extraktion des N-ten Bits eines Wortes | LS |
X oder BIT | Bit (Synonym für Boolean) | LS / Modbus |
Stimmt die Option nicht exakt überein, erfolgt der Abgleich ohne Berücksichtigung der Groß-/Kleinschreibung + ohne Leerzeichen.
dw/Dw/D Wwerden alle alsDWerkannt.
23. Häufige Fallstricke — für alle Treiber
| Symptom | Ursache / Abhilfe |
|---|---|
| 32-Bit-Wert ist eine völlig andere Zahl | format leer → Interpretation als 16-Bit. DW oder REAL angeben |
| Gleitkommawert ist 0 oder NaN | Problem mit der Byte-Reihenfolge (Endianness). REAL_BS (byte-swap) oder fomula swap32 ausprobieren |
| Bit ist immer false | Bit-Schreibweise auf einem Wortbereich (D) — stattdessen Bitbereich (M/B/coil:) oder BIN[N] verwenden |
| Zeichenkette verstümmelt | Unterschied low-byte-first vs. high-byte-first. LS verarbeitet das automatisch, S7 STRING enthält einen Header — Länge STR[N] exakt angeben |
Wrong device code (Melsec) | controller-type falsch auf Q/L statt iQ-R (oder umgekehrt) gesetzt. Im Formular ändern und OPC neu starten |
BadTypeMismatch (OPC-UA) | Der registrierte Datentyp weicht vom Node-Typ des Servers ab. An den servereitigen Typ angleichen |
connection refused (S7) | Rack / Slot falsch. Korrekte Werte im TIA Portal prüfen |
| Alle Tags lesen 0 | Adressbereich ist korrekt, aber die PLC gibt diese Adresse nicht aus. Logik im PLC-Programm prüfen, die Werte in diesen Speicher schreibt |
24. Weiterführende Informationen
- Registrierungsablauf (Vorbereitung + Schritt für Schritt): Neue PLC-Verbindung hinzufügen
- Tag registrieren (einzeln/CSV): Tag registrieren
- Monitoring nach der Registrierung: Verbindungsliste / Tagliste
- Details je PLC: Leitfaden nach PLC-Typ
- Interna der Treiberfunktion: Erweitert → Technische Treiberreferenz