Forum: Mikrocontroller und Digitale Elektronik Not-Halt Steuerung Arduino-CNC


von Basti J. (harrinfinity)


Lesenswert?

Hallo zusammen,

bisher war ich immer stiller Mitleser, aber jetzt möchte ich meine 
erstes eigenes (Teil-) Projekt vorstellen.
Ich baue aktuell eine 3-Achs CNC-Fräse und dazu habe ich eine Not-Halt 
Steuerung entworfen, welche ich hier vorstellen und diskutieren möchte.

Ziel:
 - 2 unabhängige E-Stop Pilzschalter
 - Alarm-Ausgänge aller drei Schrittmotor-Treiber einbinden
 - Schrittmotoren unabhängig von der Steuerung deaktivieren
 - Zusätzlich ein Not-Signal in die Steuerung einspeisen

Equipment:
 - 3x Schrittmotor Treiber mit je einem Alarm- und Enable-Pin
 - 2x Pilzschalter
 - Arduino Mega mit GRBL


Daraus geworden ist die unten angehängte Schaltung.

Zur Erklärung:
Das 5V Netzteil speist die Not-Halt Steuerung. Oben sind die fünf 
Not-Eingänge (2x E-Stop, 3x Alarm), welche jeweils in eine 
Selbsthalt-Schaltung gehen, damit der Not-Halt nicht unbeabsichtigt 
wieder aufgehoben werden kann.
Sobald ein Not-Halt ausgelöst wurde, werden alle Enable-Eingänge der 
Endstufen mit einem High-Signal gespeist und die Motoren sind dadurch 
deaktiviert. Außerdem wird beim auslösen des Not-Halt auch der GRBL 
Reset-Pin mit GND verbunden wordurch ein Not-Signal in der Steuerung 
ausgelöst wird.

Unabhängig von den Not-Eingängen kann aber auch der Enable-Ausgang des 
Arduino die Schrittmotoren deaktivieren.

Für den Fall, dass das 5V-Netzteil ausfällt (dies würde leider meine 
Not-Halt Steuerung deaktivieren, da ein High-Signal an den Endstufen 
benötigt wird), gebe ich die Hauptspannung der Fräse (die 230V) nur 
frei, wenn die Not-Halt Steuerung mit Spannung versorgt ist. Somit würde 
bei einem Ausfall des 5V Netzteils automatisch die Fräse stromlos 
geschalten werden.


Gerne nehme ich Anregungen oder Verbesserungsvorschläge entgegen.
Auch bin ich sehr gespannt was ihr bezüglich der Sicherheit meiner 
Schaltung sagt.


https://www.falstad.com/circuit/circuitjs.html?cct=$+1+0.000005+10.20027730826997+33+5+43%0Av+-336+464+-336+400+0+0+40+5+0+0+0.5%0As+128+-96+128+-32+0+1+true%0As+336+-96+336+-32+0+1+true%0As+544+-96+544+-32+0+1+true%0A178+-32+400+-32+480+0+1+0.02+0.0000024332597488156704+0.05+1000000+0.02+20%0Aw+-48+480+-128+480+0%0Aw+-64+336+-64+400+0%0Ad+-64+272+-64+336+2+default%0Aw+0+240+0+400+0%0Aw+0+400+-32+400+0%0Aw+-128+336+-64+336+0%0Aw+-128+384+-128+480+0%0Aw+-48+592+160+592+0%0Aw+80+384+80+480+0%0Aw+80+336+144+336+0%0Aw+208+400+176+400+0%0Aw+208+240+208+400+0%0Ad+144+272+144+336+2+default%0Aw+144+336+144+400+0%0Aw+160+480+80+480+0%0A178+176+400+176+480+0+1+0.02+0.000007256213772251275+0.05+1000000+0.02+20%0A178+384+400+384+480+0+1+0.02+0.000007256213772251389+0.05+1000000+0.02+20%0Aw+368+480+288+480+0%0Aw+352+336+352+400+0%0Ad+352+272+352+336+2+default%0Aw+416+240+416+400+0%0Aw+416+400+384+400+0%0Aw+288+336+352+336+0%0Aw+288+384+288+480+0%0Aw+496+336+560+336+0%0Aw+624+400+592+400+0%0Aw+624+240+624+400+0%0Ad+560+272+560+336+2+default%0Aw+560+336+560+400+0%0Aw+576+480+496+480+0%0A178+592+400+592+480+0+1+0.02+0.0000072562137722513075+0.05+1000000+0.02+20%0Aw+0+240+208+240+0%0Aw+208+240+416+240+0%0Aw+160+592+272+592+0%0Aw+272+592+368+592+0%0Aw+-48+480+-48+544+0%0Aw+160+480+160+544+0%0Aw+368+480+368+544+0%0Aw+992+384+992+288+0%0Aw+992+288+992+192+0%0A178+624+656+800+656+0+1+0.02+0.000009710877026516164+0.05+1000000+0.02+20%0Aw+576+688+624+688+0%0Ag+800+672+864+672+0%0Ax+96+-178+181+-175+4+24+Alarm%5CsX%0Ax+300+-179+385+-176+4+24+Alarm%5CsY%0Ax+506+-180+590+-177+4+24+Alarm%5CsZ%0Ax+-107+-193+-22+-190+4+24+E-Stops%0Ax+1033+169+1135+172+4+24+Disable%5CsX%0Ax+1039+265+1141+268+4+24+Disable%5CsY%0Ax+1035+357+1136+360+4+24+Disable%5CsZ%0Ax+300+691+539+694+4+24+GRBL%5CsReset%252FAbort%0AR+624+656+384+656+0+0+40+5+0+0+0.5%0Ar+992+192+1184+192+0+100%0Ar+992+288+1184+288+0+100%0Ar+992+384+1184+384+0+100%0Aw+1184+192+1184+288+0%0Aw+1184+288+1184+384+0%0AR+768+96+768+32+0+0+40+5+0+0+0.5%0As+768+96+768+160+0+0+false%0Aw+992+384+992+592+0%0Ax+651+7+887+10+4+24+GRBL%5CsStepper%5CsEnable%0Aw+576+480+576+544+0%0Aw+-336+768+624+768+0%0Aw+544+400+336+400+0%0Aw+336+400+128+400+0%0Aw+128+400+-80+400+0%0Aw+-80+400+-192+400+0%0Aw+-336+464+-192+464+0%0Aw+-336+240+0+240+0%0Aw+416+240+624+240+0%0Aw+576+592+576+688+0%0Aw+-336+464+-336+768+0%0Aw+496+384+496+480+0%0Ad+-128+384+-128+336+2+default%0Ad+80+384+80+336+2+default%0Ad+288+384+288+336+2+default%0Ad+496+384+496+336+2+default%0Aw+368+592+576+592+0%0Ad+-48+544+-48+592+2+default%0Ad+160+544+160+592+2+default%0Ad+368+544+368+592+2+default%0Ad+576+544+576+592+2+default%0Aw+624+240+832+240+0%0Aw+816+480+816+592+0%0A178+800+400+800+480+0+1+0.2+0.24999999999997224+0.05+1000000+0.02+20%0Aw+832+240+832+400+0%0Aw+832+400+800+400+0%0Aw+768+160+768+400+0%0Aw+1184+384+1184+768+0%0Ag+752+400+752+336+0%0Aw+816+592+992+592+0%0Aw+624+704+624+768+0%0Aw+624+768+1184+768+0%0Ad+576+592+816+592+2+default%0Ap+-416+464+-416+400+1+0%0Aw+-336+400+-416+400+0%0Aw+-336+464+-416+464+0%0Ab+70+-218+602+-9+0%0Ab+1008+112+1164+431+0%0Ax+1008+107+1132+110+4+24+Driver%5CsInput%0Ax+70+-224+212+-221+4+24+Driver%5CsOutput%0AR+544+-96+544+-160+0+0+40+5+0+0+0.5%0AR+336+-96+336+-160+0+0+40+5+0+0+0.5%0AR+128+-96+128+-160+0+0+40+5+0+0+0.5%0Aw+-336+240+-336+96+0%0Aw+336+-32+336+96+0%0A178+368+96+368+176+0+1+0.2+0+0.05+1000000+0.02+20%0Ag+320+96+320+48+0%0Aw+352+176+352+272+0%0Aw+144+176+144+272+0%0Ag+112+96+112+48+0%0A178+160+96+160+176+0+1+0.2+0+0.05+1000000+0.02+20%0Aw+128+-32+128+96+0%0Aw+544+-32+544+96+0%0A178+576+96+576+176+0+1+0.2+0+0.05+1000000+0.02+20%0Ag+528+96+528+48+0%0Aw+560+176+560+272+0%0Aw+-336+96+160+96+0%0Aw+160+96+368+96+0%0Aw+368+96+576+96+0%0Aw+-64+-64+-64+272+0%0As+-96+-160+-96+-96+0+1+false%0As+-32+-160+-32+-96+0+1+false%0Aw+-336+96+-336+-160+0%0Aw+-336+-160+-96+-160+0%0Aw+-96+-160+-32+-160+0%0Aw+-32+-96+-32+-64+0%0Aw+-32+-64+-64+-64+0%0Aw+-64+-64+-96+-64+0%0Aw+-96+-64+-96+-96+0%0A178+-592+144+-592+16+0+1+0.02+0.24999999999999736+0.05+1000000+0.02+20%0AR+-592+144+-592+208+0+0+40+230+0+0+0.5%0AO+-608+16+-608+-80+1%0AO+-496+16+-496+-80+1%0AR+-480+144+-480+208+0+0+40+230+0+0+0.5%0A178+-480+144+-480+16+0+1+0.02+0.24999999999999736+0.05+1000000+0.02+20%0Aw+-512+144+-512+240+0%0Aw+-624+144+-624+240+0%0Aw+-624+240+-512+240+0%0Aw+-528+144+-528+768+0%0Aw+-640+144+-640+768+0%0Aw+-336+768+-528+768+0%0Aw+-640+768+-528+768+0%0As+-336+320+-336+240+0+0+false%0Aw+-192+400+-192+464+0%0A370+-336+400+-336+320+1+0%0Aw+-336+240+-512+240+0%0A

: Verschoben durch Moderator
von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

was ist das für ein merkwürdiger Link zu www.falstad.com?
Soll man da drauf klicken?

von Basti J. (harrinfinity)


Angehängte Dateien:

Lesenswert?

Hinter dem Link verbirgt sich meine Schaltung.
Bei Falstad kann man im Browser Schaltungen erstellen und testen.

: Bearbeitet durch User
von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Wegstaben V. schrieb:
> was ist das für ein merkwürdiger Link zu www.falstad.com?
> Soll man da drauf klicken?

Basti J. schrieb:
> Hinter dem Link verbirgt sich meine Schaltung.
> Bei Falstad kann man im Browser Schaltungen erstellen und testen.


Ich hau mich weg.... Der Schaltplan ist komplett in der URL codiert!

von Fred (Gast)


Lesenswert?

Sorry, aber ein Not-Aus muss ohne Steuerung auskommen - sonst kann er 
nicht vor Fehlern in der Steuerung schützen! Alles andere ist eine 
ungeschickter Umsetzung des normalen Stopp-Befehls.

Meine Umsetzung:
- Ein P-FET in der +24V-Versorgung mit 50k-Pull-up vom Gate zur 
Versorgung
- Ein N-FET in der Masseversorgung mit 50k-Pull-down vom Gate zur Masse
- Die beiden Widerstände werden über den NC-Not-Aus-Schalter verbunden
Effekt:
- Im Normalbetrieb arbeiten die Pull-up/down-Widerstände als 
Spannungsteiler und geben über die Spannungsdifferenz die Beiden FET 
frei
- Bei gedrücktem Not-Aus greifen die Pull-up/down und machen die FET 
dicht - damit steht der ganze Apparat mit Sicherheit und der Arduino und 
die Treiber können machen was sie wollen!

von Andre (Gast)


Lesenswert?

Fred schrieb:
> NC-Not-Aus-Schalter

NC ist auch ein gutes Stichwort. Not-Aus immer als Öffnerkontakt bauen. 
Ansonsten reißt irgendwann das Kabel ab und du kannst laaaange drücken 
bevor was anhält.

Kannst du das Stop Signal aus der Versorgung der Endstufen erzeugen? 
Dann würde ich die mit einem Öffner Kontakt im Stop halten. Fällt das 
Relais dann ab weil der Not Aus Kreis unterbrochen ist, steht die Kiste. 
Alternativ die Versorgung wegschalten.

von Basti J. (harrinfinity)


Lesenswert?

Hallo,

Fred schrieb:
> Sorry, aber ein Not-Aus muss ohne Steuerung auskommen - sonst kann er
> nicht vor Fehlern in der Steuerung schützen! Alles andere ist eine
> ungeschickter Umsetzung des normalen Stopp-Befehls.

ein Not-Halt und ein Not-Aus sind aber zwei paar Schuhe. Den Notaus habe 
ich über einen einfachen Drehschalter gelöst, welcher noch vor den 
Netzteilen sitzt. Mit diesem kann ich alles stromlos schalten.

Allerdings ist dies dann KEIN Not-Halt. Denn beim stromlos schalten 
werden weder die Motoren noch die Spindel gebremst sondern laufen 
einfach aus. Und da eine 2,2 kW Spindel mit ER20 Spannzange eine 
ordentliche Masse hat, dreht diese sich noch sehr lange wenn man sie nur 
vom Strom trennt. Außerdem induziert die Spindel dann einen hohen Strom 
welcher die gesamte Steuerung zerstören kann.

Deshalb möchte ich als Not-Halt die Motoren (und natürlich auch die 
Spindel) kontrolliert deaktivieren. Dies geht m.M.n. am besten direkt 
über den Enabled-Pin der Treiber.


Andre schrieb:
> NC ist auch ein gutes Stichwort. Not-Aus immer als Öffnerkontakt bauen.
> Ansonsten reißt irgendwann das Kabel ab und du kannst laaaange drücken
> bevor was anhält.

Das hatte ich auch schon überlegt, wusste aber nicht wirklich wie ich 
das mit einem Öffner umsetzen soll, da der Enabled-Eingang ein 
High-Signal benötigt um die Motoren zu deaktivieren.


Gruß
Basti

: Bearbeitet durch User
von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

Basti J. schrieb:
> Hallo,
>
> ein Not-Halt und ein Not-Aus sind aber zwei paar Schuhe. Den Notaus habe
> ich über einen einfachen Drehschalter gelöst, welcher noch vor den
> Netzteilen sitzt. Mit diesem kann ich alles stromlos schalten.

Das hat im Zweifelsfall jede elektrische Maschine - nennt sich auch 
Ein/Aus-Schalter ;-) Ein Drehschalter ist für Not-Abschaltungen 
allerdings ungeeignet.

> Allerdings ist dies dann KEIN Not-Halt. Denn beim stromlos schalten
> werden weder die Motoren noch die Spindel gebremst sondern laufen
> einfach aus. Und da eine 2,2 kW Spindel mit ER20 Spannzange eine
> ordentliche Masse hat, dreht diese sich noch sehr lange wenn man sie nur
> vom Strom trennt. Außerdem induziert die Spindel dann einen hohen Strom
> welcher die gesamte Steuerung zerstören kann.
>
> Deshalb möchte ich als Not-Halt die Motoren (und natürlich auch die
> Spindel) kontrolliert deaktivieren. Dies geht m.M.n. am besten direkt
> über den Enabled-Pin der Treiber.

Genau. Gute Systeme schalten zusätzlich noch in den Bremsmodus (für ein 
definiertes Runterbremsen durch den FU/Servoendstufe) oder haben - ganz 
brutal - abfallende Schütze etc, die bspw. die Spulen der Antriebe über 
eigene Bremswiderstände "kurzschließen" (so hier in meinem 
CNC-Drehautomat).

Wenn Du ganz sicher gehen willst, könntest Du also zusätzlich solche 
Widerstände aufzuschalten, bspw. durch ein abfallendes Relais, das über 
den Not-Aus-Kreis gehalten wird. Selbst wenn alles "spinnt" (Steuerung, 
Endstufen, etc.) bewegt sich dann rasch nix mehr, weil alles an Energie 
(elektrisch/mechanisch) in den Bremswiderständen verbraten wird - bis 
dann die Netzteilabschaltung greift.

von Basti J. (harrinfinity)


Lesenswert?

Chris D. schrieb:
> Gute Systeme schalten zusätzlich noch in den Bremsmodus

Einen kontrollierten Bremsmodus erreiche ich doch aber nur, wenn ich die 
Endstufen weiterhin mit Spannung versorge, oder was verstehst du (auf 
die Schrittmotoren bezogen) mit Bremsmodus?

Meine Motor-Endstufen haben folgende Ein-/Ausgänge:
 - Step/Dir -> für den Not-Halt irrelevant
 - Alarm -> das Signal löst den Not-Halt aus
 - Enabled -> hier kann ich über ein High-Signal die Motoren 
deaktivieren und somit kontrolliert bremsen/blockieren


Chris D. schrieb:
> Wenn Du ganz sicher gehen willst, könntest Du also zusätzlich solche
> Widerstände aufzuschalten

Für die Spindel werde ich auf jeden Fall einen Bremswiderstand einbauen. 
Aber bei den Motoren geht das ja nicht, ohne sie auseinander zu nehmen, 
oder?


Ohne Erfahrungswerte, rein aus dem Bauchgefühl heraus, hätte ich die 
Endstufen als relativ sicher angesehen. Oder muss ich selbst hier mit 
einer Fehlfunktion (dass sie selbständig, ohne Steuerungsinput, Schritte 
auslöst) rechnen?

Ich bin bei meiner obigen Schaltung bisher noch nicht so wirklich 
glücklich damit, dass zum deaktivieren der Motoren eine Spannung 
anliegen, und nicht abfallen, muss.
Allerdings weiß ich nicht wie ich das ändern könnte. Das würde es sonst 
sehr viel einfacher machen.

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

Basti J. schrieb:
> Chris D. schrieb:
>> Gute Systeme schalten zusätzlich noch in den Bremsmodus
>
> Einen kontrollierten Bremsmodus erreiche ich doch aber nur, wenn ich die
> Endstufen weiterhin mit Spannung versorge, oder was verstehst du (auf
> die Schrittmotoren bezogen) mit Bremsmodus?

Ja, kontrolliert geht das nur, wenn Du einen geregelten Bremsmodus hast. 
Das wird bei größeren Industriemaschinen auch gemacht, weil ansonsten 
bei einem Not-Halt schwere Schäden beim Antrieb auftreten können, 
einfach, weil die Mechanik nicht für einen abrupten Stopp ausgelegt ist.
Die dafür nötigen Steuerungen + Software sind aber auch dafür 
spezifiziert.

> Meine Motor-Endstufen haben folgende Ein-/Ausgänge:
>  - Step/Dir -> für den Not-Halt irrelevant
>  - Alarm -> das Signal löst den Not-Halt aus
>  - Enabled -> hier kann ich über ein High-Signal die Motoren
> deaktivieren und somit kontrolliert bremsen/blockieren
>
>
> Chris D. schrieb:
>> Wenn Du ganz sicher gehen willst, könntest Du also zusätzlich solche
>> Widerstände aufzuschalten
>
> Für die Spindel werde ich auf jeden Fall einen Bremswiderstand einbauen.
> Aber bei den Motoren geht das ja nicht, ohne sie auseinander zu nehmen,
> oder?

Doch, das ist sogar recht einfach: Du schliesst einfach die beiden 
Spulen über die Bremswiderstände kurz, also je zwei der vier Kabel (A+ 
A- und B+ B- oder ähnlich).

> Ohne Erfahrungswerte, rein aus dem Bauchgefühl heraus, hätte ich die
> Endstufen als relativ sicher angesehen. Oder muss ich selbst hier mit
> einer Fehlfunktion (dass sie selbständig, ohne Steuerungsinput, Schritte
> auslöst) rechnen?

Naja, man muss immer auch schauen, wie groß die maximale Energie ist, 
die noch im System steckt. Die Hauptspindel würde ich, wie Du selbst 
schon sagst, damit ausrüsten, denn das kann wirklich gefährlich werden, 
wenn die auf voller Drehzahl ist. Ob die Achsmotoren überhaupt einen 
komplexen Not-Halt benötigen, musst Du selbst beurteilen. Bei meinem 
CNC-Plasmaschneider habe ich die nicht weiter beachtet, einfach weil ich 
das Portal im Betrieb gut per Hand anhalten kann und der Plasmaschneider 
ja sofort abgeschaltet wird, ich also keine größeren rotierenden Massen 
habe. Da reicht mir dann ein einfaches Abschalten der Endstufen. Das 
sind allerdings auch Direktantriebe ohne weitere Untersetzung per 
Kugelgewindespindel (einfach Zahnrad auf Zahnstange).

> Ich bin bei meiner obigen Schaltung bisher noch nicht so wirklich
> glücklich damit, dass zum deaktivieren der Motoren eine Spannung
> anliegen, und nicht abfallen, muss.

Warum generierst Du diese dann nicht aus der Spannungsversorgung der 
Endstufen? Da das High-Signal meist bei 5V liegt, sollte dieses 
ausreichend lange die Endstufen blockieren. Wenn Du ein Relais nimmst, 
das über den Not-Halt-Kreis gehalten wird und bei dessen Abfall ganz 
einfach über eine Zenerdiode 5,1V + Widerstand die Spannungsversorgung 
auf den Enabled-Eingang legst, dann sollte das gehen.

> Allerdings weiß ich nicht wie ich das ändern könnte. Das würde es sonst
> sehr viel einfacher machen.

von Basti J. (harrinfinity)


Lesenswert?

Chris D. schrieb:
> Ob die Achsmotoren überhaupt einen
> komplexen Not-Halt benötigen, musst Du selbst beurteilen.

Ich habe Kugelumlaufspindeln mit einer 5er Steigung. Zwischen KUS und 
Motor ist aber noch ein Riementrieb mit einer Übersetzung von 2. Die 
Achsen haben also schon ziemlich viel Kraft und von Hand wird definitiv 
nichts angehalten.


Chris D. schrieb:
> Warum generierst Du diese dann nicht aus der Spannungsversorgung der
> Endstufen?

Meine Endstufen werden mit 48V DC versorgt. Wenn ich die in den 
Enabled-Eingang speise ist die Endstufe vermutlich hinüber.

: Bearbeitet durch User
von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

Basti J. schrieb:
> Chris D. schrieb:
>> Warum generierst Du diese dann nicht aus der Spannungsversorgung der
>> Endstufen?
>
> Meine Endstufen werden mit 48V DC versorgt. Wenn ich die in den
> Enabled-Eingang speise ist die Endstufe vermutlich hinüber.

Du hast das falsch verstanden :-)

Also: das Relais wird über den Not-Halt-Kreis gehalten. Beim Auslösen 
von Not-Halt fällt das Relais sofort ab und schliesst die 48V an die 
Zenerdiode 5,1V + Widerstand an, die dann die Spannung für den 
Enabled-Eingang auf diese 5,1V begrenzt. Gleichzeitig schaltest Du 
natürlich das 48V-Netzteil ab. Die dann zusammenbrechenden 48V können 
keinen weiteren Schaden anrichten, weil Enabled auf 5,1V liegt, und zwar 
so lange, bis die Spannungsversorgung auf diese 5,1V abgefallen ist. 
Danach spielt der Pegel an Enabled aber eh keine Rolle mehr, da die 
Endstufen bei <5V schon längst nicht mehr arbeiten werden.

Die Spannungsbegrenzung mit Zener-Diode und Widerstand ist mit die 
einfachste (und damit auch sicherste) Form der Spannungsbegrenzung.
Schau einfach mal hier:
https://www.elektronik-kompendium.de/sites/slt/1012151.htm

Prinzipiell kannst Du es aber natürlich auch mit einem Spannungsregler 
machen (der dann allerdings auch die 48V vertragen muss!).

: Bearbeitet durch Moderator
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.