CAN - Lesen und Schreiben ?

VISA, TCP/IP, CAN und ähnliche Protokolle

CAN - Lesen und Schreiben ?

Postby Andband on 08 Dec 2009, 21:57

Hallo,
ich mache gerade ein Praktikum. In der Firma verwenden die Leute Labview um Sensordaten ueber CAN einzulesen. Der Typ der die Labview-Programme geschrieben hat arbeitet aber schon laenger nicht mehr hier, deshalb werden die Programme im Prinzip nicht weiterentwickelt bzw. verbessert. Man versucht halt so durchzukommen.
Jedenfalls gibt es verschiedene Arten von Sensoren. Die einen schalten sich automatisch ein, und liefern Daten ueber CAN. Andere brauchen einmal einen Befehl um sich einzuschalten (ueber die Write Funktion von CAN - irgendein Wert muss an irgendner Adresse/Bit - ich weiss nicht, genau wie man das bezeichnet - geschrieben werden) und wieder andere brauchen kontinuierlich einen (gleichen) Befehl um aktiv zu bleiben, andernfalls schalten sie sich aus. Und jetzt verwenden die hier fuer letztere Sorte wirklich ZWEI Computer, den einen zum Lesen der CAN-Daten und den anderen zum schreiben dieses WRITE-Befehls. Mir wurde gesagt, dass niemand hier in der Abteilung weiss wie man mit CAN Lesen und Schreiben gleichzeitig kann.
Meiner Meinung nach muesste das aber doch ohne Probleme gehen. CAN ist ja eien Art modifiziertes Ethernetprotokoll und da gibt es ja auch sowas wie FullDuplex. Naja, aber das ist nur meine Meinung. Deshalb frag ich hier mal nach, ob das nicht irgendwie geht, und wenn ja: wie?
Anhand meiner Frage koennt ihr sicherlich entnehmen, dass ich auch wenig Plan von Labview habe...
Danke schonmal
Lg

And
Andband
assistant
assistant
 
Posts: 132
Joined: 26 Oct 2009, 23:05
LabVIEW Version: 7.1
Karma: 5

Re: CAN - Lesen und Schreiben ?

Postby Eugen Graf on 08 Dec 2009, 22:24

Du musst eine Schleife haben und in dieser Schleife zuerst eine For-Scleife die die ganzen Befehle rausschreibt und danach mit einer weiteren While-Schleife einfach alles was kommt einlesen bis die Daten von allen Sensoren angekommen sind.

Oder liefern die Sensoren die Daten mit unterschiedlichen Frequenzen?
User avatar
Eugen Graf
guru
guru
 
Posts: 6502
Joined: 13 Nov 2007, 02:20
Location: Saarbrücken
Medals: 4
Activity (1) Professionalism (1) Silver (1) Black (1)
LabVIEW Version: 2009
Karma: 303
CLAD I/O VIP bloggers internet

Re: CAN - Lesen und Schreiben ?

Postby Andband on 09 Dec 2009, 01:49

Hm - ich checks net so ganz -
momentan ist es so, es besteht ein Programm, dass den CAN Bus bzw. verschiedene Adressen auf dem Canbus (welche man aussuchen kann) mit 1 Hz liest und diese Daten darstellt in 10 Plots (für 10 verschiedene Sachen halt) - es soll kontinuierlich mit leidglich 1 Hz gelesen werden (die Sensoren liefern viel mehr Daten eigentlich...wie schnell weiß ich nicht und sicher nicht alle gleich schnell, aber das ist ja egal) und gleichzeitig aber auch immer wieder dasselbe "Bleib-An-Ich-Will-Daten"- Signal (je nach Sensor verschieden) geschrieben werden, damit der Sensor anbleibt. Es gibt nur einen einzigen Befehl im Prinzip, den man senden muss, damit der Sensor anbleibt.
Ich muss also irgendwie vielleicht in einer Sequenz abwechselnd Lesen und Schreiben und diese Sequenz muss dann in einer while schleife stehen. So hätt ich es vom Prinzip her gedacht. Was du meinst check ich nicht so ganz, aber vielleicht hab ich auch mein Problem nicht richtig beschrieben gehabt.
Andband
assistant
assistant
 
Posts: 132
Joined: 26 Oct 2009, 23:05
LabVIEW Version: 7.1
Karma: 5

Re: CAN - Lesen und Schreiben ?

Postby Eugen Graf on 09 Dec 2009, 03:41

Ich denke, ich habe dich schon richtig verstanden. Versuche zu verstehen, was ich oben geschrieben habe. Im Prinzip ist alles einfach, ausser, wenn es um wirklich ganz unterschiedliche Frequenzen geht bei Sensoren, die automatisch (ohne Anrage) Daten senden.
User avatar
Eugen Graf
guru
guru
 
Posts: 6502
Joined: 13 Nov 2007, 02:20
Location: Saarbrücken
Medals: 4
Activity (1) Professionalism (1) Silver (1) Black (1)
LabVIEW Version: 2009
Karma: 303
CLAD I/O VIP bloggers internet

Re: CAN - Lesen und Schreiben ?

Postby Andband on 10 Dec 2009, 00:47

Ok, du sagst, eine While-Schleife, in der erstmal der "Bleib-An-Ich-Will-Daten"- Befehl geschickt wird. Warum der in einer For-Schleife sein muss weiss ich nicht. Du meinst, wenn ich mehrere verschiedene "Bleib-An-Ich-Will-Daten"-Befehle an verschiedene Sensoren schicken will, muessen die hintereinander geschickt werden? Koennte man dafuer auch einfach eine Stacked-Sequenz verwenden? Ist das hier nicht dasselbe?

Ok und dann muss ich warten, bis alle Daten angekommen sind, aber wie mach ich das? Woher weiss ich wann die einzelen Sensoren fertig sind? Die jenigen auf dem Bus die immer senden, wuerden ja einfach weitersenden und nie aufhoeren.
Andband
assistant
assistant
 
Posts: 132
Joined: 26 Oct 2009, 23:05
LabVIEW Version: 7.1
Karma: 5


Return to Kommunikation mit Geräten

Who is online

Users browsing this forum: No registered users and 1 guest

cron