LinuxCNC na OrangePi

Grad
Příspěvky: 2073
Registrován: 13. 7. 2014, 9:32

10. 7. 2020, 6:04

Výtečné vlákno Mexi,budu bedlivě sledovat!
Zatím jsem to jen prolítl, ale pro sebe registruji minimálně tři zajímavá témata hodná samostatných vláken, moc díky.

1. Parádní vysvětlení přínosů toho ruského projektu a v čem může být zajímavý. Prvně jsem ho zachytil v jiném vlákně viewtopic.php?t=37301 ale jako obvykle se to zvrhlo trochu jinam a nezaujalo.

2. Pochopil jsem, že to má zatím i nějaké mínusy a projekt je v začátcích a spíše pro SW geeky a navíc s potřebou dodělat nějaký HW - oddělovací desku... Napsat dobrou dokumentaci pro lepší pochopení neřknu li návod pro lamy jak to zprovoznit a dodělat další HW pomůže dalšímu šíření projektu. Možná by stálo za to, spojit se s autorem či dalšímy nadšenci :-) https://forum.linuxcnc.org/18-computer/ ... -orange-pi

3. Dotáhnout ten tester do finálního stavu - produktu by myslím byl dobrý počin pro kde koho nejen zde ;-)
Mex
Příspěvky: 10287
Registrován: 6. 2. 2014, 10:29

3. 9. 2020, 1:20

Po delší době jsem se zase dostal k OrangePi.
A neuvěřitelné se stalo skutkem - povedlo se mi na něm rozjet EtherCAT!

Byl to teda docela boj. Nejen, že se ten master musí přeložit na architektuře ARM. Ale hlavně ten původní master pro PC je dělaný pro stará Linuxová jádra 2.x a 3.x. Ale na tom OPi je nový kernel řady 5.4.
A Linux se tady trochu utrhl ze řetězu. V nových jádrech jsou nové funkce, to je logické a očekávané. Ale hoši bohužel občas rezignovali na zpětnou kompatibilitu. A tak tam sice dali novou (vylepšenou) verzi, ale tu původní zrušili. A tím pádem SW, který spoléhá na starší verze jádra, nelze zkompilovat a musí se upravit.
Takže do toho zahučelo 40 hodin práce a pokusů jako nic.

Ještě to bude chtít pořádně otestovat a možná trochu poladit, protože mi to občas (třeba tak po 10 minutách) vypadne ze synchronizace. Ale to jsou jen drobné porodní bolesti. Podstatné je, že je to reálné. Že to jede a nežere skoro žádný výkon.

Nemám zrovna doma žádné EtherCATové servo, takže nemám čím kroutit. Ale mám tady I/O coupler Beckhoff, a tam to se vstupy a výstupy cvičí jak má.

Takže jsem fakt docela hepí. :)
Uživatelský avatar
robokop
Site Admin
Příspěvky: 22386
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

3. 9. 2020, 7:53

Tak to je mazec
Vsechna prava na chyby vyhrazena (E)
Uživatelský avatar
Erythros
Příspěvky: 33
Registrován: 7. 10. 2014, 7:48

5. 9. 2020, 1:32

Mex píše: 3. 9. 2020, 1:20 Po delší době jsem se zase dostal k OrangePi.
A neuvěřitelné se stalo skutkem - povedlo se mi na něm rozjet EtherCAT!
[...]
Zajímavé. Předpokládám, že mluvíš o IgH EtherLab EtherCAT masteru ve spojitosti s linuxcnc-ethercat driverem? Kterou verzi toho IgH masteru jsi použil? Ten vývoj není moc aktivní, ale stále commity přibývají, naposledy před 2 dny.

Je samozřejmě možné (a v této oblasti asi ne překvapivé), že se prostě zatím vykašlali na 5.x kernely.

Je ten kód někde veřejně dostupný?
Mex
Příspěvky: 10287
Registrován: 6. 2. 2014, 10:29

5. 9. 2020, 11:58

Ano, je to IgH master.
Základ jsem vzal odtud, je tam do původního kódu od IgH Etherlab přidáno pár patchů pro jádro 4.x:
https://github.com/synapticon/Etherlab_EtherCAT_Master

Celé jsem to zatím dělal jako technologický pokus, jestli tudy vede cesta. Jestli je to vůbec možné na něčem podobném plnohodnotně provozovat.
To se ukázalo, že ano. Takže v tom budu po drobné mezihře (viz dále) pokračovat.
Jinak už mi to při běhu pod LinuxCNC neztrácí synchronizaci. Je tam ale ještě jedna drobná vada na kráse, že občas to do logu zapíše, že přišel nějaký poškozený paket. Ale přitom to stále jede OK. Tak to bude chtít prozkoumat, co to vlastně znamená.

Ale předtím udělám úkrok stranou. Napřed ten EtherCAT master rozjedu na novém jádře 5.4.x, ale na PC. Zkusím to dostat na některou z předvařených distribucí LinuxCNC na Linux Mint 64bit. Ty doufám používají nová jádra.
Chci to udělat proto, abych v případě nejakých problémů mohl zjistit, jestli to souvisí s během na ARM/PC, nebo s během na nových jádrech. A taky na tom PC můžu spustit provoz přes speciální bez-IRQ drivery. Na desce OPi musím jet přes driver "generic", ten ale prý i na PC některým lidem dělal problémy. Tak když to spustím na PC, tak budu moct experimentovat se speciálním nebo generic driverem a hledat rozdíly.

Je nepříjemné, že ty speciální drivery pro novější jádra (od 4.x dál) už nejedou s kartama RTL8139. Těchto karet je všude spousta a jsou vpodstatě zadarmo. Zkusím prozkoumat, proč podporu zrovna pro ně ukončili.

Jsem teď pár dní mimo, ale po návratu se do toho zase pustím. Líbilo by se mi mít malou krabičku s EtherCAT masterem. Ta by se pak dala používat i mimo prostředí LinuxCNC pro obecné řízení technologií. Dneska už je ten EtherCAT v ledasčem. Zrovna minulý víkend jsem rozbíhal takový pěkný kompaktní servopohon i s převodovkou a absolutním enkodérem od firmy Lika.
Uživatelský avatar
robokop
Site Admin
Příspěvky: 22386
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

6. 9. 2020, 10:13

Podelis se pak s tema patchema?
Docela bych to chtel prubnout. Mam tu nejaky hardware na ethercat.
Vsechna prava na chyby vyhrazena (E)
Uživatelský avatar
zz912
Příspěvky: 1355
Registrován: 25. 5. 2008, 7:16

8. 9. 2020, 9:38

Mex píše: 5. 9. 2020, 11:58 Je tam ale ještě jedna drobná vada na kráse, že občas to do logu zapíše, že přišel nějaký poškozený paket.
LinuxCNC má nějaký interní log? Kde bych ho našel? Nebo mluvíš o nějakém jiném logu?
LinuxCNC - MESA 7i96
zz912.webnode.cz
Uživatelský avatar
robokop
Site Admin
Příspěvky: 22386
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

8. 9. 2020, 9:41

tohle spis bude v kernel logu
Vsechna prava na chyby vyhrazena (E)
Mex
Příspěvky: 10287
Registrován: 6. 2. 2014, 10:29

8. 9. 2020, 2:26

zz912 píše: 8. 9. 2020, 9:38 LinuxCNC má nějaký interní log? Kde bych ho našel? Nebo mluvíš o nějakém jiném logu?
dmesg

Vrátil jsem z cest a znovu se k tomu trochu dostal. Mimo jiné jsem udělat pokus stability toho EtherCATu. Nechal jsem to jet přes noc. A fungovalo to 12 hodin. Pak jsem to už musel vypnout, potřeboval jsem něco dělat. Takže dobré.

Díval jsem se na nové distribuce s předchystaným LinuxCNC, tedy na Linux Mint 64bit. Překvapilo mě, že použili starší jádro řady 4.x.
Chtěl jsem to použít jako testovací a srovnávací etalon pro ten EtherCAT, abych při případných problémech mohl zjistit, že je to kvůli PC/ARM nebo kvůli nějaké mé blbosti.

Tak jsem teď trochu na vážkách. Jestli si udělat vlastní instalaci na PC na nějakém Linuxu s novým jádrem 5.4.x, nebo se na desce OPi pokorně vrátit na některý starší kernel 4.x.
Tím testem s předchystanou verzí na PC jsem si chtěl ušetřit práci. A teď to vypadá, že mi to naopak práci přidá.
atlan
Příspěvky: 3345
Registrován: 7. 2. 2011, 9:12

10. 9. 2020, 4:34

A suri tito? Zeby si pockal kym pride podpora pre to novsie jadro?
Ako projekt je to zaujimavy. Nahlodany na to som.
Mex
Příspěvky: 10287
Registrován: 6. 2. 2014, 10:29

11. 9. 2020, 2:58

Trochu jsem to zase pošlechtil a ten EtherCAT na desce OPi začíná vypadat jako skoro použitelné zařízení.
Půjčil jsem si servo Lika, takže už mám i čím motat.

Dotaz: jakým mechanismem prosím čtete obsah SDO v rámci LinuxCNC (tedy v HALu) ?
Umím je přečíst manuálně z příkazového řádku. Ale z LinuxCNC umím do SDO jen zapsat. A to ještě jen konstantní hodnotu pomocí bloku v konfiguračním XML.
Díky.
Mex
Příspěvky: 10287
Registrován: 6. 2. 2014, 10:29

12. 9. 2020, 4:13

Tak ještě jeden pokus o dotaz. Dám to sem, ať nezakládám zbytečně vlákno. Pokud by se náhodou diskuse nějak rozjela, tak to nové vlákno udělám.

Programoval prosím někdo nějaký software, který by využíval ten EtherCAT master IgH, který se používá v LinuxCNC?
Nemám na mysli jen využít hotové moduly (jako je třeba "lcec" od Sittnera), ale napsat vlastní.

Nemám žádný konkrétní problém. Ptám se jen proto, jestli by tu byl někdo na pokec a sdílení rozumů, protože se do toho chci pustit. A to jak na PC, tak třeba i na téhle malé desce OPi.

Díky.
Mex
Příspěvky: 10287
Registrován: 6. 2. 2014, 10:29

14. 9. 2020, 8:03

Experimentoval jsem na PC se stejnou verzí EtherCAT mastera, jako používám na desce OPi. Pokud se použijí nativní EtherCATové drivery pro síťovku (v mém případě pro RTL8139), tak je to opravdu rock-solid. Naprosto spolehlivé až neprůstřelné.
Ale pokud se použijí běžné drivery ze systému a k nim mezivrstva "generic", tak to na tom PC padá. Do půl hodiny je to celkem bezpečně na hromadě.

Dělal jsem ten pokus záměrně proto, abych zjistil, jaky je rozdíl při použití speciálních a obyčejných driverů. A až mě překvapilo, že je to pak na PC s běžnými drivery výrazně méně stabilní než na tom OPi za stejných podmínek. Tam to jede mnohem lépe.

Takže poučení z tohoto pokusu je pro mě následující: z OPi by se teoreticky dal udělat slušný EtherCAT master. Ale bylo by nezbytné zapracovat na vytvoření speciálního EtherCATového driveru pro síťovku. Což by tedy byl docela velký úkol, řekl bych.
Uživatelský avatar
robokop
Site Admin
Příspěvky: 22386
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

15. 9. 2020, 2:16

S tim generic u me stejny. Vrznu e1000 do slotu dam specialni driver a je klid.
Vsechna prava na chyby vyhrazena (E)
Mex
Příspěvky: 10287
Registrován: 6. 2. 2014, 10:29

15. 9. 2020, 4:15

robokop píše: 15. 9. 2020, 2:16 S tim generic u me stejny. Vrznu e1000 do slotu dam specialni driver a je klid.
Zajímavé je, že na té desce OPi to i s tím generic driverem jede v podstatě skoro dobře. Sice občas do logu napíše, že mu přišel nějaký špatný paket, ale to může způsobovat právě nějaký jiný provoz, který na tom generic driveru taky jede.
Každopádně to tam neztrácí pakety a dlouhodobě funguje. Mnohem lépe než s generic na PC.

Je tam jen taková zajímavost, že to po dlouhé době (po několika hodinách běhu) nějak rozhodí něco v systému a přestanou fungovat terminálová okna na X. Přes síť se k tomu normálně dá připojit a tam terminály jednou, jen na té grafické obrazovce s X to prostě nejede (tj. na monitoru, připojeném přes HDMI). Přitom EtherCAT master stále bez problémů jede, jiné programy se v grafice dají normálně spustit (třeba filemanager, editor atd.).
Odpovědět

Zpět na „LinuxCNC - drive pod nazvem EMC2“