Hallo Danke allen zusammen für die Hilfestellungen.
Der letzte tip einfach direkt als real zu dekarieren hat funktioniert.
Muste nur noch ein wenig mit dem Offset tricksen da ich da öfter fehler bekommen habe.
Verwende jetzt einfach einen 1 Cread befehle in dennen ich Abfall Variablen einlese.
Hier mein Funktionierendes Programm für die Funktion:
ZitatAlles anzeigenDEF SRV_cread_cwrite_test(XK:out, YK:out, GK:out)
REAL XK, YK, GK
MW_T=#SYNC
MR_T=#ABS
TIMEOUT=40.0 ;Zeit nach dem CRead abgebrochen wird
OFFSET=0 ;Lese Offset (z.B. 5.Byte)
BILDA[1] = 'H05' ;Werte zum Bildmachen
BILDA[2] = 'H12'
BILDA[3] = 'H01'
BILDA[4] = 'HFE'
BILDA[5] = 'H20'
BILDA[6] = 'HD9'
COPEN(:SER_3,HANDLE) ;COM3 Oeffnen
IF HANDLE==0 THEN ;Fehler falls kein COM3 angeschlossen
HALT
ENDIF
WAIT SEC 2.0 ;Wartezeit 2 Sec
CWRITE(HANDLE,SW_T,MW_T,"%1r",BILDA[]) ;Sende Daten an Kamera zum Bildmachen
WAIT FOR $DATA_SER3>0 ;Warte auf Daten
CREAD(HANDLE,SR_T,MR_T,TIMEOUT,OFFSET,"%.8r ",A1[]) ;Abfall Bytes die nicht gebraucht werden
CREAD(HANDLE,SR_T,MR_T,TIMEOUT,OFFSET,"%r ",WERTE[]) ;Lese Koordinaten und Winkel
WAIT SEC 1.0 ;Wartezeit 1 Sec
XK = WERTE[1]
YK = WERTE[2]
GK = WERTE[3] / 1000
CCLOSE(HANDLE,SC_T) ;Schliessen COM3
END