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 

Ansteuerung von drei DACs



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.06.2021, 11:46 (Dieser Beitrag wurde zuletzt bearbeitet: 08.06.2021 11:56 von Rumo.)
Beitrag #1

Rumo Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Jun 2021

2015
-
DE_EN



Ansteuerung von drei DACs
Guten Tag,

ich muss im Rahmen meiner Arbeit als völliger Neuling ein vorhandenes LabView-Programm umschreiben. Das ursprüngliche Programm bestand aus einem großen DAC mit drei Ausgängen und einem Eingang, die intern über Channel angesprochen wurden und jeweils eine Achse einer Magnetsteuerung kontrolliert haben. Mein Aufbau besteht nun aus drei einzelnen DACs, die jeweils einen Ausgang und einen Eingang besitzen. Die Unterscheidung der DACs findet hier über ihren VISA ressource name statt (beziehungsweise deren COM-Port).

Da ich sehr wenig Erfahrung mit LabView habe und unmöglich das gesamte Programm umschreiben kann, habe ich die Hoffnung, dass ich nur die Sub-VIs für die Initialisierung der DACs und die Magnetsteuerung anpassen kann. Allerdings habe ich keine Idee wie ich den Übergang von einem großen DAC mit drei Channels zu drei einzelnen DACs realisieren soll. Insbesondere weil die VIs für mich als Neuling sehr ineinander verschachtelt erscheinen. Ich gehe davon aus, dass ich dem Programm relativ simpel zu verstehen gehen kann, einfach den richtigen COM-Port anzusprechen anstatt eines Channels?

Mit freundlichen Grüßen
Rumo

P.S.: Im Anhang sind die relevanten Sub-VIs für das Initialisieren und Einstellen einer Spannung und ein Test-Programm. Die Sub-VIs sind bei mir nochmals in einer Bibliothek zusammengefasst, falls das weiterhilft.

P.P.S.: Eventuell wäre es einfacher, wenn ich den Ordner teilen würde: https://1drv.ms/u/s!AkCRhhRXjvqHgoMntK1f...Q?e=Z2HfVZ
Kleiner Nachtrag: Falls es für die Fragestellung relevant ist, könnte ich auch den Ordner des Gesamtprogramms freigeben. Das Programm ist ziemlich komplex, daher bin ich mir nicht sicher, ob dies zielführend wäre.


Angehängte Datei(en)
15.0 .vi  MAX5134init.vi (Größe: 16,33 KB / Downloads: 13)

15.0 .vi  MAX5134setvoltage.vi (Größe: 15,56 KB / Downloads: 12)

15.0 .vi  UART_init.vi (Größe: 19,39 KB / Downloads: 13)

15.0 .vi  Interface_DAC_test.vi (Größe: 23,89 KB / Downloads: 12)

