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!
14.01.2014, 15:48 (Dieser Beitrag wurde zuletzt bearbeitet: 14.01.2014 15:50 von samuel.)
ich habe gerade ein Problem das ich nicht verstehe. Ich sende einen Befehl an einen Kistler Ladungsverstärker Type 5015. Der ist mittels eines RS232 to USB Adapter am PC eingesteckt.
Ich sende den Befehl zum starten der Messung an den Verstärker. Ist der Befehl angekommen leuchtet eine LED am Verstärker.
Das Problem ist das diese LED nur angeht wenn ich den Programmcode mittels Highlight Funktion ausführe. Ich habe wirklich keine Ahnung.... Unter habe ich den betreffenden Programmcode mal isoliert als Screenshot angehängt.
Vielen Dank für eure Hilfe
Gruß Samuel
Anzeige
14.01.2014, 15:52 (Dieser Beitrag wurde zuletzt bearbeitet: 14.01.2014 15:53 von GerdW.)
wenn du feststellst, dass zwischen VISAOpen und VISAWrite eine kleine Wartezeit liegen muss, solltest du diese auch programmieren! Pack doch einfach mal eine Wartezeit von ca. 250ms zwischen diese beiden Befehle...
- Wenn du verschiedene COM-Ports hier öffnest, solltest du auch beide Referenzen aus der FOR-Loop heraus geben und nicht nur die zweite...
- Erstell dir doch eine Arraykonstante mit den VISA-Referenzen vor der Loop und lasse Autoindexing die Arbeit übernehmen (statt "i" abzufragen und eine Case-Struktur zu nutzen)...
- An VISASerialPortInit brauchst du nur die Konstanten anschließen, die nicht dem Standardfall entsprechen...
- AutoCleanUp nutzen...
Die Funktion VisaWrite wartet nicht auf das Senden, sondern überträgt lediglich den Sendestring in den Sendepuffer, was 0,nix dauert. Ich vermute, dass es funktioniert, wenn Du nach visaWrite eine Wartezeit einschiebst. Ganz tödlich wäre es jedenfalls, wenn Du in den 2 Durchläufen der For-Schlefe jedesmal COM5 konfigurierst. Den Verdacht habe ich, dass es so ist. Wozu diese Konfiguration von 2 Schnittstellen überhaupt? Deine Beschreibung sagt dazu nichts. Ohne diese Schleife müsste es meines Erachtesn auch ohne Warten funktionieren. Also zuerst einfach mal N=1 setzen und probieren.
also ich habe jetzt eine Wartezeit von 50ms zwischen VISA öffnen und VISA schreiben eingebaut. Lucki seine Erklärung mit der Wartezeit nach VISA schreiben kommt mir zwar sinnvoller vor, aber so funktioniert es halt^^.
Entgegen deiner Annahme sind sehr wohl zwei COM Ports in der Case-Struktur. Ich hab die zweite nur für Testzwecke deaktiviert.
Sollte es wieder erwarten zukünftig zu Problemen kommen melde ich mich wieder.
Das komische ist, dass der Programmteil eigenständig mit der Wartezeit von 250 ms vor VISA wirte wunderbar und auch immer funktioniert. Nur wenn ich ihn in meinem Messprogramm integriert habe kommt es zu diesen Problemen.
Deswegen denke ich, dass die Wartezeit so reichen sollte und ein anderen Problem in Verbindung mit meinem Messprogramm vorliegt.
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
RE: VISA sendet nur mit Highlight?!
Mach' doch mal überall 3 Sekunden, dann 2,5 Sekunden , dann 2 Skunden,.... und nähere Dich solange an, bis es nicht mehr funktioniert. Dann weißt Du auch, wie lange Du warten musst.
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
15.01.2014, 10:44 (Dieser Beitrag wurde zuletzt bearbeitet: 15.01.2014 10:45 von Lucki.)
(15.01.2014 09:26 )samuel schrieb: Lucki seine Erklärung mit der Wartezeit nach VISA schreiben kommt mir zwar sinnvoller vor, aber so funktioniert es halt^^.
Dazu fällt mir nur ein, was der Philosoph Hegel entgegnete, als ihm vorgeworfen wurde, dass seine Philosophie nicht zur Wirklichkeit passt: "Um so schlimmer für die Wirklichkeit!"
Aber was ist denn, wenn Du die Schleife wegläßt und Dich erst mal nur um die eine Schnittstelle kümmerst. Ich selbst habe auch das VI "Visa öffnen" nie verwendet, meines Erachten ist es überflüssig.
15.01.2014, 10:50 (Dieser Beitrag wurde zuletzt bearbeitet: 15.01.2014 10:54 von GerdW.)
Zitat:Deswegen denke ich, dass die Wartezeit so reichen sollte und ein anderen Problem in Verbindung mit meinem Messprogramm vorliegt.
Zuerst wäre es mal hilfreich, bei einem Upload eines ganzen Verzeichnisses auch das Main-VI entsprechend zu kennzeichnen. So muss man raten ("educated guess") oder alle durchprobieren - sehr lästig...
Hast du mal irgendeinen unserer Vorschläge beachtet?
- Du verwendest immer noch zuviel Code - die ganzen Konstanten am SerialPortInit versperren nur die Sicht.
- Lucki hat etwas sehr wichtiges geschrieben - du aber nicht beachtet/durchdacht. Wenn du direkt nach dem VISAWrite ein VISAClose aufrufst, was passiert dann wohl mit dem zu sendenden Befehl? Das war übrigens in deinem ersten Beitrag noch nicht enthalten! Wenn du VIs änderst, solltest du das auch mitteilen!
Edit:
Du scheinst generell auf unnötigen (aka RubeGoldberg) Code zu stehen...