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 

Min/Max-Wert eines Signals 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!

10.11.2009, 14:50
Beitrag #11

SeBa Offline
LVF-Guru
*****


Beiträge: 2.025
Registriert seit: Oct 2008

09SP1 & 10 FDS
2008
DE

65xxx
Deutschland
Min/Max-Wert eines Signals speichern
Jens... aka:

Sherlock Holmes des LV
Guru1Guru1Guru1

Gruß SeBa

Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.

Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.

Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
17.11.2009, 15:32 (Dieser Beitrag wurde zuletzt bearbeitet: 17.11.2009 17:49 von dimitri84.)
Beitrag #12

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Min/Max-Wert eines Signals speichern
Eine Kurze Frage noch zum Initialisieren. Nach dem Datenflussprinzip geht es an einem Knoten ja erst weiter wenn alle angeschlossenen Eingänge einen Wert liefern können:

   

Ich will jetzt die beiden Register mit sovielen Elementen initialiseren wie ich auch Kanäle habe. Wie viele Kanäle ich habe, weiß ich aber erst nach dem Initialisieren des DAQmx Tasks oder spätestens wenn ich den Datenstrom habe. Ich dachte jetzt nach dem Datenflussprinzip hat die lokale Variable (rot markiert) erst einen Wert, wenn das dazugehörige FP Element (auch rot markiert) den Wert das erste Mal erhält. Pustekuchen. Die Initialisierung erfolgt direkt am Anfang des VI-Starts, obwohl diese lokale Variable den Wert doch noch eigentlich garnicht wissen kann.

Was steht denn da in dieser Lokalen Variable für ein Wert, wenn das dazugehörige FP Element noch garnicht bedient worden ist?

Wie kann ich diese Initialisierung erst dann erfolgen lassen, wenn die Anzahl der Kanäle wirklich bekannt ist?

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.11.2009, 16:01 (Dieser Beitrag wurde zuletzt bearbeitet: 17.11.2009 16:01 von Achim.)
Beitrag #13

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Min/Max-Wert eines Signals speichern
Ja aber was soll denn drin stehen? Wie du schon sagst...es geht von links nach rechts! Du kannst doch nicht heute einen Wert wissen den du dir erst morgen erzeugst...

Es steht also in der Variable der Default-Wert des Anzeigeelementes drin! Lokale Variable "boykottieren" das Datenflussprinzip, deswegen kriegst du auch immer Warnungen zu hören, diese nicht unbedacht einzusetzen, weil du damit sogenannte "race conditions" ("wer darf zuerst?!) provozierst!

Kriegst du die Anzahl nicht irgendwie beim Initialisieren des Tasks mit? Sorry...ich hab den Thread nicht durchgelesen...

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.11.2009, 16:20
Beitrag #14

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Min/Max-Wert eines Signals speichern
' schrieb:Kriegst du die Anzahl nicht irgendwie beim Initialisieren des Tasks mit?
100% ACK. Bei DAQmx musst du irgendwann mal angegeben haben, wieviele Kanäle du liest! Diesen Wert anschließen.

Für bessere Vorschläge, bitte VI hochladen, zwecks der vielen Case-Strukturen.

Und dann noch ein Wort zu lokalen Variablen: i2dx hat das mal schön ausgedrückt: Lokale Variable kann man sich eher als Funktionsaufruf vorstellen ("gib mir mal den Momentanwert"). Und der Momentanwert bei Programmstart eines numerischen Control ist halt Null.

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
17.11.2009, 16:40 (Dieser Beitrag wurde zuletzt bearbeitet: 17.11.2009 16:40 von Achim.)
Beitrag #15

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Min/Max-Wert eines Signals speichern
' schrieb:Und der Momentanwert bei Programmstart eines numerischen Control ist halt Null.

Ergänzung:
Meistens...es sei denn, du hast ihn vorher defaultmäßig anders festgelegt!

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.11.2009, 17:06
Beitrag #16

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Min/Max-Wert eines Signals speichern
Habe jetzt das VI nicht da. Werd's morgen früh hochladen.

Also ich habe an dem Defaultwert nichts verändert (müsste also Null sein), und trotzdem wird das array mit der richtigen Anzahl an Elemente initialisiert, nämlich 5.

Wo ich nicht drauf komme ist, wie initialisiere ich ein Schieberegister von einer Schleife, wenn ich die dazu nötige Information (Anzahl der Elemente) erst in der selbigen Schleife erhalte.

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
17.11.2009, 17:25 (Dieser Beitrag wurde zuletzt bearbeitet: 17.11.2009 17:27 von Achim.)
Beitrag #17

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Min/Max-Wert eines Signals speichern
' schrieb:Also ich habe an dem Defaultwert nichts verändert (müsste also Null sein), und trotzdem wird das array mit der richtigen Anzahl an Elemente initialisiert, nämlich 5.
LV merkt sich den letzten Wert, solange du LV nicht komplett schließt. Wenn du LV komplett beendest, steht da wieder "0" bzw. der Default-Wert drin.

Zitat:Wo ich nicht drauf komme ist, wie initialisiere ich ein Schieberegister von einer Schleife, wenn ich die dazu nötige Information (Anzahl der Elemente) erst in der selbigen Schleife erhalte.
Geht nicht! Aber wie schon gesagt, du musst doch beim Task-Init festlegen, wieviele Kanäle du lesen willst...und dann hast du doch die Anzahl! Ich nehme mal an, dein Task-Init steckt in False-Fall...dann musst du den Init eben da raus nehmen und vor die Schleife packen!

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.11.2009, 17:34
Beitrag #18

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Min/Max-Wert eines Signals speichern
' schrieb:Aber wie schon gesagt, du musst doch beim Task-Init festlegen, wieviele Kanäle du lesen willst...und dann hast du doch die Anzahl! Ich nehme mal an, dein Task-Init steckt in False-Fall

Ja, die Init ist in einem der Cases.

' schrieb:...dann musst du den Init eben da raus nehmen und vor die Schleife packen!

Das würde mir nicht so gut passen, weil die spätere Exe auch auf Rechner ohne DAQmx laufen soll, da das Programm nicht nur zum Erfassen des Signals dient. Ich möchte da keine unnötigen Fehlermeldungen provozieren.

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.11.2009, 20:31
Beitrag #19

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Min/Max-Wert eines Signals speichern
' schrieb:Ja, die Init ist in einem der Cases.
Das würde mir nicht so gut passen, weil die spätere Exe auch auf Rechner ohne DAQmx laufen soll, da das Programm nicht nur zum Erfassen des Signals dient. Ich möchte da keine unnötigen Fehlermeldungen provozieren.
Dann pack in den Init-Case auch das Initialisieren des Shift-Register! Wenn der Ablauf deiner "State-Machine" (wobei man das nicht unbedingt mit True-False-Cases machen sollte) so ist, dass immer erst der Init-Case kommt, ist das kein Problem.

Hierzu ein Muster (ohne weitere Funktion), aber ich hoffe, das Prinzip wird klar:
   
   
Case 0 wird auf jeden Fall als erstes durchgeführt, somit ist ab diesem Zeitpunkt das Shift-Register korrekt initialisiert.

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
17.11.2009, 20:38
Beitrag #20

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Min/Max-Wert eines Signals speichern
Na Klar! Wie so oft: Hätte man drauf kommen können. So werd' ich's machen.

Sei bedankt.

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Wert an naheliegensten Wert aus Array anpassen TSC 17 11.634 26.07.2016 06:59
Letzter Beitrag: TSC
  Aktueller Wert von vorherigem Wert abziehen Semicon 6 7.500 18.06.2014 16:34
Letzter Beitrag: jg
  Abfrage der Inkrement/Dekrementbuttons eines Zahlenfeldes, ob Wert geändert wurde? Alpenpower 1 3.422 31.03.2014 15:01
Letzter Beitrag: GerdW
  Startwert eines kontinuierlichen Signals setzen redhand 23 16.100 03.12.2013 09:01
Letzter Beitrag: th13
  Neuer Wert - Alter Wert im Array sanjo 5 6.938 05.02.2013 10:43
Letzter Beitrag: sanjo
  Wert speichern Chess 13 19.085 30.01.2013 08:58
Letzter Beitrag: GerdW

Gehe zu: