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 

Interrupt?



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!

13.11.2007, 15:16
Beitrag #11

monoceros84 Offline
LVF-Stammgast
***


Beiträge: 445
Registriert seit: Oct 2006

2011
2006
EN


Deutschland
Interrupt?
Das funktioniert nicht, weil der linke Konfigurationsknoten nur vor dem ersten Schleifendurchlauf ausgelesen wird. Man kann aber dem rechten internen Knoten (wo z.Z. nur ?! steht) die Periode übergeben. Dann hat deine Schleife beim nächsten Durchlauf die neue Periode. Allerdings kannst du nicht die Periode des gerade laufenden Durchgangs ändern.

Zur Wait-Function: Wenn du sie in eine Schleife/ Struktur/ Case/ ... einfügst und nirgends anschließt, dann läuft sie parallel zum Schleifeninhalt. Das bedeutet, dass die Zeitmessung weder zwingend VOR dem Senden der Befehle beginnt, noch erst DANACH. Es ist eben eher ein Mindest-Timer, als ein exakter Timer.

@ eg: Damit weißt du zwar, wann das Programm wie lange wartet, aber wie lange deine Schleife zur Ausführung braucht, ist genauso unsicher. Die Befehle benötigen ja auch Zeit. Also finde ich die Lösung auch nciht vorteilhafter als das Wait einfach so mit in die Schleife zu legen.

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
13.11.2007, 15:21
Beitrag #12

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Interrupt?
' schrieb:@ eg: Damit weißt du zwar, wann das Programm wie lange wartet, aber wie lange deine Schleife zur Ausführung braucht, ist genauso unsicher. Die Befehle benötigen ja auch Zeit. Also finde ich die Lösung auch nciht vorteilhafter als das Wait einfach so mit in die Schleife zu legen.


Damit kann man aber sicherstellen ob man vor dem Inhalt, während der Ausführung des Inhalts oder danach wartet, kann man eine Datenabhängigkeit durch den Errorcluster einführen und nicht einfach so das Wait irgendwo in die Schleife hinzuschmeissen.

eg

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.11.2007, 15:36
Beitrag #13

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Interrupt?
' schrieb:das funktioniert nicht, weil man ja nicht weiß, wie weit es bis zum nächsten Vielfachen ist, weil man ja nicht bei 0 statet.
Wie weit es bis zum nächsten Vielfachen ist, ist doch uninteressant. Wichtig ist, dass der Beginn des nächsten Schleifendurchlaufes immer z.B. bei Vielfachen von 10ms liegt. Voraussetzung ist, dass der gesamte Schleifendurchlauf (außer Metronom) schneller ist, als das Raster (hier kleiner als 10ms). Beginnt immer alles bei einem Vielfachen (z.B. von 10ms), so findet jeder Befehl (vorausgesetzt der dauert immer gleich lang) in einem konstanten Raster - nämlich 10ms - statt.

Im übrigen macht eine zeitgesteuerte While-Schleife das selbe.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.11.2007, 16:20
Beitrag #14

monoceros84 Offline
LVF-Stammgast
***


Beiträge: 445
Registriert seit: Oct 2006

2011
2006
EN


Deutschland
Interrupt?
' schrieb:Im übrigen macht eine zeitgesteuerte While-Schleife das selbe.

Nicht zwingend - das kann man einstellen... Keine Ahnung, wie das in der deutschen Version heißt, findet sich aber in den Eigenschaften der Timed Loop rechts unten und sollte sich irgendwas in Richtung 'Phase beibehalten' nennen...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.11.2007, 16:37 (Dieser Beitrag wurde zuletzt bearbeitet: 02.12.2007 14:02 von jg.)
Beitrag #15

jeffrey Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 123
Registriert seit: Aug 2007

8.0 zuhause, 8.2 Uni
2007
kA


Deutschland
Interrupt?
Hallo,
also ich habe es jetzt mal mit dem wait.vi programmiert und möchte euch mein ergebnis nicht vorenthalten. Dabei habe ich zum Test erstmal die Heizungen durch LEDs ersetzt, damit es auch ohne Hardware funktioniert.
So funktioniert es auf 2ms genau, das ist ok.
Ich bin noch recht neu in LabVIEW, deswegen habe ich nicht daran gedacht, dass bei wait die ander Loops weiter laufen. Bisher habe ich nur in Java, C, Basic oder Matlab programmiert, und da war es halt immer so, dass man wait vermeiden sollte, weil das Programm an der Stelle ja so lange wartet, bis die Zeit verstrichen ist.
Danke für eure Anregungen und Ideen.
MfG Jeffrey

(VI LV 8.2)


Angehängte Datei(en) Thumbnail(s)
   

Sonstige .vi  pwm_test.vi (Größe: 108,96 KB / Downloads: 169)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.11.2007, 09:29
Beitrag #16

monoceros84 Offline
LVF-Stammgast
***


Beiträge: 445
Registriert seit: Oct 2006

2011
2006
EN


Deutschland
Interrupt?
Noch eine Anmerkung:
Schön, dass es jetzt funktioniert und ändere es ja nicht nochmal (never change a running system), aber ich würde prinzipiell keine Waits in Timed Loops verwenden. Schon gar nicht so viele mit variablen Wartezeiten... Das ist irgendwie sehr verwirrend und bestimmt auch nicht immer zwingend so lauffähig, wie man sich das vorstellt.
Entweder While-Loop + Waits, oder Timed Loop.

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
14.11.2007, 17:47
Beitrag #17

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Interrupt?
Ausserdem, eine Timed-Loop mit 1kHz, und dann ist da schon eine feste Wartezeit von 130ms drin, sprich maximal 7,7 Hz.Hmm

MfG, 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
15.11.2007, 12:29
Beitrag #18

jeffrey Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 123
Registriert seit: Aug 2007

8.0 zuhause, 8.2 Uni
2007
kA


Deutschland
Interrupt?
' schrieb:Ausserdem, eine Timed-Loop mit 1kHz, und dann ist da schon eine feste Wartezeit von 130ms drin, sprich maximal 7,7 Hz.Hmm

MfG, Jens
Hallo,
der timed loop dient nur dazu, die 3 s Periode für die Pwm und die Sensorabfrage zu erzeugen. Diese Zwit wird nie verändert. Habe das in meinem Programm bisher auch mit dem bis Vielfachen von ms warten VI gelöst. Aber hier in dem TestVI habe ich halt den timed loop verwendet, weil oben ja auch geschrieben wurde, das wäre das gleiche. Die Wartezeit von 130ms dient hier nur dazu die Sensorabfrage zu simulieren, diese dauert normalerweise ca 40ms, kann aber bis maximal 130ms dauern. deswegen wird auch die Zeit genau gemessen.
MfG Jeffrey
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
  Gibt es so was wie einen Interrupt? anja210 6 9.453 05.09.2012 12:10
Letzter Beitrag: Lucki

Gehe zu: