INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Labview+CANcaseXL (vector)



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

22.07.2010, 14:42
Beitrag #1

BlackDread Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Jul 2010

9.0.1 SP1 32-Bit
2010
de

88XXX
Deutschland
Labview+CANcaseXL (vector)
Hallo erstmal an einem schönen Nachmittag^_^,

naja ok so schön ist er auch nicht, ich steh hier nämlich auf der Leitung.
Mein Problem ist die Kommunikation mit einer ECU.
Das läuft über ein CANcaseXL von Vector. Ich soll über Labview Botschaften an die ECU
schicken und die Antworten überprüfen.
Das schicken bereitet mir keine Probleme (mit CANalyzer überprüft) die ECU antwortet auch etwas.
Das was die ECU antwortet will ich in LabVIEW einlesen und wie schon gesagt überprüfen.
Dazu habe ich über die .dbc mit dem Tool von Vector eine .vlv erstellt.
In der vlv kann ich CAN-Botschaften in Signale unterteilen und diesen Aliase zuweisen.
Mein Problem ist nun, ??wann?? ich die Botschaft abfragen kann? getaktet ist ja der CAN-Bus nicht.
Was hinzuzufügen ist, die eingehenden Daten sind immer in der selben Botschaft (selber Identifier).

Zusätzliche Frage: Kann ich Botschaften auch in einem 64bit Paket abfragen? bei meinen Versuchen ist bisher nur LV abgestürzt.
8x8bit geht.

Wenn ich vielleicht ein bisschen umständlich programmiert hab... ich bin noch nicht lange mit LABview beschäftigt
und habe auch noch nicht soo viel Erfahrung mit CAN, aber ich hab mein Bestes gegebenTongue

Zu den hochgeladenen VIs wurden in LV 8.6 geschrieben, allerdings hab ich jetzt LV 9.0.1 kA ob sich nach dem öffnen uns speichern was geändert hat.
außerdem wurde wie oben angedeutet der LV Treiber(dll)+ VI's von Vector verwendet, wird also Fehler bzw suche geben falls ihr den nicht installiert habt.

Danke schonmal für die Geduld und Mühe ^^

Lg BlackY

Die VIs+Subs
Sonstige .zip  routine_edit.zip (Größe: 64,16 KB / Downloads: 482)

Canalyzer64bit Signal    
Canalyzer8x8bit Signale    

________________________________________________
d-: Just me :-P
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
09.08.2010, 13:47 (Dieser Beitrag wurde zuletzt bearbeitet: 09.08.2010 14:13 von BlackDread.)
Beitrag #2

BlackDread Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Jul 2010

9.0.1 SP1 32-Bit
2010
de

88XXX
Deutschland
Labview+CANcaseXL (vector)
Da bin ich wieder, hatte letzte zeit nicht die Chance mit LabView zu arbeiten, aber jetzt gehts weiter!

Ich dachte mir, ich programmiere jetzt einfach eine while-Schleife, die den Empfangspuffer liest
und überprüft ob Daten (=! 00) da sind und diese dann über einen Cluster ausgibt.
Müsste doch so funktionieren oder? (Bildanhang) Oder habe ich da irgendwie falsch gedacht?!
Kann aber gerade nicht testen, weil die Hardware noch diesen Nachmittag belegt ist

Mfg BlackDread

ps.: Bin immernoch blutiger LV-Anfänger (und nein ein NI-Kurs wirds für mich leider nicht geben...)

edit: mist mir ist gerade aufgefallen, dass die Schleife endet sobald ein Teil ungleich 00 ist und nicht alle... müsste ja nur statt VerUNDen VerODERn sein, oder?


   

________________________________________________
d-: Just me :-P
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.08.2010, 19:34 (Dieser Beitrag wurde zuletzt bearbeitet: 10.08.2010 19:35 von schrotti.)
Beitrag #3

schrotti Offline
LVF-Freak
****


Beiträge: 842
Registriert seit: Feb 2008

