LabVIEWForum.de
Über CAN hex-File mit Doppelpunkt senden - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenkommunikation (/Forum-Datenkommunikation)
+---- Thema: Über CAN hex-File mit Doppelpunkt senden (/Thread-Ueber-CAN-hex-File-mit-Doppelpunkt-senden)



Über CAN hex-File mit Doppelpunkt senden - Slev1n - 06.11.2014 22:48

Hallo Leute,

ich habe eine USB 8473s Karte (Frame API!) von NI und nutze Labview 2013 student edition.
Meine Aufgabe:
Ich soll nun einen CHIP mit einem neuen Programm bespielen und den CODE aus einem HEX-File soll ich ihm per CAN schicken.

Meine Frage/Problem:
Ich schaffe es schon den Bootloader anzusprechen und dieser wartet nun darauf, dass ich ihm den Programm-Code schicke.
Ich muss den Code aus dem Hex-File zeilenweise an an den CHIP schicken. Jede Zeile beginnt mit einem Doppelpunkt ":". Ich nutze hierfür die Funktion "CAN WriteNetMult". Nun weiß ich nicht wie ich den Doppelpunkt in den Frame hineinpacken soll. Einfach den Doppelpunkt als "String" geht nicht, da Daten in den Frame nur als Integer-Array gepackt werden können.

Mein Lösungsansatz (fehlgeschlagen)
Es hat nun nicht funktioniert einfach "58" was dezimal für das ASCII zeichen ":" steht bzw. 3A an den Anfang des Arrays zu schreiben.


Habt ihr eine Idee wie ich den Doppelpunkt in den Frame bekomme?

Viele Grüße

Stefan


RE: Über CAN hex-File mit Doppelpunkt senden - GerdW - 07.11.2014 08:53

Hallo Stefan,

solche Fragen beantwortet am besten das Manual zu deinem "Chip".
Wir können ohne weitere Informationen deinerseits dazu nicht helfen.

Welches Format wird vom "Chip" erwartet?
Wie läuft der Transfer über CAN ab?
Wird wirklich der Doppelpunkt erwartet? Oder doch nur die Daten danach?

Fragen über Fragen und kein Manual zur Hand…


RE: Über CAN hex-File mit Doppelpunkt senden - Slev1n - 07.11.2014 20:20

Hey,

ich habe das Manual selber nicht vorliegen. Hab aber nochmal mit dem Kollegen geredet, der mir den Chip gegeben hat, der meint, er könnte den Chip so umstellen, dass er den Doppelpunkt nicht mehr braucht. Damit würde ich das Problem zumindest umgehen.

Habe noch kurz eine andere Frage zu den CAN Funktionen NetMultRead und NetMultWrite.
Ich nutze "Self Reception" um genau zu sehen, was ich so versende. Nutze ich nun NetMultWrite, werden anscheinend 9 Frames pro Ausführung des NetMultWrite-VIs gesendet. Mit NetMultRead lese ich dann den BUS aus, bekomm aber NUR diese, die ich selbst gesendet hab. Mach ich Self Reception aus, sehe ich auch andere Nachrichten.

1, Müll ich den BUS so zu, dass ich nur noch meine lese?

2, Müssten die anderen Nachrichten vom BUS nicht in die Queue geschrieben werden und beim nächsten abrufen des VIs NetMultRead auch ausgelesen werden?

Viele Grüße und Danke für die Hilfe

Slev1n


RE: Über CAN hex-File mit Doppelpunkt senden - GerdW - 08.11.2014 10:11

Hallo Slevin,

Zitat:ich habe das Manual selber nicht vorliegen.
Lass es dir geben…

Zitat:mit dem Kollegen geredet, der mir den Chip gegeben hat
Befrage den Kollegen (auf eine möglichst inquisitorische Art), um alle nötigen Informationen zu erhalten…

Zitat:eine andere Frage
KA
- Du zeigst nicht, wie dein VI aussieht. Du sagst uns nicht, wie der CAN-Task parametriert ist. Du lieferst keine relevanten Informationen…
- Ich nehme an, dass du dich auf XNet-Funktionen beziehst. Mit denen habe ich noch nicht gearbeitet…


RE: Über CAN hex-File mit Doppelpunkt senden - Slev1n - 08.11.2014 16:24

Hey,

hier mal ein Bild zum Teil vom VI, in dem ich lese.
(Baudrate: 500k; write und read queue sind auf 100 gesetzt, der Rest auf 0 bzw FALSE, da ich self reception nutze und "manuell" die Kommunikation starte)

Außerdem der Programmcode vom Schreibvorgang!

Hoffe du kannst damit was anfangen.


EDIT: Ich habe wie im Anhang zu sehen nun statt WriteMult, dreimal normale Write Funktionen genommen! Wenn ich nun
das Array, in welches ich meine gelesenen Werte speicher, immer so groß dimensioniere, wie die Anzahl zu wartender Frames ist, lese ich immer nur so viele wie ich brauche und finde diese schön aufgelistet in meiner Excell file. Einzig seltsam ist, dass die chronologische Reihenfolge der "Echo-Daten" (mit Echo sind die Frames gemeint, die ich über self reception wieder erhalte) nicht ganz richtig ist:
Code:
06:08:33.615    000006C3    CAN Data Frame
     8    3A    10    5F    C6    00    D7    00    20

06:08:33.614    000006C3    CAN Data Frame
     6    10    E6    F4    A8    0E    24

06:08:33.629    000006C3    CAN Data Frame
     8    F4    8C    43    D7    00    20    00    F6

06:08:33.625    000006C3    CAN Data Frame
     8    3A    10    5F    D6    00    DC    10    E6

06:08:33.624    000006C3    CAN Data Frame
     6    00    20    00    F6    F4    37

06:08:33.639    000006C3    CAN Data Frame
     8    00    F6    F4    D8    10    F6    F4    D6

06:08:33.635    000006C3    CAN Data Frame
     8    3A    10    5F    E6    00    D7    20    20

06:08:33.634    000006C3    CAN Data Frame
     6    F4    DA    10    E0    04    77

06:08:33.649    000006C3    CAN Data Frame
     8    00    F6    F4    D2    10    F6    F4    D0

Ich gehe aber davon aus bzw. hoffe, dass sie chronologisch richtig am Chip ankommen.

Gruß

Slev1n