Hier ist die Dokumentation für die Übung Uebung_12x_sub basierend auf den bereitgestellten XML-Daten.
Uebung_12x_sub: Subapplication Type¶
Einleitung¶
Die Sub-Application Uebung_12x_sub implementiert eine Logik zur Handhabung von ISOBUS-Übertragungs-Callbacks. Sie dient dazu, zyklisch oder ereignisgesteuert Daten für eine CAN-Nachricht zu generieren, wobei der Inhalt der Nachricht (Payload) dynamisch durch einen Zähler verändert wird.
Verwendete Funktionsbausteine (FBs)¶
In dieser Sub-Application werden verschiedene Funktionsbausteine kombiniert, um eine Zählerschleife zu realisieren, die ihre Werte in ein CAN-Nachrichtenformat konvertiert.
Sub-Bausteine: Uebung_12x_sub¶
- Typ: SubAppType
-
Verwendete interne FBs:
- CallbackFB:
isobus::pgn::tx::CallbackFB- Parameter:
DI1=[16#FF, 16#FF, 16#FF, 16#FF, 16#FF, 16#FF, 16#FF, 16#FF](Initialisierung des Daten-Arrays) - Adapterverbindung:
PLUG1(Verbindung zum Adapter-Interface)
- Parameter:
- E_CTU:
iec61499::events::E_CTU- Typ: Aufwärtszähler (Up Counter)
- Parameter:
PV=UINT#0(Prozessvariable / Limit)
- STRUCT_MUX:
eclipse4diac::convert::STRUCT_MUX- Typ: Struktur-Multiplexer zur Erstellung der CAN-Nachricht
- Attribute:
StructuredType=isobus::pgn::CAN_MSG - Parameter:
u16DaSize=0 - Parameter:
u8Priority=7
- BYTES_TO_ARR08B:
logiBUS::utils::conversion::arr::reversing::BYTES_TO_ARR08B- Typ: Konverter von einzelnen Bytes zu einem Byte-Array (8 Byte)
- Parameter:
IN_01bisIN_07=16#00(Füllt die restlichen Bytes mit 0)
- F_USINT_TO_BYTE:
iec61131::conversion::F_UINT_TO_BYTE- Typ: Konverter von UINT nach BYTE (Instanzname deutet auf USINT-Nutzung hin)
- CallbackFB:
-
Funktionsweise: Der Sub-Baustein koordiniert den Datenfluss zwischen einem ISOBUS-Callback und der Generierung neuer Nutzdaten. Ein Zählerstand wird in ein Byte konvertiert, in ein Byte-Array integriert, in eine CAN-Nachricht verpackt und dem Callback-Baustein zur Verfügung gestellt.
Programmablauf und Verbindungen¶
Der Ablauf innerhalb der Sub-Application bildet eine Rückkopplungsschleife, die bei jeder Anfrage (Request) des Callbacks den Dateninhalt aktualisiert:
- Auslöser: Der
CallbackFBsendet ein Event über den AusgangREQ. - Zählen: Dieses Event triggert den Eingang
CU(Count Up) des ZählersE_CTU, wodurch der Zählerwert erhöht wird. - Konvertierung:
- Der aktuelle Zählerwert (
CV) wird an den BausteinF_USINT_TO_BYTEübergeben. - Nach erfolgreichem Zählen (
CUO) wird die Konvertierung ausgelöst.
- Der aktuelle Zählerwert (
- Array-Erstellung:
- Das konvertierte Byte wird an den Eingang
IN_00desBYTES_TO_ARR08BBausteins geleitet. Dies ist das erste Byte der Nachricht. - Die Eingänge
IN_01bisIN_07sind statisch mit0x00belegt.
- Das konvertierte Byte wird an den Eingang
- Nachrichtenerstellung:
- Das erzeugte Byte-Array (
OUT) wird an den DateneingangdatadesSTRUCT_MUXübergeben. - Der
STRUCT_MUXerstellt daraus eine Struktur vom Typisobus::pgn::CAN_MSG.
- Das erzeugte Byte-Array (
- Rückführung:
- Die fertige Struktur (
OUT) wird an den EingangDI1desCallbackFBzurückgeführt. - Das Bestätigungs-Event (
CNF) des Multiplexers triggert dasCNFdesCallbackFB, um die Datenaktualisierung abzuschließen.
- Die fertige Struktur (
Diese Übung demonstriert fortgeschrittene Datenmanipulation und Event-Ketten in 4diac, insbesondere wie Adapter-Callbacks genutzt werden können, um dynamisch veränderliche Daten (hier einen hochzählenden Wert) zu senden.
Zusammenfassung¶
Die Uebung_12x_sub stellt eine Sub-Application dar, die einen ISOBUS-Callback-Mechanismus bedient. Sie nutzt einen internen Zähler, um das erste Byte der 8-Byte Nutzlast einer CAN-Nachricht bei jedem Callback-Aufruf zu inkrementieren. Dies eignet sich hervorragend zum Testen von zyklischen Übertragungen und der korrekten Verarbeitung von Datenänderungen in einem verteilten Steuerungssystem.