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 

Abbruchbedingung while-Schleife führt zu Fehler



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!

04.02.2015, 16:34
Beitrag #21

toxicomanie Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 97
Registriert seit: Feb 2015

2014
2015
DE


Deutschland
RE: Abbruchbedingung while-Schleife führt zu Fehler
Auwezwick... Da magst du wohl recht haben O Aber die Kontexthilfe hab ich tatsächlich immer offen! Smile

Ich dank dir jetzt erst mal ganz ganz besonders für die Engelsgeduld die du mit mir hast, ohne dich wär ich heut ganz schön verzweifeltConstruction Danke für die Hilfe und bis morgen hoffentlich, jetzt hast du erst mal Ruhe vor mir! Wink

Liebe Grüße,
Franzie
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
05.02.2015, 08:39 (Dieser Beitrag wurde zuletzt bearbeitet: 05.02.2015 08:44 von toxicomanie.)
Beitrag #22

toxicomanie Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 97
Registriert seit: Feb 2015

2014
2015
DE


Deutschland
RE: Abbruchbedingung while-Schleife führt zu Fehler
So, guten Morgen! Smile

Heute möchte ich es hinbekommen, dass der Mittelwert richtig gebildet wird und alle dafür erforderlichen Bedienelemente auf dem Frontpanel vorhanden sind.

Die Forderung lautet ja, dass ich alle 60 Sekunden einen einzigen Mittelwert bilde aus den in dieser Zeit gemessenen Werten. Es soll alle 10ms abgetastet werden - das ist das Sample-Intervall, oder? Diese Sample-Rate soll einstellbar sein.
Meine Frage ist jetzt, wie stelle ich das im DAQ-Assi richtig ein? Es gibt die "zu lesenden Werte", die "Rate" und einen Timeout. Gerade habe ich nochmal den Thread durchgelesen und die Tipps von Gerd gelesen. Samplerate=1/Sample-Intervall, das bedeutet meine Samplerate ist 1/10ms=100Hz. Das habe ich bei "Rate" eingestellt. Da das Verhältnis am besten 1:10 sein soll, habe ich bei den zu lesenden Werten 1000 eingestellt und meine Prüfzeit läuft jetzt erst einmal 60 Sekunden. Ich bekomme jetzt 7 Mittelwerte in meine Datei geschrieben, eigentlich sollte es ja nur ein einziger sein. Blink Wo denke ich falsch?

Ach ja, ich habe den Timeout auf 15 gesetzt.


Angehängte Datei(en)
13.0 .vi  Überwachung Drehzahlsensoren2MittelwertmitSamples.vi (Größe: 83,33 KB / Downloads: 149)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.02.2015, 08:53 (Dieser Beitrag wurde zuletzt bearbeitet: 05.02.2015 08:59 von GerdW.)
Beitrag #23

GerdW Online
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Abbruchbedingung while-Schleife führt zu Fehler
Hallo toxico,

Zitat:Es soll alle 10ms abgetastet werden - das ist das Sample-Intervall, oder? Diese Sample-Rate soll einstellbar sein.
Richtig, das ist das Intervall…

Zitat:Samplerate=1/Sample-Intervall, das bedeutet meine Samplerate ist 1/10ms=100Hz. Das habe ich bei "Rate" eingestellt. Da das Verhältnis am besten 1:10 sein soll, habe ich bei den zu lesenden Werten 1000 eingestellt
Ich habe mich dort nicht präzise genug ausgedrückt. 1:10 bedeutet: Blockgröße = Samplerate/10. Also 10 Samples bei 100Hz…

Zitat: und meine Prüfzeit läuft jetzt erst einmal 60 Sekunden. Ich bekomme jetzt 7 Mittelwerte in meine Datei geschrieben, eigentlich sollte es ja nur ein einziger sein. Blink Wo denke ich falsch?
Du liest 1000 Samples bei 100Hz Samplerate ein. Wie lange wird das wohl dauern? (Kopfrechnen… Big Grin)
Wenn deine Prüfzeit 60s dauert, wie oft wird dann wohl ein Block mit Samples geliefert? (Kopfrechnen… Big Grin)

   
- Ich lese mit einer Rate von 100Hz je 10 Samples ein. Dies macht man, um eine einigermaßen flüssige Darstellung der Daten zu erhalten - in deinem VI bekommst du wesentlich seltener neue Daten angezeigt.
- Die Daten des 9. Kanals werden gesammelt - THINK DATAFLOW mit einem Schieberegister.
- Wenn Daten über eine Minute gesammelt wurde (Kopfrechnen: Anzahl der Samples pro Minute!) dann werden diese Samples aus dem Array genommen und gemittelt…

Nochmaliger Hinweis:
Schau dir die DAQmx-BeispielVIs an. Dort wird gezeigt, wie man ohne DAQAssi auskommt - der ist zwar nett für den Anfang, wird dich aber eher früher als später mächtig stören! ("Nett" ist die kleine Schwester von Schei… Smile)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.02.2015, 09:11
Beitrag #24

toxicomanie Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 97
Registriert seit: Feb 2015

2014
2015
DE


Deutschland
RE: Abbruchbedingung while-Schleife führt zu Fehler
Wenn du von Blockgröße sprichst, meinst du den (momentan) einzelnen Messwert den ich haben will, ja? Nur damit wir nicht aneinander vorbeireden Wink



Wenn ich 1000 Samples bei 100 Hz (SPS - Samples per Second) habe, dann wird es wohl 10 Sekunden dauern bis ich einen Wert habe. Bei 60 Sekunden Prüfzeit werden dann 6 Blöcke geliefert... Tongue Wenn wir hier fertig sind, bin ich erleuchtet Wink

Hast du das kurz mal gebastelt das Bild? O Nicht schlecht. Ich denke mich mal rein, danke!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.02.2015, 09:14 (Dieser Beitrag wurde zuletzt bearbeitet: 05.02.2015 09:17 von GerdW.)
Beitrag #25

GerdW Online
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Abbruchbedingung while-Schleife führt zu Fehler
Hallo toxico,

mit Blockgröße meine ich die Anzahl der Samples, die ich pro DAQmxRead-Aufruf (oder bei dir der DAQAssi-Aufruf) lesen möchte - also der "Anzahl"-Parameter…

Zitat:Bei 60 Sekunden Prüfzeit werden dann 6 Blöcke geliefert...
Mit leichten Ungenauigkeiten bei der Zeitmessung und DATAFLOW-Problemen sind es dann ruckzuck 7 Sample-Blöcke und eben 7 Mittelwerte davon in deiner CSV-Datei…

Merke:
Deine Messhardware kann die Zeit wesentlich genauer messen als dein Windows-PC. Die Einstellung der Samplerate ist quasi "heilig" und wird (im Rahmen der Hardwaremöglichkeiten) exakt eingehalten. Wenn du eine Samplerate von 100Hz einstellst, dann wirst du in einer Minuten eben 6000 Samples bekommen. Diese Methode, eine Zeit zu bestimmen, ist jedenfalls genauer, als Windows immer mal wieder nach der Zeit zu fragen und dabei zu hoffen, dass weder der Virenscanner noch irgendein Netzwerkzugriff dein Programm in der Ausführung behindert…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.02.2015, 09:54
Beitrag #26

toxicomanie Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 97
Registriert seit: Feb 2015

2014
2015
DE


Deutschland
RE: Abbruchbedingung while-Schleife führt zu Fehler
Okay, das ist interessant und gut zu wissen. Werden denn diese Timer auch mit Windows-Zeit versorgt oder kann ich die bedenkenlos verwenden?

Zu dem Bild, das du geschickt hast - hier müsste ich ja selber abbrechen. Außerdem schreibt es mir keinen einzigen Wert in die Datei? Big Grin Ich habe mal versucht, das nachzubauen, vllt habe ich ja irgendwo einen falschen Baustein drin, war etwas schwierig zu erraten Wink


Angehängte Datei(en)
13.0 .vi  Gerd.vi (Größe: 81,5 KB / Downloads: 150)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
05.02.2015, 10:25 (Dieser Beitrag wurde zuletzt bearbeitet: 05.02.2015 10:27 von GerdW.)
Beitrag #27

GerdW Online
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Abbruchbedingung while-Schleife führt zu Fehler
Hallo Franzie,

Zitat:Werden denn diese Timer auch mit Windows-Zeit versorgt oder kann ich die bedenkenlos verwenden?
Diese Timer werden direkt auf der DAQ-Hardware in einem IC erzeugt/benutzt und sind vollkommen unabhängig vom verwendeten Betriebssystem…

Zitat:Ich habe mal versucht, das nachzubauen, vllt habe ich ja irgendwo einen falschen Baustein drin, war etwas schwierig zu erraten
- Ich verwende für das zu mittelnde Signal alle Samples, du dagegen nutzt nur ein einziges Samples deines Signals. Warum ist mein Draht dicker als deiner? (Altherrenwitz: Nicht die Länge, sondern die Dicke… Big Grin)
- Wieso vergleichst du die Arraygröße mit einem Float-Wert?
- Was passiert im FALSE-Case der Case Struktur? Was sollte dort passieren? Frage: Wenn noch nicht genügend Samples gesammelt wurden, was soll dann mit den vorhandenen Samples passieren? Wieso sieht der Ausgangstunnel der Case-Struktur bei dir anders aus als bei mir?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.02.2015, 10:52 (Dieser Beitrag wurde zuletzt bearbeitet: 05.02.2015 10:57 von toxicomanie.)
Beitrag #28

toxicomanie Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 97
Registriert seit: Feb 2015

2014
2015
DE


Deutschland
RE: Abbruchbedingung while-Schleife führt zu Fehler
Das mit der Dicke des Drahts ist aber ein Problem, ich will ja explizit nur einen Mittelwert von einem der 11 gemessenen Signale^^ Ich messe ja 10x die Spannung über den Widerständen bei den Hall-Sensoren und einmal die Messspannung. Für jeden Kanal soll einzeln ein Mittelwert gebildet werden am Schluss, ich wollte jetzt mal mit der Messspannung anfangen. So wie du es gemacht hast, wird ja von allen Spannungen gleichzeitg der Mittelwert gebildet oder? o.O

Hmmm im FALSE-case.. Also wenn die Anzahl der Samples nicht erreicht wurde, dann soll weitergesammelt werden^^
Die vorhandenen Samples sollten am besten irgendwo zwischengespeichert werden, bei einer Messung von so langer Dauer wäre ein Datenverlust richtig schlecht - dazu auch gleich eine Frage eingehakt, die Mittelwerte werden dann immer in die Datei gespeichert, die wird geschlossen und es wird weitergesammelt?

Der Ausgangstunnel, ja.... :/ Das muss man richtig einstellen, wenn der weiß ist werden keine Daten durch den Tunnel gegeben; bei dir ist er vollständig ausgefüllt, bei mir ist ein weißer Punkt drin - ich bin gerade noch dabei, rauszufinden was das soll Wink

Im Anhang habe ich mal noch die Schaltskizze, damit man sich das vllt etwas besser vorstellen kann mit den Sensoren.
Aaaah der ist weiß weil ich nichts weiß! xD Nein, das bedeutet ich soll also für den FALSE-case auch etwas an den Ausgang legen.


Angehängte Datei(en) Thumbnail(s)
   

13.0 .vi  Gerd.vi (Größe: 83,48 KB / Downloads: 138)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.02.2015, 10:59
Beitrag #29

GerdW Online
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Abbruchbedingung while-Schleife führt zu Fehler
Hallo Franzie,

Zitat:So wie du es gemacht hast, wird ja von allen Spannungen gleichzeitg der Mittelwert gebildet oder? o.O
Nein.
Ich hole mir die Daten eines Kanals, nachdem ich den DDT-Draht in ein 2D-Array (mehrere Kanäle, mehrere Samples) umgewandelt hatte.
Du dagegen splittest den DDT erst in Einzelsignale und wandelst dann das Einzelsignal in ein 1D-Array (ein Kanal, mehrere Samples).
Genau hinschauen!

Zitat:Die vorhandenen Samples sollten am besten irgendwo zwischengespeichert werden, bei einer Messung von so langer Dauer wäre ein Datenverlust richtig schlecht
Gut erkannt. Wo werden die Daten gespeichert? Richtig, im Schieberegister!
Lösung also: Daten auch im FALSE-Case in das Schieberegister schieben…

Zitat:die Mittelwerte werden dann immer in die Datei gespeichert, die wird geschlossen und es wird weitergesammelt?
Es wird immer der eine Mittelwert für die letzten 6000 Samples gespeichert. (Die Datei selbst wird für das Speichern immer geöffnet und gleich wieder geschlossen, das ist hier aber unerheblich.)
Dann gibt es noch die Funktion Split1DArray: die spaltet eben die ältesten 6000 Samples zur Auswertung ab und der neue Rest geht wieder ins Schieberegister - wie man anhand des Drahtes sieht…

Zitat:wenn der weiß ist werden keine Daten durch den Tunnel gegeben
Eben. Du willst aber auch im FALSE-Case weiterreichen, wie du selbst schon bemerkt hast…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.02.2015, 11:03 (Dieser Beitrag wurde zuletzt bearbeitet: 05.02.2015 11:04 von toxicomanie.)
Beitrag #30

toxicomanie Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 97
Registriert seit: Feb 2015

2014
2015
DE


Deutschland
RE: Abbruchbedingung while-Schleife führt zu Fehler
Ich habs jetzt begriffen glaube ich. Du verwendest Array indizieren und schreibst alle Daten in den Array. Mit dem Index kann ich auswählen, welchen Kanal ich will (du hast zwar den 9. ausgewählt mit der 8, ich korrigiere das jetzt aber auf die Zahl 10 weil ich den 11. Kanal wählen will). Daraus erstellst du dann ein extra Array, von dem du überprüfst, ob es schon die geforderten 6000 Samples enthält (das ist die Bedingung am Selektoranschluss mit der der Case ausgewählt wird). Ist das TRUE, dann wird der Mittelwert in die Datei verfrachtet. Wieso benutzt du hier davor noch den 1D-Array teilen? Das verstehe ich nicht^^ Ist der Case allerdings falsch, muss ich jetzt noch etwas finden was den Ausgang belegt. Kann ich einfach von "Array erstellen" auf den Ausgang?
Big Grin Da haben wir wohl beide gleichzeitig getextet Wink
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
Question Schalter deaktivieren führt zu race condition, wie umgeht man das? TpunktN 4 3.477 12.05.2021 09:18
Letzter Beitrag: TpunktN
  Änderung von großen Cluster (Type Def.) führt zu out of Memory exeption spacz 8 6.573 28.10.2019 09:01
Letzter Beitrag: spacz
  Case-Struktur führt True und False aus (Ereignisschleife) HIMI 11 9.070 24.08.2017 13:04
Letzter Beitrag: HIMI
  Messwertüberprüfung - mit Abbruchbedingung Marbec 10 7.165 26.11.2015 10:32
Letzter Beitrag: Marbec
  Abbruchbedingung While Schleife KingLui 6 6.112 07.11.2014 13:25
Letzter Beitrag: jg
  Abbruchbedingung meiner While Schleife LabVI 9 7.216 19.09.2014 15:20
Letzter Beitrag: LabVI

Gehe zu: