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 

Analog output kontinuierlich ändern



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!

30.09.2010, 09:24
Beitrag #1

aalemann Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Sep 2010

8.2
2005
de


Deutschland
Analog output kontinuierlich ändern
Moin,

ich möchte an einem analog output einen Gleichspannungswert in unregelmäßigen Abständen ändern. Dazu habe ich ein VI geschrieben, das auch wunderbar funktioniert, allerdings bin ich mir nicht sicher, ob meine Variante sehr geschickt ist:
Ich starte und stoppe den Task ständig.

Den entsprechenden Eintrag bei der "Property node", mit dem ich den Wert on-the-fly ändern könnte habe ich nicht gefunden, liegt das daran, dass ich ihn übersehen habe oder dass er nicht existiert?

Danke schon mal im voraus!

Lv82_img


Angehängte Datei(en)
Sonstige .vi  AO_1ch.vi (Größe: 32,38 KB / Downloads: 563)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.09.2010, 09:58 (Dieser Beitrag wurde zuletzt bearbeitet: 30.09.2010 10:01 von RMR.)
Beitrag #2

RMR Offline
Laborkater
**


Beiträge: 238
Registriert seit: Nov 2008

09f1 - 2010SP1(f4) - 2012SP1f5 - 2014 SP1f10 -2017f3
2009
DE_EN

76437
Deutschland
Analog output kontinuierlich ändern
Moin,

du hast dir die FRage doch schon selbst beantwortet. Den Task einmal starten und nach der While beenden. Für was ist das Schieberegister? Hier langt doch ein Tunnel.
Habe es dir kurz geändert.

Hoffe geholfen zu haben.

Keep on rockin´, RMR


Angehängte Datei(en) Thumbnail(s)
   

100nF passen immer.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.09.2010, 11:38
Beitrag #3

aalemann Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Sep 2010

8.2
2005
de


Deutschland
Analog output kontinuierlich ändern
ja, hat auf jeden Fall geholfen, danke! Hätte ich eigentlich auch selber einfach so ausprobieren können... Rolleyes

Aber zum Schieberegister: Hat das denn irgendwelche Nachteile?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.09.2010, 12:15
Beitrag #4

RMR Offline
Laborkater
**


Beiträge: 238
Registriert seit: Nov 2008

09f1 - 2010SP1(f4) - 2012SP1f5 - 2014 SP1f10 -2017f3
2009
DE_EN

76437
Deutschland
Analog output kontinuierlich ändern
' schrieb:Aber zum Schieberegister: Hat das denn irgendwelche Nachteile?

So ist es sicher etwas performanter. Bei dieser Anwendung dürfte das nicht weiter stören.
Nur wenn die ganze Sache etwas umfangreicher wird, dann steigt mit "überflüssgigem" Code
auch die CPU Last und die Speicherauslastung.

Keep on rockin´, RMR

100nF passen immer.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.09.2010, 14:13
Beitrag #5

aalemann Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Sep 2010

8.2
2005
de


Deutschland
Analog output kontinuierlich ändern
du meinst, dass es OHNE Schieberegister schneller abläuft?

Könnte das zu Problemen führen, wenn man den Task nicht explizit stoppt - du hast ja das "Stop Task" - vi entfernt?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.09.2010, 14:48
Beitrag #6

RMR Offline
Laborkater
**


Beiträge: 238
Registriert seit: Nov 2008

09f1 - 2010SP1(f4) - 2012SP1f5 - 2014 SP1f10 -2017f3
2009
DE_EN

76437
Deutschland
Analog output kontinuierlich ändern
' schrieb:du meinst, dass es OHNE Schieberegister schneller abläuft?

Nein, aber die "Last" geht runter. LV legt Kopien von den Daten an die innerhalb einer While- oder Case-Schleife liegen. In deinem Fall wäre das natürlich so gut wie nichts. Schneller läuft es sicher nicht. Die 100ms die du angegeben hast bleiben als Schleifenwartezeit.

Grüße, RMR

100nF passen immer.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
01.10.2010, 10:09
Beitrag #7

aalemann Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Sep 2010

8.2
2005
de


Deutschland
Analog output kontinuierlich ändern
hmm... also nochmal zum shift-register: so wie du es in dem Beispiel programmiert hast, also ohne shift register, wird die error-message doch bei jedem Schleifendurchlauf neu initialisiert. Mit einem shift register wird sie immer schön durchgereicht.

OK, wenn ein Fehler auftritt, hält das Programm eh an, aber es gibt doch auch Warnungen (?), die das Programm nicht anhalten lassen, aber beim nächsten Schleifendurchlauf verloren gehen.

Der Task brauch wohl kein shift register, da er sich ja nicht ändert, daher ist der Tunnel dort meiner Meinung nach sinnvoller. Es sein denn, LabVIEW legt bei jedem Schleifendurchlauf eine Kopie irgendwo im Speicher an, aber das weiß ich nicht.

Was meinst du zu meinem Einwand bei der error message?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.10.2010, 11:23 (Dieser Beitrag wurde zuletzt bearbeitet: 01.10.2010 11:27 von Matze.)
Beitrag #8

Matze Offline
LVF-Team
LVF-Team

Beiträge: 1.027
Registriert seit: Apr 2010

20xx
2010
DE_EN

7xxxx
Deutschland
Analog output kontinuierlich ändern
' schrieb:Für was ist das Schieberegister? Hier langt doch ein Tunnel.
Nein, der Fehler-Cluster sollte nach Möglichkeit als Schieberegister ausgeführt werden.
aalemann hat die Erklärung bereits genannt:

- So ist es möglich auf Fehler zu reagieren, die in der Schleife auftreten.

Aktuell poppt ein Fehlerdialog auf. Aber nicht immer möchte man einen Fehlerdialog zeigen. Manchmal reicht es, im Fehlerfall die Schleife zu verlassen und den Fehler weiter zu reichen, zu protokollieren oder anderweitig darauf zu reagieren.

Und das macht in der Performance auch nicht viel aus, da ein Fehler-Cluster aus sehr wenig Daten besteht.
Also immer so machen, wie du es hattest! Das war genau richtig und ist guter Programmierstil.
(Auch wenn es in Schulungsbeispielen von NI z.T. nicht so gemacht wurde. Dort wurde mir jedoch recht gegeben, dass dies schlecht programmiert sei.)

Tunnel für den Fehler-Cluster bei Schleifen nur in Ausnahmesituationen verwenden, wenn du wirklich weißt, was du tust. Beispielsweise bei While-Schleifen, die nur einmal durchlaufen werden für FGVs. Doch selbst da nutze ich Schieberegister, damit es einheitlich ist.
Ich setze genrell Schieberegister ein und hatte nie Performance-Probleme, die darauf zurückzuführen waren. Egal ob Real-Time-System oder unter Windows und egal ob ich 10 SubVIs nutze oder 500.

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.10.2010, 11:29
Beitrag #9

RMR Offline
Laborkater
**


Beiträge: 238
Registriert seit: Nov 2008

09f1 - 2010SP1(f4) - 2012SP1f5 - 2014 SP1f10 -2017f3
2009
DE_EN

76437
Deutschland
Analog output kontinuierlich ändern
' schrieb:hmm... also nochmal zum shift-register: so wie du es in dem Beispiel programmiert hast, also ohne shift register, wird die error-message doch bei jedem Schleifendurchlauf neu initialisiert. Mit einem shift register wird sie immer schön durchgereicht.

Was meinst du zu meinem Einwand bei der error message?

Wenn du das möchtest, dass die Errormeldungen nach "aussen" weitergereicht werden, dann musst du ein SR anlegen. Ick kenne deine Programmierabsichten nicht und kann nur auf das antworten was ich in deinem VI sehe. Möchtest du die Meldungen auslesen......ja SR.

Schönes WE, RMR

100nF passen immer.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.10.2010, 12:02
Beitrag #10

Matze Offline
LVF-Team
LVF-Team

Beiträge: 1.027
Registriert seit: Apr 2010

20xx
2010
DE_EN

7xxxx
Deutschland
Analog output kontinuierlich ändern
Meine Meinung: Man sollte sich das gleich sauber angewöhnen.

Bei richtig eingesetzten Programmen möchte man meist auch nicht, dass diese sich bei einem Fehler beenden, sondern evtl. noch irgendein Ventil ansteuern, etwas drucklos schalten, einen Fehlerhinweis anzeigen o.ä.

Daher mein Rat: Fehler-Cluster bei Schleifen immer als Schieberegister ausführen.

Aber das muss jeder für sich selbst entscheiden.

Grüße
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
  Analog Output: hardware getaktet Output gleichzeitig mit on demand output kwakz 5 5.047 05.03.2021 10:04
Letzter Beitrag: jg
  Fehler bei AO - kontinuierlich - ohne Neugenerierung t.hipp 10 9.088 12.02.2018 22:08
Letzter Beitrag: t.hipp
  Analog Output eines 1D-DBL-Arrays Kyuuu 2 4.925 29.03.2017 11:26
Letzter Beitrag: Lucki
  kontinuierlich anpassbare Ausgabe VS_03 1 4.226 09.06.2016 12:58
Letzter Beitrag: VS_03
  Analogausgang kontinuierlich schreiben, während der Moes 7 8.988 18.12.2015 09:09
Letzter Beitrag: Moes
  Analog Output mit my DAQ von NI luckluke 3 4.646 04.06.2014 20:47
Letzter Beitrag: Trinitatis

Gehe zu: