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!
ich habe ein Problem mit meinem Programm, was mich sehr wundert, da das Programm einwandfrei lief und nun - quasi über Nacht und ohne jegliche Veränderung - dies nicht mehr tut.
Es geht darum, einen Piezoverschiebetisch zu bewegen und dann Werte aus einem Lock-In Verstärker auszulesen. Nun bekomme ich bei dem Schritt, bei dem es darum geht, die Werte aus dem Verstärker auszulesen, die Fehlermeldung "Rahmensynchronisations-Fehler (Framing Error)". Nach dem Klicken des "Fortfahren"-Buttons werden dann Nullen dort eingetragen, wo die ausgelesenen (von Null verschiedenen) Werte stehen sollten.
Das alles geschieht über 2 RS232-Schnittstellen. Die Einstellungen der Schnittstellen sind auch jeweils richtig eingestellt:
Verstärker:
Com 1
Baudrate 9600
Parity: Odd
Stop Bits: 1
Flow Control: None
Data Bits: 8
Piezo-Controller:
Com 2
Baudrate 115200
Parity: None
Stop Bits: 1
Flow Control: Hardware(RTS/CTS)
Data Bits: 8
Ich weiß da irgendwie gar nicht weiter, deshalb wäre Hilfe ganz grandios.
ich füge das Gesamt-VI sowie das VI für das Auslesen des Verstärkers an.
Vielen Dank schonmal und schönes, sonniges Wochenende!
Hallo,
ich würde mal folgendes machen.
1.WhileSchleife um dein Programm.
2.Vor der While Schleife deinen ComPort öffnen, nach der Whileschleife wiedr Schliessen.
Du öffnest und schliesst deinen Comport in jedem Read_write_lock_in.vi
3.in deinem einzelnen VISAWrite das unten an deinem Case liegt öffnet LV zwar den Comport automatisch(glaube ich) aber wie und mit welchen einstellungen kann ich dir nicht sagen. Wohmöglich mit den falschen.
Wenn du deinen Comport einmal vor der Hauptschleife Initiallisierst und danach wieder schliesset hast du im gesamten Programm immer die Gleichen einstellungen und eine Zeitersparnis weil das dauernde offnen und schliessen wegfällt.
Grüße
Achimedes
Wer Rechtschreibfehler findet .... darf sie behalten.
Ich spreche eine Moxa RS485 Karte die im System als normaler Com-Port abgebildet wird, mit Visa lesen/schreiben an.
Das Programm lief Wochen lang ohne Probleme durch, aber jetzt bekomme ich plötzlich ohne Änderungen an der Hardware oder Software einen Rahmensynchronisationsfehler oder Paritätsfehler bei Visa Lesen !
Der Fehler tritt in unregelmäßigen Abständen auf, manchmal schon beim ersten mal, manchmal aber auch erst beim 20. mal, und auch mal garnicht !
ich habe echt keine Ahnung woran es liegen kann, die Einstellungen sind im System, MAX und LV identisch ( 4800, 7, even, 1, none) das sind auch auf jeden Fall die richtigen Parameter für die Geräte !
die Initialisierung der Schnittstelle erfolgt vor der Hauptschleife, und das schließen danach. Zwischen lesen und schreiben ist immer 100ms pause
Mit einem Terminal konnte ich den Fehler auch nicht erzeugen
' schrieb:Ich spreche eine Moxa RS485 Karte die im System als normaler Com-Port abgebildet wird, mit Visa lesen/schreiben an.
Die Reihenfolge ist schon mal verdächtig. Normalerweise ist der PC der Master und das Gerät der Slave, also zuerst Kommando senden (schreiben), dann lesen. Näheres, wenn Du das VI postest, die Commandoabfolge näher beschreibst und verrätst, wie das Ende der gelesenen Zeichenfolge erkannt wird.
die Reihenfolge ist natürlich Schreiben und dann Lesen, und er PC ist Master und das Gerät Slave, sorry !
Das ganz VI Posten ist nicht so einfach, da es einige sub vi's dazu braucht, aber ich versuche mal zu beschreiben
Also die Kommandofolge ist: Sende K01 M heißt soviel wie Gerät 01 gib mir Messdaten, darauf hin Antwort nach 100ms vom Gerät: P01 X FFF FFF FFF, also Gerät 01, Zustand, Spannung,Strom und Temp in HEX, Abschluss ist jeweils mit CR LF. Diese Prozedur funktioniert auch noch immer ohne Probleme.
Wenn ich dem Gerät ein Befehl sende, also z.b.
K01 L CR LF (LADE) 100ms Warten
K01 I FFF CR LF (200A) 100ms Warten
K01 U FFF CR LF (16V) 100ms Warten
dann bekomme ich nach Jedem Befehl die Antwort P01 L CR LF zurück, wobei nur die letzte verwendet wird, alle anderen werden verworfen und genau da tritt ab und zu seit neuestem der Fehler auf
hab den Fehler gefunden, im 3. Rahmen ist zwischen lesen und schreiben keine Verzögerung !
Keine Ahnung warum es anfangs lief, aber jetzt gehts auch wider !