Řízení servomotorů na jednoúčelovém stroji

Vojta333
Protřelý bazarník
Příspěvky: 74
Registrován: 30. 1. 2017, 3:10

14. 3. 2018, 3:23

Dobrý den,

mám v plánu postavit stroj na řezání vaty, který bude mít 6 pohybových os, všechny pracují nezávisle na sobě, jen se musí dodržet jejich sled (natočení pily, posuv balíku, hloubka řezu ... ). Přesnost zde nehraje zásadní roli, pohyb se bude odehrávat cca každé 3 sekundy.

Když sesumíruji elektronické prvky:

6-7 servo pohonů
12 koncových spínačů
10 relé
dotyková obrazovka
+ nějaké tlačítkové a vypínačové prvky pro spuštění cyklů

1) Hlavním dotazem je jakým způsobem servo kontrolér přijímá informace o tom kam se má pohnout, našel jsem kontroler od firmy HIWIN (viz. přiložená tabulka), kde se píše (stejně jako skoro u každého serva které jsem našel) že lze řídit pomocí pulse/dir a cw/ccw s maximální frekvencí 0,5/4 MHz. Pokud si softwarově nastavím v kontroléru že jedna otáčka se bude rovnat 1000 pulsům a také jaké má být zrychlení a maximální rychlost, tak poté stačí pouze poslat 100 000 pulsů "v libovolném čase" (myšleno třeba 1s, když pohyb trvá 3s) ? Nebo je nutno posílat pulsy přesně synchronně s tím jak se má servo pohybovat ?

Pro mě by bylo nejjednodušší kdybych do serva mohl poslat pouze informaci o kolik pulsů(otáček) se má otočit a servo by mi poslalo signál až by dosáhlo požadované pozice

Obrázek

2) Druhým "problémem" je že vyhlédnuté servo do HIWIN má pro vstup pouze konektor SCSI -50 pin, kdybych tedy chtěl řídit 7 servo kontrolerů, asi bych potřeboval nějaký rozbčovač, nebo z každého kabelu vytáhnout jen těch cca 6 vodičů, což mi nepříjde moc elegantní. U ostatních výrobců jsem viděl že kontroléry mají RS-485 což je asi mnohem snazší a jednodušší. Avšak v této věci bych si také rád nechal poradit


Obrázek

3) Pro řízení uvažuji využít PLC od firmy Unitronics - UniStream® 15.6" který umí pracovat s MODBUS (RS-485) ale bohužel né s EtherCat
https://unitronicsplc.com/unistream-ser ... 1602511853'

4) Studuju na VŠ strojírenství, o automatizaci jsem se zatím zajímal jen jako o koníček, díky zakázce na tento stroj, která by se měla realizovat za půl roku, bych se rád naučil co nejvíce k tomu, abych to byl schopen zvládnou. (Programování v C++/C# a blokové programování není problém)
atlan
Příspěvky: 3343
Registrován: 7. 2. 2011, 9:12

14. 3. 2018, 3:41

Najprv to ries s projektantom aby ste sa dohodli, kde a aky pohon sa puzije. Ci treba nutne serva alebo staci niekde ac motor s prevodovkou.
Kde a ako budu bezpecnostne stopky a koncaky.
Na zaklade projektu sa urci aky system sa pouzije. Res v projekte bude navrhnute riesenie.
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

14. 3. 2018, 5:19

Servodrivery jsou různé, určené pro různé nasazení a ovládající se různě.
Ty sis našel driver, určený pro použití v CNC, který má ovládání DIR/STEP a analog. To je docela dobré rozhraní právě pro CNC, dají se použít levné běžné a levné interpolátory. A funguje tak, že každý puls pohne okamžitě hřídelí o tolik, jaký je nastavený poměr. Takže tam nemůžeš dopředu nasypat pulsy a čekat na dokončení. U CNC musí jet osy přesně synchronně, proto je i to ovládání tím DIR/STEP přísně synchronní.

Ale pro tebe to moc vhodné není. Pro podobné účely, jako chceš řešit ty, mají serva jiný typ řízení. Některé drivery umí více způsobu řízení, některé ne.
Pro takové aplikace se pak dá buď do serva předem připravit sada sekvencí, a ty se pak dají spouštět jen zatažením za vstupní drát, nebo se ta serva dají programovat sběrnicovým způsobem, třeba po Modbusu nebo jiné sběrnici. A tam jim pak řekneš "dojeď tam a tam, takovou rychlostí a s takovým zrychlením".
Něco na tento způsob: https://www.fujielectric.com/products/s ... ample.html" onclick="window.open(this.href);return false;

Pokud bys trval na tom svém driveru, tak tam opravdu každé servo musí být připojeno samostatným kabelem s tím 50-pin konektorem na jedné straně do řídicího systému.
To ale asi Unistreamem neuřídíš, ten myslím žádné intepolátory nemá. Ale neznám teda všechny modely, možná to v některých je. Každopádně to ale podle mě nebude dobrá cesta.

Takže moje rada: najdi si nějaká serva s pro tebe vhodnějším řízením, asi nějakým sběrnicovým.
A spoj se s někým, kdo o podobné problematice něco ví. Celé to dílo asi nebude projekt za pár kaček, tak by to chtělo nedělat nějaké zásadní blbosti.

Jinak o víkendu 24. 3. a pár dní po něm zřejmě budu v Jablonci. Kdybys měl cestu kolem, tak se možná můžeme na chvilku potkat. Jestli bude pěkně, tak si třeba vyšlápnout na kole na Prezidentskou a potkat se tam.
r4cv
Příspěvky: 2681
Registrován: 8. 12. 2009, 8:32
Bydliště: Topoľčany

14. 3. 2018, 7:52

Myslím, že linuxom by tých 6 osí step/dir uriadil bez problémov. A aj naprogramoval. To tiež nebude jednoduché.
prichy
Příspěvky: 767
Registrován: 29. 7. 2006, 11:05
Bydliště: Sokolov

16. 3. 2018, 7:41

Vše je otázkou financí, čili nasazení.

Proti způsob je samozřejmě AC servo s encoderem, k tomu měnič ( výrobci dodávají celé sestavy)...to se pověsí na sběrnici ( profinet, profibus, CAN) a nadřazené PLC už do toho mluví jen po sběrnici. Nikdo nikdy nevyrábí pulsy, natož v systémech, ani v linuxu.
Prichy
Uživatelský avatar
robokop
Site Admin
Příspěvky: 22371
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

16. 3. 2018, 7:55

ethercat serva od delty
pripojit ethernet kabelem k pc
na pc linuxcnc a mas to skoro hotovy a za minimum
a maloco bude lepsi nez tohle reseni a rozhodne mnohonasobne drazsi
Vsechna prava na chyby vyhrazena (E)
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

16. 3. 2018, 8:25

Jestli jsem pochopil správně zadání, tak to chce řídit PLCéčkem od Unitronicsu.
Takže pokud řízení po sběrnici, tak nejspíš ten Modbus. Ten je navíc obecně nejlevnější, takže spousta servodriverů a měničů ho má jako bonus ke svému hlavnímu řídicímu interface.
Samozřejmě je pomalý a tak pro nějaký tvrdý Real-time to není, ale pro takovou úlohu, o jaké je tady řeč, je to podle mě bezva a je to za pusu.
Vojta333
Protřelý bazarník
Příspěvky: 74
Registrován: 30. 1. 2017, 3:10

19. 3. 2018, 10:03

Najprv to ries s projektantom aby ste sa dohodli, kde a aky pohon sa puzije.
Projektantem i konstruktérem jsem já, zákazník chce jen aby stroj dokázal vyrábět určité výrobky. Po mechanické stránce nebude problém stroj postavit, zatím jen trochu tápu v řízení servomotorů
Ci treba nutne serva alebo staci niekde ac motor s prevodovkou.
5 os je nutno přestavit do nějaké polohy (bez vzájemná interpolace) a jedna osa jedna je přejezd samotné pily, tam by sice šel použít asynchronní motor, ale co jsem předběžně koukal tak mají většinou větší hmotnost než AC servomotory, problémy s dojezdy (2 sady koncáků) a také nevím jak by se jim líbili neustálé rozjezdy bez regulace proudu (u serva je při rozjezdu omezen a motor by se tak neměl spálit)
... proto je i to ovládání tím DIR/STEP přísně synchronní... nebo se ta serva dají programovat sběrnicovým způsobem, třeba po Modbusu nebo jiné sběrnici
Takovouhle odpověď jsem víceméně hledal, děkuji :)
Jinak o víkendu 24. 3. a pár dní po něm zřejmě budu v Jablonci. Kdybys měl cestu kolem, tak se možná můžeme na chvilku potkat. Jestli bude pěkně, tak si třeba vyšlápnout na kole na Prezidentskou a potkat se tam.
Vlastníme u České chalupy starší továrničku s vodní elektrárnou, rád vás pozvu na prohlídku :)
Vše je otázkou financí, čili nasazení.
Jak jsem už psal, od serv a jejich řízení nepotřebuji "žádnou" přesnost jelikož jde o řezání vaty, takže by to snad nemělo vyjít na moc peněz. Jinak rozpočet na motory v celkovém měřítku nebude tak dramatický, takže když se vejdu do 30 tisíc za servomotor + ovladač budu rád, když to bude víc tak se to také dá zkousnout
na pc linuxcnc a mas to skoro hotovy a za minimum
a maloco bude lepsi nez tohle reseni a rozhodne mnohonasobne drazsi
Nerad bych to kombinoval s nějakým už existujícím softwarem (linuxcnc), tady půjde o hodně jednoduché řízení, defakto jen načíst data z tabulky ke každému řezu, navíc bez vzájemné interpolace. Takže mi příjde lepší použít už existující PLC s HMI který už je navržené pro práci na stroji, má plno podpůrných funkcní, než vše programovat od začátku

