USERFUNC_e


Einleitung

Die globale Konstante USERFUNC_e definiert eine Aufzählung (Enumeration) von numerischen Werten, die spezifische Gerätefunktionen oder Rollen innerhalb eines ISOBUS-Netzwerks repräsentieren. Sie dient der standardisierten und lesbaren Identifikation verschiedener ISOBUS-Gerätetypen und -Funktionen in Steuerungsanwendungen.

Schnittstellenstruktur

Bei USERFUNC_e handelt es sich um eine Sammlung globaler Konstanten und nicht um einen Funktionsblock. Daher existieren keine Ereignis- oder Datenschnittstellen im herkömmlichen Sinne. Die Struktur besteht ausschließlich aus benannten Konstanten vom Typ SINT (Short Integer).

Daten-Eingänge

Nicht zutreffend. Diese Ressource stellt Konstanten zur Verfügung und besitzt keine Eingänge.

Daten-Ausgänge

Nicht zutreffend. Die Konstanten werden direkt im Anwendungscode referenziert.

Adapter

Nicht zutreffend.

Funktionsweise

USERFUNC_e ist eine Sammlung vordefinierter, konstanter Werte. Jeder Name (z.B. task_controller) ist mit einem festen numerischen Wert (z.B. 1) verknüpft. Diese Konstanten können in der gesamten Anwendung verwendet werden, um Geräterollen zu identifizieren, Vergleiche durchzuführen oder Parameter zu setzen, was die Code-Wartbarkeit und Lesbarkeit im Vergleich zur direkten Verwendung von „Magic Numbers“ erheblich verbessert.

Technische Besonderheiten

  • Datentyp: Alle Konstanten sind vom Typ SINT (8-Bit vorzeichenbehaftete Ganzzahl).

  • Bereich: Die definierten Werte liegen im Bereich von -1 (undefined) bis 21.

  • ISOBUS-Konformität: Die Bezeichnungen und Werte orientieren sich an den im ISOBUS-Standard (ISO 11783) definierten Gerätefunktionen.

  • Spezielle Werte:

    • undefined (-1): Kennzeichnet eine undefinierte oder unbekannte Funktion.

    • all_clients (20) & all_server (21): Werte für Broadcast- oder Gruppenadressierung.

Zustandsübersicht

Nicht zutreffend. Konstanten besitzen keinen Zustand.

Anwendungsszenarien

  • Geräteidentifikation: In einem Task-Controller kann mit IF device_function = USERFUNC_e.virtual_terminal THEN ... geprüft werden, ob eine Verbindung zu einem Terminal besteht.

  • Nachrichtenfilterung: Filterung von ISOBUS-Nachrichten (PGNs) basierend auf der Quell- oder Zielgerätefunktion.

  • Konfiguration: Parametrierung von Netzwerkdiensten, die nur für bestimmte Geräterollen (z.B. file_server) verfügbar sein sollen.

  • Diagnose: Lesbare Ausgabe von Geräterollen in Diagnoseprotokollen oder auf Benutzeroberflächen.

⚖️ Vergleich mit ähnlichen Bausteinen

Im Gegensatz zu Funktionsblöcken, die eine aktive Logik enthalten, ist USERFUNC_e eine passive Datentyp-/Konstantendefinition. Sie ist vergleichbar mit einem ENUM-Datentyp in höheren Programmiersprachen oder einer CONSTANT-Sektion in strukturiertem Text (ST). Ihr primärer Zweck ist die Bereitstellung semantisch bedeutsamer Namen für numerische Werte, die im ISOBUS-Kontext verwendet werden.

Fazit

Die globale Konstante USERFUNC_e ist ein essentielles Hilfsmittel für die Entwicklung lesbarer und wartbarer ISOBUS-Anwendungen in 4diac. Sie abstrahiert die rohen, im Standard definierten numerischen Werte für Gerätefunktionen durch aussagekräftige Bezeichner und trägt so maßgeblich zur Vermeidung von Fehlern und zur Verbesserung der Codequalität bei. Ihre Verwendung wird für alle Projekte empfohlen, die mit ISOBUS-Gerätekommunikation arbeiten.