StringValue_IS¶
Einleitung¶
Der Funktionsblock StringValue_IS ist ein Eingangs-Service-Interface-Funktionsblock (Input SIFB) für den Empfang von Zeichenketten-Daten (String) aus einer Ressource. Er dient als standardisierte Schnittstelle, um externe String-Informationen in die 4diac-Umgebung zu integrieren. Typische Anwendungen sind die Anbindung an ISOBUS-Systeme, bei denen Zeichenketten wie Benennungen, Statusmeldungen oder Kennungen empfangen werden.
Schnittstellenstruktur¶
Ereignis-Eingänge¶
| Ereignis | Typ | Beschreibung | Mitgeführte Daten |
|---|---|---|---|
INIT |
EInit | Initialisierung des Service-Interface-Bausteins | QI, PARAMS, u16ObjId |
REQ |
Event | Anforderung zur Datenabfrage oder -aktualisierung | QI |
Ereignis-Ausgänge¶
| Ereignis | Typ | Beschreibung | Mitgeführte Daten |
|---|---|---|---|
INITO |
EInit | Bestätigung der erfolgreichen Initialisierung | QO, STATUS |
CNF |
Event | Bestätigung der ausgeführten Anforderung | QO, STATUS, IN |
IND |
Event | Asynchrone Indikation – neue Eingangsdaten von der Ressource | QO, STATUS, IN |
Daten-Eingänge¶
| Name | Typ | Anfangswert | Beschreibung |
|---|---|---|---|
QI |
BOOL | – | Ereignisqualifizierer: Steuert die Ausführung der zugehörigen Ereignisse |
PARAMS |
STRING | – | Service-Parameter (z. B. Konfiguration des Zugriffs auf die Ressource) |
u16ObjId |
UINT | ID_NULL |
Objekt-ID, die den zu lesenden String in der Ressource identifiziert |
Daten-Ausgänge¶
| Name | Typ | Beschreibung |
|---|---|---|
QO |
BOOL | Ereignisqualifizierer: Zeigt an, ob der Ausgang gültige Daten liefert |
STATUS |
STRING | Statusmeldung des Service (z. B. Fehlercodes oder Erfolgsmeldung) |
IN |
STRING | Empfangene Zeichenkette von der Ressource |
Adapter¶
Der Funktionsblock verfügt über keine Adapter-Schnittstellen.
Funktionsweise¶
Der StringValue_IS arbeitet nach dem üblichen Schema eines Service-Interface-Funktionsblocks für den Dateneingang:
-
Initialisierung (
INIT)
Durch Anlegen einesINIT-Ereignisses wird der Baustein konfiguriert. Die ParameterQI(Qualifizierer),PARAMS(Service-Parameter) undu16ObjId(Objekt-ID) werden übergeben. Nach erfolgreicher Initialisierung bestätigt der Baustein mit dem EreignisINITOund liefert den Status überQOundSTATUS. -
Anforderung (
REQ)
EinREQ-Ereignis löst eine aktive Datenabfrage bei der Ressource aus. Der QualifiziererQIwird ausgewertet. Die Antwort wird mit dem EreignisCNFzurückgegeben. Der empfangene String steht dann am AusgangINzur Verfügung. -
Asynchrone Indikation (
IND)
Die Ressource kann jederzeit neue Daten senden. Der Baustein signalisiert dies durch das EreignisIND. Gleichzeitig werden die aktuellen Daten am AusgangINsowie der Status überQOundSTATUSbereitgestellt.
Die Ausgänge IN, QO und STATUS werden bei jedem der Ereignisse CNF und IND aktualisiert und können sofort von nachfolgenden Bausteinen verwendet werden.
Technische Besonderheiten¶
-
Objekt-ID:
Der Eingangu16ObjIdist mit dem InitialwertID_NULLvordefiniert. Vor der ersten Nutzung muss eine gültige Objekt-ID gesetzt werden. Die tatsächliche Bedeutung der ID ist abhängig vom zugrundeliegenden Ressourcen-Protokoll (z. B. ISOBUS-Objektnummer). -
Service-Parameter (
PARAMS):
Dieser String-Eingang dient der Übergabe konfigurationsspezifischer Parameter (z. B. Busadresse, Kommunikationspfad). Die genaue Syntax ist vom implementierten Treiber abhängig. -
Typische Ereignissequenz:
INIT→INITO→ (ggf. wiederholteREQ↔CNFoder asynchroneIND). -
Fehlerbehandlung:
Fehler werden über denSTATUS-Ausgang signalisiert und können zur Fehlerdiagnose herangezogen werden.
Zustandsübersicht¶
Der Baustein durchläuft folgende grundlegende Zustände (nicht im XML explizit modelliert, aber typisch für SIFBs):
- Nicht initialisiert: Nach dem Start des Systems. Nur
INITwird verarbeitet. - Initialisiert: Nach erfolgreichem
INITO. Der Baustein ist bereit fürREQund kann asynchroneINDempfangen. - Anforderung läuft: Nach einem
REQbis zum Eintreffen vonCNF. In dieser Zeit werden keine weiteren Anforderungen verarbeitet. - Fehlerzustand: Bei Fehlern in der Kommunikation. Kann durch erneutes
INITzurückgesetzt werden.
Anwendungsszenarien¶
-
ISOBUS-Steuergeräte:
Empfangen von Zeichenketten wie Gerätenamen, Variablenbezeichnungen oder Statusmeldungen von einem ISOBUS-Server. -
Benutzerschnittstellen:
Einlesen von Textdaten, die von einem externen HMI oder einem Bedienpanel gesendet werden. -
Konfigurationsdaten:
Abrufen von String-Parametern aus einem zentralen Konfigurationsservice.
Vergleich mit ähnlichen Bausteinen¶
| Baustein | Datentyp | Besonderheit |
|---|---|---|
BOOL_IS |
BOOL | Einfache boolesche Eingänge (z. B. Schalter) |
INT_IS |
INT | Ganzzahlige Eingänge (z. B. Zählerstände) |
REAL_IS |
REAL | Gleitkomma-Eingänge (z. B. Messwerte) |
StringValue_IS |
STRING | Zeichenketten – für Namen, Beschreibungen, irregular formatierte Daten |
Der StringValue_IS ergänzt die Familie der Eingangs-SIFBs um den flexiblen Datentyp STRING, der sich durch variable Länge und Inhalt auszeichnet.
Fazit¶
Der StringValue_IS ist ein wesentlicher Baustein für die Integration zeichenkettenbasierter Daten in 4diac. Er bietet eine standardisierte Schnittstelle zur Ressource, ermöglicht sowohl aktive Abfragen als auch asynchrone Indikationen und lässt sich durch die Parameter PARAMS und u16ObjId flexibel konfigurieren. Seine Verwendung vereinfacht die Anbindung an Protokolle wie ISOBUS und erhöht die Wiederverwendbarkeit von Anwendungslogiken.