Zum Inhalt

FIELDBUS_USINT_TO_SIGNAL

FIELDBUS_USINT_TO_SIGNAL


Einleitung

Der Funktionsblock FIELDBUS_USINT_TO_SIGNAL dient der Aufbereitung eines USINT-Signals aus einem Feldbus. Er prüft, ob der eingehende Wert einen gültigen Signalbereich darstellt und spiegelt diesen gegebenenfalls auf den Ausgang. Andernfalls wird der Ausgang auf einen definierten Nullwert gesetzt und das Gültigkeitssignal zurückgesetzt.

Schnittstellenstruktur

Ereignis-Eingänge

Ereignis Beschreibung Mit
REQ Normaler Ausführungsauftrag IN

Ereignis-Ausgänge

Ereignis Beschreibung Mit
CNF Ausführungsbestätigung OUT, VALID

Daten-Eingänge

Name Typ Kommentar Initialwert
IN USINT Eingangswert vom Feldbus BYTE_TO_USINT(NOT_AVAILABLE_B)

Daten-Ausgänge

Name Typ Kommentar Initialwert
OUT USINT Gefilterter Ausgangswert 16#00
VALID BOOL TRUE, wenn Signal gültig FALSE

Adapter

Keine.

Funktionsweise

Beim Eintreffen eines REQ-Ereignisses wird der Algorithmus ausgeführt. Der eingehende Wert IN wird mit dem konstanten Grenzwert VALID_SIGNAL_B (als USINT interpretiert) verglichen. Wenn IN <= BYTE_TO_USINT(VALID_SIGNAL_B) erfüllt ist, wird der Eingangswert direkt auf den Ausgang OUT übernommen und das Gültigkeitssignal VALID auf TRUE gesetzt. Andernfalls wird OUT auf 0 und VALID auf FALSE gesetzt. Das Ergebnis wird mit dem CNF-Ereignis quittiert.

Die beiden Konstanten NOT_AVAILABLE_B und VALID_SIGNAL_B sind Teil des Pakets eclipse4diac::signalprocessing::FIELDBUS_SIGNAL und definieren einen Referenzwert für „nicht verfügbar“ bzw. den oberen Grenzwert für gültige Signale.

Technische Besonderheiten

  • Der Initialwert des Eingangs IN ist auf BYTE_TO_USINT(NOT_AVAILABLE_B) gesetzt, sodass bei erstmaligem Aufruf ohne gültigen Wert sofort ein ungültiger Zustand signalisiert wird.
  • Der Vergleich verwendet die Funktion BYTE_TO_USINT, um den Byte-Wert der Konstanten in den Datentyp USINT zu konvertieren.
  • Der Baustein ist unter der Eclipse Public License 2.0 lizenziert.

Zustandsübersicht

Der Funktionsblock besitzt einen einzigen Zustand REQ. Sobald ein REQ-Ereignis eintrifft, wird der Algorithmus ausgeführt und unmittelbar das CNF-Ereignis gesendet. Es gibt keine internen Zustandsänderungen oder Verzögerungen.

Anwendungsszenarien

  • Feldbus-Signalaufbereitung: Ein Sensor liefert Werte im Bereich 0–127 als gültige Signale. Der Grenzwert VALID_SIGNAL_B wird auf 127 gesetzt. Werte darüber (z. B. 255 als Fehlercode) werden als ungültig erkannt.
  • Initialisierung: Beim Systemstart ist der Eingang auf den „nicht verfügbar“-Wert vorbesetzt, sodass bis zum ersten gültigen Empfang der Ausgang auf 0 und VALID auf FALSE bleibt.
  • Fehlererkennung: Durch Anpassung des Grenzwerts können beliebige zulässige Wertebereiche definiert werden.

Vergleich mit ähnlichen Bausteinen

Ähnliche Bausteine wie FIELDBUS_BYTE_TO_SIGNAL oder FIELDBUS_SINT_TO_SIGNAL arbeiten nach dem gleichen Prinzip, jedoch mit anderen Datentypen. Dieser Baustein spezialisiert sich auf USINT. Ein einfacher „Mirror“-Baustein ohne Gültigkeitsprüfung würde den Wert ungefiltert durchreichen.

Fazit

Der FIELDBUS_USINT_TO_SIGNAL-Baustein bietet eine einfache und zuverlässige Möglichkeit, USINT-Feldbussignale auf ihre Gültigkeit zu prüfen und nur gültige Werte an die nachfolgende Verarbeitung weiterzugeben. Durch die Verwendung konfigurierbarer Grenzwerte (über die Paketkonstanten) ist er flexibel einsetzbar.