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 

Programm zyklisch betreiben



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!

03.12.2012, 16:03
Beitrag #1

Chris88 Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Sep 2012

8.5, 2011
2011
DE

79xxx
Deutschland
Programm zyklisch betreiben
Hallo Zusammen,

ich hoffe, ich bin hier im richtigen Unterforum gelandet.

Es geht um folgendes:

Ich habe ein Messprogramm, das ist mit einer gestapelten Sequenzstruktur aufgebaut. Das Programm ist zu Komplex um ein sinnvolles Minimalbeispiel zu geben, ich hoffe, es geht so:

-1- Initialisierung
-2- Daten Messen und Schreiben
-3- Deinitialisierung

Das ganze funktioniert auch wunderbar. Jetzt soll der Messablauf aber mehrmals hintereinander gefahren werden. Der Test also zyklisch betrieben werden.
Ich habe versucht einfach eine for-Schleife um das komplette Programm zu legen und zu sagen, mache das n mal.
Jetzt war es so:

für n=1: Messablauf funktioniert wie er soll
für n=2: Messablauf bricht nach ca. eine halbe Minute ab
für n=3: Messablauf funktioniert wie er soll.

Hat jemand eine Idee was ich falsch mache? Bzw. was könnte ich sonst versuchen? Ein anderer Versuch war die for-Schleife nur um Teil -2- zu legen, hat aber zum selben Resultat geführt.

Viele Grüße,
Chris
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
03.12.2012, 18:39
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Programm zyklisch betreiben
Hallo Chris,

Zitat:Messprogramm, das ist mit einer gestapelten Sequenzstruktur aufgebaut.
Die Frage schreit geradezu nach der "einzig gültigen" Antwort: mach eine Statemachine daraus!!! Smile

LabVIEW unterstützt dich dabei, indem man die gestapelte Sequenz einfach in eine Case-Struktur umwandeln kann. Jetzt noch eine While-Loop drumherum und du hast das wichtigstes schon geschafft...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.12.2012, 11:58
Beitrag #3

Chris88 Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Sep 2012

8.5, 2011
2011
DE

79xxx
Deutschland
RE: Programm zyklisch betreiben
Danke für den Hinweis!

Ich habe das Programm jetzt abgeändert.

Habe nun:

for(Initialisierung - for(Messablauf) - Deinitailisierung)

Ich habe jetzt ganz auf Case oder Sequenz verzichtet. Mal sehen ob es so klappt. Kann das Programm gerade leider nicht Testen weil der Prüfstand teilweise in die Brüche gegangen ist.

Dank und Gruß,
Christoph
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.12.2012, 16:57
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Programm zyklisch betreiben
Hallo Christoph,

Zitat:weil der Prüfstand teilweise in die Brüche gegangen ist.
Hoffentlich nicht aufgrund deiner nicht-abbrechbaren Sequenzstruktur Big Grin

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.01.2013, 10:23 (Dieser Beitrag wurde zuletzt bearbeitet: 11.01.2013 10:26 von Chris88.)
Beitrag #5

Chris88 Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Sep 2012

8.5, 2011
2011
DE

79xxx
Deutschland
RE: Programm zyklisch betreiben
Hallo zusammen,

keine Sorge, das mit dem Prüfstand lag nicht an meinem Programm ;-).

Allerdings habe ich wirklich das Problem, dass mein Programm den Zyklus nicht abbricht.
Das Problem ist seltsam, wenn ich 1 Zyklus haben möchte, stoppt das Programm auch nach 1 Zyklus. Möchte ich allerdings zwei Zyklen haben, dann tut es das nicht.

Habe:

while Anzahl Zyklen <= Zyklus Nr. (Initialisierung - for(Messablauf) - Deinitialisierung)

Aber selbst wenn Anzahl Zyklen <= Zyklus Nr. = TRUE, bricht die while- Schleife trotz "Stop if True" nicht ab.

