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!
dein PeakSub-VI hat als Signaleingang nur einen skalaren Wert. Dies ist für Signalverläufe denkbar ungünstig.
Vor allem, wenn man bedenkt, dass das SimulateSignal (oder in meiner Variante das Sinussignal) einen Waveform darstellen. Aber bisher hast du ja den roten Punkt am PeakSub-Eingang ignoriert: sowas kann sich rächen!
- Guck dir mein VI an. Versuche ohne ExpressVIs auszukommen (da lernt man schneller).
- Dein PeakSub habe ich nicht angefasst, der sieht mir zu unaufgeräumt und unübersichtlich aus. Da solltest du aber, nach den Hinweisen oben, nochmal erst überlegen und nachdenken und danach dann kräftig Hand anlegen...
vielen Dank für deinen Rat die Express VIs möglichst zu übergehen. Ich versuche diesen Rat so gut wie möglich umzusetzen, aber der Mensch ist eben immer ein bisschen Faul und geht gerne den einfachen Weg
Ich habe meinen Signalgenerator umgeändert und das Express VI eliminiert. Bei meiner WarnLED habe ich aber leider keine andere Lösung bisher finden können, da die immer nur dann abgehen soll, wenn der Wert gerade über das Limit steigt, soll dann aber sofort wieder runtergehen, wenn der Wert wieder darunter liegt. Und das EpressVI läuft bisher als einziges...
Zu der Zeitsache habe ich jetzt eine Lösung gefunden, bei der ich die Zeit in dem gewünschten Case abgreife. Die Umrechnung wäre zwar schön gewesen, funktioniert ja aber nur dann, wenn ich das Programm stoppe und dann die Location bekomme. Ich möchte jedoch die Zeit noch während das Programm läuft abgreifen.
(02.08.2012 15:19 )Linsche schrieb: Bei meiner WarnLED habe ich aber leider keine andere Lösung bisher finden können, da die immer nur dann abgehen soll, wenn der Wert gerade über das Limit steigt, soll dann aber sofort wieder runtergehen, wenn der Wert wieder darunter liegt. Und das EpressVI läuft bisher als einziges...
Auf der einen Seite sagst du das der Wert nicht größer als ein bestimmtes Value sein darf, Vergleichst aber den ganzen Datensatz(repektive das Array).
Wenn kein Wert des ganzen Datensatzes größer als ein bestimmtes Value sein darf, dann wäre dies eine einfach Lösung:
Beste Grüße,
NWO
9 von 10 Stimmen in meinem Kopf sagen: Ich bin nicht verrückt,
die andere summt die Melodie von Tetris.
NI schrieb:To use the abort button is like using a tree to stop a car!
ich habe diese Lösung doch ausprobiert, leider hat sie aber nicht so funktioniert wie ich es brauche. Vielleicht läuft das ganze bei euch, bei mir aber leider nicht.
Falls wir vielleicht aneinander vorbeireden, versuche ich nochmal zu erklären, was genau ich will.
Also ich lasse mir die Amplitudenwerte einem nach dem anderen in ein Array schreiben. Wenn ein Wert jetzt beispielsweise größer als 2 ist, dann soll die LED rot aufleuchten und zwar so lange bis der nächste Wert wieder unter 2 ist, dann soll die LED wieder grün werden. Setze ich euren Vorschlag um, dann wird die LED zwar rot, wenn der Grenzwert überschritten wird, leider wird sie aber dann auch nicht mehr grün, wenn der nächte Wert im Array dann wieder unter den Grenzwert sinkt. Sie bleibt bis zum beenden des Programms auf rot.
Und ich habe es genauso ausprobiert, wie ihr es vorgeschlagen habt!
Ich möchte jetzt hier nicht als undankbar hingestellt werden. Ich bin sehr dankbar für Ratschläge und Hilfen, aber wenn es leider nicht so funktioniert wie ich es brauche, dann kann ich es ja nicht so im Programm belassen.
Grüße,
Linsche
03.08.2012, 10:22 (Dieser Beitrag wurde zuletzt bearbeitet: 03.08.2012 10:27 von GerdW.)
bisher benutzt du ein ExpressVI für diesen Vergleich:
- Dieses ExpressVI hat einen DDT-Eingang, der (vermutlich/wahrscheinlich) ein Array an Werten enthält.
- Dieses ExpressVI hat einen DDT-Ausgang, der (vermutlich/wahrscheinlich) ein Array an Werten enthält, den du aber an einen skalaren boolschen Indikator (aka LED) anschließt (und dabei den roten CoercionDot ignorierst!).
Erkläre uns bitte, was dort alles passiert...
Es hat Gründe, warum ich immer mal wieder die Empfehlung ausspreche, ExpressVIs zu meiden...
um ehrlich zu sein war mir der rote Punkt nicht einmal aufgefallen
Im endeffekt betrachtet die LED jetzt nur den aktuellsten Wert, der in meinem Array steht...verstehe ich das richtig?
Und genau das möchte ich auch bezwecken, die LED soll sich immer nach den aktuellen Werten im Array richten. Aber wie löse ich das Ganze jetzt ohne diesen CoericionDot zu bekommen? Ich habe es mit deinem Tip (also ohne Express VI) und einer Case Schleife, in der die LED auf true oder flase geschalten wurde probiert, leider hat das auch nicht so recht geklappt Ich bin hier irgendwie gerade so ein bisschen lost.
NWO und ich hatten schon eine Lösung gezeigt, die ohne Case-Strukturen und ExpressVI auskommt.
Die kannst du benutzen oder an deine Wünsche anpassen...