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 

2D Array in Zeitabschnitten



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!

06.11.2013, 09:58
Beitrag #1

Hamoudi Offline
LVF-Grünschnabel
*


Beiträge: 22
Registriert seit: Sep 2013

8.5
2013
DE

89xxx
Deutschland
2D Array in Zeitabschnitten
Guten Morgen liebe LabVIEW Gemeinde,

ich habe ein kleines Problem bei dem ich euch um Hilfe bitte.
Ich würde gerne aus einer Tabelle ein 2D Array erstellen, welches allerdings gewisse Werte in definierten Zeitabschnitten auflistet.

Ein kleines Beispiel. In meiner Tabelle steht:

1s 5V
2s 3V
3s 1V...........

Nun möchte ich, sofern möglich, dass mein Array in z.B 100ms Abschnitten die Werte auflistet, also:

0; 0,1; 0,2; 0,3; 0,4;.......; 1; 1,1; 1,2; usw <--- Zeitabschnitte
5; 5; 5; 5; 5;......; 5; 3; 3; usw <--- dazugehörige Were


Ich habe schon viel herum experimentiert, aber leider ohne Erfolg.
Ich hoffe dass ich euch mein Problem einigermaßen erklären konnte. Habe noch ein Screenshot hochgelade um es eventuell nochmal zu verdeutlichen Smile
Für Ansätze oder Hilfestellungen wäre ich euch sehr dankbar Blush

Liebe Grüße


Angehängte Datei(en) Thumbnail(s)
   
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
06.11.2013, 13:35
Beitrag #2

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: 2D Array in Zeitabschnitten
So könnte es funktionieren:
       
Gruß Ludwig
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.11.2013, 13:41 (Dieser Beitrag wurde zuletzt bearbeitet: 06.11.2013 13:47 von BsaiboT.)
Beitrag #3

BsaiboT Offline
LVF-Stammgast
***


Beiträge: 449
Registriert seit: Nov 2009

2010
2007
kA

22459
Deutschland
RE: 2D Array in Zeitabschnitten
Gegenfrage: Wozu werden die Arrays in der Form später gebraucht?

Prinzipiell: Du kennst die Stufen, du kennst somit auch die Anzahl Werte (Zeitschritte dt) (bzw. kannst beides errechnen) und du kennst den jeweiligen Wert.

Du kannst jetzt bspw. mit Forschleifen x-Mal den fixen Wert 5 und den fortlaufenden Zeitwert (t + dt) (0,0; 0,1; 0,2;...) in ein Array schreiben.
Danach nochmal die Schleife für die weiteren Stufen durchlaufen (Man könnte die Forschleife wiederum in eine Forschleife stecken.). Achte darauf, dass dein Zeitwert bei den weiteren Durchläufen dann immer mit dem letzten Zeitwert des letzten Schleifendurchlaufs plus dt beginnt. Die so entstandenen Arrays kann man nach jeder "inneren" Forschleife wieder an das bestehende Array anhängen und so bekommst du dann dein Gesamtarray am Ende der "äusseren" Forschleife.

Wenn du dir die Schritte einmal als Programmablaufdiagram visualisierst (klassisch mit Papier und Stift) wird vermutlich einiges klarer....

Gruß,
//Tobias

Edit:
Ludwig zeigt ein schönes Beispiel.
Was passiert denn da, wenn die Stufen 1;1,5;2,5;3;3,7; usw sind? Kann es grad nicht nachbauen, weil ich bei der Arbeit bin....
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.11.2013, 14:23 (Dieser Beitrag wurde zuletzt bearbeitet: 06.11.2013 14:24 von Hamoudi.)
Beitrag #4

Hamoudi Offline
LVF-Grünschnabel
*


Beiträge: 22
Registriert seit: Sep 2013

8.5
2013
DE

89xxx
Deutschland
RE: 2D Array in Zeitabschnitten
Zunächst einmal vielen Dank für eure Antworten und die fantstische Hilfe Smile

@Tobias: ich brauche das Array in der Form weil ich es später direkt in ein Arbiträres Signal einlesen möchte.
Im Rahmen eines Projekts was ich mache, soll später (über verschiedene Registerkarten) ein Verlauf zunächst simuliert und dann an ein CAN-Bus gesendet werden. Da es eben einfach schöner ist nicht jedesmal im Blockdiagramm auf dem Arbitären-Signal-Vi meine Tabelle zu definieren, habe ich diese extern gemacht und würde daraus das Array erstellen und direkt weitergeben.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.11.2013, 16:20 (Dieser Beitrag wurde zuletzt bearbeitet: 06.11.2013 16:26 von Lucki.)
Beitrag #5

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: 2D Array in Zeitabschnitten
(06.11.2013 13:41 )BsaiboT schrieb:  Was passiert denn da, wenn die Stufen 1;1,5;2,5;3;3,7; usw sind? Kann es grad nicht nachbauen, weil ich bei der Arbeit bin....
Wie Du wohl richtig vermutest, ist das Beispiel nicht perfekt, z.B dann dann nicht, wenn es in der Tabelle Zeitsprünge gibt, die kleiner sind als das gewünschte dt. Beispiel:
   
Aber Du weißt ja, eine Anwendung gegen alle Eventualitäten richtig wasserdicht zu machen ist ein Vielfaches mehr Arbeit als ein erster funktionierenden Entwurf. Und für dieses Beispiel so wie es ist habe ich mich eigentlich schon weit genug aus dem Fenster gelehnt Big Grin
Wenn Du es weiterentwickeln willst:

10.0 .vi  Test1.vi (Größe: 8,86 KB / Downloads: 201)

Gruß Ludwig
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.11.2013, 17:48
Beitrag #6

Hamoudi Offline
LVF-Grünschnabel
*


Beiträge: 22
Registriert seit: Sep 2013

8.5
2013
DE

89xxx
Deutschland
RE: 2D Array in Zeitabschnitten
So Leute, ich wende mich erneut an euch weil das nächste Problem prompt kommt.

Gibt es eine Möglichkeit das Programm so zu erweitern dass der Zeitwert in der tabelle für die Dauer des jeweiligen Werts gilt?
Sprich, 1Sekunde 5Volt, 2Sekunden 3Volt usw..

Gleiches Beispiel. In der Tabelle steht:
1s 5V _______ 1s lang 5V
2s 3V _______ 2s lang 3V
3s 1V _______ 3s lang 1V

Nun soll das Array wie gehabt in 0,1s Abschnitten die Werte auflisten, mit dem kleinen Unterschied dass diese über den jeweiligen Zeitwert andauern.

Array:
0;0,1;0,2;.............1;1,1;1,2;1,3.............2;2,1;2,2;...........3;3,1;3,2;................5,9;6;
5;5;5;..................5;3;3;3;....................3;3;3;................3;1;1;......................1;1;

Ich steh gerade echt total aufm Schlauch und entschuldige mich am besten schon mal jetzt für die Frage.
Für Hilfe wäre ich euch sehr sehr dankbar.

Liebe Grüße
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.11.2013, 18:24 (Dieser Beitrag wurde zuletzt bearbeitet: 12.11.2013 18:25 von GerdW.)
Beitrag #7

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: 2D Array in Zeitabschnitten
Hallo Hamoudi,

Zitat:Gleiches Beispiel. In der Tabelle steht:
1s 5V _______ 1s lang 5V
2s 3V _______ 2s lang 3V
3s 1V _______ 3s lang 1V

Nun soll das Array wie gehabt in 0,1s Abschnitten die Werte auflisten

Pseudocode:
Code:
time = 0
FOR each row in table
  FOR (timeinterval/0.1s)
    add row to output array(time, voltage)
    time := time + 0.1
  NEXT
NEXT
Statt einer festen Anzahl Zeilen wird eine variable Anzahl Zeilen zum Array hinzugefügt...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.11.2013, 18:36 (Dieser Beitrag wurde zuletzt bearbeitet: 12.11.2013 19:02 von Hamoudi.)
Beitrag #8

Hamoudi Offline
LVF-Grünschnabel
*


Beiträge: 22
Registriert seit: Sep 2013

8.5
2013
DE

89xxx
Deutschland
RE: 2D Array in Zeitabschnitten
Danke GerdW, habs soeben hinbekommen Big Grin
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.11.2013, 14:00
Beitrag #9

Hamoudi Offline
LVF-Grünschnabel
*


Beiträge: 22
Registriert seit: Sep 2013

8.5
2013
DE

89xxx
Deutschland
RE: 2D Array in Zeitabschnitten
Jetzt hab ich allerdings doch nochmal eine Frage.
Ich hab gerade eben nochmal das Programm getestet und mir ist aufgefallen dass teilweise die Zeitzuteilung falsch ist.
Es wird nicht der gewünschte Zeitintervall genommen, sonden mal sind es 0,2 zu viel, mal 0,4 zu wenig, oder aber auch mal ne 1,1 oder 2,0 doppelt........ Mir gehen langsam echt die Ideen aus.

Ich hab das Programm jetzt mal hochgeladen. Würde mich freuen wenn sich das jemand anschauen könnte und mir vielleicht sagen könnte was ich genau falsch gemacht hab.

Liebe Grüße


Angehängte Datei(en)
8.5 .vi  Stromprofil.vi (Größe: 23,36 KB / Downloads: 162)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.11.2013, 14:19 (Dieser Beitrag wurde zuletzt bearbeitet: 13.11.2013 14:29 von jg.)
Beitrag #10

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: 2D Array in Zeitabschnitten
Das kommt davon, wenn man sich durch parallele Verwendung von lokalen Variablen (oder noch schlimmer PropertyNode Value) Race Conditions programmiert.

Gruß, Jens

EDIT: Hier eine Korrektur deines Ansatzes:

8.5 .vi  Stromprofil.vi (Größe: 14,42 KB / Downloads: 208)

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: