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!

05.03.2013, 10:31
Beitrag #1

Epicon Offline
LVF-Grünschnabel
*


Beiträge: 24
Registriert seit: Mar 2013

6.0
2013
EN



T0 Messung
Hallo zusammen,

ich habe erneut eine Frage.

Und zwar: Ich habe ein VI, welches den Schwellstrom eines Lasers ermittelt. Da Laser ja temperaturabhängig sind, soll ich nun eine T0 Messung hinzufügen. Das heißt: Ich stelle meine Starttemperatur, meine Endtemperatur und die Schrittweite ein. Pro Temperatur soll die Messung des Schwellstroms durchgeführt werden und im Endeffekt dann aus den Temperaturmessungen T0 ermittelt werden.

Ich weiß nun allerdings nicht, wie ich meinem VI sage, dass er nach jeder Messung des Schwellstroms die Temperatur um den gegebenen Schritt erhöht, erneut misst und im Endeffekt die T0 Messung macht (also quasi einen Fit über alle Messwerte?).

Kann mir von euch jemand vielleicht einen Denkanstoß geben? Könnte es vielleicht mit einem Schieberegister gehen, wo jedes mal abgefragt wird, ob die aktuelle Temperatur noch geringer ist, als die Endtemperatur und wenn das wahr ist, die Messung wiederholt wird?

Danke schonmal im Vorraus,

Epicon
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
05.03.2013, 10:51
Beitrag #2

GerdW Online
______________
LVF-Team

Beiträge: 17.428
Registriert seit: May 2009

LV2021
1995
DE_EN

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

Zitat:wie ich meinem VI sage, dass er nach jeder Messung des Schwellstroms die Temperatur um den gegebenen Schritt erhöht
Einfache Antwort: die Temperatur in einem Schieberegister halten und in jeder Iteration die Schrittweite dazu addieren...

Zitat:Könnte es vielleicht mit einem Schieberegister gehen, wo jedes mal abgefragt wird, ob die aktuelle Temperatur noch geringer ist, als die Endtemperatur und wenn das wahr ist, die Messung wiederholt wird?
Jetzt wird es komisch. ich denke, du gibst die Temperatur vor? Jetzt plötzlich musst du doch wieder Temperaturen abfragen???
Vielleicht so: du sendest den neuen T-Sollwert an dein Stellgerät (Ofen?) und programmierst eine Schleife, in der du wartest, bist die gewünschte Temperatur erreicht wurde. Dann wird der Laser vermessen...

Tipp: Schau dir das Konzept einer Statemachine an. Scheint (nach meiner Interpretation) zu passen...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.03.2013, 11:23 (Dieser Beitrag wurde zuletzt bearbeitet: 05.03.2013 11:42 von Epicon.)
Beitrag #3

Epicon Offline
LVF-Grünschnabel
*


Beiträge: 24
Registriert seit: Mar 2013

6.0
2013
EN



RE: T0 Messung
(05.03.2013 10:51 )GerdW schrieb:  
Zitat:Könnte es vielleicht mit einem Schieberegister gehen, wo jedes mal abgefragt wird, ob die aktuelle Temperatur noch geringer ist, als die Endtemperatur und wenn das wahr ist, die Messung wiederholt wird?
Jetzt wird es komisch. ich denke, du gibst die Temperatur vor? Jetzt plötzlich musst du doch wieder Temperaturen abfragen???

Hallo GerdW, danke für deine Antwort. Das war vielleicht etwas undeutlich formuliert.

Etwas ausführlicher: Ich gebe eine Starttemperatur (z.B. 10°C), eine Endtemperatur (z.B. 40°C) und die Schrittweite (z.B. 3°C). Dann starte ich das VI. Nun soll die erste Messung des Schwellstroms bei T=10°C durchgeführt werden. Da ich ja komplett bis 40°C hochmessen möchte, soll nun abgefragt werden, ob die Temperatur bereits 40°C beträgt. Wenn dies nicht so ist, soll die Temperatur durch die Schrittweite von 3°C auf T=13°C erhöht werden und erneut der Schwellstrom gemessen werden. Dies soll dann eben so oft wiederholt werden, bis die Messung bei 40°C durchgeführt wurde und anschließen soll die Messung beendet werden. Daher kam der Ansatz mit der Abfrage, ob die aktuelle Temperatur noch geringer ist, alsdie Endtemperatur, denn irgendwoher muss das VI ja wissen, dass es weiterhin die Temperatur hochregeln soll.

Ist das nun etwas deutlicher? Wink

Und noch eine kleine Frage dazu: Wenn ich nicht möchte, dass mein Programm die Temperaturmessung durchführt, sondern lediglich nur den Schwellstrom messen soll, für eine Temperatur, kann ich dies dann durch einen Boolean Knopf im Frontpanel möglich machen?

Grüße,

Epion

Nachtrag: Ich denke die Statemachine ist ein guter Tipp. So in etwa war es gemeint. Und im Anhang kurz das zusammengeklickt, wie ich mir vorstelle, dass es funktionieren könnte?


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.03.2013, 11:56
Beitrag #4

GerdW Online
______________
LVF-Team

Beiträge: 17.428
Registriert seit: May 2009

LV2021
1995
DE_EN

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

um die Endbedingung abzufragen, kannst du wie im Bild vorgehen.

Eine Statemachine ist das aber noch nicht... Smile

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.03.2013, 12:45
Beitrag #5

Epicon Offline
LVF-Grünschnabel
*


Beiträge: 24
Registriert seit: Mar 2013

6.0
2013
EN



RE: T0 Messung
Für die Statemachine müsste noch eine Casestruktur mit rein?

Was würde sie in diesem Fall bringen? Das ist mir noch nicht klar ..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.03.2013, 12:48
Beitrag #6

GerdW Online
______________
LVF-Team

Beiträge: 17.428
Registriert seit: May 2009

LV2021
1995
DE_EN

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

du könntest verschiedene States programmieren, u.a.:
- Temperatur vorgeben
- warten, bis Temperatur eingestellt ist
- Messung durchführen
- Abbruchbedingung prüfen
Man kann für jeden State Fehler- und Abbruchbedingungen prüfen und immer entscheiden, wie man weitermachen will. Außerdem ist es einfach, neue States (z.B. weitere Messungen) unterzubringen...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
05.03.2013, 12:56
Beitrag #7

Epicon Offline
LVF-Grünschnabel
*


Beiträge: 24
Registriert seit: Mar 2013

6.0
2013
EN



RE: T0 Messung
Wäre das so passend?



siehe Anhang


Angehängte Datei(en) Thumbnail(s)
       
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.03.2013, 13:05
Beitrag #8

GerdW Online
______________
LVF-Team

Beiträge: 17.428
Registriert seit: May 2009

LV2021
1995
DE_EN

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

die aktuelle Temperatur würde ich eher als Parameter denn als State-Selector nehmen. Erstelle dir für deine States ein (typdefiniertes) Enum - du findest Beispiele hier im Forum als auch im Beispielfinder!

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

Epicon Offline
LVF-Grünschnabel
*


Beiträge: 24
Registriert seit: Mar 2013

6.0
2013
EN



RE: T0 Messung
Hallo GerdW,

ich habe mich nun ein bisschen in das Thema Statemachine eingelesen und auch für mich nochmal überlegt, wie ich das Problem gerne lösen würde und bin allerdings zu keiner Lösung gekommen.

Könntest du mir vielleicht noch einen Tipp geben, oder schnell etwas zusammen basteln?

LG,
Epicon
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.03.2013, 09:36 (Dieser Beitrag wurde zuletzt bearbeitet: 07.03.2013 09:38 von GerdW.)
Beitrag #10

GerdW Online
______________
LVF-Team

Beiträge: 17.428
Registriert seit: May 2009

LV2021
1995
DE_EN

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

schnell was zusammenbasteln bringt dir nichts, da ich es nur als LV8 speichern kann. Mit deinem LV6 hängst du leider >10 Jahre hinterher...
Frag doch mal freundlich bei deinem Chef nach. Es wird auch keiner mehr mit TurboPascal in der DOS-Umgebung programmieren, wenn er als Betriebssystem ein Win7 oder gar schon Win8 verwendet!

Statemachines bauen sich am einfachsten, wenn man als Stateselector ein (typdefiniertes) Enum verwendet. In deinem Fall würden sich die States Init, SetTemp, WaitForTemp, Measurement anbieten.
- Bei SetTemp wird der neue Temperaturwert berechnet und eingestellt. Der Temperaturwert wird in einem Schieberegister gehalten.
- Bei WaitForTemp wird dein Ofen (?) abgefragt, ob die gewünschte Temperatur erreicht ist. Dann wird entschieden, ob man weiterhin den State WaitForTemp oder doch den State Measurement aufruft.
- Measurement und Init sind wohl selbsterklärende State-Namen...

Mal ein Bild zur Verdeutlichung:
   

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


Gehe zu: