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 

Timing Problem



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!

03.11.2008, 15:56 (Dieser Beitrag wurde zuletzt bearbeitet: 07.11.2008 00:32 von jg.)
Beitrag #1

kiwi Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: Jun 2008

LV 8.5
2008
de

78647
Deutschland
Timing Problem
Hallo zusammen,
ich bin noch recht neu bei LabVIEW und stehe seit heute mittag vor folgendem Problem.
Ich steuere eine Stromquelle (6680) und ein Multimeter (34401) über GPIB an.
An der Stromquelle hängt ein Schand und ich messe mit dem Multimeter den Spannungsabfall
über diesem. Nun funktioniert das alles auch sehr gut wenn ich einzelne Stromwerte eingebe.
Ich muss den Strom aber koninuierlich ändern (Rampenfunktion). Jeder Wert der Rampe muss
für kurze zeit gleich bleiben, damit er gemessen werden kann. Bisher habe ich dies durch eine
Verzögerung der schleife versucht zu lösen, allerdings funktioniert dies nicht, da das ganze vi
(und nicht nur die schleife) dann für kurze zeit stehen bleibt.
Hat jemand vielleicht eine Idee, wie man das richtig löst?
Vielen dank schonmal

Lv85_img


Angehängte Datei(en)
Sonstige .vi  Messstand_1.vi (Größe: 93,99 KB / Downloads: 181)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
04.11.2008, 06:32 (Dieser Beitrag wurde zuletzt bearbeitet: 04.11.2008 06:33 von Achim.)
Beitrag #2

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


Beiträge: 4.222
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Timing Problem
Es ist eine wahre Shunt..., daß das nicht funktioniert!

Zum Problem:
Du musst alles, was dauernd passieren soll, in eine gemeinsame While-Schleife legen! Am besten wäre es, wenn du dir eine State Machine aufbauen würdest:

State 1: Initialisierung Stromquelle + Messkarte
State 2: Ausgabe erster Stromwert
State 3: Wartezeit x Sekunden
State 4: Messung/Auswertung/Speicherung
State 5: Prüfe ob Abbruchbedingung (welche?) erfüllt
NEIN -> State 6: Inkrement/Ausgabe Stromwert, dann weiter mit State 3
JA -> State 7: Aufräumen (Close/Clear/Stop/etc.)

Beiträge zur State Machine gibts jede Menge im LVF!

Gruß
Achim

"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
04.11.2008, 17:00
Beitrag #3

kiwi Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: Jun 2008

LV 8.5
2008
de

78647
Deutschland
Timing Problem
Ah okay das Hilft mir schon mal viel. Ich komm erst wieder nächsten Montag zum programmieren
aber ich berichte dann ob alles geklappt hat. Das mit der State Machine ist mir bisher noch nicht über den weg gelaufen :-)
vielen dank schonmal.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.11.2008, 17:52
Beitrag #4

kiwi Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: Jun 2008

LV 8.5
2008
de

78647
Deutschland
Timing Problem
so, jetzt hab ich mal das ganze in eine State Machine gepackt.
Ich weiß, das es noch ein wenig unübersichtlich ist aber ich hatte nicht viel Zeit.
(kommt später noch)
Ist es wohl möglich, das ganze noch ein wenig zu beschleunigen?
Was kostet den bisher noch am meisten Zeit?
Danke schon mal im voraus.

[Bild: lv85_img.jpg]

Sonstige .vi  zustandsautomat_messung1.vi (Größe: 91,7 KB / Downloads: 275)


Sonstige .ctl  StateMachineStates_1.ctl (Größe: 5,04 KB / Downloads: 245)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.11.2008, 07:22 (Dieser Beitrag wurde zuletzt bearbeitet: 11.11.2008 07:23 von Achim.)
Beitrag #5

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


Beiträge: 4.222
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Timing Problem
Hi,
ich glaube nicht, dass du irgendwo noch einen wesentlichen Zeitgewinn kriegen wirst...am ehesten vielleicht bei den verschiedenen Lesemodi für das Messgerät. Du hast halt ein externes Gerät...Was genau geht dir denn zu langsam?

Ganz allgemein: Die innere While-Schleife bei "Spannung messen" solltest du rausschmeißen, dafür den eigentlichen Case "Spannung messen" mehrfach anspringen, bis eine Bedingung erfüllt ist. Beim ersten Aufruf des Case machst du "Initiate Measurement", das merkst du dir z.B. über eine boolesches Schieberegister, das für alle Cases die Init-Bedingung durchschleift...d.h. beim vorhergehenden State A setzt du das auf TRUE und wertest es im folgenden State B aus...direkt nach der Auswertung setzt du es auf FALSE für den zweiten Aufruf von State B...beim letzten Aufruf von State B setzt du es wieder auf TRUE als Init für State C...

Vorteil dabei: Du kannst die State Machine von außen jederzeit durch eine User-Eingabe abbrechen, auch wenn ein entsprechender Button nicht genau im State "Spannung messen" platziert ist. Dazu müsstest du allerdings evtl. noch eine Eventstruktur einbauen...guck dir auch mal die Beispiele zur "Producer-Consumer-Architektur" an!

Deine Variante funzt zwar, man kann's aber noch optimieren Tongue

Gruß
Achim

"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
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  GPIB timing Problem Tweety 1 3.550 16.08.2008 23:34
Letzter Beitrag: eg

Gehe zu: