AlPgnTxNew8B
Einleitung
Der Funktionsblock AlPgnTxNew8B dient zum Senden von Daten über ein CAN-Netzwerk gemäß dem ISOBUS-Standard (ISO 11783). Sein Hauptzweck ist die Installation und Verwaltung von Parameter Group Numbers (PGNs) für die Übertragung (TX) und das anschließende Senden von Datenpaketen, sobald ein lokales Sendeereignis (REQ) eintritt. Er ist für Anwendungen konzipiert, die eine unbestätigte (unconfirmed) Datenübertragung erfordern.
Schnittstellenstruktur
Ereignis-Eingänge
INIT: Startet die Initialisierung des Funktionsblocks.install: Löst die Installation einer neuen Transmit-PGN (TX-PGN) aus. Die Installation wird mit den überWithverknüpften Daten-Eingängen (u32Pgn,NmDestin,u16DaSize,u8Priority) konfiguriert.REQ: Löst den Sendevorgang für die zuvor installierte PGN aus. Die zu sendenden Daten werden über den mitWithverknüpften Daten-EingangDatabereitgestellt.
Ereignis-Ausgänge
INITO: Bestätigt den erfolgreichen Abschluss der Initialisierung (INIT).installO: Bestätigt den Abschluss der PGN-Installation. Liefert überPGN_handleeinen Handle für die installierte PGN oder einen Fehlerwert.CNF: Bestätigt, dass die Daten erfolgreich gesendet wurden (Antwort aufREQ).dataERR: Zeigt einen Fehler im Zusammenhang mit den zu sendenden Daten (Data) an. Liefert einen Fehlercode überdataERRC.pgnERR: Zeigt einen Fehler im Zusammenhang mit der PGN-Installation oder -Verwendung an. Liefert einen Fehlercode überpgnERRC.
Daten-Eingänge
u32Pgn(UDINT): Die zu installierende Parameter Group Number (PGN). Gültiger Bereich: 0 bis 0x3FFFF (dezimal 262143).NmDestin(isobus::pgn::ISONETEVENT_T): Definiert den Kommunikationspartner (z.B. Broadcast, spezifische Adresse).u16DaSize(UINT): Die Datenlänge der PGN in Bytes. Gültiger Bereich: 0 bis 8.u8Priority(USINT): Die Priorität der Nachricht auf dem CAN-Bus. Bereich: 0 (höchste) bis 7 (niedrigste). Standardwert: 7.Data(isobus::pgn::CAN_MSG): Die zu sendenden Daten, strukturiert als CAN-Nachricht.
Daten-Ausgänge
PGN_handle(INT): Ein Handle (Bezeichner) für die erfolgreich installierte PGN. Im Fehlerfall wird der WertHANDLE_UNVALIDausgegeben.dataERRC(INT): Numerischer Fehlercode, der bei Auslösen desdataERR-Ereignisses gesetzt wird.pgnERRC(INT): Numerischer Fehlercode, der bei Auslösen despgnERR-Ereignisses gesetzt wird.
Adapter
Dieser Funktionsblock verwendet keine Adapter-Schnittstellen.
Funktionsweise
Initialisierung: Durch das Ereignis
INITwird der Funktionsblock in einen betriebsbereiten Zustand versetzt. Die Bestätigung erfolgt überINITO.PGN-Installation: Das
install-Ereignis konfiguriert eine spezifische PGN für die Datenübertragung. Dabei werden PGN-Nummer, Zieladresse, Datenlänge und Priorität festgelegt. Bei Erfolg wird einPGN_handleüberinstallOzurückgegeben. Bei einem Fehler (z.B. ungültige Parameter) wird das EreignispgnERRausgelöst.Datenversand: Sobald ein
REQ-Ereignis eintritt, versucht der Block, die imData-Eingang bereitgestellte CAN-Nachricht unter Verwendung der zuvor installierten PGN-Konfiguration zu senden. Bei Erfolg wird dasCNF-Ereignis ausgelöst. Tritt ein Fehler beim Senden auf (z.B. ungültige Daten), wirddataERRausgelöst.
Technische Besonderheiten
Der Block ist für die Übertragung von Datenpaketen mit einer maximalen Länge von 8 Byte ausgelegt (typisch für klassische CAN-Frames).
Er implementiert das unbestätigte Senden: Ein
CNFbedeutet lediglich, dass die Nachricht zur Übertragung an die untere Protokollschicht übergeben wurde, nicht zwingend, dass sie den Empfänger erreicht hat.Die Fehlerbehandlung ist in zwei Kategorien unterteilt: PGN-bezogene Fehler (
pgnERR) und Datenbezogene Fehler (dataERR), was die Fehlerdiagnose erleichtert.Der Block verwendet spezifische ISOBUS-Datentypen (
isobus::pgn::CAN_MSG,isobus::pgn::ISONETEVENT_T).
Zustandsübersicht
Der Block durchläuft implizit folgende Hauptzustände:
Nicht initialisiert: Nach dem Start. Nur der
INIT-Eingang ist aktiv.Initialisiert / Bereit: Nach
INITO. Der Block kann nun PGNs installieren (install).PGN installiert: Nach erfolgreichem
installO. Der Block ist bereit, Daten zu senden (REQ).Sendeaktiv: Während der Verarbeitung eines
REQ. Übergang zu Zustand 3 nachCNFoder zu einem Fehlerzustand nachdataERR/pgnERR.
Anwendungsszenarien
Landmaschinensteuerung (ISOBUS): Senden von Maschinendaten (z.B. Arbeitsgeschwindigkeit, Zapfwellendrehzahl) an ein Terminal oder andere Steuergeräte im Traktor.
Nutzfahrzeugkommunikation: Übertragung von Fahrzeugdaten (z.B. Drehmoment, Verbrauch) innerhalb eines Truck-Bussystems.
Industrielle Automatisierung: Senden von Steuerbefehlen oder Statusinformationen über CAN-Netzwerke in Maschinen.
⚖️ Vergleich mit ähnlichen Bausteinen
E_SEND(Standard 61499): Ein generischer Sende-Baustein.AlPgnTxNew8Bist spezialisiert auf ISOBUS/CAN mit PGN-Verwaltung, Priorisierung und Zieladressierung, währendE_SENDprotokollagnostisch ist und eine Adapterverbindung benötigt.Bestätigte Sende-Bausteine:
AlPgnTxNew8Bsendet unbestätigt (CNF). Für bestätigte Kommunikation (Request/Response) wären andere, spezifischere TX-PGN-Blöcke oder Protokollstapel erforderlich.
🛠️ Zugehörige Übungen
Fazit
Der AlPgnTxNew8B ist ein spezialisierter Funktionsblock für die zuverlässige, konfigurierbare und unbestätigte Datenübertragung in ISOBUS-Umgebungen. Seine klare Trennung von Konfiguration (install) und Operation (REQ) sowie die differenzierte Fehlerrückmeldung machen ihn gut wartbar und einfach in übergeordnete Applikationslogiken zu integrieren. Er ist die erste Wahl, wenn CAN-Nachrichten nach ISOBUS-Standard mit einer festen PGN gesendet werden müssen.