LabVIEWForum.de
USB2CAN Converter via ActiveX ansteuernGeschwindigkeitsprob. - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: ActiveX & .Net (/Forum-ActiveX-Net)
+---- Thema: USB2CAN Converter via ActiveX ansteuernGeschwindigkeitsprob. (/Thread-USB2CAN-Converter-via-ActiveX-ansteuernGeschwindigkeitsprob)



USB2CAN Converter via ActiveX ansteuernGeschwindigkeitsprob. - baesi - 12.05.2006 09:25

Hallo zusammen

Ich habe ein USB 2 CAN Konverter welchen ich via ActiveX ansteuern kann.

Der Konverter soll ein anderes Steuergerät via CAN Calibration Protocol (CCP; Point to Point) ansteuern können.

Das heisst ich schicke via Konverter ein Kommando an das Steuergerät (max 8Byte). Dieses wiederum sendet eine passende
Antwort zurück ( max 8Byte). Für das schicken verwende ich eine Activex Methode.

Der Empfang einer Nachricht kann nur über einen ActiveX Event stattfinden. Für das registriere ich einen Activex
Callback am Anfang meines Programms. Als Benutzer Parameter dieses Callbacks übergebe ich eine Referenz meiner
Anzeigedaten auf dem Main Vi.

Nach dem Senden meiner Nachricht warte ich nun in einer while Schlaufe so lange, bis der Status meiner Anzeigedaten
den Empfang von CAN Daten anzeigt( via Eigenschaftsknoten). Danach muss ich wieder via Eigenschaftsknoten den Wert
zurücksetzten und ich kann die gelesenen Daten ausgeben und weiterverarbeiten. Danach beginnt das Spiel wieder von
vorne(senden lesen. etc). Das Ganze funktioniert auch wunderbar. Nur ist alles viel zu langsam. Mit einer anderen
Hardware welche ich direkt via dll ansteuere bin ich etwa um Faktor 10 schneller.

Gibt es eine Möglichkeit das Ganze zu beschleunigen, oder ist Activex einfach nicht schneller?

Zum besseren Verständnis sind noch einige Screenshots beigelegt.

Für Eure Hilfe wäre ich wirklich dankbar.


Gruss

Baesi


USB2CAN Converter via ActiveX ansteuernGeschwindigkeitsprob. - eg - 12.05.2006 10:36

Hallo baesi. Leider kann ich deinen Frage nicht direkt beantworten. Ich habe mit einem USB<->CAN Umsetzer (PEAK) über DLL und relativ gute Ergebnisse bezüglich Geschwindigkeiten bekommen. Ich glaube ca. 200 bis 300 Hz Datenaustausch waren möglich, was für meine Aufgabe ausreichend war. Mit ActiveX hatte ich noch keine Erfahrung.
Aber bald muss ich ein neues Projekt anfangen, in dem wir erstmal die DLLs in ActiveX mit MS Visual Studio umschreiben und die ich in LabVIEW benutzen wollte. Also mich würde die Geschwindigkeitsfrage auch sehr interessieren, denn wenn es wirklich viel langsamer geht werde ich bei DLLs bleiben.

Gruss, Eugen


USB2CAN Converter via ActiveX ansteuernGeschwindigkeitsprob. - baesi - 12.05.2006 11:05

Hallo Eugen,

Habe schon mit PEAK und ESD Electronics Konvertern gearbeitet. Beide hatten eine Ansteuerung via dll. Da war ich mit der Geschwindigkeit sehr zufrieden.
Leider funktionierts via Activex mit einem anderen Produkt nicht so gut.

Da ich aber überhaupt keine Erfahrung mit ActiveX hatte, hoffe ich immer noch, dass es eine Möglichkeit gibt die Daten schneller und ohne Eigenschaftsknoten aus dem Callback auszugeben.

Zur Sicherheit habe ich ein Programm in C# geschrieben um den Speed zu überprüfen. Mit dem ESD-Can Konverter dauerte es ca 200 ms um 100 Messages zu senden und eine Antwort zu empfangen. Bei dem Produkt mit Activex hatte ich eine Zeit > 800 ms.


Gruss

Baesi