<div align="left">Hallo zusammen!
Ich habe mal wieder ein problem, da ich noch nicht so gefestigt bin in der LV programmierung. Vielleicht kann mir ja jemand helfen...
Folgendes: Ich habe einen schalter, der auf knopfdruck einen befehl in ein array einfügt, der dann über eine RS 232 schnittstelle gesendet wird. Beim nächsten druck auf den knopf soll allerdings ein anderer befehl in das array eingefügt werden.
... und jetzt noch mal in verständlichen worten: Ich möchte mit dem schalter beim ersten drücken einmalig einen befehl zum einschalten senden, beim 2. drücken einen befehl zum ausschalten ( beide unterschiedlich).
ich hatte es schon mit einer case struktur versucht, allerdings ist wichtig, das die elemente nur einmal für kurze zeit in das array geschrieben werden ( am besten wird der schalter als "Latch wenn gedrückt" betrieben) und dieses konnte ich nicht realisieren.
kann sein, dass ich mich zu dumm anstelle, aber ich komme einfach auf keine lösung. Wäre toll wenn mir jemand helfen könnte.
Gruß aus Lübeck </div>
Machs doch mit einer Variablen, die du auf einen bestimmten Wert setzt, wenn du per Knopfdruck einen Befehl sendest. Beim Senden fragst du immer die Variable ab. Je nachdem wie der Wert gerade ist wird dann der entsprechende Befehl gesendet.
Variable=1 Befehl=Einschalten
Variable=2 Befehl=Ausschalten
nur so als Beispiel, ich hoffe es ist verständlich
' schrieb:Machs doch mit einer Variablen, die du auf einen bestimmten Wert setzt, wenn du per Knopfdruck einen Befehl sendest. Beim Senden fragst du immer die Variable ab. Je nachdem wie der Wert gerade ist wird dann der entsprechende Befehl gesendet.
Variable=1 Befehl=Einschalten
Variable=2 Befehl=Ausschalten
nur so als Beispiel, ich hoffe es ist verständlich
Ja so wird es auch gemacht. Um leichter zu verstehen:
mach dir einen LED-Indikator auf dein Frontpanel. Dieser Indikator zeigt den Zustand an:
TRUE=Gerät eingeschaltet
FALSE=Gerät ausgeschaltet.
So, wenn du mal auf den Button klickst und die LED sagt FALSE, dann musst du den ersten Befehl abschicken und die LED auf TRUE setzen. Und umgekehrt.
Vergiss nicht beim Programmstart die LED ein mal auf FALSE zu setzen und beim Beenden auch auf FALSE.
Gruss, Eugen
Hallo,
hier habe ich Dir mal was zusammengebaut. Ist zwar etwas umfangreicher, aber Du hast ein "Latch wenn gedrückt" und bei jedem Klick wird was anderes ins Array geschrieben (hier: "Aus" und "Ein").
Ich hoffe, ich habe Dich richtig verstanden.
Vielleicht hilft Dir das ja weiter.
Wie das allererste Element aber auch noch mit "Ein" oder "Aus" beschrieben werden kann (also nicht leer), ist mir auf die Schnelle leider auch nicht eingefallen, aber vielleicht hilft da jemand anders weiter.
Gruß Markus
' schrieb:<div align="left">Hallo zusammen!
Ich habe mal wieder ein problem, da ich noch nicht so gefestigt bin in der LV programmierung. Vielleicht kann mir ja jemand helfen...
Folgendes: Ich habe einen schalter, der auf knopfdruck einen befehl in ein array einfügt, der dann über eine RS 232 schnittstelle gesendet wird. Beim nächsten druck auf den knopf soll allerdings ein anderer befehl in das array eingefügt werden.
... und jetzt noch mal in verständlichen worten: Ich möchte mit dem schalter beim ersten drücken einmalig einen befehl zum einschalten senden, beim 2. drücken einen befehl zum ausschalten ( beide unterschiedlich).
ich hatte es schon mit einer case struktur versucht, allerdings ist wichtig, das die elemente nur einmal für kurze zeit in das array geschrieben werden ( am besten wird der schalter als "Latch wenn gedrückt" betrieben) und dieses konnte ich nicht realisieren.
kann sein, dass ich mich zu dumm anstelle, aber ich komme einfach auf keine lösung. Wäre toll wenn mir jemand helfen könnte.
Gruß aus Lübeck </div>
Hallo!
Ich hätte es mit einem Boolschen Zustandwechsler gemacht.
Gruß!
Der Vorschlag von Mr.T ist sehr gut.
Wenn jemand allerdings die Ereignisstruktur nicht mag.
Das geht auch ohne! :closedeyes:
Grüßle
Andreas
@Mr.T mit Deiner Zustimmung hab ich Dein VI abgeändert.
' schrieb:Wenn jemand allerdings die Ereignisstruktur nicht mag.
Hi!
Was spricht denn dagegen? Nur mal so aus Neugier gefragt? Ich finde die Ereignisstruktur sehr hilfreich um auf Benutzereingaben zu reagieren.
Hallo Endanwender!
Achtung!
Das Aufzeigen einer weiteren Möglichkeit heißt nicht unbedingt, daß etwas gegen die erste Möglichkeit spricht!
Bitte nicht falsch verstehen!
Ich finde die Ereignisstruktur auch genial, setze sie aber meist nur dann ein, wenn ich den Benutzer in meine Messaufgabe mit einbinden muß.
Grüßle
Andreas
' schrieb:Ich hätte es mit einem Boolschen Zustandwechsler gemacht.
Den "booleschen Zustandswechsler" gibt es zum Nulltarif, wenn man nicht auf der Schaltfunktion "Latch" beharrt. Außerdem erübrigt sich dann eine besondere Anzeige, welche Aktion denn nun die letzte war: gedrückter Schalter mit Beschriftung "Ein" = Eingeschaltet, nicht gedrückter Schalter mit Beschriftun "Aus" = Ausgeschaltet. Wieso kommt denn niemand auf so einen simplen Einfall, z.B. inspiriert durch die Funktion des Schalters an der eigenen Schreibtischlampe?
Also Schaltverhalten ändern in "Beim Drücken schalten"
Natürlich muß man auch dafür sorgen, daß der Ein-Ausschaltbefehl nur bei jeder Wertänderung einmal gesendet wird, und das gibt es wiederum zum Nulltarif mit einer Ereignisstruktur.
[
attachment=3285]
Manchmal sieht man den Wald vor lauter Bäumen nicht.
Was ich nicht ganz verstehe ist, was der Property-Node, der mit dem Errorcluster an die Whileschleife verbunden ist, bezweckt.
Gruß Markus
' schrieb:Den "booleschen Zustandswechsler" gibt es zum Nulltarif, wenn man nicht auf der Schaltfunktion "Latch" beharrt. Außerdem erübrigt sich dann eine besondere Anzeige, welche Aktion denn nun die letzte war: gedrückter Schalter mit Beschriftung "Ein" = Eingeschaltet, nicht gedrückter Schalter mit Beschriftun "Aus" = Ausgeschaltet. Wieso kommt denn niemand auf so einen simplen Einfall, z.B. inspiriert durch die Funktion des Schalters an der eigenen Schreibtischlampe?
Also Schaltverhalten ändern in "Beim Drücken schalten"
Natürlich muß man auch dafür sorgen, daß der Ein-Ausschaltbefehl nur bei jeder Wertänderung einmal gesendet wird, und das gibt es wiederum zum Nulltarif mit einer Ereignisstruktur.
[attachment=29301:attachment]