Extern styrning av CNC-fräs?

Robot, CNC, Pneumatik, Hydraulik, mm
Användarvisningsbild
strombom
Inlägg: 3305
Blev medlem: 27 maj 2003, 10:50:20
Ort: Västra Götaland
Kontakt:

Inlägg av strombom »

Jag körde algoritmen för varje steg som stegmotorerna tog, därför blev det väldigt tight om tid. Jag funderade även på att göra cirkulär interpolering, dokumentet du hittade var väldigt bra !

/Johan
Användarvisningsbild
Andax
Inlägg: 4379
Blev medlem: 4 juli 2005, 23:27:38
Ort: Jönköping

Inlägg av Andax »

Hittade ett fel i dokumentet jag länkade till.
På sidan 2 i programkoden står det
2DeltaXErrorY -= DeltaX;
vilket ska vara
2DeltaXErrorY -= 2*DeltaX;
Användarvisningsbild
Andax
Inlägg: 4379
Blev medlem: 4 juli 2005, 23:27:38
Ort: Jönköping

Inlägg av Andax »

Strömbom: Jag har precis fått hem ett EZ-USB dev kit från Cypress för deras FX2 kretsar.
FX2 kretsarna (CY7C68013A etc) har USB 2.0 och en 8051 kärna på 48 MHz.
Med dessa kretsar är det ju en smal sak att hinna skicka ner en föruträknad stegningsvektor som sedan exekveras av 8051 processorn.
En fyraxlig stegmotorstyrning kräver då bara 1 byte per stegning (2 bitar per kanal). Och med en maximal stegfrekvens på uppåt 50kHz blir det bara ca 50kbytes/s över USB-2.0 linan vilket är försumbart.

Frågan är hur kritisk feed rate är, dvs med vilken precision som man ska takta stegningsvektorn? Hur ska man hantera övergången mellan olika segment med avseende på acceleration och hastighet?
Användarvisningsbild
strombom
Inlägg: 3305
Blev medlem: 27 maj 2003, 10:50:20
Ort: Västra Götaland
Kontakt:

Inlägg av strombom »

Jag vet inte hur "riktiga" maskiner gör men jag skulle ju vilja att den tittar på flera koordinater framåt i tiden så att den kan avgöra vilken matningshastighet den skall passera nästa koordinat i.

Jag taktade ut pulserna med en timer, så beräkning av matningshastighet borde man kunna sköta i långsammare takt i programmets huvudloop?

Eller hade du tänkt att sköta alla beräkningar i PC:n och bara ha 8051 att agera som buffert för att kunna få en jämn pulsningstakt ?

/Johan
Användarvisningsbild
Andax
Inlägg: 4379
Blev medlem: 4 juli 2005, 23:27:38
Ort: Jönköping

Inlägg av Andax »

Nu har jag kommit en bit på vägen med mitt projekt med extern styrning av en fräs/svarv.
Jag har gjort en G-code parser som kan tolka g-kod och sedan generera en lista med stegkommandon. (Består i princip bara av en bit för rikning och en bit för om axeln ska stega och sedan en tid som stegkommandot skall ta)

Simulerar man en stegmotorstyrning och skickar in listan stegkommandon kan man få en bild av vad man skulle fått om den styrde en riktig fräs.

Bild

På så vis har jag kunnat debugga parsern. Parsern är långt ifrån helt färdig men den klarar G0-G3 mm., dvs både linjär och arc interpolering.
Jag har förberett för 6 axlig styrning (X,Y,Z,A,B,C). Är det tillräckligt eller finns det realistiska fall som kommer att kräva fler än 6 axlar?

Upplägget är att jag genererar en stegningslista med önskade steghastigheter.
Tanken är att jag ska kunna låta den listan gå genom ett filter som lägger till backlash-kompensering och sedan optimerar stegtiderna så att man aldrig överstiger de programmerade hastigheterna (pulser/sekund) eller accelerationerna (pulser/sekund/sekund).

Kvar är sedan att skicka ner stegningslistan till mikrokontrollern så att den kan utföra stegningen.

Jag tar gärna emot typiska inställningar på hastigheter och accelerationer för olika stegmotorstyrda fräsar/svarvar och även andra tips eller så.

/Andax
Användarvisningsbild
Chribbe76
EF Sponsor
Inlägg: 1167
Blev medlem: 17 januari 2004, 22:43:17
Ort: Stockholm

Inlägg av Chribbe76 »

Frågan är hur kritisk feed rate är, dvs med vilken precision som man ska takta stegningsvektorn? Hur ska man hantera övergången mellan olika segment med avseende på acceleration och hastighet?
En uppskattning(gissning) är att du bör ha en upplösning på c:a 5µsek på stegningen om den ska kunna köra stegmotorer i 40Khz.

Riktiga cnc-maskiner bromsar väldigt lite(eller inte alls) mellan linjära rörelser(G1), dom genar istället.
Men för en hobbymaskin räcker det kanske med inbromsning, man har ju inte så bråttom.
(Hur funkar Mach3 när det gäller inbromsning/avrundning av skarpa konturer?)

Du behöver inte fler än 6axlar.
En fräsmaskin/svarv med bara en verktygsbärare behöver inte fler än 5axlar.
Användarvisningsbild
Andax
Inlägg: 4379
Blev medlem: 4 juli 2005, 23:27:38
Ort: Jönköping

Inlägg av Andax »

Anledningen till att jag började med det här hobbyprojektet, förutom utmaningen, var att jag ville hitta en bra algoritm som ger hyffsad prestanda med backlash-kompensering aktiverad. De flesta program som jag sett mer eller mindre stannar upp helt mellan varje segment som den förflyttar sig. Genom lite optimering borde man kunna "smeta" ut backlash-kompenseringen och på så sätt få bra nogggrannhet utan allt för stor prestandaförlust.

När de riktiga maskinerna genar gäller det att hålla reda på hur mycket så att de inte tar bort material man gärna vill ha kvar!!
Användarvisningsbild
Chribbe76
EF Sponsor
Inlägg: 1167
Blev medlem: 17 januari 2004, 22:43:17
Ort: Stockholm

Inlägg av Chribbe76 »

Om du vill ha bra "flyt" i rörelserna ska du absolut ha med att den genar, jag tror att det inte krävs mycket för att man ska se skillnad.
Ni får gärna ifrågasätta det här, jag har trotts allt ingen erfarenhet av hobbymaskiner.
Det jag har erfarenhet av är att 500Kg ska flytta sig, då är det självklart att man inte vill stanna helt vid varje hörn.

Jag gillar ide'n att datorn ska få jobba i lugn och ro och skicka data till styrelektroniken när den kan.

Men har du tänkt på att om du kör en svarv och ska svarva gänga så behöver axelrörelserna synkas med spindelns rotation.
I ditt system kommer du ha en delay som inte är konstant alltså behöver signalen från spindeln ha en tidskod så att datorn vet hur gammal signalen är.
Alternativ2 är att du servostyr spindelmotorn synkat med axlarna men det skulle vara att krångla till det mer än nödvändigt.
Alternativ3: Styrelektroniken får själv kompensera axelrörelserna utifrån spindelpositionen när man gängar.

Och nu svarar du säkert att det helt enkelt inte ska avändas till svarvning :)
Användarvisningsbild
Andax
Inlägg: 4379
Blev medlem: 4 juli 2005, 23:27:38
Ort: Jönköping

Inlägg av Andax »

Jo det är tänkt att den ska användas till svarvning, och då även för gängning. Fast inte i första versionen.

Gängningen tänkte jag skulle göras genom att man med en optogivare kan få en puls in till mikrokontrollern vid varje varv på spindeln för att mäta hastigheten.
Hur många steg stegmotorn ska gå per varv bestäms ju av gängstigningen. Dividerar man tiden för ett varv med antal steg får man tiden mellan varje stegning.

Detta får göras helt nere i mikrokontrollern utan hjälp av PCn. PCn skickar bara ner parametrarna, typ start-pos stopp-pos, stigning etc.

Problemet blir väl accelerationen i början på gängningscykeln. Man vill ju att stegmotorn ska ha kommit upp i rätt hastighet och vara på rätt plats när spindeln står i ett visst läge så att man träffar rätt ingång på gängan gång på gång under hela förloppet.
Det blir lite att klura på. Några tips?
Användarvisningsbild
tecno
Inlägg: 27252
Blev medlem: 6 september 2004, 17:34:45
Skype: tecnobs
Ort: Sparreholm, Södermanland N 59° 4.134', E 16° 49.743'
Kontakt:

Inlägg av tecno »

MACH3
Användarvisningsbild
Andax
Inlägg: 4379
Blev medlem: 4 juli 2005, 23:27:38
Ort: Jönköping

Inlägg av Andax »

Och?

Techno, Mach3 är bra, det behöver man inte vara återförsäljare för att tycka, men mitt projekt är till för att det är kul och lärorikt.

Förövrigt tror jag faktiskt att det har potential att bli bättre i vissa avseenden än vissa kommersiella produkter som finns just nu.
Användarvisningsbild
tecno
Inlägg: 27252
Blev medlem: 6 september 2004, 17:34:45
Skype: tecnobs
Ort: Sparreholm, Södermanland N 59° 4.134', E 16° 49.743'
Kontakt:

Inlägg av tecno »

Missförstå mig rätt, det är ju bara så mycket att göra innan du får till det hela och det finns ju 'färdiga' lösningar därute. Tycker att det låter som ett mycket intressant projekt och följer gärna dina framsteg.
jeda007
Inlägg: 250
Blev medlem: 27 september 2003, 14:55:18
Ort: Marks komun
Kontakt:

Inlägg av jeda007 »

Hej!

Ett roligt projekt du dragit igång, jag var inne på något liknande men en PLC som mellanlänk!
Men mitt kunnande räkte inte till :( hoppas ditt projekt går bättre :)

Mvh Jeda007
Användarvisningsbild
Andax
Inlägg: 4379
Blev medlem: 4 juli 2005, 23:27:38
Ort: Jönköping

Inlägg av Andax »

Techno, ok. 90% av projekten på forumet finns redan i någon form. De flesta vill bygga en egen version för att lära sig, eller göra en version som är bättre (eller annorlunda) i någon avseende eller bara ha roligt. Det är en mäktig känsla att se något man byggt fungera som det är tänkt.

Jeda, jag kan för lite om PLC men jag tror att det är för låg prestanda på en PLC för att kunna styra stegmororerna med tillräcklig noggrann timing.

Projektet fortgår som tänkt.
Dock dök ett problem upp med mitt EZ-USB FX2 kit upp. Det funkade inte som det skulle. Hade ett testprogram som gjorde rinnande ljus med 4 lysdioder. Ibland slutade lysdioderna rinna, men programmet forsatte. Det kunde jag se med ett oscilloskop eftersom jag togglade en annan I/O pinne som felsökning. När jag sedan mätte med proben på en GAL-krets som sköter addressavkodningen till bl.a. lysdioderna funkade det igen. :?
Problemet var att det fanns oanvända anslutningar på kretsen som låg och flöt. När jag probade dessa jordades de och då funkade det. Så nu är devkit-kortet modifierat. Det borde Cypress tänkt på! :)

Nästa steg blir att få till prgrammet på PCn som streamar ner stegningsvektorerna via USB 2.0 och programmet i mikrokontrollern som tar emot datat. Det fanns med många bra exempel med devkitet som man kan modifiera. Har börjat lite smått med det. Blir förhoppningsvis klar i helgen.

En fråga om USB. Är det någon som vet några VID/PID man kan sätta på kortet som är till för hobbybruk som sannolikheten är minimal att krocka med någon annan device eller drivrutin?
jeda007
Inlägg: 250
Blev medlem: 27 september 2003, 14:55:18
Ort: Marks komun
Kontakt:

Inlägg av jeda007 »

Hej!

Inga problem prestandan på plc:n har en 3:axlig servomodul som sköter om motordriften, det finns redan färdiga programmoduler för interpollering etc.
Mitt problem är hur man skall lägga upp kommunikationen från datorn, samt att jag inte programerat mycket i Mitsubichi förut!

Men jag har lärt mig mycket med nuvarande projekt om hur cnc fungerar får väl fortsätta med detta projekt sedan kanske man kan ge sig på PLC:n.
Vad jag sett brukar det vara en PLC till grund för dom mesta CNC, till exempel Siemens eller Fanuc!

Mvh jeda007
Skriv svar