Šiame straipsnyje palyginami dviejų pramoninių robotų - manipuliatoriaus ir mobiliojo roboto valdymo sistemos sprendimai ir pristatomos jų savybės.
Aukščiau pateikta klasifikacija yra pagrįsta objektu „Application“. Be to, rinkoje yra daugiau bendrų judesių valdiklių, tai yra tie, kurie kontroliuoja nestandartinę įrangą.
1 Valdiklio apatinio lygio sprendimas 1.1 Manipuliatoriaus įveskite manipuliatoriaus tipo valdiklį, sukurtą anksčiau ir yra santykinai subrendęs. Pažvelkime į esamą valdymo sistemos apatinio lygio sprendimą. 1.2 Mobiliojo roboto tipas Mobiliojo roboto valdiklis priklauso palyginti naujai krypčiai. Pramoniniai mobilieji robotai yra AGV, nepilotuojamos inžinerinės mašinos ir kt. Valdymo sistemos aukšto lygio sprendimas yra toks:
1.3 Palyginimas
Manipuliatorius turi didelius tikslumo ir judesio stabilumo reikalavimus, todėl skaičiavimo suma yra didelė, o ciklas yra trumpas, o tai paprastai yra nuo 1 iki 2 dydžio didesnės nei mobiliųjų robotų. Mobilieji robotai paprastai neturi aukštų sinchronizacijos tikslumo reikalavimų, o jų konfigūracija yra palyginti žema.
Manipuliatorius paprastai veikia fiksuotoje vietoje, o jo valdiklis dažniausiai dedamas į važiuoklę, todėl apsaugos lygis nėra aukštas, paprastai IP20. Mobilieji robotai turi būti atsparūs vandeniui ir dulkėms, nes jie turi dažnai judėti, ypač lauko inžinerijos mašinos, todėl jie turi apsvarstyti galimybę užtikrinti hidroizoliaciją ir atsparumą dulkėms. Jų apsaugos lygis yra aukštesnis, paprastai IP67.
2 Įvadas į „CodeSys 2.1 CodeSys“ kompoziciją
Pamatysite, kad daugelis robotų valdymo programinės įrangos yra įgyvendinta naudojant „Codesys“, taigi, kas yra „CodeSys“?
„Codesys“ yra mokama minkšta PLC kūrimo programinė įranga. Paprasčiau tariant, jį sudaro dvi dalys: kūrimo sistema ir vykdymo laiko sistema. Plėtros sistema yra programinės įrangos sąsaja, naudojama programavimui (kaip ir „Visual Studio“, „Eclipse“ ir kita programinė įranga, kuri taip pat gali būti vadinama IDE). Projektavimo, derinimo ir PLC programų sudarymas yra vykdomi IDE, tai yra ta dalis, su kuria dažnai susiduria vartotojai;
Parašius PLC programą, ji turi būti perkelta į techninės įrangos įrenginį, skirtą eksploatavimui. Tačiau sugeneruota PLC programa šiuo metu negali vykdyti. Jis turi veikti tam tikroje programinės įrangos aplinkoje. Ši aplinka yra vykdymo laikas, kuri vartotojams nematoma.
Dviejų montavimo vietos paprastai skiriasi. IDE paprastai įdiegta kūrimo kompiuteryje, o „Runtime System“ yra aparatūros įrenginyje, kuris vaidina valdymo vaidmenį. Paprastai abu yra sujungti tinklo kabeliais, o programa atsisiunčiama į vykdymą per tinklo kabelį, kad galėtų veikti.
„Codesys“ nėra gerai žinoma Kinijoje, tačiau ji turi ilgalaikę reputaciją Europoje, ypač pramonės kontrolės srityje. Daugelis aukščiau paminėtų robotų kompanijų naudoja savo produktus, tokius kaip „Keba“, „Beckhoff“, „GOOGOL“ ir beveik visi mobiliųjų robotų valdiklių gamintojai.
3S, bendrovė, sukūrusi CoDeSys, parduoda tik programinę įrangą, o ne aparatinę įrangą. Techninės įrangos grandinę turi sukurti vartotojas, o 3S yra atsakinga už Runtime System perkėlimą į kliento aparatinę įrangą. „Runtime System“ gali veikti be aparatinės įrangos, tačiau paprastai ji veikia operacinėje sistemoje, o operacinės sistemos konfigūravimas taip pat yra kliento darbas.
Klientui pageidaujant, CoDeSys IDE galima pritaikyti, kad būtų pakeistas kliento logotipas ir išvaizda, todėl pastebėsite, kad skirtingų gamintojų kūrimo platformos atrodo skirtingai, tačiau stiliai yra gana panašūs.
Žinoma, vartotojai gali naudoti ir kitus IDE. Pavyzdžiui, Beckhoff naudoja Microsoft Visual Studio, o už kompiliatoriaus esanti branduolio ir funkcijų biblioteka vis dar naudoja CoDeSys sprendimą.
„CodeSys“ vykdymo laikas turi stiprų pritaikomumą ir palaiko daugumą operacinių sistemų ir aparatūros lustų architektūros.
2.2 „CoDeSys“ vykdymo principas
„CoDeSys“ IDE dalis yra nemokama ir galite ją atsisiųsti iš oficialios svetainės, kad galėtumėte ją išbandyti. Tikrasis mokestis yra vykdymo sistema Runtime System.
Savo dizaino pradžioje „Codesys“ padalino funkcijas į kelis komponentų modulius, tokius kaip magistralės protokolo kaminas, vaizdinė sąsaja, judesio valdymas, saugos valdymas ir kt. Suformuokite pritaikytą valdymo programinės įrangos platformą.
Kai kurie „soft PLC“ naudotojai gali jaustis nepažįstami šios dalies, tačiau iš tikrųjų šis projektavimo metodas yra labai paplitęs. Pavyzdžiui, tokiu būdu veikia MATLAB Simulink realaus laiko įrankių rinkinys (Real-Time). Vartotojai kuria valdymo programas vilkdami ir numesdami Simulink grafinėje sąsajoje, o tada atsisiunčia jas į tikrą aparatinę įrangą, kad paleistų. Apie tai galite sužinoti čia.
Taip pat yra toks naudojimo būdas, kaip Beckhoffas. Vartotojai programuoja „Twincat IDE“ ir atsisiųskite juos į „Beckhoff“ valdiklį. Tiesą sakant, valdiklyje iš anksto įdiegta vykdymo laikas. „Siemens Step7“ taip pat yra IDE, o jo PLC taip pat turi atitikimą.
Vartotojo parašyta PLC programa yra tarsi programa mūsų kompiuteryje. Jis veikia vykdymo sistemoje, o vykdymo sistema veikia operacinėje sistemoje.
Vykdymo laiko sistema yra tarp programos ir operacinės sistemos. Taigi tai gali būti vadinama tarpine programine įranga. Roboto programinėje įrangoje toje pačioje padėtyje yra ROS, OROCOS (Real-Time Toolkit) ir kt.
Roboto valdymas, kaip ir CNC staklės, reikalauja realaus laiko našumo, todėl mūsų pasirinkta operacinė sistema yra geriausia realaus laiko operacinė sistema (RTOS). Deja, operacinės sistemos, kurias dažnai naudojame, nėra realiuoju laiku, pavyzdžiui, „Windows“ ir „Linux“. Bet laimei, kažkas juos pakeitė, tai yra, pridėjo realaus laiko pataisas.
Dažniausiai naudojamos realaus laiko operacinės sistemos apima: „VXWorks“, „QNX“, „Windows RTX“, „Xenomai“, „RT Linux“, „Linux RTAI“, „Wince“, „μC/OS“, „Sylixos“ ir kt., Atsižvelgiant į tai, kad yra daugybė „Windows“ ir „Linux“ operacinių sistemų vartotojų, paleista „CodeSys“, „CodeSys“ paleido „CodeSys“, „CodeSys“. Atitinkamas realaus laiko pleistras (RTE), kad vartotojams būtų išsaugota modifikavimo bėda.
Norėdami gauti daugiau informacijos apie „CoDeSys Runtime“, galite perskaityti oficialų dokumentą [Math Processing Error] [1][2][1][2].
2.3 „CodeSys“ trūkumai
„CoDeSys“ palengvina valdiklio kūrimą ir neleidžia mums pradėti nuo nulio. Tačiau kuriant savo valdiklio produktus, pagrįstus komercine programine įranga, pvz., CoDeSys, yra daug trūkumų:
(1) Pagrindinis algoritmas neatidarytas
Visi „CoDeSys“ integruoti judesio valdymo komponentai ir magistralės protokolų rinkiniai yra inkapsuliuoti. Vartotojai negali suprasti savo vidinių detalių, taip pat negali jų pritaikyti ir optimizuoti pagal savo konkrečius poreikius. Juos galima vadinti tik paprastai. Vartotojai gali pasikliauti tik CoDeSys platforma ir jiems sunku sukurti savo pagrindinę technologiją.
(2) Ribotos funkcijos ir sunku išplėsti
Naujos technologijos, atstovaujamos mašinų matymui, dirbtiniam intelektui ir autonominiam vairavimui, dabar tobulina šuolius, o daugelis pramonės kontrolės technologijų vis dar yra 20 metų. Navigacijos scenos pasirinkimas mobiliajame robote kaip pavyzdžiu, navigacijos metodas, pagrįstas regėjimu ar lazeriu, turi surinkti didelį kiekį duomenų ir jį apdoroti, o tai apima daugybę matricos skaičiavimų.
Dabar PLC gali atlikti tik atgalinius vienmačius skaitmeninius skaičiavimus, todėl sunku įgyvendinti sudėtingus algoritmus. Priešingai nei dirbtinio intelekto bendruomenės atvirojo kodo stilius, pramonės kontrolės bendruomenė yra uždara viena nuo kitos. Niekas nenori atidaryti savo funkcijų bibliotekų. Yra labai mažai atvirojo kodo funkcijų bibliotekų (OSCAT). Net patys paprasčiausi filtravimo algoritmai ir matricos skaičiavimai turi būti parašyti nuo nulio. Be to, pagrindinės tarptautinių standartų funkcijos yra pernelyg ribotos ir visiškai negali prisitaikyti prie naujų scenarijų. Juos skubiai reikia plėsti.
(3) Sunku atnaujinti
Dėl visiško priklausomybės nuo „CodeSys“, klientų pačių produktų aparatūros atnaujinimas turi būti pritaikytas ir persodintas, todėl padidės išlaidos.
3 Atvirojo kodo sprendimai
Šiuo metu yra keletas atvirojo kodo valdymo sistemų sprendimų, tokių kaip Beremiz, Orocos, OpenPLC, OpenRTM ir ORCA.
Robotų valdiklių kūrimas yra sunki užduotis. Turi būti paaiškinta eilė našumo reikalavimų, iš kurių pirmasis yra našumas realiuoju laiku.
Realaus laiko veikimas paprastai reikalingas pramoniniams robotams, bet nebūtinai paslaugų ar pramogų robotams. Paprastiems žmonėms lengva supainioti „našumą realiuoju laiku“ kaip greitą apdorojimą ar atsako greitį, tačiau iš tikrųjų „našumas realiuoju laiku“ reiškia „determinizmą“ laike. Pavyzdžiui, atsako pertraukimo arba proceso perjungimo delsos laikas realiojo laiko operacinėje sistemoje (RTOS) turi būti laiko intervale.
Operacinės sistemos, kurias mes dažniausiai naudojame („Windows“, „Linux“), nėra realaus laiko operacinės sistemos, nes jos yra skirtos pralaidumui ir negali garantuoti, kad kiekvienas įvykis yra apdorojamas tam tikrame diapazone. Pavyzdžiui, standartinio eterneto perdavimo greitis yra daug greitesnis nei realaus laiko pramoninio eterneto, tačiau jis taip pat nėra realiuoju laiku, nes jis taip pat negali garantuoti, kad duomenys perduodami per tam tikrą laiką.
Realiu laiku suprasti nesunku, bet kokias roboto užduotis reikia vykdyti realiuoju laiku? Kaip nustatyti programos veikimo laiko intervalą pagal roboto veikimo reikalavimus (1ms arba 10ms)? Ar realus laikas priklauso nuo aparatinės ar programinės įrangos?
Kaip pasirinkti konkrečią aparatinę ir programinę įrangą, pagrįstą realiuoju laiku (ARM arba X86, Linux RTAI arba VxWorks)? Nuodugnių diskusijų šiuo aspektu internete trūksta, o didieji robotų gamintojai savo bandymų ir eksperimentų rezultatų neatskleis. Atrodo, kad šis aspektas daugiausia priklauso nuo patirties ir bandymų bei klaidų.
Čia galiu pateikti tik keletą rodiklių. Šiuo metu pramoninių robotų ginklų valdymo ciklas yra apie 1ms, o aukšto našumo servo disko padėties ciklas gali pasiekti 125 [Matematikos apdorojimo klaidą] MU Sμs. „Plcopen“ apibrėžia kai kuriuos servo ir judesio valdymo standartus, įskaitant programavimo kalbą, pagrindinius judesio valdymo funkcijų blokus, įvesties parametrus ir išvesties sąsajas ir kt. [Matematikos apdorojimo klaida] ^{[3]}
[3] Konkretus įgyvendinimo kodo duomenis pateikia įvairūs gamintojai.





