Serielle Schnittstelle - Buffer? Absoluter Anfaenger
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger
Versuche es anders. Statt ein "GO" vor der Schleife ein "GET" (oder wie es sonst heisst) in der Schleife vor dem Read.
-
- assistant
- Сообщения: 132
- Зарегистрирован: 26 окт 2009, 23:05
- Версия LabVIEW: 7.1
- Контактная информация:
Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger
hab ich auch schon versucht gehabt - ohne erfolg - mit hyperterminal klappts, mit labview nicht - selbes Problem - ich hab mal einen Zaehler fuer die Schleife eingebaut. Dieser zaehlt schnell bis 3. Da steht OK dann in der Buffer-Read-Anzeige, was auch komisch ist, in Hyperterminal bestaetigt der Sensor go und get naemlich nicht mit OK. Andere Befehler bestaetigt er dagegen mit OK, aber eben nicht diese. Ah ich merke gerade, wenn ich im Hyperterminal Enter druecke einfach so, dann kommt ok. Vielleicht ist da irgendwie ein falsches EOL Zeichen in Labview...also der GO bzw. GET Befehl wird anscheinend gar nicht gesendet...nicht mehr... naja und deshalb dauerts dann auch sehr lange bis der Schleifenzaehler zu 4 kommt und zu 5,6,7,8... und jedes Mal steht nichts im Readbuffer... verstehst du was ich meine? Ist etwas wirr formuliert evtl....
-
- assistant
- Сообщения: 132
- Зарегистрирован: 26 окт 2009, 23:05
- Версия LabVIEW: 7.1
- Контактная информация:
Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger
mysterioes, jetzt geht es wieder - ich hab nichts geaendert am Programm. Komisch. Mal schauen was morgen passiert. Waere halt schon wichtig, des es immer geht, als erster Schritt fuer weiteres
-
- assistant
- Сообщения: 132
- Зарегистрирован: 26 окт 2009, 23:05
- Версия LabVIEW: 7.1
- Контактная информация:
Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger
also, so scheint es immer zu gehen (siehe erstes Bild in Anlage)
meine erweiterte Version die immer 2 verschiedene Werte abfragen und anzeigen soll, geht dagegen nicht - wie muss ich das hinbiegen, dass es geht? (siehe Bild 2)
meine erweiterte Version die immer 2 verschiedene Werte abfragen und anzeigen soll, geht dagegen nicht - wie muss ich das hinbiegen, dass es geht? (siehe Bild 2)
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger
Groß/Klein- Schreibung ist egal?
Im zweiten Write-String hast du noch ein ENTER vergessen. Warum machst du zwei Write und zwei Read? Modus kannst du laut Datenblatt gleich für beides (H und D) einstellen (noch vor der Schleife), danach in der Schleife jeweis GET + Read.
Im zweiten Write-String hast du noch ein ENTER vergessen. Warum machst du zwei Write und zwei Read? Modus kannst du laut Datenblatt gleich für beides (H und D) einstellen (noch vor der Schleife), danach in der Schleife jeweis GET + Read.
-
- assistant
- Сообщения: 132
- Зарегистрирован: 26 окт 2009, 23:05
- Версия LabVIEW: 7.1
- Контактная информация:
Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger
gross/kleinschreibung ist in Hyperterminal egal, also denk ich auch in Labview. Habe das Enter eingefuegt, es hilft aber nichts:
Es wird im ersten readbuffer immer
mod=h und md=d abwechselnd angezeigt, der zweite readbuffer zeigt immer gt
Mod=d und =h gleichzeitig aktiviert zu haben geht meiner Meinung nach nicht. Entweder oder, wo im Datenblatt hast du dass den gefunden?
Ich mein ich hab in Hyperterminal mod=d,h probiert. Das liefert einen Error wenn Modus schon auf d eingestellt war, bzw. wenn Modus auf h eingestellt war, wird auf d umgestellt.
Es wird im ersten readbuffer immer
mod=h und md=d abwechselnd angezeigt, der zweite readbuffer zeigt immer gt
Mod=d und =h gleichzeitig aktiviert zu haben geht meiner Meinung nach nicht. Entweder oder, wo im Datenblatt hast du dass den gefunden?
Ich mein ich hab in Hyperterminal mod=d,h probiert. Das liefert einen Error wenn Modus schon auf d eingestellt war, bzw. wenn Modus auf h eingestellt war, wird auf d umgestellt.
-
- assistant
- Сообщения: 132
- Зарегистрирован: 26 окт 2009, 23:05
- Версия LabVIEW: 7.1
- Контактная информация:
Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger
Hm das andere Problem besteht nachwievor, wie ich beide Werte (mod=h und mod=d) bekommen kann. Aber ich habe anderweilig ein bisschen herumprobiert und das mit den beiden parallelen Loops mal getestet.
2 Sachen funktionieren nicht:
Meine Initialisierung vom Stopbutton (das dieser beim Programmstart automatisch wieder auf Enable gesetzt wird) und dass das Einlesen der seriellen Schnittstelle auf Knopfdruck erst gestartet wird. Ich mein mir ist schon irgendwieklar, dass das wie ich es versucht habe, nicht geht. Aber wie macht man es denn, dass es geht?
Siehe Anlage :)
2 Sachen funktionieren nicht:
Meine Initialisierung vom Stopbutton (das dieser beim Programmstart automatisch wieder auf Enable gesetzt wird) und dass das Einlesen der seriellen Schnittstelle auf Knopfdruck erst gestartet wird. Ich mein mir ist schon irgendwieklar, dass das wie ich es versucht habe, nicht geht. Aber wie macht man es denn, dass es geht?
Siehe Anlage :)
- Вложения
-
- sensirion7_mod.vi
- (43.15 КБ) 207 скачиваний
-
- assistant
- Сообщения: 132
- Зарегистрирован: 26 окт 2009, 23:05
- Версия LabVIEW: 7.1
- Контактная информация:
Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger
Ok, sorry fuers nerven. Wenn noch ne Antwort kommt freu ich mich, andernfalls werd ich halt...ka was machen..
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger
Ich verstehe nicht so ganz was du machen willst. Willst du über Start/Stop dein Programm ausführen lassen?
-
- assistant
- Сообщения: 132
- Зарегистрирован: 26 окт 2009, 23:05
- Версия LabVIEW: 7.1
- Контактная информация:
Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger
Jo stimmt, war wohl etwas wirr...also, ich wollte drei Sachen probieren:
Ich hoff ich kriegs jetzt besser hin:
Was ich machen wollte:
Erstens und am wichtigsten: Dem Controller abwechselnd die Werte entlocken die er fuer Mod=h und mod=d ausspuckt (gross und klein schreibung ist egal) - aber ich schaffs nicht mal, dass er einwas davon macht, irgendwie schein ich ihm nur einen einzigen befehl geben zu koennen. Wenn ich ihm den Befehl fuer umschalten gebe, dann funktioniert GO nicht mehr. Irgendwie muss ich vielleicht zwischen den Befehlen warten, nur wie? Forschleifen mit i=1 (also nur einmal laufen lassen) und einem WAIT-Vi bauen?
Zweitens wollte ich versuchen mich (wie von dir vorgeschlagen) mit parallelen Schleifen beschaeftigen. Meine Idee war, dass einfach eine Randomzahl immer generiert wird und dass ich beide Schleifen gleichzeitig stoppen kann, mit einer lokalen Variable. Das hat geklappt. Aber jedesmal wenn man STOP gedrueckt hat, bleibt der Button gedrueckt - das ist klar, weil er auf SWITCH eingestellt ist
(man muss ihn auf SWITCH-Schalten, damit das mit dem Stoppen von beiden Schleifen gleichzeitig klappt). Ich haette gerne, dass er dann am Ende wenn die Schleifen gestoppt sind wieder "ausrastet" und man ihn beim naechsten durchlauf wieder verwenden kann. Bzw. was ich versucht hab, war, dass er mit Programmstart automatisch "ausrastet" und wieder verwendbar ist. Das hat nicht geklappt.
Drittens (auch hier wieder um parallele Schleifen verstehen zu lernen):
Ich haette gerne, dass die Randomzahlen immer ausgegeben werden aber dass das Einlesen vom Sensor nur dann passiert, wenn der Switchschalter umgelegt wird.
Hab ich mich einigermassen verstaendlich ausgedrueckt?
Ich hoff ich kriegs jetzt besser hin:
Was ich machen wollte:
Erstens und am wichtigsten: Dem Controller abwechselnd die Werte entlocken die er fuer Mod=h und mod=d ausspuckt (gross und klein schreibung ist egal) - aber ich schaffs nicht mal, dass er einwas davon macht, irgendwie schein ich ihm nur einen einzigen befehl geben zu koennen. Wenn ich ihm den Befehl fuer umschalten gebe, dann funktioniert GO nicht mehr. Irgendwie muss ich vielleicht zwischen den Befehlen warten, nur wie? Forschleifen mit i=1 (also nur einmal laufen lassen) und einem WAIT-Vi bauen?
Zweitens wollte ich versuchen mich (wie von dir vorgeschlagen) mit parallelen Schleifen beschaeftigen. Meine Idee war, dass einfach eine Randomzahl immer generiert wird und dass ich beide Schleifen gleichzeitig stoppen kann, mit einer lokalen Variable. Das hat geklappt. Aber jedesmal wenn man STOP gedrueckt hat, bleibt der Button gedrueckt - das ist klar, weil er auf SWITCH eingestellt ist
(man muss ihn auf SWITCH-Schalten, damit das mit dem Stoppen von beiden Schleifen gleichzeitig klappt). Ich haette gerne, dass er dann am Ende wenn die Schleifen gestoppt sind wieder "ausrastet" und man ihn beim naechsten durchlauf wieder verwenden kann. Bzw. was ich versucht hab, war, dass er mit Programmstart automatisch "ausrastet" und wieder verwendbar ist. Das hat nicht geklappt.
Drittens (auch hier wieder um parallele Schleifen verstehen zu lernen):
Ich haette gerne, dass die Randomzahlen immer ausgegeben werden aber dass das Einlesen vom Sensor nur dann passiert, wenn der Switchschalter umgelegt wird.
Hab ich mich einigermassen verstaendlich ausgedrueckt?
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger
Im Prinzip warst du mit dieser Variante schon richtig:
http://www.labviewportal.org/download/f ... &mode=view
Du hast mal gesagt, dass der Controller auf manche Befehle mit "OK" antwortet. Vielleicht ist das der Grund, warum es nicht funktioniert?
Wenn du D und H nicht gleichzeitig einschalten kannst, dann würde ich es nacheinander machen, so wie du es schon gemacht hast.
Wegen parallelen Schleifen und einem Stop-Button. Du kannst eine Lokale Variable erstellen und deinen Button über diese lokale Variable zurücksetzen, aber bevor du es machst, musst du sicherstellen, dass beide Schleifen schon beendet sind.
http://www.labviewportal.org/download/f ... &mode=view
Du hast mal gesagt, dass der Controller auf manche Befehle mit "OK" antwortet. Vielleicht ist das der Grund, warum es nicht funktioniert?
Wenn du D und H nicht gleichzeitig einschalten kannst, dann würde ich es nacheinander machen, so wie du es schon gemacht hast.
Wegen parallelen Schleifen und einem Stop-Button. Du kannst eine Lokale Variable erstellen und deinen Button über diese lokale Variable zurücksetzen, aber bevor du es machst, musst du sicherstellen, dass beide Schleifen schon beendet sind.
-
- assistant
- Сообщения: 132
- Зарегистрирован: 26 окт 2009, 23:05
- Версия LabVIEW: 7.1
- Контактная информация:
Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger
das geht also irgendwie nicht so wie ich es gemacht habeEs wird im ersten readbuffer immer
mod=h und md=d abwechselnd angezeigt, der zweite readbuffer zeigt immer gt
wegender stopp-sache
ok ich muss also irgendwie abfragen ob die schleifen wirklich beendet sind - wie geht das? bzw. wie stell ich den stop button zurueck - geht das mit dem Element mit dem ich es probiert habe? Ich habe da ja versucht, den Stop button bei Programmstart zurueckzusetzen, das hat aber nicht funktioniert - warum nicht?
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger
Versuche es mal zu debuggen, mit folgendem Tool kannst du alles mithören, was auf der seriellen Schnittstelle passiert:
http://www.labviewportal.org/de/downloa ... rt-monitor
Zum Stop, du kannst z.B. eine Föat-Struktur verwenden.
http://www.labviewportal.org/de/downloa ... rt-monitor
Zum Stop, du kannst z.B. eine Föat-Struktur verwenden.
- Вложения
-
- Frame.png (6.02 КБ) 6858 просмотров
-
- assistant
- Сообщения: 132
- Зарегистрирован: 26 окт 2009, 23:05
- Версия LabVIEW: 7.1
- Контактная информация:
Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger
sehr coole idee mit dem stop ding - echt fett :) das geht jetzt schonmal
schnittstelle werd ich jetzt bissi mithoeren
schnittstelle werd ich jetzt bissi mithoeren
-
- assistant
- Сообщения: 132
- Зарегистрирован: 26 окт 2009, 23:05
- Версия LabVIEW: 7.1
- Контактная информация:
Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger
hast du auch eine Idee warum mein Kippschalter fuer das Starten vom seriellen Lesen nicht geht? Brauch ich da noch eine grosse While-Schleife aussen herum?