NVS_AR¶
Einleitung¶
Der Funktionsblock NVS_AR dient zum Laden und Speichern von REAL-Daten in einem nichtflüchtigen Speicher (Non-Volatile Storage, NVS) anhand eines Schlüssels (Key). Er stellt über zwei AR-Adapter-Schnittstellen eine unidirektionale Kommunikation mit anderen IEC‑61499-Bausteinen bereit. Der Baustein kapselt den internen NVS-Baustein und erweitert dessen Funktionalität um eine standardisierte Adapter-Anbindung.
Schnittstellenstruktur¶
Ereignis-Eingänge¶
- INIT (EInit) – Initialisiert den Baustein. Beim Eintreten dieses Ereignisses werden die Daten-Eingänge
QI,KEYundDEFAULT_VALUEübernommen.
Ereignis-Ausgänge¶
- INITO (EInit) – Bestätigt den erfolgreichen Abschluss der Initialisierung. Nach diesem Ereignis sind die Ausgänge
QOundSTATUSgültig.
Daten-Eingänge¶
- QI (BOOL) – Eingangsqualifizierer; steuert die Ausführung der Initialisierung.
- KEY (STRING) – Schlüsselname, unter dem der Wert im NVS gespeichert/abgerufen wird.
- DEFAULT_VALUE (REAL) – Standardwert, der zurückgegeben wird, falls kein Eintrag mit dem angegebenen Schlüssel im NVS existiert.
Daten-Ausgänge¶
- QO (BOOL) – Ausgangsqualifizierer; zeigt den Erfolg der Initialisierung an.
- STATUS (STRING) – Statusmeldung zur Fehlerdiagnose oder Bestätigung.
Adapter¶
- AR_IN (Adapter vom Typ
adapter::types::unidirectional::AR) – Empfängt einen zu speichernden Wert (SET-Ereignis und Daten). - AR_OUT (Adapter vom Typ
adapter::types::unidirectional::AR) – Stellt den gelesenen Wert für andere Bausteine bereit (GETO-Ereignis und Daten).
Funktionsweise¶
Der Baustein arbeitet wie folgt:
- Initialisierung: Ein Ereignis an
INITstartet die Initialisierung des internenNVS-Bausteins. Die EingängeQI,KEYundDEFAULT_VALUEwerden anNVSweitergeleitet. - Nach Initialisierung: Sobald
NVSdie Initialisierung abschließt (EreignisINITO), wird automatisch ein Lesebefehl (GET) anNVSgesendet. Der gelesene Wert (oder der Standardwert) wird anschließend über den AdapterausgangAR_OUTausgegeben. - Speichern: Ein über den Adaptereingang
AR_INeingehendes Ereignis (AR_IN.E1) löst einen Speicherbefehl (SET) im internenNVSaus. Der zu speichernde Wert wird aus dem Adapterdatenkanal (AR_IN.D1) übernommen. - Rückmeldung: Sowohl nach einem Lese- als auch nach einem Speichervorgang wird das Ergebnis (Erfolg/Fehler) über das Adapterereignis
AR_OUT.E1und über die DatenausgängeQO/STATUSzurückgemeldet.
Technische Besonderheiten¶
- Der Baustein verwendet den unidirektionalen AR-Adapter, der eine lose Kopplung zwischen Funktionsblöcken ermöglicht.
- Er ist speziell für REAL-Daten ausgelegt; andere Datentypen können nicht verarbeitet werden.
- Die Implementierung basiert auf dem generischen
NVS-Baustein der BibliotheklogiBUS::storage::esp32_nvs. - Die Ereignissteuerung stellt sicher, dass nach der Initialisierung automatisch der aktuelle Wert aus dem NVS gelesen und bereitgestellt wird.
Zustandsübersicht¶
Der NVS_AR-Baustein verfügt über keine explizite Zustandsmaschine in der XML-Definition. Das funktionale Verhalten ergibt sich aus den Ereignisverkettungen:
- Ruhezustand: Der Baustein wartet auf ein Ereignis an
INIToderAR_IN.E1. - Initialisierungsphase: Nach
INITwird der interneNVS-Baustein gestartet. In dieser Phase sind die Ausgänge noch nicht gültig. - Betriebsphase: Nach
INITOist der Baustein bereit, Werte zu lesen (automatisch) und überAR_INgespeichert zu bekommen.
Anwendungsszenarien¶
- Konfigurationsspeicher: Speichern und Abrufen von REAL-Konfigurationsparametern (z. B. Grenzwerte, Faktoren) in einem ESP32‑NVS.
- Kalibrierdaten: Hinterlegen von Kalibrierwerten für Sensorik oder Aktorik.
- Persistente Betriebsdaten: Ablegen von Zählwerten oder Summen, die über Netzausfälle hinweg erhalten bleiben sollen.
Vergleich mit ähnlichen Bausteinen¶
| Merkmal | NVS_AR |
Direkter NVS-Baustein |
|---|---|---|
| Schnittstelle | AR-Adapter (unidirektional) | Standard‑Ereignis-/Dateneingänge |
| Einsatzzweck | Einfache Einbindung in adapterbasierte Netzwerke | Flexibel, aber aufwändigere Verdrahtung |
| Datentyp | REAL | Mehrere Typen (über generischen Parameter) |
Der NVS_AR vereinfacht die Integration, indem er die Adapter‑Anbindung standardisiert, während der reine NVS-Baustein eine breitere Typenunterstützung bietet.
Fazit¶
Der NVS_AR-Funktionsblock bietet eine kompakte und adapterbasierte Lösung zum Laden und Speichern von REAL-Daten im nichtflüchtigen Speicher. Durch die Verwendung des AR-Adapters lässt er sich besonders leicht in bestehende IEC‑61499‑Netzwerke einfügen, ohne auf detaillierte Verbindungen achten zu müssen. Die automatische initiale Auslese nach der Initialisierung erleichtert die Anwendung in typischen Szenarien der Echtzeitsteuerung.