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 

Sequenzen durch State Machines ersetzen mit Timer



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!

20.04.2011, 14:08
Beitrag #1

Herr Müller Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Mar 2011

2010
2011
DE


Deutschland
Sequenzen durch State Machines ersetzen mit Timer
Hallo zusammen,

im Zuge meines Praxissemesters bin ich dabei eine Steuerung für einen kleinen Prüfstand zu entwickeln.
Im Groben und Ganzen gibt es hierbei 3 wichtige Geräte die bedient werden wollen: Motor, Kamera und Ventile.

In den unten angehängten VI´s kann man sich meinen aktuellen Stand der Programmierung zu Gemüte führen.

Nun zu meinem Problem: Ich Trottel habe den Ablauf in eine Sequenz gepackt...

Da ich 1. eine Sequenz nicht unterbrechen kann und 2. nicht die Möglichkeit habe z. B. nur jeden 3. Zyklus ein Foto zu schießen möchte ich gerne auf eine State-Machine umsteigen. Habe nun schon einige Zeit damit verbracht die verschieden Cases der State-Machine ordentlich zu timen, leider ohne Erfolg.

Wie man im VI sieht, soll nach einer angegeben Zeit der Motor drehen und jeweils 5 sek vor der Drehung ein Foto geschossen werden.

Hat jemand einen Tipp? Evtl. Queue mit State- Machine?


Merci mal im Voraus


Timi


Angehängte Datei(en)
2010 .vi  Programmtest_mit_Kamera_Ventile.vi (Größe: 194,64 KB / Downloads: 240)

2010 .vi  Standard Run Bilder und Ventile.vi (Größe: 35,18 KB / Downloads: 188)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
20.04.2011, 21:07 (Dieser Beitrag wurde zuletzt bearbeitet: 20.04.2011 21:07 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Sequenzen durch State Machines ersetzen mit Timer
Hallo Herr,

Zitat:Wie man im VI sieht, soll nach einer angegeben Zeit der Motor drehen und jeweils 5 sek vor der Drehung ein Foto geschossen werden.
Viel sieht man ja nicht, da alle subVIs fehlen...

Statemachine hört sich gut an, ich würde States wie folgende vorschlagen:
- Bild aufnehmen
- Motor drehen
- alle weiteren Aktionen...
- Warten (entweder definierte Zeitspanne oder bis Zielzeit)

Zitat:die verschieden Cases der State-Machine ordentlich zu timen
Bisher hast du eine Sequenz mit einem Wait in jedem Frame. Also ersetzen durch jeweils einen State für die Aktion (und ermitteln der Startzeit für die Aktion) und einem Wait-State mit Zielzeitangabe (Startzeit + Wartezeit)...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.04.2011, 08:55
Beitrag #3

Herr Müller Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Mar 2011

2010
2011
DE


Deutschland
RE: Sequenzen durch State Machines ersetzen mit Timer
Servus Gerd,

danke für die schnelle Antwort!

(20.04.2011 21:07 )GerdW schrieb:  Viel sieht man ja nicht, da alle subVIs fehlen...

Die SUB Vis [MOTOR] [SNAP] [VENTILE] beinhalten nur die Weitergabe zur jeweiligen Schnittstelle ( RS232 und zum Compact Field Point), wenn es dir hilft, stell ich diese aber gerne zur Verfügung, no problemo.

Das mit den WAIT-States probier ich direkt mal aus!

(20.04.2011 21:07 )GerdW schrieb:  ...(und ermitteln der Startzeit für die Aktion) und einem Wait-State mit Zielzeitangabe (Startzeit + Wartezeit)...


Kannst du mir das vielleicht anhand eines einfachen Beispiels veranschaulichen?



Grüße

Timi
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.05.2011, 12:17 (Dieser Beitrag wurde zuletzt bearbeitet: 03.05.2011 12:22 von Herr Müller.)
Beitrag #4

Herr Müller Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Mar 2011

2010
2011
DE


Deutschland
RE: Sequenzen durch State Machines ersetzen mit Timer
Update:

-Dank eurer Hilfe habe ich es nun geschafft alles Sequenzen durch State-Machines zu ersetzen! Vielen Dank!!

Nun habe ich folgendes Problem:
- Es gibt drei verschiedene State-Machines in meinem Programm:
Nr1 ist für die Steuerung des Motors
Nr2 ist für die Steuerung der Fotos
Nr3 ist für die Steuerung der Ventile

Wenn ich alle Abläufe in eine State-Machine packe, dann haut die zeitliche Planung nicht mehr hin, da es beispielsweise zu lange dauert die Fotos zu speichern...

Frage: Kann ich die State-Machines irgendwie synchronisieren? Gibt es vielleicht eine bessere Steuerung der Zeit, als durch WAIT Timer in den Cases? Kann es evtl. sein, dass die Probleme daher kommen, dass der PC an dem ich arbeite zu langsam ist? 1,6GHz, 2GB Ram.

Die State Machines und das Hauptprogramm habe ich mal dazugepackt.

Grüße

Timi


Angehängte Datei(en)
2010 .zip  State-Machines.zip (Größe: 377,98 KB / Downloads: 233)
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
  2 Parallele While-Schleifen mit unterschiedlichen Timer beenden Tomate27 3 2.956 18.08.2020 13:29
Letzter Beitrag: GerdW
  Timer macht was er will :-) Natalie1984 6 4.043 04.07.2019 12:49
Letzter Beitrag: IchSelbst
  While-Schleife anhalten ohne Timer valerian 2 4.174 04.10.2017 09:28
Letzter Beitrag: valerian
  2D Array durchsuchen und bestimmte Werte ersetzen sara2211 4 5.705 13.01.2017 10:59
Letzter Beitrag: sara2211
  Doppelte Berechnung & Sequenzen Schtief 4 3.921 08.09.2015 10:15
Letzter Beitrag: GerdW
  Timer in [s] grba123 9 8.375 18.08.2015 15:14
Letzter Beitrag: Lucki

Gehe zu: