Denford triac VMC LinuxCNC konvertering
Denford triac VMC LinuxCNC konvertering
Köpte på mig ännu en Denford Triac VMC fräs.
Denna gång får det bli en projektråd om konverteringen, både som en dokumentationstråd och som en visningstråd.
Först lite data om fräsen:
Tillverkad: Nov 1993
Spindle: 1hp (0.75 kw) DC
Matning: 240v/11A, 1 phase
Vikt: 380kg
Arbetsområde: 290x170x200mm
Spindle: BT35
Max Spindle speed: 4000rpm
Max Feedrate: 1500mm/min
Verktygsväxlare: Karusell, 6 platser
Kulskruvar: x, y, z 16mm, 5mm pitch
Arbetsbord: 3st 10mm T-slots
Storlek: Fräsen - 1805x1420x1090mm, Elskåp - 800x600x360mm
Tyvärr så har jag ingen bild på lastning / transport. Jag var uppe och hämtade den med ett vanligt bilsläp. Den begränsade vikten på bara 380 kg gjorde detta möjligt. Storleken är heller inget problem.
Har tyvärr heller ingen bild på hur den såg ut precis när man fått in den i verkstaden. Direkt monterades luckorna av. Anledningen till detta kan skymtas på den vänstra plåten, men mycket tydligare när man väl fått av plåten i mitten.
Inte helt trevligt och liten doft av sur mjölk.
Det går alltså inte att få av täckplåten till baljan utan att först ta av luckorna eftersom luckorna sitter skruvade ovanpå plåtarna! Kanske inte helt genomtänkt när kopplingsboxen till luckbrytaren sitter fast på vänstra luckan. Dessutom klamrad på båda sidor om boxen. För att få bort luckan måste man då lossa kabeln och dra ut den från boxen. Hade varit bättre att ha boxen i bakre biten och sedan dragit ut kablarna till brytaren. Då hade man inte behövt ha en löst hängande avisolerad kabelände efter man tagit bort luckan. Vad finner man då i baljan?
Trevlig sörja som upplöst färg simmar runt i! Vänstra sidan inget problem, men högra var värre. Sitter en stolpe i ett uttag i plåten. Försöker man vika upp högersidan av plåten går kylvätskepumpen i oljepumpen. Vänstersidan så går nippeln till kylslangen i pumpen.
Efter mycket trixande så kommer man fram till att enda möjligheten är att vrida ner nippeln, lyfta vänstersidan av plåten och sedan dra ut den framåt. Såg lika vidrigt ut under den som vänstersidan.
Nästa steg blir att tappa ur så mycket som möjligt....
(Fortsättning följer)
Denna gång får det bli en projektråd om konverteringen, både som en dokumentationstråd och som en visningstråd.
Först lite data om fräsen:
Tillverkad: Nov 1993
Spindle: 1hp (0.75 kw) DC
Matning: 240v/11A, 1 phase
Vikt: 380kg
Arbetsområde: 290x170x200mm
Spindle: BT35
Max Spindle speed: 4000rpm
Max Feedrate: 1500mm/min
Verktygsväxlare: Karusell, 6 platser
Kulskruvar: x, y, z 16mm, 5mm pitch
Arbetsbord: 3st 10mm T-slots
Storlek: Fräsen - 1805x1420x1090mm, Elskåp - 800x600x360mm
Tyvärr så har jag ingen bild på lastning / transport. Jag var uppe och hämtade den med ett vanligt bilsläp. Den begränsade vikten på bara 380 kg gjorde detta möjligt. Storleken är heller inget problem.
Har tyvärr heller ingen bild på hur den såg ut precis när man fått in den i verkstaden. Direkt monterades luckorna av. Anledningen till detta kan skymtas på den vänstra plåten, men mycket tydligare när man väl fått av plåten i mitten.
Inte helt trevligt och liten doft av sur mjölk.
Det går alltså inte att få av täckplåten till baljan utan att först ta av luckorna eftersom luckorna sitter skruvade ovanpå plåtarna! Kanske inte helt genomtänkt när kopplingsboxen till luckbrytaren sitter fast på vänstra luckan. Dessutom klamrad på båda sidor om boxen. För att få bort luckan måste man då lossa kabeln och dra ut den från boxen. Hade varit bättre att ha boxen i bakre biten och sedan dragit ut kablarna till brytaren. Då hade man inte behövt ha en löst hängande avisolerad kabelände efter man tagit bort luckan. Vad finner man då i baljan?
Trevlig sörja som upplöst färg simmar runt i! Vänstra sidan inget problem, men högra var värre. Sitter en stolpe i ett uttag i plåten. Försöker man vika upp högersidan av plåten går kylvätskepumpen i oljepumpen. Vänstersidan så går nippeln till kylslangen i pumpen.
Efter mycket trixande så kommer man fram till att enda möjligheten är att vrida ner nippeln, lyfta vänstersidan av plåten och sedan dra ut den framåt. Såg lika vidrigt ut under den som vänstersidan.
Nästa steg blir att tappa ur så mycket som möjligt....
(Fortsättning följer)
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Denford triac VMC LinuxCNC konvertering
ahhh...var alltså du som lyckades lägga vantarna på John_E:s maskin...skall bli spännande att följa denna tråd.
Kom ihåg att vi vill se måååånga bilder
Kom ihåg att vi vill se måååånga bilder

Re: Denford triac VMC LinuxCNC konvertering
Styrsystemet är ett hopkok av delar.
De maskinnära bitarna, styrningen och stegmotor drivarna, kommer från Baldor. För att vara mera exakt deras Eurosystem.
Över detta system sitter där sedan en gammal PC, en 486DX.
Denna PC kör kör DOS. Kopplingen mellan PC'n och styrsystemet är en RS232 lina.
Tangentbordet sitter på en andra seriell port på PC'n.
Om man tittar in i skåpet (datorn har suttit skruvad på insidan av luckan)
Ursäkta den suddiga bilden Längst ned sitter Eurosystemet i racket
Längst upp till höger spindel styrningen med tillhörande choke.
Uppe till vänster, säkringar sedan reläer som styr pneumatiken till verktygsväklaren.
Mitten bara kopplingsplintar
Under dessa två transformatorer och I/O från Eurosystemet.
Lilla lådan i mitten på högersidan är diskettstationen till datorn.
Kablarna längs ned är datorkablarna, skärm, ström, ström till monitor, tangentbord etc.
Om man tittar närmare på Eurosystemet Så ser man de tre stegmotor korten i mitten av racket.
Beteckningen på dessa är SD13, kommer från Parker / digiplan.
Det är 3A, 60V (70v absulute max rating) chopping drivers. Max stegfrekvens är 20kHz
Längst till vänster sitter CPU kortet, bredvid detta ett "custom" card
På CPU kortet sitter det en 196, en kontakt ned på bakplanet som innehåller bl.a. stegmotor signaler, Digitala IO, status signaler etc. På CPU kortet sitter där även en "extension connector". Det är denna "custom" kortet är kopplat. Ser ut att vara en helt vanlig parallell bus, multiplexad data/adress med ALE signal. Sedan en vanlig RD/WR när data skall läsas.
Frågetecknet är hur OCS signalen används.
"Custom" kortet Uppe till höger verkar vara spänningsregulator.
Nere till höger en isolerad analog ut signal, antagligen till spindelhastighetsreglering.
Nere till vänster, en extern timer krets, antagligen att generera en PWM till analog ut delen.
Sitter även en programerbar logik krets. Gissar på avkodning av adress.
Planen när man sett allt detta är att behålla allt utom cpu kortet. Ersätta detta med ett eget kort.
Koppla step/dir signalerna direkt till parallellporten på styrdatorn (ny, ej befintlig 486) och sköra med LinuxCNC.
I/O signalerna kopplas genom en AVR som kör modbus kommunikation upp till LinuxCNC.
IO signalerna är enligt dokumentationen till befintliga cpu kortet 74HCT244 på ingångarna, 10k pullup. ULN2803 på utgångarna.
Även stegmotorsignalerna är ULN2803.
Homeswitch och gränslägesingångar också 74HCT244.
Jag gissar att jag även lägger verktygsväxlarlogiken i AVR'n. Alternativet är i ladder i LinuxCNC och bara io signalerna över modbus.
Måste "bara" göra lite reverse eng. för att ta reda på mur timer chippet är kopplat, vilka adresser man skall skriva till och ungefär vilken frekvens som AO steget vill ha.
De maskinnära bitarna, styrningen och stegmotor drivarna, kommer från Baldor. För att vara mera exakt deras Eurosystem.
Över detta system sitter där sedan en gammal PC, en 486DX.
Denna PC kör kör DOS. Kopplingen mellan PC'n och styrsystemet är en RS232 lina.
Tangentbordet sitter på en andra seriell port på PC'n.
Om man tittar in i skåpet (datorn har suttit skruvad på insidan av luckan)
Ursäkta den suddiga bilden Längst ned sitter Eurosystemet i racket
Längst upp till höger spindel styrningen med tillhörande choke.
Uppe till vänster, säkringar sedan reläer som styr pneumatiken till verktygsväklaren.
Mitten bara kopplingsplintar
Under dessa två transformatorer och I/O från Eurosystemet.
Lilla lådan i mitten på högersidan är diskettstationen till datorn.
Kablarna längs ned är datorkablarna, skärm, ström, ström till monitor, tangentbord etc.
Om man tittar närmare på Eurosystemet Så ser man de tre stegmotor korten i mitten av racket.
Beteckningen på dessa är SD13, kommer från Parker / digiplan.
Det är 3A, 60V (70v absulute max rating) chopping drivers. Max stegfrekvens är 20kHz
Längst till vänster sitter CPU kortet, bredvid detta ett "custom" card
På CPU kortet sitter det en 196, en kontakt ned på bakplanet som innehåller bl.a. stegmotor signaler, Digitala IO, status signaler etc. På CPU kortet sitter där även en "extension connector". Det är denna "custom" kortet är kopplat. Ser ut att vara en helt vanlig parallell bus, multiplexad data/adress med ALE signal. Sedan en vanlig RD/WR när data skall läsas.
Frågetecknet är hur OCS signalen används.
"Custom" kortet Uppe till höger verkar vara spänningsregulator.
Nere till höger en isolerad analog ut signal, antagligen till spindelhastighetsreglering.
Nere till vänster, en extern timer krets, antagligen att generera en PWM till analog ut delen.
Sitter även en programerbar logik krets. Gissar på avkodning av adress.
Planen när man sett allt detta är att behålla allt utom cpu kortet. Ersätta detta med ett eget kort.
Koppla step/dir signalerna direkt till parallellporten på styrdatorn (ny, ej befintlig 486) och sköra med LinuxCNC.
I/O signalerna kopplas genom en AVR som kör modbus kommunikation upp till LinuxCNC.
IO signalerna är enligt dokumentationen till befintliga cpu kortet 74HCT244 på ingångarna, 10k pullup. ULN2803 på utgångarna.
Även stegmotorsignalerna är ULN2803.
Homeswitch och gränslägesingångar också 74HCT244.
Jag gissar att jag även lägger verktygsväxlarlogiken i AVR'n. Alternativet är i ladder i LinuxCNC och bara io signalerna över modbus.
Måste "bara" göra lite reverse eng. för att ta reda på mur timer chippet är kopplat, vilka adresser man skall skriva till och ungefär vilken frekvens som AO steget vill ha.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Denford triac VMC LinuxCNC konvertering
Saneringsjobb avklarat!
Nu känns det som om man utan problem kan ta i den utan täta handskar.
Först avtappning av det som kan rinna. Sedan bara sleva upp det som inte rinner bl.a. gammal upplöst färg. Sedan ut för högtryckstvätt. Smidigt med en liten som kan lyftas på ett enkelt sätt.
Bra att lyftögla finns original.
På väg in igen efter tvätt. OK resultat Tyvärr har skärvätskan legat för länge i baljan så det har börjat rosta på ett ställe. Väntar nog med att göra vid det. Visst man är dum ibland hade nog varit enklast att bara svetsa över en ny plåtbit på insidan. Tål att funderas på.
Men jag är ändå nöjd med resultatet.
Nu kan man börja göra något konstruktivt.
Nu känns det som om man utan problem kan ta i den utan täta handskar.
Först avtappning av det som kan rinna. Sedan bara sleva upp det som inte rinner bl.a. gammal upplöst färg. Sedan ut för högtryckstvätt. Smidigt med en liten som kan lyftas på ett enkelt sätt.
Bra att lyftögla finns original.
På väg in igen efter tvätt. OK resultat Tyvärr har skärvätskan legat för länge i baljan så det har börjat rosta på ett ställe. Väntar nog med att göra vid det. Visst man är dum ibland hade nog varit enklast att bara svetsa över en ny plåtbit på insidan. Tål att funderas på.
Men jag är ändå nöjd med resultatet.
Nu kan man börja göra något konstruktivt.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Denford triac VMC LinuxCNC konvertering
Det är i varje fall korrosion av något slag. Kan även ha varit något som legat där som givit elektrolytisk korrosion. Djupaste är mer än hälften av plåttjockleken. Inte helt igenom, i varje fall än.
Lite tydligare bild.
Lite tydligare bild.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Denford triac VMC LinuxCNC konvertering
Vad skall man måla med som inte löser upp sig?
Inköpsställe?
Inköpsställe?
- tecno
- Inlägg: 27248
- Blev medlem: 6 september 2004, 17:34:45
- Skype: tecnobs
- Ort: Sparreholm, Södermanland N 59° 4.134', E 16° 49.743'
- Kontakt:
Re: Denford triac VMC LinuxCNC konvertering
Vad ska köra med för kylvätska? BIO Skär 2000 från Chemirol är det jag använder. En bra 2 komponent epoxi bör funka fint.
Re: Denford triac VMC LinuxCNC konvertering
Coolt projekt detta, kommer verkligen följas
Som Tecno skrev, 2-komponents epoxi färg är grymt bra.
Köp det i färghandeln, se bara till at ha munskydd, helst friskluftsmask när du målar för det luktar väldigt kraftigt.

