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 

AI-AO



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!

24.01.2008, 16:56
Beitrag #1

Aston Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 63
Registriert seit: Oct 2007

8.00/8.2/8.5
2007
kA

76437
Deutschland
AI-AO
Hallo zusammen,

ich habe bisher ein VI geschrieben das ganz gut zur Datenerfassung funktioniert. Nun möchte ich auch 2 Analogsignale ausgeben. Diese brauche ich um 2 Hydraulikzylinder anzusteuern, d.h.
mit Sinus, Rechteck usw.

Da ich von den 2 Zylindern Weg und Kraft wieder erfasse habe ich mir die LV-Beispiele zur Synchronisation wie Multi-Function-Synch AI-AO.vi als Vorlage genommen.
Da meine Kenntnisse noch begrenzt sind, kann ich aber nicht abwägen welche Beispiele die richtigen
für meine Anforderungen sind. Könnte mir da jemand weiterhelfen? Bin ich bei der Synchronisation im richtigen Teilgebiet oder auf dem Holzweg?

Meine Anforderungen zur AO sind:

-Frequenz und Amplitude sollten während der Messung veränderbar sein
-Amlitude <2V und Frequenz<2,5 Hz

Ich habe schon bißchen was zusammenprogrammiert, wobei einige Fehler und Probleme aufgetaucht sind:

Was soll ich für den AO erstellen? Ich kann ja nicht mit 2 Tasks auf die Karte zugreifen, meines Wissens. Globale virtuelle Kanäle stattdessen?

Warum kann ich in meinem VI den Funktionsgenerator nicht mit der DAQmx Read verbinden, so wie im Beispiel?

Danke schonmal für Antworten.

Gruß Martin

LV 8.2


Angehängte Datei(en)
Sonstige .vi  Aktuell2.vi (Größe: 99,6 KB / Downloads: 336)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
25.01.2008, 09:20 (Dieser Beitrag wurde zuletzt bearbeitet: 25.01.2008 09:25 von Lucki.)
Beitrag #2

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
AI-AO
' schrieb:Was soll ich für den AO erstellen? Ich kann ja nicht mit 2 Tasks auf die Karte zugreifen, meines Wissens.
Warum kann ich in meinem VI den Funktionsgenerator nicht mit der DAQmx Read verbinden, so wie im Beispiel?
Was Dein Problem betrifft, so hast Du recht, oder vorsichtiger gesagt: das ist auch mein Erfahrungsstand. Man kann zwar zwei AO Tasks haben, aber nur wenn mindestens eine Einzelwert-Ausgabe dabei ist. Aber eine Task kann natürlich mehrere physikalisch Kanäle enthalten, so wie Du es ja auch gemacht hast.
Und natürlich muß man dann in DAQmx Write (Read ist Schreibfehler) bei zwei physikalischen Kanälen auch zwei Waveforms eingeben:
   

Bei veränderlicher Frequenz/Amplitude gibt es zwei Möglichkeiten:
1) Bei jeder Änderung die Datenerfassung beenden und neu konfigurieren
2) Für Fortgeschrittene: Bei DAQmx write immer die aktuellen Daten nachschieben (Streaming).
Beispiel siehe:
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.01.2008, 11:05
Beitrag #3

Aston Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 63
Registriert seit: Oct 2007

8.00/8.2/8.5
2007
kA

76437
Deutschland
AI-AO
Hallo Lucki,

vielen Dank für deine Antworten.
Ich habe noch einige Fragen zum Verständnis:
Ich habe bei meinem- DAQmx-Kanal erzeugen- zwar die physikalischen Kanäle angegeben aber keinen Task. Auf was greift das Programm jetzt zu? Ich habe im MAX nämlich globale virtuelle Kanäle und einen Task konfiguriert.

Dann habe ich aus dem Beispiel-Vi die Fkt. Get Terminal Name With Device Prefix.vi einfach mal
mitübernommen, dessen Sinn mir aber auch mit Kontexthilfe nicht erschließlich ist. Brauche ich so
etwas überhaupt?

Da ich Einstellungen während der Datenerfassung vornehmen möchte, ist dein Vorschlag 2 das Richtige. Allerdings habe ich in einer Diskussion von Achim und Abrissbirne gelesen, dass das Beispiel bei niederen Frequenzen (1 Hz) wie bei mir, nicht richtig funktioniert.
Mein Oszi zeigt auch nur kurzzeitig einen Sinus an, wenn ich an der Level-Fkt. rumspiele.
Ich werds aber trotzdem mal versuchen.
Warum ich mit meinem Aktuellen Programm trotz eingebauter Schleife nicht die Frequenz und Amplitude verändern kann, verstehe ich auch nicht.
Na ja.

Gruß Martin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.01.2008, 12:17 (Dieser Beitrag wurde zuletzt bearbeitet: 25.01.2008 12:31 von Lucki.)
Beitrag #4

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
AI-AO
Ich kann mich nicht so gründlich mit Deinen Frage beschäftigen, wie das eigentlich notwendig wäre. Entschuldige also die fragmentarische Antworten

Zitat:Ich habe bei meinem- DAQmx-Kanal erzeugen- zwar die physikalischen Kanäle angegeben aber keinen Task. Auf was greift das Programm jetzt zu? Ich habe im MAX nämlich globale virtuelle Kanäle und einen Task konfiguriert.
Wenn Du das "Daqmx create virtual Kanal" verwendest, wird immer ein Task konfiguriert. Es ist der Ausgang rechts oben. Man kann einen Task entweder im M&E-Explorer konfigurieren (In Deinem Fall heißt der Task hier "Alles erfassen"), oder direkt mit diesem VI. Man macht normalerweise entweder das Eine oder das Andere. Wie dieser MIX, den Du hier machts, funktioniert, und wenn ja, was dann die Priorität hat (also z.B ob die hier im VI erstellten physikalischen Kanäle oder die physikalischen Kanäle, Du im M&A-Explorer unter der virtuellen Task "Alles erfassen" erstellt hast), das weiß ich nicht, damit mußt Du selbst klar kommen. Ich würde so einen Mix nicht machen und habe deshalb keine Lust das zu erforschen.

Zitat:Warum ich mit meinem Aktuellen Programm trotz eingebauter Schleife nicht die Frequenz und Amplitude Also verändern kann, verstehe ich auch nicht.

Welche Schleife meinst Du denn? Die kleine Schleife wird nur ein Mal - und dann nie wieder - durchlaufen und ist überflüssig wie ein Kropf.
Und in der Großen Schleife gibt es kein DAQmx Write, welches die Ausgangsdaten aktualisieren könnte.


Zitat:Da ich Einstellungen während der Datenerfassung vornehmen möchte, ist dein Vorschlag 2 das Richtige. Allerdings habe ich in einer Diskussion von Achim und Abrissbirne gelesen, dass das Beispiel bei niederen Frequenzen (1 Hz) wie bei mir, nicht richtig funktioniert.
Mein Oszi zeigt auch nur kurzzeitig einen Sinus an, wenn ich an der Level-Fkt. rumspiele.
Ich werds aber trotzdem mal versuchen.
Das weiß ich nicht, aber das kann schon so sein. Wenn Du aber tatsächlich nur so niedrige Frequenzen verwendest, dann wird ja alles um eine Zehnerpotenz einfacher. Dann machst Du in die Erfassungsschleife einfach einen Metronom rein mit z.B. 1 sec (1Hz) und gibst Einzelwerte aus und ein.

Zitat:Dann habe ich aus dem Beispiel-Vi die Fkt. Get Terminal Name With Device Prefix.vi einfach mal
mitübernommen, dessen Sinn mir aber auch mit Kontexthilfe nicht erschließlich ist. Brauche ich so
etwas überhaupt?
Dies Ding macht aus "ai/StartTrigger" "/Dev1/ai/StartTrigger", oder, wenn Du Dev2 hast, eben "/Dev2/ai/StartTrigger". Du kannst das Trigger-VI ebenso mit einer Konstanten beschalten. Der Nachteil ist dann lediglich, wenn Du mal statt DEV1 DEV2 verwendest, daß Du dann auch diese Konstante ändern mußt.
Also Sinn macht das Ding nur, wenn die Karten-Nr keine Konstante ist (DEV1), sondern ein Control auf dem FP.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.01.2008, 12:17
Beitrag #5

Aston Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 63
Registriert seit: Oct 2007

8.00/8.2/8.5
2007
kA

76437
Deutschland
AI-AO
Hallo,

ich muss doch nochmal zu dem Thema Tasks nachfragen.
Ich sehe eigentlich keinen Möglichkeit meinen erwähnten Mix zu umgehen. Mit dem VI Create Virtual Channel erzeuge ich zwar einen Task, der aber nicht im MAX auftaucht. Daher habe ich im
MAX den Task "Alles erfassen" erstellt, den ich an das VI zusätzlich angeschlossen habe damit ich auf Skalierungen zurückgreifen kann.
Bei meinem AI klappt dieser Mix beim AO bekommen ich Probleme. Ich habe schon alle möglichen
Kombinationen ausprobiert mit Task im VI, im MAX usw.
Deshalb meine Bitte, ob mir jemand sagen könnte wie ich meine Task am besten aufbaue damit meine Skalierungen auch funktionieren.

Ich habe meinen AO nach Vorschlag von Lucki mal als Einzelwertausgabe aufgebaut. Kann das so
funktionieren wenn ich AO und AI in eine Schleife packe? Ich sehe keinen andere Möglichkeit zur Synchronisation, damit meine Erfassung erst nach der Datenerzeugung startet.
Ist die Erfassung im Kontinuierlich-Modus mit der Einzelwertausgabe des AO zu vereinen?

Momentan habe ich ein Task-Fehler der wahrscheinlich mit meinem 1.genannten Problem zu tun hat.

Für Hilfe wäre ich dankbar.
Gruß Martin



LV 8.5


Angehängte Datei(en) Thumbnail(s)
   

