NmGetCfInfo
Einleitung
Der Funktionsblock NmGetCfInfo dient innerhalb eines ISOBUS-Netzwerks dazu, Informationen über verbundene Kommunikationspartner (Connected CFs) abzurufen. Er ermöglicht es, sowohl interne als auch externe Teilnehmer im Netzwerk zu identifizieren und deren Details zu erfassen. Der Baustein ist Teil der ISOBUS-PGN-Kommunikation und wird typischerweise für Netzwerkmanagement-Aufgaben eingesetzt.
Schnittstellenstruktur
Ereignis-Eingänge
INIT (Typ: EInit): Initialisiert den Dienst. Bei Auslösung werden die konfigurierten Daten-Eingänge übernommen und der Initialisierungsprozess gestartet.
RSP (Typ: Event): Bestätigt den Empfang einer Indikation (
IND). Dieses Ereignis signalisiert dem Baustein, dass eine zuvor gesendete Indikation verarbeitet wurde.
Ereignis-Ausgänge
INITO (Typ: EInit): Bestätigt den erfolgreichen Abschluss der Initialisierung.
IND (Typ: Event): Wird ausgelöst, um eine empfangene Netzwerkindikation (z.B. gefundene Kommunikationspartner) an die Anwendung weiterzugeben.
Daten-Eingänge
u8CanIdx (Typ: USINT, Initialwert: ISO_CAN_NODE::INVALID): Identifiziert den verwendeten CAN-Knoten (CAN-Controller-Index).
member (Typ: SINT, Initialwert: ISOUSERHOME_e::notdef): Definiert die Mitgliedschaft oder Rolle des anfragenden Teilnehmers im Netzwerk.
address (Typ: isobus::pgn::NAMEFIELD_T): Die Adresse des anderen Netzwerkteilnehmers, für den Informationen abgerufen werden sollen.
mask (Typ: isobus::pgn::NAMEFIELD_T): Eine Bitmaske, die angibt, welche Teile der Adresse bei der Suche berücksichtigt werden sollen. Nur gesetzte Bits (1) werden ausgewertet.
Daten-Ausgänge
bwaitingForRSP (Typ: BOOL): Zeigt an, ob der Funktionsblock aktuell auf eine Antwort (
RSP) auf eine gesendete Indikation wartet.sNetEv (Typ: isobus::pgn::ISONETEVENT_T): Enthält Details zum aufgetretenen Netzwerkereignis (z.B. Fehler oder Status).
sCfInfo (Typ: isobus::pgn::CF_INFO_T): Die abgerufenen Informationen über den gefundenen Kommunikationspartner (CF = Communication Function).
sNameField (Typ: isobus::pgn::NAMEFIELD_T): Der ISOBUS-Name des gefundenen Kommunikationspartners.
Adapter
Dieser Funktionsblock verwendet keine Adapter-Schnittstellen.
Funktionsweise
Initialisierung: Durch das Auslösen des
INIT-Ereignisses wird der Baustein konfiguriert. Die übergebenen Parameter (u8CanIdx,member,address,mask) definieren den Kontext und das Ziel der Abfrage. Nach erfolgreicher Initialisierung wirdINITOausgegeben.Abfrage und Indikation: Nach der Initialisierung beginnt der Baustein, basierend auf der
addressundmask, nach passenden Kommunikationspartnern im Netzwerk zu suchen. Wird ein Teilnehmer gefunden, löst der Baustein dasIND-Ereignis aus und stellt die gefundenen Informationen in den Daten-AusgängensCfInfoundsNameFieldbereit. Gleichzeitig wirdbwaitingForRSPaufTRUEgesetzt.Antwortverarbeitung: Die übergeordnete Anwendung bestätigt den Empfang der Indikation durch das Senden des
RSP-Ereignisses. Daraufhin setzt der BausteinbwaitingForRSPaufFALSEzurück. Dieser Handshake-Mechanismus stellt eine sichere Übertragung sicher.
Technische Besonderheiten
Der Baustein implementiert ein Request-Response-Protokoll (
IND/RSP) für zuverlässige Kommunikation.Die Verwendung einer Bit-
maskermöglicht flexible Suchanfragen, z.B. nach Teilnehmern einer bestimmten Geräteklasse.Die Datentypen (
ISONETEVENT_T,CF_INFO_T,NAMEFIELD_T) sind spezifisch für die ISOBUS-PGN-Kommunikation und enthalten strukturierte Informationen gemäß dem ISO 11783-Standard.
Zustandsübersicht
Inaktiv: Vor der Initialisierung.
Initialisiert: Nach
INITO. Der Baustein ist betriebsbereit und kann Anfragen bearbeiten.Wartend auf RSP: Nach dem Auslösen von
IND. Der Baustein wartet auf die Bestätigung (RSP) der Anwendung, bevor er weitere Aktionen durchführt.
Anwendungsszenarien
Netzwerk-Discovery: Beim Start eines Geräts, um alle aktiven Teilnehmer im ISOBUS-Netzwerk zu identifizieren.
Diagnose und Monitoring: Zur Überwachung, ob bestimmte erwartete Steuergeräte (z.B. eines Anbaugeräts) verbunden und erreichbar sind.
Dynamische Konfiguration: Um Informationen über neu hinzugekommene Geräte zu erhalten und die Applikation entsprechend anzupassen.
⚖️ Vergleich mit ähnlichen Bausteinen
Im Gegensatz zu einfachen Lese- oder Abfrage-Bausteinen ist NmGetCfInfo speziell auf die Abfrage von ISOBUS-spezifischen Netzwerkinformationen ausgelegt. Er bietet mehr Kontext (durch member, address, mask) und strukturierte Ergebnisdaten (CF_INFO_T) als ein generischer Kommunikationsbaustein. Bausteine wie E_SWITCH oder E_DEMUX leiten nur Ereignisse weiter, während NmGetCfInfo aktive Netzwerkkommunikation und Protokollhandlung durchführt.
🛠️ Zugehörige Übungen
Fazit
Der NmGetCfInfo-Funktionsblock ist ein essenzielles Werkzeug für das Management von ISOBUS-Netzwerken. Er abstrahiert die komplexe Protokollkommunikation zur Erkennung von Netzwerkteilnehmern in eine einfach zu verwendende, ereignisgesteuerte Schnittstelle. Seine Fähigkeit, gezielt nach Teilnehmern zu suchen und detaillierte Informationen zurückzuliefern, macht ihn wertvoll für robuste und intelligente landwirtschaftliche Steuerungssysteme.