Uebung_012e: Numeric Value Input PHYS und Speichern INI mit Subapp¶
Einleitung¶
Diese Übung demonstriert das Einlesen eines numerischen Werts über einen physikalischen Eingangsbaustein (NumericValue_PHYS) und das dauerhafte Speichern des Werts mittels eines INI-Datei-Bausteins. Die gesamte Logik ist in einer Subapp gekapselt, die als wiederverwendbare Komponente dient. Ziel ist es, einen Wert über eine objektbasierte Konfiguration zu erfassen, zwischenzuspeichern und bei Bedarf wieder auszulesen.
Verwendete Funktionsbausteine (FBs)¶
Haupt-Subapp: Uebung_012e¶
- Instanziiert die Subapp
Uebung_012e_submit vorgegebenen Parametern für Schlüssel, Abschnitt und Objekt. - Die Haupt-Subapp hat keine eigenen Ein-/Ausgänge; das Verhalten wird vollständig durch den Sub-Baustein definiert.
Sub-Bausteine: Uebung_012e_sub¶
- Typ:
SubAppType - Verwendete interne FBs:
NumericValue_PHYS:isobus::UT::io::NumericValue::NumericValue_PHYS- Parameter:
QI=TRUE - Ereignisausgang:
IND(wird nach erfolgreicher Werteerfassung ausgelöst) - Dateneingang:
stObj(Objektkonfiguration vom TypNumericObjectPool_S) - Datenausgang:
rPhys(physikalischer Wert alsREAL)
- Parameter:
INI:eclipse4diac::storage::INI- Parameter:
QI=TRUEDEFAULT_VALUE=REAL#0.0- Ereigniseingänge:
SET,GET,INIT - Ereignisausgänge:
SETO,GETO,INITO - Dateneingänge:
KEY(STRING),SECTION(STRING),VALUE(REAL) - Datenausgang:
VALUEO(REAL)
Q_NumericValue_PHYS:isobus::UT::Q::Q_NumericValue_PHYS- Ereigniseingang:
REQ - Dateneingänge:
stObj(Objektkonfiguration),rPhys(Wert) - Funktion: Qualifiziert den physikalischen Wert (z. B. zur Skalierung oder Offsetsetzung)
- Ereigniseingang:
- Funktionsweise:
- Der Baustein
NumericValue_PHYSliest gemäß der Objektkonfiguration (stObj) einen Wert und gibt diesen alsrPhysaus. Nach erfolgreicher Erfassung wird das EreignisINDgesendet. - Das Ereignis
INDlöst denSET-Eingang desINI-Bausteins aus. Dieser speichert den Wert unter dem angegebenenKEYin derSECTIONder INI-Datei. - Nach dem Speichern wird
SETOausgelöst, welches über den AusgangINDder Subapp weitergereicht wird. - Gleichzeitig startet die Initialisierungskette:
INITOvonINIwird mitGETverbunden, sodass nach dem Start der Subapp der gespeicherte Wert ausgelesen wird. - Der ausgelesene Wert (
VALUEO) wird an den BausteinQ_NumericValue_PHYSübergeben, der ihn mit der Objektkonfiguration qualifiziert und an den AusgangVALUEOder Subapp weiterleitet.
Programmablauf und Verbindungen¶
Die Subapp arbeitet in zwei Hauptphasen:
- Initialisierung (Start):
- Das Ereignis
INITOdesINI-Bausteins wird intern mit demGET-Eingang verbunden. - Dadurch wird sofort der gespeicherte Wert aus der INI-Datei gelesen.
- Der gelesene Wert wird über
VALUEOanQ_NumericValue_PHYSund an den Ausgang der Subapp weitergegeben. -
Das Ereignis
GETOwird ebenfalls an den AusgangINDder Subapp gesendet. -
Zyklischer Betrieb (bei Wertänderung):
NumericValue_PHYSerfasst bei Aktivierung einen neuen physikalischen Wert.- Dieser Wert wird über
rPhysan denVALUE-Eingang desINI-Bausteins gelegt. - Das Ereignis
INDvonNumericValue_PHYStriggert denSET-Eingang vonINI, wodurch der Wert gespeichert wird. - Nach erfolgreichem Speichern wird
SETOausgelöst, das alsINDder Subapp nach außen gegeben wird.
Datenverbindungen:
- Die Objektkonfiguration (stObj) wird von außen an NumericValue_PHYS und an Q_NumericValue_PHYS übergeben.
- Die Schlüssel- und Abschnittsnamen (KEY, SECTION) werden von außen an den INI-Baustein übergeben.
- Der gespeicherte Wert (VALUEO) wird sowohl an Q_NumericValue_PHYS als auch direkt an den Ausgang VALUEO der Subapp geführt.
Zusammenfassung¶
Die Übung vermittelt den Umgang mit physikalischen Werteingaben und persistenter Datenspeicherung in 4diac. Sie zeigt, wie man mit der Subapp-Technik eine wiederverwendbare Komponente erstellt, die: - einen numerischen Wert über ein Objekt einliest, - diesen Wert in einer INI-Datei speichert, - den gespeicherten Wert bei Systemstart wiederherstellt und - den Wert über einen Qualifier-Baustein prozessiert.
Durch die Kombination der Bausteine NumericValue_PHYS, INI und Q_NumericValue_PHYS wird ein typisches Szenario aus der Automatisierungstechnik (Erfassen, Speichern und Wiederherstellen von Parametern) abgebildet.