Write Befehl mit Komma statt Punkt

Hallo zusammen,
wie kann man mit dem WRITE Befehl R-Parameter ausgeben welche 3 Stellen hinter dem Komma haben und statt dem Punkt ein Komma ausgeben ?
Über jeden Tip und Vorschlag bedanke ich mich sehr.... Viele Grüße Matthias
Mein Versuch:
;
; PUNKT:1
;
G1 X-25 Y0 F2000
G1 Z10 F2000
R51=0.00000 ;Inkrement in X
R52=0.00000 ;Inkrement in Y
R53=-12.0000000 ;Inkrement in Z
R71=0.00000 ;Richtungsvektor in X
R72=0.00000 ;Richtungsvektor in Y
R73=-1.0000000 ;Richtungsvektor in Z
STOPRE
;SPOS=0
G91
G91 G1 G60 MEAS=1 X=R51 Y=R52 Z=R53 F250
STOPRE
G90
R11=$AC_MEA[1]; hat Taster Signal bekommen?
IF R11==0
MSG("KEIN SIGNAL!")
M17
ELSE
STOPRE
ENDIF
G90
G1 X-25 Y0 Z10 F2000
G1 Z50 F2000
; Auswerten der Messpunkte
; Ist-Werte
R901 = TRUNC($AA_MW[X]*1000)/1000
R902 = TRUNC($AA_MW[Y]*1000)/1000
R903 = TRUNC($AA_MW[Z]*1000)/1000
STOPRE
WRITE(_ERROR,"result.TXT",<<R901<<"/"<<R902<<"/"<<R903)
STOPRE
wie kann man mit dem WRITE Befehl R-Parameter ausgeben welche 3 Stellen hinter dem Komma haben und statt dem Punkt ein Komma ausgeben ?
Über jeden Tip und Vorschlag bedanke ich mich sehr.... Viele Grüße Matthias
Mein Versuch:
;
; PUNKT:1
;
G1 X-25 Y0 F2000
G1 Z10 F2000
R51=0.00000 ;Inkrement in X
R52=0.00000 ;Inkrement in Y
R53=-12.0000000 ;Inkrement in Z
R71=0.00000 ;Richtungsvektor in X
R72=0.00000 ;Richtungsvektor in Y
R73=-1.0000000 ;Richtungsvektor in Z
STOPRE
;SPOS=0
G91
G91 G1 G60 MEAS=1 X=R51 Y=R52 Z=R53 F250
STOPRE
G90
R11=$AC_MEA[1]; hat Taster Signal bekommen?
IF R11==0
MSG("KEIN SIGNAL!")
M17
ELSE
STOPRE
ENDIF
G90
G1 X-25 Y0 Z10 F2000
G1 Z50 F2000
; Auswerten der Messpunkte
; Ist-Werte
R901 = TRUNC($AA_MW[X]*1000)/1000
R902 = TRUNC($AA_MW[Y]*1000)/1000
R903 = TRUNC($AA_MW[Z]*1000)/1000
STOPRE
WRITE(_ERROR,"result.TXT",<<R901<<"/"<<R902<<"/"<<R903)
STOPRE

Schau dir im Handbuch "Arbeitsvorbereitung" mal das Kapitel "String formatieren (SPRINT)" an (in meiner Ausgabe ist das Kapitel 2.9.9).
Damit kannst du zumindest die Formatierung auf drei Nachkommastellen erschlagen.
Die Möglichkeit, den Punkt als Dezimaltrenner durch ein Komma zu ersetzen, ist da - falls ich das richtig sehe - nicht vorgesehen. Das müsstest du wohl mit Hilfe der übrigen Stringoperationen (in den Kapiteln 2.9.6 -2.9.8) selber implementieren.
Damit kannst du zumindest die Formatierung auf drei Nachkommastellen erschlagen.
Die Möglichkeit, den Punkt als Dezimaltrenner durch ein Komma zu ersetzen, ist da - falls ich das richtig sehe - nicht vorgesehen. Das müsstest du wohl mit Hilfe der übrigen Stringoperationen (in den Kapiteln 2.9.6 -2.9.8) selber implementieren.

So etwa:
QUELLTEXT
DEF STRING[20] _ZAHL_STRING
DEF INT _PUNKT_INDEX
_ZAHL = 1.23456
_ZAHL_STRING = SPRINT("%.3F", _Zahl) ; Zahl mit 3 Nachkommastellen bilden
_PUNKT_INDEX = INDEX(_ZAHL_STRING, ".") ; Den Index des Dezimalpunkts ermitteln
_ZAHL_STRING[_PUNKT_INDEX] = "," ; Den Dezimalpunkt durch einen Punkt ersetzen
MSG(_ZAHL_STRING)
DEF INT _PUNKT_INDEX
_ZAHL = 1.23456
_ZAHL_STRING = SPRINT("%.3F", _Zahl) ; Zahl mit 3 Nachkommastellen bilden
_PUNKT_INDEX = INDEX(_ZAHL_STRING, ".") ; Den Index des Dezimalpunkts ermitteln
_ZAHL_STRING[_PUNKT_INDEX] = "," ; Den Dezimalpunkt durch einen Punkt ersetzen
MSG(_ZAHL_STRING)


Guten Morgen,
ich möchte mich für die schnellen Antworten herzlich bedanken. Beide haben mir geholfen und mein Wissen erweitert ! Super...
ich möchte mich für die schnellen Antworten herzlich bedanken. Beide haben mir geholfen und mein Wissen erweitert ! Super...

1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: