Zum Hauptinhalt springen

TRDP Modul "trdp"

Beschreibung

Das trdp Modul empfängt Telegramme des Train Real-time Data Protocol (TRDP) gemäß IEC 61375-2-3 über eine Netzwerkschnittstelle. Es verarbeitet ausschließlich Nachrichten vom Typ Process Data (PD) und stellt deren Nutzdaten über den Fast Message Dispatcher (FMD) dem fmproducer Modul zur weiteren Signalextraktion bereit.

Die Paketerfassung erfolgt direkt auf Schicht-2-Ebene mittels PcapPlusPlus, sodass TRDP-Multicast-Gruppen auf beliebigen Netzwerkinterfaces abgehört werden können. Aus dem TRDP-Header wird die ComID extrahiert und als messageKey an den Dispatcher übergeben. Der fmproducer kann darüber gezielt Nachrichten bestimmter ComIDs abonnieren und einzelne Signale aus dem Nutzdatenbereich extrahieren.

Der Standard-UDP-Port für TRDP Process Data (PD) ist 17224 (gemäß IEC 61375-2-3).

hinweis

Die Bit-Offsets im fmproducer sind relativ zum Beginn der Nutzdaten (nach dem 40-Byte-TRDP-Header) anzugeben, nicht zum Beginn des gesamten Telegramms.

hinweis

Das Modul benötigt erhöhte Systemberechtigungen für den Netzwerkzugriff (cap_net_admin).

Verwendete Schnittstellen & Protokolle

  • Train Real-time Data Protocol (TRDP), IEC 61375-2-3 — Process Data (PD)
  • Fast Message Dispatching

JSON-Konfiguration

Im folgenden Abschnitt wird die JSON-Konfiguration des Moduls beschrieben.

Beispielkonfiguration (minimal)

{
"module": "TRDP",
"factory": "trdp",
"config": {
"networkInterface": "eth0",
"trafficFilter": [
{ "port": 17224, "groupAddress": "239.255.0.1" }
]
}
}

Beispielkonfiguration (mit fmproducer, mehrere Multicast-Gruppen)

Das trdp Modul fungiert als Datenquelle für den fmproducer. Im fmd-Parameter des fmproducer wird der Name der TRDP-Modulinstanz (hier: "TRDP") eingetragen. Als messageKey dient jeweils die ComID aus dem TRDP-Header.

{
"plugins": ["trdp", "fmproducer"],
"modules": [
{
"module": "TRDP",
"factory": "trdp",
"config": {
"networkInterface": "eth0",
"trafficFilter": [
{ "port": 17224, "groupAddress": "192.168.0.6" },
{ "port": 17224, "groupAddress": "192.168.0.5" }
]
}
},
{
"module": "fmproducer_trdp",
"factory": "fmproducer",
"config": {
"fmd": "TRDP",
"byteOrder": "BigEndian",
"channels": [
{
"name": "trdp.speed",
"messageKey": 45056,
"bitOffset": 144,
"bitLength": 16,
"imageType": "unsigned",
"scale": 1.0,
"offset": 0.0,
"physicalUnit": "km/h"
},
{
"name": "trdp.speed_scaled",
"messageKey": 45056,
"bitOffset": 144,
"bitLength": 16,
"imageType": "unsigned",
"scale": 0.1,
"offset": 2.2,
"physicalUnit": "km/h"
}
]
}
}
]
}

Globale Modulparameter

ParameternameErforderlichDatentypWertebereichDefaultBeschreibung
networkInterfaceNeinSTRING"eth0"Name des Netzwerkinterfaces für die Paketerfassung
pollingIntervalMsNeinINT100 – 20001000Timer-Intervall in Millisekunden
trafficFilterNein1ARRAYListe von Port/Multicast-Adress-Paaren (empfohlen)
portNein1INT0 – 65535Veraltet — UDP-Port; bitte trafficFilter verwenden
groupAddressNein1STRINGVeraltet — IPv4-Multicast-Adresse; bitte trafficFilter verwenden

Konfiguration eines trafficFilter-Eintrags

ParameternameErforderlichDatentypBeschreibung
portJAINTUDP-Zielport des TRDP-Multicast-Stroms (Standard gemäß IEC 61375-2-3: 17224)
groupAddressJASTRINGIPv4-Multicast-Adresse des TRDP-Stroms

Hinweise zur fmproducer-Konfiguration

TRDP-Telegramme werden immer im Big-Endian-Format übertragen. Im zugehörigen fmproducer sollte daher "byteOrder": "BigEndian" global gesetzt werden.

Die ComID aus dem TRDP-Header dient als messageKey im fmproducer. Die Bit-Offsets (bitOffset) beziehen sich auf den Beginn des Nutzdatenbereichs (nach dem 40-Byte-TRDP-Header).

Weiterführende Informationen zur Kanalextraktion (imageType, bitOffset, bitLength, addressSpec usw.) sind in der fmproducer-Dokumentation beschrieben.

Modul-Informationen

InformationWert
AutorenoptiMEAS GmbH
seit smartCORE2.11
ModultypProducer (Dispatcher)
Abhängigkeitenfmproducer

Footnotes

  1. Werden trafficFilter, port und groupAddress alle weggelassen, erfasst das Modul den gesamten Netzwerkverkehr auf dem Interface und leitet alle Pakete an den Parser weiter. Dies erhöht den Verarbeitungsaufwand erheblich und sollte nur zu Diagnosezwecken verwendet werden. Für den produktiven Betrieb wird die Angabe mindestens eines trafficFilter-Eintrags empfohlen. 2 3