PUBLISH_1

image

Einleitung

Der PUBLISH_1-Funktionsblock dient zum Senden von Daten an einen oder mehrere SUBSCRIBE_1-Blöcke. Er implementiert ein Publish-Subscribe-Kommunikationsmuster, bei dem Daten unbestätigt an alle angemeldeten Empfänger verteilt werden.

PUBLISH_1

Schnittstellenstruktur

Ereignis-Eingänge

  • INIT: Initialisierungsereignis mit zugehörigen Daten QI und ID

  • REQ: Sendeanfrage für Daten (unbestätigt) mit zugehörigen Daten QI und SD_1

Ereignis-Ausgänge

  • INITO: Bestätigung der Initialisierung mit zugehörigen Daten QO und STATUS

  • CNF: Bestätigung, dass Daten gesendet wurden mit zugehörigen Daten QO und STATUS

Daten-Eingänge

  • QI (BOOL): Qualifizierer für Initialisierung und Betrieb

  • ID (WSTRING): Identifikator für den Publish-Kanal

  • SD_1 (ANY): Zu sendende Daten (beliebiger Datentyp)

Daten-Ausgänge

  • QO (BOOL): Qualifizierer für Ausgangsstatus

  • STATUS (WSTRING): Statusinformationen als Unicode-String

Adapter

Keine Adapter-Schnittstellen vorhanden.

Funktionsweise

Der PUBLISH_1-Block ermöglicht die Verteilung von Daten an mehrere Empfänger über einen Publish-Subscribe-Mechanismus. Bei Initialisierung (INIT-Ereignis) wird der Block mit einer spezifischen ID konfiguriert. Bei Empfang eines REQ-Ereignisses werden die an SD_1 übergebenen Daten an alle SUBSCRIBE_1-Blöcke mit derselben ID gesendet. Die Kommunikation erfolgt unbestätigt, d.h. es wird keine Rückmeldung von den Empfängern erwartet.

Technische Besonderheiten

  • Verwendung des ANY-Datentyps für SD_1 ermöglicht das Senden beliebiger Datenstrukturen

  • WSTRING-Datentyp für ID und STATUS unterstützt internationale Zeichensätze

  • Unbestätigte Kommunikation für reduzierte Latenz

  • Generische Implementierung durch GenericClassName-Attribut

Zustandsübersicht

  1. Nicht initialisiert: Block wartet auf INIT-Ereignis

  2. Initialisiert: Block bereit zum Empfang von REQ-Ereignissen

  3. Sendeaktiv: Verarbeitung von REQ-Ereignissen und Datenverteilung

Anwendungsszenarien

  • Verteilung von Sensordaten an mehrere Verarbeitungsknoten

  • Broadcast von Systemstatusinformationen

  • Verteilen von Konfigurationsdaten an mehrere Steuerungen

  • Multi-Cast-Kommunikation in verteilten Automatisierungssystemen

⚖️ Vergleich mit ähnlichen Bausteinen

Im Vergleich zu bestätigten Kommunikationsblöcken bietet PUBLISH_1 reduzierte Latenz durch unbestätigte Übertragung. Gegenüber Punkt-zu-Punkt-Verbindungen ermöglicht er effiziente 1-zu-n-Kommunikation ohne explizite Verbindungsaufbauten zu jedem Empfänger.

Fazit

Der PUBLISH_1-Block ist ein effizientes Werkzeug für unbestätigte 1-zu-n-Kommunikation in verteilten Automatisierungssystemen. Seine flexible Datentypunterstützung und einfache Konfiguration machen ihn ideal für Szenarien, in denen Daten an mehrere Empfänger verteilt werden müssen, ohne dass Bestätigungen erforderlich sind.