15.0 .vi  UART_send_command.vi (Größe: 22,51 KB / Downloads: 12)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
08.06.2021, 11:56 (Dieser Beitrag wurde zuletzt bearbeitet: 08.06.2021 12:02 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 16.988
Registriert seit: May 2009

11SP1, 17SP1 (ab und zu 20)
1995
DE_EN

10×××
Deutschland
RE: Ansteuerung von drei DACs
Hallo Rumo,

herzlich willkommen im LabVIEW-Forum!

Zitat:P.S.: Im Anhang sind die relevanten Sub-VIs für das Initialisieren und Einstellen einer Spannung und ein Test-Programm. Die Sub-VIs sind bei mir nochmals in einer Bibliothek zusammengefasst, falls das weiterhilft.
P.P.S.: Eventuell wäre es einfacher, wenn ich den Ordner teilen würde: https://1drv.ms/u/s!AkCRhhRXjvqHgoMntK1f...Q?e=Z2HfVZ
Externe Links sind immer problematisch, z.T. auch wegen Zugriffsrechten aus Firmennetzwerken heraus… (Dieser Link funktioniert z.B. bei mir hier nicht.)
Beste Lösung: alles in ein ZIP-Archiv packen und dieses hier anhängen!

Zitat:Da ich sehr wenig Erfahrung mit LabView habe und unmöglich das gesamte Programm umschreiben kann, habe ich die Hoffnung, dass ich nur die Sub-VIs für die Initialisierung der DACs und die Magnetsteuerung anpassen kann. Allerdings habe ich keine Idee wie ich den Übergang von einem großen DAC mit drei Channels zu drei einzelnen DACs realisieren soll. Insbesondere weil die VIs für mich als Neuling sehr ineinander verschachtelt erscheinen.
Dann empfehle ich mal einen aufmerksamen Blick in meine Signatur… Big Grin

Deine VIs zeigen sehr deutlich, dass du bzw. dein Vorgänger wenig von LabVIEW wissen. Da sind "ungünstige" bis "absolut fehlerträchtige" Konstrukte enthalten!
Da solltest du dringend etwas dran verbessern!
Beispiel:
   
Vergleiche das mal mit dem Zustand dieses VIs vor meinen Anpassungen!

Zitat:Ich gehe davon aus, dass ich dem Programm relativ simpel zu verstehen gehen kann, einfach den richtigen COM-Port anzusprechen anstatt eines Channels?
Die Antwort lautet: Ja!
Muss man halt etwas programmieren… Wink

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.06.2021, 12:03 (Dieser Beitrag wurde zuletzt bearbeitet: 08.06.2021 12:17 von Rumo.)
Beitrag #3

Rumo Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Jun 2021

2015
-
DE_EN



RE: Ansteuerung von drei DACs
Vielen Dank für den Hinweis, habe die Ansteuerung der DACs und das Gesamtprogramm mal für euch archiviert. Das Gesamtprogramm startet über 3DCryostat_V0d. Ich hoffe man kann das Program einsehen, da ich es auf Grund der Größe in drei Archive splitten musste.
(08.06.2021 11:56 )GerdW schrieb:  Deine VIs zeigen sehr deutlich, dass du bzw. dein Vorgänger wenig von LabVIEW wissen. Da sind "ungünstige" bis "absolut fehlerträchtige" Konstrukte enthalten!
Da solltest du dringend etwas dran verbessern!

Die VIs sind von meinem Vorgänger. Meinem Chef zu Folge kann ich in dem Programm über das Anpassen eines Sub-VIs alles ganz schnell und leicht ändern. Nachdem ich mir einige Tutorials angesehen und mich belesen haben, empfinde ich mein vorliegendes Programm allerdings als extrem verwirrend. Insbesondere habe ich das Gefühl, dass alles ineinander verschachtelt ist und ich durch die Änderung eines VIs alle nachfolgenden VIs ebenfalls verändere.

Dein gezeigtes Beispiel empfinde ich als deutlich besser zu verstehen. Mein Problem ist allerdings: Die lokalen Variablen "Channel" und "Coil X/Y/Z" tauchen überall im Programm völlig verstreut auf. Daher würde ich versuchen aus "Channel" einfach "COM-Port 3/4/5" zu machen, allerdings weiß ich nicht wie ich einen Visa ressource name zu einer numerischen Eingabe transformieren kann.


Angehängte Datei(en)
0.0 .zip  Ansteuerung.zip (Größe: 334,74 KB / Downloads: 7)

0.0 .zip  Labview 3D_001.zip (Größe: 9 MB / Downloads: 9)

0.0 .zip  Labview 3D_002.zip (Größe: 9 MB / Downloads: 9)

0.0 .zip  Labview 3D_003.zip (Größe: 1,83 MB / Downloads: 7)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.06.2021, 12:31
Beitrag #4

Rumo Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Jun 2021

2015
-
DE_EN



RE: Ansteuerung von drei DACs
Habe gerade bemerkt, dass mein ZIP-Dateien nicht richtig funktionieren.
Hoffe hiermit geht es:


Angehängte Datei(en)
0.0 .zip  Teil1.zip (Größe: 9,72 MB / Downloads: 11)

0.0 .zip  Teil2.zip (Größe: 6,43 MB / Downloads: 8)

0.0 .zip  Teil3.zip (Größe: 3,67 MB / Downloads: 7)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.06.2021, 12:50
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 16.988
Registriert seit: May 2009

11SP1, 17SP1 (ab und zu 20)
1995
DE_EN

10×××
Deutschland
RE: Ansteuerung von drei DACs
Hallo Rumo,

Zitat:Dein gezeigtes Beispiel empfinde ich als deutlich besser zu verstehen. Mein Problem ist allerdings: Die lokalen Variablen "Channel" und "Coil X/Y/Z" tauchen überall im Programm völlig verstreut auf. Daher würde ich versuchen aus "Channel" einfach "COM-Port 3/4/5" zu machen, allerdings weiß ich nicht wie ich einen Visa ressource name zu einer numerischen Eingabe transformieren kann.
Lokale Variablen einfach durch Draht (und Schieberegister) ersetzen!
Wenn deine "DACs" weiterhin per serieller Schnittstelle verbunden sind, verwendest du bitte auch weiterhin die VISA-Referenzen - und nicht etwas "numerische Inputs"…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.06.2021, 13:45
Beitrag #6

Rumo Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Jun 2021

2015
-
DE_EN



RE: Ansteuerung von drei DACs
(08.06.2021 12:50 )GerdW schrieb:  Lokale Variablen einfach durch Draht (und Schieberegister) ersetzen!
Wenn deine "DACs" weiterhin per serieller Schnittstelle verbunden sind, verwendest du bitte auch weiterhin die VISA-Referenzen - und nicht etwas "numerische Inputs"

Ich bin mir gerade nicht sicher, wie ich von lokalen Variablen auf Schieberegister wechseln soll.

Mein bisheriger Ansatz war der folgende. Zuerst initialisiere (siehe Init.png) alle DACs und lasse mich die dazugehörigen COM-Ports auslesen. Daraufhin steuere ich mit Hilfe des VIs "MAX5134setvoltage" (siehe Setvoltage.png) die DACs an. Dieses VI wird auch vom Hauptprogramm immer wieder aufgerufen, um die Spannung des DACs einzustellen. Da ich jedoch keine Channel als lokale Variable mehr habe, kann das VI "UART_send_command" (siehe UART_send.png) diese auch nicht mehr auslesen.

Daher möchte ich dem Programm vermitteln, dass Channel 0 = COM3 = DAC der X-Achse ist. Äquivalent zu Channel 1 und 2 mit COM4 und COM5. In dem VI "UART_send_command" ist der "Channel" allerdings durch "command" ersetzt worden, der sich aus der Nummre des Channel addiert mit 20 ergibt (weshalb erschließt sich mir hier zum Beispiel nicht?).

Wenn ich jetzt allerdings die lokale Variable "Channel" oder "command" ersetze, dann taucht das Problem auf, dass in meinem Hauptprogramm dutzende Verbindungen kaputt gehen und ich quasi alles händisch und einzeln anpassen muss. Wäre es nicht einfacher, dem Programm einfach zu sagen "Wenn Command=20, dann COM3", "Wenn Command=21, dann COM4", "Wenn Command=22, dann COM5"?


Angehängte Datei(en) Thumbnail(s)
           
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
08.06.2021, 13:52 (Dieser Beitrag wurde zuletzt bearbeitet: 08.06.2021 14:07 von GerdW.)
Beitrag #7

GerdW Offline
______________
LVF-Team

Beiträge: 16.988
Registriert seit: May 2009

11SP1, 17SP1 (ab und zu 20)
1995
DE_EN

10×××
Deutschland
RE: Ansteuerung von drei DACs
Hallo Rumo,

Zitat:Ich bin mir gerade nicht sicher, wie ich von lokalen Variablen auf Schieberegister wechseln soll.
Das sind die oft erwähnten LabVIEW-Basics, die du lernen solltest. Siehe meine Signatur…

So sieht das Ersetzen von lokalen Variablen durch Draht und Schieberegister aus:
   

Zitat:Daher möchte ich dem Programm vermitteln, dass Channel 0 = COM3 = DAC der X-Achse ist. Äquivalent zu Channel 1 und 2 mit COM4 und COM5. In dem VI "UART_send_command" ist der "Channel" allerdings durch "command" ersetzt worden, der sich aus der Nummre des Channel addiert mit 20 ergibt (weshalb erschließt sich mir hier zum Beispiel nicht?).
Woher dieses "+20" kommt, müsste im Manual zu dem Gerät stehen, welches du über die serielle Schnittstelle ansteuerst!

Zitat:Wenn ich jetzt allerdings die lokale Variable "Channel" oder "command" ersetze, dann taucht das Problem auf, dass in meinem Hauptprogramm dutzende Verbindungen kaputt gehen und ich quasi alles händisch und einzeln anpassen muss. Wäre es nicht einfacher, dem Programm einfach zu sagen "Wenn Command=20, dann COM3", "Wenn Command=21, dann COM4", "Wenn Command=22, dann COM5"?
Wenn das 3 identische Geräte sind, die du da ansteuern willst, dann benötigst du genau ein VI. Dieses VI bekommt als Inputs die VISA-Reference (also COM3/4/5) und den nötigen Parameter (der einzustellende Wert). Dieses VI rufst du dann in deinem MainVI dreimal parallel auf: mit jeweils einem anderen COM-Port als Input…

Und ja, wenn man VIs editiert, kann es zu "broken wires" im HauptVI kommen. Die korrigiert man dann eben auch…

P.S.: Wie schon erwähnt, sollten alle VIs gründlich überarbeitet werden. Dazu gehört z.B. auch, das man die seriellen Ports nicht andauernd öffnet und wieder schließt…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.06.2021, 14:22
Beitrag #8

Rumo Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Jun 2021

2015
-
DE_EN



RE: Ansteuerung von drei DACs
Vielen Dank erstmal für deine Antwort! Leider habe ich nicht die Zeit die ganzen VIs zu überarbeiten und konnte mir gerade einmal die Grundlagen zu LabVIEW ansehen. Das Hauptprogramm soll Ende der Woche laufen, damit ich mit meinen Messungen beginnen soll. Da ich davor noch nicht mit LabVIEW gearbeitet habe, verzweifle ich momentan etwas daran, das Programm überhaupt zu verstehen, da ich es nicht selbst programmiert habe.

Ich werden deinen Ansatz aber mal testen, vielen Dank.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.06.2021, 15:34 (Dieser Beitrag wurde zuletzt bearbeitet: 08.06.2021 15:35 von GerdW.)
Beitrag #9

GerdW Offline
______________
LVF-Team

Beiträge: 16.988
Registriert seit: May 2009

11SP1, 17SP1 (ab und zu 20)
1995
DE_EN

10×××
Deutschland
RE: Ansteuerung von drei DACs
Hallo Rumo,

Zitat:Leider habe ich nicht die Zeit die ganzen VIs zu überarbeiten und konnte mir gerade einmal die Grundlagen zu LabVIEW ansehen. Das Hauptprogramm soll Ende der Woche laufen,

Meinem Chef zu Folge kann ich in dem Programm über das Anpassen eines Sub-VIs alles ganz schnell und leicht ändern.

im Rahmen meiner Arbeit als völliger Neuling ein vorhandenes LabView-Programm umschreiben.
Das ist ja mal wieder die ganz klassische Vorgehensweise: man nehme einen absoluten LabVIEW-Anfänger (nichts gegen dich), gebe ihm ein (schlecht programmiertes) Konvolut und setze ihm dann klare (natürlich viel zu kurze) Fristen…

Vielleicht sollte dein Chef statt dir "ganz schnell und leicht" das Programm anpassen, damit du dann Zeit für die Grundlagenkurse hast!? Sind ja nur 1-2 AT für Core1 und evtl. noch etwas Core2…

Fragezeichen

Ganz ehrlich: dein Chef könnte viel Geld sparen, wenn er dich erstmal 2 AT lang die Einsteigerkurse durchgehen lassen würde. Es sei denn, er rechnet dich als "EDA-Kosten" ab… Big Grin

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.06.2021, 08:41
Beitrag #10

Rumo Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Jun 2021

2015
-
DE_EN



RE: Ansteuerung von drei DACs
Ich möchte mich nochmal für die Rücksprachen mit dir bedanken. Hatte heute ein Gespräch mit meinem Chef und ihm die Problematik mit dem Programm erklärt. Ich soll das Programm jetzt neu aufsetzen und für meine Zwecke anpassen. Habe dafür auch mehr Zeit bekommen. Werde mich heute dann nochmal mit den Grundlagen auseinandersetzen und sehen, welche VIs ich noch verwenden kann.
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
  Drei Queues in einer While-Schleife mit case-Struktur EinVolvic 12 7.755 17.05.2017 20:25
Letzter Beitrag: EinVolvic
  Stop eines VIs aus drei Schleifen Lab_fänger 3 1.933 14.10.2015 06:56
Letzter Beitrag: Lucki
  Mittelwert über drei Messwiederholungen Nele08 2 2.948 31.03.2011 09:45
Letzter Beitrag: Nele08
  Case Struktur Selektor mit drei Möglichkeiten samuel-stinger 1 2.476 09.12.2010 10:08
Letzter Beitrag: chrissyPu
  drei grüne pfeile nach unten gottfried 1 2.766 12.03.2009 10:05
Letzter Beitrag: rolfk
  Schalter mit drei Stellungen Snoop2000 13 9.327 06.05.2007 19:16
Letzter Beitrag: itfriend

Who read this thread?
5 User(s) read this thread:
rolfk, MScz, th13, arts, TpunktN

Gehe zu: