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 

Daten aus einer Leitung in Array speichern



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!

19.11.2012, 14:30 (Dieser Beitrag wurde zuletzt bearbeitet: 19.11.2012 14:32 von Sascha Meyer.)
Beitrag #1

Sascha Meyer Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Nov 2012

2012
2012
kA



Daten aus einer Leitung in Array speichern
Moin,
mein Name ist Sascha und ich arbeite zur Zeit an einem Projekt im Rahmen meines Studiums, indem ich CAN-Daten aus dem Peugeot iOn lese.

Folgendes Problem:
Ich bekomme aus dem CAN-bus mehrere Signale. Gaspedalstellung,Bremsdruck, Geschwindigkeit usw.
Ein Signal z.B. das "Gaspedal" kommt in einem Intervall von 0,01 Sekunden.
Zur Weiterverarbeitung dieses Signales würde ich gerne 6000 Werte im Array (Spaltenvektor) sammeln.

Meine Idee zur Lösung:
Zuerst baue ich mir eine Art Prüfstand.
Ich generiere Zufallszahlen alle 0,01s und speichere diese im Array ab.
Diese Lösung funktioniert allerdings nur, wenn die Zufallszahl in einer for - Schleife ist.
Da ich meine Signale nicht in eine for - schleife einbinden kann, bräuchte ich eine Andere Lösung!

Dieses Problem wurde hier und im Internet schon öfters angesprochen. Jedoch sind die Antworten für mich nicht klar genug gewesen.

Im Anhang habe ich den Prüfstand als vi.
Ich arbeite mit LabVIEW 2012.

Schon mal vielen Dank im Vorraus

Verzeihung das ich dieses Thema in Datenerfassung gespeichert habe.


Beste Grüße
Sascha


Angehängte Datei(en)
12.0 .vi  Prüfstand Ion.vi (Größe: 12,29 KB / Downloads: 301)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
19.11.2012, 17:15
Beitrag #2

SchwindelInside Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 77
Registriert seit: Dec 2005

2012 pro
2005
EN


Deutschland
RE: Daten aus einer Leitung in Array speichern
(19.11.2012 14:30 )Sascha Meyer schrieb:  Moin,
mein Name ist Sascha und ich arbeite zur Zeit an einem Projekt im Rahmen meines Studiums, indem ich CAN-Daten aus dem Peugeot iOn lese.

Folgendes Problem:
Ich bekomme aus dem CAN-bus mehrere Signale. Gaspedalstellung,Bremsdruck, Geschwindigkeit usw.
Ein Signal z.B. das "Gaspedal" kommt in einem Intervall von 0,01 Sekunden.
Zur Weiterverarbeitung dieses Signales würde ich gerne 6000 Werte im Array (Spaltenvektor) sammeln.

Meine Idee zur Lösung:
Zuerst baue ich mir eine Art Prüfstand.
Ich generiere Zufallszahlen alle 0,01s und speichere diese im Array ab.
Diese Lösung funktioniert allerdings nur, wenn die Zufallszahl in einer for - Schleife ist.
Da ich meine Signale nicht in eine for - schleife einbinden kann, bräuchte ich eine Andere Lösung!

Dieses Problem wurde hier und im Internet schon öfters angesprochen. Jedoch sind die Antworten für mich nicht klar genug gewesen.

Im Anhang habe ich den Prüfstand als vi.
Ich arbeite mit LabVIEW 2012.

Schon mal vielen Dank im Vorraus

Verzeihung das ich dieses Thema in Datenerfassung gespeichert habe.


Beste Grüße
Sascha

So wie mit der zufallszahl wird das nicht funktionieren, da Du ja immer genau eine Zufallszahl pro Schleifendurchlauf bekommst.
Bei auslesen der CAN-Schnittstelle wird es da etwas komplizierter, da die Daten nicht exakt so schnell einflattern wie Deine Schleifenzyklen.
Wenn Dein CAN-Bus gepuffert ist, liegen je nach größe immer mehrere Messwerte im Puffer. Diesen musst Du in regelmäßigen Abständen auslesen und die Daten auschnipseln und sortieren. Dannach kannst Du Element für Element mit einer For-Schleife in ein Array schreiben.
Wenn Du schon weißt, dass Du 6000 Werte in ein Array speichern möchtest, dann initailisier Dir den Array auserhalb der Schleife auf diese Größe vor und ersetze die Nullen dann mittels For-Schleife durch Deine Messwerte.

Gruß SI
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.11.2012, 08:58
Beitrag #3

Sascha Meyer Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Nov 2012

2012
2012
kA



RE: Daten aus einer Leitung in Array speichern
Vielen Dank für die Antwort.

Das Signal was ich vom CAN-bus abrufen will kommt alle 0,01s.Somit haben wir 6000 Signale in der Minute. Kannst du mir bitte nochmal genauer erklären wie das vi aussehen soll. Die Array initialisierung habe ich, nur weiß ich genau wie du das mit der for schleife meintest?!

Mir geht es wirklich nur um das Problem, dass ich nicht weiß wie ich in LabVIEW ein array aufbauen kann, dessen Werte aus einer Leitung kommen.

Beste Grüße

Sascha
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.11.2012, 09:13
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.426
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Daten aus einer Leitung in Array speichern
Hallo Sascha,

Zitat:ich nicht weiß wie ich in LabVIEW ein array aufbauen kann, dessen Werte aus einer Leitung kommen.
1) Hast du schon mal daran gedacht, die Einsteigerkurse bei NI durchzugehen? (s. Link unten)
2) "Leitung" ist kein sehr treffender Term, er sagt nichts über den Datentyp aus!
3) Mal ein paar Beispiele, alle mit Vor- und Nachteilen:
   

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.11.2012, 09:59 (Dieser Beitrag wurde zuletzt bearbeitet: 20.11.2012 10:00 von Sascha Meyer.)
Beitrag #5

Sascha Meyer Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Nov 2012

2012
2012
kA



RE: Daten aus einer Leitung in Array speichern
ja das hast du sicher recht das Leitung kein sicherer Term ist.
Leider kann die die "Leitung"( Es ist der Datentyp double) nicht in eine for bzw. while Schleife packen.
Ansonsten wäre es kein Problem und ich könnte es so angehen wie in dem Bild zu sehen ist.

Trotztdem vielen Dank für die Antwort

Beste Grüße

Sascha
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.11.2012, 10:07
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.426
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Daten aus einer Leitung in Array speichern
Hallo Sascha,

Zitat:Leider kann die die "Leitung"( Es ist der Datentyp double) nicht in eine for bzw. while Schleife packen.
Ich bin mir ziemlich sicher, dass dein Vi in einer Schleife in einem Haupt-VI aufgerufen wird. Ansonsten gibt es ja auch noch FeedbackNodes, die ohne Schleife auskommen:
   

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.11.2012, 11:45 (Dieser Beitrag wurde zuletzt bearbeitet: 20.11.2012 11:50 von SchwindelInside.)
Beitrag #7

SchwindelInside Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 77
Registriert seit: Dec 2005

2012 pro
2005
EN


Deutschland
RE: Daten aus einer Leitung in Array speichern
(20.11.2012 09:13 )GerdW schrieb:  Hallo Sascha,

Zitat:ich nicht weiß wie ich in LabVIEW ein array aufbauen kann, dessen Werte aus einer Leitung kommen.
1) Hast du schon mal daran gedacht, die Einsteigerkurse bei NI durchzugehen? (s. Link unten)
2) "Leitung" ist kein sehr treffender Term, er sagt nichts über den Datentyp aus!
3) Mal ein paar Beispiele, alle mit Vor- und Nachteilen:

Das 4. Beispiel ist das was ich meine. Allerdings ohne durch die 1000 zu dividieren. Ich verstehe echt nicht was dieser Quotienten-Rest da soll. Huh Der ergibt doch immer null, ebenso wie der ganzahlige Quotientenanteil, wenn der Divisor größer ist als der Divident. Sascha will doch nicht nur jedes 1000ste Element speichern sondern jedes, soweit ich das verstanden habe.

Auf den Labview-Veranstaltungen habe ich gelernt, dass beim Anfügen von Elementen an ein Array jedes mal eine Kopie des Arrays im Speicher angelegt wird. Dadurch besteht bei vielen Schleifenzyklen eine erhöhte Gefahr von Speicherüberläufen. Deshalb wird empfohlen ein Array wenn möglich vorzuinitialisieren und dann die Elemente zu ersetzen. Dann wird immer nur so viel Speicher belegt, wie das Array in der vorinitilisierten Größe benötigt.

Die Bezeichnung "Leitung" finde ich in Labview in Ordnung. Da weiß eigentlich jeder was gemeint ist. Man könnte es auch " Datenflussleitung", "Verdrahtung" oder "Verbindung" nennen. Den Datentyp kann man ja, wenn nötig, mit dazu nennen.

viele Grüße
Stefan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.11.2012, 11:48 (Dieser Beitrag wurde zuletzt bearbeitet: 20.11.2012 11:51 von GerdW.)
Beitrag #8

GerdW Offline
______________
LVF-Team

Beiträge: 17.426
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Daten aus einer Leitung in Array speichern
Hallo Stefan,

Zitat:Ich verstehe echt nicht was dieser Quotienten-Rest da soll
Der Rest einer Division von i und 1000 ist nicht immer Null...
Modulo-Rechnung hatte ich in der (ca.) 5. Klasse das erste mal... Big Grin

Ich habe ein Array mit 1000 Elementen definiert und möchte ein Element nach dem anderen durch einen Messwert ersetzen. Der Schleifenzähler zählt hoch und der Remainder begrenzt das ganze auf den Bereich 0...999!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.11.2012, 12:25
Beitrag #9

SchwindelInside Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 77
Registriert seit: Dec 2005

2012 pro
2005
EN


Deutschland
RE: Daten aus einer Leitung in Array speichern
(20.11.2012 11:48 )GerdW schrieb:  Hallo Stefan,

Zitat:Ich verstehe echt nicht was dieser Quotienten-Rest da soll
Der Rest einer Division von i und 1000 ist nicht immer Null...
Modulo-Rechnung hatte ich in der (ca.) 5. Klasse das erste mal... Big Grin

Ich habe ein Array mit 1000 Elementen definiert und möchte ein Element nach dem anderen durch einen Messwert ersetzen. Der Schleifenzähler zählt hoch und der Remainder begrenzt das ganze auf den Bereich 0...999!
Hallo Gerd,

Ich gebe Zu mit Divisions-Resten habe ich mich nicht mehr beschäftigt, seitdem der Taschenrechner die Division für ich übernimmt. Big Grin
Dann überschreibst Du aber aller 1000 mal alle Werte wieder. Ist das gewollt?

Grüße
Stefan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.11.2012, 12:43
Beitrag #10

Sascha Meyer Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Nov 2012

2012
2012
kA



RE: Daten aus einer Leitung in Array speichern
Hallo,2hands

vielen Dank für den Hinweis mit den FeedbackNodes. Genau das habe ich gesucht.
Vielen Dank für Eure Hilfe!YourockYourock
Ihr habt hervorragende Arbeit geleistet!

Ich komme gern auf Eure Hilfe wieder zurück.

Beste Grüße

Sascha
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
  Daten in eine Tabelle speichern Gottimp 4 2.758 28.07.2021 16:47
Letzter Beitrag: jg
  Maximalwert aus Array speichern Hans96 3 4.206 15.07.2021 14:56
Letzter Beitrag: Hans96
  mit Ringbuffer Werte einer Minute speichern mikadm 14 5.643 08.09.2020 11:00
Letzter Beitrag: GerdW
  Daten einer SPS S7-1200 mit SP7 Toolkit auslesen Daniel9395 17 10.457 05.08.2020 09:26
Letzter Beitrag: Daniel9395
  String in Array speichern für flexible Gruppenbenennung in TDMS Datei hansi_1 3 3.446 10.12.2019 09:45
Letzter Beitrag: Freddy
  Daten speichern hulk 12 7.116 23.08.2019 07:11
Letzter Beitrag: GerdW

Gehe zu: