Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
In meinem Programm werden über Schalter Befehle an ein Netzteil gesendet (RS232). Ein anderer Befehl der regelmäßig gesendet wird fragt den Zustand des Netzteils ab. Ich habe 5 Schalter (Befehle). Einer heißt PUP, damit schalte ich alle 4 Kanäle auf einmal an. Dann habe ich noch 4 Schalter um die 4 Kanäle einzeln anzuschalten.
Nun mein Problem; wenn ich den PUP-Befehl gesendet habe, sind alle Kanäle an, aber die Schalter für die einzelnen Kanäle stehen noch auf Off. Wenn ich nun einen Kanal einzeln ausstellen möchte, muss ich zu erst den Schalter auf On stellen um ihn im Anschluss wieder auf Off stellen zu können.
Genauso andersrum, wenn ich alle 4 Kanäle einzeln angeschalten habe, befindet der PUP-Schalter in der Off-Stellung.
Was gibt es für Möglichkeiten dieses Problem zu lösen ?
Wenn du das VI hochlädst können dir kompentente Leute bestimmt eine bessere Lösung vorschlagen.
' schrieb:wenn ich den PUP-Befehl gesendet habe, sind alle Kanäle an, aber die Schalter für die einzelnen Kanäle stehen noch auf Off.
... also wenn der PUP-Schalter ein Case bedient, dann setz doch da drin einfach die anderen Schalter per Proberty auf on.
Zitat:wenn ich alle 4 Kanäle einzeln angeschalten habe, befindet der PUP-Schalter in der Off-Stellung.
auch einfach ein Case einrichten mit der Bedingung "wenn alle 4 Kanäle auf on" (logisches UND), und dann da drin den PUP-Schalter per Proberty Node auf on.
„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Das ist immer garnicht so einfach, ich hab das mit den Variablen auch schon ausprobiert, beim Anmachen funktioniert das auch immer gut, aber wenns dann ans Ausmachen geht wirds problematisch.
Im Anhang ist nun das Programm, zu öffnen ist EGSE Control Center 4
' schrieb:Was ist der Unterschied? Ist es grundsätzlich besser Lokale Variablen zu nehmen, wenn es um die Proberty 'Value' geht?
Im Prinzip ja...
Property-Nodes sind 1. langsam, und 2. erzwingen bei jeder Instanz ein UI-Update.
Wenn du natürlich mehrere Eigenschaften in einer Node auf einmal aktualisierst, kann man auch noch "Value" gleich mit setzen.
Die Regel lautet aus Performance-Gründen also.
Erst Terminal, dann lokale Variable, und dann erst Property-Node.
@dualsbiker:
Du hast doch schon den TimeOut-Case in deiner Event-Struktur, da machst du das Setzen des PUP-Schalters.
Eines verstehe ich nicht so richtig? Wieso verwendest du "Mouse-Down"-Events, um das Schalten eines Taster/Schalters in der Event-Struktur abzufangen? Ein Value-Change-Event sollte da vollkommen ausreichen.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
wenn ich die "Wertänderung" nehme, dann reagiert er auf das Drücken der Maus und dann noch einmal auf das Loslassen der Maus, frag mich nicht wieso, aber ist so,
ich nehme das Drücken der Maustaste, da es von der Bedienung einfacher ist, bei dem Event Maustaste losgelassen reagiert er nur wenn die Maus über dem Schalter losgelassen wird, das macht sich echt blöde.
' schrieb:Was ist der Unterschied? Ist es grundsätzlich besser Lokale Variablen zu nehmen, wenn es um die Proberty 'Value' geht?
Der Property Varlue Wert ist ca. 200 mal langsamener als die lokale Veraiable. Also die Property "Wert" nur nehmen, wenn entweder der Property Node wegen anderer Eigenschaften sowieso aufgerufen wird, oder in Verbindung mit Referenzen, wo es nicht anders geht.
30.11.2009, 09:52 (Dieser Beitrag wurde zuletzt bearbeitet: 30.11.2009 09:53 von jg.)
' schrieb:wenn ich die "Wertänderung" nehme, dann reagiert er auf das Drücken der Maus und dann noch einmal auf das Loslassen der Maus, frag mich nicht wieso, aber ist so,
ich nehme das Drücken der Maustaste, da es von der Bedienung einfacher ist, bei dem Event Maustaste losgelassen reagiert er nur wenn die Maus über dem Schalter losgelassen wird, das macht sich echt blöde.
Das kommt von deinem Schaltverhalten, "Switch Until Released", das löst 2 Value-Change-Events aus. Wenn du "Latch when Released" oder "Switch when Pressed" nimmst (das sind die beiden "Standard"-Schaltverhalten), dann hast du das Problem nicht.
' schrieb:Achja, wie soll ich das machen, mit dem Timeout ?
Naja, das hat dimitri84 doch beschrieben. Im Timeout-Case liest du deine 4 anderen Schalter per lokaler Variablen aus, dann kommt ein logisches Und oder Oder dahinter (je nachdem, ob dein PUP-Schalter erst bei allen 4 Schaltern auf HIGH sein soll, oder schon bei einem), und dann setzt du den PUP-Schalter.
Sollte eigentlich so gehen.
Gruß, Jens
P.S.: Noch eleganter wird es, wenn du den Status deiner Schalter in einem Schieberegister speicherst, dann kannst du dir eine Menge lokale Variable sparen.
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!