LabVIEWForum.de
State Machine - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: State Machine (/Thread-State-Machine)

Seiten: 1 2


State Machine - flizzer82 - 05.05.2010 13:48

Ein Hallo an Allemann und AllefrauO)
Ich habe eine Frage an die Spezialisten hier im Forum.
Zu den Grundlagen:
Und zwar möchte ich einen Testaufbau bauen und hierzu LV verwenden.
Dieser wird mit einem Dataloger einer Quelle und ein paar Lasten ausgestatet.
Es sollen viele Geräte von aber nur einem Typ getestet werden.
Der Test besteht ca aus 15 unterschiedlichen Testschritten wo die Lasten und die Quelle unterschiedliche werde anfahren.
Ich wollte das nun mit einer Statemachine versuchen soll heißen das ich erst eine Initialisierung mache die Geräte soweit einstelle um dann die Messungen mache und speichern werde.
Meine frage ist nun:
ist eien Statemachine dafür geeignet ??Denn ich brauche da ja bestimmt 15x Last und Quelle einstellen 15x Ergebniss messen da bin ich ja schon bei 30 + x cases. Auserdem müsste ein Testschritt im ms Bereich die Reaktion des Testgerätes messen. Ist dies so alles mit einer Statemachine machbar? Habe vom Gefühl eher da so meien Zweifel.

Besten Dank für die Unterstützung und die Tips

mfg
flizzer


State Machine - GerdW - 05.05.2010 14:10

Hallo flizzer,

man kann einem State ja auch Parameter übergeben und schon hast du nur je einen State zum Einstellen von Last und Quelle sowie zum Messen...


State Machine - dimitri84 - 05.05.2010 14:13

An was für eine Alternative hast du denn gedacht? Sequenz Wink?


State Machine - flizzer82 - 05.05.2010 14:25

HI ihr beiden.

@Gerd
Ich glaueb ich habe dich noch nicht ganz verstanden. also du meinst das ich nur 3 Statemashines habe zum Messen, Senke einstellen udn zum Quelle einstellen??
Dann muss ich aber zusehen das sie sehr Exakt zusammen ablaufen oder irre ich mich da nicht das die eine Statemachine schon im Testschritt 3 ist und die Statemachine für die Senke erst im Testschritt 2.
Ausserdem möchte ich ja es so haben das der Benutzer nur Start und Stop drücken kann und sieht ob ein Schritt Pass oder Fail ist. Fals dann doch mal was geändert werden muss an Stromwerten oder so kann der Programmierer es doch nach meiner Idee schneller erkennen wo der zu ändernde Stromwert ist denn er muss ja nur in den CASE mit dem Namen des Testschritts gehen. Bei deinem Vorschlag müsste er ja nen Array oder sonsta was am anfang durchsuchen oder wie würdest du die Parameter übergeben??

@Dimitiri
Jap dachte schon an Sequenzen ist meiner Meinung ja fast das gleiche da werden ja die Sequenzen genauso nacheinander abgearbeitet wie die Cases in einer Statemachine den einziegen Vorteil bei einer Statemachine den ich sehe ist das man auch einfach in einen Fals CASE oder zurückspringen kann

@Beide
ICh kann mich dabei natürlich auch irren und habe nix gegen Verbesserungen


mfg
Flizzer


State Machine - dimitri84 - 05.05.2010 14:31

' schrieb:@Gerd
Ich glaueb ich habe dich noch nicht ganz verstanden. also du meinst das ich nur 3 Statemashines habe zum Messen, Senke einstellen udn zum Quelle einstellen??
Nee, nicht 3 State-Machines, sondern eine State-Machine mit (nur besipielsweise) 3 States. Der Init Case könnte, je nach dem was der für Parameter bekommt, ein beliebiges Gerät Initialisieren. Man braucht nicht pro Gerät ein eigenes Init Case. Analog dazu auch das Messen, Loggen und sonst was noch ...

