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 

kontinuierlich erzeugte & geregelte Signale ausgeben



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!

28.05.2010, 10:44
Beitrag #1

SchissOr Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Dec 2007

8.5.1
2007
de

0
Deutschland
kontinuierlich erzeugte & geregelte Signale ausgeben
Hallo Experten,

ich möchte ein Spannungssignal (-10V...+10V) mit einer bestimmten Frequenz, Amplitude und Form (Sinus, Sägezahn,...) erzeugen und ausgeben lassen. Die Frequenz soll dabei veränderlich sein und die anfänglich eingestellte Amplitude soll durch das Programm geregelt werden können (ein Beschleunigungsaufnehmer auf dem Prüfstand misst dann die tatsächlich vorhandene Schwingung).
Mein Problem besteht darin, dass die Karte (AT-MIO-16E-10) bei DAQmx nicht mehr erkannt wird (ist noch eine ISA-Karte) und somit bin ich auf die DAQ-Traditionell-VIs angewiesen.
Dabei gibt es die Möglichkeit, dass erzeugte (zB Sinus-) Signal direkt über "A0-Signalverlauf erzeugen" (*) auf die Karte auszugeben. Leider schreibt das Programm dabei 1000 Samples in den Puffer der Karte, läßt diese diesen auslesen und nach einer Sekunde beschreibt das Programm den Puffer dann erneut... das wäre eigentlich kein Problem, wenn es nicht zwischen Puffer auslesen und Puffer neu beschreiben eine Latenzzeit von wenigen Millisekunden geben würde! Dabei bleibt der Wert der Schwingung konstant und die Schwingung ist eben "abgehackt". (selbst eine Sampleanzahlerhöhung würde nichts bringen...)
Eine andere Möglichkeit besteht darin den Puffer einmal zu beschreiben und der Karte dann zu sagen, dass sie immer wieder den Puffer auslesen soll. Somit ist der Signalverlauf kontinuierlich, lässt sich aber nicht mehr regeln... ich könnte noch den Puffer wieder neu beschreiben, aber dies wäre ja erst wieder nach einer Sekunde möglich (und wahrscheinlich würde dann auch wieder die Latenz auftreten), was die Regelung bei einer Frequenz von bis zu 4 kHz sinnlos macht.
Ich habe schon über das VI "AO 1-Update schreiben" versucht, jeden Wert selbst über y=sin x zu erzeugen und dann auf die Karte zu übertragen. Dabei war die timed-loop sehr hilfreich, aber die Windowsbegrenzung von min 1ms (1000 Samples/s) ist zB für eine Frequenz von 1 kHz einfach zu wenig (entspricht 1 Wert für einen Schwinungsdurchlauf).
Die timed-loop 100.000 mal pro Sekunde durchlaufen zu lassen scheiterte eben an Windows...O(

Wie geht man an so eine Sache heran? Irgendwie muss es doch möglich sein ein kontinuierliches Spannungssignal zu erzeugen und das regelbar machen zu machen!?


Vielen Dank für eure Ratschläge im Voraus.

MfG Tilo

(*) "AO-Signalverlauf erzeugen" ist ein VI, welches die 5 Unter-VIs "Config","Write","Start","Wait" und "Clear" enthält (ähnlich den DAQmx-Tasks)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
28.05.2010, 15:03
Beitrag #2

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
kontinuierlich erzeugte & geregelte Signale ausgeben
Leider kenne ich mich mit den alten Karten und dem Traditional DAQ nicht aus. Vielleicht ging das damals noch nicht so, wie Du Dir das vorstellst. Wieso kaufst Du nicht 'ne aktuelle Karte? Dann bist Du 'ne Zeit lang gerüstet.

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.06.2010, 09:40
Beitrag #3

SchissOr Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Dec 2007

8.5.1
2007
de

0
Deutschland
kontinuierlich erzeugte & geregelte Signale ausgeben
Hallo,

leider habe ich die Vorgabe "Junge, mach es mit der alten!" 2hands (Karte). Das bisherige Uralt-System auf einem anderen Rechner, welches noch unter DOS läuft, kann die Steuerung und Regelung ja auch schon (allerdings mit mir unbekannten Hardwarekomponenten).
Laut Spezifikation kann die AT-MIO-16E-10 auch 100 kS/s verarbeiten, somit müsste es theoretisch funktionieren...

MfG Tilo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.06.2010, 13:36
Beitrag #4

RMR Offline
Laborkater
**


Beiträge: 238
Registriert seit: Nov 2008

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

76437
Deutschland
kontinuierlich erzeugte & geregelte Signale ausgeben
Hi,

solche alten Regelsysteme kenne ich zu Genüge. Bei uns wurde das RT-Problem ähnlich gelöst. Ein DOS-Rechner mit einem PID-Regler auf Pascal-Basis und ein Rechner auf welchem LV als Vorgabe, Messwerterfassung und Bedienung lief.
Teilweise laufen diese Systeme hier immer noch und das SEHR stabil.

Von der Grundstuktur ist das nichs anderes als die aktuellen cRIOS oder PXI-Systeme. Eine zeitunkritische Schleife bedient ein
RT_System das die Regelaufgaben übernimmt. Wenn du mit 1kHz Refreshrate an die Sache ran willst geht das nur so. Die Regelaufgabe kannst du auf einem FPGA sehr zügig rennen lassen.

Sag deinem "Chef" das das mit den alten Karten nichts wird und das er ein paar kEuro in die Hand nehmen muss. VOm Programmieraufwand ganz abgesehen.

Keep on rockin´, RMR

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

SchissOr Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Dec 2007

8.5.1
2007
de

0
Deutschland
kontinuierlich erzeugte & geregelte Signale ausgeben
Hi,

vielen Dank erst einmal für eure Antworten. Nach einigem hin und her habe ich das etwas versteckt abgelegte "Continuous Generation.vi" im Exampelfinder gefunden... das spielt mit dem Puffer der Karte rum! Ich werde berichten, wenn ich damit Erfolg hatte. ;o)