Takže pro upřesnění, pokud budu mít na servo ovladači nastaveno že jedna otáčka je 10 pulsů, co se stane když tam během nepatrné chvíle pošlu 100 pulsů ? Neotočí se teda za čas o 10 otáček ?
U CNC bych čekal že PID regulátor v servo ovladači není použit a signály z enkodéru jdou do hlavního řídícího počítače který synchronizuje jednotlivé osy a poté interpoluje vzájemné pochyby a posílá jednotlivé pulsy a čeká na zpětnou vazbu.
Pokud ale nechám zapnutý PID regulátor v servo ovladači, není mi moc jasné jak se bude chovat když nebudou synchronní s aktuálním pohybem. Děkuji moc za odpovědi :)
Uživatelský avatar
robokop
Site Admin
Příspěvky: 22371
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

19. 3. 2018, 10:09

ja si z pohledu oho kdo to uz pouzival a pouzival i bezna PLC s HMI stale myslim ze mi prijde reseni s linuxcnc pohodlnejsi
nicmene servo s driverem od delaty poridis cca za 14 s podporou modbus a s ethercatem cca 18
splni tve pozadavky bezezbytku
dalsi vec cim to ridit
spousta tech plc je vazne natvrdlejch a musis to naucit kazdou blbost a resit to otrocky rucne
z linuxcnc by jsi mohl pouzit pouze to jadro ktere ti umozni spojovat jednotlive moduly treba komunikaci po sbernici, interpolator pohybu, GUI si udelas vlastni a cele se to programuje velmi pohodlne ve vyssich programovacich jazycich a pomoci RAD nastroju a cele v prostredi normalniho PC pak to nahrajes do prumysloveho panelu
Vsechna prava na chyby vyhrazena (E)
Vojta333
Protřelý bazarník
Příspěvky: 74
Registrován: 30. 1. 2017, 3:10

19. 3. 2018, 6:09

Ty nejlevnější ovladače od Delta jsem našel za 8 500 kč a měl MODBUS a nebo za 12 500 kč lepší model který umí i EtherCaT

https://eshop.profcom.cz/produkty-detai ... ion=detail

Nad počítačem jsem taky uvažoval ale zatím nemám ponětí jak implementovat podporu EtherCatu a podobně ..
.. a co se týče LinuxCNC tak tím jsem úplně nepolíbený, ale klidně bych se to snažil doučit, pokud by výsledek stál za to.

Když jsme se letmo snažil něco najít o vlastním LinuxCNC tak mi vyskakovali pouze vlastní GUI, já nechci vůbec G-kod nebo vzájemnou interpolaci, pouze z tabulky načíst hodnoty pro aktuální řez, udělat pár jednoduchých výpočtů a odeslat informace do servo ovladačů aby se posunuli

Takže jestli by jsi mě mohl nasměrovat "co mám vůbec hledat" popřípadě nějaký odkaz tak bych ti byl opravdu vděčný
Uživatelský avatar
robokop
Site Admin
Příspěvky: 22371
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

19. 3. 2018, 6:16

Jo na ty ceny z profcomu jsem pro cleny fora domluvil slevu 20%

Linuxcnc je vpodstate univerzalni modularni system
Muzes si z nej pouzit co chces treba prave ten ethercat modul a interpolaci si resit vlastni
Nejlip je kdyz si nainstalujes ten zaklad a podivas se do toho zacina to vpodstate v halu tam se loadujou a pospojujou ty moduly
Vyhodou je jak uz jsem psal vyssi programovaci jazyky a mnozstvi dignostickych nastroju
Cele je to vpodstate sada knihoven modulu a nastroju
Muzes tim ridit cokoli
Vzhledem k tomu ze to 99.9% uzivatelu pouziva na cnc a menej jen gui a konfiguraci tak ti odpoved na tvou otazku prisla od google takova jaka prisla
Nic to nemeni na tom ze s tim muzes ridit treba stolici na testovani draznich podvozku
Vsechna prava na chyby vyhrazena (E)
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

19. 3. 2018, 7:48

Absolutně nemám nic proti LinuxCNC, naopak ho docela miluju a používám.

Přesto si myslím, že na tuto konkrétní aplikaci je lepší řešení PLC+HMI (což je v případě Unistreamu jedna škatule), k tomu nejlevnější serva s Modbusem, superjednoduchá kabeláž a jedem.
Jak už zaznělo, možná to by zvládl i asynchronní motor s frekvenčním měničem se zpětnou vazbou. Chtělo by to ale trochu podrobněji prozkoumat zadání.

Jinak kdyby se měla používat serva DIR/STEP, tak by to šlo klidně celé realizovat na Arduinu s GRBL. ;-)
Sice jsem tam dal smajlíka, ale skutečně by to celkem jednoduše šlo i takto jednoduše a levně.
Naposledy upravil(a) Mex dne 19. 3. 2018, 7:50, celkem upraveno 1 x.
QNX
Příspěvky: 3701
Registrován: 20. 12. 2006, 9:59
Kontaktovat uživatele:

19. 3. 2018, 7:49

Tak na tohle by snad stačilo něco vyloženě primitivního, obzvlášť, jestli to má řídit drivery se vstupem Step/Dir. Co třeba dva kusy arduina nano s GRBL (každé by ovládala 3 osy Step/Dir) a do těch posílat jednoduché řídicí příkazy z PLC. PLC by pak obsluhovalo ostatní I/O. To je řešení za pár stokorun a jednoúčelák to krásně uřídí.
Uživatelský avatar
robokop
Site Admin
Příspěvky: 22371
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

19. 3. 2018, 7:52

ja predpokladam slozitejsi zadani nez by umoznil asynchronak
asi by to chtelo znat detaily
ono by to mozna nepotrebovalo ani modbus
ty deltacky serva umej dost veci pomoci vnitrnich sekvenci
pak by to slo ridit par iockama a serva by se chovali do urcite miry autonomne

to presne zadani
schema a navaznosti pohybu by se hodili
treba vymyslim kanon na vrabce
Vsechna prava na chyby vyhrazena (E)
fupe
Příspěvky: 638
Registrován: 27. 5. 2008, 9:10
Bydliště: Praha

19. 3. 2018, 9:10

Vojta333 píše: Nad počítačem jsem taky uvažoval ale zatím nemám ponětí jak implementovat podporu EtherCatu a podobně ..
.. a co se týče LinuxCNC tak tím jsem úplně nepolíbený, ale klidně bych se to snažil doučit, pokud by výsledek stál za to.

Když jsme se letmo snažil něco najít o vlastním LinuxCNC tak mi vyskakovali pouze vlastní GUI, já nechci vůbec G-kod nebo vzájemnou interpolaci, pouze z tabulky načíst hodnoty pro aktuální řez, udělat pár jednoduchých výpočtů a odeslat informace do servo ovladačů aby se posunuli

Takže jestli by jsi mě mohl nasměrovat "co mám vůbec hledat" popřípadě nějaký odkaz tak bych ti byl opravdu vděčný
vim, ze se opakuju, ale zkus to trochu lip popsat. treba kus jednoho cyklu.
budes delat od jednoho tvaru vicero kusu, nebo bude co kus to unikat.
chces nacitat data z nejakeho vygenerovaneho souboru
nic z toho neni problem pro linuxcnc. jak pise robokop, lidi to moc neznaj, ale je to stavebnice z ktere si pozkladas co potrebujes.
treba jsem na linuxcnc (machinekit) stavel merici stroj. neco jako lis do ktereho se zalozily dva kusy neceho, jeden pravej jeden levej kus.
zmacknul se cudlik, lis sjel dolu a oměril cca 40 kontaktu na kazdem kuse. vypsal na dotykovou obrazovku jestli je vse v poradku, graficky vyznacil, ktery pin je chybny, automaticky pripocital dobre kusy, vadne kusy. hlidalo si to pocty kusu v serii atd atd. nechci sem davat obrazky, delal jsem to pro jednoho cloveka tady na foru. Cely to bezelo na beagle bone black (pc velikosti kreditni karty) a 10 palcovem lcd. par obrazku, nejaky konfiguraky, jeden python script a to je cele. Gui bylo udelane v glade-vcp. ukladalo to nejaky protokoly do souboru atd atd.
Proste udelat se da skoro cokoliv.
Martin
Odpovědět

Zpět na „Zacinam stavet a nevim jak na to“