31.08.2006, 09:18
Hallo,
habe folgendes Problem bei der VISA Kommunikation:
Mit meinem Programm sende ich 19 Byte an den VISA Port, dabei werden Werte von Parametern in einen EC Antrieb geschrieben. Dabei gibt es Parameter, bei denen der Wert Read Only sind und es gibt welche die RD/WR sind.
Versucht man allerdings einen Wert in einen Parameter zu schreiben der Read Only ist, bekommt man ein 34 Byte langes "Fehler"-protokoll zurück. Bei erfolgreichem Beschreiben eines RD/WR Parameters bekommt man ein 30 Byte langes Protokoll zurück.
Das eigentliche Problem ist nur, dass ich beim Auslesen am VISA Port bekannt geben muss wieviele Bytes zu lesen sind, da die Anzahl der zu lesenden Bytes aber wie gesagt unterschiedlich sein kann geht er wenn ich eben die max. Anzahl an Bytes, nämlich 34 auslese, bei erfolgreichem Schreiben (30 Bytes) in den Timeout, da er noch auf die restlichen 4 Byte wartet. Das heißt ich weiß erst nach dem Auslesen ob die Protkolllänge 34 oder 30 Byte ist.
Leider funktioniert die Abschlusszeichenerkennung in meinem Fall nicht, da in meinem Fall das Protkoll aus "Daten + nr + Daten + nr" besteht, sprich er müsste nur jedes zweite nr erkennen, aber ich weiß nicht wie man das umsetzen könnte.
Wer kann mir helfen?
MfG Daniel
habe folgendes Problem bei der VISA Kommunikation:
Mit meinem Programm sende ich 19 Byte an den VISA Port, dabei werden Werte von Parametern in einen EC Antrieb geschrieben. Dabei gibt es Parameter, bei denen der Wert Read Only sind und es gibt welche die RD/WR sind.
Versucht man allerdings einen Wert in einen Parameter zu schreiben der Read Only ist, bekommt man ein 34 Byte langes "Fehler"-protokoll zurück. Bei erfolgreichem Beschreiben eines RD/WR Parameters bekommt man ein 30 Byte langes Protokoll zurück.
Das eigentliche Problem ist nur, dass ich beim Auslesen am VISA Port bekannt geben muss wieviele Bytes zu lesen sind, da die Anzahl der zu lesenden Bytes aber wie gesagt unterschiedlich sein kann geht er wenn ich eben die max. Anzahl an Bytes, nämlich 34 auslese, bei erfolgreichem Schreiben (30 Bytes) in den Timeout, da er noch auf die restlichen 4 Byte wartet. Das heißt ich weiß erst nach dem Auslesen ob die Protkolllänge 34 oder 30 Byte ist.
Leider funktioniert die Abschlusszeichenerkennung in meinem Fall nicht, da in meinem Fall das Protkoll aus "Daten + nr + Daten + nr" besteht, sprich er müsste nur jedes zweite nr erkennen, aber ich weiß nicht wie man das umsetzen könnte.
Wer kann mir helfen?
MfG Daniel