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 

Jede 100ms Neuer Wert soll aber jede ms sein



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!

16.01.2012, 14:40 (Dieser Beitrag wurde zuletzt bearbeitet: 16.01.2012 14:54 von Bobo.)
Beitrag #1

Bobo Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 61
Registriert seit: Sep 2011

10
-
DE



Jede 100ms Neuer Wert soll aber jede ms sein
Hallo, warum änder sich der Wert jede 100ms und nicht jede ms, in Vi sind das die Variablen „Anzeige“ und „Echo“ was mache ich falsch mit dem Array
für Version 9


Angehängte Datei(en)
10.0 .vi  Test.vi (Größe: 163,31 KB / Downloads: 224)

9.0 .vi  Mess_SOFTWARE_v3Data.vi (Größe: 159,61 KB / Downloads: 191)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.01.2012, 14:58
Beitrag #2

eb Offline
LVF-Lernwilliger
***


Beiträge: 292
Registriert seit: Mar 2008

2014
2008
EN

12xxx
Deutschland
RE: Jede 100ms Neuer Wert soll aber jede ms sein
Hallo Bobo,

in der oberen Schleife steht im DAQ-Assistenten, dass er stets 100werte abholt. Das macht bei einer Messfrequenz von 1KHz eben 100ms pro Schleifendurchlauf und also auch für die Anzeige "Echo"
Aber warum all diese überflüssigen lokalen Variablen?? Warum verdrahtest du nicht einfach den Wert den "Echo" bekommt auch an deine "Array initialisieren"-Funktion? Und warum beschreibst du dieses Anzeigeelement mehrfach in einem Schleifendurchlauf mit dem selben Wert?
Und bitte mehr "gerade Drähte" und weniger "Diagrammfläche"! Klingt blöd, ist aber so, weil die Lesbarkeit extrem gesteigert wird, und damit auch die Fehleranhäufungen sinken.

Bei der unteren Schleife: Ich sehe auf Anhieb nur "wait ms" als Timing-Funktion. Die Schleife kann also auch nicht im 1ms-Raster fahren, wenn sie jeden Schleifendurchlauf 50ms warten muss; zusätzlich zu den eh anfallenden Berechenungen.

Ich hab das "Array", von dem du gesprochen hast, nicht gefunden. Bitte erläutere das genauer.


Ich hoffe das hilft schonmal
Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.01.2012, 15:04 (Dieser Beitrag wurde zuletzt bearbeitet: 16.01.2012 15:04 von jg.)
Beitrag #3

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Jede 100ms Neuer Wert soll aber jede ms sein
"Anzeige" fragst du in einer parallel Loop per RS-232 nur alle (minimal) 52 ms ab.

"Echo" fragst du per Software-Timing in derselben Loop ab wie das DAQmx-AI-Read. Dein AI-Task läuft mit 1000 Hz Samplerate, du forderst immer 100 Werte pro Read-Operation an -> macht 100 ms.

Gruß, Jens

P.S. Vergiss es übrigens gleich, mit einer 6008 die DIs mit einer (Software-)Taktrate von 1kHz abfragen zu wollen. Einer solcher Software-Takt läuft unter Windows nicht stabil.

EDIT: Mist, Erik war schneller Wink

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
16.01.2012, 15:08 (Dieser Beitrag wurde zuletzt bearbeitet: 16.01.2012 15:10 von Lucki.)
Beitrag #4

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: Jede 100ms Neuer Wert soll aber jede ms sein
Bei Samplerate =1000 und 100 Samples pro Lesevorgang muss DAQmxRead immer 100ms warten, ehe wieder die 100 Samples im Buffer sind. Entsprechend ergibt sich die Umlaufszeit der Schleife zu 100ms.
Wenn Du noch einen zweiten, schnelleren Datenerfassungs-Task hast, darf sich der natürlich nicht in dieser Schleife befinden.

Doppelmist: 2 waren schneller..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.01.2012, 15:26 (Dieser Beitrag wurde zuletzt bearbeitet: 16.01.2012 15:36 von Bobo.)
Beitrag #5

Bobo Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 61
Registriert seit: Sep 2011

10
-
DE



RE: Jede 100ms Neuer Wert soll aber jede ms sein
Ich habe das jetzt bisschen geändert mit den Verbindungen, aber
1.Wenn ich in DAQ Assistenten auf N-Samples mache und 1K dann sagt er mir Fehler, wie kann ich das machen das er 1000 Werte pro Sekunde einliest ?
2. Die Variable Anzeige kommt von einem fertigen VI welches ich in mein Vi eingebunden habe im Datenblatt steht 5000 Werte /s
Ich habe nach einer allgemeinen Idee gefragt bzw. Lösung wie ich das hinbekomme das „Anzeige“ mir 1 Wert / ms ausgibt und mit dem Echo ja genau so

Das Vi


Angehängte Datei(en)
9.0 .vi  test2.vi (Größe: 125,71 KB / Downloads: 202)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.01.2012, 15:41
Beitrag #6

eb Offline
LVF-Lernwilliger
***


Beiträge: 292
Registriert seit: Mar 2008

2014
2008
EN

12xxx
Deutschland
RE: Jede 100ms Neuer Wert soll aber jede ms sein
Ich hab mir das VI jetzt nicht nochmal angeschaut, aber

Die Idee war vorher schon OK mit dem kontinuierlichen Lesen. Es waren ja schon vorher 1000Werte pro Sekunde, wobei eben immer 100 am Stück abgeholt wurden. Ich würde empfehlen: zu lesende Samples 100 bei 1KHz und dann alle Werte in ein Diagramm darstellen, dann "siehst" du werte für jede Millisekunde, es wird aber eben nur alle 100ms aktualisiert.

Gefragt hattest du sinngemäß "Warum macht er 100ms-Timing?" nicht "Wie mache ich ein 1ms -Timing", daher die Anworten so, wie gelesen.


Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
16.01.2012, 15:46
Beitrag #7

Bobo Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 61
Registriert seit: Sep 2011

10
-
DE



RE: Jede 100ms Neuer Wert soll aber jede ms sein
Ok dann erstmal eine Neue Frage,
Wie frage ich 1000 Werte ab für das Echo Signal?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.01.2012, 16:10 (Dieser Beitrag wurde zuletzt bearbeitet: 16.01.2012 16:12 von eb.)
Beitrag #8

eb Offline
LVF-Lernwilliger
***


Beiträge: 292
Registriert seit: Mar 2008

2014
2008
EN

12xxx
Deutschland
RE: Jede 100ms Neuer Wert soll aber jede ms sein
Hallo nochmal,

na das schrieb ich doch im letzten Post: Je nachdem was du bei "zu lesende Samples" andrahtest/einstellst.
Bei einer Messfrequenz von 1KHz heißt das:
a) stellst du 1000 ein, musst du 1mal pro Sekunde die Daten abholen und bekommst ein Array mit 1000werten.
b) Wenn du 100SamplesToRead einstellst, dann musst du 10mal pro Sekunde Daten abholen. Bei jedem Abholen erhälst du dann ein Array mit 100Werten.

War das besser erklärt?
Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.01.2012, 16:35
Beitrag #9

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Jede 100ms Neuer Wert soll aber jede ms sein
Nochmals, mit einer USB-6008/6009 ist das Auslesen von DIs nur mit Software-Takt möglich, also immer 1 Wert nach dem anderen.
Einen stabilen Software-Takt von 1 kHz bekommst du aber unter Windows nicht hin.

Gruß, Jens

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
16.01.2012, 16:54 (Dieser Beitrag wurde zuletzt bearbeitet: 16.01.2012 17:04 von Bobo.)
Beitrag #10

Bobo Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 61
Registriert seit: Sep 2011

10
-
DE



RE: Jede 100ms Neuer Wert soll aber jede ms sein
Zu erik.brenncke:
Danke ,dass habe ich auch schon oben verstanden…..:-)
Es ging mir um:
Wenn ich jetzt bei DAQ Assistenten bin (da wo das „Echo“ eingelesen wird) dort ist eingestellt 100 Samples wenn ich das ändere auf 1000 dann kommt aber eine Fehlermeldung!
1.Wie kann ich das Programmieren das eben kein Fehler kommt? Also was muss ich an Verbindungen ändern wenn ich im DAQ 1000 Samples einstelle? Meine Frage war komisch gestellt aber das meinte ich mit „Wie frage ich 1000 Werte ab für das Echo Signal?“
Zu jg:
Also sollte ich das mit 1000 Werten lassen? Also dann nur 10 pro sekunde?

So wie das jetzt aber in meinem Programm läuft sollten das aber 1000 Werte sein.
Jetzt bin ich verwirrt……

Kann man nicht mit Windows in µs auflösen.....Also ich habe das mal gelesen sicher bi ich mir da nicht jetzt ist mir das eingefallen
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
  Nur alle 100 Iterationen neuer Messwert MartinLoreck 4 4.273 18.09.2012 11:08
Letzter Beitrag: Achim
  TDMS- nicht jede Zeile beschreiben MARTINTUD 1 2.752 07.07.2012 06:36
Letzter Beitrag: Y-P
  Error 200022 beim Hinzufügen neuer Messungen ugarcia 3 5.733 05.03.2012 15:06
Letzter Beitrag: ugarcia
  getriggertes Signal(Y-Wert) bei bestimmtem X-Wert cedus 1 3.784 14.12.2007 23:56
Letzter Beitrag: ernie
  Messwerte speichern -> X Achse soll die Systemzeit sein Dr_Skolsson 7 6.178 12.12.2007 16:49
Letzter Beitrag: Dr_Skolsson
  Jede Sekunde ein Impuls gregorX 7 6.375 01.03.2006 23:09
Letzter Beitrag: gregorX

Gehe zu: