LabVIEWForum.de - PeakCAN Lesen und Loggen

LabVIEWForum.de

Normale Version: PeakCAN Lesen und Loggen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo allerseits,
ich steuere über einen CAN USB Adapter einen Wasserstoffelektrolyseur an, habe aber mit der Messdatenerfassung ein Problem.
Die maximale Übertragung beträgt 250kbit/s. Jetzt sendet der CAN aber immer nur mit einer bestimmten Frequenz die Werte und dann nicht, es werden also Nullen übertragen. Die Nullen eignen sich selbstverständlich nicht für die Auswertung.
Ich lese in einer While Schleife den CAN ein, behandele die Daten und lasse eine Ereignisstruktur mit einem Timeout folgen. Sobald ich über 250ms timeout gehe, habe ich zwar das Problem mit den Nullen überwunden, dann wird die Übertragung aber zu langsam. Das sieht man daran, dass die Statusanzeige dann nicht mehr mit dem tatsächlichen Gerätezustand überienstimmt und nur verzögert herüber kommt
(Gerät ist aus, es wird aber "herunterfahren" noch angezeigt).
Habe ich da eventuell grundsätzlich etwas falsch verstanden?
Besten Dank,
Jonas
Gerade habe ich diesen Thread entdeckt:

http://www.labviewforum.de/Thread-CAN-Traffic-loggen

Kann ich nicht einfach vor dem Erfassen prüfen lassen, ob die Länge der Mitteilung >0 ist und falls es nicht zutrifft, nichts unternehmen?
Dann würden die Werte von davor nicht mit Nullen überschrieben?

Bahn
Okay, danke für die zahlreichen Antworten Blink

Ich hab das Problem zwar gelöst,
jetzt bekomme ich aber nach einer gewissen Laufzeit meines Programms den Fehlercode 4, der Errorcounter sei voll.
Ich habe zwar schon nachgeforscht, finde aber keine passende Antwort.
Woran liegt denn so ein Fehler? Kann das ein Timingproblem? Ich dachte immer CAN ist da relativ anspruchslos und man kann in einem beliebigen Intervall senden und gleichzeitig empfangen?

Wie gesagt 250kbit/s
Ich taste dann u.U. mit einem Intervall von 100ms ab.
Zu vuiel des Guten, oder was kann das sein?
Da hier (fast) niemand LabVIEW in Verbindung mit CAN-Bus verwendet, sieht es auch mit Antworten nicht so toll aus.
Die wenigen (bzw. bisher noch gar keine) Antworten kommen also nicht daher, dass Dir niemand antworten will, sondern, dass sich nur sehr wenige damit auskennen.

Gruß Markus

(27.09.2011 18:45 )gm-axion schrieb: [ -> ]Okay, danke für die zahlreichen Antworten Blink
Hm, okay.
Ich habe eigentlich auch keine bösen Absichten vermutet.
Ich habe mir überlegt, ob meine Fehlerweiterreichung mit den Variablen vielleicht nicht so sinnvoll ist.
Könnten da auch Fehler auftreten?
Er schreibt und liest ja asynchron die gleiche Variable aus (Fehler).
Das ist doch sicher schlechter Programmierstil? Stichwort Laufzeit?

Ich logge gerade über einen gebastelten Abzweig die Kommunikation von PC und Elektrolyseur an einem Zweit-PC mit (PCAN-View).
Das Programm liest auch Fehler, Errorframes usw. mit, zeigt aber partous nichts an, selbst nach 40 Minuten nicht.



Neuester Stand:
Das Fehlerlogging hat einen Fehler ausgeworfen:

Form-Fehler, RX, Frame-Ende, RxErr=1, TxErr=0

Dann gibts in Labview den Fehler BusOff und dann anschließend Errorcounter Limit erreicht. Bahn
Hallo gm-axion,

ich arbeite auch mit dem PEAK USB-Dongle.
Lade doch mal dein Vi hoch.
Wenn du Errorframes hast, hat das wahrscheinlich nichts mit deinem Programm zu tun.
Passt deine Terminierung vom Bus? Hast du gedrillte Leitungen verwendet?

Die Baudrate gibt nur den "Grundtakt" vom Bus an.
Die Frames können dann z.B. im 20ms Takt gesendet werden.
Wie ist das bei dir?
Hast du 11-bit oder 29-bit-Identifier? Der CAN-Treiber muss demenstprechend konfiguriert werden!

Normalerweise liest man solange (ohne Intervall 0 ms), bis die CAN-Queue des PEAK-Treibers
leer ist, danach kannst du die Daten auswerten und die 0'en rausfiltern.

Gruß
Christian
Hallo Christian,
woran erkenne ich, ob es ein 11 oder 29bit identifier ist?
Die Leitung ist stellenweise verdrillt, ich habe da auch keine besondere Schirmung dran. Billige 2-Draht-Leitung Prinzip fliegender Aufbau :-D
Die Fehlermeldung, die ich bekomme, seit ich den Fehlercounter nicht mehr künstlich mit Variablen oder Schieberegsiter in die Höhe Schraube lautet:
Stuff-Fehler. Empfangsfehler RxErr=1

Ich lasse die CAN Kommunikation über einen gebastelten Abzweig ja mit einem anderen PC mitschreiben, da sehe ich die dann.
Das Programm lief jetzt aber schon 90Minuten mit 4 solcher Fehlermeldungen ohne abzustürzen, dann habe ich es selber beendet.
Danke für die Infos Christian!
Jonas
Referenz-URLs