Hi Udo,
na dann fange ich noch einmal an, ich weiß nicht in wie weit du den ganzen Thread gelesen hast, habe da schon einiges zum Thema Referenzschalter geschrieben. Referenzschalter kann ich irgendwo setzen, ich muß nur ihre Position in der Konfiguration der CNC angeben. Endschalter, sollten sich logischer Weise, in der Nähe von den mechanischen Verfahr-Endpunkten befinden.
Also definiere wir erst einmal eine Maschine, damit wir von dem gleichen reden.
Hier ist auf Grund von nur einem Limit-Eingang je Achse und ein E-Stop (Notaus) die Rede.
Nun kann man sich überlegen, wie man seine Endschalter/Referenzschalter einsetzt.
Koordinaten/Verfahrwege:
X= 0 bis 300
Y= 0 bis 200
Z= 30 bis -30
Achse X:
Am Nullpunkt den Referenzschalter, der am Limit-X Eingang der Steuerung angeschlossen wird.
Endschalter-X (300) in Reihe als Öffner in den Notaus-Schaltkreis mit den anderen Endschaltern für Y und vielleicht auch Z (nur um den mechanischen Verfahrweg ein zu schränken, da aber das Werkzeug unterschiedlich lang ist, kann dies nicht das Tool schützen, sonst kann man nicht ins Material fahren.)
Achse Y:
Am Nullpunkt den Referenzschalter, der am Limit-Y Eingang der Steuerung angeschlossen wird.
Endschalter-Y (200) wieder am Ende Verfahrweg, in Reihe im Notaus-Schaltkreis.
Achse Z:
Am oberen Endpunkt der Z-Achse (30), den Referenzschalter-Z, der am Limit-Z angeschlossen wird.
Linuxcnc als Software.
Hier jetzt nach Pin-Belegung die Refernzschaltertypen zuweisen.
Z.B. Pin11=X, Pin12=Y, Pin13=Z
Limit X: Referenz-/Endschalter
Limit Y: Refernez-/Endschalter
Limit Z: Referenz-/Endschalter
Die Endschalter (X=300,Y=200) die an den max. Limits montiert und die in Reihe im Notauskreis geschaltet sind, brauchen in der Software nicht definiert werden, sie sind schon duch den Einbau in den Schaltkreis, als E-Stop definiert.
Dies ist eine Möglichkeit, man könnte aber auch noch weitere Endschalter im Notauskreis von den einzelnen Achsen wie folgt setzen: X=-2, Y=-2 und Z=-2.
Macht aber eigentlich keinen Sinn, da beim Referenzfahren, die Endschalter als Ref.-Schalter angesehen werden und somit erst einmal die Refernzkoordinate der Maschine laut Achsen-Konfiguration anfährt und dann, duch die Fadenkreuz Markierung sichtbar, als definiert setzt.
Jetzt zur Frage was passiert:
Eine CNC ist durch Refernzschalter, Referenziert und kennt nun Ihre Position.
Hier: X=0, Y=0, Z=30
Ist jetzt in Linuxcnc eine Homelocation definiert, fährt sie an diese Position. Da meist überall 0 drin steht, also nach X0, Y0 & Z0.
Fall 1
Was passiert aber wenn die Maschine während des Fräsens auf einen Referenzschalter Auffährt ??
Bei der oben konfigurierten CNC, würde, wenn der gCode G1 X0 Y0 lauten würde, während des Fräsens, auf diese Position fahren und den Ref.-/Endschalter X/Y auslösen. Da dieser gemischt definiert ist und nun als Endschalter fungiert, wird E-Stop ausgeführt und die CNC stoppt.
Fall 2
... Oder Sagt die Maschine/Software vorher: "Nö, Fräs ich nicht. Der Tisch ist zu Klein" ?
Hier gilt wie oben, wenn sie auf Null fährt, löst E-Stop aus. Die Meldung Limit exceed (Tisch ist zu klein), wird nur angeben, wenn der gCode die Softlimits überschreitet (mechanischen Verfahrgrenzen) und erst garnicht anfahren, z.B G0 X-0.00001.
Dies ist aber nicht mit den angetasteten Nullpunkten am Werkstück zu verwechseln. Da findet eine Verschiebung (Offset) der Nullpunkte, für den Fräsvorgang genutzten Code statt.
G0 G53 verfährt immer in den mechanischen Koordinaten, die durch die Referenzierung am Anfang definiert wurden. Sonst verfährt man in den Offset-Koordinaten (verschoben).
Die Problematik die sich daraus ergeben, wenn man die Endschalter in den Notaus-Kreis einbringt, sind hier ja schon angesprochen worden. Hier muß dann jeder für sich entscheiden, wie er das umgeht/resetet.
Dies gilt analog auch für Mach3. Aber dies habe ich hier schon alles beschrieben.
Grüße Jörg