07.06.2006, 03:43
Hi,
ich messe 2 CAN-Bus Kanäle mit LabVIEW. Zum messen verwende ich eine spezielle CAN PCMCIA Karte mit 2 Kanälen. In LabVIEW verwende ich eine dll vom Kartenhersteller.
Nun bekomme ich sehr viele CAN Botschaften auf beiden Kanälen und muss diese vergleichen/analysieren.
Um die Botschaften zu bekommne, muss ich die dll in einer while Schleife zyklisch aufrufen.
Mein Problem ist nun das Speichern und Analysieren der Daten. Wie kann ich eine online-Auswertung machen ohne Geschwindigkeitsprobleme zu bekommen? Ich habe bisher versucht die Daten innerhalb der while Schleife in 2d Arrays zu schreiben und sie auszuwerten. Das dauert aber zu lange, so dass ich Botschaften verliere da die dll nicht schnell genug abgefragt wird.
Letztendlich bin ich auf der Suche nach einer passenden Programmarchitektur und wie ich Daten speichern kann. Queue? Hashtable? oder parallele Tasks - eine zum Datensammeln und eine zum Auswerten?
Und wie handle ich am besten die beiden CAN Kanäle? Zwei parallele while Schleifen im VI?
Ich bin neu in LabVIEW und hoffe auf Eure Hilfe!
Danke,
Thomas
ich messe 2 CAN-Bus Kanäle mit LabVIEW. Zum messen verwende ich eine spezielle CAN PCMCIA Karte mit 2 Kanälen. In LabVIEW verwende ich eine dll vom Kartenhersteller.
Nun bekomme ich sehr viele CAN Botschaften auf beiden Kanälen und muss diese vergleichen/analysieren.
Um die Botschaften zu bekommne, muss ich die dll in einer while Schleife zyklisch aufrufen.
Mein Problem ist nun das Speichern und Analysieren der Daten. Wie kann ich eine online-Auswertung machen ohne Geschwindigkeitsprobleme zu bekommen? Ich habe bisher versucht die Daten innerhalb der while Schleife in 2d Arrays zu schreiben und sie auszuwerten. Das dauert aber zu lange, so dass ich Botschaften verliere da die dll nicht schnell genug abgefragt wird.
Letztendlich bin ich auf der Suche nach einer passenden Programmarchitektur und wie ich Daten speichern kann. Queue? Hashtable? oder parallele Tasks - eine zum Datensammeln und eine zum Auswerten?
Und wie handle ich am besten die beiden CAN Kanäle? Zwei parallele while Schleifen im VI?
Ich bin neu in LabVIEW und hoffe auf Eure Hilfe!
Danke,
Thomas