Hírek:

Fontos tudnivalók a migrációval kapcsolatban, kérlek olvasd el:

A régi fórumról áthozott hozzászólásoknál a felhasználó neve adatvédelmi megfontolásokból véletlenszerűen generált értékekre lett  lecserélve. Ez akkor tud a valódi értékre visszaállni, ha az adott felhasználó a régi fórumon nyilatkozik, hogy beleegyezik az adatainak az új fórumra továbbításához, majd ezután itt a régi felhasználónevével és email címével regisztrál.
8~20 óra között, 1~30 percen belül megtörténik a jóváhagyás, 30 percenként ellenőrizd email fiókodat (SPAM-ot is) mindenképp kapsz mail-t, a sikeres regisztrácioról, vagy a hibáról és, hogy mi a teendőd.
Nézd meg  "A régi fórumról, az új fórumra költözés útmutatót."
A régi fórumon használt email címmel de más felhasználói azonosítóval érkező regisztrációs kérelmek törlésre kerűlnek.

Main Menu

UCCNC vezérlő program

Indította gaben, 2024 április 09, 16:54

Előző téma - Következő téma

000000000

Szia,
 
A mondatod első feléből látszik, hogy nem érted, hogy miről szól a leírás.  
Idézem: "ez a rendszer a tengelyeket lemaradással mozgatja".  
Minek a lemaradásával mihez képest? És mi mozgat micsodát?  
Itt most egy vezérlésről (folyamatirányításról) és nem szabályzásról beszélünk.  
Vagyis nincs visszacsatolás. Így az, hogy "lemaradás" az eleve értelmezhetetlen fogalom és irreleváns a szoftver számára.  
A szoftver mit sem tud a gép pozíciójáról, vagy, hogy milyen gépről beszélünk, ő mindössze azért felel, hogy olyan jeleket adjon ki a vezérlőelektronika számára egy előkalkuláció,  
függvényillesztések eredményeképpen, ami a mozgatás pályáját a beállított felbontás pontosságával leírja.  
Exact stop mód esetén a pontos pályaleíró függvényt használja a pályatervező.  
Abban ugye egyetértünk, hogy ha egy körív két pontjára a kör középpont koordinátáit is felhasználva illesztünk egy körívet a körfüggvény felhasználásával,
akkor ez a kör éppen akkora sugarú lesz mint amekkorát az adatok definiálnak?
A leírás minössze ennyiről szól, nem többről, nem kevesebbről.

000000000

Szia,
 
