LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Can Calibration Protocol and how to devide signals into CAN-Bytes and backwards

Hi,
i have two questions about working with NI-CAN Hardware:
First: How do I divide my signals (esp.:rpm,boolean variables,...) to put them into the CAN Message Bytes?
example:
rpm range: 0 to 8000
resolution:1 step means 1 rpm
On rpm = 2000 the resulting bitcoding is as follows:
[00000111 11010000] [highbyte lowbyte]
Next I have to store a boolean bit(false/true is set to true) additionally into the highbyte. the resulting bitcoding is [10000111 11010000]. CAN message is now ready for dispatch. The listener have to take the individual bits to get the rpm and the booleans state.

I programmed a CAN-DLL in Visual C++ for a CAN Dongel. In C it is easy to split the CAN Message into the
ir signals. Shiftoperations (<<,>>) make this possible.

Second: Next step is the use of CCP2.1 (Can Calibration Protocol). Did someone use already once CAN Calibration Protocol with Ni-CAN hardware? If, I would be pleased about example files or contact.

Thanx for listening and sorry about my english. I wait strained for answers.
BKern, Germany
0 Kudos
Message 1 of 4
(3,078 Views)
In welcher Programmiersprache möchten Sie diese Applikation entwickeln ? Falls es LabVIEW ist kann ich zu dem ersten Teil der Frage sicher helfen.
0 Kudos
Message 2 of 4
(3,078 Views)
Schön jemand deutschsprachigen gefunden zu haben.

Mittlerweile hat sich etwas neues ergeben:
Eine in LabVIEW6.i erstellte Anwendung kommunziert via CAN. Die Sende- und Empfangssignale werden in einer DLL (Aufruf externer Bibliotheken), nach empfangen einer CAN NAchricht, zusammengesetzt oder für den Versand zerlegt (in die 8 Datenbytes entsprechend einer Schnittstellendefinition).
Somit übergibt Labview lediglich komplette Zahlenwerte (Drehzahlen) und BOOL Flags (Bits), die in der DLL, wie oben beschrieben, bearbeitet werden.
Diese DLL greift schließlich auf entsprechende CAN Treiber DLL's zu um Daten zu versenden oder abzuholen.

Zusätzlich soll nun die NI-CAN Karte integriert werden. Der erste Ansatz war die Lösung in LV zu realisieren. Dabei müsste je
doch die gesamte Schnittstelle nochmals integriert werden (doppelter Pflegeaufwand).
!! Deshalb suche ich nun nach einer Lösung in C oder C++ mit Visual Studio .NET. Beispieldateien (in C oder C++) für CAN starten, CAN schließen, CAN reset, CAN read und CAN write wären sehr hilfreich.
Die Modifizierungen der Signale werden in der DLL bereits erledigt. Ich benötige lediglich einen Zugriff (in C oder C++) auf die NI-CAN Karte, um die bereitliegenden Daten zu versenden(CAN write), bzw. empfangene abzuholen (CAN read).

Das Format einer CAN Message:
1. Identifier
2. Datalength
3. DataBytes[8]

Falls Sie mir helfen können,Beispieldateien zu finden, wäre ich Ihnen sehr dankbar. Leider habe ich bei ni.com nix gefunden.

MfG
BKern
0 Kudos
Message 3 of 4
(3,078 Views)

Wie schon angedeutet programmiere ich ausschliesslich mit LabVIEW und kann Ihnen deshalb was C/C++ angelangt leider nicht weiterhelfen.

Die Installation des NI-CAN Treibers beinhaltet aber verschiedene Beispiele (mindestens ist dies für LV der Fall). Installieren Sie deshalb die aktuelle Version (2.0) des NI-CAN Treibers und suchen Sie dann nach Beispielen.

Mit freundlichen Grüssen

0 Kudos
Message 4 of 4
(3,078 Views)