CommunicationPartners
Einleitung
CommunicationPartners ist ein globaler Konstanten-Datensatz, der im Kontext der ISOBUS PGN-Kommunikation (Parameter Group Number) verwendet wird. Er dient dazu, einen vordefinierten Kommunikationspartner, in diesem Fall die globale Adresse, als konstante Konfiguration für andere Funktionsblöcke bereitzustellen. Dies vereinfacht die Konfiguration von ISOBUS-Netzwerkkomponenten, indem häufig benötigte Adressen zentral und wiederverwendbar definiert werden.
Schnittstellenstruktur
Da es sich um einen globalen Konstanten-Datensatz handelt, besitzt CommunicationPartners keine ereignisgesteuerten oder datenflussbasierten Schnittstellen im herkömmlichen Sinne eines Funktionsblocks. Stattdessen stellt er eine benannte, konstante Variable für die gesamte Applikation bereit.
Daten-Eingänge
Keine.
Daten-Ausgänge
Keine.
Ereignis-Eingänge
Keine.
Ereignis-Ausgänge
Keine.
Adapter
Keine.
Funktionsweise
Der Datensatz CommunicationPartners deklariert eine globale Konstante namens GLOBAL vom Datentyp isobus::pgn::CF_INFO_T. Diese Struktur wird mit einem Initialwert belegt, der das Feld s16Handle auf den vordefinierten Wert GLOBAL_A aus der importierten Konstante isobus::pgn::ADDRESS::GLOBAL_A setzt.
Bei der Kompilierung und Ausführung der Applikation wird diese Konstante im Speicher abgelegt und kann von jedem Funktionsblock innerhalb des Projekts referenziert werden, der eine ISOBUS-Adresse vom Typ CF_INFO_T benötigt. Die Verwendung dieser Konstante stellt sicher, dass die globale Adresse konsistent und ohne Tippfehler im gesamten Code verwendet wird.
Technische Besonderheiten
Datentyp: Die Konstante ist vom Typ
isobus::pgn::CF_INFO_T. Dies ist vermutlich eine strukturierte (STRUCT) oder Aufzählungstyp (ENUM), die speziell für die ISOBUS-Kommunikationskonfiguration definiert ist.Initialisierung: Die Initialisierung erfolgt direkt in der Deklaration mittels Strukturinitialisierung
(s16Handle := GLOBAL_A).Import: Der Datensatz importiert eine externe Konstante (
GLOBAL_A) aus dem Paketisobus::pgn::ADDRESS. Dies zeigt eine modulare Architektur, bei der Adressdefinitionen an einer zentralen Stelle gepflegt werden.Kompilierung: Das
CompilerInfo-Tag weist darauf hin, dass dieses Element Teil des Paketsisobus::pgnist und für die Codegenerierung relevant ist.
Zustandsübersicht
Da es sich um eine statische, konstante Definition handelt, gibt es keine Zustandsmaschine oder veränderlichen Zustände.
Anwendungsszenarien
ISOBUS-Netzwerkkonfiguration: Wird verwendet, wenn ein Funktionsblock eine Nachricht an alle Teilnehmer im ISOBUS-Netzwerk (Broadcast) senden soll. Die Konstante
GLOBALrepräsentiert diese Broadcast-Adresse.Vereinfachung der Parametrierung: In komplexen Applikationen mit vielen kommunizierenden Blöcken ersetzt die Verwendung von
CommunicationPartners.GLOBALdie wiederholte, hartkodierte Eingabe der globalen Adresse und erhöht so die Wartbarkeit.Referenz für andere Konstanten: Kann als Basis für die Definition weiterer, spezifischerer Kommunikationspartner-Konstanten dienen (z.B.
IMPLEMENT,TOOL).
⚖️ Vergleich mit ähnlichen Bausteinen
Direkte Wertzuweisung: Anstatt
CommunicationPartners.GLOBALzu verwenden, könnte ein Entwickler den WertGLOBAL_Aauch direkt in jedem Daten-Eingang eines Funktionsblocks eintragen. Die Verwendung der Konstanten ist jedoch sauberer, typsicherer und änderungsfreundlicher.Andere Adresskonstanten: Innerhalb des gleichen Pakets (
isobus::pgn::ADDRESS) existieren vermutlich ähnliche Konstanten für andere Adressen (z.B.NULL_A,TOOL_A).CommunicationPartnerskapselt eine spezifische Auswahl oder Kombination dieser Adressen in einem für die Applikation sinnvollen Kontext.Parameter-FBs vs. Globale Konstanten: Ein alternativer Ansatz wäre ein Funktionsblock, der seine Zieladresse als konfigurierbaren Parameter erhält. Globale Konstanten sind hingegen einfacher und direkter, wenn der Wert für die gesamte Laufzeit der Applikation unveränderlich ist.
Fazit
Der globale Konstanten-Datensatz CommunicationPartners ist ein einfaches, aber nützliches Hilfskonstrukt für die Entwicklung von ISOBUS-fähigen Steuerungen in 4diac. Er fördert den Prinzipien des „Don’t Repeat Yourself“ (DRY) und der zentralen Konfigurationsverwaltung, indem er die häufig benötigte globale ISOBUS-Adresse an einer einzigen, gut sichtbaren Stelle definiert. Seine Verwendung reduziert potenzielle Fehlerquellen und erleichtert zukünftige Anpassungen der Netzwerkkonfiguration.