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 

Mehrere Cases verwenden



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!

25.06.2010, 08:17 (Dieser Beitrag wurde zuletzt bearbeitet: 25.06.2010 20:33 von dimitri84.)
Beitrag #11

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Mehrere Cases verwenden
Ich habe noch nie was mit serieller Kommunikation gemacht, trotzdem hier mein Vorschlag:

Für den Datentyp der Queue würde ich einen Cluster aus Enum (Status für Consunmer Loop) und String (Daten) nehmen.

In der Producer Loop machst du 3 States: "Init" (VISA konfigurieren), "VISA Read", "VISA Close".
In der Consumer Loop bringst du den Rest unter: "Init" (vielleicht deine Berechnungen für f0 und df, und deine x-Achsen Maximas setzen), "Darstellung" (hier wird die Queue gelesen und die ankommenden Daten verarbeitet), ...

Hier kannst du mal ein bisschen gucken. (Kein besonders gutes Beispiel aber das Prinzip sollte klar werden.)

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
25.06.2010, 08:51
Beitrag #12

Yantit Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 160
Registriert seit: Jun 2010

8.2.1
2010
de

63xxx
Deutschland
Mehrere Cases verwenden
OT @dimitri84: Wie hast du in einem Jahr eigentlich so viel LV-KnowHow draufgeschafft? Irgendwelche Tipps?Smile
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.06.2010, 08:58 (Dieser Beitrag wurde zuletzt bearbeitet: 25.06.2010 20:35 von dimitri84.)
Beitrag #13

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Mehrere Cases verwenden
' schrieb:OT @dimitri84: Wie hast du in einem Jahr eigentlich so viel LV-KnowHow draufgeschafft? Irgendwelche Tipps?Smile
Ich habe hier 3 Monitore und viel Zeit. 2 für LV und 1 für's Forum.

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.06.2010, 09:06
Beitrag #14

GerdW Offline
______________
LVF-Team

Beiträge: 17.425
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
Mehrere Cases verwenden
Hallo Dimitri,

anscheinend hast du einen "verständigen" Arbeitgeber und keine DeadlinesSmile

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.06.2010, 09:11
Beitrag #15

Yantit Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 160
Registriert seit: Jun 2010

8.2.1
2010
de

63xxx
Deutschland
Mehrere Cases verwenden
' schrieb:Hallo zusammen,

@Yantit:
Wenn du den subVIs keine eigenen Icons spendierst, wirst du bei NI nie gehobene Programmiersphären erreichen:)Ich sage nur "StyleGuide"!

Daran bin ich momentan tatsächlich dran, ob mans glaubt oder nicht, ein Großteil der Sub-VIs wurde schon "verschönt":)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.06.2010, 09:14 (Dieser Beitrag wurde zuletzt bearbeitet: 25.06.2010 20:31 von dimitri84.)
Beitrag #16

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Mehrere Cases verwenden
' schrieb:Hallo Dimitri,

anscheinend hast du einen "verständigen" Arbeitgeber und keine DeadlinesSmile
1-Jahres-Absolventenpraktikum. Ich bin hier um was zu lernen. Nebenbei fallen ein paar Programme ab die das Institut schon seit vielen Jahren nötig hatte.

Selbst findest du aber auch die ein oder andere Minute, GerdWink

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.06.2010, 14:30
Beitrag #17

Yantit Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 160
Registriert seit: Jun 2010

8.2.1
2010
de

63xxx
Deutschland
Mehrere Cases verwenden
Hallo!

Ich habe es jetzt soweit geschafft, mein Programm in eine Art FSM umzubauen. Funktioniert auch eigentlich ganz toll, nur habe ich jetzt noch ein Problem:

Wenn ich auf dem FP einen der Werte ändere und auf übernehmen klicke, hängt sich das Programm auf mit der Fehlermeldung in den Sub-VIs im Case "Parameter": 'Die gegebene Session oder Objektreferenz ist ungültig".

Jetzt kann ich mir eigentlich nicht erklären, woran das jetzt liegen sollte, denn das Sub-VI ist ja das gleiche wie in der Initialisierung und da funktioniert es ja auch. Die Session sollte eigentlich auch keinen Timeout oder ähnliches liefern, da ja vom Gerät permanent Werte abgefragt werden.

Kann mir vielleicht noch jemand helfen?


Sonstige .zip  FSMLV90.zip (Größe: 147,55 KB / Downloads: 153)


Lv09_img2
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.06.2010, 14:49 (Dieser Beitrag wurde zuletzt bearbeitet: 28.06.2010 15:03 von jg.)
Beitrag #18

GerdW Offline
______________
LVF-Team

Beiträge: 17.425
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
Mehrere Cases verwenden
Hallo Yantit,

du hast mehrere Fehler in deinen VIs:
- bei diversen Case-Strukturen hast du undefinierte Ausgänge ("Use default if unwired") - das kann tötlich enden bei einer Statemachine!
- du verwendest zu viele Sequenzstrukturen - die sind unnötig!
- du hast einiges an RubeGoldberg drin (warum machst du einen Vergleich eines boolschen Wertes mit TRUE???)
- du hast für meinen Geschmack zu viele lokale Variablen - die zugehörigen Terminals gehören außerhalb der Casestruktur hin, evtl. mit einem Shiftregister verbunden und schon brauchst du keine locals mehr...

Ich hab schon mal angefangen zu editieren, schau's dir an. Insbesondere die diversen Case-Strukturen und deren Ausgänge!

Lv09_img2


Angehängte Datei(en)
Sonstige .llb  FSM.llb (Größe: 258,11 KB / Downloads: 145)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.06.2010, 15:20
Beitrag #19

Yantit Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 160
Registriert seit: Jun 2010

8.2.1
2010
de

63xxx
Deutschland
Mehrere Cases verwenden
Zitat:Hallo Yantit,

du hast mehrere Fehler in deinen VIs:
- bei diversen Case-Strukturen hast du undefinierte Ausgänge ("Use default if unwired") - das kann tötlich enden bei einer Statemachine!

Verbindet man die Ein- und Ausgänge dann einfach durch, falls diese in einem Case nicht gebraucht werden oder gibt es eine andere, bessere Lösung?

Zitat:- du verwendest zu viele Sequenzstrukturen - die sind unnötig
!

Ok, ich werde die Sequenzen löschen. Aber ich weiß immer noch nicht genau, wann es sinnvoll ist, eine Sequenz zu benutzen und wann nicht...?


Zitat:- du hast einiges an RubeGoldberg drin (warum machst du einen Vergleich eines boolschen Wertes mit TRUE???)
Das ist wahr, ist mir gar nicht aufgefallen, dass das total sinnlos istSmile

Zitat:- du hast für meinen Geschmack zu viele lokale Variablen - die zugehörigen Terminals gehören außerhalb der Casestruktur hin, evtl. mit einem Shiftregister verbunden und schon brauchst du keine locals mehr...
Ich fand, dass die Variablen eigentlich ein bisschen mehr Übersicht hineinbringen, da dann nicht noch mehr Leitungen in einen Case hineinführen und die Variablen auch noch "schön" benannt sind.
Ich habe zwar schon gelesen, dass man Variablen eher meiden sollte, aber irgendwie konnte ich keine Begründung finden. Was ist denn das Hauptproblem damit?



Zitat:Ich hab schon mal angefangen zu editieren, schau's dir an. Insbesondere die diversen Case-Strukturen und deren Ausgänge!

Lv09_img2


Danke & Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.06.2010, 15:25 (Dieser Beitrag wurde zuletzt bearbeitet: 28.06.2010 15:52 von jg.)
Beitrag #20

GerdW Offline
______________
LVF-Team

Beiträge: 17.425
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
Mehrere Cases verwenden
Hallo Yantit,

"oder gibt es eine andere, bessere Lösung?"
Wieviel einfacher als einen einfachen Draht brauchst du es noch?

"wann es sinnvoll ist, eine Sequenz zu benutzen"
Nie. Mach dir lieber ein subVI mit ErrorIO-Anschlüssen...

"Was ist denn das Hauptproblem damit?"
RaceConditions. Zusätzlicher Speicherbedarf. Unübersichtlichkeit.

"da dann nicht noch mehr Leitungen in einen Case hineinführen und die Variablen auch noch "schön" benannt sind."
In einem Cluster bündeln: nur eine Leitung.
Clusterelemente ordentlich benennen (und typedef anlegen): immer ordentlich benannt dank (Un)BundleByName (oder InPlace-Struktur).

Edit:
Hab mal 2 Cluster eingebaut, einen für die Eingaben, einen für deine Rechenwerte. Diese Rechenwerte waren typisch textbasiertes Programmieren: versteckte Anzeigeelemente, nur damit man einen "Variablennamen" zur Verfügung hat. Für solche Zwecke reicht immer ein Shiftregister!

Lv09_img2


Angehängte Datei(en)
Sonstige .llb  FSM.llb (Größe: 259,63 KB / Downloads: 136)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Mehrere baugleiche Geräte verwenden Achim2 6 2.629 22.03.2023 22:52
Letzter Beitrag: Martin.Henz
  Sinnvolle Cases MoJoJo 6 4.577 07.01.2015 11:09
Letzter Beitrag: MoJoJo
Question Case-Struktur mir mehr als 2 Cases BobbyBau91 14 9.926 25.01.2014 09:33
Letzter Beitrag: Lucki
  Mehrere Sub VI's in einem "Haupt" VI verwenden Timo86 4 4.134 05.11.2013 15:00
Letzter Beitrag: Timo86
  Ein Bedienelement zwie Event Cases oe-ms1 2 3.051 19.07.2013 15:58
Letzter Beitrag: oe-ms1
  Cases durchschalten swatski 3 3.762 12.04.2013 13:35
Letzter Beitrag: GerdW

Gehe zu: