Runtime de Eding variabelen lezen
Moderator: Moderators
Runtime de Eding variabelen lezen
Van een “leerling machinist” aan de kenners van de EdingCNC omgeving.
Mijn oude freesmachine is omgebouwd naar CNC en na enkele tests kom ik voor een probleem.
Het blijkt moeilijk om de optimale snelheden te vinden.
Het zou aardig zijn als m.b.v. een pre-run de optimale snelheid(dus zonder noemenswaardige stappen verlies)bepaalt kan worden. Ook voor het instellen van de backlash compensatie is dit goed te gebruiken.
Op de machine zitten linialen die met een arduino worden uitgelezen.
Ik wil de EdingCNC posities vergelijken met de “echte” posities (bijvoorbeeld 5 tot 10 maal per seconden) en bij een afwijking groter dan een gekozen limiet de machine stilzetten.
Een macro die de Edingposities naar een file schrijft is niet moeilijk en de micro app deze file laten lezen lukt ook wel maar de "tussen-file” maakt het allemaal (te)traag en on-stabiel.
Is het mogelijk om van buiten af, “runtime” ,de Eding variabele te lezen en ,mooier nog, te schrijven?
Een beter idee om hetzelfde te bereiken is natuurlijk ook welkom.
Groeten Anton
Mijn oude freesmachine is omgebouwd naar CNC en na enkele tests kom ik voor een probleem.
Het blijkt moeilijk om de optimale snelheden te vinden.
Het zou aardig zijn als m.b.v. een pre-run de optimale snelheid(dus zonder noemenswaardige stappen verlies)bepaalt kan worden. Ook voor het instellen van de backlash compensatie is dit goed te gebruiken.
Op de machine zitten linialen die met een arduino worden uitgelezen.
Ik wil de EdingCNC posities vergelijken met de “echte” posities (bijvoorbeeld 5 tot 10 maal per seconden) en bij een afwijking groter dan een gekozen limiet de machine stilzetten.
Een macro die de Edingposities naar een file schrijft is niet moeilijk en de micro app deze file laten lezen lukt ook wel maar de "tussen-file” maakt het allemaal (te)traag en on-stabiel.
Is het mogelijk om van buiten af, “runtime” ,de Eding variabele te lezen en ,mooier nog, te schrijven?
Een beter idee om hetzelfde te bereiken is natuurlijk ook welkom.
Groeten Anton
- Arie Kabaalstra
- Donateur
- Berichten: 13488
- Lid geworden op: 07 feb 2007 18:37
- Locatie: Bakhuuz'n
- Contacteer:
Re: Runtime de Eding variabelen lezen
Ja,dat kan, maar dan zul je zelf een stukje software moeten schrijven dat met de API van EdingCNC kan praten..
- Breaker
- Donateur
- Berichten: 1961
- Lid geworden op: 26 mei 2015 22:43
- Locatie: Nabij Antwerpen
- Contacteer:
Re: Runtime de Eding variabelen lezen
In de EdingCNC installatie (standaard C:\CNC4.02) staat in de 'cncapi' directory meer informatie. En voorbeelden van een programma zijn in de directory 'Qt_ExampleUI' te vinden.
Heb er een tijdje terug naar gekeken, hier bijvoorbeeld een programmaatje wat de machine stopt als Z onder een gegeven waarde komt:
Dan zoiets nog combineren met een deel wat de waarden van de arduino uitleest.
Heb er een tijdje terug naar gekeken, hier bijvoorbeeld een programmaatje wat de machine stopt als Z onder een gegeven waarde komt:
Dan zoiets nog combineren met een deel wat de waarden van de arduino uitleest.
Geduld is een schone zaak, frezen niet...
Re: Runtime de Eding variabelen lezen
Bedankt voor de snelle reacties.
Een vluchtige blik op de api gegevens met daarin de structuur van de software brengt twijfels aan de effecten van
een "extra" runtime actie op de timing van de Edingsoftware.
Na wat nadenken toch een ander pad gevonden. Ik monitor de pulsen naar de stappenmotoren met de arduino (een externe DRO zonder display) en doe de "verloren stappen test" in de Arduino die dan de stop input activeert.
De timing wordt dan bepaalt door de maximale uitlees frequentie van de linialen zodat er geen extra synchronisatie probleem ontstaat. Het zou aardig zijn als de backlash compensatie tijdens een pre-run door de Arduino aan/uit geschakeld kan worden. Zo niet, dan voor iedere pre-run, de backlash compensatie via de setup switchen.
Op deze manier is er geen enkel effect op de Edingsoftware.
Dit is waarschijnlijk al eens eerder door iemand anders bedacht. Gaarne commentaar.
groeten Anton.
Een vluchtige blik op de api gegevens met daarin de structuur van de software brengt twijfels aan de effecten van
een "extra" runtime actie op de timing van de Edingsoftware.
Na wat nadenken toch een ander pad gevonden. Ik monitor de pulsen naar de stappenmotoren met de arduino (een externe DRO zonder display) en doe de "verloren stappen test" in de Arduino die dan de stop input activeert.
De timing wordt dan bepaalt door de maximale uitlees frequentie van de linialen zodat er geen extra synchronisatie probleem ontstaat. Het zou aardig zijn als de backlash compensatie tijdens een pre-run door de Arduino aan/uit geschakeld kan worden. Zo niet, dan voor iedere pre-run, de backlash compensatie via de setup switchen.
Op deze manier is er geen enkel effect op de Edingsoftware.
Dit is waarschijnlijk al eens eerder door iemand anders bedacht. Gaarne commentaar.
groeten Anton.
Re: Runtime de Eding variabelen lezen
Klinkt interessant, maar ik kan me er nog niet alles bij voorstellen, ben je misschien een mogelijk probleem aan het oplossen wat je in praktijk niet tegen gaat komen, ik ken dat verschijnsel :-)afc schreef:Het zou aardig zijn als m.b.v. een pre-run de optimale snelheid(dus zonder noemenswaardige stappen verlies)bepaalt kan worden.
De backlash of de speling van het hele systeem ? Die is nl sterk afhankelijk van de belasting, de weerstand die de frees in het materiaal ondervindt dus.afc schreef:Ook voor het instellen van de backlash compensatie is dit goed te gebruiken.
Die omzeil je met de bekende "truuk", eerst ietsje te ruim frezen dan nog een keer er langs met juiste maat.
Je bent zelf ook al op het idee gekomen om de signalen naar de stappen motoren te monitoren, zo ben je helemaal systeem onafhankelijk.
Als je het voor elkaar krijgt om de step en dir signalen goed te verwerken in een arduino (of andere besturing) dan heb ik ook nog wel een paar ideeën.
Daar wil ik graag eens over van gedachten wisselen met je.
btw
Ik kreeg van Bert eens een programmaatje om het eea aan interne signalen te kunnen monitoren :
https://cnczone.nl/viewtopic.php?f=39&t ... 25#p113033
Laatst gewijzigd door keesfrees op 28 apr 2017 15:08, 1 keer totaal gewijzigd.
handig aanhalen (citeren, quoten) : https://cnczone.nl/viewtopic.php?f=37&t=12599
- hugo stoutjesdijk
- Donateur
- Berichten: 12045
- Lid geworden op: 02 mar 2011 17:04
- Locatie: elst (u)
- Contacteer:
Re: Runtime de Eding variabelen lezen
Volgens mij was linuxcnc meer op jouw wensen afgestemd geweest. (voor het beter hobby werk)
En als het alleen voor het tunen is, is misschien het monteren van een encoder een eerlijker oplossing, dan zit eventuele afwijking door de rest van de machine er niet bij, wat natuurlijk wel weer handig is om te weten in de rest van het traject.
En als het alleen voor het tunen is, is misschien het monteren van een encoder een eerlijker oplossing, dan zit eventuele afwijking door de rest van de machine er niet bij, wat natuurlijk wel weer handig is om te weten in de rest van het traject.
Ik ben voor meer techniek op school, maar dan wel vanaf groep 1 basischool.
Re: Runtime de Eding variabelen lezen
Het constateren van stappenverlies is natuurlijk interessant, DaBit heeft ook een soortgelijk iets gedaan met zijn machine, volgens mij in Linuxcnc, maar de laatste stap zie ik niet zo het nut van... het stil zetten van de machine... en dan?afc schreef: Ik wil de EdingCNC posities vergelijken met de “echte” posities (bijvoorbeeld 5 tot 10 maal per seconden) en bij een afwijking groter dan een gekozen limiet de machine stilzetten.
Als je er toch mee aan de slag gaat lijkt het me een betere oplossing als je het stappenverlies terug kan koppelen naar de besturing zodat deze "realtime" gecorrigeerd wordt en het programma door kan gaan met zijn werk.
Voorbeeld: de X-as krijgt opdracht van 0 naar 100mm te gaan, maar de externe meetlus constateert dat hij bij 98mm is gestopt, als dit halverwege je programma/bewerking gebeurd kan je weer overnieuw beginnen als de machine gestopt wordt, ik zou denken vertel de machine dat hij nog 2mm heeft af te leggen en ga daarna verder met de rest van de bewerking.
Bij een vierkantje uitfrezen kan je het programma rustig stoppen, maar bij een programma van pak hem beet 50.000 regels is het niet leuk als het systeem stop bij regel 45.271...
Leadshine heeft als oplossing hiervoor volgens mij de closed-loop drivers/motoren bedacht, of natuurlijk direct voor servo's gaan met terugkoppeling.
Re: Runtime de Eding variabelen lezen
Met encoders op de assen als feedback is het probleem van de gemiste stappen elegant op te lossen. Het hobby budget laat dit echter niet toe. Ik weet trouwens niet hoe EdingCNC met encoders in combinatie met backlash compensatie omgaat of moeten er speciale drivers worden gebruikt die de feedback van de encoders regelen.
Ik ga er van uit dat een reactie tijd van enkele tiende seconden snel genoeg is om ernstige machine/werkstuk schade te voorkomen. Het gaat dus in eerste instantie om een "gemiste stappen beveiliging" en niet om een diagnose tool om de oorzaak van gemiste stappen te achterhalen of deze te voorkomen.
Natuurlijk zijn de goedkopere linialen met een maximale sample frequentie van ca 10 maal per seconden niet geschikt als feedback naar de bewegingssoftware.
Het project is overigens geen spielerei. Tijdens de testfase heb ik in een blok aluminium een pocket van rond 60 mm en 45 mm diep willen frezen. In eerste instantie leek alles goed te gaan maar halverwege liep de frees in de wand van de pocket omdat een van de assen stappen miste. Door snel een noodstop te maken kon freesbreuk en beschadiging van het werkstuk worden voorkomen. Omdat een dergelijk pocket frezen op een lichte machine enkele uren duurt is naast de machine staan om schade te vermijden niet erg leuk.
Natuurlijk kan door langzamer voeden de kans op gemiste stappen worden verminderd maar dan duurt zo'n pocket klusje al gauw een halve dag of meer.
Vaak zal vastlopen worden voorafgegaan door het missen van stappulsen . Als dit snel genoeg wordt gedetecteerd kan een tijdige noodstop of halt erger voorkomen en hoef ik niet langer uren naast de machine te staan . De beveiliging moet permanent actief zijn.
Als het project een succes wordt horen jullie er nog van.
Groeten Anton
Ik ga er van uit dat een reactie tijd van enkele tiende seconden snel genoeg is om ernstige machine/werkstuk schade te voorkomen. Het gaat dus in eerste instantie om een "gemiste stappen beveiliging" en niet om een diagnose tool om de oorzaak van gemiste stappen te achterhalen of deze te voorkomen.
Natuurlijk zijn de goedkopere linialen met een maximale sample frequentie van ca 10 maal per seconden niet geschikt als feedback naar de bewegingssoftware.
Het project is overigens geen spielerei. Tijdens de testfase heb ik in een blok aluminium een pocket van rond 60 mm en 45 mm diep willen frezen. In eerste instantie leek alles goed te gaan maar halverwege liep de frees in de wand van de pocket omdat een van de assen stappen miste. Door snel een noodstop te maken kon freesbreuk en beschadiging van het werkstuk worden voorkomen. Omdat een dergelijk pocket frezen op een lichte machine enkele uren duurt is naast de machine staan om schade te vermijden niet erg leuk.
Natuurlijk kan door langzamer voeden de kans op gemiste stappen worden verminderd maar dan duurt zo'n pocket klusje al gauw een halve dag of meer.
Vaak zal vastlopen worden voorafgegaan door het missen van stappulsen . Als dit snel genoeg wordt gedetecteerd kan een tijdige noodstop of halt erger voorkomen en hoef ik niet langer uren naast de machine te staan . De beveiliging moet permanent actief zijn.
Als het project een succes wordt horen jullie er nog van.
Groeten Anton
Re: Runtime de Eding variabelen lezen
hier (even snel) oude onderwerpen over
stappenverlies detecteren
https://cnczone.nl/search.php?keywords= ... mit=Search
stappenverlies detecteren
https://cnczone.nl/search.php?keywords= ... mit=Search
handig aanhalen (citeren, quoten) : https://cnczone.nl/viewtopic.php?f=37&t=12599
- Arie Kabaalstra
- Donateur
- Berichten: 13488
- Lid geworden op: 07 feb 2007 18:37
- Locatie: Bakhuuz'n
- Contacteer:
Re: Runtime de Eding variabelen lezen
het is in elk geval een "one stop shop solution".. en derhalve makkelijker en sneller te bouwen dan een eigen ontwerp detectie.. bovendien.. waarom zou je het überhaupt willen?.. zelf heb ik een Open-loop systeem op mijn machine, zoals zo'n beetje ieder ander..en.. ach.. zolang ik onderdelen die ±0.1 mogen zijn gewoon zonder enige kunstgrepen ±0.05 uit de machine haal (titanium horlogekasten), dan zie ik de noodzaak tot extra investeringen niet..zei het in geld, zei het in tijd..Het hobby budget laat dit echter niet toe.
Ok.. zou ik een nieuwe machine bouwen (ik heb wel ideetjes), dan ga ik ondanks de hogere kosten voor Closed Loop steppers met Encoders.. gewoon om de bedrijfszekerheid, maar da's dan ook omdat ik er mijn boterham mee moet verdienen.. en dan verdien ik die extra kosten wel terug
Re: Runtime de Eding variabelen lezen
Alles bij elkaar is het aardig plakband plakken waar het niet hoort. Als je een open-loop systeem steppersysteem gebruikt behoor je snelheden en acceleraties zodanig in te stellen dat je bij de zwaarst denkbare belasting geen stappenverlies hebt. Daar heb je geen ingewikkelde systemen voor nodig; als je stappenverlies opmerkt halveer je gewoon de snelheden en als dat een half jaar goed gaat doe je er weer een beetje bij.
Als je het al niet red met de stappenmotoren niet vlotter dan ca. 500rpm, dan moet je dat systeem onder handen nemen.
Het kan gewoon niet op het scherpst van de snede; straks is het winter en de laatste smeerbeurt is alweer even geleden, dan doet je scherpst op de snede instelling het alsnog niet, en na stappenverlies weer perfect verder gaan met de klus is niet handig. In aluminium zie je een paar um afwijking al in het oppervlak.
Verder: je hebt het over 5-10 maal per seconde een update. Dan moet je nog vergelijken en de boel stilzetten. Tegen die tijd heeft mijn frees allang krak gezegd of ik heb een deuk in m'n werkstuk. Los daarvan doet me dat denken dat je van die capacitieve lineaaltjes van HBM gebruikt, en dan ga je zowiezo nog leuke verrassingen tegenkomen. Daar komt incidenteel ook wel eens een positie uit die 25,4mm afwijkt van de juiste, bijvoorbeeld.
Als je het al niet red met de stappenmotoren niet vlotter dan ca. 500rpm, dan moet je dat systeem onder handen nemen.
Het kan gewoon niet op het scherpst van de snede; straks is het winter en de laatste smeerbeurt is alweer even geleden, dan doet je scherpst op de snede instelling het alsnog niet, en na stappenverlies weer perfect verder gaan met de klus is niet handig. In aluminium zie je een paar um afwijking al in het oppervlak.
Verder: je hebt het over 5-10 maal per seconde een update. Dan moet je nog vergelijken en de boel stilzetten. Tegen die tijd heeft mijn frees allang krak gezegd of ik heb een deuk in m'n werkstuk. Los daarvan doet me dat denken dat je van die capacitieve lineaaltjes van HBM gebruikt, en dan ga je zowiezo nog leuke verrassingen tegenkomen. Daar komt incidenteel ook wel eens een positie uit die 25,4mm afwijkt van de juiste, bijvoorbeeld.
De belangrijkste wet in de wetenschap: 'hoe minder efficient en hoe meer herrie, hoe leuker het is'
- hugo stoutjesdijk
- Donateur
- Berichten: 12045
- Lid geworden op: 02 mar 2011 17:04
- Locatie: elst (u)
- Contacteer:
Re: Runtime de Eding variabelen lezen
Nou, dat kun je dan toch mooi uitfilteren.DaBit schreef:Daar komt incidenteel ook wel eens een positie uit die 25,4mm afwijkt van de juiste, bijvoorbeeld.
Ik ben voor meer techniek op school, maar dan wel vanaf groep 1 basischool.
Re: Runtime de Eding variabelen lezen
Ja, klopt.
Probleem met die dingen is voornamelijk dat die controllertjes die erin zitten maar net doen waar ze op dat moment zin in hebben, of althans de dingen die in die HBM linealen zaten die ik toen gebruikte.
Geen probleem als de uitlezing gewoon op een LCD-schermpje komt, maar in zo'n terugkoppellus is het niet ideaal.
Probleem met die dingen is voornamelijk dat die controllertjes die erin zitten maar net doen waar ze op dat moment zin in hebben, of althans de dingen die in die HBM linealen zaten die ik toen gebruikte.
Geen probleem als de uitlezing gewoon op een LCD-schermpje komt, maar in zo'n terugkoppellus is het niet ideaal.
De belangrijkste wet in de wetenschap: 'hoe minder efficient en hoe meer herrie, hoe leuker het is'
Re: Runtime de Eding variabelen lezen
Ik heb zo'n HBM ding ook op mijn draaibankje zitten, dat was nog een hele toer om er voor te zorgen dat bij het aanzetten van de TL lamp erboven of het aanzetten van de draaibank motor de uitlezing bleef staan waar die stond.
Ik zit er toch sterk over te denken om de hele handel te gaan vervangen door echte meetlinialen (Mitutoyo). Ik moet wel zeggen dat de dwarsslede geen problemen geeft, maar daar zit dan ook een digitale schuifmaat als meetgever op.
Ik zit er toch sterk over te denken om de hele handel te gaan vervangen door echte meetlinialen (Mitutoyo). Ik moet wel zeggen dat de dwarsslede geen problemen geeft, maar daar zit dan ook een digitale schuifmaat als meetgever op.