# PUBLISH_10 ```{index} single: PUBLISH_10 ``` image * * * * * * * * * * ## Einleitung Der PUBLISH_10 Funktionsblock dient zum Verteilen von Daten an einen oder mehrere SUBSCRIBE_10 Blöcke. Er ermöglicht die unbestätigte Übertragung von bis zu 10 verschiedenen Datenwerten über ein Publish-Subscribe-Kommunikationsmuster. ![PUBLISH_10](PUBLISH_10.svg) ## Schnittstellenstruktur ### **Ereignis-Eingänge** - **INIT**: Initialisierungsereignis mit zugehörigen Daten QI und ID - **REQ**: Sendeanforderung für unbestätigte Datenübertragung mit 10 Datenvariablen ### **Ereignis-Ausgänge** - **INITO**: Bestätigung der Initialisierung mit Statusinformationen - **CNF**: Bestätigung, dass Daten gesendet wurden ### **Daten-Eingänge** - **QI** (BOOL): Qualifizierer für Initialisierung (TRUE = aktivieren, FALSE = deaktivieren) - **ID** (WSTRING): Identifikationsstring für den Kommunikationskanal - **SD_1** bis **SD_10** (ANY): 10 verschiedene zu sendende Datenwerte beliebigen Typs ### **Daten-Ausgänge** - **QO** (BOOL): Qualifizierer-Ausgang (TRUE = erfolgreich, FALSE = fehlgeschlagen) - **STATUS** (WSTRING): Statusinformationen als Unicode-String ### **Adapter** Keine Adapter-Schnittstellen vorhanden. ## Funktionsweise Der PUBLISH_10 Block arbeitet nach dem Publish-Subscribe-Prinzip. Nach erfolgreicher Initialisierung mit dem INIT-Ereignis können über das REQ-Ereignis bis zu 10 verschiedene Datenwerte gleichzeitig an alle angemeldeten Subscriber verteilt werden. Die Datenübertragung erfolgt unbestätigt, was bedeutet, dass der Block keine Rückmeldung von den Empfängern erwartet. ## Technische Besonderheiten - Unterstützt bis zu 10 verschiedene Datenquellen gleichzeitig - Verwendet den generischen Datentyp ANY für maximale Flexibilität - Unicode-String-Unterstützung für ID und STATUS - Unbestätigte Kommunikation für reduzierte Latenz - Generische Implementierung durch GEN_PUBLISH Basisklasse ## Zustandsübersicht 1. **Nicht initialisiert**: Block ist inaktiv 2. **Initialisiert**: Block ist bereit für Datenverteilung 3. **Sendebereit**: Verarbeitet REQ-Ereignisse und verteilt Daten ## Anwendungsszenarien - Verteilung von Sensordaten an mehrere Verbraucher - Broadcast-Kommunikation in verteilten Systemen - Datenverteilung in Echtzeit-Steuerungssystemen - Multi-Consumer Datenpipeline-Architekturen ## ⚖️ Vergleich mit ähnlichen Bausteinen Im Vergleich zu bestätigten Kommunikationsblöcken bietet PUBLISH_10 reduzierte Latenz durch unbestätigte Übertragung. Gegenüber Blöcken mit weniger Datenkanälen ermöglicht er die gleichzeitige Verteilung mehrerer Datenströme. ## Fazit Der PUBLISH_10 Funktionsblock ist eine leistungsstarke Lösung für unbestätigte Multi-Daten-Publish-Subscribe-Kommunikation in IEC 61499-Systemen. Seine Flexibilität bei der Datenaufnahme und die Unterstützung für bis zu 10 parallele Datenkanäle machen ihn ideal für komplexe Datenverteilungsaufgaben in industriellen Automatisierungssystemen.