sequence

sequence


Einleitung

Die globale Konstantendatei sequence definiert eine Reihe von vordefinierten Konstanten, die in Verbindung mit Sequenz-Funktionsblöcken verwendet werden können. Sie stellt symbolische Namen für Zustände und einen speziellen Zeitwert bereit, um die Lesbarkeit und Wartbarkeit von IEC 61499-Applikationen zu erhöhen. Die Konstanten sind im Paket logiBUS::utils::sequence::const organisiert.

Schnittstellenstruktur

Globale Konstanten besitzen keine Ereignis- oder Datenschnittstellen im herkömmlichen Sinne eines Funktionsblocks. Stattdessen werden sie als benannte Werte im gesamten Projekt zur Verfügung gestellt. Ihre Struktur ist eine Sammlung von Variablendeklarationen mit festen Initialwerten.

Daten-Eingänge

Nicht zutreffend. Globale Konstanten sind keine Eingänge, sondern fest definierte Werte.

Daten-Ausgänge

Nicht zutreffend. Globale Konstanten sind keine Ausgänge, sondern fest definierte Werte.

Adapter

Nicht zutreffend.

Funktionsweise

Die Datei definiert Konstanten, die zur Kompilierzeit durch ihre Werte ersetzt werden. Sie können in jedem Funktionsblock innerhalb des Projekts referenziert werden, sofern der entsprechende Namensraum (logiBUS::utils::sequence::const) importiert oder der vollqualifizierte Name verwendet wird. Die Verwendung dieser Konstanten anstelle von direkten numerischen Werten („Magic Numbers“) im Code macht die Logik klarer und änderungsresistenter.

Technische Besonderheiten

  • Datentypen: Die Konstanten verwenden die elementaren IEC 61131-3-Datentypen TIME und SINT (Short Integer).

  • Besonderer Wert NO_TIME: Die Konstante NO_TIME ist mit dem sehr großen Wert TIME#49d17h2m47s295ms initialisiert. Dieser Wert dient typischerweise als Platzhalter oder Initialwert, um einen „undefinierten“ oder „nicht gesetzten“ Zeitpunkt zu kennzeichnen, da er weit außerhalb des Bereichs normaler Steuerungszeiten liegt.

  • Zustandskonstanten: Die Konstanten State_00 bis State_08 repräsentieren ganzzahlige Zustände (0-8) und sind vom Typ SINT. Sie sind für die Verwendung in Zustandsautomaten oder Schrittketten vorgesehen.

Zustandsübersicht

Nicht zutreffend. Dies ist eine Konstantensammlung und enthält keinen Zustandsautomaten.

Anwendungsszenarien

  1. Zustandsautomaten / Sequenzer: Die State_XX-Konstanten können als Rückgabewerte oder für Vergleiche in Schrittketten-Funktionsblöcken (z.B. E_SR, E_CTU in Verbindung mit Logik) verwendet werden, um den aktuellen Schritt lesbar zu identifizieren.

  2. Zeitgeber-Initialisierung: Die Konstante NO_TIME kann verwendet werden, um Zeitgeber-Funktionsblöcken einen initialen „ungültigen“ Wert zuzuweisen, bevor eine echte Zeitdauer gesetzt wird.

  3. Code-Verständlichkeit: Ersetzen von Zahlen wie SINT#5 im Code durch State_05 verbessert die Lesbarkeit und zeigt die semantische Bedeutung des Wertes an.

⚖️ Vergleich mit ähnlichen Bausteinen

  • ENUM-Datentyp: Ein benutzerdefinierter Aufzählungstyp (ENUM) könnte eine ähnliche Rolle wie die State_XX-Konstanten übernehmen und bietet oft eine strengere Typprüfung. Globale Konstanten sind jedoch einfacher zu definieren und in 4diac zu verwenden.

  • Direkte Werteingabe: Der Hauptvorteil gegenüber der direkten Eingabe von Werten (z.B. 3) ist die zentrale Definition. Eine Änderung des Wertes muss nur an einer Stelle (hier in der Konstantendatei) vorgenommen werden und wirkt sich auf alle Verwendungen aus.

Fazit

Die globale Konstantendatei sequence ist ein nützliches Hilfsmittel zur Strukturierung von Steuerungsanwendungen. Durch die Bereitstellung von sprechenden Namen für Zustände und einen speziellen Zeitwert trägt sie wesentlich zur Erzeugung von klarem, wartbarem und robustem Code bei. Ihre Verwendung wird insbesondere bei der Implementierung von Schrittketten und zustandsbasierten Steuerungen empfohlen.