Zweiter Endschalter mit in den Betrieb aufnehmen

Hier gehts um die Elektronik des RF1000. Damit sind Kabel, Platinen, Endschalter und das Display gemeint.
snoopy
Gelegenheitsdrucker
Gelegenheitsdrucker
Beiträge: 16
Registriert: Di 5. Jan 2016, 11:12

Zweiter Endschalter mit in den Betrieb aufnehmen

Beitrag 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?
snoopy
Gelegenheitsdrucker
Gelegenheitsdrucker
Beiträge: 16
Registriert: Di 5. Jan 2016, 11:12

Re: Zweiter Endschalter mit in den Betrieb aufnehmen

Beitrag von snoopy »

Weiß wirklich niemand eine Antwort auf meine Frage? :weinen:
Benutzeravatar
rf1k_mjh11
Developer
Developer
Beiträge: 2051
Registriert: Di 6. Jan 2015, 19:44
Wohnort: Autriche
Has thanked: 263 times
Been thanked: 542 times

Re: Zweiter Endschalter mit in den Betrieb aufnehmen

Beitrag 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
RF1000 (seit 2014) mit:
  Pico Hot End (mit eigenem Bauteil- und Hot End Lüfter)
  Ceran Bett
  FW RF.01.47 (von Conrad, modif.)

Die Natur kontert immer sofort mit einem besseren Idioten.
Benutzeravatar
JoBo
Globaler Moderator
Globaler Moderator
Beiträge: 448
Registriert: Fr 31. Okt 2014, 13:30
Has thanked: 15 times
Been thanked: 59 times

Re: Zweiter Endschalter mit in den Betrieb aufnehmen

Beitrag 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

Code: Alles auswählen

#define   FEATURE_CNC_MODE     2
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
Benutzeravatar
Alois
Filamenttester
Filamenttester
Beiträge: 13
Registriert: So 24. Jul 2016, 21:32
Has thanked: 3 times
Been thanked: 1 time

Re: Zweiter Endschalter mit in den Betrieb aufnehmen

Beitrag 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 ;)

Ich bin vom 16.08.2016 in Urlaub. Ich melde mich sobald ich wieder da bin :woohoo:
Benutzeravatar
Alois
Filamenttester
Filamenttester
Beiträge: 13
Registriert: So 24. Jul 2016, 21:32
Has thanked: 3 times
Been thanked: 1 time

Re: Zweiter Endschalter mit in den Betrieb aufnehmen

Beitrag 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):

Code: Alles auswählen

#define ORIG_Z_MAX_PIN          31	// PINC.6, 59, ES3
Ersetze:

Code: Alles auswählen

#define ORIG_Z_MAX_PIN          35	// PINC.2, 55, ES4
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:

Code: Alles auswählen

#define MAX_HARDWARE_ENDSTOP_Z				true



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

Ich bin vom 16.08.2016 in Urlaub. Ich melde mich sobald ich wieder da bin :woohoo:
Benutzeravatar
Alois
Filamenttester
Filamenttester
Beiträge: 13
Registriert: So 24. Jul 2016, 21:32
Has thanked: 3 times
Been thanked: 1 time

Re: Zweiter Endschalter mit in den Betrieb aufnehmen

Beitrag 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?

Ich bin vom 16.08.2016 in Urlaub. Ich melde mich sobald ich wieder da bin :woohoo:
Benutzeravatar
JoBo
Globaler Moderator
Globaler Moderator
Beiträge: 448
Registriert: Fr 31. Okt 2014, 13:30
Has thanked: 15 times
Been thanked: 59 times

Re: Zweiter Endschalter mit in den Betrieb aufnehmen

Beitrag 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
Benutzeravatar
Alois
Filamenttester
Filamenttester
Beiträge: 13
Registriert: So 24. Jul 2016, 21:32
Has thanked: 3 times
Been thanked: 1 time

Re: Zweiter Endschalter mit in den Betrieb aufnehmen

Beitrag von Alois »

Hallo JoBo,

Danke für deine Hilfe. Das ging aber schnell. :good: 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:

Code: Alles auswählen

#if FEATURE_CONFIGURABLE_Z_ENDSTOPS

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
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Ich bin vom 16.08.2016 in Urlaub. Ich melde mich sobald ich wieder da bin :woohoo:
Benutzeravatar
JoBo
Globaler Moderator
Globaler Moderator
Beiträge: 448
Registriert: Fr 31. Okt 2014, 13:30
Has thanked: 15 times
Been thanked: 59 times

Re: Zweiter Endschalter mit in den Betrieb aufnehmen

Beitrag 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
Antworten

Zurück zu „Elektronik“