Zitat:@Dimitiri
Jap dachte schon an Sequenzen ist meiner Meinung ja fast das gleiche da werden ja die Sequenzen genauso nacheinander abgearbeitet wie die Cases in einer Statemachine den einziegen Vorteil bei einer Statemachine den ich sehe ist das man auch einfach in einen Fals CASE oder zurückspringen kann
Das mit der Sequenz war eigentlich nur ein Spaß. Vergiss am besten, dass es Sequenzstrukturen überhaupt gibt. Dieser "einzige Vorteil", dass man nämlich beliebig in den Frames herumspringen kann, ist unverzichtbar für so ziemlich jede Anwendung. Von der Lesbarkeit ganz zu schweigen.


Gruß dimitri


State Machine - RoLe - 05.05.2010 14:57

' schrieb:Ausserdem möchte ich ja es so haben das der Benutzer nur Start und Stop drücken kann und sieht ob ein Schritt Pass oder Fail ist.
Na dann schau dir mal das Beispiel in
C:Program FilesNational InstrumentsLabVIEWexamplesappstestseq.llb


State Machine - flizzer82 - 05.05.2010 15:02

Hi Dimitiri
dann hätte ich noch einmal ne Frage und zwar ob dur mir einen Tip geben könntest wie die übergabe der Patrameter funktionieren kann.

der ABlauf müsste so in etwa ja aussehen.
Messschritt1
Quelle: 230V
Senke 1: 10A
Senke 2: 5A
und danach müsste mann direkt messen und das fast ohne Zeitverlust
Danach Messchritte 2, 3, 4, 5, 6, 7, usw. alle mit anderen werden dann aber eventuell mit einer Wartezeit von 10sec vor dem messen.
Bei mir im Kopp scheitert es gerade dadran mir vorzustellen wie ich überhaupt die Werte übergeben kann. denn die müsste ich doch in ein Array oder so schreiben oder ist das falsch??

mfg
flizzer


State Machine - GerdW - 05.05.2010 15:13

Hallo Flizzer,

"wie ich überhaupt die Werte übergeben kann. denn die müsste ich doch in ein Array oder so schreiben oder ist das falsch?"

Ja, ein Array wäre eine mögliche Variante.
Ich würde jedoch ein Array of typedef clusters vorziehen und z.B. eine evtl. Wartezeit als Parameter dazupacken. Dann hast du einen Cluster pro Messpunkt und ein Array mit allen Messpunkten.

"direkt messen und das fast ohne Zeitverlust"
Bisher hast du noch nichts zu deinen Messgeräten gesagt, deshalb kann man auch nichts zu 'fast ohne Zeitverlust' sagen...
Kann man Zeit überhaupt verlieren?Smile


State Machine - flizzer82 - 06.05.2010 09:45

Hi Gerd
Mhh das mit den Arrays was du vorgeschlagen hast muss ich mir mal genauer angucken höre das gerade zum ersten mal und mit Clustern hatte ich bisher auch eher wenig bzw garnix zu tunO(
hast du eventuell ein Beispiel parat?
Ich benutze das Agilent 34970A zu Datenerfassung. Mit diesem Gerät muss ich dann zb Stromspitzen die nur ein paar ms dauern festhalten und per LV auswerten bzw. speichern

mfg
flizzer


State Machine - GerdW - 06.05.2010 10:09

Hallo Flizzer,

ein Beispiel habe ich nicht parat, später irgendwann...

Zum Agilent:
Laut Manual bietet das DMM eine maximale Geschwindigkeit von 600 readings/s in der geringsten Genauigkeitsstufe (4.5 digits). Du meinst damit Stromspitzen erkennen zu können? Außerdem solltest du dir das Manual nochmal vornehmen und schauen, ob du nicht das interne Memory des DMMs nutzen kannst, um Messungen per Trigger zu starten und intern die Messwerte zu puffern (laut Manual: 490 Werte/s für DCV, 4.5 Stellen). Wie sprichst du das Gerät an? Per GPIB (leidlich schnell) oder gar per RS232 (eher langsam)?

Insgesamt würde ich dir aber zu einem anderen Messgerät raten...