' schrieb:Ok,
also im Anhang mein RS232 Open VI.
Es dient ausschließlich dazu, mit den vom Benutzer selektieren Verbindungsdaten ( COM1, COM2,COM3 sowie die Baudrate) einmalig zu Programmstart eine Verbindung aufzubauen.
Danach erfolgen alle Befehle oder Abfragen einfach als direkter VISA Write / Read in jeweils eigenen VI's je Aktion. Diese werden ereignisgesteuert getriggert.
Ich DENKE ich kann den Timeout Wert innerhalb des auf dme Screenshot sichtbaren VI's, angeschlossen an VISa Seriell Port konfigurieren,
für meine Probleme verantwortlich machen.
Die Frage ist nun, welche Art von Wert macht dort Sinn.
auf dem Bild zu sehen ist einerseits die lange verwendete
- Pseudo Formel zur Timeout-Definition,
sowie die aktuell im Test befindliche Version
- eines unendlichen Timeouts
Ich denke nur ein unendlicher timeout in dem Kontext kann auch Nachteile bringen, wenn z.b. der Benutzer eine Schnittstelle selektiert, an der nichts angeschlossen ist
Ich kann mir vorstellen, dass sich das ganze jetzt leicht verwirrt anhört, aber hoffe es ist trotz allem im ansatz nachvollziehbar.
gruss
fidel
Mich würde vielmehr dein QueryVI interessieren. Ich glaube, ich verstehe dein Problem nicht ganz, weil ich meine Programme grundsätzlich ganz anders aufbaue. Mich juckt z.B. der Timeoutwert gar nicht, weil ich ihn ganz einfach und bewusst ignoriere, denn Termination ist bei mir ausgeschaltet und lesen will ich nur soviel wie am Port anliegt.
Timeout ist dazu da, um:
1) wenn du die Schnittstelle liest und sagst, gib mir 100 Zeichen vom Puffer, dort liegen aber nur 25 und kommen kene neuen Zeichen, dann bekommst du wenn dein Timeout abgelaufen ist eine Fehlermeltdung.
2) wenn du Termination Char eingeschaltet hast und dieses Zeichen kommt über die Schnittstelle nicht, dann nach dem Ablauf des Timeouts bekommst du die Fehlermeldung.
3) wenn du auf die Schnittstelle einen riesigen Datensatz (dieser Datensatz ist viel grösser als der Sendepuffer) schreibst und schaffst es nicht während des Timeouts abzuschicken, dann gibt es ebenfalls die Timeout-Fehlermeldung.
Gruss, Eugen
EDIT: IchSelbst war schneller.