LabVIEWForum.de
Steuerung eines Labornetzgeräts mit EA-UTA 12 - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: Hardware (/Forum-Hardware)
+--- Thema: Steuerung eines Labornetzgeräts mit EA-UTA 12 (/Thread-Steuerung-eines-Labornetzgeraets-mit-EA-UTA-12)

Seiten: 1 2 3


Steuerung eines Labornetzgeräts mit EA-UTA 12 - toxicomanie - 16.09.2015 13:55

Hallo liebes Forum und lieber Gerd,
der Forenschreck ist wieder zurück Tongue

Ich soll diesmal ein Labornetzgerät über die USB-Analog-Schnittstelle EA-UTA 12 steuern, es sollen Spannungsrampen abgelaufen werden können zu Prüfungszwecken, relevant ist an dieser Stelle die ISO-Norm 16750-2. Ich habe heute die Software und Treiber der Schnittstelle installiert und schon ein bisschen rumgestöbert und die Hilfen zu den von EA bereitgestellten Bausteinen gelesen, die da wären:

uta_close.vi
uta_init.vi
uta_list.vi
uta_open&savehandle.vi
uta_rw_with_hex.vi
uta_rw_with_string.vi

Meine konkrete Frage wäre jetzt: Was sind Handles genau? Beschrieben werden sie nur als Nummern, die einem Gerät zugewiesen werden. Können jetzt aber auch mehrere Handles einem Gerät zugewiesen werden? Wie setzt sich eine Handle-Nummer zusammen und was macht man damit?
Weiter wird erklärt, dass der Treiber die Gerätenummern verteilt für den Fall, dass mehrere Schnittstellen angeschlossen sind. Nach welchem Prinzip werden die Nummern verteilt, ist das Zufall oder besitzen die Geräte bestimmte Prioritäten nach denen die Gerätenummern verteilt werden?

Danke mal wieder für eure Hilfe

Edit:
Bei dem VI uta_list.vi verstehe ich nicht, wie das VI bei mehreren angeschlossenen Interfaces arbeiten soll. Welche Nummer wird dann ausgegeben? Meine Überlegung: Es kann nur ein Interface zur selben Zeit geöffnet werden (?) und dessen Gerätenummer wird ausgegeben.


RE: Steuerung eines Labornetzgeräts mit EA-UTA 12 - toxicomanie - 18.09.2015 06:50

Guten Morgen,

mittlerweile habe ich das Interface mal angeschlossen und mich mit den Bausteinen beschäftigt. Leider habe ich noch Probleme beim Herstellen der Verbindung des Netzgeräts mit dem PC, aber das sei mal dahingestellt.

Mein Problem ist gerade, dass ich gern von den Beispielen, die da von Elektro-Automatik mitgeliefert werden, einen Teil übernehmen würde, nur zum Testen erst mal.
Mache ich das Ganze jetzt wie bei Bild 2, dann wird mir die IDN beispielsweise nur ein einziges Mal, ganz zu Beginn des Programms aktualisiert - klar, ist ja durch die flache Sequenz so. Aber ich hätte gern, dass sich das laufend aktualisiert, deswegen habe ich das Ganze Gedöns in die while-Schleife gezogen (Bild 1). Leider hängt sich auf die Art und Weise das Programm auf nachdem ich ungefähr 20 mal die Meldung bekommen habe dass er kein angeschlossenes Interface finden kann (das Netzgerät ist aber angeschlossen, im Geräte-Manager ist die Schnittstelle aufgelistet, und am Netzgerät leuchtet die LED für External). Wo liegt der Denkfehler? Mache ich das Ganze wie bei Bild 3, funktioniert gleich gar nichts mehr, die Meldung lässt sich nicht mal durch aus- und wiedereinstecken des Geräts wegkriegen -.- Kann mir jemand helfen?

Grüße,
Franzie


RE: Steuerung eines Labornetzgeräts mit EA-UTA 12 - GerdW - 18.09.2015 07:13

Hallo Franziska,

zum Bild2:
- Niemand findet es lustig, ungebremst mit Anfrage bombardiert zu werden. Du dagegen lässt deine WHILE-Schleife(n) ohne jedes (erkennbare) Timing die CPU zum Glühen bringen…
- In der zweiten WHILE-Loop führst du zwei Schreib-/Lesezugriffe durch. Leider erfolgen diese ohne irgendeinen DATAFLOW vollkommen ungeordnet. Ich kenne dein Gerät nicht, aber auch solch eine Vorgehensweise kann ein Gerät verwirren! THINK DATAFLOW!

Zitat:nachdem ich ungefähr 20 mal die Meldung bekommen habe dass er kein angeschlossenes Interface finden kann … Wo liegt der Denkfehler?
Ein Fehler ist es, trotz Fehlermeldung weiterhin das Gerät mit dann wahrscheinlich sinnlosen Anfragen zu belästigen.
Wenn ein Fehler auftritt, dann sollte man darauf reagieren und den Fehler "behandeln": Behandeln heißt aber ganz selten, stupide einfach die Anfrage erneut zu stellen…


RE: Steuerung eines Labornetzgeräts mit EA-UTA 12 - toxicomanie - 18.09.2015 09:45

Okay, danke.
Für die Bausteine gibt es eine Anleitung, die hab ich mal als Word-Dokument angehängt. Und hier der Link zu der Download-Seite von Elektro-Automatik falls sich jemand interessiert:
http://www.elektroautomatik.de/de/labview.html



EDIT:
So wie das Beispiel (Anhang Snapshot) gemacht ist funktionierts, aber wenn ich das Read-Write mit Strings dazunehme (ich würde gerne den IDString ändern), hängt sich das Ganze wieder auf :/ Darf man die Read-Writes in Hex und String nicht mischen? o.O


RE: Steuerung eines Labornetzgeräts mit EA-UTA 12 - toxicomanie - 23.09.2015 08:27

Hallo zusammen!

Ich habe das Frontpanel jetzt mal provisorisch so gestaltet, wie es später aussehen sollte. Es soll eine vom Benutzer definierte Spannung als Rampe hochgelaufen werden, die Schrittweite soll in Millivolt ebenfalls festgelegt werden können, genauso die Zeitspanne, innerhalb der der Maximalwert erreicht wird. Anschließend soll das Ganze rückwärts laufen. Gestartet wird die Messung mit dem Betätigen des OK-Buttons, danach öffnet sich ein Fenster in dem der Speicherort für die Handles abgefragt wird und schon gehts los Smile
Ich bin immer noch relativ unerfahren in LabVIEW, aber ich denke, mit einer flachen Sequenz sollte das zumindest von der Folge her gut zu realisieren sein? Mein Problem ist jetzt, dass ich gerne das uta_list.vi ständig aktualisiert haben möchte und ich weiß nicht, wo ich es dazu platzieren muss. Wenn ich es in der flachen Sequenz lasse, dann wird die Device table nicht ein einziges Mal aktualisiert, es erscheinen einfach keine Werte? Könnte der Fehler auch an der Hardware liegen?

Grüße, Franzie

Das Programm ist wie immer im Anhang, vielen Dank schon mal für eure Hilfe!


RE: Steuerung eines Labornetzgeräts mit EA-UTA 12 - GerdW - 23.09.2015 09:13

Hallo Forenschreck,

Zitat:aber ich denke, mit einer flachen Sequenz sollte das zumindest von der Folge her gut zu realisieren sein?
Eine Sequenz ist so gut wie immer die schlechtest mögliche Art, einen Ablauf zu programmieren. Eine Statemachine dagegen ist kaum komplizierter, dafür aber unendlich flexibler!

Zitat:dass ich gerne das uta_list.vi ständig aktualisiert haben möchte und ich weiß nicht, wo ich es dazu platzieren muss.
Wenn es unabhängig vom restlichen Programmablauf "ständig" arbeiten soll: in einer parallelen Schleife!
(THINK DATAFLOW!)

Zitat:Wenn ich es in der flachen Sequenz lasse, dann wird die Device table nicht ein einziges Mal aktualisiert, es erscheinen einfach keine Werte?
- Das UTA-List wird im dritten Frame aufgerufen. "THINK DATAFLOW!" sollte das bestätigen…
- Wenn nach dem Aufruf im dritten Frame keine Werte "erscheinen", sollte etwas debuggen helfen! Irgendein Wert muss erscheinen: THINK DATAFLOW!


RE: Steuerung eines Labornetzgeräts mit EA-UTA 12 - toxicomanie - 23.09.2015 09:23

Danke für die schnelle Antwort Smile

Auf die Idee mit der parallelen Schleife bin ich doch auch gekommen Wall

Hmm mir macht das Labornetzgerät etwas Probleme, mal leuchtet das Lämpchen "External" und mal nicht, ich weiß nicht ob das an meinen Aufrufen liegen könnte? Ich arbeite viel mit den Beispielen die von Elektro-Automatik bereitgestellt werden, aber sogar die haben ziemlich viele Fehler drin (unverbundene Leitungen etc., die Beispiele sind zum Teil nicht mal ausführbar und durch die Bank mit flachen Sequenzen programmiert).

Danke für den Tipp mit der State Machine, werd ich mir mal anschauen.


RE: Steuerung eines Labornetzgeräts mit EA-UTA 12 - GerdW - 23.09.2015 09:29

Hallo toxico,

Zitat:Auf die Idee mit der parallelen Schleife bin ich doch auch gekommen
Darf das UTA-List ständig (und ungebremst!) aufgerufen werden? (Das hatten wir doch schon letzte Woche besprochen!)
Evtl. musst du auch dort eine Statemachine drum herum packen: erst das Interface initialisieren, dann Geräte abfragen, eine Pause zwischen den Abfragen wäre auch nicht schlecht, Interface deinitialisieren…

Zitat:Ich arbeite viel mit den Beispielen die von Elektro-Automatik bereitgestellt werden
Wenn du dafür Geld ausgeben musstest, würde ich dir empfehlen, Mängelbehebung durchführen zu lassen (oder das Geld zurückfordern)…


RE: Steuerung eines Labornetzgeräts mit EA-UTA 12 - toxicomanie - 23.09.2015 09:59

Darf das UTA-List ständig (und ungebremst!) aufgerufen werden?

--> Darf es das nicht? Ich verstehe nur nicht, wo das Problem da liegen sollte, es ist eine ganz normale Schleife, die etwas abfragt und falls nötig eine Fehlermeldung ausgibt^^ Auch das habe ich von den Beispielen übernommen (scheint mir mittlerweile so keine gute Idee zu sein Tongue )


RE: Steuerung eines Labornetzgeräts mit EA-UTA 12 - toxicomanie - 24.09.2015 14:54

Hallo "Knight of NI" und liebes Forum Smile

Das mit der State Machine ist Gold wert, danke nochmals!
Ich hab mich jetzt an ein paar Sachen versucht und hänge gerade beim Case "User State 1" fest. Mit dem Hex-Befehl EF lege ich zunächst die ID-Nummer für das Gerät fest, anschließend möchte ich im selben User State mit dem Read-Write-UTA die hochlaufende Spannungsrampe erstellen und zwar indem ich mit der for-Schleife N-mal den Wert der "Schrittweite" auf die minimale Spannung aufaddiere; der Befehl 1F steht für SetVoltage. Für das Read-Write.vi brauche ich aber leider auch die Parameter in Hexadezimal^^ Ich habe dazu schon Lösungsvorschläge im Forum gefunden,aber ich drehe mich gerade im Kreis. Was noch dazu etwas irritierend ist, ist dass Out-Buffer generell keine Werte anzeigt, dabei sollte da ein 18 Felder großes Array auftauchen das mit 0 initialisiert ist und das 0. Element sollte die IDN sein. Ich hoffe mal wieder, mir kann jemand weiterhelfen Wall

Liebe Grüße,

Franzie