Hallo,
ich habe mich im Rahmen einer STudienarbeit in LabVIEW eigearbeitet, ich bin also noch Anfänger.
Zu meinem Problem...
Ich habe ein LV Programm erstellt um ein Messsystem vollautomtisch über den PC zu steuern. Auf dem PC ist LV2011 SP1 installiert. Per GPIB sind ein Keithley 2182A Nanovoltmeter und 2420 SourceMeter sowie ein Lakeshore 330 Temperaturcontroller angeschlossen.
Das 2420 erzeugt Strompulse mit wechselndem Vorzeichen, das 2182A misst jeweils die Spannung. Dazwischen wird die Temperatur ermittelt. (Es soll die Spannungs-Temperatur-Kennlinie von Hochtemperatursupraleitern ermittelt werden.)
Die Messung soll über einen Zeitraum von mehreren Stunden erfolgen. Bei kurzen Tests funktioniert alles einwandfrei. Wenn ich das ganze über einen längeren Zeitraum laufen lasse tritt beim lesen der Spannung sporadisch der LabVIEW Fehler 6 auf. (sporadisch: manchmal kommt der Fehler nach ca. 400 Messungen, mal nach 800-900, es kann aber auch passieren, dass der Fehler 3000 Messungen lang nicht auftritt...)
Meine Frage wäre, wo soll ich anfangen nach Fehlern zu suchen? Ich habe in der Programmierung schon verschiedene Einstellungen probiert, ohne Erfolg. Ich habe im Moment nicht alle Unterlagen hier um den Fehler genauer zu beschreiben. (Folgt bei Bedarf) Aber vll. kann mir so schon jemand ein Tipp geben.
Hallo kasiii,
Fehler 6 = "Allgemeiner I/O-Fehler"...
Erste Tipps:
- Fehlerquelle lokalisieren
- GPIB läuft (eigentlich) sehr stabil, auch über längere Zeiträume (persönliche Erfahrung). Einziges Problem stellten für mich alte Kabel mit Wackelkontakten an den Steckern dar - einfach mal kontrollieren...
Hallo,
danke für die Antwort.
Ich habe heute eine Messung durchgeführt. Totalabsturtz nach ca. 800 Messungen. Der Fehler tritt immer im SubVI auf, das für das auslesen der Spannung verantwortlich ist.
Nach dem Absturtz wurde alles neu gestartet und die Messung erneut begonnen. Nach 2290 generierten Datensätzen wurde die Messung beendet ohne irgendwelche zwischenfälle.
Wenn der Fehler Auftritt wird am 2182A der Fehler -420 und -113 angezeigt. Ich habe mir bei Keithley die Fehlerbeschreibung (
hier und
hier) gelesen, aber ich weis nicht ob das bei mir auch so zutrifft.
Ich werde versuchen neue Kabel zu beschaffen. Vielleicht hilft das ja.
Im Anhang habe ich die Programmierungen (verschiedene Versionen), die aber alle den gleichen Fehler verursachen...
(Das init VI wird beim Programmstart einmal ausgeführt. Danach wird nur noch das messen VI ausgeführt.)
Hallo kasiii,
- was heißt "Totalabsturz"? Bedeutet das etwa BSOD?
- Du weißt schon, dass man hier auch direkt die VIs anhängen kann? Statt irgendwelcher PDFs?
Deine VIs sehen sehr "alt" aus: neben der übermäßigen Nutzung von Sequenzen und Wartezeiten nutzt du durchgängig die "alten" GPIB-Funktionen. Seit LV7 (oder schon 6?) sollte man stattdessen VISA nutzen. Dies wird zwar nicht ursächlich für die Fehlermeldungen sein, kann aber insgesamt nur helfen.
Die Nutzung von Wartezeiten ist insgesamt sehr kritisch zu sehen. Üblicherweise (gerade bei GPIB) sendet man Kommandos ans Gerät und erwartet eine Antwort - die das Gerät innerhalb eines TimeOuts auch liefert. Von daher sind Wartezeiten bei Read-Operationen sinnlos (entweder kommt die Antwort schneller als gewartet wird oder sie kommt später, dann ist die Wartezeit nutzlos) und bei Write-Operationen ebenso: letztendlich bestimmt das Gerät allein, wie schnell es reagiert... (Es gibt nur wenige, insbesondere alte, GPIB-Geräte, die explizit Wartezeiten benötigen. Die K2xxx-Geräte gehören nicht in diese Kategorie.)
Vorschlag:
- Gerätetreiber mit VISA programmieren, dabei auf Wartezeiten verzichten und ordentliches Fehlerhandling einbauen...
Mit totalabsturz meinte ich eher, dass keines der Geräte irgendwie mit dem PC kommunizieren kann bzw. nur noch hieroglyphen ankommen. Die Neuprogrammierung ist natürlich eine möglichkeit die ich auch schon in Erwägung gezogen hatte. Teile der Programmierung waren zu beginn meiner Arbeit schon vorhanden, weshalb ich bei dem GPIB-lesen/schreiben geblieben bin.
Mein Prof. ist etwas unter zeitdruck um die Messungen durchzuführen, er wird von diesem Vorschlag nicht begeistert sein. Ausser ich ändere die Programmierung so das gar nichts mehr funktioniert
Ist es nicht so, dass nach manchen Befehlen eine Wartezeit eingebaut werden muss um korrekte Daten auslesen zu können?
ich habe bisher noch nicht mit VISA gearbeitet.
Ist die VISA Programmierung die ich eben auf die schnelle erstellt habe gleichbedeutend mit der GPIB (2182A_messen_2013-09-09.pdf) Programmierung?
Hallo kasiii,
1. VI in LV2011 anhängen, wenn ich es angucken soll...
2. Profil ergänzen, wenn du jetzt nicht mehr LV2011 verwendest...
Hallo kasii,
die VISA-Programmierung sieht gut aus.
Ich würde nur das VISAOpen und VISAClose an anderer Stelle (und damit nur einmal im Programm) erledigen...
GerdW schrieb:Profil ergänzen, wenn du jetzt nicht mehr LV2011 verwendest...
Mein Fehler, sorry. Die Hochschule verwendet die 2011er Version. Auf meinem priv. Rechner ist 2012 installiert...
Danke für das umwandeln Y-P
GerdW schrieb:Ich würde nur das VISAOpen und VISAClose an anderer Stelle (und damit nur einmal im Programm) erledigen...
Das heist ich kann die beim Programmstart alle Geräte initialisieren, dort befindet sich dann auch das VISA Open. Dann werden die Datensätze in der While-Schleife erzeugt (ca. 3000 Durchläufe). Nach der While-Schleife kommt dann das VISA Close für alle Geräte am GPIB Bus?
Zu dem ursprünglichen Problem, ich muss jetzt Messergebnise produzieren und darf das Programm erstmal nicht auf VISA umstellen
Wenn ich
Code:
VI-EInstellingen -> Kategorie: Ausführung -> Fehlerbehandlung aktiviert
den Haken entferne, läuft das Programm dann einfach weiter wenn der Fehler auftritt?
Ansonsten muss jemand vier STunden vor dem PC sitzen und schnell auf Weiter klicken wenn der Fehler auftritt.