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 

T0 Messung



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!

08.03.2013, 09:54 (Dieser Beitrag wurde zuletzt bearbeitet: 08.03.2013 09:55 von GerdW.)
Beitrag #21

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: T0 Messung
Hallo Epicon,

ich wiederhole aus Beitrag #15:
Zitat:jeder Case ist ein State. Die States verwaltet man über das Enum, ist "lesbarer" als eine einfache Zahl.

und aus Beitrag #16:
Zitat:Der Wert des Enum gibt an, welcher Case (= State = Zustand) jeweils ausgeführt werden soll.

Wo bitte ist da von "TRUE" und "FALSE"-Cases die Rede?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
08.03.2013, 11:11 (Dieser Beitrag wurde zuletzt bearbeitet: 08.03.2013 11:11 von Wall-E.)
Beitrag #22

Wall-E Offline
LVF-Grünschnabel
*


Beiträge: 28
Registriert seit: Jan 2013

2012
2010
EN



RE: T0 Messung
(08.03.2013 08:12 )Epicon schrieb:  Geschieht über GPIB und ist kein Problem Wink (zumindest bis jetzt hab ich da alles hinbekommen)
Gut. Sonst hätte ich Dir jetzt auch geraten Dir lieber was Anderes zu suchen. :-D

Machen wir weiter mit LV 101, ich rate mal das Dir diese Information fehlt:
Wie so viele Elemente in LV ist auch die Case-Struktur Polymorph. Das bedeutet: Schließt Du einen anderen Datentyp an, wird eine andere Version der Case-Struktur verwendet die zum Datentyp passt. Schließt Du statt eines Bool ein Enum an, kannst Du (Wunder oh Wunder) für jeden Wert des Enum einen eigenen Case einrichten.

(Ja, das funktioniert auch mit anderen Datentypen.)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.03.2013, 11:38
Beitrag #23

Epicon Offline
LVF-Grünschnabel
*


Beiträge: 24
Registriert seit: Mar 2013

6.0
2013
EN



RE: T0 Messung
(08.03.2013 09:54 )GerdW schrieb:  Wo bitte ist da von "TRUE" und "FALSE"-Cases die Rede?

Natürlich garnicht. Aber in anderen Zusammenhängen nutzt man doch diese Casestruktur auch für False/True Anwendungen und ich wusste es nicht besser zu formulieren.

Dann war mein Ansatz also doch richtig jedes Enum in einen neuen Case zu setzen?

Da hatte ich aber das Problem, dass das VI immer nur im ersten Case blieb (ich glaube, da fällt mir der Fehler gerade selber auf).

Aber, ich lege ja die Temperatur auch auf ein Schieberegister, damit diese immer hochgefahren werden soll. In dem Case, wo dann aber die Messung stattfinden soll, wird allerdings nur der Strom hochgeregelt und ich habe keine Temperatur, die ich wieder auf das Schieberegister geben kann (das orangene Quadrat hat ein kleines weißes Quadrat) und das VI läuft nicht ..

Gibts da eine Lösung?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.03.2013, 11:44 (Dieser Beitrag wurde zuletzt bearbeitet: 08.03.2013 11:45 von GerdW.)
Beitrag #24

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: T0 Messung
Hallo Epicon,

man sollte schon alle passenden Ein-/Ausgänge der Casestruktur verdrahten, damit man eben nicht "default if unwired"-Probleme bekommt. Schließlich willst du doch immer die aktuellen Werte weiterreichen und dir auch merken...
Schon mal Rechtsklick auf den Tunnel -> "Verknüpfter Eingangstunnel" -> "Offene Cases verbinden" probiert? Ich vergaß: du nutzt ja eine Uralt-Version. Musst du selbst verdrahten...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.03.2013, 15:53
Beitrag #25

Epicon Offline
LVF-Grünschnabel
*


Beiträge: 24
Registriert seit: Mar 2013

6.0
2013
EN



RE: T0 Messung
(08.03.2013 11:44 )GerdW schrieb:  Hallo Epicon,

man sollte schon alle passenden Ein-/Ausgänge der Casestruktur verdrahten

Aber wenn ich doch in einem State keine Ausgabe der Temperatur habe? Nämlich genau da, wo dann die eigentliche Messung des Schwellstroms stattfindet???
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.03.2013, 16:17
Beitrag #26

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: T0 Messung
Hallo Epicon,

Zitat:Aber wenn ich doch in einem State keine Ausgabe der Temperatur habe?
Du hast aber ein Schieberegister zu Verfügung, dessen Wert du durch den Case durchverdrahten kannst. Wall
   

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
11.03.2013, 09:59
Beitrag #27

Epicon Offline
LVF-Grünschnabel
*


Beiträge: 24
Registriert seit: Mar 2013

6.0
2013
EN



RE: T0 Messung
(08.03.2013 16:17 )GerdW schrieb:  Du hast aber ein Schieberegister zu Verfügung, dessen Wert du durch den Case durchverdrahten kannst. Wall

Achso, ok, verstanden.

Ich hatte nun das VI so entworfen, wie ich dachte, dass es funktionieren könnte. Allerdings lief es immer wieder ins "Init" rein, ohne in einen nächsten State/Case/Zustand zu laufen.

Sollte es nicht eigentlich funktionieren, wenn ich vor der While-Schleife mein Enum mit Init, StartMeas,End benenne und dann im Case in der Whileschleife für Init einen Case habe, für Startmeas einen und für End? Oder muss man da noch ein weiteres Kriterium beachten?

LG,
Epicon
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.03.2013, 10:04 (Dieser Beitrag wurde zuletzt bearbeitet: 11.03.2013 10:05 von GerdW.)
Beitrag #28

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: T0 Messung
Hallo Epicon,

wenn du ein Enum mit mehreren Einträgen definierst, bedeutet es nicht, dass in einer Case-Struktur in einer While-Schleife automatisch jeder dieser Einträge aufgerufen wird. Ein Enum ist kein Array, welches autoindiziert wird!

Du musst schon noch selbst für einen State-Wechsel sorgen, in dem du den nächsten State per Schieberegister in die nächste Iteration schiebst...

Ansonsten gilt immer noch: aktuelle Version deines VIs anhängen, damit wir alle wissen, worüber hier diskutiert wird...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.03.2013, 10:17
Beitrag #29

Epicon Offline
LVF-Grünschnabel
*


Beiträge: 24
Registriert seit: Mar 2013

6.0
2013
EN



RE: T0 Messung
(11.03.2013 10:04 )GerdW schrieb:  Ansonsten gilt immer noch: aktuelle Version deines VIs anhängen, damit wir alle wissen, worüber hier diskutiert wird...

Ach, ja natürlich.

Angehängt ist jetzt ein VI, mit dem ich versuche, die Statemachine zu verstehen. Selbst zusammengeklickt und vermutlich grottenschlecht.
Hatte mir überlegt, die Temperaturerhöhung bis zu einem bestimmten Wert mit der SM zu machen. Nur sagt er mir jetzt: "no case for some selector values". Aber warum?

Sorry, für vermutlich sehr dumm anstellen, aber der Ansprechpartner hier im Betrieb ist noch nicht aus dem Urlaub zurück..


Angehängte Datei(en)
6.0 .vi  Temp_Steu.vi (Größe: 20,42 KB / Downloads: 198)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.03.2013, 10:29 (Dieser Beitrag wurde zuletzt bearbeitet: 11.03.2013 10:39 von GerdW.)
Beitrag #30

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: T0 Messung
Hallo Epicon,

auch bei LabVIEW6 solltest du schon die ganzen CoercionDots an deinen Enum-Anschlüssen sehen. Die bedeuten immer eine Warnung...

Ich hatte immer empfohlen, das Enum typdefiniert anzulegen! Das hast du leider nicht gemacht. Dummerweise hast du nicht mal das Enum kopiert, welches du vor der While-Loop mit 3 Einträgen angelegt hast. Und du hast auch kein neues Enum per Rechtsklick -> Erstelle Konstante angelegt, auch dann hättest du weniger Probleme gehabt...

Stattdessen hast du jedesmal ein neues Enum definiert, dummerweise aber mit jeweils nur einem Eintrag. Was soll da wohl passieren? Per CoercionDot wird das dann jeweils zu einer Null (erster Eintrag bekommt bei null-basierter Zählweise die Null zugeordnet!). Und deine Case-Struktur wird dann wohl immer den Case Null aufrufen - logisch oder?

- Also nochmal: Enum als Typdefinition anlegen. Dann immer mit dieser Typdefinition (oder Kopien des Originals) arbeiten!
- Wenn du alle CoercionDots beseitigt hast, zeigt die Case-Struktur auch die Enum-Einträge als Cases an...

Noch was:
Wenn du im Case "Init" (oder vorher "0") bist, solltest du nicht unbedingt "Init" als nächsten State ausgeben. Schließlich willst du doch mal in einen anderen State wechseln...

   

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


Gehe zu: