01.10.2008, 10:50
|
TSC
LVF-Team
Beiträge: 1.882
Registriert seit: Sep 2008
LV 2018 SP1
2008
EN
52379
Deutschland
|
Zeitverzögerte Aktion
@Lucki:
Das Bild habe ich noch nicht so ganz verstanden. Leider kann ich das VI nicht runterladen, habe ja nur LV8.2! So wie ich das sehe, wird doch nie der False-Zweig der 1. Case-Struktur betreten oder?
Eine weitere Frage wäre an dieser Stelle: Warum verwendest du ein '>' Zeichen für boolsche Werte? Sollte man da nicht auch mit logischen Operatoren arbeiten?
LG
Torsten
"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" ( Konrad Zuse)
|
|
|
01.10.2008, 13:08
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Zeitverzögerte Aktion
' schrieb:Das Bild habe ich noch nicht so ganz verstanden. Leider kann ich das VI nicht runterladen, habe ja nur LV8.2! So wie ich das sehe, wird doch nie der False-Zweig der 1. Case-Struktur betreten oder?
Habe es oben durch Lv.80 ersetzt, schau Dirs erst mal an, wenn Du dann nch eine Frage hast, melde Dich.
Zitat:Eine weitere Frage wäre an dieser Stelle: Warum verwendest du ein '>' Zeichen für boolsche Werte? Sollte man da nicht auch mit logischen Operatoren arbeiten?
Im Prinzip hast Du ja recht, aber LV machst eben möglich, daß man diese Vergleicher auch für boolsche Type verwenden kann. Der Hintergrund ist: Die boolsche Type ist eine "Aufzählungstype". Erster Wert: false, nächster (und zugleich letzter) Wert: true. true ist Nachfolger von false, und es gilt true > false. Mit boolschen Operatoren brauchte man 2 Stück, und man müsste erst schwer nachdenken, was da gemacht wird bzw. wie man es macht. So ist es unmittelbar evident: true, false --> true, alle anderen 3 Kombinationen --> false.
Es geht auch mit anderen Vergleichern, z.B ist Ungleichheit dasselbe wie "Exclusiv-Or", und rate mal, bei welchem Zeichen man schneller kapiert, was da geschieht?
|
|
|
01.10.2008, 13:19
|
IchSelbst
LVF-Guru
Beiträge: 3.689
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
Zeitverzögerte Aktion
@TSchAC
' schrieb:Habe es oben durch Lv.80 ersetzt, schau Dirs erst mal an, wenn Du dann nch eine Frage hast, melde Dich.
Im Prinzip hast Du ja recht, aber LV machst eben möglich, daß man diese Vergleicher auch für boolsche Type verwenden kann. Der Hintergrund ist: Die boolsche Type ist eine "Aufzählungstype". Erster Wert: false, nächster (und zugleich letzter) Wert: true. true ist Nachfolger von false, und es gilt true > false. Mit boolschen Operatoren brauchte man 2 Stück, und man müsste erst schwer nachdenken, was da gemacht wird bzw. wie man es macht. So ist es unmittelbar evident: true, false --> true, alle anderen 3 Kombinationen --> false.
Es geht auch mit anderen Vergleichern, z.B ist Ungleichheit dasselbe wie "Exclusiv-Or", und rate mal, bei welchem Zeichen man schneller kapiert, was da geschieht?
Oder kurz gesagt: Mit > kannst du eine Erkennung für eine fallende Flanke programmieren.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
01.10.2008, 13:30
|
TSC
LVF-Team
Beiträge: 1.882
Registriert seit: Sep 2008
LV 2018 SP1
2008
EN
52379
Deutschland
|
Zeitverzögerte Aktion
Also das Problem mit dem '>' ist mir klar, danke für die Aufklärung.
Aber der Rest ist mir völlig unklar. Allerdings weiß ich auch nicht was dieses 'DAQ Assistant' genau macht. Wenn ich dein VI lade, kommt es auch genau dabei zu einem Fehler. Evtl. fehlt mir ein Paket oder soetwas?
Ich habe mal den Teil durch einen Timer ersetzt. Der erzeugte Graph ist zwar relativ langweilig, aber ich kann ihn nachvollziehen. Offen bleibt, wie das angeschlossene 'True' jemals 'False' werden kann?
So wie ich es sehe, gibst du ein 'True' rein, dieses wird einmal direkt an das '>' geriecht und einmal durch die linke Case-Struktur (da es true ist, wird es hier auch nur durchgereicht). Der Vergleich liefert also auch immer ein 'False', der zu keiner Aktion führt. Über das Schieberegister wird das True dann an den nächsten Shcleifendurchlauf gereicht.
Also entweder habe ich einen Denkfehler oder dieses 'DAQ Assistant' macht was was ich nciht verstehe oder ich hab Recht *g*!?
P.S. Auch wenn das alles nicht mein Problem ist: Danke für die Tipps und Hilfen!
"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" ( Konrad Zuse)
|
|
|
01.10.2008, 13:36
|
TSC
LVF-Team
Beiträge: 1.882
Registriert seit: Sep 2008
LV 2018 SP1
2008
EN
52379
Deutschland
|
Zeitverzögerte Aktion
Zitat:Oder kurz gesagt: Mit > kannst du eine Erkennung für eine fallende Flanke programmieren.
Da stellt sich mir die Frage, was eine Flanke ist. Kenne es aus der Mathematik, wo es wohl sowas wie ein monotoner Funktionsabschnitt ist. Sprich eine 'Fallende Flanke' wäre ein Wechsel von 'True' auf 'False' (Habe ja eben gelernt dass 'True' größer ist als 'False' ?
"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" ( Konrad Zuse)
|
|
|
01.10.2008, 14:23
(Dieser Beitrag wurde zuletzt bearbeitet: 01.10.2008 14:25 von Lucki.)
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Zeitverzögerte Aktion
' schrieb:Also das Problem mit dem '>' ist mir klar, danke für die Aufklärung.
Aber der Rest ist mir völlig unklar. Allerdings weiß ich auch nicht was dieses 'DAQ Assistant' genau macht. Wenn ich dein VI lade, kommt es auch genau dabei zu einem Fehler. Evtl. fehlt mir ein Paket oder soetwas?
Nein, Dir fehlt nur die DAQ-Karte, die in meinem PC steckt. Doppelklick auf den DAQ-Assistenten und die DAQ-Kartenbezeichnung gegen die vorhandene - oder eine simulierte - ersetzen behebt das Problem. Betrachte mal den DAQ-Assistenten einfach als eine Art Dummy, Du solltest den Assistenten und den Graphen sowieso durch Dein eigene Datenerfassung und - verarbeitung ersetzen. Was ich zeigen wollte ist doch, wie es mögliche ist, bei laufender Datenerfassung in der Schleife, wobei sich der Schleifenzähler fortwährend hochzählt, nach 3 Minuten etwas Anderes zu starten.
Zitat:. Offen bleibt, wie das angeschlossene 'True' jemals 'False' werden kann?
Weiß nicht, welche der beiden Casestrukturen Du meinst. Du zwingst mich damit, auf beide einzugehen:
Die mit der verstrichenen Zeit:
Die Voreinstellung des shift-regs ist false. Die verstrichene Zeit wird laufend abgefragt, ob die Zeit verstrichen ist (intern auf 3 min engestellt) Die Antwort ist zunächt immer false, aber nach 3 min ist es soweit, die Antwort ist "true", dder Case kippt auf true, was sich dann nie mehr ändert, da kein Zugriff mehr auf das shift-Register erfolgt.
Die mit dem Gong:
Hier ist etwas schief gelaufen, aber das merkt man nicht: Die Anschlüsse am ">"-Vergleicher hätten vertauscht sein sollen. Ich erklärs mal mit den vertauschten Anschlüssen: Der Vergleicher liefert eigentlich immer false, insofern ist mir Deine Frage nicht verständlich. Es gibt eine einzige Ausnahme: Wenn die Zeit verstrichen ist, dann hat man am Ausgang der verstrichenen Zeit true, aber am shift-Register-Eingang (links) ist immer noch false. Der Vergleicher erkennt ein positive Flanke, und die gibt es nur dieses einziges Mal.
Ich vemute, daß Du eine falsche Vorstelluing von den VI "verstrichene Zeit" hast, wenn Du so fragst. Also: Das VI wartet nicht, sondern gibt nur den Status aus, ob die Zeit (gerechnet vom ersten Start dieses VIs) schon verstrichen ist. Wenn Du das 100000 mal aufrufst, dann ist die Antwort in den ersten 3 Minuten false, dann immer true (falls automatisches Rücksetzen = false). Der linke Case wäre übrigens gar nicht nötig gewesen, wenn man an den Eingang "automatisches Rücksetzen" false angeschlossen hätte.
|
|
|
01.10.2008, 14:47
|
TSC
LVF-Team
Beiträge: 1.882
Registriert seit: Sep 2008
LV 2018 SP1
2008
EN
52379
Deutschland
|
Zeitverzögerte Aktion
Okay ich habs. In deinem hochgeladenen VI ist der Boolsche Wert der in die While-Schleife geht 'TRUE'. Zusammen mit dem falschrum angeschlossenen '>' war in mir das Chaos perfekt. Da bei einem übergebenen 'True' ja niemals die verstrichene Zeit abgefragt wird. Nu is alles klar. Da hätte ich auch mit bissl Logik dahinter kommen können.
Danke für die Geduld.
[..
gerade gemachte, nützliche Entdeckung:
Wenn man zwei Anschlüsse vertauschen will kann man STRG gedrückt halten, mit der Maus über einen der Anschlüsse gehen und klicken (nur wenn exakt 2 Anschlussmöglichkeiten da sind)! Man spart sich also das manuelle umlegen der Anschlüsse!
..]
"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" ( Konrad Zuse)
|
|
|
01.10.2008, 15:11
|
IchSelbst
LVF-Guru
Beiträge: 3.689
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
Zeitverzögerte Aktion
' schrieb:Wenn man zwei Anschlüsse vertauschen will kann man STRG gedrückt halten, mit der Maus über einen der Anschlüsse gehen und klicken (nur wenn exakt 2 Anschlussmöglichkeiten da sind)!
Und wenn die Operation es zulässt. Also z.B. bei = und AND, nicht aber bei -.
[*Erschreck*]
Bei welcher Operation hast du das gemacht? Bei Größer ??
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
01.10.2008, 15:22
(Dieser Beitrag wurde zuletzt bearbeitet: 01.10.2008 15:43 von TSC.)
|
TSC
LVF-Team
Beiträge: 1.882
Registriert seit: Sep 2008
LV 2018 SP1
2008
EN
52379
Deutschland
|
Zeitverzögerte Aktion
Zitat:Bei welcher Operation hast du das gemacht? Bei Größer ??
Ja bei '>', da kam dann so eine schöne doppelte Drahtschlaufe als Cursor,.. Es geht auch nur, wenn alle Anschlüsse belegt sind!
Gefunden habe ich den Trick hier:
Hier gibts mehr schöne Tipps
Übrigens klappt es bei mir auch mit '=' und '*'! Allerdings nicht mehrmals hintereinander *zwinker*.
"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" ( Konrad Zuse)
|
|
|
| |