Seite 1 von 2
Zweiter Endschalter mit in den Betrieb aufnehmen
Verfasst: Di 1. Mär 2016, 18:11
von snoopy
Hallo Leute,
ich wollte gerne wissen, wie ich den zweiten Endschalter (bei mir der obere) mit in Betrieb nehmen kann. Mein Problem ist nämlich, wenn der Drucker bzw. bei mir der Fräser gegen den oberen Endschalter fährt er meint das er beim unteren ist und dann noch weiter nach oben fährt. Also wie nehme ich den zweiten Endschalter mit in Betrieb?
Re: Zweiter Endschalter mit in den Betrieb aufnehmen
Verfasst: Sa 12. Mär 2016, 18:13
von snoopy
Weiß wirklich niemand eine Antwort auf meine Frage?
Re: Zweiter Endschalter mit in den Betrieb aufnehmen
Verfasst: Sa 12. Mär 2016, 19:49
von rf1k_mjh11
snoopy,
Ich bin kein Fräser, nur ein reiner Schmelzer. Daher ist meine Antwort mit Vorsicht zu genießen, sie beruht nur auf Wissen aus dem Forum.
Damit der Drucker den zweiten Endschalter erkennt, bzw. erwartet und ihn berücksichtigt, muss in der Firmware darauf hingewiesen werden.
Die Zeile heißt (bei mir zumindest, v 0.91.51):
#define FEATURE_CNC_MODE 0
Dort muss die Null durch eine "2" ersetzt werden, laut der davor stehenden Angabe:
/** Define whether the CNC functionality shall be allowed.
0 = do not support the CNC mode
1 = experimental, do not use this value (support the CNC mode, only the endstop at z-min is present)
2 = support the CNC mode, the endstops at z-min and z-max are in one circle
Dabei steht der Begriff "circle" für (Schalt)"Kreis" (eigentlich sollte es "circuit" heißen, aber was soll's).
Das heißt wiederum, beide Endschalter hängen in einem Schaltkreis, so dass das Betätigen EINES Schalters genügt, um ein Signal zu erhalten.
Mit dieser Aussage komme ich als schwachen Elektroniker schon fast an meine Grenzen. Und meine Angaben sind mit noch mehr Vorsicht zu genießen:
Nachdem die Schalter Schließer sind, würde ich diese parallel betreiben, denn es kommt ein Signal wenn einer der zwei Schalter betätigt wird. (Wären die Schalter Öffner, würde ich sie in Serie verdrahten, denn das "Signal" käme sobald ein Schalter betätigt werden würde.).
Hoffentlich kann einer der Fräser meine Angaben bestätigen.
Steht nichts in der Anleitung für den Fräsumbau?
mjh11
Re: Zweiter Endschalter mit in den Betrieb aufnehmen
Verfasst: Sa 12. Mär 2016, 22:53
von JoBo
Hi ihr beiden,
mjh hat recht. Zunächst die Taster parallel schalten (es gibt auch ein spezielles Kabel dafür).
Dann in der FW
setzen oder, wenn FEATURE_CONFIGURABLE_Z_ENDSTOPS <> 0 gesetzt ist, über das Menü entsprechend wählen.
Achte darauf, dass du den richtigen Wert für die Anzahl der Schienen, die du montiert hast, angegeben hast. Das beeinflusst die Toleranz der Werte, die die Messzellen liefern. Bei 2 Schienen kann es zu Verspannungen kommen und die Toleranz ist höher.
Code: Alles auswählen
#define MILLER_TYPE MILLER_TYPE_ONE_TRACK //Oder: MILLER_TYPE_TWO_TRACKS
Wenn du dir das zutraust snoopy, kannst du auch die Taster getrennt betreiben. Die FW versucht zwar ihr Bestes dein Fehlerbild zu vermeiden, aber ich habe das auch des öfteren gehabt, dass ich in der ein oder anderen Endstellung "gefangen" war. Darauf hin hab ich die Taster auf unterschiedliche Pins gelegt und die FW dahingehend abgeändert, dass diese entsprechend funktioniert.
Gruß
JoBo
Re: Zweiter Endschalter mit in den Betrieb aufnehmen
Verfasst: So 14. Aug 2016, 11:45
von Alois
Hi JoBo,
welchen Eingang hast Du benutzt? und welche Änderungen hast Du in der Firmware vorgenommen?
Reicht es aus
#define ORIG_Z_MAX_PIN in
pins.h zu ändern?
Gruß Alois
Re: Zweiter Endschalter mit in den Betrieb aufnehmen
Verfasst: So 14. Aug 2016, 21:06
von Alois
Hallo,
ich habe den zweiten (unteren) Endschalter an X30 angeschlossen bzw. auf einen separaten Pin gelegt PC2 (PIN35).
Folgende Änderung in pins.h
Suche (Zeile 65):
Ersetze:
Folgende Änderung in RF1000.h
Suche (Zeile 89):
Code: Alles auswählen
#define FEATURE_CONFIGURABLE_Z_ENDSTOPS 1 // 1 = the z-endstop type can be switched between z-min (= single) and z-min + z-max in one circuit (= circuit), 0 = only the z-min endstop is installed
Ersetze:
Code: Alles auswählen
#define FEATURE_CONFIGURABLE_Z_ENDSTOPS 0 // 1 = the z-endstop type can be switched between z-min (= single) and z-min + z-max in one circuit (= circuit), 0 = only the z-min endstop is installed
Suche (Zeile 101-106):
Code: Alles auswählen
#if FEATURE_CONFIGURABLE_Z_ENDSTOPS
/** \brief Define Default z-endstop type */
#define DEFAULT_Z_ENDSTOP_TYPE ENDSTOP_TYPE_SINGLE
#endif // FEATURE_CONFIGURABLE_Z_ENDSTOPS
Ersetze:
Suche (Zeile 640-644):
Code: Alles auswählen
#if FEATURE_CONFIGURABLE_Z_ENDSTOPS // the z-max endstop is optional for the RF1000
#define MAX_HARDWARE_ENDSTOP_Z true
#else
#define MAX_HARDWARE_ENDSTOP_Z false
#endif // FEATURE_CONFIGURABLE_Z_ENDSTOPS
Ersetze:
Suche (Zeile 725-741) :
Code: Alles auswählen
#if FEATURE_CONFIGURABLE_Z_ENDSTOPS
/** \brief We set the current "steps after endstop" to the following offset values in order to avoid to reach a "steps after endstop" value of 0 (e.g. because of the up and down moving z-compensation or because of manual z movements.
This initial value is set to a level which is above the steps which are possible in z-direction during the distance where the z-endstop is constantly pressed. */
#define Z_ENDSTOP_MIN_TO_MAX_INITIAL_STEPS long(ZAXIS_STEPS_PER_MM * 10) // [steps]
#define Z_ENDSTOP_MAX_TO_MIN_INITIAL_STEPS long(-ZAXIS_STEPS_PER_MM * 10) // [steps]
/** \brief There can not be less than the following amount of steps between the hits of the z-min and z-max endstops.
*/
#define MINIMAL_Z_ENDSTOP_MIN_TO_MAX_STEPS long(ZAXIS_STEPS_PER_MM * 100) // [steps]
#define MINIMAL_Z_ENDSTOP_MAX_TO_MIN_STEPS long(-ZAXIS_STEPS_PER_MM * 100) // [steps]
/** \brief Defines how many steps the z-axis is moved down before the z-homing in case it is unknown which of both endstops (z-min or z-max) is active at the moment.
*/
#define UNKNOWN_Z_ENDSTOP_DRIVE_FREE_STEPS long(ZAXIS_STEPS_PER_MM * 5) // [steps]
#endif // FEATURE_CONFIGURABLE_Z_ENDSTOPS
Ersetze:
Code: Alles auswählen
#if FEATURE_MILLING_MODE
/** \brief We set the current "steps after endstop" to the following offset values in order to avoid to reach a "steps after endstop" value of 0 (e.g. because of the up and down moving z-compensation or because of manual z movements.
This initial value is set to a level which is above the steps which are possible in z-direction during the distance where the z-endstop is constantly pressed. */
#define Z_ENDSTOP_MIN_TO_MAX_INITIAL_STEPS long(ZAXIS_STEPS_PER_MM * 10) // [steps]
#define Z_ENDSTOP_MAX_TO_MIN_INITIAL_STEPS long(-ZAXIS_STEPS_PER_MM * 10) // [steps]
/** \brief There can not be less than the following amount of steps between the hits of the z-min and z-max endstops.
*/
#define MINIMAL_Z_ENDSTOP_MIN_TO_MAX_STEPS long(ZAXIS_STEPS_PER_MM * 100) // [steps]
#define MINIMAL_Z_ENDSTOP_MAX_TO_MIN_STEPS long(-ZAXIS_STEPS_PER_MM * 100) // [steps]
/** \brief Defines how many steps the z-axis is moved down before the z-homing in case it is unknown which of both endstops (z-min or z-max) is active at the moment.
*/
#define UNKNOWN_Z_ENDSTOP_DRIVE_FREE_STEPS long(ZAXIS_STEPS_PER_MM * 5) // [steps]
#endif // FEATURE_MILLING_MODE
Re: Zweiter Endschalter mit in den Betrieb aufnehmen
Verfasst: So 14. Aug 2016, 21:14
von Alois
Wenn ich den RF1000 einschalte reagieren die beiden Z-Endschalter sofort. Fahre ich abwärts und drücke den unteren Enschalter hält die Achse sofort an.
Fahre ich aufwärts und drücke den oberen Endschalter hält die Achse sofort an. Bei gedrückten Endschaltern lässt sich die Z-Achse immer in die Gegenrichtung freifahren.
Anders ist das Verhalten nach einer HOME-Fahrt. Beim unteren Endschalter ändert sich nichts. Der obere Endschalter reagiert erst wenn er in seiner Ist-Position ins Minus gefahren wird.
Ist das Normal? Kann man den oberen Endschalter nicht dauerhaft aktiviert lassen?
Re: Zweiter Endschalter mit in den Betrieb aufnehmen
Verfasst: So 14. Aug 2016, 23:06
von JoBo
Hi Alois,
ist schon etwas her, dass ich daran rumgefummelt hab. Ist aber hier im development Branch zu finden:
https://github.com/Cirrus01/Repetier-FW-RF.01.10
Musst ein bisschen stöbern (ich glaub das war in der rf1000.h), wenn du beide Endschalter dauerhaft aktieviert haben willst. Das ist nicht ganz trivial.
JoBo
Re: Zweiter Endschalter mit in den Betrieb aufnehmen
Verfasst: Mo 15. Aug 2016, 16:29
von Alois
Hallo JoBo,
Danke für deine Hilfe. Das ging aber schnell.
Für alle die mitbasteln wollen hier eine erste Analyse.
Im Grunde genommen gibt es zwei neue Definitionen
ENDSTOP_TYPE_SEPARATED und
FEATURE_SEPARATED_Z_ENDSTOPS die in verschiedenen Programmteilen abgefragt werden.
Code: Alles auswählen
#define ENDSTOP_TYPE_SEPARATED 3 // the min- and max-endstops are seperated into two separate circuits
#define FEATURE_SEPARATED_Z_ENDSTOPS 1 // 1 = the z-endstop type is fixed and z-min + z-max in separated circuits, 0 = other configuration
#define DEFAULT_Z_ENDSTOP_TYPE ENDSTOP_TYPE_SEPARATED
Die Änderungen umfassen insgesamt 10 Dateien:
Code: Alles auswählen
Commands.cpp, Configuration.h, Constants.h, Eeprom.cpp, motion.h, pins.h, Printer.cpp, Printer.h, RF.cpp, RF1000.h
In den bisherigen Abfragen:
wurde durch eine ver-ODER-ung die neue Definition
FEATURE_SEPARATED_Z_ENDSTOPS hinzugefügt.
Code: Alles auswählen
#if FEATURE_CONFIGURABLE_Z_ENDSTOPS || FEATURE_SEPARATED_Z_ENDSTOPS
Ich habe mir inzwischen ein kleines Platinchen 35x37mm gebastelt. Verbindet man die Platine mit dem Mainboard-Stecker X25, lässt sich der RF1000 um 4 x entprellte Eingänge und 2 x Ausgänge erweitern.
RF1000 Addon TOP Layer.png
Re: Zweiter Endschalter mit in den Betrieb aufnehmen
Verfasst: Di 16. Aug 2016, 08:35
von JoBo
Hi Alois,
ich hatte vor langer Zeit meine eigene Platine gebastelt. Hier der Link zum Beitrag (Schaltplan):
http://www.rf1000.de/viewtopic.php?f=24 ... tion#p2983
Im Link ist noch eine ältere Version. Besonderheit bei meiner Platine ist, das sie so entwicklet war, dass man die Ports flexibel nutzen kann. D.h., die Ports können als Ein-(auch analog) oder Ausgänge genutzt werden. Einen davon hatte ich als Powerausgang "geopfert", um Netzlasten (z.B. Fräser oder Steckdose) schalten zu können.
Zu den FW-Änderungen: Im Grunde hast du das richtig erkannt. Der entscheidene Teil ist die Reaktion auf die Tasterabfrage (ich weiß nur nicht mehr in welcher Datei das zu finden ist). Hier habe ich die Kontrollabfragen für den Fall, dass 2 Endschalter in einem Kreis sind, umgangen. Die sind nicht mehr nötig, wenn die Endschalter an 2 Eingängen "hängen". Die Position ist damit ja eindeutig.
Gruß
Jörg