Uebung_012d: Numeric Value Input PHYS und Speichern NVS¶
Einleitung¶
Diese Übung demonstriert die Erfassung eines numerischen Werts (Physical Value) über einen Eingabebaustein, das Speichern des Werts im nichtflüchtigen Speicher (NVS) sowie das Auslesen und Bereitstellen des gespeicherten Werts über einen Ausgabebaustein. Ziel ist es, den Ablauf von Datenerfassung, persistenter Speicherung und Rückgabe zu verstehen.
Verwendete Funktionsbausteine (FBs)¶
Die Übung verwendet drei Funktionsbausteine, die innerhalb der Subapplikation vernetzt sind:
- InputNumber_I3 – Typ:
isobus::UT::io::NumericValue::NumericValue_PHYS - Parameter:
QI=TRUEstObj=InputNumber_I3
-
Funktion: Stellt die physikalische Eingabe eines numerischen Werts bereit. Der Wert wird über den Datenausgang
rPhysausgegeben, sobald ein Ereignis am EingangINDanliegt. -
NVS – Typ:
logiBUS::storage::esp32_nvs::NVS - Parameter:
QI=TRUEKEY=KEY_I1_STORE(importiert ausUebungen::const::NVS::NVS_Keys)DEFAULT_VALUE=REAL#0.0
-
Funktion: Nichtflüchtiger Speicherbaustein. Er speichert einen Wert unter einem vorgegebenen Schlüssel (
KEY) und kann diesen bei Bedarf wieder auslesen. Die EreignisseSETundGETsteuern das Speichern bzw. Lesen. Die AusgängeVALUEOliefern den gespeicherten Wert. -
Q_NumericValue – Typ:
isobus::UT::Q::Q_NumericValue_PHYS - Parameter:
stObj=OutputNumber_N3
- Funktion: Stellt einen numerischen Wert als physikalischen Ausgang bereit. Der Wert wird über den Dateneingang
rPhysentgegengenommen und bei einem Ereignis am EingangREQausgegeben.
Sub-Bausteine¶
Die Übung selbst ist als SubAppType definiert und enthält keine weiteren Sub-Bausteine. Die drei oben genannten FBs sind direkt im Netzwerk verbunden.
Programmablauf und Verbindungen¶
Der Ablauf ist wie folgt:
- Eingabe und Speichern
- Wenn ein neuer physikalischer Wert an
InputNumber_I3anliegt, erzeugt dieser ein Ereignis am AusgangIND. - Dieses Ereignis wird über eine Eventverbindung an den Eingang
SETdes NVS-Bausteins weitergeleitet. - Gleichzeitig wird der Datenwert von
InputNumber_I3.rPhysüber eine Datenverbindung an den NVS-DateneingangVALUEübergeben. -
Der NVS speichert den Wert unter dem Schlüssel
KEY_I1_STOREim nichtflüchtigen Speicher. -
Initialisieren und Auslesen
- Nach dem Start (oder nach einer Initialisierung) erzeugt der NVS-Baustein ein Ereignis am Ausgang
INITO. - Dieses Ereignis wird über eine Eventverbindung an den Eingang
GETdes NVS zurückgeführt (Selbsttriggerung). - Der NVS liest daraufhin den gespeicherten Wert aus und legt ihn am Datenausgang
VALUEOan. -
Gleichzeitig wird ein Ereignis am Ausgang
GETOerzeugt. -
Ausgabe
- Das Ereignis
NVS.GETOwird an den EingangREQdes AusgabebausteinsQ_NumericValueweitergeleitet. - Der Datenwert
NVS.VALUEOwird über eine Datenverbindung an den EingangQ_NumericValue.rPhysübergeben. Q_NumericValuestellt den Wert daraufhin am physikalischen AusgangOutputNumber_N3bereit.
Zusammengefasst: Jeder eingehende Wert wird sofort gespeichert, und beim Systemstart wird der zuletzt gespeicherte Wert automatisch ausgegeben. Die Übung eignet sich für Einsteiger, die das Zusammenspiel von Ein-/Ausgabebausteinen mit einem nichtflüchtigen Speicher kennenlernen möchten.
Zusammenfassung¶
Die Übung Uebung_012d implementiert eine robuste Speicher- und Wiederherstellungsfunktion für einen physikalischen Zahlenwert. Durch die Kopplung eines Eingabebausteins (NumericValue_PHYS) mit einem NVS-Baustein und einem Ausgabebaustein (Q_NumericValue_PHYS) wird sichergestellt, dass der letzte Wert auch nach einem Neustart verfügbar bleibt. Der Ablauf ist einfach und nachvollziehbar: Wert erfassen → speichern → initial auslesen → ausgeben.