Treiberübersicht
Dies ist eine Liste der von PlantPulse Edge unterstützten Industrieprotokolle. Produktstand opc_type 44 Typen
(43 Treiber + 1 Alias).
Jeder Treiber ist in einem plantpulse.driver.protocol.<proto> Paket innerhalb von plantpulse-edge-driver.jar implementiert, wobei ProtocolDriverFactory.createDriver(opc_type) Instanzen basierend auf der Zeichenfolge APP_OPC.OPC_TYPE erstellt.
Implementierungsarten
- Eigene Java-Implementierung (Mehrheit) — Das Protokoll-Framing wird direkt auf Java-Sockets geschrieben. Es gibt keine externen Native- oder JNI-Abhängigkeiten. Im Juli 2026 wurden die Modbus-Familie, PROFINET, AB-ETH, BACnet, KNXnet und CANopen in Native-Code umgeschrieben, wodurch die Abhängigkeit zu Apache PLC4X vollständig entfernt wurde.
- Externe Bibliotheken — MELSEC und S7 verwenden
iot-communication, OPC UA verwendet Eclipse Milo. - Native Bridge — FOCAS startet einen C++ Collector als Kindprozess und liest Daten über TCP/JSON aus.
- 4 Stub-Treiber — CC-Link IE, DALI, IO-Link, DeltaV. Hier wird eine Konfiguration beschrieben, bei der das Gateway nicht direkt liest, sondern über ein übergeordnetes Protokoll bridged. Das Kriterium hierfür ist die Vererbung von
AbstractStubDriver.
Die Spalte Schreiben in der folgenden Tabelle ist maßgeblich. Schreibversuche an Treibern, die dies nicht unterstützen, werden abgelehnt.
Liste der unterstützten Protokolle
Universelle PLC / Allgemeine Protokolle
opc_type | Protokoll / Anlage | Implementierung | Schreiben | Standardport | Seite |
|---|---|---|---|---|---|
LS | LS XGI/XBC/XBM (FEnet) | Eigenes Java | ✅ | — | LS |
MELSEC | Mitsubishi MELSEC (MC) | iot-communication | ✅ | — | MELSEC |
S7 | Siemens S7-300/400/1200/1500 | iot-communication | ✅ | — | S7 |
MODBUS | Modbus TCP | Eigenes Java | ✅ | 502 | Modbus |
MODBUSUDP | Modbus UDP | Eigenes Java (MBAP-over-UDP) | ✅ | 502 | Modbus |
MODBUS_RTU | Modbus RTU | Eigenes Java (RTU-over-TCP) | ✅ | 502 | Modbus RTU |
OPCUA | OPC UA | Eclipse Milo 1.1.8 | ✅ | — | OPC UA |
US-PLC-Serie
opc_type | Protokoll / Anlage | Implementierung | Schreiben | Standardport | Seite |
|---|---|---|---|---|---|
GE | GE SRTP / GE Fanuc | Eigenes Java (Pure Socket) | ✅ | 18245 | GE |
EIP | EtherNet/IP · CIP (Symbolic Tag) | Eigenes Java (ENIP/CIP) | ✅ | 44818 | EtherNet/IP |
LOGIX | AB ControlLogix / CompactLogix | EIP Alias — Gleicher Treiber | ✅ | 44818 | EtherNet/IP |
AB-ETH | Allen-Bradley CSP/PCCC (SLC·PLC-5) | Eigenes Java | ❌ | 2222 | AB-ETH |
Europa / Gebäudeautomation
opc_type | Protokoll / Anlage | Implementierung | Schreiben | Standardport | Seite |
|---|---|---|---|---|---|
PROFINET | PROFINET (acyclic Read-Implicit) | Eigenes Java | ❌ | 34964 | PROFINET |
ADS | Beckhoff TwinCAT ADS | Eigenes Java | ✅ | 48898 | ADS |
BACNET | BACnet/IP (ReadProperty) | Eigenes Java | ❌ | 47808 | BACnet |
KNXNET | KNXnet/IP (tunneling) | Eigenes Java | ✅ | 3671 | KNXnet |
CANOPEN | CANopen (SDO) | Eigenes Java | ❌ | 20200 | CANopen |
MBUS | M-Bus (Zähler) | Eigenes Java | ⚠ | 10001 | M-Bus |
IEC61850 | IEC 61850 MMS (Energie) | Eigenes Java (full ISO stack) | ✅ | 102 | IEC 61850 |
DALI | DALI Beleuchtung | stub | ❌ | — | DALI |
IO_LINK | IO-Link Master | stub | ❌ | — | IO-Link |
DELTAV | Emerson DeltaV | stub | ❌ | — | DeltaV |
⚠ Das Schreiben bei M-Bus verarbeitet nur Slave-Auswahlbefehle, keine Messwerte.
Japan / Taiwan PLC-Serie
opc_type | Protokoll / Anlage | Implementierung | Schreiben | Standardport | Seite |
|---|---|---|---|---|---|
FINS | Omron FINS | Eigenes Java | ✅ | 9600 | FINS |
MEWTOCOL | Panasonic MEWTOCOL | Eigenes Java | ✅ | 9094 | MEWTOCOL |
FATEK | Fatek | Eigenes Java | ✅ | 500 | Fatek |
KEYENCE_KV | Keyence KV-7500/8000 Host Link | Eigenes Java (ASCII) | ✅ | 8501 | Verbindungstyp |
CCLINK_IE | CC-Link IE Field | stub | ❌ | — | CC-Link IE |
Das Wire-Format wurde basierend auf der Dokumentation implementiert, jedoch noch nicht mit realer Hardware verifiziert. Bitte gleichen Sie die Werte über eine Testverbindung ab, bevor Sie den Treiber im Vor-Ort-Einsatz verwenden.
Industriekommunikation / Domänenspezifisch
opc_type | Protokoll / Anlage | Implementierung | Schreiben | Standardport | Seite |
|---|---|---|---|---|---|
SECSGEM | SEMI SECS/GEM (HSMS) | Eigenes Java | ✅ | 5000 | SECS/GEM |
HART | HART-IP | Eigenes Java | ✅ | 5094 | HART |
DNP3 | DNP3 (unsolicited unterstützt) | Eigenes Java | ✅ | 20000 | DNP3 |
IEC104 | IEC 60870-5-104 Telecontrol | Eigenes Java | ❌ | 2404 | Verbindungstyp |
FOCAS | FANUC CNC (FOCAS) | Native Bridge + C++ Collector | ❌ | 8193 | FOCAS |
MTCONNECT | MTConnect CNC / Werkzeugmaschinen | Eigenes Java (HTTP/XML) | ❌ | 5000 | Verbindungstyp |
OP | Open Protocol (Schraubwerkzeuge) | Pure Java | ✅ | 4545 | Open Protocol |
NMEA | NMEA 0183 (Schiff/GPS) | Eigenes Java | ❌ | 10110 | NMEA |
IEC61162_450 | Marine Bridge NMEA over UDP Multicast | Eigenes Java | ❌ | 60004 (UDP) | Verbindungstyp |
MOTOR_SENSE | Motorsense Vibrations-/Stromsensor | HTTPS REST (separates Jar) | ❌ | — | Verbindungstyp |
Messaging / Externe Schnittstellen
opc_type | Protokoll / Anlage | Implementierung | Schreiben | Standardport | Seite |
|---|---|---|---|---|---|
HTTP | HTTP Empfang (Cache Bind) | Eigenes Java | (via Bind) | — | HTTP |
WEBSOCKET | WebSocket | Eigenes Java | ✅ | 80 / 443 | WebSocket |
MQTT_CLIENT | MQTT Client | Eclipse Paho | ✅ | 1883 / 8883 | MQTT Client |
SPARKPLUG_B | Sparkplug B | Eigenes Protobuf | ✅ | 1883 | Sparkplug B |
KAFKA | Apache Kafka | kafka-clients 4.1.2 | ✅ | 9092 | Kafka |
COAP | CoAP | Californium 3.13.0 | ✅ | 5683 / 5684 | CoAP |
ROS2 | ROS 2 (rosbridge WebSocket) | Eigenes Java | ❌ | 9090 / 9443 | ROS 2 |
SNMP | SNMP v2c (Netzwerkgeräte/UPS) | Eigenes Java (BER) | ❌ | 161 (UDP) | Verbindungstyp |
Gemeinsames OPC-Registrierungsformular
Felder, die bei der Registrierung über die Benutzeroberfläche oder POST /api/v1/opc von allen Protokollen gemeinsam genutzt werden:
| Feld | Bedeutung | Beispiel |
|---|---|---|
opc_id | Eindeutige ID innerhalb des Gateways | OPC_UA_Kepware |
opc_name | Anzeigename | 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 ausgefüllt) |
auto_collect | Automatischer Start beim Booten | true/false |
timecycle | Erfassungsintervall (ms) | 1000 |
options | Protokollspezifische Zusatzoptionen (Map) | {"username":"kopens","password":"***"} |
Die Namen der Schlüssel in options variieren je nach Protokoll. Eine detaillierte Schlüsseltabelle wird auf der jeweiligen Treiberseite bereitgestellt.
Gemeinsames Tag-Registrierungsformular
Felder für die Einzelregistrierung in tag_list[] oder POST /api/v1/opc/{opcId}/tag:
| Feld | Bedeutung | Beispiel |
|---|---|---|
tag_id | Eindeutige Tag-ID (meist <OPC_ID>_TAG_<n>) | OPC_LS_XBM_0001_TAG_00001 |
tag_name | Anzeigename | Pump1.RPM |
plc_address | Tatsächliche PLC-Adresse (Format je nach Protokoll) | D00309 (LS) / ns=2;s=Sine1 (OPCUA) |
data_type | Edge-Freitext-String (Float, Integer, Boolean, String etc.) | Integer |
format | Speicherbreite / Darstellungsformat (Optional) | DW (LS) / STR[10] |
description | Beschreibung | 펌프 회전수 |
fomula | Post-Processing-Formel (Optional, z.B. x * 0.1) | x / 10 |
Detaillierte Regeln zu plc_address und format werden auf den jeweiligen Treiberseiten behandelt.