Serielle Schnittstelle - Buffer? Absoluter Anfaenger

VISA, TCP/IP, CAN und ähnliche Protokolle
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger

Сообщение Eugen Graf »

Versuche es anders. Statt ein "GO" vor der Schleife ein "GET" (oder wie es sonst heisst) in der Schleife vor dem Read.
Andband
assistant
assistant
Сообщения: 132
Зарегистрирован: 26 окт 2009, 23:05
Версия LabVIEW: 7.1
Контактная информация:

Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger

Сообщение Andband »

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....
Andband
assistant
assistant
Сообщения: 132
Зарегистрирован: 26 окт 2009, 23:05
Версия LabVIEW: 7.1
Контактная информация:

Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger

Сообщение Andband »

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 :D
Andband
assistant
assistant
Сообщения: 132
Зарегистрирован: 26 окт 2009, 23:05
Версия LabVIEW: 7.1
Контактная информация:

Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger

Сообщение Andband »

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)
Вложения
sensirion__works_blockdiagramm.jpg
sensirion__fail_blockdiagramm.jpg
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger

Сообщение Eugen Graf »

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.
Andband
assistant
assistant
Сообщения: 132
Зарегистрирован: 26 окт 2009, 23:05
Версия LabVIEW: 7.1
Контактная информация:

Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger

Сообщение Andband »

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.
Andband
assistant
assistant
Сообщения: 132
Зарегистрирован: 26 окт 2009, 23:05
Версия LabVIEW: 7.1
Контактная информация:

Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger

Сообщение Andband »

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 :)
Вложения
sensirion7_mod.vi
(43.15 КБ) 207 скачиваний
sensirion7_mod.jpg
Andband
assistant
assistant
Сообщения: 132
Зарегистрирован: 26 окт 2009, 23:05
Версия LabVIEW: 7.1
Контактная информация:

Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger

Сообщение Andband »

Ok, sorry fuers nerven. Wenn noch ne Antwort kommt freu ich mich, andernfalls werd ich halt...ka was machen.. :bye:
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger

Сообщение Eugen Graf »

Ich verstehe nicht so ganz was du machen willst. Willst du über Start/Stop dein Programm ausführen lassen?
Вложения
StartStop.png
Andband
assistant
assistant
Сообщения: 132
Зарегистрирован: 26 окт 2009, 23:05
Версия LabVIEW: 7.1
Контактная информация:

Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger

Сообщение Andband »

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?
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger

Сообщение Eugen Graf »

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.
Andband
assistant
assistant
Сообщения: 132
Зарегистрирован: 26 окт 2009, 23:05
Версия LabVIEW: 7.1
Контактная информация:

Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger

Сообщение Andband »

Es wird im ersten readbuffer immer
mod=h und md=d abwechselnd angezeigt, der zweite readbuffer zeigt immer gt
das geht also irgendwie nicht so wie ich es gemacht habe

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

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger

Сообщение Eugen Graf »

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.
Вложения
Frame.png
Frame.png (6.02 КБ) 6858 просмотров
Andband
assistant
assistant
Сообщения: 132
Зарегистрирован: 26 окт 2009, 23:05
Версия LabVIEW: 7.1
Контактная информация:

Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger

Сообщение Andband »

sehr coole idee mit dem stop ding - echt fett :) das geht jetzt schonmal
schnittstelle werd ich jetzt bissi mithoeren
Andband
assistant
assistant
Сообщения: 132
Зарегистрирован: 26 окт 2009, 23:05
Версия LabVIEW: 7.1
Контактная информация:

Re: Serielle Schnittstelle - Buffer? Absoluter Anfaenger

Сообщение Andband »

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?
Ответить

Вернуться в «Kommunikation mit Geräten»