MfG Tilo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.06.2010, 10:10
Beitrag #6

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
kontinuierlich erzeugte & geregelte Signale ausgeben
' schrieb:Nach einigem hin und her habe ich das etwas versteckt abgelegte "Continuous Generation.vi" im Exampelfinder gefunden... das spielt mit dem Puffer der Karte rum!
Die Bezeichnung des Beispiels sollte außer "Continuous Generation" noch die Worte "Non Regeneration" enthalten. Dann ist es genau das was Du suchst.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.06.2010, 18:43
Beitrag #7

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
kontinuierlich erzeugte & geregelte Signale ausgeben
das ist auch mit Traditional DAQ kein Problem.

Im Prinzip erstellst du wie bei DAQmx auch zunächst mal eine gepufferte kontinuierliche Ausgabe. Damit das am Anfang einfacher wird gibst du halt erst mal nur konstant 1 Volt aus einem Array aus.

Wenn das klappt programmierst du PARALLEL zur Ausgabe die Erzeugung deines Signals. Der Gedanken-Knoten, den es dabei zu lösen gilt ist, dass du einen Block Daten gerade ausgibst während du den nächsten Block gerade erzeugst, den du sofort im Anschluss in den Ausgabe-Puffer schiebst. Du musst dabei quasi um Blockgröße / Samplerate Sekunden in die Zukunft denkenWink

Das ganze wird ja vermutlich in einer While-Schleife laufen und die "Kunst" dabei ist einfach den Puffer nicht leer laufen zu lassen ... und da macht es keinen Sinn erst den Puffer leer zu schreiben, dann den nächsten Block zu generieren und dann erst in den Puffer zu schreiben ...

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.06.2010, 19:25
Beitrag #8

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
kontinuierlich erzeugte & geregelte Signale ausgeben
Es geht zwar alles genau so wie i2dx sagt und ist auch nicht übermäßig kompliziert, aber trotzdem: Ohne enge Anlehnung an das Originalbeispiel - und es gibt davon genau eines in der Beispielsammlung - stehen die Chancen schlecht, daß es problemlos funktioniert. Für DAQmx heißt das Beispiel: "Cont Gen Voltage Wfm-Int Clk-Non Regeneration.vi". Ein entsprechendes Beispiel gab es auch für Trad. DAQ - nur habe ich das nicht mehr installiert.
So sieht das Beispiel aus - Beschreibung siehe i2dx:
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.06.2010, 10:18
Beitrag #9

SchissOr Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Dec 2007

8.5.1
2007
de

0
Deutschland
kontinuierlich erzeugte & geregelte Signale ausgeben
Hallo Leute,

vielen Dank noch einmal für eure Hilfen. Leider muss ich erstmal weiterhin mit der alten Karte arbeiten, die Aussicht auf eine neue wurde mir aber zumindest einmal schon gestellt. Cool
Ansonsten habe ich das "Continuous Generation.vi" so angepasst, dass es relativ zur Zufriedenheit läuft.
Einzigstes Manko bis jetzt: nur sekundenweise Frequenz/Amplituden-Anpassung. Dies ist aber zur Zeit erstmal nich so schlimm...

laienhafte Lösung siehe Bild Rolleyes

MfG Tilo

   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.08.2010, 11:33
Beitrag #10

SchissOr Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Dec 2007

8.5.1
2007
de

0
Deutschland
kontinuierlich erzeugte & geregelte Signale ausgeben
Hallo,

nach langem hin und her bin ich nun an einem Punkt angekommen, an dem es einfach nicht weiter geht... Huh
Das Programm läuft einigermaßen, aber ab und zu steigt es einfach mit der Fehlermeldung aus, dass der Rechner mit dem Gerätedurchsatz nicht mithalten konnte... keine Ahnung, manchmal kann er es aber trotzdem und stürzt nicht ab?!? Wie kann man das verhindern? (s. Bild)
Ansonsten ist der Rechner auch zu sehr ausgelastet. Wenn ich aber Warte-ms in die Schleifen implementiere, dann haut es mit der Queue nicht mehr hin. Gibt es da Optimierungspotential?
Des Weiteren steigt Labview auch bei einer höheren Abtastfrequenz für die Signalerfassung aus. Leider sind 1000 Scans/s zu wenig für Frequenzen bis 3kHz! Kennt da jemand eine gute Lösung?

"Wenn das klappt programmierst du PARALLEL zur Ausgabe die Erzeugung deines Signals. Der Gedanken-Knoten, den es dabei zu lösen gilt ist, dass du einen Block Daten gerade ausgibst während du den nächsten Block gerade erzeugst, den du sofort im Anschluss in den Ausgabe-Puffer schiebst. Du musst dabei quasi um Blockgröße / Samplerate Sekunden in die Zukunft denken"

=> Danke für die Anregung i2dx, aber ich schätze meine jetzige Lösung ist nicht ganz, was du mir damals sagen wolltest oder?

Gibt es überhaupt eine vernünftige Möglichkeit die Sache ordentlich zu lösen? Eine neue Karte wurde, wie oben schon erwähnt, zwar angeboten, bis diese aber einmal hier vor mir liegt, ist wahrscheinlich längst Weihnachten... Dry

Vielen Dank für eure Hilfe.

Gruß Tilo

Im Anhang: die mal laufende und mal nicht laufende Lösung...


Angehängte Datei(en) Thumbnail(s)
       
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 7.714 12.02.2018 22:08
Letzter Beitrag: t.hipp
  kontinuierlich anpassbare Ausgabe VS_03 1 3.812 09.06.2016 12:58
Letzter Beitrag: VS_03
  Signale abspeichern und ausgeben zugleich! Da Hiasl 4 3.397 28.01.2016 14:56
Letzter Beitrag: BenNie
  Analogausgang kontinuierlich schreiben, während der Moes 7 8.093 18.12.2015 09:09
Letzter Beitrag: Moes
  Analog output kontinuierlich ändern aalemann 16 16.958 06.10.2010 09:47
Letzter Beitrag: Lucki
  PID Regler kontinuierlich betreiben trotz Case-Struktur philipp 8 7.851 31.03.2010 09:22
Letzter Beitrag: IchSelbst

Gehe zu: