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 

state machine mit Variablen oder Schieberegister?



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.10.2008, 15:10
Beitrag #1

toaran_ Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 237
Registriert seit: Feb 2007

2012
2006
EN

90763
Deutschland
state machine mit Variablen oder Schieberegister?
Hallo

ich werde in kürze ein umfangreiches Messprogramm bauen... nun will ich das möglichst "schick" machen...

iwelche grundstuktur nehmt ihr für ein Messprogramm

ich dachte an eine state machine ... es werden warscheinlich 20-25 cases...

welche variante ist "besser" geeignet ...
   

Variante 1 mit Schieberegister und Variante 2 mit lokalen Variablen...

Vorteil von Variante 2 ist: weniger drähte ...

wie macht ihr das ???

Toaran
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
20.10.2008, 16:13
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
state machine mit Variablen oder Schieberegister?
Hilfe, bloss nicht Variante 2!!

State Machine immer mit Shift-Register.

Vorteil: Weniger Speicherverbrauch (jede lokale Variable erzeugt Kopien im Speicher), keine Gefahr von Race Condition, keine Gefahr, eine Weiterleitung des Zustandes für den nächsten Durchlauf zu vergessen (wenn du beim Case-Ausgang den Default abschaltest), etc, etc, etc.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.10.2008, 16:26
Beitrag #3

chrissyPu Offline
LVF-Stammgast
***


Beiträge: 467
Registriert seit: Jun 2006

2014 PDS
2006
DE_EN

64283
Deutschland
state machine mit Variablen oder Schieberegister?
Wie wäre es mit Event-Struktur? Oder kein Professional Development Kit?

Grüße,

ch
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.10.2008, 20:39
Beitrag #4

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
state machine mit Variablen oder Schieberegister?
Wozu überhaupt eine State-Machine? Was hast du vor?

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.10.2008, 07:27
Beitrag #5

toaran_ Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 237
Registriert seit: Feb 2007

2012
2006
EN

90763
Deutschland
state machine mit Variablen oder Schieberegister?
' schrieb:Wozu überhaupt eine State-Machine? Was hast du vor?


Hallo

also ich muss ein Gerät vermessen...
dazu verschiedene initialisierungs parameter an das gerät über RS232 senden
dann an verschiedenen flowcontrollern über DAQ bestimmte Gaskonzentrationen einstellen
und je nach Messprogramm zwischen den Gasen über Ventile hin und her springen auch DAQ ...
dabei dann verschiedene Messungen machen .. also Gaskonzentration, Ansprechzeiten Rauschen etc.

das Messprogramm muss flexibel sein ...also verschiedene Zeiten einstellbar usw...


ich denke ich werde einen mix aus state machine und event strucktur machen ...
die eventstuktur zur programmsteuerung und die statemachine um das Messprogramm ablaufen zu lassen ...

Toaran
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.10.2008, 08:47
Beitrag #6

*Gerald* Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Oct 2008

8.2
2008
de

71000
Deutschland
state machine mit Variablen oder Schieberegister?
woran kann es denn liegen das meine state maschine sehr langsam läuft, hab sie so programmiert wie auf dem bild von toaran aber in der while schleife (um die case struktur) sind noch andere vis und verschiedene ein- und ausgaben.
wie kann man das ändern, das es "echtzeitfähig" wird

danke gruß gerald
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
21.10.2008, 19:03
Beitrag #7

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
state machine mit Variablen oder Schieberegister?
' schrieb:woran kann es denn liegen das meine state maschine sehr langsam läuft, hab sie so programmiert wie auf dem bild von toaran aber in der while schleife (um die case struktur) sind noch andere vis und verschiedene ein- und ausgaben.
Bei solchen Fragen geht mir der Hut hoch...Wall

Woher sollen wir das wissen, ohne auch nur einen Screenshot deines VIs (besser: VI posten!) gesehen zu haben?


Zitat:wie kann man das ändern, das es "echtzeitfähig" wird
Entsprechende Antwort: Fehler beseitigen!

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.10.2008, 07:48 (Dieser Beitrag wurde zuletzt bearbeitet: 22.10.2008 07:50 von *Gerald*.)
Beitrag #8

*Gerald* Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Oct 2008

8.2
2008
de

71000
Deutschland
state machine mit Variablen oder Schieberegister?
' schrieb:Bei solchen Fragen geht mir der Hut hoch...Wall

Woher sollen wir das wissen, ohne auch nur einen Screenshot deines VIs (besser: VI posten!) gesehen zu haben?
Entsprechende Antwort: Fehler beseitigen!

ja dann bin ich jetzt mal gespannt.
gleich mal vorne weg, posten bringt nix, weil das vi 2 subvis beinhaltet die für die profibus kommunikation zuständig sind wenn ihr also das vi startet habt ihr gleich fehler.

vi1: stellt die verbindung zum ethernet/profibus gateway her (wie genau keine ahnung weils gekauft is seh nur die anschlüsse).
vi2: com schnittstelle (siehe bild)
vi4: dient zur kommunikation mit dem gateway (genau anschauen kann ich mir das auch nicht weil es gekauft is und man nur die anschlüsse sieht).
vi7: wandelt die verschiedenen eingangwerte der bits in einen hexwert und fügt alle zu einem string zusammen die dann auf den bus gelegt werden
vi8: zerlegt den string vom bus und gibt mir die werte der einzelen bits aus

der taktgenerator dient zur erstellung eines lebenszeichens das von der maschinensteuerung erwartet wird, fehlt der, steigt die steuerung der maschine aus.

der referenzanschluss auf der rechten seite führt zu einem zweiten taktgenerator der eine andere frequenz darstellt.

die kommunikation ohne die states funktioniert einwandfrei, da kann also eig. kein fehler sein aber sobald man da die state machine einfügt fängt die kommunikation an zu haken und die steuerung steigt aus, weil der lebenszeichentakt nicht mehr stimmt.
hab die state machine auch schon mit lokalen variablen probiert aber das führt zum gleichen ergebnis.

danke schonmal für die mühe

gruß gerald

ach ja is mit 8.5 gemacht

   
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.10.2008, 08:24
Beitrag #9

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.692
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
state machine mit Variablen oder Schieberegister?
' schrieb:die kommunikation ohne die states funktioniert einwandfrei, da kann also eig. kein fehler sein aber sobald man da die state machine einfügt fängt die kommunikation an zu haken und die steuerung steigt aus, weil der lebenszeichentakt nicht mehr stimmt.
Ich mach sowas immer wie folgt.

Erstens: Von Propertys, die über eine Referenz angesteuert werden, rate ich ab. Von normalen Propertys, wenn sie sich in einer Dauerschleife befinden, auch. Ich kann mir bisher keinen Fall vorstellen, in dem ein derartiges Vorgehen mit Referenzen notwendig wäre. Normalerweise geht sowas mit Datenfluss und Schiebereigistern.

Zweitens: Wenn es sich bei den Boolschen Elementen um Eingabeelemente handelt, die ein Anwender z.B. am Bildschirm bedienen kann, würde ich zur Verarbeitung diese Elemente eine Eventstruktur verwenden.

Drittens: Für den Profibus würde ich eine sog. Klasse machen. Das ist ein SubVI, dass selbständig läuft. Gesteuert wird dieses SubVI durch Queues. Daten in dieses SubVI kommen mit der Queue. Daten aus dem SubVI mit Meldern. Die Klasse kann z.B. selbständig das Taktsignal ausgeben. z.B. alle 50ms. Im Rest der Zeit wird auf Daten von der Queue gewartet. etc.
Übrigens: Das Anpassen dieser Klasse an ein neues, völlig anderes Projekt, das lediglich eben auch AI's verwendet, dauert gerademal zwei Stunden.

Ferner: Wenn da viele einzelne Eingabe/Ausgabe-Elemente vorhanden sind, würde ich die in einen Cluster legen. Der geht einfacher zu handeln: Einfach einen Draht für allle weiterschieben.


Hier hab ich mal ein Muster für so eine Klasse gepsotet:
Muster ohne Wert: Muster AIn-Klasse (siehe Ende Posting #12 vom 25.02.2008 , 22:41:06).

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.10.2008, 08:39
Beitrag #10

*Gerald* Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Oct 2008

8.2
2008
de

71000
Deutschland
state machine mit Variablen oder Schieberegister?
' schrieb:Zweitens: Wenn es sich bei den Boolschen Elementen um Eingabeelemente handelt, die ein Anwender z.B. am Bildschirm bedienen kann, würde ich zur Verarbeitung diese Elemente eine Eventstruktur verwenden.

hi, danke für die schnelle antwort

Die Bedienelemente sollen automatisiert (in den verschiedenen states) angesteuert werden damit man Dauertestzyklen programmieren kann. also sollte das ganze auch recht flexibel sein, je nach dem was man testen will.

hmm ok dann werd ich mich mal in klassen und co einarbeiten hab damit noch nie was gemacht,...


gruß gerald
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
  Machine learning Hubert R. 3 2.521 29.08.2023 10:10
Letzter Beitrag: Hubert R.
  Verwendung Schieberegister de_la_questa 2 3.301 04.01.2021 17:26
Letzter Beitrag: GerdW
  Programm beenden State Machine simcum 3 3.425 17.10.2020 20:57
Letzter Beitrag: BNT
  Schieberegister Initialisierung mit Array => Not a Number Roland 7 8.227 03.07.2017 15:58
Letzter Beitrag: Roland
  Queued State Machine: IDLE Optimierung ALuehmann 3 4.923 14.02.2017 14:00
Letzter Beitrag: HVo
  State machine und Typdefinition meta_ir 4 4.431 09.01.2017 12:47
Letzter Beitrag: meta_ir

Gehe zu: