Uebung_012e_sub: Numeric Value Input PHYS und Speichern INI mit Subapp¶
Einleitung¶
Diese Übung zeigt, wie ein physikalischer numerischer Wert (Numeric Value) über einen Funktionsbaustein eingelesen, in einer INI-Datei gespeichert und über einen Qualitätsbaustein (Q) verarbeitet wird. Die gesamte Funktionalität ist in einer SubApp gekapselt (SubAppType Uebung_012e_sub). Die SubApp verfügt über die Eingänge KEY, SECTION und stObj sowie den Ausgang VALUEO. Über ein Ereignis IND wird der erfolgreiche Abschluss signalisiert.
Verwendete Funktionsbausteine (FBs)¶
Die SubApp enthält drei vordefinierte Funktionsbausteine:
-
NumeriValue_PHYS (
isobus::UT::io::NumericValue::NumericValue_PHYS)- Parameter:
QI = TRUE(aktiviert) - Aufgabe: Liest einen physikalischen numerischen Wert basierend auf dem Objektpool (
stObj) ein und gibt das Ergebnis alsrPhys(REAL) aus.
- Parameter:
-
INI (
eclipse4diac::storage::INI)- Parameter:
QI = TRUE,DEFAULT_VALUE = REAL#0.0 - Aufgabe: Speichert oder ruft Werte aus einer INI-Datei ab. Der Schreibvorgang wird über das Ereignis
SETausgelöst, das Lesen überGET. Bei Initialisierung (INIT) wird automatisch der vorhandene Wert aus der INI gelesen.
- Parameter:
-
Q_NumericValue_PHYS (
isobus::UT::Q::Q_NumericValue_PHYS)- Parameter: keine speziellen Parameter
- Aufgabe: Führt eine Qualitätsbewertung des numerischen Werts durch (z. B. Prüfung auf Gültigkeit oder Wertebereich). Erhält den Eingangswert über
rPhysund konfiguriert viastObj.
Programmablauf und Verbindungen¶
Ereignisverbindungen¶
-
Eingelesener Wert auslösen
Wenn der FBNumeriValue_PHYSeinen neuen physikalischen Wert bereitstellt, sendet er das EreignisIND. Dieses wird mit demSET-Ereignis desINI-Bausteins verbunden. Dadurch wird der aktuelle Wert (rPhys) in der INI-Datei unter dem angegebenenKEYundSECTIONgespeichert. -
Rückmeldung nach Speichern
Nach dem Speichern signalisiertINImitSETO, dass der Vorgang abgeschlossen ist. Dieses Ereignis wird direkt an den AusgangINDder SubApp weitergeleitet (mit der EigenschaftVisible=false, d. h. im Diagramm ausgeblendet). -
Wert aus INI lesen und qualitativ prüfen
Nach dem Speichern (oder nach einer Initialisierung) wird das EreignisGETOdesINI-Bausteins ausgelöst. Es ist mit demREQ-Ereignis desQ_NumericValue_PHYS-Bausteins verbunden. Dadurch wird der gespeicherte Wert aus der INI gelesen und einer Qualitätsprüfung unterzogen.
Zusätzlich wirdGETOauch noch einmal an den AusgangINDweitergeleitet, sodass die SubApp auch nach dem Lesevorgang ein Signal abgibt. -
Initialisierung
DerINI-Baustein hat außerdem sein eigenesINIT-Ereignis, das direkt mit demGET-Ereignis verbunden ist. Dadurch wird beim Start der SubApp automatisch der in der INI gespeicherte Wert gelesen und anschließend durch denGETO-Fluss der Qualitätsbaustein durchlaufen.
Datenverbindungen¶
- Der physikalische Wert (
rPhys) vonNumeriValue_PHYSwird an den DateneingangVALUEdesINI-Bausteins übergeben. - Das Objektpool-Struktur-Objekt (
stObj) wird von der SubApp-Schnittstelle anNumeriValue_PHYSund anQ_NumericValue_PHYSweitergegeben. - Die Eingänge
KEYundSECTIONder SubApp sind direkt mit den entsprechenden Eingängen desINI-Bausteins verbunden (beide ausgeblendet im Diagramm). - Der Ausgang
VALUEOder SubApp erhält seinen Wert aus dem qualitätsgeprüften Ergebnis desQ_NumericValue_PHYS-Bausteins (überVALUEOvonINIgeleitet ->rPhysanQ_NumericValue_PHYS).
Zusammenfassung¶
Die SubApp Uebung_012e_sub demonstriert den vollständigen Ablauf:
- Einlesen eines physikalischen numerischen Werts über
NumeriValue_PHYS, - Speichern dieses Werts in einer INI-Datei mittels
INI, - Rücklesen und Qualitätsprüfung des gespeicherten Werts mit
Q_NumericValue_PHYS.
Sie ist als wiederverwendbarer Baustein konzipiert, der über die Parameter KEY, SECTION und stObj konfiguriert wird und den verarbeiteten Wert am Ausgang VALUEO bereitstellt sowie über das Ereignis IND quittiert.