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!
Also leute, tja..das Übel
In einem laufenden VI (in einer While-Schleife) soll der Timerwert immer mal einmalig ausgelesen werden. Dieses soll erfolgen, wenn zwei Werte gleich sind und somit der ausgelesene Timerwert als "Startzeit" für eine Plateauphase definiert werden..
also gelesener Timerwert + Haltzeit = Endzeit..
Dabei sollte die Whileschleife weiter laufen und die Datenerfassungen weiter erfolgen. Die beiden verglichenen Werte werden in der Haltezeit gleich bleiben...also eine typische Rampenregelung..
hm..
jemand eine Vorschlag?
danke, der frehdie
Die beiden Werte mit einem Vergleich (=) überprüfen und das Ergebnis des Vergleichs an eine Case-Struktur weitergeben.
Dort wird der Timer ausgelesen und in ein Schieberegister geschrieben.
Etwas Logik dazu und vielleicht noch ein Schieberegister und Du kannst ermitteln wann die beiden Werte wieder unterschiedlich sind um dann die Haltezeit zu bestimmen.
Poste doch mal was Du bisher probiert hast.
Die beiden Werte mit einem Vergleich (=) überprüfen und das Ergebnis des Vergleichs an eine Case-Struktur weitergeben.
Dort wird der Timer ausgelesen und in ein Schieberegister geschrieben.
Etwas Logik dazu und vielleicht noch ein Schieberegister und Du kannst ermitteln wann die beiden Werte wieder unterschiedlich sind um dann die Haltezeit zu bestimmen.
Poste doch mal was Du bisher probiert hast.
Gruß
Andreas
..danke Andreas..
nun, genau das habe ich schon probiert..schieberegister und vergleich. nun ist es aber so, dass die werte auch die "wartezeit"immer
gleich bleiben, also A=B und durch die Case-Struktur immer der aktuelle Timerwert gelesen wird..
der vorhergehende ist aber der, der "eingefroren" werden soll.
leider verfügt der rechner, an dem ich programmiere nicht über internetanschluss..daher gestaltet sich die verbildlichung etwas schwierig...
danke..
' schrieb:..danke Andreas..
nun, genau das habe ich schon probiert..schieberegister und vergleich. nun ist es aber so, dass die werte auch die "wartezeit"immer
gleich bleiben, also A=B und durch die Case-Struktur immer der aktuelle Timerwert gelesen wird..
der vorhergehende ist aber der, der "eingefroren" werden soll.
leider verfügt der rechner, an dem ich programmiere nicht über internetanschluss..daher gestaltet sich die verbildlichung etwas schwierig...
danke..
danke Andreas,
ja..habe mir dein beispiel auf den rechner rübergespielt,
nun, das sub-Vi Boolscher wechsel (punkt für Punkt)...fehlt leider. daher kann ich das Vi nicht ausführen..
auch nicht in das diagramm dieses subVi's schaun, um die logig zu verstehn...
habe das problem des timerwertes erst mal anders versucht zu lösen..
drei variablen die gleich sein sollen das sind der momentane sollwert der rampe, der istwert und der endwert.
dann spingt die case auf true..jedoch verwende ich den timerwert, der im False-case mitgelauifemn ist.der ist dann "eingefroren", wenn ich ihn nach aussen führe in die While-schleife...
ist nicht sehr elegant und 'ne bessere lösung wäre mir lieber, da auch hier fehler auftreten können.
danke
freundlichst, der frehdie
' schrieb:danke Andreas,
ja..habe mir dein beispiel auf den rechner rübergespielt,
nun, das sub-Vi Boolscher wechsel (punkt für Punkt)...fehlt leider. daher kann ich das Vi nicht ausführen..
auch nicht in das diagramm dieses subVi's schaun, um die logig zu verstehn...
habe das problem des timerwertes erst mal anders versucht zu lösen..
drei variablen die gleich sein sollen das sind der momentane sollwert der rampe, der istwert und der endwert.
dann spingt die case auf true..jedoch verwende ich den timerwert, der im False-case mitgelauifemn ist.der ist dann "eingefroren", wenn ich ihn nach aussen führe in die While-schleife...
ist nicht sehr elegant und 'ne bessere lösung wäre mir lieber, da auch hier fehler auftreten können.
danke
freundlichst, der frehdie
Nachtrag...
also, besagtes Vi ist nicht im basispaket...:-(
nun interessierts mich, was dieses Vi macht. Ist es eine art "flip-flop-schalter"??
danke, der frehdie
' schrieb:... das sub-Vi Boolscher wechsel (punkt für Punkt)...fehlt leider. daher kann ich das Vi nicht ausführen..
Das ist ein standard VI. Es ist Signalverarbeitung -> Punk für Punkt -> Weiter Funktionen (Punkt für Punkt) zu finden.
In meiner Full Developement Version ist es jedenfalls so.
Das VI ist aber nur eine einfache Flankenerkennung. Das kann man auch selbst programmieren.
Poste doch mal Dein VI.
' schrieb:Das ist ein standard VI. Es ist Signalverarbeitung -> Punk für Punkt -> Weiter Funktionen (Punkt für Punkt) zu finden.
In meiner Full Developement Version ist es jedenfalls so.
Das VI ist aber nur eine einfache Flankenerkennung. Das kann man auch selbst programmieren.
Poste doch mal Dein VI.
Gruß
Andreas
[attachment=31005:image2.gif]
nun...wie schon geschrieben, besagtes Vi ist nicht im Basispaket.
die ganze Rubrik "Signalverarbeitung" fehlt..
tja...mein Vi ist sehr umfangreich und wird dich eventuell etwas verwirren..
aber ich schicks mal...
viel spass...
und ja...danke...;o)
gruss, der frehdie
' schrieb:Da hast Du allerdings recht.
Mit der Suchenfunktion findest Du hier im Forum aber auch ein paar Lösung zur Flankenerkennung.
Gruß
Andreas
tja, Andreas..
im leerlauf funktioniert es einwandfrei..freu..
nur im grossen, da wo die werte immer wieder eingelesen werden, sprich über ein schnittstelle. da machts probleme..
da immer wieder neu initiolisiert wird..
die flanke vielleicht somit immer das erste mal ist..
hm..dampf..grübel..
oh je..
gruss, der frehdie