EMCO 5 CNC moderniseren
Moderator: Moderators
Re: EMCO 5 CNC moderniseren
In je plaatje liggen de grounds al aan elkaar .
Als je grounding schema goed is opgezet mag je in de schakelkast alle grounds aan elkaar knopen. Maar ik ken je situatie verder niet. Een PC zit vaak niet in de schakelkast en als het een wat ouder exemplaar is en de kabels allemaal wat langer zijn dan is een galvanische scheiding tussen de parallel poort en de rest van de besturing wel een veilige keus.
Als je grounding schema goed is opgezet mag je in de schakelkast alle grounds aan elkaar knopen. Maar ik ken je situatie verder niet. Een PC zit vaak niet in de schakelkast en als het een wat ouder exemplaar is en de kabels allemaal wat langer zijn dan is een galvanische scheiding tussen de parallel poort en de rest van de besturing wel een veilige keus.
Re: EMCO 5 CNC moderniseren
Verhip, zo kun je het ook interpreteren. Maar op de PCB liggen ze niet aan elkaar en dat was ook niet de bedoeling. Ter leering ende vermaeck: Hoe zou je het dan moeten opnemen in het schema?
Assumptions are the mother of all $%^& ups.
Twee keer meten is zeker weten, als je weet wat je meet...
Twee keer meten is zeker weten, als je weet wat je meet...
Re: EMCO 5 CNC moderniseren
Gebruikelijk is dat je verschillende symbolen voor verschillende grounds gebruikt als die er zijn. Of je zet er een label bij.
Maar het is een beetje flauw van mij hoor, ik had al wel een beetje verwacht dat het niet aan elkaar zou hangen...
Maar het is een beetje flauw van mij hoor, ik had al wel een beetje verwacht dat het niet aan elkaar zou hangen...
Re: EMCO 5 CNC moderniseren
Tijdje stil geweest, maar niet stil gezeten. Ondertussen een mock-up gemaakt voor de bedieningsconsole.
Met een slijptol deze passend gemaakt in de originele machine kast (hier voordat de tol er in ging).
De knoppen zijn met een Arduino aan LinuxCNC geknoopt. Zo hou ik de parallelle poort (de tablet heeft er maar één) beschikbaar voor de zaken die echt real-time moeten. Voor de communicatie tussen de Arduino en de HAL heb ik een eigen component geschreven. Het verbinden van de pinnen wordt hiermee wel erg makkelijk.
Feed en spindle override
Voor de feed en spindle override heb ik twee 20 ppr encoders aan de rechterkant van de console opgenomen. Deze hebben een drukknop geïntegreerd, waarmee de feed en spindle override direct weer kan worden gereset. Op het moment dat de feed of spindle override is geactiveerd (dus ongelijk aan 100 %) wordt dit weergegeven door middel van een LED.
Het HAL-bestand voor is relatief simpel (meeste regels zijn nog nodig voor de LED ):
MPG
De MPG bestaat uit een handwheel, axis-selector en step-selector. De counter voor de handwheel zit verwerkt in de Arduino en de positie wordt iedere ms uitgelezen. Voor een handwheel is dit meer dan voldoende. Het resultaat wordt nog door een lowpass-filter heen gehaald om de bewegingen lekker soepel te laten lopen.
Vanwege onvoldoende beschikbare pins op de Pro Micro gebruik ik voor de selectors een truc: hier zit een weerstandsladder in en de waarde wordt hiervan analoog uitgelezen. Aangezien het resultaat van de step-selector een float moet zijn, is de aanpak om de 3 stapgroottes door middel van een multiplexer (4 keuzes) te selecteren. De bits die de multiplexer aansturen zijn de meest significante bits (8 en 9) van de ADC-waarde die uit de Arduino komt. De code loopt lekker snel zonder de processor zwaar te belasten.
Voor de axis-selectie is het simpel: dit is gewoon aan of uit (X of Z) en kan daardoor met een simpele vergelijking. Eventueel kan deze aanpak makkelijk uitgebreid worden met een derde optie, zodat X, Y, en Z ook mogelijk is.
Cycle start, feed hold en Stop
De knoppen Start, Feed hold en Stop werken met de code die ik ook voor mijn frees-machine gebruik. Met Start wordt de cyclus gestart, die vervolgens kan worden gepauzeerd met Feed hold. Als de Feed hold actief is, dan:
Helaas hebben ze de verkeerde drukknoppen geleverd: deze hebben geen LED'jes . Maar uiteindelijk wil ik de knoppen ook van 'kerstverlichting' voorzien zodat de beschikbaarheid en functie van de de knoppen te zien is... Als iemand nog de LED-onderdelen van de standaard AliExpress in elkaar klik knoppen heeft, dan hoe ik me warm aanbevolen. De pakketten zullen nog wel langer duren met dat schip overdwars....
Noodstop
Las but not least: de noodstop. Deze loopt nadrukkelijk niet via de Arduino maar is opgenomen in het noodstop-circuit via de parallelle poort. Ik overweeg nog de noodstop aan te sluiten op de Enable van de drives, zodat deze ook werkt zonder de software.
Met een slijptol deze passend gemaakt in de originele machine kast (hier voordat de tol er in ging).
De knoppen zijn met een Arduino aan LinuxCNC geknoopt. Zo hou ik de parallelle poort (de tablet heeft er maar één) beschikbaar voor de zaken die echt real-time moeten. Voor de communicatie tussen de Arduino en de HAL heb ik een eigen component geschreven. Het verbinden van de pinnen wordt hiermee wel erg makkelijk.
Feed en spindle override
Voor de feed en spindle override heb ik twee 20 ppr encoders aan de rechterkant van de console opgenomen. Deze hebben een drukknop geïntegreerd, waarmee de feed en spindle override direct weer kan worden gereset. Op het moment dat de feed of spindle override is geactiveerd (dus ongelijk aan 100 %) wordt dit weergegeven door middel van een LED.
Het HAL-bestand voor is relatief simpel (meeste regels zijn nog nodig voor de LED ):
Code: Selecteer alles
# -----
# FEED OVERRIDE
# -----
addf wcomp.1 servo-thread
# - encoder
setp gmoccapy.feed.feed-override.count-enable true
net feed-override-encoder-counts gmoccapy.feed.feed-override.counts <= rawhid.0.encoder-01-count
net feed-override-encoder-reset gmoccapy.feed.reset-feed-override <= rawhid.0.digital-00-in
# - warning light on override
setp wcomp.1.min 99.9
setp wcomp.1.max 100.1
setp rawhid.0.digital-00-out-invert 1
net feed-override-scale wcomp.1.in <= gmoccapy.spc_feed.value
net feed-override-active wcomp.1.out => rawhid.0.digital-00-out
# -----
# SPINDLE OVERRIDE
# -----
addf wcomp.2 servo-thread
setp gmoccapy.spindle.spindle-override.count-enable true
net spindle-override-encoder-counts gmoccapy.spindle.spindle-override.counts <= rawhid.0.encoder-02-count
net spindle-override-encoder-reset gmoccapy.spindle.reset-spindle-override <= rawhid.0.digital-01-in
# - warning light on override
setp wcomp.2.min 99.9
setp wcomp.2.max 100.1
setp rawhid.0.digital-01-out-invert 1
net spindle-override-scale wcomp.2.in <= gmoccapy.spc_spindle.value
net spindle-override-active wcomp.2.out => rawhid.0.digital-01-out
De MPG bestaat uit een handwheel, axis-selector en step-selector. De counter voor de handwheel zit verwerkt in de Arduino en de positie wordt iedere ms uitgelezen. Voor een handwheel is dit meer dan voldoende. Het resultaat wordt nog door een lowpass-filter heen gehaald om de bewegingen lekker soepel te laten lopen.
Vanwege onvoldoende beschikbare pins op de Pro Micro gebruik ik voor de selectors een truc: hier zit een weerstandsladder in en de waarde wordt hiervan analoog uitgelezen. Aangezien het resultaat van de step-selector een float moet zijn, is de aanpak om de 3 stapgroottes door middel van een multiplexer (4 keuzes) te selecteren. De bits die de multiplexer aansturen zijn de meest significante bits (8 en 9) van de ADC-waarde die uit de Arduino komt. De code loopt lekker snel zonder de processor zwaar te belasten.
Voor de axis-selectie is het simpel: dit is gewoon aan of uit (X of Z) en kan daardoor met een simpele vergelijking. Eventueel kan deze aanpak makkelijk uitgebreid worden met een derde optie, zodat X, Y, en Z ook mogelijk is.
Code: Selecteer alles
# -----
# ENCODER
# -----
# Configure the encoder
# - put on thread
addf ilowpass.0 servo-thread
# - settings of ilowpass (slow start and stop)
setp ilowpass.0.scale 1000
setp ilowpass.0.gain 0.02
# Connect the pins
# - counter to the axis (scaled)
net mpg-encoder-counts ilowpass.0.in <= rawhid.0.encoder-00-count
net mpg-encoder-counts-scaled <= ilowpass.0.out
net mpg-encoder-counts-scaled => axis.x.jog-counts
net mpg-encoder-counts-scaled => axis.z.jog-counts
# -----
# SCALE
# -----
# Configure the multiplexer
# - put on thread
addf mux4.0 servo-thread
addf bitslice.0 servo-thread
# NOTE: the values have been divided by 1000 (ilowpass.0.scale).
setp mux4.0.in0 0.00025
setp mux4.0.in1 0.000025
setp mux4.0.in2 0.000025
setp mux4.0.in3 0.0000025
# Connect the pins
setp bitslice.0.in 3
net scale bitslice.0.in <= rawhid.0.analog-01-raw
net scale1 mux4.0.sel0 <= bitslice.0.out-08
net scale2 mux4.0.sel1 <= bitslice.0.out-09
# Send the output from mux4 to each axis jog scale
net mpg-scale <= mux4.0.out
net mpg-scale => axis.x.jog-scale
net mpg-scale => axis.z.jog-scale
# -----
# AXIS SELECTION
# -----
# Configure the multiplexer, converter and selector
# - put on thread
addf wcomp.0 servo-thread
addf conv-u32-float.0 servo-thread
# Send the output from the multiplexers to each axis enable
setp wcomp.0.min 512
setp wcomp.0.max 512
net axis_select_raw conv-u32-float.0.in <= rawhid.0.analog-00-raw
net axis_select conv-u32-float.0.out => wcomp.0.in
net mpg-x wcomp.0.over => axis.x.jog-enable
net mpg-z wcomp.0.under => axis.z.jog-enable
De knoppen Start, Feed hold en Stop werken met de code die ik ook voor mijn frees-machine gebruik. Met Start wordt de cyclus gestart, die vervolgens kan worden gepauzeerd met Feed hold. Als de Feed hold actief is, dan:
- kan het programma worden hervat door nogmaals op Feed-hold te drukken;
- kan de volgende programma-regel worden uitgevoerd (Step) door de Cycle-start te drukken.
Code: Selecteer alles
net cycle-start-button <= rawhid.0.digital-02-in
net feed-hold-button <= rawhid.0.digital-03-in
net stop-button <= rawhid.0.digital-04-in
# ROUTINE FOR START / STEP / PAUSE / RESUME PROGRAM
net pause-on <= halui.program.is-paused
net idle-on <= halui.program.is-idle
net run-on <= halui.program.is-running
# Routine for Run/Step
# - put on thread
addf and2.4 servo-thread
addf and2.5 servo-thread
# - run program
net cycle-start-button => and2.4.in0
net idle-on => and2.4.in1
net run-program <= and2.4.out
net run-program => halui.program.run
net run-program => halui.mode.auto
# - step pogram
net cycle-start-button => and2.5.in0
net pause-on => and2.5.in1
net step-program <= and2.5.out
net step-program => halui.program.step
# Routine for feed-hold / resume the program
# - put on thread
addf and2.6 servo-thread
addf and2.7 servo-thread
addf or2.0 servo-thread
addf toggle.0 servo-thread
addf toggle2nist.0 servo-thread
# - pause logic
net feed-hold-button => and2.6.in0
net pause-on => and2.6.in1
net pause-program <= and2.6.out
# - resume logic
net feed-hold-button => and2.7.in0
net run-on => and2.7.in1
net resume-program <= and2.7.out
# - toggle between pause and resume
net pause-program => or2.0.in0
net resume-program => or2.0.in1
net toggle-input toggle.0.in <= or2.0.out
net toggle-output toggle2nist.0.in <= toggle.0.out
net pause-on => toggle2nist.0.is-on
net toggle-pause halui.program.pause <= toggle2nist.0.on
net toggle-resume halui.program.resume <= toggle2nist.0.off
Noodstop
Las but not least: de noodstop. Deze loopt nadrukkelijk niet via de Arduino maar is opgenomen in het noodstop-circuit via de parallelle poort. Ik overweeg nog de noodstop aan te sluiten op de Enable van de drives, zodat deze ook werkt zonder de software.
Assumptions are the mother of all $%^& ups.
Twee keer meten is zeker weten, als je weet wat je meet...
Twee keer meten is zeker weten, als je weet wat je meet...
- hugo stoutjesdijk
- Donateur
- Berichten: 12053
- Lid geworden op: 02 mar 2011 17:04
- Locatie: elst (u)
- Contacteer:
Re: EMCO 5 CNC moderniseren
Als je nog ruimte hebt, zou ik er zeker nog een ijlgang override in zetten. Bij lastige klussen is het bijzonder comfortabel om de ijlgang 0 of heel laag te maken, dan wordt je niet ineens verrast door een snelle positionering op een plek waar dat niet uitkwam, terwijl je de voeding op een ander percentage wilt beïnvloeden.Tolp2 schreef: ↑28 mar 2021 23:20 Feed en spindle override
Voor de feed en spindle override heb ik twee 20 ppr encoders aan de rechterkant van de console opgenomen. Deze hebben een drukknop geïntegreerd, waarmee de feed en spindle override direct weer kan worden gereset. Op het moment dat de feed of spindle override is geactiveerd (dus ongelijk aan 100 %) wordt dit weergegeven door middel van een LED.
Die schaalverdeling is trouwens geen lineaire schaal, waarom zou je ijlgang van 100 naar 95% willen doen, maar vanaf 0 wil je wel in kleinere stapjes omhoog.
Om die reden zou ik dus nooit een reset-knop naar 100% willen hebben, als er dan perse een knopje op moet, dan maar naar 0%.
Een doordraaiende encoder lijkt me ook helemaal niet handig, ik voel blind dat ik die %-knop tegen de nul aandraai, tijdens lastig freeswerk heb ik die knop vast om bij te sturen zodra ik dat nodig acht.
Spindel toerental regel ik zelden op %
Maar gelukkig ben je helemaal vrij om te maken wat jij leuk vind, dus kijk maar wat je doet.
Ik ben voor meer techniek op school, maar dan wel vanaf groep 1 basischool.
- andrefc101
- Donateur
- Berichten: 3733
- Lid geworden op: 26 dec 2007 08:39
- Locatie: Bergen op Zoom
- Contacteer:
Re: EMCO 5 CNC moderniseren
Wat wel handig is is een draaischakelaar die eerst de voeding stopt en daarna de spindel, heb ik ook en is erg handig als je wat spanen weg wilt halen of even iets wilt meten. Handig voor vingerbehoud
Re: EMCO 5 CNC moderniseren
Deze neem ik mee, heb nog een encoder liggen. Dan worden het gewoon 3 draaiknoppen! Wel weer de nodige aanpassing aan de kabelboom nodig, maar beter nu dan straks in de metalen plaat. Ook moet ik dan een 74HC595 gebruiken om de LED's aan te sturen vanwege pinnen te kort.hugo stoutjesdijk schreef: ↑29 mar 2021 09:00 Als je nog ruimte hebt, zou ik er zeker nog een ijlgang override in zetten. Bij lastige klussen is het bijzonder comfortabel om de ijlgang 0 of heel laag te maken, dan wordt je niet ineens verrast door een snelle positionering op een plek waar dat niet uitkwam, terwijl je de voeding op een ander percentage wilt beïnvloeden.
Mijn ervaring met mijn freesmachine (wellicht scheve vergelijking) is dat ik vaak heel langzaam in het materiaal loop en dat als het allemaal goed gaat ik hem reset. Dit spaart freesjes, want die moeten wel te eten krijgen en niet poetsen.hugo stoutjesdijk schreef: ↑29 mar 2021 09:00 Om die reden zou ik dus nooit een reset-knop naar 100% willen hebben, als er dan perse een knopje op moet, dan maar naar 0%.
Heb ik nog geen ervaring mee. Gelukkig is LinuxCNC zo flexibel om zodra de eerste spanen zijn getrokken om de knop een nieuwe functie te geven en gewoon direct de RPM te regelen.
Dit is bij mij de gele knop 'Feed-hold'. Deze laat de spindle draaien, maar stopt de voeding (voor spanen weg te halen). De rode knop is als je het hele proces stil wil leggen (bijvoorbeeld voor meten). Ik ben mijn negen vingers lief, weet dat het pijn doet om er eentje kwijt te raken . En nee, dat was geen machine die hap deed.andrefc101 schreef: ↑29 mar 2021 11:18 Wat wel handig is is een draaischakelaar die eerst de voeding stopt en daarna de spindel, heb ik ook en is erg handig als je wat spanen weg wilt halen of even iets wilt meten. Handig voor vingerbehoud
Assumptions are the mother of all $%^& ups.
Twee keer meten is zeker weten, als je weet wat je meet...
Twee keer meten is zeker weten, als je weet wat je meet...
- andrefc101
- Donateur
- Berichten: 3733
- Lid geworden op: 26 dec 2007 08:39
- Locatie: Bergen op Zoom
- Contacteer:
Re: EMCO 5 CNC moderniseren
Spanen weg halen met een draaiende spindel is ook niet echt handig hoor!
Re: EMCO 5 CNC moderniseren
Sterker nog, dat gaat niet eens als het bijvoorbeeld spanen die om je boor gewikkeld zitten betreft.
De belangrijkste wet in de wetenschap: 'hoe minder efficient en hoe meer herrie, hoe leuker het is'
- Arie Kabaalstra
- Donateur
- Berichten: 13527
- Lid geworden op: 07 feb 2007 18:37
- Locatie: Bakhuuz'n
- Contacteer:
Re: EMCO 5 CNC moderniseren
Les 1: "don't put your fingers where you wouldn't put your pecker" (Citaat van Gerald Williams, één van de Roughnecks uit de Docuserie "Black Gold" over Olieboringen in Texas.
Re: EMCO 5 CNC moderniseren
Uitspraak van iemand die de hele dag zijn handen in zijn zakken heeftArie Kabaalstra schreef: ↑29 mar 2021 14:32 Les 1: "don't put your fingers where you wouldn't put your pecker" (Citaat van Gerald Williams, één van de Roughnecks uit de Docuserie "Black Gold" over Olieboringen in Texas.
- Ballegooijen
- Donateur
- Berichten: 4922
- Lid geworden op: 20 sep 2016 15:45
- Locatie: 's-Gravendeel
- Contacteer:
Re: EMCO 5 CNC moderniseren
Of zijn zak in zijn handenUitspraak van iemand die de hele dag zijn handen in zijn zakken heeft
Kennis vermenigvuldigt zich alleen als je het deelt.
https://www.Baldas.nl
https://www.Baldas.nl
- Arie Kabaalstra
- Donateur
- Berichten: 13527
- Lid geworden op: 07 feb 2007 18:37
- Locatie: Bakhuuz'n
- Contacteer:
Re: EMCO 5 CNC moderniseren
Nee.. meer van iemand die of een programmaatje induimt, of met een pot koffie in zijn handen staat..Kjelt schreef: ↑29 mar 2021 17:25Uitspraak van iemand die de hele dag zijn handen in zijn zakken heeftArie Kabaalstra schreef: ↑29 mar 2021 14:32 Les 1: "don't put your fingers where you wouldn't put your pecker" (Citaat van Gerald Williams, één van de Roughnecks uit de Docuserie "Black Gold" over Olieboringen in Texas.
Re: EMCO 5 CNC moderniseren
Ik geloof niet dat het in de olieindustrie gebruikelijk is om programmaatjes in te duimen.Arie Kabaalstra schreef: ↑29 mar 2021 17:32 Nee.. meer van iemand die of een programmaatje induimt, of met een pot koffie in zijn handen staat..
Ik zou bijna zeggen integendeel, er wordt met enige regelmaat redelijk tot bruut geweld gebruikt om het zwarte goud boven te krijgen.
Think it, draw it, make it.