Hier ein kleines Minimalbeispiel (Labview 8.5).

Habt ihr einen Tipp woran es liegen könnte?

Grüße,
Chris


Angehängte Datei(en)
8.5 .vi  Minimalbeispiel.vi (Größe: 10,03 KB / Downloads: 178)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.01.2013, 10:29 (Dieser Beitrag wurde zuletzt bearbeitet: 11.01.2013 10:31 von GerdW.)
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Programm zyklisch betreiben
Hallo Chris,

Zitat:Habt ihr einen Tipp woran es liegen könnte?
- Mangelndes Verständnis des DATAFLOW-Prinzips von LabVIEW?
- Massive und dazu noch falsche Nutzung lokaler Variablen?

Mal im Ernst: Wozu die ganzen lokalen Variablen? Nimm Drähte!
Die Frage beantwortet sich sehr schnell, wenn du mal das VI mit Highlighting ablaufen lässt.

Wie willst du dein VI beenden, wenn es dafür kein Eingabeelement gibt (zumindest nicht für die innere While-Loop)? THINK DATAFLOW!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
11.01.2013, 10:48
Beitrag #7

Chris88 Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Sep 2012

8.5, 2011
2011
DE

79xxx
Deutschland
RE: Programm zyklisch betreiben
Hallo,

das mit den lokalen Variablen werde ich ändern.
Mangelndes Verständnis des Dataflows kann gut sein - ist mein erstes Labview-Programm.

Die innere While-Loop wird über die Zeit beendet. Das Minimalbeispiel ist wohl zu minimal.
Habe nochmal eins angehändt.

Gruß,
Chris


Angehängte Datei(en)
8.5 .vi  Minimalbeispiel.vi (Größe: 13,2 KB / Downloads: 201)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.01.2013, 11:18 (Dieser Beitrag wurde zuletzt bearbeitet: 11.01.2013 11:18 von GerdW.)
Beitrag #8

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Programm zyklisch betreiben
Hallo Chris,

und immer noch grober Unsinn im Umgang mit den lokalen Variablen (bzw. RubeGoldberg)...

NIMM DRÄHTE STATT LOKALER VARIABLEN!!!

   

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.01.2013, 11:42
Beitrag #9

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Programm zyklisch betreiben
Hallo Chris,

Fragen zum VI nur hier im Forum...

Du hast ineinander geschachtelte Schleife und wunderst dich, warum die innere nicht abbricht, wenn du Controls, die in der äußeren Loop liegen, änderst. Nochmal: THINK DATAFLOW!

Überlege dir ein vernünftiges Programm-Schema (Consumer-Producer, Statemachine, etc.), du findest dazu Beispiele in LabVIEW!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.01.2013, 12:59
Beitrag #10

Chris88 Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Sep 2012

8.5, 2011
2011
DE

79xxx
Deutschland
RE: Programm zyklisch betreiben
Hi,

mir ist schon klar, dass die äußere nicht abbricht, wenn die innere noch läuft.
Mein Gedanke ist, dass die innere ganz normal durchläuft und regulär beendet wird. nach dem die innere Schleife beendet ist, sollte er doch die Bedingung für die äußere Schleife testen und falls die Bedingung True ist die Schleife stoppen. Sehe ich das falsch?
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
  gleiches VI mit 4-20mA oder 0-10V Sensor betreiben mfader 2 5.220 04.01.2011 09:28
Letzter Beitrag: mfader
  CompactDAQ auf einem Rechner betreiben, der kein LV installiert hat Matze 1 3.827 02.08.2010 12:36
Letzter Beitrag: Matze
  PID Regler kontinuierlich betreiben trotz Case-Struktur philipp 8 8.764 31.03.2010 09:22
Letzter Beitrag: IchSelbst
  ADNS 6010 mittels SPI über UBS-8451 betreiben NEC 0 4.421 12.12.2007 10:03
Letzter Beitrag: NEC

Gehe zu: