Variablenzustände ereignisgesteuert senden

Anonymous
2007-09-11
2007-09-12
  • Anonymous - 2007-09-11

    Originally created by: ch-hunn

    Hallo Profis!

    Ich habe in einer Gebäudesteuerung mehrere Wago 750-841 Controller. Momentan lese und schreibe ich diverse Variablen bzw Controllerausgänge mittels der ModBus-DLL von Wago zyklisch einzeln aus um diese dann über ein eigenes TCP Protokoll an verschiedene Visualisierungs Oberflächen zu senden.

    Allerdings ergibt sich durch das zyklische auslesen eine recht hohe Latenz. D.h. wenn der Benutzer auf dem Touchpanel auf eine Schaltfläche tippt, zeigt diese erst verzögert den tatsächlichen Status des dazugeörigen Ausganges an. Das führt dazu, dass der Benutzer meint, das Antippen hätte nicht funktioniert und tippt nocheinmal...

    Ich bin nun auf der Suche nach einer Lösung, dass der 841er bei einer Wertänderung einer Variablen von sich aus ein Telegramm an eine Serverapplikation schickt. Diese dient als "Message-Hub" und leitet die Telegramme an alle aktiven Clients weiter.

    Ein Telegramm sieht dann etwa so aus:

    SETSIGNAL 4711 1

    Ich denke man müsste etwa so vorgehen:

    • Der Controller baut eine TCP Verbindung zum MessageHub auf.

    • An jedem Ausgang greiffe ich dessen Wert in einen Funktionsblock ab. Der Funktionsblock schreibt den Wert und die Signalnummer in ein Array.

    • Ein zentraler Funktionsblock Arbeitet das Array ab und versendet die Telegramme.

    Ich denke das müsste über die syslibethernet (oder wie die Lib heisst) machbar sein. Allerdings finde ich nirgends eine gescheite Doku zu dieser Lib.

    Hat jemand eine Doku oder sogar ein Beispielprogramm zum versenden von Strings via TCP?

    Gruss

    Chregu

     
  • debug - 2007-09-12

    Hallo Chregu,

    Problem gerade beschäftigst?

     
  • Anonymous - 2007-09-12

    Originally created by: ch-hunn

    Uwe hat geschrieben:
    Hallo ch-hunn,
    schau mal unter
    http://www.wago.com/wagoweb/documentation/app_note/a1122/a112200d.htm
    die Beispiele dort sollten auch mit dem 841 funktionieren.
    Uwe

    Danke Uwe

    Ich werde dies demnächst in einem Veruchsaufbau testen.

    Gruss

    Chregu

     
  • Anonymous - 2007-09-12

    Originally created by: ch-hunn

    debug hat geschrieben:
    Hallo Chregu,
    bist Du sicher, dass es verzögert ankommt und du nicht mit diesem Problem gerade beschäftigst?

    Hallo Debug

    Danke für Deine Anregung

    Ich benutze nicht die integrierte WebVisu des Controllers. Als Visualisierung wird eine .NET Applikation eingesetzt. Dies aus dem Grund, da mit dieser Oberfläche nicht nur 841er visualisiert und gesteuert werden, sondern auch weitere andere Schnittstellen angesprochen werden (Videoüberwachung, Audiosteuerung, Mail, etc.) und die grafischen Gestaltungsmöglichkeiten der WebVisu nicht ausreichen.

    Die Werte des Controllers werden zyklisch via ModBus ausgelesen. Wenn ich jetzt über 100 Werte der Reihe nach auslese, dauert so ein Zyklus über 2 Sekunden.

    Deshalb suche ich nach einer Möglichkeit, die Daten ereignisgesteuert an den Server zu senden. D.h. sobald sich ein Wert ändert ein Telegramm versendet wird.

    Gruss

    Chregu

     

Log in to post a comment.