LabVIEWForum.de
Ereignisstruktur auslösen durch Wertänderung (True/false von Datasocket) - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Ereignisstruktur auslösen durch Wertänderung (True/false von Datasocket) (/Thread-Ereignisstruktur-ausloesen-durch-Wertaenderung-True-false-von-Datasocket)



Ereignisstruktur auslösen durch Wertänderung (True/false von Datasocket) - ZhengGu - 04.03.2013 22:46

Hallo und einen schönen Abend, ich habe direkt mit meinem ersten Beitrag eine Frage und denke das ich hier gut aufgehoben bin.

Szenario:
Über einen OPC-Server erfolgt die Kommunikation zwischen einer SPS und Labview. Von Labview aus erfolgt die Kommuniaktion Mithilfe von Datasocket. Das Schreiben und Auslesen der Daten stellt im Moment kein Problem dar. Was ich aber leider nicht hinbekomme ist das ich mithilfe der Daten eine Ereignisstruktur ausgelöst bekomme, sprich ich empfange Daten per Datasocket (true/false) diese kommen auch in Labview an, nun dachte ich mir könnte ich hier per Wertänderung das Ereignis auslösen, jedoch funktioniert dies leider nicht.

Kurzzusammenfassung: Bei einer Änderung des Wertes der Adresse opc://localhost/DemoOPC/PLC.Stop von False nach True soll ein Ereigniss ausgelöst werden welches das VI abbricht.

Ich habe mal den kleinen Codeschnipsel diesbezüglich beigepackt, und hoffe doch das mit hier jemand einen Tip diesbezüglich geben kann.

Vielen Dank im Voraus.


RE: Ereignisstruktur auslösen durch Wertänderung (True/false von Datasocket) - Trinitatis - 04.03.2013 22:51

Hallo ZhengGu,

ich kann dein VI leider nicht lesen (zu neue LV-Version). Du kannst dir aber einfach einen boolschen Schalter erstellen und dann die Eigenschaft "Wert(signalisierend)" setzen. Dann kannst du in einer Eventstruktur auf das Event Wertänderung reagieren, also dein VI abbrechen.


Gruß, Marko


RE: Ereignisstruktur auslösen durch Wertänderung (True/false von Datasocket) - ZhengGu - 04.03.2013 23:24

Hallo und danke für die Info ich werde das morgen mal antesten und dann bescheid geben,

Hier der Codeschnipsel noch konvertiert nach Labview 8, vielleicht bringt das mehr Wink


RE: Ereignisstruktur auslösen durch Wertänderung (True/false von Datasocket) - GerdW - 05.03.2013 08:50

Hallo Gu,

so vielleicht:
[attachment=43797]

Tipp: Es ist ungünstig, das FP zu schließen, wenn noch eine andere Schleife weiterläuft...


RE: Ereignisstruktur auslösen durch Wertänderung (True/false von Datasocket) - Lucki - 05.03.2013 20:29

Zitat:Tipp: Es ist ungünstig, das FP zu schließen, wenn noch eine andere Schleife weiterläuft...
Erläuterung dazu:
"FP Schließen" heißt nur das was der Name sagt darf nicht mit "VI beenden" verwechselt werden.
VI beenden: gewaltsamer Abbruch.
FP schließen: Das FP ist nicht mehr sichtbar, läuft aber, falls aktiv, weiter.


RE: Ereignisstruktur auslösen durch Wertänderung (True/false von Datasocket) - ZhengGu - 06.03.2013 13:06

Hallo Gerd ich habe es mal mit deinem Tipp versucht, jedoch leider ohne den nötigen Erfolg. Direkt beim ersten durchlauf der Schleife wird das Ereigniss "Panel schließen" aufgelöst. Die Daten vom OPC Server haben sich natürlich nicht geändert, mit der Highlight-Funktion sieht man das das erste FalseSignal welches von der Schleife ausgelöst wird direkt den Case auslöst ohne eine Wertänderung, das selbe passiert wenn von Hause aus True vom OPC Server ausgegeben wird.


RE: Ereignisstruktur auslösen durch Wertänderung (True/false von Datasocket) - GerdW - 06.03.2013 13:08

Hallo Gu,

Zitat:Direkt beim ersten durchlauf der Schleife wird das Ereigniss "Panel schließen" aufgelöst. Die Daten vom OPC Server haben sich natürlich nicht geändert, mit der Highlight-Funktion sieht man das das erste FalseSignal welches von der Schleife ausgelöst wird direkt den Case auslöst ohne eine Wertänderung, das selbe passiert wenn von Hause aus True vom OPC Server ausgegeben wird.
Ja, die Wunder der Eventstruktur in Verbindung mit der "Value signalling"-Property...
Wenn du in diese Propertynode schreibst, löst dies unabhängig (!) vom geschriebenen Wert ein ValueChange-Event aus. (Steht sicherlich auch in der Kontexthilfe.)
Wenn du nur bei einem TRUE das Panel schließen willst, solltest du vielleicht noch eine Case-Struktur an richtiger Stelle verwenden!


RE: Ereignisstruktur auslösen durch Wertänderung (True/false von Datasocket) - ZhengGu - 06.03.2013 13:19

Hallo Gerd,

danke für den Tipp stehe aber gerade auf dem Schlauch, vielleicht komme ich später drauf.