PUBLISH_1¶
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.
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¶
- Nicht initialisiert: Block wartet auf INIT-Ereignis
- Initialisiert: Block bereit zum Empfang von REQ-Ereignissen
- 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.