Treiber-Übersicht
Übersicht der von PlantPulse Edge unterstützten Industrieprotokolle.
Jeder Treiber ist im Paket plantpulse.driver.protocol.<proto> innerhalb von plantpulse-edge-driver.jar
implementiert; ProtocolDriverFactory.createDriver(opc_type) erzeugt die Instanz anhand des
APP_OPC.OPC_TYPE-Strings.
Die Implementierungen lassen sich grob in zwei Zweige einteilen:
- Eigene Java-Implementierung (Mehrzahl): LS, EIP, ADS, OP, FINS, MEWTOCOL, FATEK, NMEA, MBUS, HART, DNP3, IEC61850, SECSGEM sowie zusätzlich Modbus-Familie (TCP/UDP/RTU), PROFINET, AB-ETH, BACnet, KNXnet, CANopen, die im Juli 2026 nativ neu geschrieben wurden (die alte Delegation an Apache PLC4j wurde vollständig entfernt — die PLC4X-Abhängigkeit selbst wurde gelöscht). Das Protokoll-Framing ist ohne externe native/JNI-Abhängigkeiten direkt auf reinen Java-Sockets umgesetzt.
- Stub mit HW-Master-Abhängigkeit (nur Leitfaden): DALI, IO-Link, DeltaV. Dokumentiert wird die empfohlene Konfiguration, bei der statt eines Lesevorgangs im Gateway über ein übergeordnetes Protokoll (OPC UA / Modbus / PROFINET / DeltaV OPC UA) gebrückt wird. (ROS 2 ist mit der realen rosbridge-WebSocket-Implementierung aus dieser Kategorie ausgeschieden — siehe Verbindungstyp.)
Darüber hinaus bilden GE/MELSEC/S7 auf Basis der unveränderten iot-communication (xingshuangs)-Bibliothek, OPC UA auf Basis von Eclipse Milo sowie ein eigener HTTP-Client den Nebenstrang.
Übersicht der unterstützten Protokolle
Universelle PLC / allgemeine Protokolle
opc_type | Protokoll | Bibliothek | Status | Seite |
|---|---|---|---|---|
LS | LS XGI/XBC/XBM (FEnet) | Eigenes Java | stabil | LS |
GE | GE SRTP / GE Fanuc | iot-communication (xingshuangs) | stabil | (in Vorbereitung) |
MELSEC | Mitsubishi MELSEC (MC) | iot-communication (xingshuangs) | stabil | MELSEC |
S7 | Siemens S7-300/400/1200/1500 | iot-communication (xingshuangs) | stabil | S7 |
MODBUS | Modbus TCP | Eigenes Java | stabil (read+write) | Modbus |
MODBUSUDP | Modbus UDP | Eigenes Java (MBAP-over-UDP) | stabil (read+write) | Modbus |
MODBUS_RTU | Modbus RTU | Eigenes Java (RTU-over-TCP) | stabil (read+write) | Modbus RTU |
OPCUA | OPC Unified Architecture | Eclipse Milo | stabil | OPC-UA |
US-amerikanische PLC-Familie
opc_type | Protokoll | Bibliothek | Status | Seite |
|---|---|---|---|---|
EIP | EtherNet/IP CIP (Allen-Bradley Logix) | Eigenes Java (angelehnt an das etherip-Design, reines Java) | stabil (read+write) | EIP |
AB-ETH | Allen-Bradley PLC-5/SLC-500 | Eigenes Java (CSP/PCCC) | stabil (read-only, TCP/2222) | AB-ETH |
Europa / Gebäudeautomation
opc_type | Protokoll | Bibliothek | Status | Seite |
|---|---|---|---|---|
ADS | Beckhoff TwinCAT/ADS | Eigenes Java (AMS/ADS) | stabil (read+write) | ADS |
PROFINET | PROFINET (azyklischer Record) | Eigenes Java (DCE/RPC Read-Implicit) | stabil (read-only, UDP/34964 — zyklisches RT nicht unterstützt) | PROFINET |
BACNET | BACnet/IP (HVAC/Gebäude) | Eigenes Java (ReadProperty) | stabil (read-only, UDP/47808) | BACnet |
KNXNET | KNXnet/IP (Beleuchtung/Beschattung) | Eigenes Java (UDP-Tunneling) | stabil (read+write, UDP/3671) | KNXnet |
Japanische PLC-Familie
opc_type | Protokoll | Bibliothek | Status | Seite |
|---|---|---|---|---|
FINS | OMRON FINS over TCP | Eigenes Java | stabil (read der 1. Stufe) | (in Vorbereitung) |
MEWTOCOL | Panasonic MEWTOCOL | Eigenes Java | stabil (read der 1. Stufe) | (in Vorbereitung) |
FATEK | FATEK FBs | Eigenes Java | stabil (read der 1. Stufe) | (in Vorbereitung) |
Industriekommunikation / domänenspezifisch
opc_type | Protokoll | Bibliothek | Status | Seite |
|---|---|---|---|---|
OP | Atlas Copco Open Protocol (Verschraubungsergebnisse) | Eigenes Java (OpenProtocolJavaDriver) | stabil — Ablösung des Node.js-Runners abgeschlossen | (in Vorbereitung) |
NMEA | NMEA 0183 (Marine/Schiff) | Eigenes Java | stabil (read-only, Sentence-Caching) | (in Vorbereitung) |
MBUS | M-Bus (EN 13757, Zähler) | Eigenes Java | stabil (read der 1. Stufe) | (in Vorbereitung) |
HART | HART-IP (HCF, 4-20 mA + digital) | Eigenes Java | stabil (read der 1. Stufe, cmd 0/1/3/13) | (in Vorbereitung) |
DNP3 | DNP3 (IEEE 1815, Energieversorger) | Eigenes Java | stabil (read der 1. Stufe, G1/G30) | (in Vorbereitung) |
IEC61850 | IEC 61850 MMS (Umspannwerk) | Eigenes Java (vollständiger ISO-Stack) | stabil (read+write + BRCB/URCB-Reports) | IEC 61850 |
SECSGEM | SECS/GEM HSMS (Halbleiter) | Eigenes Java | 1. Stufe (HSMS-Handshake — SECS-II-Body in späterer Phase) | (in Vorbereitung) |
CANOPEN | CANopen (Maschinenbau) | Eigenes Java (SDO expedited, CAN-over-TCP) | stabil (read-only, TCP/20200) | CANopen |
DALI | DALI (Beleuchtung, Gebäude) | (HW-Master-abhängig — Stub) | nur Leitfaden (OPC UA / Modbus-Bridge empfohlen) | DALI |
IO_LINK | IO-Link (Sensor-Master) | (HW-Master-abhängig — Stub) | nur Leitfaden (PROFINET/EtherNet-IP-Bridge) | IO-Link |
Sonstige / externe Schnittstellen
opc_type | Protokoll | Bibliothek | Status | Seite |
|---|---|---|---|---|
HTTP | HTTP (externer Push oder Polling) | eigen | stabil, write unterstützt | HTTP |
MOTOR_SENSE | KOPENS Motor Sense | eigen (separates jar, per Reflection geladen) | stabil | HTTP / Motor Sense |
ROS2 | ROS 2 (Roboter/AGV) | rosbridge_suite (JSON over WebSocket) | read per Topic-Subscription (reale Implementierung) | ROS 2 |
DELTAV | Emerson DeltaV (DCS) | (proprietär — Stub) | nur Leitfaden (Weg über DeltaV OPC UA zwingend) | DeltaV |
Kategorienübersicht — Universelle PLC 8 / USA 2 / Europa & Gebäude 4 / Japan 3 / Industriekommunikation & Domäne 10 / Sonstige 4 = 29
opc_type. Die mit "(in Vorbereitung)" gekennzeichneten Seiten werden später als eigene Treiberdokumente ausgegliedert; derzeit werden die Regeln zuplc_address/formatdurch die Entwicklernotizen und das Javadoc des Paketsprotocol/<proto>/im Quellcode ersetzt.
Gemeinsames OPC-Registrierungsformular
Felder, die bei der Registrierung über die Oberfläche oder per POST /api/v1/opc von allen Protokollen gemeinsam genutzt werden:
| Feld | Bedeutung | Beispiel |
|---|---|---|
opc_id | eindeutige ID innerhalb des Gateway | OPC_UA_Kepware |
opc_name | Anzeigename in der Oberfläche | Kepware OPC-UA |
opc_type | Protokolltyp (siehe Tabelle oben) | OPCUA |
opc_agent_ip | Ziel-Host-IP | 192.168.0.40 |
opc_agent_port | Zielport | 49320 |
site_id | Site-ID | SITE_00001 (automatisch befüllt) |
auto_collect | automatischer Start beim Booten | true/false |
timecycle | Erfassungsintervall (ms) | 1000 |
options | protokollspezifische Zusatzoptionen (Map) | {"username":"kopens","password":"***"} |
Die Schlüsselnamen von options unterscheiden sich je Protokoll. Auf den jeweiligen Treiberseiten finden Sie detaillierte Schlüsseltabellen.
Gemeinsames Tag-Registrierungsformular
Felder für die Einzelregistrierung über tag_list[] oder POST /api/v1/opc/{opcId}/tag:
| Feld | Bedeutung | Beispiel |
|---|---|---|
tag_id | eindeutige Tag-ID (üblicherweise <OPC_ID>_TAG_<n>) | OPC_LS_XBM_0001_TAG_00001 |
tag_name | Anzeigename | Pump1.RPM |
plc_address | tatsächliche PLC-Adresse (protokollspezifisches Format) | D00309 (LS) / ns=2;s=Sine1 (OPCUA) |
data_type | freier Edge-String (Float, Integer, Boolean, String usw.) | Integer |
format | Speicherbreite / Darstellungsformat (optional) | DW (LS) / STR[10] |
description | Beschreibung | 펌프 회전수 |
fomula | Nachverarbeitungsformel (optional, z. B. x * 0.1) | x / 10 |
Die Details zu plc_address und den format-Regeln werden auf den jeweiligen Treiberseiten behandelt.