INI_ALR¶
Einleitung¶
Der Funktionsblock INI_ALR dient dem Lesen und Speichern von Gleitkommawerten des Typs LREAL aus bzw. in eine settings.ini-Datei. Er greift dabei auf eine Konfigurationsdatei zu, die über einen Abschnittsnamen (Section) und einen Schlüssel (Key) parametriert wird. Der Baustein kapselt die Nutzung des internen INI-Funktionsblocks und stellt zusätzlich eine standardisierte ALR-Adapter-Schnittstelle (unidirektional) zur Verfügung, über die Werte sowohl gesetzt als auch gelesen werden können.
Schnittstellenstruktur¶
Ereignis-Eingänge¶
| Ereignis | Typ | Kommentar | Mit Variablen |
|---|---|---|---|
| INIT | EInit | Initialisiert den Baustein und löst Lesen aus | QI, SECTION, KEY, DEFAULT_VALUE |
Ereignis-Ausgänge¶
| Ereignis | Typ | Kommentar | Mit Variablen |
|---|---|---|---|
| INITO | EInit | Bestätigt die Initialisierung | QO, STATUS |
Daten-Eingänge¶
| Name | Typ | Kommentar |
|---|---|---|
| QI | BOOL | Event‑Eingangs‑Qualifizierer (Freigabe) |
| SECTION | STRING | Abschnittsname in der INI‑Datei |
| KEY | STRING | Schlüsselname innerhalb des Abschnitts |
| DEFAULT_VALUE | LREAL | Rückfallwert, falls der Schlüssel in der INI‑Datei fehlt |
Daten-Ausgänge¶
| Name | Typ | Kommentar |
|---|---|---|
| QO | BOOL | Event‑Ausgangs‑Qualifizierer |
| STATUS | STRING | Statusmeldung (z. B. Fehlertext) |
Adapter¶
| Adapter | Typ | Kommentar |
|---|---|---|
| ALR_IN | adapter::types::unidirectional::ALR | Socket – Wert zum Speichern (SET) |
| ALR_OUT | adapter::types::unidirectional::ALR | Plug – gelesener Wert (GET)/Bestätigung |
Funktionsweise¶
-
Initialisierung und erstes Lesen
Ein Ereignis am EingangINITtriggert die Initialisierung des internenINI-Bausteins. Die ParameterQI,SECTION,KEYundDEFAULT_VALUEwerden an denINI‑Baustein weitergeleitet. Nach dessen Quittierung (INITO) wird automatisch der GET‑Vorgang desINI-Bausteins ausgelöst. Der gelesene Wert erscheint am Datenausgang des AdaptersALR_OUT.D1und wird gleichzeitig über das EreignisALR_OUT.E1signalisiert. Die AusgängeQOundSTATUSdesINI-Bausteins werden direkt an die gleichnamigen Ausgänge desINI_ALRdurchgereicht. -
Schreiben über ALR-IN
Ein Set‑Ereignis am Adapter‑SocketALR_IN.E1wird an den SET-Eingang des internenINI-Bausteins weitergeleitet. Der zu speichernde Wert liegt anALR_IN.D1und wird überINI.VALUEgesetzt. Nach erfolgreichem Schreiben quittiert derINI-Baustein mitSETO, was wiederumALR_OUT.E1auslöst. -
Lesen über ALR-IN (implizit)
Über die initiale GET‑Sequenz und die Weiterleitung vonGETOsteht stets der aktuell gelesene Wert am AusgangALR_OUTzur Verfügung. Ein erneutes Lesen kann durch einen erneutenINIT‑Impuls angestoßen werden.
Technische Besonderheiten¶
- Wiederverwendung des standardisierten
INI-Bausteins (eclipse4diac::storage::INI) für den Dateizugriff. - ALR-Adapter‑Schnittstelle – erlaubt die unidirektionale Kopplung mit anderen Bausteinen, die denselben Adaptertyp verwenden. Dies vereinfacht die Integration in modulare Steuerungsapplikationen.
- Asynchrone Verarbeitung: Lese‑ und Schreibvorgänge werden ereignisgesteuert und asynchron durchgeführt; die Quittierung erfolgt über die entsprechenden Ereignisausgänge.
- Konform zum Standard IEC 61499‑2 – alle Ein‑ und Ausgänge sind mit Standardtypen definiert.
- Fehlerbehandlung erfolgt über den STATUS‑Ausgang (z. B. bei fehlender Datei oder fehlerhaften Daten).
Zustandsübersicht¶
Der INI_ALR selbst besitzt keine eigenen Zustandsautomaten. Die Zustandsverwaltung wird vollständig durch den internen INI-Baustein realisiert. Typische Phasen sind:
- Idle – Warten auf ein INIT-Ereignis.
- Initialize – Verarbeitung von INIT, Datenweiterleitung an INI.
- Ready/Lese‑Bereit – nach erfolgreicher INIT‑Quittierung ist ein Lese‑Ergebnis verfügbar.
- Schreib‑Vorgang – ausgelöst durch ALR_IN.E1.
- Fehlerzustand – bei fehlerhaften INI‑Zugriffen wird STATUS entsprechend gesetzt.
Anwendungsszenarien¶
- Maschinenkonfiguration – Laden von Parametern (z. B. Maximalgeschwindigkeit, Grenzwerte) aus einer zentralen INI‑Konfigurationsdatei.
- Kalibrierwerte – Speichern und Auslesen von Kalibrierdaten in der Automatisierungstechnik.
- Schnittstelle zu ALR‑basierten Komponenten – wenn ein Baustein einen LREAL‑Wert über einen ALR‑Adapter bereitstellt oder erwartet, kann
INI_ALRals Bindeglied zur persistenten Speicherung eingesetzt werden.
Vergleich mit ähnlichen Bausteinen¶
| Baustein | Beschreibung | Vorteil von INI_ALR |
|---|---|---|
INI |
Direkter Zugriff auf INI‑Dateien (ohne ALR) | Fehlende Adapter‑Schnittstelle, manuelle Kopplung nötig |
INI_ALR |
Kapselt INI und stellt ALR‑Adapter‑Schnittstelle bereit |
Einfache Integration in ALR‑basierte Architekturen |
Der INI_ALR kombiniert die bewährte INI‑Datei‑Funktionalität mit einer standardisierten Adapter‑Schnittstelle und reduziert dadurch den Aufwand für die Einbindung in ein diensteorientiertes Steuerungssystem.
Fazit¶
Der INI_ALR ist ein praxisorientierter Funktionsblock, der den Zugriff auf settings.ini für LREAL‑Daten um eine flexible Adapter‑Schnittstelle erweitert. Er eignet sich besonders für Anwendungen, die eine einheitliche ALR‑basierte Kommunikation erfordern und gleichzeitig eine einfache, dateibasierte Persistenz benötigen. Durch die Kapselung des komplexen INI‑Bausteins und die automatische Verkettung von Ereignis‑ und Datenflüssen wird der Entwicklungsaufwand reduziert und die Wiederverwendbarkeit erhöht.