LabVIEWForum.de
Diskrepanz zwischen CAN-Datenbus Logger und VI (J1939 BAM) - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Instrument IO & VISA (/Forum-Instrument-IO-VISA)
+---- Thema: Diskrepanz zwischen CAN-Datenbus Logger und VI (J1939 BAM) (/Thread-Diskrepanz-zwischen-CAN-Datenbus-Logger-und-VI-J1939-BAM)



Diskrepanz zwischen CAN-Datenbus Logger und VI (J1939 BAM) - EinVolvic - 28.06.2017 12:26

Hallo zusammen,

ich habe heute einen Zaubertrick in LabView kennengelernt. Und zwar kann den Inhalt von CAN-Frames verschwinden lassen Big Grin

Also es geht darum, in einem CAN-J1939-Netzwerk Multiframes zu empfangen (die BAMs). Ich erhalte nicht immer den Payload, den der NI-XNET-Bus-Monitor mir anzeigt, sondern einen komplett leeren. Komischerweise fehlt nur der Payload, die ID und den Zeitstempel erhalte ich. Außerdem taucht die Lücke zwischen den einzelnen Frames auf, nicht am Anfang oder am Ende, siehe Bild im Anhang [attachment=57940].

Orientiert habe ich mich an dem Beispiel von NI: http://www.ni.com/example/31215/en/#toc10
Ich habe das Beispiel-VI um die Sendefunktion gekürzt, da ich nur lesen möchte. Zudem habe ich ein Sub-VI hinzugefügt, der mir die BAMs richtig nummeriert (dies wird vom Beispiel verlangt) und zwei Fehler-Counter. Die Session ist wie im Beispiel ein Frame-In-Stream. Nach dem erfolgreichen Zusammensetzen der BAMs stoppe ich die Session und leere ihre Queue. In der Vergangenheit trat ohne sie ständig ein Puffer-Überlauf auf.
Das VI ist nur ein Sub-VI und alleine nicht lauffähig:[attachment=57941]

Könnt ihr am VI etwas verdächtiges erkennen? Ich hoffe, dass wir zusammen diese schwarze Magie in den Griff bekommen können. Blush

Schöne Grüße
EinVolvic


RE: Diskrepanz zwischen CAN-Datenbus Logger und VI (J1939 BAM) - Freddy - 18.10.2017 10:32

Hallo EinVolvic
Zitat:Zusammensetzen der BAMs stoppe ich die Session und leere ihre Queue. In der Vergangenheit trat ohne sie ständig ein Puffer-Überlauf auf.
Wenn in dem Cluster J1939 kein "Processed Incoming" vorhanden ist ist die Größe des playload Array =0.
D.h. Die While Schleife kann nur noch durch die Stop Taste beendet werden. Kleines Problem, da das Frontpanel nicht angezeigt wird.

Grundsätzlich leere Queue vorher abfangen. Die Stop Taste wird nicht benötigt.

Gruß
Freddy