Som Tecno skrev, 2-komponents epoxi färg är grymt bra.
Köp det i färghandeln, se bara till at ha munskydd, helst friskluftsmask när du målar för det luktar väldigt kraftigt.
Re: Denford triac VMC LinuxCNC konvertering
Skissat på ett nytt kontroller kort för att byta ut det befintliga eurosystem kortet.
Tänkte köra med step/dir/home över parallellporten.
I/O över seriell modbus.
Verktygsväxlarlogiken väljer jag antagligen att köra i AVR processorn. Alternativet är att göra den i ladder i LinuxCNC och bara köra mot IO direkt.
Eftersom jag kan C programmering mycket bättre än ladder lutar det åt att lägga det i AVR.
Eftersom AVR även styr spindeln så det behövs en ordentlig tanke angående säkerhet.
Befintlig E-stop knapp stänger redan strömmen till spindeln, men skulle vilja få in att LinuxCNC verligen körs.
T.ex. att spindeln stannar om datorn hänger sig eller om man råkar bara stänga av den utan nedstängning.
För att lösa detta så tänkte jag använda en chargepump (pulser) signal i parallellporten som går in i AVR.
Om denna inte pulsat inom viss tid så tycker avr att LinuxCNC är borta ock stänger spindel och stegmotorer.
Tanken är också att i LinuxCNC e-stop kedja lägga in att kommunikation med modbus är ok och att chargepump OK signalen också läses över med modbus och denna också skall vara satt. Detta så man inte kan få ur LinuxCNCV ur e-stop om inte hela kedjan fungerar.
Då borde man få en heltäckande lösning, att man kan bara köra spindeln och stegmotorer om
1. LinuxCNC snurrar ok (chargepump pulses finns)
2. Modbus fungerar enligt LinuxCNC (modbus communication ok)
3. Att LinuxCNC har läst över ChargePumpOK signalen över modbus (hela kedjan chargepump - avr - modbus fungerar)
4. E-stop knappen ej intryckt (stänger både elektrisk stänga strömmen och att AVR läser in knappstatus och sätter ChargepumpOK signalen om ej triggad, avr stänger även spindel och stegmotorer om knappstatus e-stop triggas.)
Har skissat ihop ett schema Nere till vänster parallellportskontakten, går till optokopplare. Kopplat stegmotorsignalerna genom en ULN2803 eftersom de är 24volts logik.
Nere till vänster, kontakten till bakplanet. Här går alla I/O signaler och stegmotor signaler.
Uppe till vänster AVR.
Uppe till höger, epansionskontakten som går till "custom" kortet som har bl.a. den isolerade digital-analog omvandlaren som styr spindelhastigheten.
Mellan AVR och expansionskontakten sitter latchar/driuvare/ingångsbuffer för I/O signalerna och adress/data till expansionskontakten.
Även ett första skiss på kretskortslayout. Inte helt klar än. Längs till vänster, bakplanskontakten.
Uppe höger parallellporten.
Mitt i, expansionskontakten.
Nere till höger passar ett kort som jag redan har, ett två ports usb-serie omvandlare (5volts logik). En port till Modbus och en för debugutskrifter.
Ser ut som om detta kan bli ett plug and play system. Ryck bara ut det befintliga kontrollerkortet och sätt i det nya. Inga andra ändringar i hårdvaran skall behövas. Förhoppningsvis....
Tänkte köra med step/dir/home över parallellporten.
I/O över seriell modbus.
Verktygsväxlarlogiken väljer jag antagligen att köra i AVR processorn. Alternativet är att göra den i ladder i LinuxCNC och bara köra mot IO direkt.
Eftersom jag kan C programmering mycket bättre än ladder lutar det åt att lägga det i AVR.
Eftersom AVR även styr spindeln så det behövs en ordentlig tanke angående säkerhet.
Befintlig E-stop knapp stänger redan strömmen till spindeln, men skulle vilja få in att LinuxCNC verligen körs.
T.ex. att spindeln stannar om datorn hänger sig eller om man råkar bara stänga av den utan nedstängning.
För att lösa detta så tänkte jag använda en chargepump (pulser) signal i parallellporten som går in i AVR.
Om denna inte pulsat inom viss tid så tycker avr att LinuxCNC är borta ock stänger spindel och stegmotorer.
Tanken är också att i LinuxCNC e-stop kedja lägga in att kommunikation med modbus är ok och att chargepump OK signalen också läses över med modbus och denna också skall vara satt. Detta så man inte kan få ur LinuxCNCV ur e-stop om inte hela kedjan fungerar.
Då borde man få en heltäckande lösning, att man kan bara köra spindeln och stegmotorer om
1. LinuxCNC snurrar ok (chargepump pulses finns)
2. Modbus fungerar enligt LinuxCNC (modbus communication ok)
3. Att LinuxCNC har läst över ChargePumpOK signalen över modbus (hela kedjan chargepump - avr - modbus fungerar)
4. E-stop knappen ej intryckt (stänger både elektrisk stänga strömmen och att AVR läser in knappstatus och sätter ChargepumpOK signalen om ej triggad, avr stänger även spindel och stegmotorer om knappstatus e-stop triggas.)
Har skissat ihop ett schema Nere till vänster parallellportskontakten, går till optokopplare. Kopplat stegmotorsignalerna genom en ULN2803 eftersom de är 24volts logik.
Nere till vänster, kontakten till bakplanet. Här går alla I/O signaler och stegmotor signaler.
Uppe till vänster AVR.
Uppe till höger, epansionskontakten som går till "custom" kortet som har bl.a. den isolerade digital-analog omvandlaren som styr spindelhastigheten.
Mellan AVR och expansionskontakten sitter latchar/driuvare/ingångsbuffer för I/O signalerna och adress/data till expansionskontakten.
Även ett första skiss på kretskortslayout. Inte helt klar än. Längs till vänster, bakplanskontakten.
Uppe höger parallellporten.
Mitt i, expansionskontakten.
Nere till höger passar ett kort som jag redan har, ett två ports usb-serie omvandlare (5volts logik). En port till Modbus och en för debugutskrifter.
Ser ut som om detta kan bli ett plug and play system. Ryck bara ut det befintliga kontrollerkortet och sätt i det nya. Inga andra ändringar i hårdvaran skall behövas. Förhoppningsvis....
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Denford triac VMC LinuxCNC konvertering
Har fått någon timme ledigt från andra projekt och lyckats göra det sista på kortet.
Filerna skickade!
Filerna skickade!
Re: Denford triac VMC LinuxCNC konvertering
Fick korten i fredags. Ser bra ut
Återanvändning är aldrig fel. I varje fall inte om man bara skall göra två kort totalt.
I varje fall nuvarande plan säger så. Men planer måste vara flexibla. Kunna ändras efter behov.
Fast visst problem var det ändå. Varför skall man göra det för trångt fastän man nästan har hur mycket plats som helst.
Fick klippa i kontakten för att få dit den. Men här fick jag inte ens plats med kontakterna som jag tänkt.
Inte heller kristallen går att få ned till kortet. Borde nog jobba mera på att göra footprints som visar verklig storlek.
Det får bli en annan gång, i annat projekt när man har mera tid.
Innan någon hinner påpeka det. Det finns avkopplingskondensatorer också. De sitter ytmonterade på baksidan.
Tanken med detta kort är att det skall ersätta det befintliga styrkortet som är baserat på en 80186 cpu. Stegmotorerna styrs direkt genom parallell porten, resten av GPIO signalerna genom AVR processorn som kör modbus uppåt mot LinuxCNC. AVR'en kör direkt mot de signaler som finns i bakplanet. De IO som sitter på "expander" kortet och "Custom" kortet som styr spindelhastighet styrs med befintlig system bus genom flatkabeln. Det är en parallell bus med separata address/data/rd/wr signaler.
Parallell porten kör genom optokopplare. Datorn blir inte helt optoisolerad från styrsystemet eftersom de båda seriekanalerna inte är isolerade. Det gör att jag kommer att få samma jord med de problem med jordslingor det kan ge.
Har kollat, man får kontakt med cpu'n och kan skriva om fuses m.m. m.h.a. en AVR Dragon.
Så långt all bra. Nu bara resten kvar.
Inga större problem med monteringen av komponenter
Det extra kortet är "bara" ett befintligt kort med USB hub och 2st FTDI232.Återanvändning är aldrig fel. I varje fall inte om man bara skall göra två kort totalt.
I varje fall nuvarande plan säger så. Men planer måste vara flexibla. Kunna ändras efter behov.
Fast visst problem var det ändå. Varför skall man göra det för trångt fastän man nästan har hur mycket plats som helst.
Fick klippa i kontakten för att få dit den. Men här fick jag inte ens plats med kontakterna som jag tänkt.
Inte heller kristallen går att få ned till kortet. Borde nog jobba mera på att göra footprints som visar verklig storlek.
Det får bli en annan gång, i annat projekt när man har mera tid.
Innan någon hinner påpeka det. Det finns avkopplingskondensatorer också. De sitter ytmonterade på baksidan.
Tanken med detta kort är att det skall ersätta det befintliga styrkortet som är baserat på en 80186 cpu. Stegmotorerna styrs direkt genom parallell porten, resten av GPIO signalerna genom AVR processorn som kör modbus uppåt mot LinuxCNC. AVR'en kör direkt mot de signaler som finns i bakplanet. De IO som sitter på "expander" kortet och "Custom" kortet som styr spindelhastighet styrs med befintlig system bus genom flatkabeln. Det är en parallell bus med separata address/data/rd/wr signaler.
Parallell porten kör genom optokopplare. Datorn blir inte helt optoisolerad från styrsystemet eftersom de båda seriekanalerna inte är isolerade. Det gör att jag kommer att få samma jord med de problem med jordslingor det kan ge.
Har kollat, man får kontakt med cpu'n och kan skriva om fuses m.m. m.h.a. en AVR Dragon.
Så långt all bra. Nu bara resten kvar.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Denford triac VMC LinuxCNC konvertering
Har hänt lite saker på vägen mot en fungerande fräs.
Fått igång modbus kommunikation mellan LinuxCNC och mitt kort. Kör med FreeModbus, http://freemodbus.berlios.de/
När man väl hade kommunikationen igång så valde jag att börja med det som många "glömmer" att göra. Det som har med säkerheten att göra. E-STOP.
Hur har jag då valt att göra detta?
Det jag vill är övervaka så många delar som möjligt, och om något inte gör det så stäng av.
Det som jag valt att övervaka är
1. E-stop knappen
Denna är "självklar". Denna finns redan på maskinen och den sitter i maskinens e-stop kedja. I denna kedja ingår då förutom e-stop knappen, limit switches x,y och z, spindle motor övertemp, spindle drive fault. Denna kedja styr ett relä som bryter spänningen till stegmotorer och spindel. Reläet sätter även en ingång på AVR.
Här var då redan de viktigaste löst, att om man trycker på knappen stannar maskinen. Detta utan att någon processor är inblandad. Detta är viktigt eftersom den kan vara "sista utväg" i händelse av vissa hårdvarufel.
2. LinuxCNC som sådant har också en e-stop signal. Om man sätter den här borde det ske samma sak, att spindeln stannar. Likadant om t.ex. LinuxCNC eller hela datorn hänger sig eller stängs av, så vill man att spindeln stannar. För att göra detta så har jag valt att använda "ChargePump" d.v.s. att LinuxCNC pulsar en utgång med jämt interval. Denna skickas vidare på parallell porten ut till Controller kortets AVR.
Mjukvaran i denna övervakar om denna signal pulsas i rätt interval, om puls inte kommer eller blir väldigt försenad (eller mycket tidig) så stänger AVR av spindeln och stegmotorerna.
3. AVR skickar även tillbaka status på e-stop kedjan och chargepump över modbus till LinuxCNC. Dessa signaler ingår då i LinuxCNC e-stop kedja, d.v.s man kan då inte ta ur LinuxCNC ur E-stop om man inte har i parallell ports kabeln eller modbus serie kabeln i. Även om man tappar någon av dessa så går LinuxCNC i e-stop, slutar skicka ChargePump pulser. Om AVR inte får in pulser så stänger den av spindeln.
Tycker detta verkar vara nästan heltäckande. Det finns ett problem kvar, om AVR processorn hänger sig så kan LinuxCNC inte stänga spindeln. E-stop "svampen" fungerar fortfarande. För att få lite bättre i detta senario är att ha igång watchdog i AVR d.v.s att man mjukvarumässigt måste "klappa hunden".
Vissa kallar detta på "kick the dog" eller "sparka på hunden". Tycker det låter trevligare med med "klappa", annars får man det lite konstiga "Om man inte sparkar på hunden så biter den". Låter visserligen inte helt bra med "Om man inte klappar hunden så biter den" heller. Eller den mer avancerade när man har ett watchdog interrupt innan reset. "Om man inte klappar (pet) hunden så skäller (bark) den för att sedan bita (bite)"
Då har man bara kvar ett senario, att AVR processorn slutar köra helt p.g.a. hårdvarufel. Då kan inte LinuxCNC stänga spindeln. Tycker ändå det är helt OK med tanke på att E-stop knappen kan ändå stänga den. Detta senario måste då också vara att AVR går sönder på så sätt att utgången drivs hög vilket inte är det normala reset tillståndet.
Eftersom modbus kommunikationen i LinuxCNC ligger i ladder delen så var det naturligt att göra LinuxCNC e-stop kedja där. Min ser ut såhär i dagsläget när man har LinuxCNC kvar i e-stop Och såhär när man tryckt ur e-stop Anledningen till TOF blocket är att jag ville att man bara skall komma ur e-stop när man trycker på knappen. Inte att man först trycker på knappen, märker att något är fel. Rättar till felet och att den då går ur e-stop. Jag vill i det läget att kan skall trycka ur estop igen.
Fungerar såhär.
1. Användaren trycker ur e-stop knappen.
2. LinuxCNC sätter estop-request-enable i en cykel, d.v.s. en mycket snabb puls.
3. Dessa rader i min hal fil
net estop-request-enable <= iocontrol.0.user-request-enable
net estop-request-enable => classicladder.0.in-02
skickar hal signalen till ladder, variable %I2, som jag satt estop_req namnet på.
4. estop_req triggar TOF blocket som genererar en puls för någon sekund.
5. I ladder kollas om estop (estop-out hal signal), ESTOP_MON (Fysisk estop knapp genom estop relä->AVR->modbus), CP_OK (LinucCNC Chargepump->Parallellport->AVR->modbus), Mod_Error att LinuxCNC tycker modbus fungerar och slutligen TOF.
När alla dessa är satta så sätts ESTOP_IN, vilken också självhåller.
CP_OK är lite fördröjd eftersom LinuxCNC först börjar skicka ut pulser när man går ur e-stop. Det är därför man måste ha TOF blocket.
6. ESTOP_IN skickas från ladder till ems-enable-in hal signal med dessa rader
net estop-in <= classicladder.0.out-00
net estop-in => iocontrol.0.emc-enable-in
Eftersom nu emc-enable-in är satt så tycker LinuxCNC att den inte är i e-stop längre.
Nästa steg att göra är antigen att få igång alla IO signaler genom modbus eller att få igång stegmotorerna. Får se vad jag känner för när tid ges.
Fått igång modbus kommunikation mellan LinuxCNC och mitt kort. Kör med FreeModbus, http://freemodbus.berlios.de/
När man väl hade kommunikationen igång så valde jag att börja med det som många "glömmer" att göra. Det som har med säkerheten att göra. E-STOP.
Hur har jag då valt att göra detta?
Det jag vill är övervaka så många delar som möjligt, och om något inte gör det så stäng av.
Det som jag valt att övervaka är
1. E-stop knappen
Denna är "självklar". Denna finns redan på maskinen och den sitter i maskinens e-stop kedja. I denna kedja ingår då förutom e-stop knappen, limit switches x,y och z, spindle motor övertemp, spindle drive fault. Denna kedja styr ett relä som bryter spänningen till stegmotorer och spindel. Reläet sätter även en ingång på AVR.
Här var då redan de viktigaste löst, att om man trycker på knappen stannar maskinen. Detta utan att någon processor är inblandad. Detta är viktigt eftersom den kan vara "sista utväg" i händelse av vissa hårdvarufel.
2. LinuxCNC som sådant har också en e-stop signal. Om man sätter den här borde det ske samma sak, att spindeln stannar. Likadant om t.ex. LinuxCNC eller hela datorn hänger sig eller stängs av, så vill man att spindeln stannar. För att göra detta så har jag valt att använda "ChargePump" d.v.s. att LinuxCNC pulsar en utgång med jämt interval. Denna skickas vidare på parallell porten ut till Controller kortets AVR.
Mjukvaran i denna övervakar om denna signal pulsas i rätt interval, om puls inte kommer eller blir väldigt försenad (eller mycket tidig) så stänger AVR av spindeln och stegmotorerna.
3. AVR skickar även tillbaka status på e-stop kedjan och chargepump över modbus till LinuxCNC. Dessa signaler ingår då i LinuxCNC e-stop kedja, d.v.s man kan då inte ta ur LinuxCNC ur E-stop om man inte har i parallell ports kabeln eller modbus serie kabeln i. Även om man tappar någon av dessa så går LinuxCNC i e-stop, slutar skicka ChargePump pulser. Om AVR inte får in pulser så stänger den av spindeln.
Tycker detta verkar vara nästan heltäckande. Det finns ett problem kvar, om AVR processorn hänger sig så kan LinuxCNC inte stänga spindeln. E-stop "svampen" fungerar fortfarande. För att få lite bättre i detta senario är att ha igång watchdog i AVR d.v.s att man mjukvarumässigt måste "klappa hunden".
Vissa kallar detta på "kick the dog" eller "sparka på hunden". Tycker det låter trevligare med med "klappa", annars får man det lite konstiga "Om man inte sparkar på hunden så biter den". Låter visserligen inte helt bra med "Om man inte klappar hunden så biter den" heller. Eller den mer avancerade när man har ett watchdog interrupt innan reset. "Om man inte klappar (pet) hunden så skäller (bark) den för att sedan bita (bite)"
Då har man bara kvar ett senario, att AVR processorn slutar köra helt p.g.a. hårdvarufel. Då kan inte LinuxCNC stänga spindeln. Tycker ändå det är helt OK med tanke på att E-stop knappen kan ändå stänga den. Detta senario måste då också vara att AVR går sönder på så sätt att utgången drivs hög vilket inte är det normala reset tillståndet.
Eftersom modbus kommunikationen i LinuxCNC ligger i ladder delen så var det naturligt att göra LinuxCNC e-stop kedja där. Min ser ut såhär i dagsläget när man har LinuxCNC kvar i e-stop Och såhär när man tryckt ur e-stop Anledningen till TOF blocket är att jag ville att man bara skall komma ur e-stop när man trycker på knappen. Inte att man först trycker på knappen, märker att något är fel. Rättar till felet och att den då går ur e-stop. Jag vill i det läget att kan skall trycka ur estop igen.
Fungerar såhär.
1. Användaren trycker ur e-stop knappen.
2. LinuxCNC sätter estop-request-enable i en cykel, d.v.s. en mycket snabb puls.
3. Dessa rader i min hal fil
net estop-request-enable <= iocontrol.0.user-request-enable
net estop-request-enable => classicladder.0.in-02
skickar hal signalen till ladder, variable %I2, som jag satt estop_req namnet på.
4. estop_req triggar TOF blocket som genererar en puls för någon sekund.
5. I ladder kollas om estop (estop-out hal signal), ESTOP_MON (Fysisk estop knapp genom estop relä->AVR->modbus), CP_OK (LinucCNC Chargepump->Parallellport->AVR->modbus), Mod_Error att LinuxCNC tycker modbus fungerar och slutligen TOF.
När alla dessa är satta så sätts ESTOP_IN, vilken också självhåller.
CP_OK är lite fördröjd eftersom LinuxCNC först börjar skicka ut pulser när man går ur e-stop. Det är därför man måste ha TOF blocket.
6. ESTOP_IN skickas från ladder till ems-enable-in hal signal med dessa rader
net estop-in <= classicladder.0.out-00
net estop-in => iocontrol.0.emc-enable-in
Eftersom nu emc-enable-in är satt så tycker LinuxCNC att den inte är i e-stop längre.
Nästa steg att göra är antigen att få igång alla IO signaler genom modbus eller att få igång stegmotorerna. Får se vad jag känner för när tid ges.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.