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 

Verschachtelte zeitgesteuerte Schleifen



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!

01.07.2007, 21:40 (Dieser Beitrag wurde zuletzt bearbeitet: 02.07.2007 09:20 von joeb78.)
Beitrag #1

joeb78 Offline
LVF-Grünschnabel
*


Beiträge: 15
Registriert seit: Jul 2007

7.1
2007
kA


Deutschland
Verschachtelte zeitgesteuerte Schleifen
Ich würde gerne mehrere Heizpatronen in einem festen Heizintervall (z.B. 5 Sek.) ansteuern.
Die Heizzeiten sollen aber maximal je nach benötigter Leistung zwischen 0-70%, d.h. 0-3,5 Sek des Heizintervalls betragen.

Ich wollte das so lösen, dass ich 2 zeitgesteuerte Schleifen ineinander packe. Die Äußere mit 5 Sekunden und die innere mit 50ms.
Am Anfang der äußeren Schleife werden die Heizpatronen gestartet und die Heizzeiten ausgerechnet, die dann jeweils in der inneren Schleife um 50ms reduziert werden bis 0 erreicht wird und dann die jeweilige Heizpatrone wieder ausschaltet. Die restlichen 1,5 Sek sollte nichts passieren.

Das klappt aber so irgendwie nicht. Beide Schleifen starten kurz nacheinander, aber die äußere Schleife dauert nach Beendigung der inneren Schleife um bis zu 3,5 Sek. länger. Erst wenn ich die äußere Schleife auf 7 Sekunden erhöhe, wird die Kombi korrekt ausgeführt.
In den Schleifen greife ich ja auf die Hardware zu. Dauert eventuell dieser Zugriff zu lange, dass er die äußere Schleifenzeit verlängert?

>>Würde gerne das Vi hochladen, weiß aber nicht wie.
Gestern Abend war da ein weißes leeres Feld, heute gehts.

Gruß
Joe


Angehängte Datei(en)
Sonstige .vi  Heizb_nder_Teil1.vi (Größe: 102 KB / Downloads: 204)

Sonstige .vi  Kopie_von_Hauptpanelheizb_nur_Heizb.vi (Größe: 233,44 KB / Downloads: 158)

Sonstige .vi  Thermoelement_Auslesen.vi (Größe: 49,91 KB / Downloads: 171)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
02.07.2007, 06:18
Beitrag #2

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
Verschachtelte zeitgesteuerte Schleifen
' schrieb:Würde gerne das Vi hochladen, weiß aber nicht wie.

dafür gibts doch die Tutorials:

--> Wie stelle ich eine Frage

--> Wie lade ich ein VI hoch?

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.07.2007, 08:26
Beitrag #3

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Verschachtelte zeitgesteuerte Schleifen
Hierfür brauchst Du keine zwei Schleifen, so würde es z.B funktionieren:
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.07.2007, 11:05
Beitrag #4

joeb78 Offline
LVF-Grünschnabel
*


Beiträge: 15
Registriert seit: Jul 2007

7.1
2007
kA


Deutschland
Verschachtelte zeitgesteuerte Schleifen
Naja, so kann ich es machen, wenn ich 1- 3 Heizelemente hätte, die die gleiche Heizzeit benötigen oder ich müsste für jedes Heizelement eine eigene Sequenz machen, wobei das Problem besteht, dass die Anzahl der Heizelemente variieren kann.

Ich habe aber bis zu 12 Heizelemente mit unterschiedlichen Heizzeiten, die alle parallel heizen müssen.
Alle nacheinander ansteuern und deren Heizzeit abwarten, klappt so nicht.

Gruß
Joe
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.07.2007, 12:07 (Dieser Beitrag wurde zuletzt bearbeitet: 02.07.2007 12:09 von rolfk.)
Beitrag #5

rolfk Offline
LVF-Guru
*****


Beiträge: 2.302
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Verschachtelte zeitgesteuerte Schleifen
' schrieb:Naja, so kann ich es machen, wenn ich 1- 3 Heizelemente hätte, die die gleiche Heizzeit benötigen oder ich müsste für jedes Heizelement eine eigene Sequenz machen, wobei das Problem besteht, dass die Anzahl der Heizelemente variieren kann.

Ich habe aber bis zu 12 Heizelemente mit unterschiedlichen Heizzeiten, die alle parallel heizen müssen.
Alle nacheinander ansteuern und deren Heizzeit abwarten, klappt so nicht.

Gruß
Joe

Also variable Anzahl Objekte wo Du etwas damit tun musst ==> immer eine Arraydatenstruktur.

Ich würde eine Loop machen, wo die Attribute der verschiedenen Heizelemente in einem Clusterelement eines Arrays abgespeichert sind das in einem Schieberegister der Loop abgelegt wird.
Bei jeder Iteration wird der Array untersucht nach einem Heizelement das eine Aktion benötigt und dann diese Aktion entsprechend ausgeführt. Wenn Du ganz intelligent sein willst untersuchst Du das Array gleichzeitig auch noch nach dem nächsten Erreignis und gibst die Differenz der aktuellen Zeit nach dem Ausführen der Aktion und dem gewünschten Zeitpunkt des nächsten Erreignisses an eine Delay Funktion um so nicht unnötig in Deiner Loop zu iterieren, wenn eh nichts zu tun ist.

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.07.2007, 12:09 (Dieser Beitrag wurde zuletzt bearbeitet: 02.07.2007 12:09 von eg.)
Beitrag #6

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Verschachtelte zeitgesteuerte Schleifen
' schrieb:Naja, so kann ich es machen, wenn ich 1- 3 Heizelemente hätte, die die gleiche Heizzeit benötigen oder ich müsste für jedes Heizelement eine eigene Sequenz machen, wobei das Problem besteht, dass die Anzahl der Heizelemente variieren kann.

Ich habe aber bis zu 12 Heizelemente mit unterschiedlichen Heizzeiten, die alle parallel heizen müssen.
Alle nacheinander ansteuern und deren Heizzeit abwarten, klappt so nicht.

Gruß
Joe


Es ist aber wirklich einfach, mit Paste und Copy diese eine While-Schleife zu kopieren und nebeneinander zu platzieren. Dann laufen die schon parallel.

eg

P.S. nur so, für den Anfang

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.07.2007, 15:40 (Dieser Beitrag wurde zuletzt bearbeitet: 02.07.2007 15:45 von Lucki.)
Beitrag #7

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Verschachtelte zeitgesteuerte Schleifen
' schrieb:Es ist aber wirklich einfach, mit Paste und Copy diese eine While-Schleife zu kopieren und nebeneinander zu platzieren. Dann laufen die schon parallel.
Da hast ja recht, aber es würde bereits genügen, wenn man die Sequenzstruktur mehrfach in die eine Schleife hineinkopieren würde.

Wie Rolf aber schon erwähnte, ist die Verwendung von Arrays bei solchen Aufgaben immer die eleganteste Lösung. Ich habe mal etwas zusammengebaut, wobei ich mir nicht sicher bin, ob das schon die beste Lösung ist. Es wird das VI "verstrichene Zeit" verwendet, und da sich dieses nicht reentrant machen läßt, wird es in ein Sub-VI reingepackt.
   

NB: in die hochgeladenen VIs konnte ich mich nicht hineinfinden, es fehlen Sub-Vis. JOE78, es wäre auch schön, wenn Du bei künftigen Anfagen statt solcher VIs ein stark reduziertes Vi posten würdest, wo nur noch das drin ist, was zum Problem unbedingt dazugehört. Das macht zwar Mühe, aber nicht im Entferntesten so viel wie die Summe der Bemühungen von denen, die Dir hier antworten.


Angehängte Datei(en)
Sonstige .vi  Verstrichene_Zeit1.vi (Größe: 34,63 KB / Downloads: 202)

Sonstige .vi  Heizung_Vieleelement.vi (Größe: 15,93 KB / Downloads: 224)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.07.2007, 16:41 (Dieser Beitrag wurde zuletzt bearbeitet: 02.07.2007 16:54 von joeb78.)
Beitrag #8

joeb78 Offline
LVF-Grünschnabel
*


Beiträge: 15
Registriert seit: Jul 2007

7.1
2007
kA


Deutschland
Verschachtelte zeitgesteuerte Schleifen
Sorry, hab die beiden Sub-Vi's übersehen. Verspreche das nächste mal das Vi weiter zu reduzieren.
Ich probiere die neuen Vorschläge mal die nächste Zeit mal aus.

@Lucki
Ich kann die Vi's nicht aufrufen weil sie wohl mit LV8.2 erstellt wurden und ich nur LV7.1 habe.
Wäre es möglich in einer kompatiblen Version abzuspeichern?

Vielen Dank
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.07.2007, 17:27
Beitrag #9

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Verschachtelte zeitgesteuerte Schleifen
' schrieb:Wäre es möglich in einer kompatiblen Version abzuspeichern?
2 mal herunterterkompiliert, ohne Garantie daß es noch funktioniert.


Angehängte Datei(en)
Sonstige .vi  Heizung_Vieleelement.vi (Größe: 26,64 KB / Downloads: 175)

Sonstige .vi  Verstrichene_Zeit1.vi (Größe: 56,4 KB / Downloads: 172)
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
  Verschachtelte Clusterelemente auslesen simcum 5 3.333 31.08.2020 10:25
Letzter Beitrag: simcum
  verschachtelte Bibliotheken - Architekturfrage seuk 3 3.234 12.07.2018 11:32
Letzter Beitrag: GerdW
  verschachtelte Cluster gottfried 5 4.340 04.12.2017 17:24
Letzter Beitrag: gottfried
  Verschachtelte und parallele Schleifen gleichzeitig beenden Rayid 6 6.483 14.11.2016 08:24
Letzter Beitrag: GerdW
  Zeitgesteuerte Schleifen martinkrimsh. 1 3.424 26.07.2016 08:14
Letzter Beitrag: GerdW
  Zugriff auf verschachtelte Referenzen Hasenfuss 6 4.526 23.06.2015 19:05
Letzter Beitrag: Hasenfuss

Gehe zu: