Ich habe leider nicht direkt mit dem Zugriff auf den CAN-Bus mittels LabVIEW zu tun, sondern binde DLL-Funktionen des Herstellers eines externen CAN-Controllers in LabVIEW ein. Der erledigt den Rest.
Aber um auf Deine Frage nach der Anordnung der Bytes zu antworten:
0. Byte: SDO-Kopf
1. Byte: Low-Byte des Index
2. Byte: High-Byte des Index
3. Byte: SubIndex
4. Byte: Low(est)-Byte der Daten
...
7. Byte: High(est)-Byte der Daten
Der Telegrammkopf enthält Informationen zum Datenteil.
Bit 7...5 (Command Specifier) enthält die Art der Übertragung. Für das senden von bis zu 4 Datenbytes ist er 1 (Initiate Download Request).
Bit 4 ist bei der beschriebenen Konfiguration immer 0.
Bit 3 und 2 (n-Bits) gibt die Anzahl der leeren oder ungültigen der (4) Datenbytes an, wenn Bit 1 (e-Bit, expedited transfer) und Bit 0 (s-Bit, show size) auf 1 gesetzt sind. Diese beiden Bits sollten gestzt sein, bzw. muß das e-Bit bei Daten bis zu 4 Byte gesetzt sein.
Den Fall für mehr als 4 Byte will ich jetzt aus Platzgründen nicht aufführen, da wird's nämlich etwas komplizierter, auf Wunsch mach ich's aber .
Zur Deiner verwendeten Hardware kann ich leider nichts sagen.