PUBLISH_3¶
Einleitung¶
Der PUBLISH_3-Funktionsblock dient zum Verteilen von Daten an einen oder mehrere SUBSCRIBE_3-Blöcke. Er ermöglicht die unbestätigte Übertragung von bis zu drei verschiedenen Datenwerten an Abonnenten in einem verteilten System.
Schnittstellenstruktur¶
Ereignis-Eingänge¶
- INIT: Initialisierungsereignis mit den zugehörigen Daten QI und ID
- REQ: Sendeanforderung für Daten (unbestätigt) mit den zugehörigen Daten QI, SD_1, SD_2 und SD_3
Ereignis-Ausgänge¶
- INITO: Bestätigung der Initialisierung mit den zugehörigen Daten QO und STATUS
- CNF: Bestätigung, dass Daten gesendet wurden, mit den zugehörigen Daten QO und STATUS
Daten-Eingänge¶
- QI (BOOL): Qualifizierer für Initialisierung und Sendeoperationen
- ID (WSTRING): Identifikator für den Publisher
- SD_1 (ANY): Erster zu sendender Datenwert (beliebiger Datentyp)
- SD_2 (ANY): Zweiter zu sendender Datenwert (beliebiger Datentyp)
- SD_3 (ANY): Dritter zu sendender Datenwert (beliebiger Datentyp)
Daten-Ausgänge¶
- QO (BOOL): Qualifizierer für Ausgangsereignisse
- STATUS (WSTRING): Statusinformationen über die ausgeführte Operation
Adapter¶
Keine Adapter-Schnittstellen vorhanden.
Funktionsweise¶
Der PUBLISH_3-Block wird zunächst über das INIT-Ereignis initialisiert, wobei der ID-Parameter den eindeutigen Identifikator für diesen Publisher festlegt. Nach erfolgreicher Initialisierung bestätigt der Block mit INITO. Daten können anschließend über das REQ-Ereignis gesendet werden, wobei bis zu drei verschiedene Datenwerte (SD_1, SD_2, SD_3) gleichzeitig übertragen werden können. Die Übertragung erfolgt unbestätigt, jedoch gibt der Block nach dem Senden ein CNF-Ereignis aus.
Technische Besonderheiten¶
- Unterstützt den ANY-Datentyp für alle drei Datenkanäle, was maximale Flexibilität bei den zu übertragenden Datentypen bietet
- Verwendet WSTRING für ID und STATUS, ermöglicht somit internationale Zeichensätze
- Unbestätigte Kommunikation für reduzierte Latenz
- Kann Daten an mehrere Subscriber gleichzeitig verteilen
Zustandsübersicht¶
- Nicht initialisiert: Block ist betriebsbereit, aber nicht für den Datenaustausch konfiguriert
- Initialisiert: Block ist konfiguriert und bereit zum Senden von Daten
- Sendend: Block verarbeitet eine Sendeanforderung
- Bereit: Block hat Daten erfolgreich gesendet und ist bereit für weitere Anforderungen
Anwendungsszenarien¶
- Verteilung von Sensordaten an mehrere Verarbeitungsknoten
- Broadcast von Steuerinformationen in verteilten Systemen
- Datenverteilung in Produktionsanlagen mit mehreren Verbrauchern
- Messwertverteilung in Überwachungssystemen
⚖️ Vergleich mit ähnlichen Bausteinen¶
Im Vergleich zu einfacheren PUBLISH-Blöcken bietet PUBLISH_3 die Möglichkeit, bis zu drei verschiedene Datenwerte gleichzeitig zu übertragen, was die Effizienz in Systemen mit mehreren zusammenhängenden Datenpunkten erhöht. Die Verwendung von ANY-Datentypen bietet mehr Flexibilität als typspezifische Implementierungen.
Fazit¶
Der PUBLISH_3-Funktionsblock ist eine leistungsstarke Lösung für die Verteilung von Daten in verteilten Automatisierungssystemen. Seine Fähigkeit, bis zu drei verschiedene Datenwerte gleichzeitig zu übertragen, kombiniert mit der Flexibilität der ANY-Datentypen, macht ihn besonders geeignet für komplexe Anwendungen, bei denen mehrere zusammenhängende Informationen effizient verteilt werden müssen.