CNC drehen mit Mach 3

Steuerungssoftware, CAM, 2D/3D CAD, G-Code Editoren
django013
Beiträge: 1706
Registriert: 18.01.2016, 17:12

Re: CNC drehen mit Mach 3

Beitrag von django013 » 04.08.2018, 05:46

Moin moin,

laut artsoft (mach3 Support-Forum) genügt für die Steuerung von Drehbänken ein Encoder mit einem Puls pro Umdrehung (z.B. ein induktiv Sensor gegen einen Nippel oder so). Ein Puls pro Umdrehung reicht sogar, um Gewinde zu spindeln und die vorherige Rille wieder zu treffen (das kann jeder Paralellport noch im Halbschlaf bewerkstelligen)
Eine genauere Positionierung ist erst für Bearbeitung mit angetriebenen Werkzeugen notwendig (Stirnseiten-, bzw. Mantelfächen-Bearbeitung) - und ich bin nicht sicher, dass da mach3 noch mitspielen kann.

Für Highspeed-Encoder Erfassung gibt es z.B. den ESS, welcher mit bis zu 4 MHz Encoder erfassen kann.

Gruß Reinhard

fliegerkind
Beiträge: 306
Registriert: 06.01.2016, 20:18

Re: CNC drehen mit Mach 3

Beitrag von fliegerkind » 04.08.2018, 10:49

Hallo Reinhard!

Ja, Danke, das mit einem Impuls pro Umdrehung kenne ich, besonders auch von Deinem Beitrag hier von unlängst. Ich befürchte halt, dass das problematisch sein könnte, es gibt Youtuber, die von ungenauen Signalauswertungen und Ergebnissen berichten. Das Rocketronics-Teil hingegen wertet viele Impulse aus, und das lediglich mit einem Arduino ... Im Mach3-Supportforum gibt es hie und da Hinweise, dass mehrere Impulse nur möglich sind, wenn man dafür Programmcode erstellt. Das tue ich mir aber nicht an und kann es auch nicht wirklich gut (Manfred Schmid dürfte damit zuletzt gearbeitet haben, dann verlor ich den Kontakt zu ihm). Einer dokumentiert sehr schön, wie groß man die Auswerteflanke bzw. den Encoder (er hat einen magnetischen) dimensionieren muss, bzw. wie man das berechnet. Hier ab Minute 4:05" sieht man das.

Michael (nachtfalke) hat aber einen Drehencoder eingebaut. Das genau interessiert mich, deswegen die Frage an ihn, wie er den an die Steuerung angeschlossen hat. Womöglich auch nur mit einem Impuls zur Auswertung?

LG, Heini

django013
Beiträge: 1706
Registriert: 18.01.2016, 17:12

Re: CNC drehen mit Mach 3

Beitrag von django013 » 04.08.2018, 15:00

Moin Heini,
Das Rocketronics-Teil hingegen wertet viele Impulse aus, und das lediglich mit einem Arduino
Yo, die Auswertung mit einem Arduino ist auch kein Problem. Du legst die Encoder-Kanäle auf Digitalpins und programmierst die als Eingang. Atmel schreibt, dass die Oversamplingrate min. 2,5 betragen muss, also kannst Du bei einem 16MHz Arduino Signale von ca. 6MHz einlesen.

Die Auswertungssicherheit kommt nicht über besonders gute Verkabelung, niedrigen EMV oder so, sondern über die Auswertung über zwei Sensoren und den dann möglichen Graycode. Damit kann man Fehlimpulse ausschalten und nicht nur zuverlässig das Delta, sondern auch die Richtung auswerten.
Gibt bei den netten Indern genügend Beispielanwendungen, die Graycode auswerten.

Wer Selbstbau machen will, sollte sich mal ne konventionelle Kugelmaus von Anno Tuck anschauen. Die Kugel treibt eine Welle mit Lochscheibe an, welche zwischen einem differentialen optischen Sensor läuft. Billiger geht zuverlässig nicht.
Letztens las ich von jemand, der ne CD als Encoderscheibe verwendet hat. Soll auch gehen. Allerdings dürfte die Auflösung für eine Drehbank eher ungewünscht hoch sein.

Fertige Encoder gibt es in unterschiedlichen Auflösungen. Bei einer Drehbank würde ich keine 1000er Auflösung eher weniger nehmen.

Der mechanische Selberbauer kann auch ne Welle so umformen, dass man mit induktiven Sensoren ein Graycode-Signal erzeugen kann. Dazu müsste man nur eine Fräsung in die Welle machen, sodass genau der halbe Umfang einen großen und einen kleineren Radius hat. Dann die induktiven Sensoren (um 90°) versetzt anordnen und schon kann der Graycode ausgelesen werden. Wenn man jetzt die Signale der induktiven Sensoren über einen Schmitt-Trigger (z.B. 74HC14) routet, kann die Position sehr exakt wiederholt werden.

Noch besser wäre sicher die optische Auswertung. Es gibt so Lichtschrankenbrücken, wo die Lochscheibe zwischen den Fingern des Sensors läuft. Wenn das ganze staubgeschützt verbaut wird, dürfte die Haltbarkeit nahe unendlich liegen :)
Da die optischen Sensoren eher analoge Signale liefern, bewährt sich auch hier ein Einsatz eines Schmitt-Triggers.

Die Encoder-Auflösung kann man sich auch ausrechnen:
Drehbank soll bis 3000 U/min drehen, macht 50 U/s ...
Jede Linie erzeugt 4 Signale ...
Wenn man jetzt annimmt, dass ein Controller max. 100kHz erfassen könnte, dann sind das
100.000 / 50 / 4 = 500 Linien
Das genau interessiert mich, deswegen die Frage an ihn, wie er den an die Steuerung angeschlossen hat. Womöglich auch nur mit einem Impuls zur Auswertung?
Bessere Encoder gibt es auch mit Index-Kanal, d.h. so ein Encoder hat dann einen A-Kanal, einen B-Kanal und einen Index-Kanal.
Über A- und B-Kanal kann der Graycode für die Positionierung der Welle ausgewertet werden, der Index-Kanal gibt ein Signal pro Umdrehung.
Manche Encoder haben gleich noch einen differentiellen Leitungstreiber dabei, d.h. hier gibt es dann A+, A-, B+, B-, Index+ und Index-
Beim Anschluss kann man die Minus-Ausgänge mit Masse verbinden und nur die '+'-Eingänge mit der Schaltung verbinden.
Oder man nimmt auch einen differentiellen Empfänger.

Gruß Reinhard

fliegerkind
Beiträge: 306
Registriert: 06.01.2016, 20:18

Re: CNC drehen mit Mach 3

Beitrag von fliegerkind » 04.08.2018, 18:42

Hi Reinhard!

Ganz wenig von dem, was Du mir geschrieben hast, habe ich auch verstanden :) Aber doch genug, um zu sehen, dass das ganze nicht so einfach ist.

Was möchte ich als Laie wissen:

Ich möchte einfach nur einen Encoder an die Steuerung anschließen und mit Mach3 Gewinde und Spiralen herstellen können, ohne dass es ungenau wird. Ich fürchte halt, dass z.B. bei einem M12 Feingewinde mit 1mm Steigung und 30U/Min auf der Hauptspindel ein Impuls/Umdrehung zu wenig ist.

Dabei ist mir vor allem noch immer nicht konkret klar, wie ich vorgehen soll, daher meine Frage an Nachtfalke, wie er das gemacht hat. Eigentlich kann er lediglich einen oder zwei Ausgänge des Encoders (A+, B+) an zwei Pins des Parallelports angeschlossen haben, es sei denn, Mach3 kann multipulse, was aber offensichtlich nicht der Fall ist? Er schreibt in seinem Beitrag weiter vorne: "Den Drehencoder habe ich über einen Elektrohändler gekauft. Ist kein besonderes Teil... Das Einrichten unter Mach 3 geht auch sehr einfach da ich einfach einen Eingang für einen Referenzschalter genommen habe. Dann braucht man nur mehr +5V und Masse und fertig."

Gibt es eine einfache Anleitung für Praktiker, ohne diese ganze Theorie? Nach dem Beispiel: Man nehem folgenden Encoder der Firma xxx (vorzugsweise mit Link), folgende Menge an Kabeln, schließe diese an folgende Pins des Encoders und an der anderen Seite des Parallelports an (oder die Pins xx xx an die Chinasteuerung von xxx). In Mach3 nehme man dann folgende Settings, und fertig ist das Ding?

LG, Heini

django013
Beiträge: 1706
Registriert: 18.01.2016, 17:12

Re: CNC drehen mit Mach 3

Beitrag von django013 » 05.08.2018, 06:56

Moin Heini,

ich verstehe Deine Bedenken. Das Thema gliedert sich meiner Ansicht nach in mehrere Aspekte:
  • elektrischer Anschluss des Encoders
  • Verbindung des Encoders mit mach3
  • Auswertung des Encoders (in mach3)
Beim elektrischen Anschluss des Encoders muss man unterscheiden zwischen mechanischen und optischen Encodern. Der mechanische Encoder wird wie ein Schalter angeschlossen. Da gibt es wenig zu beachten.
Leider sind die mechanischen Encoder oft von sehr kurzer Lebensdauer (ich habe schon einige geschrottet) - und da ich weiß, wie sehr Dir Qualität am Herzen liegt, habe ich Dir von mechanischen Encodern abgeraten.

Ich denke mal, dass die fertig käuflichen Encoder die Elektronik bereits mitbringen. Wenn jemand sich einen optischen Encoder selbst bauen will, gilt es zu beachten, dass am Eingang eine LED hängt. Eine LED wird über Strom gesteuert, d.h. man muss einen Vorwiderstand passend zur Versorgungsspannung einbringen.
Den Ausgang bildet (meist) ein lichtempfindlicher Transistor. Auch hier gilt es, richtige Werte für Spannung und Strom zu finden, sonst brennt der Sensor durch.
Das ist nur die elektrische Seite. Tips dazu kann man auf gängigen Elektronikseiten finden.

Der zweite Aspekt ist der Anschluss des Encoders an mach3.
Im Handbuch von mach3 (Kapitel 4.11) heißt es:
mach3 has an input for one or more pulses generated each revolution of the spindle. Mach3Mill can use this to display the actual speed of the spindle
Demnach kann mach3 auch mit Encodern umgehen, die mehr als einen Puls pro Umdrehung liefern.
Später im Handbuch (Tabelle 5-1 Liste möglicher Eingangssignale) werden die Eingangssignale aufgelistet, die man für einen Encoder verwenden kann: Index und Timing
Index ist wie gesagt der Überlaufindikator eines Encoders (1 Puls pro Umdrehung), Timing wäre dann entweder A+ oder B+ womit keine Graycode-Auswertung (zuverlässige Auswertung) der Richtung möglich ist (weil Fehlererkennung fehlt).
Ausweg wäre die Verwendung von 2 OEM-Triggern und der Auswertung über ein Plugin - da müsste man schauen, ob das schon jemand gemacht hat. Ich würde an der Stelle keinen Aufwand mehr in mach3 stecken.
Ich fürchte halt, dass z.B. bei einem M12 Feingewinde mit 1mm Steigung und 30U/Min auf der Hauptspindel ein Impuls/Umdrehung zu wenig ist.
Genau diese Bedenken habe ich auch im mach-Support-Forum geäußert. Der Chefentwickler von Artsoft hat mir dann geschrieben, dass die Gewindesteigung völlig unerheblich für das Wiederfinden "der Spur" ist. Man müsse "nur" jeweils die exakte Z-Position anfahren und beim Indexpuls losfahren. So würde man jede Steigung wieder treffen und es wäre auch möglich, rechte und linke Flanke abwechselnd abzuspanen.

Damit endet mein Wissen. Ich habe nicht vor, mach3 einzusetzen und kann von daher nicht über Praxiserfahrung reden. Für meinen Geschmack ist die Encoderunterstützung bei mach3 unzureichend. Aber das ist nur mein ganz persönlicher Geschmack und es steht jedem frei, mir das Gegenteil zu beweisen :D

Gruß Reinhard

//Nachtrag:
gerade eine interessante Diskussion im mach-Supportforum gelesen, die sich auch mit dem Thema befasst.
Diesmal ging es nicht um die Möglichkeit der Auswertung eines Encoders, sondern um die Frage, was passiert, wenn Solldrehzahl und Istdrehzahl abweichen.
Weiß nicht, wie relevant die Frage im Hobbybereich ist, bzw. wie wahrscheinlich es ist, dass man an die Leistungsgrenzen seiner Maschine kommt ...
Jedenfalls wird in mach der Encoder nur für die Anzeige der Drehzahl verwendet. Es gibt keine PID-Regelung für die Spindel. Kommunikationsraten mit den externen Kontrollern sind auch viel zu gering, um sowas zu ermöglichen.
Wer also an die Leistungsgrenzen seiner Drehbank kommt, sollte einen Kontroller verwenden, der eine PID-Regelung für die Spindel anbietet. Angeblich soll man bei ESS an solch einer Lösung arbeiten.

fliegerkind
Beiträge: 306
Registriert: 06.01.2016, 20:18

Re: CNC drehen mit Mach 3

Beitrag von fliegerkind » 05.08.2018, 10:58

Danke Reinhard!

Es ist tatsächlich so, dass es kaum Praxisanleitungen gibt. Die, die ich fand, aktivierten jedes Mal den Indexeintrag als Signal und legten eine einzige Leitung des Encoder an einen Pin. So wohl auch Michael, aber der hat sich bisher nicht gemeldet.

Was die Signalqualität von nur einer Auswertung pro Umdrehung beim Drtehzahlmessen betrifft, so bin ich inzwischen auf etwas Hervorragendes gestossen. Der Wolfram Szentiks vom damaligen Mach3 "cncsteuerung" (nicht das Neue, sondern das, was jetzt Mobasi vertreibt), schreibt in seinem frei verfügbaren Handbuch (das Dicke mit den 656 Seiten), Kapitel 7.4.9.1., dass bei langsamen Drehzahlen die "Methode 1 – Spindelimpuls über nur einen Impuls/Umdrehung" genauer ist, als die Auswertung "Methode 2 – Impulszählung pro Sekunde" mittels eines hochauflösenden Dekoders. Leider schreibt er das zur Drehzahlmessung und vom Gewindeschneiden erwähnt er nichts.

Frage:
Wie weiß Mach3, dass es das Indexsignal mit der Z-Achse und nicht mit der X-Achse koppeln muss?

Ich suche weiter ...

LG,Heini

django013
Beiträge: 1706
Registriert: 18.01.2016, 17:12

Re: CNC drehen mit Mach 3

Beitrag von django013 » 05.08.2018, 15:39

Moin Heini,
Der Wolfram Szentiks vom damaligen Mach3 "cncsteuerung" (nicht das Neue, sondern das, was jetzt Mobasi vertreibt), schreibt in seinem frei verfügbaren Handbuch (das Dicke mit den 656 Seiten), Kapitel 7.4.9.1., dass bei langsamen Drehzahlen die "Methode 1 – Spindelimpuls über nur einen Impuls/Umdrehung" genauer ist, als die Auswertung "Methode 2 – Impulszählung pro Sekunde"
Hm, also die genauere Auswertung liegt nicht an den unterschiedlichen Encodern, sondern an der Art der Auswertung.
Grundsätzlich gibt es ja zwei Möglichkeiten:
  • man misst die Zeit die zwischen zwei Pulsen vergeht
  • man zählt die Pulse pro Zeiteinheit, also z.B. pro Sekunde
Erstere Variante ist für langsame Drehzahlen besser geeignet und letztere Variante für schnelle Drehzahlen.
Wie gesagt - es ist völlig unabhängig vom Encoder.

Besonders bei mechanischen Encoder kann es zu fehlerhaften Impulsen kommen, die eine Messung verfälschen könnten. Vergleichbar mit dem Prellen eines Schalters. Das kann man mit geeigneten elektronischen Schaltungen reduzieren. Ferner können noch Fehler über schlechte Verkabelung und Übersprechen auftreten.
Beides kann immer auftreten, wenn man nur einen Kanal auswertet.
Sobald man einen Encoder nach Graycode auswertet, werden alle Fehler logisch ausgefiltert, d.h. es ist fast unmöglich, fehlerhafte Signale hinzubekommen. Deshalb ist Graycode vorzuziehen, wenn es die Steuerung erlaubt, also einen Graycode-Eingang hat - es reicht nicht, 2 digitale Eingänge zu haben, sie müssen auch gleichzeitig ausgewertet werden.
Mit Graycode-Auswertung spielt die Zeit überhaupt keine Rolle. Die Signale werden ausgewertet, sobald sie auftreten und die Signale verändern einen Zähler. Macht man den Zähler groß genug, kann man auf diese Weise Achsen auch absolut vermessen.
Wie weiß Mach3, dass es das Indexsignal mit der Z-Achse und nicht mit der X-Achse koppeln muss?
mach3 macht überhaupt nix mit dem Indexsignal, weder so noch anders. Es wird "nur" verwendet, um die Drehzahl anzuzeigen. Die Drehzahl ist aber weder X- noch Z-Achse.

Beim Gewindeschneiden ist es doch so, dass man eine Z-Position anfährt und dann auf das Indexsignal zum losfahren wartet. Das Indexsignal wird, wenn man es genau nimmt, nur einmal pro Zyklus ausgewertet. Der Rest erfolgt anhand Drehzahl und Vorschub. Beides wird so ausgerechnet, dass es passt (im Idealfall).
Sollte aber beim Gewindeschneiden die Leistung der Drehspindel einbrechen, kann mach3 nicht mehr drauf reagieren, weil es keine Feedback-Schleife gibt.

Das geregelte Gewindeschneiden funktioniert nur mit einem Hardware-Kontroller, der die Drehzahl der Spindel überwacht und regelt. Hier ist es dann so, dass mach3 außen vor ist. mach3 übermittelt nur, dass ein Gewinde geschnitten werden soll, der Rest erfolgt dann vom Hardware-Kontroller aus. Das können aber nur sehr wenige Kontroller - siehe auch mein anderer Beitrag zu mach3/mach4.

Gruß Reinhard

fliegerkind
Beiträge: 306
Registriert: 06.01.2016, 20:18

Re: CNC drehen mit Mach 3

Beitrag von fliegerkind » 05.08.2018, 17:05

Hmm, Danke, aber das meinte ich gar nicht. Meine Frage war in etwa, ob Mach3 beim Loslegen des Gewindeschneidprozesses auf das Index-Signal wartet, bzw. woher es das weiß, oder, ob man das irgendwo selbst einmal einstellen muss, oder ob Mach3 das von selbst macht, sobald man den Pin des Gebers eingegeben hat. Wenn man z.B. den Job neuerlich startet, muss ja Mach3 wissen, wann es einsticht!

LG, Heini

fliegerkind
Beiträge: 306
Registriert: 06.01.2016, 20:18

Re: CNC drehen mit Mach 3

Beitrag von fliegerkind » 05.08.2018, 18:09

Sodern, mühsam ernährt sich das Eichhörnchen ...

Ich habe jetzt wochenlang zu diesem Thema gelesen, also kurz zusammengefasst, was meine bisherigen Erfahrungen sind. Es berichtet zwar jeder, der das schon hinter sich hat, wie toll er denn ist, aber harte Fakten, nach dem Motto "welche Einstellungen beim Drehen unter Mach3", welchen Encoder, wie anschließen, findet man nirgends. Sehr wohl aber fragen manche User in diversen Foren und mit Youtubekommentaren seit Jahren verzweifelt, auf die aber immer ausweichend oder gar nicht geantwortet wurde - ich habe da etliche unbeantwortete Beiträge gefunden. Warum ist das so? Geizen diese Leute lediglich und unbegründet mit ihrem Wissen oder hat es andere Gründe? Sind sie schreibfaul? Von einigen, die ich angemailt habe, habe ich auch schon ausweichende Antworten bekommen, so nach dem Motto, "alles was länger wie ein einzelner Satz ist, für das bin ich zu faul".

Da ich aber hartnäckig bin, komme ich schön langsam auf alles dahinter. Z.B. meine Frage, wieso Mach3 weiß, warum der Indexgeber X und Z korrelieren muss, ist in Mach3 selbst einstellbar, und zwar unter General config, etwa in der Mitte:

Active Plane of Movement' auf "X-Z" stellen (das ist bei Mach3 Turn ohnehin default).

Auch erzählt das Artsofthandbuch, dass es eine "Mär" ist, nur ein Signal pro Umdrehung auswerten zu können. Mach3 kann auch viele Impulse pro Umdrehung auswerten, und zwar über 'Timing' anstatt über 'Index'.

Grüße, Heini

django013
Beiträge: 1706
Registriert: 18.01.2016, 17:12

Re: CNC drehen mit Mach 3

Beitrag von django013 » 05.08.2018, 18:21

Moin Heini,
Auch erzählt das Artsofthandbuch, dass es eine "Mär" ist, nur ein Signal pro Umdrehung auswerten zu können. Mach3 kann auch viele Impulse pro Umdrehung auswerten, und zwar über 'Timing' anstatt über 'Index'.
Hm, von den beiden Eingängen hatte ich ja schon geschrieben.
Lies aber nochmal genau das Handbuch. Da steht nix von, dass mach3 in der Lage wäre, mehrere Signale pro Umdrehung auszuwerten. Alles was mach3 an der Ecke kann, ist aus dem Timingsignal die Drehzahl runter zu rechnen.
Es steht nirgends, dass das Timing-Signal beim Gewindeschneiden o.ä. verwendet würde.
mach3 (und auch mach4) hat auch keine Regelschleife für die Spindel, kann also bei Last nicht nachregeln. Das können nur Hardware-Kontroller mit entsprechender Intelligenz.

Gruß Reinhard

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 21 Gäste