Jó, hogy mondod, ezt már meg akartam csinálni, de mindig annyi más feladatot adtok nekem (aminek örülök egyébként)[#wink], hogy mindig elmarad.
Nem ígérem, hogy a következő verzióban ez benne lesz de az azutániban biztosan.

cxmcdtrx

Csak egy ötlet, ami felmerült bennem nyárfa kérése kapcsán:
A G-kód futtatást elindítva a hátralevő futási idő kijelezhető?
Gondolok itt ilyenekre, hogy az elindított programból kiolvasott elmozdulási értékek, előtolások alapján számol,
illetve a menet közben esetleg kézzel megváltoztatott előtolással újraszámolja.
Így akár a programot betöltve már látható egy becsült futtatási idő is.

frkdv6dyr

Az már extra lenne, és szerintem egy nagyobb kódnál igen csak elmolyolna vele mire kiszámolná.

csg67

A problémának semmi köze a kontúrmaráshoz (egyébként sem a szerszámátmérővel, csak a szerszám sugarával kell korrigálni a pályát). De mint mondtam ennek semmi köze az alapproblémához.
 
Nézzük meg, hogy mit csinál az "Exact Stop"! Ahogyan a neve is mondja; pontosan áll meg. A pozíciók a mondat végén, de CSAK A VÉGÉN lesznek pontosak! Hogyan valósítja ezt meg (ez) a vezérlő (is)? Nagyon egyszerűen; nem indítja el a következő mozgást addig, amíg az aktuális mozgás be nem ért a programozott végpontba (nyilván van egy pozícióablak, amin belül elfogadja az aktuális pozíciót névleges pozíciónak). Amikor ez megtörtént, akkor mehet tovább a megmunkálás, indulhat a következő mondat... Persze ennek tényleg az az eredménye, hogy minden mozgásnál gyorsít, lassít, megáll. Idegesítően "rángat" a gép megmunkálás közben. Mire jó mégis ez a lehetőség? Például pontosan meg tudjuk munkálni egy üreg belső sarkait (természetesen nem lesz sarkos, hiszen a szerszám sugara nem nulla).
Mi történik akkor, ha a "Constans Velocity" az aktív? Egyszerűen nem várja meg a vezérlés azt, hogy a mondat végén beérjen a tengely a programozott pozícióba, hanem indítja a következő mozgást. A hajtások meg követik úgy, ahogy tudják a pályát.
Ez a vezérlés a követési hibára épül (following error, servo lag), azaz azért mozognak a tengelyek, mert a vezérlés által számított (névleges) pozíció nem egyezik meg a mérőrendszerrel mért (aktuális) pozícióval. Minél nagyobb az eltérés (követési hiba), annál nagyobb a sebesség. A követési hiba a sebességgel arányos, az arányosítási tényezőt szokás a pozíciószabályozás körerősítésének (kv faktor) hívni. Azaz a lemaradás a sebességtől és a szabályozási hurok erősítésétől függ. Az erősítést nem lehet büntetlenül növelni, mert egy idő után a rendszer gerjedni, remegni kezd.
Tehát elmondhatjuk, hogy minden mozgás lemaradással valósul meg. Persze a végpontban lehet pontos a pozíció, ha ott megáll a tengely. Mi történik mozgás közben? A tengely (a sebességgel arányos) lemaradással követi az elméleti pozíciót. Ez nem gond, ha egyszerre csak egy tengely mozog (ugyan nincs ott még a tengely ahol lenni kéne az adott időpillanatban, de előbb-utóbb végigmegy a pályán). Mi a helyzet több tengellyel megvalósított egyenes mentén történő elmozdulásnál (térbeli egyenes)? Ha a tengelyeken az erősítés egyforma (minden tengely azonos sebesség mellett egyforma lemaradással mozog), akkor szintén az elméleti pályát fogja követni. Mi a helyzet a körnél? A szánok itt is az aktuális pozícióból az elméleti pozíció felé mozdulnak el. Ez minden esetben egy húr mentén történik, azaz a körön belül. Ezért lesz kisebb a valós körív az elméleti pozíciókkal megadottól. A köríven folyamatosan mozog a szerszám, nincs minden egyes elméleti pontnál "Exact Stop". Mennyivel lesz kisebb a valós pálya sugara az elméletitől? Ez függ a követési hibától, azaz a sebességtől (mivel ezek egyenes arányban vannak), és függ a körív sugarától (a két elméleti pontot a köríven egy húr köti össze, a húr hossza függ a sebességtől, de minél kisebb a körív sugara, az adott hosszúságú húr annál közelebb lesz a kör középpontjához, azaz annál nagyobb lesz a kontúrhiba).
A fentiekből látható, hogy ennél a vezérlésnél ez minden esetben fennáll, csak a mértéke kérdéses.
 
Persze létezik erre is megoldás (lásd a velocity feedforward control kifejezést a gugliban). Egy ilyen vezérlésnél valóban le lehet írni, hogy a "pályakövetési hiba 0". Ráadásul a "velocity feedforward" nem a motor és a hajtás dolga, hanem a pozíció szabályozó körbe lehet beépíteni, azaz a szoftver a felelős érte (ezért a szoftver leírásában a helye CNCdrive1 állításával ellentétben)! Ezért bátorkodtam (bár lehet, hogy egy kicsit sértően - ezért elnézést kérek) erre a félrevezető mondatra felhívni a figyelmet.
 
Maradok tisztelettel őszinte csodálója a hobbistáknak.

000000000

Nagyon szépen leírtad a dolgokat és mindez amit leírtál nagyjából, kisebb fenntartásokkal így is van.  
Én mindössze annyit mondtam, mondok, hogy a szoftver, a pályatervező szempontjából a pályakövetési hiba exact stop mód esetén nulla.
Felesleges idekeverni, hogy mit csinál az elektronika, mit csinálnak a motorok, mert nem erről szól ez a leírás.  
A leírás a pályatervezőről beszél, sohasem motorokról vagy netán tengelyekről. Te konkretizált esetekről, megvalósításról beszélsz, de a leírás nem erről szól, hanem a pályatervezőről, arról, hogy mit kalkulál és hogyan.
 
A constant velocity mód pedig nem úgy működik ahogy leírtad, mégcsak idealizált esetben sem. Ha van rá igény akkor a későbbiekben leírom majd a működését, de most mennem kell...

000000000

Modbus kommunikációt tud az UCCNC program? illetve plazmánál kezeli a THC-t?

csg67

Elég furcsa hozzáállás egy vezérlő szoftver írójától arra hivatkozni, hogy őt nem érdekli a gép, amit a szoftvere vezérel. Egy idealizált leírás pedig semmit sem ér annak aki használni is akarja azt. De ez már nem az én problémám lesz...

svejk

Sziesztám ideje alatt rájöttem, hogy bizony a körívnél arra gondolsz amit most le is írtál, hogy végül is a G2/3 kódot is a vezérlőszoftver egyenesekből rakja össze.
 
Nem ismerem sem a szóbelei UCCNC szoftver, sem a gyári mozgásvezérlők lelki világát, bonyolult interpolációs képleteit nem is értenék belőle sokat.
De elméletileg talán elképzelhető lenne az is, hogy nem a körív apró húrjain vezeti a vezérlő a gépet hanem mondjuk szelőkön és azok metszéspontjain, így már a sokszög által keltett kör átmérője jobban igazodik a valósághoz. De ehhez meg még több részre kellene felbontani a kört, azaz még több számolást igényel.
(ha jól rémlik a gyári vezérlőkön van ilyen paraméter, hogy az adott kört milyen pontossággal kövesse le)
 
Egyébként a sebesség előrecsatolás megtalálható az összes gyári step-dir-es vagy analóg szervo vezérlőn, mint állítható paraméter.
Jótékony hatását is tapasztaltam már, de azt nem tudtam hogy pont a körívek problémája keltette életre létét.

s7manbs8

A végén kiderül hogy egyik program se jó, ne is használjuk ? Nem hinném, az adott felbontás mellett és gyorsulás sebesség és a step dir rendszeren belül lehető legpontosabb időzítéssel kiadott léptetési jelsorozattól jobbat mit vártok ?

svejk

"De ez már nem az én problémám lesz... "
 
Az bizonyos, hogy neked aligha lehet szükséged mondjuk UCCNC mozgásvezérlőre. :) [#smile]
 
Nekünk hobbistáknak ha már nem csinál rosszvashibákat, akkor már jó...
A munkadarabok zöme relief szerű darabok, a mechanikák szintén elnyomó többsége jó ha tizeden belüli pontosságú.
 

000000000

A leírás nem idealizált, a leírás konkretizált a vezérlőszoftver algoritmusát tárgyalja.
 
A probléma ott van, hogy te viszont nem a vezérlő szoftverről, hanem egy konkrét meghajtóelektronika típusról beszélsz mégpedig szervo elektronikáról,  
pozíció szabályzásról, aminek a működése valóban olyan, ahogy leírtad.  
Megint csak azt tudom mondani, hogy a leírásnak köze sincs a szervo rendszerhez, ez egy vezérlőszoftver leírása.
 
Mert mi van például ha valaki léptetőmotorokkal használja a gépet (ha már ennyire leragadtál a konkrétumoknál és ha nem tudsz elvonatkoztatni).
Ez esetben az összes dolog amiket leírtál máris nem állja meg a helyét, mivel a léptetőmotoros vezérlés nem szabályzás,  
így nincsen az említett lemaradás és a kör sugara éppen akkora lesz mint amekkorát programoztál.
 
A vezérlőelektronikák sokszínűsége miatt nincsen értelme a szoftver leírásában ezeket tárgyalni,
azokat megteszi majd a vezérlőelektronika gyártója.

000000000

Még annyit, hogy nem engem nem érdekel a gép.
Viszont az, hogy a szervóid mekkora és milyen mértékű hibát visznek a rendszerbe az a szervoidnak a dolga. A szoftver nem szabályoz, csupán vezérel. És exact stop módban ezt 0 hibával teszi.

000000000

Nagyipari gépeknél általában eleve szabályzás van, van visszacsatolás a vezérlőszoftver felé, ha ilyet fejlesztenénk, akkor csg67-nek igaza lenne, de mi nem folyamatszabályzó szoftvert írunk, csak egy vezérlőt. [#wave]

svejk

Persze-persze, csak írjátok minél nagyobb gőzzel! :)
 
Csg67-nek csak szúrta a szemét egy dolog...
Egyébként nagy tudású nagyon rendes ember.