LabVIEWForum.de - "Timeout" bei NI-XNET FRAME INPUT STREAM

LabVIEWForum.de

Normale Version: "Timeout" bei NI-XNET FRAME INPUT STREAM
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Zusammen,

Ich lese gerade die Daten von einem Mikrocontroller über den CAN-Bus aus. Hierbei ist mein cDAQ mit einer NI9862 CAN-Karte mein Master und der uC der Slave. Der uC schickt nach Aufforderung 12 CAN-Frames mit je 8 Byte Payload. Die Übertragung der Bits dauert für 12 CAN-Nachrichten bei einer Bitübertragungsrate von 1MBit theoretisch ca 3 ms:

0,7 ms auf dem uC nach Erhalt der CAN-Nachricht vom Master
1,5 ms für die reine Bitübertragungszeit auf dem Bus (Pro Nachricht 126 Bits)

Diese kann ich mit dem Oszi bestätigen. Jetzt verwende ich das im Betreff genannte VI und möchte den CAN-Bus damit auslesen. Der verwendete Modus passt gut auf meine Anwendung und wird im Handbuch wie folgt beschrieben: "This Mode reads all frames received from the network using a single stream. It typically is used for analyzing and/or logging all frame traffic in the network". Dieses VI hat einen "Timeout"-Eingang welcher wie folgt beschrieben wird:
"timeout is the time to wait for number to read frame values to become available." -> Lasse ich den Eingang unbelegt so empfange ich die 12 Frames zu ca. 0%, teilweise völlig unvollständig und in einer für mich nicht nachvollziehbaren Abfolge. Beaufschlage ich den Eingang mit einer 2 (=2 Sekunden) dann werden alle Nachrichten empfangen. Um die Zeit noch genau zu spezifizieren habe ich vor und nach dem NI-XNET VI eine Wartezeit in Millisekunden eingebaut. Das Ergebnis ist, egal ob ich vor oder nach dem VI warte, das CAN-Bus VI benötigt mindesten 1250 ms um die Daten vollständig auszulesen.

Nach mehreren Tagen testen, Handbüchern wühlen und Foren durchsuchen habe ich leider keine Idee mehr, woran es liegen kann, dass ich hier ein so große Zeit benötige um den Traffic auszulesen, bei einer Rechnerischen Bitübertragungszeit von ca. 3 ms. Weiter irritiert mich noch das Ablaufdiagramm aus dem Handbuch, dort wird CAN-Read ca 2ms nach dem Empfang der letzten Nachricht aufgerufen. Sprich sollten Zeiten in diesem Zeitrahmen möglich sein.

Anbei habe ich einen Screenshot von meinem Code und das Ablaufdiagramm aus dem Handbuch. Kann hier jemand Unterstützen?

VG und VIELEN DANK!!!
Was soll mir der Screenshots mit dem Ablaufdiagramm genau sagen? Ich kenne deinen µC nicht...

Hast du schon mal den "NI-XNET-Bus-Monitor" zum Lesen ausprobiert?

Gruß, Jens
Miss dich mal mit den Scope die Baudrate ganz genau aus.
Kann es sein, dass die Oszillatoren nicht auf Master und Slave nicht ganz genau gleich ticken?
Ich hatte mal so ein Problem bei 125 kHz. Probier doch mal eine andere Baudrate aus.

Gruß Holger
Hast Du die CAN Error Zähler überprüft?
Bei 128 geht ein Teinehmer in den Bus-Passiv Modus und bei 256 in Bus-Off. Dann hilft nur noch ein Reset.

Holger
Hallo Zusammen,


ich hab seit langem die NI9862 einmal wieder neu gestartet und jetzt tut es. LV-Code und uC-Code unverändert. Bahn
Danke trotzdem.

VG
Referenz-URLs