AlPgnTxNew8Bcycl
Einleitung
Der Funktionsblock AlPgnTxNew8Bcycl dient der zyklischen Übertragung von Daten über ein CAN-Netzwerk gemäß dem ISOBUS-Standard (ISO 11783). Sein Hauptzweck ist die Installation, Konfiguration und regelmäßige Aussendung von Parameter Group Numbers (PGNs). Er ermöglicht die Definition von Kommunikationseigenschaften wie Zieladresse, Priorität und Sendeintervall und stellt sicher, dass Daten zuverlässig und im konfigurierten Rhythmus versendet werden.
Schnittstellenstruktur
Ereignis-Eingänge
INIT: Initialisiert den Funktionsblock.
install: Installiert eine neue zu sendende PGN (TX) mit den zugehörigen Konfigurationsdaten. Löst die Verarbeitung der mitgeführten Daten-Eingänge (
u32Pgn,NmDestin,u16DaSize,u8Priority,u16DefRepRate,Data) aus.UPD: Aktualisiert die Nutzdaten (
Data) für die zuvor installierte PGN, um sie beim nächsten zyklischen Sendevorgang zu verwenden.
Ereignis-Ausgänge
INITO: Bestätigt den Abschluss der Initialisierung.
installO: Signalisiert, dass der Installationsvorgang abgeschlossen ist. Führt den
PGN_handleals Ausgabewert mit.UPDO: Bestätigt, dass die Aktualisierung der Nutzdaten (
UPD) erfolgreich verarbeitet wurde.CNF: Bestätigt, dass ein Datensatz erfolgreich gesendet wurde.
dataERR: Zeigt einen Fehler im Zusammenhang mit den Nutzdaten (
Data) an. Führt den FehlercodedataERRCmit.pgnERR: Zeigt einen Fehler im Zusammenhang mit der PGN-Konfiguration oder -Verwaltung an. Führt den Fehlercode
pgnERRCmit.
Daten-Eingänge
u32Pgn (UDINT): Die zu sendende Parameter Group Number (PGN). Gültiger Bereich: 0 bis 0x3FFFF.
NmDestin (isobus::pgn::ISONETEVENT_T): Definiert den Kommunikationspartner (Zieladresse) für die Nachricht.
u16DaSize (UINT): Die Länge der zu sendenden Daten in Bytes. Gültiger Bereich: 0 bis 8.
u8Priority (USINT): Die Priorität der Nachricht auf dem CAN-Bus (0=höchste, 7=niedrigste). Standardwert: 7.
u16DefRepRate (UINT): Das zyklische Sendeintervall in Millisekunden (0 … 0xFDFF ms). Ein Wert von 0 deaktiviert die zyklische Übertragung. Standardwert: 0.
Data (isobus::pgn::CAN_MSG): Die Nutzdaten, die als PGN gesendet werden sollen.
Daten-Ausgänge
PGN_handle (INT): Ein Handle (Bezeichner) für die erfolgreich installierte PGN. Im Fehlerfall wird ein ungültiger Handle-Wert (
HANDLE_UNVALID) zurückgegeben.dataERRC (INT): Ein Fehlercode, der detaillierte Informationen zu einem aufgetretenen
dataERRliefert.pgnERRC (INT): Ein Fehlercode, der detaillierte Informationen zu einem aufgetretenen
pgnERRliefert.
Adapter
Dieser Funktionsblock verwendet keine Adapter-Schnittstellen.
Funktionsweise
Initialisierung: Nach dem Eintreffen des
INIT-Ereignisses wird der Block betriebsbereit gemacht. Die Bestätigung erfolgt überINITO.Installation: Das
install-Ereignis löst die Konfiguration einer neuen zyklischen PGN-Übertragung aus. Alle zugehörigen Parameter (u32Pgn,NmDestin, etc.) werden ausgewertet und intern gespeichert. Bei Erfolg wird einPGN_handlegeneriert und mit deminstallO-Ereignis zurückgegeben. Bei Fehlern (z.B. ungültige Parameter) wird daspgnERR-Ereignis ausgelöst.Zyklische Übertragung: Ist die PGN installiert und
u16DefRepRate> 0, beginnt der Block automatisch, die inDatahinterlegten Nutzdaten in dem definierten Intervall zu senden. Jeder erfolgreiche Sendevorgang wird durch dasCNF-Ereignis quittiert.Datenaktualisierung: Das
UPD-Ereignis erlaubt es, die Nutzdaten (Data) für die aktive PGN-Übertragung zu ändern. Die neuen Daten werden bei der nächsten zyklischen Aussendung verwendet. Der Empfang der neuen Daten wird mitUPDObestätigt. Fehlerhafte Daten führen zum Auslösen vondataERR.
Technische Besonderheiten
Der Block ist für die Verwendung in ISOBUS-Umgebungen (Landtechnik) vorgesehen und nutzt spezifische ISOBUS-Datentypen (
ISONETEVENT_T,CAN_MSG).Die zyklische Übertragung kann durch Setzen von
u16DefRepRateauf 0 deaktiviert werden, was einen bedarfsgesteuerten Betrieb ermöglicht.Die Fehlerbehandlung ist über dedizierte Ereignisse (
dataERR,pgnERR) strukturiert, was eine robuste Integration in übergeordnete Steuerungen ermöglicht.Die Rückgabe eines
PGN_handleerlaubt die Verwaltung mehrerer installierter PGNs innerhalb eines Systems.
Zustandsübersicht
Nicht initialisiert: Block ist nach dem Start im Ruhezustand.
Initialisiert / Bereit: Nach
INIT/INITO. Block wartet auf Konfigurations- oder Steuerereignisse.PGN installiert: Nach erfolgreichem
install/installO. Die PGN ist konfiguriert und der interne Zustand für die (zyklische) Übertragung ist aktiv.Senden aktiv: Wenn
u16DefRepRate> 0, sendet der Block zyklisch Daten und feuert bei jedem ErfolgCNF.Fehlerzustand: Bei Auftreten eines Fehlers (
pgnERRoderdataERR). Der Block kann je nach Fehlerart in einem wartenden Zustand sein oder versuchen, die Operation erneut durchzuführen (soweit im Algorithmus implementiert).
Anwendungsszenarien
ISOBUS-konforme Maschinensteuerung: Zyklisches Senden von Maschinendaten (z.B. Drehzahl, Druck, Position) von einem Steuergerät (ECU) an ein Terminal oder andere Teilnehmer im Netzwerk.
Diagnose- und Überwachungssysteme: Regelmäßige Übertragung von Status- und Betriebsparametern zu Überwachungszwecken.
Implementierung von ISOBUS-„Fast-Packet“-Protokollen: Für PGNs, die mehr als 8 Byte Daten transportieren und daher in mehreren CAN-Botschaften übertragen werden müssen (unterstützt durch den
CAN_MSG-Datentyp).
⚖️ Vergleich mit ähnlichen Bausteinen
Gegenüber einfachen
E_CYC-Blöcken:AlPgnTxNew8Bcyclist spezialisiert auf ISOBUS-PGNs und bietet integrierte Handhabung von Priorität, Zieladressierung und Fehlermanagement, während ein generischer zyklischer Event-Generator (E_CYC) nur Timing bereitstellt.Gegenüber generischen CAN-Sendeblöcken: Dieser Block abstrahiert die niedrigleveligen CAN-Details (Identifier-Berechnung, Datenrahmen) und arbeitet direkt auf der logischeren PGN-Ebene gemäß ISOBUS-Standard.
🛠️ Zugehörige Übungen
Fazit
Der AlPgnTxNew8Bcycl ist ein spezialisierter und leistungsstarker Funktionsblock für die zyklische Datenkommunikation in ISOBUS-Netzwerken. Durch seine klare Schnittstelle, die umfassende Konfigurierbarkeit und die integrierte Fehlerrückmeldung eignet er sich ideal für die zuverlässige Implementierung von Sendediensten in komplexen, verteilten Steuerungssystemen der Landtechnik.