FIELDBUS_USINT_TO_SIGNAL_SCALED¶
Einleitung¶
Der Funktionsblock FIELDBUS_USINT_TO_SIGNAL_SCALED dient der Umwandlung eines eingehenden USINT-Signals in einen skalierten REAL-Wert unter Berücksichtigung einer Gültigkeitsprüfung. Er wird typischerweise in der Feldbus-Signalverarbeitung eingesetzt, um Rohwerte aus dem Feldbus (z. B. Sensordaten) mit einem Skalierungsfaktor und einem Offset zu versehen und parallel die Gültigkeit des Eingangssignals zu bewerten. Der Baustein ist nach dem Standard IEC 61499-1 aufgebaut.
Schnittstellenstruktur¶
Ereignis-Eingänge¶
| Ereignis | Typ | Beschreibung |
|---|---|---|
INIT |
EInit | Initialisierungsanfrage; mit den Parametern SCALE und OFFSET verknüpft. |
REQ |
Event | Normale Ausführungsanfrage; mit dem Daten-Eingang IN verknüpft. |
Ereignis-Ausgänge¶
| Ereignis | Typ | Beschreibung |
|---|---|---|
INITO |
EInit | Bestätigung der Initialisierung. |
CNF |
Event | Bestätigung der Ausführung; mit den Ausgängen OUT und VALID verknüpft. |
Daten-Eingänge¶
| Name | Datentyp | Initialwert | Beschreibung |
|---|---|---|---|
IN |
USINT | BYTE_TO_USINT(NOT_AVAILABLE_B) |
Eingangssignal als vorzeichenloser 8‑Bit‑Wert. Der Initialwert entspricht dem Signal „nicht verfügbar“. |
SCALE |
REAL | REAL#1.0 |
Skalierungsfaktor (Multiplikation). |
OFFSET |
DINT | DINT#0 |
Offset, der nach der Skalierung addiert wird. |
Daten-Ausgänge¶
| Name | Datentyp | Initialwert | Beschreibung |
|---|---|---|---|
OUT |
REAL | REAL#0.0 |
Skalierter Ausgangswert. |
VALID |
BOOL | FALSE |
Gültigkeitsflag: TRUE, wenn das Eingangssignal gültig ist. |
Adapter¶
Keine vorhanden.
Funktionsweise¶
Der Baustein arbeitet mit zwei Zuständen: INIT und REQ.
- Bei einem
INIT-Ereignis werden die ParameterSCALEundOFFSETübernommen (der Algorithmus ist leer, die Werte werden jedoch durch dasWith-Binding eingelesen). Anschließend wirdINITOausgegeben. - Bei einem
REQ-Ereignis wird der AlgorithmusREQausgeführt:
Falls der EingangswertINkleiner oder gleich dem vordefinierten GrenzwertBYTE_TO_USINT(VALID_SIGNAL_B)ist, gilt das Signal als gültig. In diesem Fall wird der Wert wie folgt skaliert:OUT := USINT_TO_REAL(IN) * SCALE + DINT_TO_REAL(OFFSET)undVALIDwird aufTRUEgesetzt.
ÜberschreitetINden Grenzwert (d. h. das Signal ist ungültig), werdenOUTauf0.0undVALIDaufFALSEgesetzt.
Das Verhalten spiegelt den Eingang 1:1 auf den Ausgang wider, sofern das Signal gültig ist – mit zusätzlicher Skalierung und Offset.
Technische Besonderheiten¶
- Die Konstanten
NOT_AVAILABLE_BundVALID_SIGNAL_Bstammen aus dem externen Paketeclipse4diac::signalprocessing::FIELDBUS_SIGNAL. Sie definieren die Grenzen zwischen gültigen und ungültigen USINT-Werten.BYTE_TO_USINT(NOT_AVAILABLE_B)ist der initiale Zustand des Eingangs und kennzeichnet ein „nicht verfügbares“ Signal. - Der
INIT-Algorithmus enthält keinen ST-Code – die Initialisierung beschränkt sich auf das Bereitstellen der Parameter über die Ereignisbindung. Der Baustein erwartet vor dem erstenREQeinenINIT-Aufruf, um Skalierung und Offset zu setzen. - Die Skalierung erfolgt grundsätzlich als REAL‑Arithmetik; der Offset wird deshalb von DINT nach REAL konvertiert.
Zustandsübersicht¶
Der Funktionsblock besitzt zwei elementare Zustände als einfacher FB:
| Zustand | Aktion | Ausgangsereignis |
|---|---|---|
INIT |
Führe Algorithmus INIT aus (leer) |
INITO |
REQ |
Führe Algorithmus REQ aus |
CNF |
Es existieren keine weiteren Wartezustände – jeder eingehende Event führt sofort zur Bearbeitung des zugehörigen Algorithmus und zur Ausgabe des zugehörigen Ausgangsereignisses.
Anwendungsszenarien¶
- Feldbus-Sensorauswertung: Ein Sensor liefert einen USINT-Rohwert (z. B. 0…200). Über
SCALEundOFFSETwird daraus die physikalische Größe (z. B. Druck in bar) berechnet. Der GrenzwertVALID_SIGNAL_Btrennt gültige Messwerte von Fehler- oder Initialisierungswerten. - Aktualisierung von Prozessvariablen: In SPS- oder Steuerungsapplikationen wird der Baustein zyklisch mit
REQgetriggert, um die neuesten Feldbusdaten zu verarbeiten und in den Steuerungskontext zu übernehmen.
Vergleich mit ähnlichen Bausteinen¶
FIELDBUS_USINT_TO_SIGNAL: Ein einfacherer Baustein ohne Skalierung und Offset; er gibt den USINT-Wert direkt als REAL oder als anderen Datentyp aus.FIELDBUS_WORD_TO_SIGNAL_SCALED: Analoger Baustein für WORD-Eingänge – bietet eine höhere Auflösung, benötigt aber einen anderen Datentyp.FIELDBUS_USINT_TO_SIGNAL_SCALEDzeichnet sich durch die Kombination aus Gültigkeitsprüfung (basierend auf der KonstanteVALID_SIGNAL_B) und einfacher linearer Skalierung (Multiplikation + Addition) aus.
Fazit¶
Der Funktionsblock FIELDBUS_USINT_TO_SIGNAL_SCALED ist ein kompakter, aber leistungsfähiger Baustein zur Verarbeitung von 8‑Bit‑Feldbussignalen. Er vereint Gültigkeitserkennung, Skalierung und Offset in einer logischen Einheit und eignet sich besonders für Anwendungen, bei denen Rohwerte in physikalische Größen umgerechnet und gleichzeitig auf ihre Plausibilität geprüft werden müssen. Die einfache Zustandsmaschine und die klar definierten Schnittstellen machen ihn robust und einfach einsetzbar.