AlPgnRxNew8B_REQ
Einleitung
Der Funktionsblock AlPgnRxNew8B_REQ dient zur Anforderung (Request) von Daten über ein ISOBUS-Netzwerk. Er ermöglicht die Installation eines Empfangsparametersatzes (RX PGN) und das Auslösen einer einmaligen Anfrage für diesen Parameter. Der Baustein ist Teil einer ISOBUS-spezifischen Kommunikationsbibliothek und behandelt die Interaktion mit dem CAN-Netzwerkprotokoll nach ISO 11783.
Schnittstellenstruktur
Ereignis-Eingänge
INIT: Initialisiert den Funktionsblock.
install: Installiert einen Empfangsparametersatz (RX PGN) für die spätere Datenanforderung. Wird mit den Daten
u32Pgn,NmSource,u16DaSizeundu8Priorityausgelöst.REQ: Löst eine einmalige Anforderung für den zuvor installierten RX PGN aus.
Ereignis-Ausgänge
INITO: Bestätigt die abgeschlossene Initialisierung.
installO: Bestätigt die abgeschlossene Installation eines PGN. Liefert den zugewiesenen
PGN_handle.CNF: Bestätigt das erfolgreiche Absenden der Anforderung (Request) an das Netzwerk.
IND: Wird ausgelöst, wenn die angeforderte Daten-Nachricht empfangen wurde. Liefert die
Dataund einens32TimeStamp.dataERR: Signalisiert einen Fehler bei der Datenverarbeitung. Liefert den Fehlercode
dataERRC.pgnERR: Signalisiert einen Fehler bei der PGN-Verarbeitung (z.B. bei der Installation). Liefert den Fehlercode
pgnERRC.
Daten-Eingänge
u32Pgn (UDINT): Die Parameter Group Number (PGN) im Bereich 0 bis 0x3FFFF.
NmSource (isobus::pgn::ISONETEVENT_T): Definiert den Kommunikationspartner im Netzwerk.
u16DaSize (UINT): Die zu erwartende Datenlänge der PGN (0..8 Byte).
u8Priority (USINT): Die Standard-Priorität dieser PGN (0..7, wobei 0 die höchste Priorität ist). Initialwert ist 7.
Daten-Ausgänge
PGN_handle (INT): Ein Handle zur Identifikation des erfolgreich installierten PGN. Im Fehlerfall wird ein ungültiger Handle-Wert (
HANDLE_UNVALID) zurückgegeben.dataERRC (INT): Fehlercode, der bei Auslösen des
dataERR-Ereignisses gesetzt wird.pgnERRC (INT): Fehlercode, der bei Auslösen des
pgnERR-Ereignisses gesetzt wird.s32TimeStamp (DINT): Zeitstempel der empfangenen Nachricht in Millisekunden. Initialwert ist -1.
Data (isobus::pgn::CAN_MSG): Der Puffer, der die empfangenen CAN-Nachrichtendaten enthält.
Adapter
Dieser Funktionsblock verwendet keine Adapter-Schnittstellen.
Funktionsweise
Der Funktionsblock arbeitet in zwei Hauptphasen: Installation und Anforderung.
Installation: Durch das
install-Ereignis werden die Parameter für einen zu empfangenden PGN (Nummer, Quelle, Größe, Priorität) konfiguriert. Der Block registriert diese Anforderung im zugrunde liegenden ISOBUS-Stack und gibt einenPGN_handleüberinstallOzurück. Dieser Handle wird für spätere Referenzen benötigt.Anforderung: Das
REQ-Ereignis löst eine einmalige Anfrage für den zuletzt installierten PGN im Netzwerk aus. Nach erfolgreichem Versand der Anfrage wirdCNFausgelöst. Wenn die angeforderte Nachricht vom definiertenNmSourceeintrifft, wird sie imData-Puffer abgelegt und zusammen mit einem Zeitstempel über dasIND-Ereignis ausgegeben.
Fehler während der Installation (z.B. ungültige PGN) führen zum pgnERR-Ausgang. Fehler beim Empfang oder der Verarbeitung der Daten führen zum dataERR-Ausgang.
Technische Besonderheiten
Der Block ist für die Verarbeitung von PGNs mit einer Datenlänge von bis zu 8 Byte ausgelegt (
u16DaSize0..8).Die Prioritätsverwaltung (
u8Priority) folgt dem ISOBUS-Standard.Die Daten werden in einem typsicheren
CAN_MSG-Puffer bereitgestellt.Die Fehlerbehandlung ist über dedizierte Ereignisausgänge (
pgnERR,dataERR) strukturiert.
Zustandsübersicht
Nicht initialisiert: Vor dem ersten
INIT-Ereignis.Initialisiert / Bereit: Nach
INITO. Der Block kanninstall-Ereignisse entgegennehmen.PGN installiert: Nach erfolgreichem
installO. Der Block ist bereit,REQ-Ereignisse zu verarbeiten.Anforderung ausstehend: Nach
REQund vorCNF. Die Netzwerkanfrage wurde gestellt.Datenempfangsbereit: Nach
CNF. Der Block wartet auf die eingehende Nachricht und wird bei EmpfangINDauslösen.
Anwendungsszenarien
Typische Anwendungen liegen in der landwirtschaftlichen oder mobilen Arbeitsmaschinensteuerung (ISO 11783 / ISOBUS):
Abfrage von Maschinenparametern (z.B. Drehzahl, Temperatur) von einem Anbaugerät.
Einmaliges Anfordern von Konfigurationsdaten von einem Steuergerät im Netzwerk.
Implementierung von Diagnose- oder Service-Tools, die spezifische PGNs abfragen müssen.
⚖️ Vergleich mit ähnlichen Bausteinen
Im Vergleich zu generischen CAN-Empfangsblöcken ist AlPgnRxNew8B_REQ speziell auf das ISOBUS-Protokoll und dessen PGN-Konzept zugeschnitten. Er abstrahiert die niedrigleveligen CAN-Details (wie ID-Filterung) und bietet eine saubere Schnittstelle auf PGN-Ebene. Blöcke wie E_CYCLE oder E_DELAY könnten verwendet werden, um periodische Anfragen zu realisieren, während AlPgnRxNew8B_REQ selbst nur Einzelanfragen behandelt.
🛠️ Zugehörige Übungen
Fazit
Der AlPgnRxNew8B_REQ ist ein spezialisierter Funktionsblock für die bedarfsgesteuerte (on-demand) Kommunikation in ISOBUS-Netzwerken. Durch die Trennung von Installation (install) und Ausführung (REQ) ermöglicht er eine flexible und kontrollierte Datenanforderung. Seine integrierte Fehlerbehandlung und typsichere Datenschnittstelle machen ihn zu einem robusten Baustein für anspruchsvolle Embedded-Steuerungen in der Agrartechnik.