NVS_AUI¶
Einleitung¶
Der Funktionsblock NVS_AUI dient dem Laden und Speichern von UINT-Daten in einem nichtflüchtigen Speicher (NVS) mittels eines Schlüssels (Key). Er kapselt die Zugriffe auf den NVS und stellt eine standardisierte AUI‑Adapter‑Schnittstelle bereit, über die gelesene Werte ausgegeben und zu speichernde Werte entgegengenommen werden. Typische Einsatzorte sind eingebettete Systeme, die Konfigurations- oder Zustandsdaten persistent ablegen müssen.
Schnittstellenstruktur¶
Ereignis-Eingänge¶
| Ereignis | Kommentar | Mitgeführte Daten |
|---|---|---|
INIT |
Service‑Initialisierung | QI (BOOL), KEY (STRING), DEFAULT_VALUE (UDINT) |
Ereignis-Ausgänge¶
| Ereignis | Kommentar | Mitgeführte Daten |
|---|---|---|
INITO |
Initialisierungsbestätigung | QO (BOOL), STATUS (STRING) |
Daten-Eingänge¶
| Name | Typ | Kommentar |
|---|---|---|
QI |
BOOL | Qualifikator für das Eingangsereignis |
KEY |
STRING | Schlüsselname für den NVS‑Zugriff |
DEFAULT_VALUE |
UDINT | Wert, der ausgelesen wird, falls im NVS kein Eintrag vorhanden |
Daten-Ausgänge¶
| Name | Typ | Kommentar |
|---|---|---|
QO |
BOOL | Qualifikator für das Ausgangsereignis |
STATUS |
STRING | Dienststatus‑Meldung |
Adapter¶
| Adapter | Typ / Richtung | Kommentar |
|---|---|---|
AUI_IN |
Socket (Eingang) – Typ: adapter::types::unidirectional::AUI |
Liefert den zu speichernden Wert (SET) |
AUI_OUT |
Plug (Ausgang) – Typ: adapter::types::unidirectional::AUI |
Gibt den ausgelesenen Wert aus (GETO) |
Funktionsweise¶
-
Initialisierung
EinINIT‑Ereignis löst die Verbindung zum nichtflüchtigen Speicher aus. Dabei werden der Schlüssel (KEY) und der Standardwert (DEFAULT_VALUE) übergeben. Nach erfolgreicher Initialisierung wirdINITOmit dem Ergebnis (QO/STATUS) quittiert. -
Daten lesen
Nach der Initialisierung wird intern automatisch der gespeicherte Wert zum angegebenen Schlüssel gelesen und über den AusgangsadapterAUI_OUTals Ereignis (E1) und Daten (D1) bereitgestellt. Falls kein Eintrag existiert, wird derDEFAULT_VALUEausgegeben. -
Daten speichern
Über den EingangsadapterAUI_INkann ein neuer Wert empfangen werden. Ein eingehendes Ereignis (E1) mit den zugehörigen Daten (D1) wird an den internen NVS‑Funktionsblock weitergeleitet, der den Wert unter dem initialisierten Schlüssel persistent ablegt.
Der gesamte Daten‑ und Ereignisfluss wird durch den eingebetteten Funktionsblock NVS (aus der Bibliothek logiBUS::storage::esp32_nvs) realisiert.
Technische Besonderheiten¶
- AUI‑Adapter‑Schnittstelle
Die unidirektionalen AdapterAUI_INundAUI_OUTermöglichen eine lose Kopplung zwischen dem NVS‑Baustein und anderen Komponenten, die standardisierte AUI‑Schnittstellen verwenden. - Automatischer Lesevorgang nach INIT
Direkt nach der Initialisierung wird der Wert gelesen und überAUI_OUTbereitgestellt – ohne ein separates „Get“‑Ereignis. - Fehlerbehandlung
Fehler während der Initialisierung oder bei Speicherzugriffen werden überSTATUSsignalisiert.
Zustandsübersicht¶
Der FB befindet sich nach dem Hochlaufen im Ruhezustand.
- Initialisierung (beim Eintreffen von INIT): Herstellen der NVS‑Verbindung, Lesen des vorhandenen Werts.
- Bereit (nach erfolgreichem INITO): Warten auf eingehende Daten über AUI_IN zum Speichern oder auf externe Anfragen über AUI_OUT.
- Speichervorgang (bei Ereignis an AUI_IN): Wert wird persistiert; danach Rückkehr in den Bereit‑Zustand.
- Fehlerzustand (bei nicht erfolgreicher Initialisierung): QO = FALSE, STATUS enthält Fehlertext.
Anwendungsszenarien¶
- Konfigurationsspeicher in IoT‑Geräten: Ablegen von Netzwerkeinstellungen, Kalibrierdaten oder Benutzereinstellungen.
- Zustandsüberwachung: Speichern des letzten Betriebszustands (z. B. Zählerstände) vor einem Spannungsausfall.
- Parameterübergabe zwischen unterschiedlichen Automatisierungskomponenten, die über AUI‑Adapter kommunizieren.
Vergleich mit ähnlichen Bausteinen¶
Gegenüber dem direkten NVS‑Funktionsblock bietet NVS_AUI eine höhere Abstraktion durch die Adapter‑Schnittstelle. Während der Basis‑Baustein separate Ereignisse für Lesen (GET) und Schreiben (SET) benötigt, vereinfacht NVS_AUI den Datenfluss durch die unidirektionalen Adapter und den automatischen Lesevorgang nach INIT. Andere Speicherbausteine (z. B. F_MMAP, F_FILE) verwenden meist dateibasierte oder speicherabbildende Verfahren; NVS_AUI ist speziell für nichtflüchtige Speicher mit Schlüssel‑Wert‑Paaren optimiert.
Fazit¶
NVS_AUI ist ein praktischer Funktionsblock zur persistenten Datenhaltung in Automatisierungssystemen. Die Kombination aus NVS‑Speicher und AUI‑Adapter erlaubt eine einfache Einbindung in bestehende IEC 61499‑Applikationen, reduziert den Verdrahtungsaufwand und sorgt für eine klare Trennung zwischen Speicherlogik und Kommunikation.