2009 - 2011
2006
kA

70180
Deutschland
Labview+CANcaseXL (vector)
So weit ich die Funktionsweise des Treibers in Erinnerung habe, kann nicht auf das Eintreffen einer Nachricht oder ein anderes Ereignis gewartet werden. Vielmehr ähnelt das ganze der Channel-API von NI. Das heißt, der Treiber schiebt ein CAN-Signal in einen Puffer, der dann von dir mittels Polling ausgelesen werden muss. Allerdings muss hier die Blockgröße und die Blockfrequenz bestimmt werden. Der Treiber schreibt mit Hilfe dieser Größen die Signal in den Puffer. Kommt eine Nachricht zu einer ungünstigen Zeit, wird sie ignoriert. Aus den beiden genannten Größen lässt sich also bestimmen, wie lange die Wartezeit in der Schleife ausfallen sollte. Liest du schneller, wirst du oft Kopien bekommen, liest du langsamer, verpasst du Wertänderungen.

In deiner Schliefe fehlt auf jeden Fall ein Wait. Daher, warte meinetwegen 10 ms und guck dann, ob was im Puffer liegt. Wenn nicht, wiederhole den Vorgang 10, 20 oder 50 mal.

Gruß Julius
Empfehlungen: expressionflow, LavaG , mooregoodideas, OpenG, JKI Blog
Tipp
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.08.2010, 11:17 (Dieser Beitrag wurde zuletzt bearbeitet: 13.08.2010 11:23 von BlackDread.)
Beitrag #4

BlackDread Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Jul 2010

9.0.1 SP1 32-Bit
2010
de

88XXX
Deutschland
Labview+CANcaseXL (vector)
Hallo Schrotti,
danke für deine Antwort!
Die Blockfrequenz und die Blockgröße kann ich in dem *.vlv-File einstellen. Ich komm damit nur nicht ganz zurecht...
Je nach Blockgröße(=X) gibt mir das EmpfangsVI ein 1D-Array mit X Feldern aus. Der Treiber schreibt wohl die eingehende Nachricht in den Block der gerade da ist, falls keine Nachricht da ist, wird die zuletzt Empfangene in den Block geschrieben.

Da dachte ich mir mache ich einfach Blockgröße 1 --> Nachricht immer im ersten Feld des 1D-Array.
Somit könnte ich ja eine Nachricht verschicken, Antwort empfangen,nächste Nachricht schicken, empfangen usw.

Ich denke, das Problem ist, dass der Treiber die Wiederholung (da kein neuer Wert da ist) in den Puffer schreibt und ich dadurch immer wieder Wertwiederholungen reinbekomme.

Ich hab nun irgendwie enorm Probleme Versand, Empfang,Blockfrequenz+Blockgröße so anzupassen dass es miteinander harmoniert

falls jemand Lust und Zeit hat einem armen verzweifeltem Studenten zu helfen
wäre das supernett und ich würde mich echt freuen

btw das Forum ist echt gut und ich hab hier schon viel gelernt (lesenlesenlesen =))

Danke nochmal an dich Schrotti

Schönes WE noch und bis wahrscheinlich Montag

Lg Chris

________________________________________________
d-: Just me :-P
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  CancaseXL mit Labview senden/empfangen 8 byte Botschaft luna 7 6.349 05.07.2021 16:47
Letzter Beitrag: luna
  CancaseXL Transmit Error artia 1 5.132 22.02.2013 13:07
Letzter Beitrag: artia
  vector CAN Open Problem artia 4 7.951 20.02.2013 14:16
Letzter Beitrag: artia
  Vector LabVIEW CAN-Kommunikation LV-Starter123 0 5.078 19.10.2011 06:21
Letzter Beitrag: LV-Starter123
  LabView + CanCaseXL (Bussystem ansteuern) klaive 0 4.615 27.04.2011 08:49
Letzter Beitrag: klaive

Gehe zu: