LabVIEWForum.de - timed loop für state machine?

LabVIEWForum.de

Normale Version: timed loop für state machine?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
hallo leute,

voraussetzung: LabVIEW 8.0 mit rt module auf einem pxi-system

folgende frage: ich habe vor, analoge und digitale daten zu erfassen und wieder auszugeben sowie die erfassten daten teilwese zu speichern. das soll mit zwei timed loop geschehen (io-task und record-task). gleichzeitig soll auf dem target eine state machine für einen steueralgorithmus laufen. normalerweise besteht eine state machine ja aus einer case-struktur in einer while schleife. diese beansprucht jedoch durch polling den prozessor stark. macht es sinn, die state machine alternativ mit einer case-struktur innerhalb eines timed loop zu realisieren, um die prozessorlast zu verringern?

ni macht ja ähnliches hier: http://zone.ni.com/devzone/cda/tut/p/id/6922

hat jemand diebezüglich erfahrung und kann mir tipps geben?

grüße!
Hi
in Deiner Statemaschine solltes du jedes Case timen.
Nur so schnell laufen lassen wie nötig nicht schnell wie möglich.
Oft sind für Tasteneingaben 50 ms ausreichend. Du entlastest den Prozessor erheblich.
Gruß
hallo srokajo,

danke für die antwort. heißt das also, es ist besser die state-machine als case-structure innerhalb einer while-schleife aufzubauen und in jedem case einen (wait until ms)-block einzubauen?

grüße!
Morgen!
' schrieb:danke für die antwort. heißt das also, es ist besser die state-machine als case-structure innerhalb einer while-schleife aufzubauen und in jedem case einen (wait until ms)-block einzubauen?
Ja, für ein VI auf einem normalen PC mach ich das immer so. Du schriebst weiter oben aber von RT und von State-Machine auf Target... Weiß nicht, was für ein RT du nutzt und so, für einen hardware-gecodeten Ablauf wie z.B. auf einem FPGA könntest Du aber andere Sachen brauchen als nur die Wait-Funktion... Für nen Prozessor auf nem RT-Target müsste die Wait-Funktion aber das richtige sein. Wegen der Zeit müsstest Du halt nochmal schauen, was du tatsächlich an Refresh-Zeiten brauchst und ob du wirklich pollen musst oder es vielleiht auch mit einer Event-Struktur geht...

ch
hallo chrissyPu,

danke auch dir für die antwort. ich will mit dem pxi8176-system einen motor und eine bremsanlage ansteuern. fpga etc. kommen nicht zum einsatz. dazu soll wie gesagt ein io-task in einem timed loop regelmäßig prozessgrößen lesen/schreiben und parallel dazu eine state machine in den verschiedenen phasen (beschleunigen, aufheizen, kühlen, bremsen ...) die eingelesenen größen verarbeiten und die ausgangsgrößen ermitteln. es laufen also zwei loops parallel. und deshalb die frage, ob man die state machine mit einem timed loop anstelle eines while loops realisieren kann/sollte, um den prozessor auf dem rt-target nicht sinnlos zu überlasten.

grüße!
Referenz-URLs