Uebung_011b1: Numeric Value Input ADD¶
Einleitung¶
Diese Übung demonstriert die Verarbeitung zweier numerischer Eingabewerte über den ISOBUS (UT). Die Werte werden als DWORD empfangen, in UDINT konvertiert, addiert und das Ergebnis als numerischer Ausgabewert bereitgestellt. Sie dient als einführendes Beispiel für die Kombination von Datentypkonvertierung, arithmetischen Operationen und der Nutzung der ISOBUS-NumericValue-Schnittstelle.
Verwendete Funktionsbausteine (FBs)¶
- InputNumber_I1 / InputNumber_I2
- Typ:
isobus::UT::io::NumericValue::NumericValue_ID - Parameter:
QI=TRUE(Eingang aktiviert)u16ObjId="InputNumber_I1"bzw."InputNumber_I2"(jeweilige Objekt-ID)
-
Funktion: Stellt einen numerischen Eingabewert über den ISOBUS bereit. Bei einem eingehenden Ereignis (IND) wird der aktuelle Wert am Datenausgang
IN(vom TypDWORD) ausgegeben. -
F_DWORD_TO_UDINT / F_DWORD_TO_UDINT_1
- Typ:
iec61131::conversion::F_DWORD_TO_UDINT - Parameter: keine
-
Funktion: Konvertiert einen
DWORD-Wert in einenUDINT-Wert. Der konvertierte Wert wird am AusgangOUTausgegeben. Die Konvertierung wird durch ein Ereignis am EingangREQgestartet; nach Abschluss wird der AusgangCNFaktiviert. -
ADD_2
- Typ:
iec61131::arithmetic::ADD_2 - Parameter: keine
-
Funktion: Addiert zwei
UDINT-Werte an den EingängenIN1undIN2. Das Ergebnis wird am AusgangOUT(ebenfallsUDINT) ausgegeben. Ein Ereignis anREQstartet die Berechnung; nach Fertigstellung wirdCNFaktiviert. -
Q_NumericValue
- Typ:
isobus::UT::Q::Q_NumericValue - Parameter:
u16ObjId="OutputNumber_N1"
- Funktion: Sendet einen numerischen Wert über den ISOBUS. Der zu sendende Wert wird am Daten-Eingang
u32NewValue(vom TypUDINT) erwartet. Ein Ereignis anREQlöst die Ausgabe aus; der AusgangCNFbestätigt die erfolgreiche Übertragung.
Programmablauf und Verbindungen¶
Der Ablauf wird durch die Ereignis- und Datenverbindungen im Netzwerk gesteuert:
- Eingabe der Werte – Die Funktionsbausteine
InputNumber_I1undInputNumber_I2warten auf eingehende ISOBUS-Nachrichten. Sobald ein Wert anliegt, wird das EreignisINDausgelöst. - Konvertierung – Das Ereignis
INDvonInputNumber_I1triggertF_DWORD_TO_UDINT(überREQ). Gleichzeitig wirdF_DWORD_TO_UDINT_1durch dasINDvonInputNumber_I2getriggert. Die konvertiertenUDINT-Werte stehen an den AusgängenOUTder Konverter an. - Addition – Nach Abschluss der Konvertierung (jeweiliges
CNF-Ereignis) wird der FunktionsbausteinADD_2über seinen EingangREQaufgerufen. Die konvertierten Werte der beiden Konverter werden mit den Datenverbindungen anIN1undIN2vonADD_2übergeben. - Ausgabe – Das
CNF-Ereignis vonADD_2triggert den BausteinQ_NumericValue. An dessen Dateneingangu32NewValueliegt das Additionsergebnis an. Der Baustein sendet diesen Wert über den ISOBUS an die Objekt-IDOutputNumber_N1.
Hinweise für den Nutzer:
- Die Objekt-IDs (InputNumber_I1, InputNumber_I2, OutputNumber_N1) müssen mit den im ISOBUS‑System konfigurierten Objekten übereinstimmen.
- Die Übung setzt Grundkenntnisse in der 4diac-IDE und der IEC 61499‑Ereignissteuerung voraus.
- Schwierigkeitsgrad: Einsteiger.
Zusammenfassung¶
Die Übung Uebung_011b1 veranschaulicht den gesamten Datenpfad von der ISOBUS-Eingabe über Datentypkonvertierung und arithmetische Verarbeitung bis zur ISOBUS-Ausgabe. Sie ist ein typisches Beispiel für die strukturierte, ereignisgesteuerte Programmierung mit 4diac und IEC 61499. Die klare Trennung von Ereignis- und Datenflüssen erleichtert das Verständnis und die Wiederverwendbarkeit der Bausteine.