Uebung_012g: Numeric Value Input PHYS und Speichern INI¶
Einleitung¶
Diese Übung veranschaulicht die Verwendung eines physischen numerischen Eingangs (NumericValue_PHYS) in Verbindung mit einer persistenten Speicherung über das INI-Dateiformat. Ziel ist es, einen eingegebenen numerischen Wert (z. B. von einem Sensor oder einer Benutzereingabe) einmalig zu speichern und bei Bedarf wieder auszulesen. Die Übung vermittelt grundlegende Konzepte der Ereignissteuerung, Datenflussverkettung und nichtflüchtigen Datenspeicherung in 4diac.
Die verwendeten Bausteine stammen aus den Bibliotheken isobus::UT und eclipse4diac::storage.
Verwendete Funktionsbausteine (FBs)¶
InputNumber_I3¶
- Typ:
isobus::UT::io::NumericValue::NumericValue_PHYS - Parameter:
QI=TRUEstObj=InputNumber_I3
- Funktionsweise:
Dieser Baustein repräsentiert einen physischen numerischen Eingang (z. B. ein Analog‑ oder Digitaleingang). Bei einer Wertänderung am Eingang wird ein EreignisINDausgelöst und der aktuelle Wert als Gleitkommazahl am AusgangrPhysbereitgestellt.
NVS¶
- Typ:
eclipse4diac::storage::INI - Parameter:
QI=TRUEKEY=KEY_I1_STOREDEFAULT_VALUE=REAL#0.0
- Funktionsweise:
Der Baustein realisiert eine nichtflüchtige Speicherung mittels INI‑Datei. Mit dem SchlüsselKEY_I1_STOREkann ein Wert gespeichert und abgerufen werden. - Beim Ereignis
INITsendet erINITOund führt anschließend automatischGETaus. - Bei
SETwird der anVALUEanliegende Datenwert persistent gespeichert. - Bei
GETwird der gespeicherte Wert am AusgangVALUEOausgegeben (falls kein Wert gespeichert ist, wirdDEFAULT_VALUEverwendet).
Q_NumericValue¶
- Typ:
isobus::UT::Q::Q_NumericValue_PHYS - Parameter:
stObj=InputNumber_I3
- Funktionsweise:
Dieser Baustein stellt einen physischen Ausgang für numerische Werte dar. Durch die EreignissanforderungREQwird der anrPhysanliegende Wert an den physischen Ausgang weitergegeben.
Programmablauf und Verbindungen¶
-
Initialisierung
Beim Start der Subapplikation wird der BausteinNVSmitINITinitialisiert und sendetINITO. Dieses Ereignis löst unmittelbar einenGET‑Befehl aus, um den zuletzt gespeicherten Wert zu laden. Der ausgelesene Wert gelangt über die DatenverbindungNVS.VALUEO → Q_NumericValue.rPhysan den Ausgangsbaustein. -
Eingabe eines neuen Wertes
Sobald der EingangsbausteinInputNumber_I3einen neuen numerischen Wert erfasst (EreignisIND), wird dieser Wert über die DatenleitungInputNumber_I3.rPhys → NVS.VALUEan den Speicherbaustein übertragen. Gleichzeitig wird durchINDdas EreignisSETam BausteinNVSausgelöst, wodurch der neue Wert persistent gespeichert wird. -
Ausgabe des gespeicherten Wertes
Nach dem Speichervorgang (ausgelöst durchSET) führtNVSintern einenGETdurch. Das EreignisGETOwird erzeugt und anQ_NumericValue.REQweitergeleitet.
Der zuvor gespeicherte Wert (nun vonNVS.VALUEObereitgestellt) wird an den Ausgangsbaustein übergeben und dort physisch ausgegeben.
Zusammenfassung¶
Die Übung demonstriert eine vollständige Signalverarbeitungskette: - Erfassen eines numerischen Werts über einen physischen Eingang, - persistentes Speichern in einer INI‑Datei, - erneutes Ausgeben des gespeicherten Werts an einen physischen Ausgang.
Durch die Ereignis‑ und Datenverbindungen wird sichergestellt, dass nach dem Einschalten automatisch der letzte gespeicherte Wert angezeigt wird und neue Eingabewerte sofort gespeichert und ausgegeben werden. Dieses Muster eignet sich für Anwendungen wie das Speichern von Sollwerten oder Konfigurationsparametern mit einfacher persistenter Datenhaltung.