Sonstige .vi  Aktuell2.3.vi (Größe: 119,52 KB / Downloads: 227)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.01.2008, 17:26
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
AI-AO
' schrieb:Hallo,

ich muss doch nochmal zu dem Thema Tasks nachfragen.
Ich sehe eigentlich keinen Möglichkeit meinen erwähnten Mix zu umgehen. Mit dem VI Create Virtual Channel erzeuge ich zwar einen Task, der aber nicht im MAX auftaucht. Daher habe ich im
MAX den Task "Alles erfassen" erstellt, den ich an das VI zusätzlich angeschlossen habe damit ich auf Skalierungen zurückgreifen kann.
Den Mix kannst Du immer umgehen:

a) Mit Deinem Virtual Channel "Alles erfassen" kannst Du im M&A-Explorer praktisch alle Parameter, also auch physikalische Kanäle, min/max Value, Kanalnamen, rate usw. festlegen. Du brauchst dann in Deinem VI weder "DAQmx create virtuell Channel" nach "DAQmx Timing" - ausgenommen Du willst im VI noch etwas verändern (z.B die Rate - dann wird DAQmx Timing oder ersatzweise ein Egenschaftsknoten im VI gebraucht). Du könntes also im Extremfall alles was vor der Schleife liegt weglassen und die Task-Konstante "Alles erfassen" direkt an das Start-VI in der Schleife anschließen.

b) Umgekehrt kannst Du den Virtuellen Channel mit allen Parametern vollständig im im VI erzeugen, und selbstverständlich wird dann im M&A keine Kopie hinterlegt. Wenn Du eine Skalierung brauchst, dann würde ich nur die im M&A erzeugen. Das VI "Create virtuell Cannel" hat einen Eingang für den Skalierungsnamen. Die Skalierung ist dann das Einzige, die aus dem M&A kommt.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30.01.2008, 11:32
Beitrag #7

Aston Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 63
Registriert seit: Oct 2007

8.00/8.2/8.5
2007
kA

76437
Deutschland
AI-AO
Danke für deine Antwort, jetzt verstehe ich einiges besser.

Ich habe noch eine Frage zur der Angabe zur Skalierung im Create Virtual Channel VI.
In meinem Task befinden sich 8 Kanäle denen ich 4 Skalierungen zuweisen möchte.
Kann ich diese spezifischen Skalierungen für die Kanäle innerhalb einer Konstanten zuweisen?
Vielleicht mit Doppelpunkten oder so ...., oder brauche ich für jede Zuweisung dann ein komplettes Create Virtual Channel VI?

Viele Grüße Martin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.01.2008, 11:59
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
AI-AO
' schrieb:Ich habe noch eine Frage zur der Angabe zur Skalierung im Create Virtual Channel VI.
In meinem Task befinden sich 8 Kanäle denen ich 4 Skalierungen zuweisen möchte.
Kann ich diese spezifischen Skalierungen für die Kanäle innerhalb einer Konstanten zuweisen?
Vielleicht mit Doppelpunkten oder so ...., oder brauche ich für jede Zuweisung dann ein komplettes Create Virtual Channel VI?
Nein denn wenn das ginge, dann ginge das auch mit der rechten Maustaste, so wie das bei der Konstante für die physikalischen Kanäle funktioniert ("Durchsuchen", in der Anzeige Shift oder Steuerungstaste verwenden, um mehrere Kanäle zu selektieren).
Was aber geht: Zur Erstellung von einem Task mit mehreren physikalischen Kanälen "DAQmx create virtuell Channel" mehrere Male hintereinander verwenden. Und damit erreichst Du auch was Du willst

   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.02.2008, 15:49
Beitrag #9

Aston Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 63
Registriert seit: Oct 2007

8.00/8.2/8.5
2007
kA

76437
Deutschland
AI-AO
Hallo,

ich bin gerade unfähig in meinem TDMS-Dateimonitor das "Unbenannt" zu beschriften.
Steht hier eigentlich der Task-Name? Ich konfiguriere meinen gesamten Task im VI, also ohne
MAX und kann deshalb keinen Namen zuweisen.
Oder muss ich irgendwo anders beschriften?
Danke schonmal für Hilfe

Gruß Martin


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.02.2008, 12:06
Beitrag #10

Aston Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 63
Registriert seit: Oct 2007

8.00/8.2/8.5
2007
kA

76437
Deutschland
AI-AO
Hallo,

ich bräuchte mal wieder euren Rat.
Ich habe um mein VI eine Ereignisstruktur gezogen um mein VI mit einem Stop-button beenden zu können. Leider funktioniert er aber nicht.
Ich habe in der Hilfe was über die Beachtung von booleschen Elementen in Ereignisstrukturen gelesen, was mich aber auch nicht weitergebracht hat.
Könnte jemand über mein VI drüberschauen? Danke.

Gruß Martin

Lv82_img


Angehängte Datei(en)
Sonstige .vi  Aktuell3.0.vi (Größe: 351,12 KB / Downloads: 239)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: