Hjemmebygget CNC-fræser – del 2 (styring)


I denne anden del af mit cnc-fræserprojekt vil jeg fortælle om styringsdelen af projektet. Jeg må advare om at der er gået nørd i dette indlæg… 🙂

Først et diagram:

Det er tegnet på schematics.com – link.  Den opmærksomme læser vil se at laseren i højre side ikke bliver nævnt i resten af indlægget… Det skyldes at jeg planlægger en blog om den alene…

Samlet var styringsdelen lidt pebret – men til gengæld masser af power og nem at strikke op uden at lave print eller andre kreative løsninger. Stepmotoren kostede €100. Stepmotorstyringerne €100 /stk, strømforsyningerne kostede 450 kr/stk og smoothstepper kostede ca. USD230. Så – i grove tal kostede det  spidsen af en jetjager 🙂

Stepmotorer

Jeg undersøgte muligheder, pris og behov på stepmotorer – og landede på 3 stk NEMA34 motorer. De to havde jeg i forvejen – de er faktisk omkring 25 år gamle… og fra en gang hvor jeg ville bygge stepmotorer på en SR80 metaldrejebænk. Desværre havde jeg hverken mekanik, elektronik eller software kundskaber nok til at lave noget praktisk færdigt dengang. Motorerne drejede men det var også det… Men nu kom motorerne altså til ære og værdighed.

Den sidste motor bestilte jeg ved cnc66.com. Det var en N34-9801 (link). Jeg kunne hverken finde eller skaffe datablade på de gamle. De er ca. samme størrelse som den nye, så antog jeg at det nok er stort set det samme… Og da de ikke er gået i stykker endnu er det nok ikke helt forkert :-).

NEMA betegnelsen fortæller noget om motorens fysiske størrelse. NEMA 34 er de største jeg har set i almindelig handel. De har en 86x86mm flange med 4 huller og en aksel i midten. N34-9801 kan holde til 4Arms og kunne levere et moment på 6.9Nm. Jeg havde ikke rigtigt nogen ide om hvor meget der er behov for – men jeg er nu bagefter godt tilfreds med valget. Det svære er at ud over at skulle indregne stigning på gevind og et ikke nærmere defineret tab i vanger, lejer og gevindskrue, ja hvor meget kraft skal der så bruge til at pløje en fræser gennem et materiale…

En praktisk detalje… Når man står med en stepmotor med 6 ledninger – og kun skal bruge de 4 – hvad gør man så? Jo – man tager et ohm-meter og måler modstanden mellem hver af tilledningerne. Der vil være forbindelser mellem dem i to par af 3 ledninger. Når man vælger hvilken ledning der skal ignoreres (midterudtaget skal ikke bruges) – ja så er det bare at lede efter forbindelsen med den største modstand. De to bør være ret ens og den sidste omkring det dobbelte af de to andre… Hvis motoren kører den forkerte vej rund kan man enten rette det i softwaren eller bytte + og – på den ene eller anden vikling (kun én vikling :-)).

Hvis man skulle have en 8-wire stepmotor så er processen lidt mere indviklet… Der vil alle vindingerne have samme modstand så i stedet for at måle skal man sætte strøm på to af vindingerne på skift. Man kan så bemærke om akslen bliver svær at rotere.  Den præcise proces må du lige google efter :-).

Stepmotor-driver

cnc-mill-controller (1)

Jeg bestilte også 3 stk DM856 stepmotordrivere (link) ved cnc66.com. Det er strømstyrede digitale stepmotordrivere der sørger for alt det praktiske bare man giver den en retning og et pulser. De kan konfigureres til den strøm man ønsker og man kan indstille hvor mange steps der skal være per omgang. Styringen forsøger at opdele de steps motoren uderstøtter i flere ved at styre strømmen i vindingerne gradvist fra den ene til den anden. Det lyder smart og besnærende – men træerne gror desværre ikke ind i himlen da praksis viser at der skal relativt store strømændringer til at flytte rotoren væk fra sine naturlige steps.  De skal forsynes med mellem 20 og 80V.

20151025_154549

Strømforsyninger

Jo højere forsyningsspænding jo hurtigere kan man steppe motorerne uden at de springer et step over. Så jeg valgte at købe 6 stk 36V 320W (8.9Adc) strømforsyninger ved Actec. De blev serieforbundet to og to.

cnc-mill-controller (1)

En detalje når man serieforbinder switchmode strømforsyninger er at sætte en diode i spærreretningen mellem + og – terminalerne. Det sikrer at forsyningerne kommer op samtidig når de tændes. Hvis man ikke har dem kan man risikere at ødelægge den af dem er der langsomst om at vågne til dåd. Forklaringen er at når man kigger ud i en primært kapacitiv belastning (de fleste strømforsyninger er kapacitive) – ja så oplever strømforsyningen at kigge ud i en kortslutning de første micro-/milisekunder. Er den ene forsyning så nogle milisekunder hurtigere om at stige i spænding så vil den hurtigste strømforsyningsspænding lægge sig over den langsomme med forkert fortegn – og det er ikke sikkert at den kan holde til det.

20151025_154524

Driverne er digitale og strømstyrede hvilket vil sige at de genererer firkantede pulser på motorerne og bruger motorernes induktion til at holde den strøm der er behov for. Det betyder at der er nogle meget stejle spændingsflanker på kablerne – noget der potentielt kan give EMC-problemer i form af E-feltskobling fra de strømbærende kabler til signalkabler i deres nærhed. For at forebygge dette valgte jeg at købe skærmede kabler. Skærmen forbandt jeg til strømforsyningens stel så der er en returvej for støjen.

Smoothstepper og breakout board

Den mest almindelige metode til at forbinde stepmotorer til en PC var (dengang) en parallelport. Det var jeg ikke så interesseret i da jeg ønskede at kunne bruge en laptop jeg havde til overs… Så – jeg fandt ud af at produktet SmoothStepper (link) var en USB device der kan forbinde MACH3 softwaren (se del 3) til stepmotorerne via USB. Så sådan en fætter købte jeg ved leverandøren i USA.

cnc-mill-controller (1)SmoothStepper er designet til at simulere to parallelporte. Så udgangene er i DIL-connectors (så man kan bruge fladkabel). Jeg skulle jo trække ledninger til steppperdriverne – så det nemmeste var at købe et breakout board med skrueterminaler. Det købte jeg ved cnc4pc.com som havde et board (“C25” – link) der var designet til at blive sat direkte oven på SmoothStepper .

20151025_154542

Endestop

Ud over power-siden af styringen er der også monteret endestop på alle akser. Endestop kan være en kilden affære fordi det er switche der i åben tilstand giver et højimpendant kredsløb der er meget sårbart for for E-feltskobling. Jeg trak dem først i uskærmet kabel – og stripsede dem fast til stepperkablerne. Dumt – meget dumt. Systemet detekterede endestop i tide og utide. Skærmede kabler og et skift til at bruge “normally closed” benet på microswitchen løste dog problemet.

cnc-mill-controller (1)

På X- og Y-akserne monterede jeg én switch og så en kant der følger med slæden til at detektere begge enderne med samme switch. Z-aksen kunne jeg ikke gøre det samme med da jeg gerne vil have justerbart endestop i den lave ende så jeg kan bruge det til at undgå at køre spindlen ned i bordet. Så derfor har jeg to switche i serie på Z-aksen.

EMC – lidt om stel, B- og E-felter

Ok – jeg tilstå det næste afsnit er kammet over nørde-kanten – bær over med mig 🙂

Når man strikker et system som dette op skal man sørge for at tænke på elektrisk støj fra starten – som eksemplet med endestop herover viser. Der er flere elementer i dette – men tre primære elementer indgår i overvejelserne: Håndtering af stel. E-feltskobling og B-feltskobling. Og lad mig med det samme sige at nedenstående selvfølgelig ikke er den fulde sandhed. Men det er håndregler nok til at få de fleste systemer til at køre…

Stel… Den store overvejelse går på at begrænse den strøm der løber i en given stelledning da strømmene vil give anledning til spændingsfald over lederne. Så første priritet er at undgå at signal/styrings stel og power stel løber i de samme ledere. I denne opstilling skal man tage stilling til om de tre power kredsløb skal referere til samme stel. Eller om stel alene skal samles på signalsiden? Jeg valgte at lade højstrømssiden være særskilt per motor ud fra filosofien at deres respektive returveje så rodes mindst muligt sammen. Jeg er uskker på om det mest korrekte ville være at sikre at de har samme reference ved at knytte strømforsyningernes stel sammen i et stjernepunkt. Jeg har ikke gjort det – og det virker fint som det er :-). På signal siden har steppercontrollerne differentielle input – men da SmoothStepper med breakout board er singled ended – ja så ender alle “-” ben i gnd.

B-felter er magnetisk kobling der skyldes et magnetfelt skabt af strømme i nærliggende kabler. B-felter kobler ind i det areal der udspændes af modtagerkredsløbets frem- og returvej. Det betyder at en nem beskyttelse mod B-feltskobling er at benytte parsnoet kabel. Når frem-og-retur-vej er parsnoet så vil arealvektoren skifte fortegn for hver vikling. Det betyder at to vindinger vil udligne hinanden (hvis de altså påvirkes ens). Desuden bliver arealerne meget små og dermed mindre sårbare i sig selv. 

E-felter er elektrisk feltkobling der skyldes stejle flanker på spændingerne. Særligt digitale switchkredsløb (som i stepmotorstyringerne) er tilbøjelige til at udsende denne type støj da udgangene består af transistorer /FET’er der switcher lynhurtigt og med høj frekvens. Metoden til at fjerne denne type støj er helst at fjerne det ved kilden hvilket man gør ved at “lægge flanken ned”. Gør man det ved at bruge længere tid på at drive transistoren i mætning – ja så betyder det større tab i transistoren – hvilket sjældent er en god ide. I stedet kan man benytte en såkaldt snubber der er en modstand og en kondensator i serie i parallel hen over switchen. Kredsløbet optager noget af energien i switchøjeblikket og hjælper derfor til at lægge flanken ned. Den næstbedste måde er at benytte differentielle signaler. Dvs. i stedet for at have ét signal med reference til stel, så har man to ledere hvor den ene går positivt og den anden går negativt (og omvendt). Indgangen der “læser” signalet trækker de to fra hinanden. Det betyder at en støjpuls på begge ledninger vil blive fjernet i modtageren (A-B). Hvis man ikke selv designer kredsløbet eller ikke har adgang til differentielle ud- og indgange – ja så er vi nødt til at beskytte os på anden vis. Det kan man gøre med skærmede kabler hvor skærmen giver en god returvej for det koblede e-felt. Dermed holdes støjen i skærmen og lederne inden i skærmen ligger beskyttet.

Den mekaniske montage

Jeg byggede det hele ind i et gammelt styreskab. Og satte en blæser (med filter) i så stepperdriverne ikke bliver for varme. Forbindelserne til motorer og endestop er lavet gennem stik og kabler. Jeg monterede et nødstop som slukker for strømforsyningerne – men holder strøm på styringen. Det betyder at Mach3 ikke går i spunk. Der er en del grej der også skal have 230V (spindel, støvsuger, arbejdslys etc.). Til det formål monterede jeg to 3-stiksdåser – og lod den ene køre med nødstop og den anden uden.

20151025_154625

Og her er det samlede skab – i lukket stand.

20151103_200918

Og i åben stand:

20151103_200930

Jeg mangler at få lavet ordentlig kabelføring til strømforsyningen i bunden. Jeg lavede det om i forbindelse med at jeg lavede Laser-graveringsmodulet – og ja det mangler lidt soignering 🙂

Alt i alt