So, habe das Problem heute früh lösen können.
1. Klar kann man Argumente mittels M-Befehl übergeben. Das ist kein Problem.
2. #0 ist, wie in meinem vorigen Post bereits geschrieben, nicht leer, sondern hat den Wert 0.
Ich wollte für die Kollegen an der Maschine eine simple Möglichkeit schaffen, um Nullpunkte mittels M-Befehl zu setzen, ohne dass sie mit Tasterlänge oder Aufmaß und sonstigem rechnen müssen.
Das Problem lag einzig und allein darin, dass bei der Übergabe nicht definierte Argumente als "0" gesehen werden. Das wäre dann so, als würde man dort den Nullpunkt setzen.
Ich habe es jetzt wie folgt gelöst...
M400 X Y Z
(die Argumente entsprechen ja #24 #25 und #26 im Makroprogramm)
Wenn ich jetzt eine oder mehrere Achsen nicht neu setzen möchte und nicht angebe, dann erreiche ich das über einen Vergleich mit einem ebenfalls nicht definierten Parameter. In meinem Fall habe ich mir #33 ausgesucht, da ich den eh nie nutze.
Makroprogramm
O9021
IF[#24EQ#33]GOTO... (#33 ist wie gesagt nicht definiert)
...
Damit vergleiche ich ein nicht definiertes Argument mit einem anderen nicht definierten Parameter und die Steuerung behandelt es als nicht definiert und ich kann mittels Sprung die Eingabe (in diesem Fall für X) umgehen.
Man sollte allerdings vorher nicht mit den Argumenten rechnen, dann werden sie wieder durch "0" ersetzt.
Frohes Schaffen
Der Beitrag wurde von gram bearbeitet: 28.03.2017, 07:01 Uhr