IDs


Einleitung

Das globale Konstantenpaket IDs stellt eine Sammlung von vordefinierten, unveränderlichen Werten (Konstanten) bereit, die innerhalb von Funktionsbausteinen der IEC 61499-Laufzeitumgebung verwendet werden können. Diese Konstanten dienen primär der Verbesserung der Lesbarkeit und Wartbarkeit des Quellcodes, indem sie magische Zahlen durch aussagekräftige Bezeichner ersetzen. Das Paket ist im Namensraum isobus::UT::Q::const definiert.

Schnittstellenstruktur

Da es sich um ein Paket mit globalen Konstanten handelt, besitzt es keine ereignis- oder datenflussbasierten Schnittstellen im herkömmlichen Sinne eines Funktionsbausteins. Die Konstanten sind statisch und können direkt über ihren Namen referenziert werden.

Ereignis-Eingänge

Nicht vorhanden.

Ereignis-Ausgänge

Nicht vorhanden.

Daten-Eingänge

Nicht vorhanden.

Daten-Ausgänge

Nicht vorhanden.

Adapter

Nicht vorhanden.

Funktionsweise

Die Konstanten werden beim Kompilieren der Anwendung durch ihre fest definierten Werte ersetzt. Sie verhalten sich wie Literale, besitzen jedoch einen semantischen Namen. Die im Paket enthaltenen Konstanten sind:

  • ID_NULL: Repräsentiert einen ungültigen oder nicht initialisierten Bezeichner (ID) vom Typ UINT mit dem Hexadezimalwert 16#FFFF (dezimal 65535).

  • ID_OFF: Repräsentiert einen speziellen Bezeichnerwert, der „Aus“ oder „Inaktiv“ signalisiert, vom Typ UINT mit dem Wert 16#0 (dezimal 0).

  • GLOBAL: Ein Bezeichner vom Typ USINT mit dem Wert 16#FF (dezimal 255), der typischerweise für globale oder broadcast-Adressierung verwendet wird.

  • OFF: Ein einfacher Statuswert vom Typ USINT für den Zustand „Aus“ mit dem Wert 16#0 (dezimal 0).

Technische Besonderheiten

  • Typisierung: Die Konstanten sind streng typisiert (UINT, USINT). Dies gewährleistet Typsicherheit bei ihrer Verwendung in Zuweisungen und Vergleichen.

  • Initialwert: Jede Konstante wird bei ihrer Deklaration mit einem festen, unveränderlichen Initialwert versehen.

  • Namensraum: Die Konstanten sind im Paket isobus::UT::Q::const gekapselt, was Namenskonflikte mit anderen Bibliotheken verhindert.

Zustandsübersicht

Da es sich um statische, konstante Werte handelt, existiert kein Zustandsautomat.

Anwendungsszenarien

  • Initialisierung: Zuweisung eines definierten Startwerts (z.B. ID_NULL) an Variablen, die später eine gültige ID erhalten.

  • Vergleich: Prüfung, ob eine empfangene oder gelesene ID einem speziellen Wert entspricht (z.B., IF receivedID = IDs.ID_OFF THEN ...).

  • Parameterisierung: Verwendung der Konstanten als aussagekräftige Parameter in Funktionsbausteinen, anstelle von direkten numerischen Werten.

  • Kommando- und Statuswerte: Verwendung von OFF und GLOBAL zur Steuerung von Prozessen oder zur Adressierung von Geräten in einem Netzwerk.

⚖️ Vergleich mit ähnlichen Bausteinen

Im Gegensatz zu Funktionsbausteinen (FBs) mit Algorithmen und Ereignissteuerung stellt dieses Paket lediglich Datenbereitstellung dar. Es ist vergleichbar mit:

  • ENUM-Datentypen: Während ENUMs eine Liste von benannten Ganzzahlwerten eines Typs definieren, definiert dieses Paket einzelne, lose Konstanten verschiedener Typen.

  • #define-Präprozessor-Direktiven (in C): Beide ersetzen einen Namen durch einen Wert. Die Konstanten in IDs sind jedoch typsicher und in der 4diac-IDE verwaltbar.

Fazit

Das globale Konstantenpaket IDs ist ein einfaches, aber nützliches Hilfswerkzeug für die strukturierte Programmierung in 4diac. Es erhöht die Code-Qualität, reduziert Fehler durch Tippfehler in numerischen Werten und macht die Absicht des Programmierers explizit. Seine Verwendung wird insbesondere in größeren Projekten oder bei der Arbeit mit Protokollen wie ISOBUS empfohlen, wo spezielle Bezeichnerwerte häufig vorkommen.