Hallo Jens,
(19.09.2016 17:28 )jg schrieb: Was soll die State-Machine-Loop bezwecken? Ab dem zweiten Durchlauf ruft sie nur den Case "Initialize Left US" auf.
Ich hatte das Programm auf das wesentliche abgespeckt. Deswegen ist es so ungünstig dargestellt. Normalerweise sind 3 Ultraschalsensoren im Programm drinne. Diese geben dann alle eine dbl Wert an die "State-Machine-Loop" weiter, wo diese bei jede Lesevorgang mit eine Wert (Abstandswert) verglichen werden. Mir ist aber auch aufgefallen, das ich bei "Initialize Left US" hängen bleibe. Hätte nicht gedacht, das du mein ganzen Programm dir anschaust
Habe es aber geändert, damit ich an "Initialize Right US" weiter komme Habe auch zusätzlich auf Empfehlung von GerdW Wait-Time eingebaut.
(19.09.2016 17:28 )jg schrieb: Wieso muss man Berechnung geteilt durch 2 mal 343 mal 100 geteilt durch 1000000 in jedem Durchlauf machen, fass das zu 1 Operation zusammen.
Werde Zusammenfassen. Danke
---
(19.09.2016 17:28 )jg schrieb: Du könntest auch die Auswertung des Ultraschall Sensor im FPGA programmieren, dort kannst du den DIO wesentlich schneller auslesen und die Auswertung braucht auch keine CPU-Zeit.
http://www.ni.com/product-documentation/14620/de/
Nachdem ich in den anderen While-Loop Funktionen Wait-Time eingebaut habe, werden die Zahlen der Ultraschalsensoren flüssiger angezeigt. Ich habe bei der While-Loop Funktion der Ultraschalsensoren elapsed time Funktion eingebaut, damit nur eine Ultraschalsensor zu einer Zeitpunkt läuft und nicht mehrere gleichzeitig. Weil diese war meine Meinung nach auch das Problem, wozu ich ungenau Werte bekomme wenn ich mehrere Ultraschalsensoren gleichzeitig betreibe.
Theoretisch funktioniert es. Praktisch müsste ich es zu Hause ausprobieren. Werde mich dann nochmal melden. Danke erstmal für die Unterstützung.
Gruß Fatih
Hallo Gerd,
(19.09.2016 07:13 )GerdW schrieb: ALLE Schleifen sollten Wartezeiten haben - entweder über eine explizite Wait-Funktion oder über einen blockierenden Funktionsaufruf (wie DAQmxRead, VISARead, QueueRead, etc.)!
Hatte vergessen zu schreiben. Die Zahlen sind, wenn man mehrere Ultraschalsensoren gleichzeitig betreibt, ungenau und verhaken öfter.
Nun nachdem ich in den anderen While-Loop Funktionen Wait-Time eingebaut habe, werden die Zahlen der Ultraschalsensoren flüssiger und etwas genauer angezeigt.
Um die Genauigkeit zu bessern betreibe ich die 3 While-Loop Funktion der Ultraschalsensoren über eine StateMaschine und jede Ultraschalsensore ist über "elapsed time" Funktion nur begrenzt an. Theoretisch funktioniert es. Praktisch müsste ich es zu Hause ausprobieren. Werde mich dann nochmal melden. Danke erstmal für die Unterstützung.
Gruß
Fatih