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 

Analogausgang kontinuierlich schreiben, während der



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.12.2015, 13:46 (Dieser Beitrag wurde zuletzt bearbeitet: 13.12.2015 14:04 von Moes.)
Beitrag #1

Moes Offline
LVF-Grünschnabel
*


Beiträge: 23
Registriert seit: Jun 2015

13.0f2
2015
DE

30629
Deutschland
Analogausgang kontinuierlich schreiben, während der
Hallo,

ich wollte mal fragen ob man die schreibt Performance der zwei Analogausgänge die nicht Zeit veränderliche Signale abgeben steigern könnte.

Zuerst wurde versucht einen zweite DAQmx Task einzufügen (nur das funktioniert nicht richtig, schreibt die Werte gar nicht erst) :-(
"DAQmx Write, Analog 1D N-Kanal 1 Sample" in der gleichen While Schleife führt zu Problemen, wenn man den "Do not allow Regeneration" Modus eingeschaltet hat.

Die beiden oberen Ausgänge schreiben ein Zeit veränderliches Signal, jeweils ein Rechteck und ein Sinus und mit den unteren kontrolliere ich einfach einen kleinen Motor.
Leider ist die Ausgabe sehr träge, wenn mann immer alle 1000 Datenpunkte Generieren muss, Samples senken zerstört einem aber dann den Sinus verlauf letztlich Blush




Bin für jeden Tipp dankbar!

Gruß Moritz

PS: die beiden Sub.vi's sind die Standard Funktionsgeneratoren aus Labview....


Angehängte Datei(en) Thumbnail(s)
   

Chassi: cDAQ 9178 mit
AnalogIn: 9205
AnaloOut: 9264
DigitalIn: 9421
DigitalOut: 9472
CAN "In": 9862
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.12.2015, 13:52 (Dieser Beitrag wurde zuletzt bearbeitet: 08.12.2015 13:54 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Analogausgang kontinuierlich schreiben
Hallo Moritz,

Zitat:Leider ist die Ausgabe sehr träge, wenn mann immer alle 1000Tsd Datenpunkte Generieren muss, Samples senken zerstört einem aber dann den Sinus
Kannst dud as nochmal mit ordentlicher Grammatik (& Rechtschreibung) formulieren?

- 1000Tsd = 1Mio
- wie groß ist deine Samplerate? Wie groß ist #s/Sampleanzahl?
- was an deinem Code braucht am meisten Zeit?
- die unterste FOR-Loop ließe sich durch ein InitArray ersetzen…
- die Waveforms, die du generierst, haben nicht die gleichen Einstellungen: die unteren zwei FOR-Loops generieren nur Y-Daten, es fehlt die korrekte Zuordnung der dt-Werte!

- Bilder sind nett, VIs sind aussagekräftiger: man könnte vielleicht noch mehr Ungereimtheiten finden…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.12.2015, 14:44
Beitrag #3

Moes Offline
LVF-Grünschnabel
*


Beiträge: 23
Registriert seit: Jun 2015

13.0f2
2015
DE

30629
Deutschland
RE: Analogausgang kontinuierlich schreiben, während der
Also ich hab einfach die vi's nicht angehängt denn man kann sie später ja nicht mehr löschen und ich war mir nicht sicher ob ich die veröffentlichen darf.

Im Grunde genommen fand ich es einfach schade dass man nicht für jede "Aufgabe" einen DAQmx Task verwenden kann, ohne das gleich Probleme beim schreiben auftauchen. Mein erster Versuch bestand ja auch darin "Parallel" zu schreiben und dann mal gucken ob Labview das von sich aus macht.

Auch ein Grund warum ich nicht die Warte/Zeitfunktionen angerührt hatte, ein einsetzen von einem Warten führt dazu dass keine weitere Ausgabe mehr stattfindet. Oder eben das Signal unsauber ausgegeben wird, Sprünge und Abreißen der Signalform.

Die beiden anderen Analogausgänge werden einfach hin und wider einmal geschrieben, mit sehr hohen Pausen da der Benutzer ja auf seiner Oberfläche recht langsam ist.
Selbst bei sehr kleinen Frequenzen vom Sinus Generator, also z.B. 0,5Hz bekomme ich schon Stufen auf dem Oszilloskop angezeigt.

Der angehängte Programmcode rennt "neben" der Benutzeroberflächen While Schleife. Die Benutzeroberfläche schreibt alle 500ms die aktuelle Benutzereingabe als Lokale Variablen in die Frontpanel Elemente.


Angehängte Datei(en)
14.0 .vi  Analogausgabe.V.3.1.vi (Größe: 46,57 KB / Downloads: 307)

14.0 .vi  SinusGen.V1.vi (Größe: 60,66 KB / Downloads: 245)

Chassi: cDAQ 9178 mit
AnalogIn: 9205
AnaloOut: 9264
DigitalIn: 9421
DigitalOut: 9472
CAN "In": 9862
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.12.2015, 18:30 (Dieser Beitrag wurde zuletzt bearbeitet: 13.12.2015 19:54 von GerdW.)
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Analogausgang kontinuierlich schreiben
Hallo Moes,

Zitat:Im Grunde genommen fand ich es einfach schade dass man nicht für jede "Aufgabe" einen DAQmx Task verwenden kann, ohne das gleich Probleme beim schreiben auftauchen.
Das hängt mit der verwendeten Hardware zusammen: du verwendest verschiedene Kanäle auf einem Modul und musst diese leider in einem Task verwalten…

Zitat:Die beiden anderen Analogausgänge werden einfach hin und wider einmal geschrieben, mit sehr hohen Pausen da der Benutzer ja auf seiner Oberfläche recht langsam ist.
Selbst bei sehr kleinen Frequenzen vom Sinus Generator, also z.B. 0,5Hz bekomme ich schon Stufen auf dem Oszilloskop angezeigt.
Gibt es Fehlermeldungen?
Wie sehen die Plots in der graphischen Anzeige aus?
Was heißt "hin und wieder"?
Wie oft erfolgt die Ausgabe mittels DAQmxWrite?

Zitat:Die Benutzeroberfläche schreibt alle 500ms die aktuelle Benutzereingabe als Lokale Variablen in die Frontpanel Elemente.
Wie oft läuft die Ausgabeschleife bzw. wie schnell iteriert sie?
Kann man hier auf ein schönes Producer-Consumer-Schema umstellen?

Das subVI ist jedenfalls unangenehm wenig aufgeräumt, scheint aber (zu großen Teilen?) von NI zu stammen…

Meine Fragen zielen darauf ab, dass ich das anders gelöst hätte: ich würde in einer Schleife immer die nächsten 100-500ms an Signaldaten berechnen und ausgeben lassen. Der Rechenaufwand scheint überschaubar zu sein, sodass man schneller sein sollte, als die Ausgabe benötigt. Und man kann hinreichend schnell auf User-Eingaben reagieren…

Zitat:ein einsetzen von einem Warten führt dazu dass keine weitere Ausgabe mehr stattfindet.
Der Zusammenhang erschließt sich mir nicht (direkt)…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.12.2015, 13:49
Beitrag #5

Moes Offline
LVF-Grünschnabel
*


Beiträge: 23
Registriert seit: Jun 2015

13.0f2
2015
DE

30629
Deutschland
RE: Analogausgang kontinuierlich schreiben, während der
Gibt es Fehlermeldungen?
Manchmal startet die Hauptschleife nicht und LabView blinkt am Innenrand der Schleife.
Meine Beobachtung dazu ist eben das mein CAN Bus, also die NI-XNET komponeten die Performance stark senken.

Die DAQmx Ausgabe erfolgt kontinuierlich.
Der DAQmx Task schreibt kontinuierlich da die Ausgabe "DAQmx-Timing: Neugen Modus auf DO Not Allow Regeneration steht.
Ich war anders nicht in der Lage einen Signal Zeit kontinuierlich zu schreiben und gleichzeitig eine Anpassung der Ausgangswerte durch den Benutzer zu ermöglichen.

Aktuell ist in der (Analog ausgebenden) While Schleife eine "zu Warten" von 250ms eingestellt. Test-weise erhöhen bis 1000ms zeigt keine Veränderung des Ausgangssignal, bringt aber spürbar kein Performance zuwachs Blush

Aktuelle Wartezeiten:
1.500ms Whileschleife, Benutzereingabe
2.300ms Whileschleife, Analogausgabe
3. 10ms, Whileschleife, Analog Eingänge, 4 Stck, 10 Samples. Analog 2D DBL NKanäle NSamples
4. 5ms, Whileschleife, Counter, Digitaleingang zum Flanken Zählen mit Counter (höhere Wartezeit hat hier Probleme verursacht, Inhalt ist aber sehr spartanisch)
5. 5ms, Whileschleife, NI XNET CAN Bus, hier hole ich mir 3 Werte aus dem CAN BUS und zeige diese direkt auf dem Frontpanel an.

Problem ist eher das die Analogausgabe manchmal abreißt, also sprünge hat und die Benutzeroberfläche etwas "ruckelt". Ich dachte ggf. senke ich die Schleife 1. auf 100ms dann sieht man das mit dem Auge nicht mehr


Angehängte Datei(en) Thumbnail(s)
   

Chassi: cDAQ 9178 mit
AnalogIn: 9205
AnaloOut: 9264
DigitalIn: 9421
DigitalOut: 9472
CAN "In": 9862
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.12.2015, 13:58
Beitrag #6

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Analogausgang kontinuierlich schreiben, während der
Offtopic2
Wo kommt jetzt auf einmal CAN her? Davon schreibst du zum ersten Mal, auch in deiner Signatur ist davon nicht die Rede. Flop

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
17.12.2015, 15:12
Beitrag #7

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Analogausgang kontinuierlich schreiben, während der
Hallo Moes,

Zitat:Manchmal startet die Hauptschleife nicht und LabView blinkt am Innenrand der Schleife.
Wie kann LabVIEW (mit großem "IEW") blinken?
Da ich davon ausgehe, dass du vom BD deines VI sprichst: was da blinkt, ist üblicherweise ein Breakpoint. Hast du etwa einen in deinem VI?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.12.2015, 09:09 (Dieser Beitrag wurde zuletzt bearbeitet: 18.12.2015 09:30 von Moes.)
Beitrag #8

Moes Offline
LVF-Grünschnabel
*


Beiträge: 23
Registriert seit: Jun 2015

13.0f2
2015
DE

30629
Deutschland
RE: Analogausgang kontinuierlich schreiben, während der
(17.12.2015 13:58 )jg schrieb:  Offtopic2
Wo kommt jetzt auf einmal CAN her? Davon schreibst du zum ersten Mal, auch in deiner Signatur ist davon nicht die Rede. Flop

Gruß, Jens

Ach ich hatte mir einfach noch ein weiteres Modul eingesteckt um noch mehr Messwerte mitlesen zu können. Das CAN Modul wir zwar parallel ausgelesen, nur die Werte verarbeite ich noch nicht. Zu Testzwecken ist das schon mal mit dabei nur die Messwerte werden nicht weiter eingespeichert.


Mein LabView Programm enthält eigentlich keinen "Breakpoint" im Blockdiagramm, ich dachte die Meldung entstand weil LabView erst meine Haupt-schleife startet und dann wird in Lokale Variablen geschrieben dessen Bedienelement noch nicht erstellt wurde?
Mir ist aufgefallen das die parallele Schleife mit z.B. einem DAQmx Task und dessen Bedienelement länger zum "Starten" oder beginnen benötigt als eine Schleife mit nur einfachen Frontpanel Elementen.

Schade ist einfach das die Signalausgabe eine recht hohe Auslastung des Computers bedingt :-(

Chassi: cDAQ 9178 mit
AnalogIn: 9205
AnaloOut: 9264
DigitalIn: 9421
DigitalOut: 9472
CAN "In": 9862
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
  Fehler bei AO - kontinuierlich - ohne Neugenerierung t.hipp 10 9.091 12.02.2018 22:08
Letzter Beitrag: t.hipp
  kontinuierlich anpassbare Ausgabe VS_03 1 4.226 09.06.2016 12:58
Letzter Beitrag: VS_03
  Analogausgang als PWM Ausgang verwenden Moes 7 5.878 15.09.2015 13:40
Letzter Beitrag: Moes
  Analogausgang ansprechen, Anfänger talljohn 2 4.208 27.09.2013 08:11
Letzter Beitrag: GerdW
  Messen während der Verarbeitung Eglito 3 4.195 25.04.2012 08:46
Letzter Beitrag: jg
  Messung während DO=High DennisSA 4 5.035 28.10.2011 10:37
Letzter Beitrag: Y-P

Gehe zu: