Mendelova univerzita v Brně Provozně ekonomická fakulta
Vzdálený přístup k pracovišti robota Katana Bakalářská práce
Vedoucí práce: Dr. Ing. Radovan Kukla
Josef Jeniš
Brno 2012
2 Tady bude puvodni zadání BP. . .
Děkuji vedoucímu práce, Dr. Ing. Radovanu Kuklovi za vedení této práce a za poskytnutí podkladů, které byly nezbytné pro její vypracování. Dále děkuji za poskytnutí cenných rad a pomoci.
Prohlašuji, že jsem tuto práci vypracoval samostatně a pouze za použití informačních zdrojů, které jsou uvedeny v seznamu použité literatury.
V Brně dne 23. října 2012
....................................................
5
Abstract Josef Jeniš, Remote access to workstation of robot Katana. Bachelor Thesis. Brno: MENDELU PEF, 2012 This thesis describes the solution of remote access to a workstation of the Katana robot mediated through an application, which will be created in a programing system Control Web 6 with a system of machine vision VisionLab. This thesis also describes selection of suitable hardware for shooting and lighting the scene. The thesis also solves problems, that might occur during the remote access to the Katana robot and their solutions.
Abstrakt Josef Jeniš, Vzdálený přístup k pracovišti robota Katana. Bakalářská práce. Brno: MENDELU PEF, 2012 Tato práce popisuje řešení vzdáleného přístupu k pracovišti robota Katana pomocí aplikace vytvořené v programovém systému Control Web 6 spolu se systémem strojového vidění VisionLab. Práce popisuje také výběr vhodného hardwaru pro snímání a osvětlení scény. Dále práce řeší, jaké potíže mohou nastat při vzdáleném ovládání manipulátoru Katana a jejich řešení.
6
OBSAH
Obsah 1 Úvod
9
2 Cíl práce
10
3 Teoretická část 3.1 Robot Katana . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.1 Pracovní nástroje . . . . . . . . . . . . . . . . . . . 3.1.2 Ovládací panel . . . . . . . . . . . . . . . . . . . . 3.1.3 Možné nastavení . . . . . . . . . . . . . . . . . . . 3.1.4 Programovací a ovládací software Katana 4D a KNI 3.2 Strojové vidění . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 Princip strojového vidění . . . . . . . . . . . . . . . 3.2.2 Snímač kamery . . . . . . . . . . . . . . . . . . . . 3.3 Control Web . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.1 Historie . . . . . . . . . . . . . . . . . . . . . . . . 3.3.2 Control Panel . . . . . . . . . . . . . . . . . . . . . 3.3.3 Control Web . . . . . . . . . . . . . . . . . . . . . . 3.3.4 Současnost . . . . . . . . . . . . . . . . . . . . . . . 3.3.5 Časové rozdělení aplikací . . . . . . . . . . . . . . . 3.3.6 Modul VisionLab . . . . . . . . . . . . . . . . . . . 3.4 DataLab IO . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.1 DataLab IO/USB . . . . . . . . . . . . . . . . . . . 3.4.2 Jednotka DataLab IO4/ETH . . . . . . . . . . . . 3.4.3 Jednotka DataLab IO4/COM . . . . . . . . . . . . 3.5 DataCam a DataLight . . . . . . . . . . . . . . . . . . . . 3.5.1 Kamery DataCam . . . . . . . . . . . . . . . . . . 3.5.2 Osvětlovací jednotky DataLight . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
11 11 12 13 13 13 14 15 16 16 16 17 18 19 19 21 21 21 23 23 24 24 25
4 Metodika řešení 4.1 Hardwarové řešení . . . . . . . . . . 4.1.1 DataLab IO . . . . . . . . . . 4.1.2 DataCam . . . . . . . . . . . 4.1.3 DataLight . . . . . . . . . . . 4.2 Softwarové řešení . . . . . . . . . . . 4.2.1 Programování v Control Web 4.2.2 Vzdálený přístup . . . . . . . 5 Vlastní práce 5.1 Fyzické řešení úlohy . . . . 5.2 Softwarové řešení aplikace . 5.2.1 Kostra aplikace . . . 5.2.2 Konfigurace jednotky
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
27 27 27 28 29 29 29 31
. . . . . . . . . . . . . . . . . . DataLab
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
32 32 32 32 34
7
OBSAH
5.2.3 5.2.4 5.2.5 5.2.6 5.2.7
Konfigurace kamer a osvětlovače . Ovládání robota . . . . . . . . . . Přihlášení uživatele . . . . . . . . Ošetření možných komplikací . . Grafické rozhraní aplikace . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
35 36 36 37 39
6 Závěr 41 6.1 Shrnutí práce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 6.2 Zhodnocení výsledků . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 6.3 Budoucí využití a možná vylepšení . . . . . . . . . . . . . . . . . . . 42 7 Literatura
43
Přílohy
45
A Řešení snímání a osvětlení scény
46
B Ukázka aplikace
47
C Přiložené CD
51
OBSAH
8
Seznam zkratek CCD (Charged Coupled Device) – druh čipu používaný v kamerách a fotoaparátech pro snímání obrazu. CMOS (Complementary Metal Oxide Semiconductor) – čip pro snímání obrazu založený na této technologii výroby integrovaných obvodů. CNC (Computer Numerical Control) – automatizované řízení obráběcích strojů pomocí programovatelných jednotek. DLL (Dynamic Link Library) – sdílené knihovny pro aplikace v operačním systému Microsoft Windows. HTML HyperText Markup Language – značkovací jazyk určený pro tvorbu webových stránek. HTTP (Hypertext Transfer Protocol) – internetový protokol pro výměnu hypertextových dokumentů. KNI (Katana Native Interface) – open sourcové programovací rozhraní robota Katana. LAN (Local Area Network) – počítačová síť pokrývající malé geografické území (např. domácnost, malá firma apod.). PLC (Programmable Logic Controller) – malý průmyslový počítač určený pro automatizaci procesů v reálném čase. SCADA (Supervisory Control and Data Acquisition) – průmyslové řídící systémy sloužící pro monitorování průmyslových zařízení a jejich ovládání. SQL (Structured Query Language) – dotazovací jazyk používaný pro práci s daty v relačních databázích. TCP/IP (Transmission Control Protocol/Internet Protocol) – hlavní protokol pro komunikaci v počítačové síti. USB (Universal Serial Bus) – univerzální sériová sběrnice pro připojení periferních zařízení k počítači.
1
1
ÚVOD
9
Úvod
S nezastavitelným technologickým pokrokem se stále více věcí automatizuje a ulehčuje. V dnešní době neexistuje průmyslové odvětví, kde by se nedala nějaká činnost, kterou vykonává člověk, nahradit strojem, nebo více, či méně autonomním robotem. Může to být například stereotypní činnost nebo činnost, při které je neustále zapotřebí plného soustředění dělníka. Nahradit lidský faktor se může také při práci v nebezpečném prostředí nebo s nebezpečnými látkami. Toto nahrazování má samozřejmě své pro i proti. Pro zaměstnavatele je to určitě výhodná výměna. Někdy může mít sice daný robot vysokou pořizovací cenu, samozřejmě bude zapotřebí nějaký servis, ale ve výsledku toto nahrazení většinou vyjde levněji, než lidský pracovník. Další nesporná výhoda je ta, že po této výměně se prakticky vyloučí možnost lidské chyby. Hodně se tímto krokem zefektivní daná činnost, což může vést ke zlevňování výrobků a služeb. Současná technika je natolik vyspělá, že většina zařízení se dá ovládat na dálku, aniž by člověk musel být fyzicky přítomen u daného zařízení, což byla před několika lety pouze vize. Dnes je to realita. Pomocí telefonu můžeme ovládat například zásuvky. Ke svému počítači se člověk může připojit kdykoliv a kdekoliv, pokud má správný software, a neustále se nové věci a technologie vyvíjejí. Za nedlouho tedy bude standardem, že se člověk bude vracet z práce a pomocí svého mobilního telefonu si zapne například topení, kávovar a rozsvítí světla, aby se nemusel vracet do tmavého a studeného bytu a čekala tam na něj čerstvě uvařená káva. A tento trend vzdáleného přístupu se neustále rozrůstá. Proto i vzdálený přístup k robotu, pomocí kterého by se daly řešit různé úlohy, aniž by člověk musel být fyzicky přítomen v laboratoři, do které je pouze omezený přístup ať už kvůli výuce nebo kvůli časovému omezení, je svým způsobem přirozený vývoj toho trendu.
2
2
CíL PRÁCE
10
Cíl práce
Cílem této práce je vytvoření aplikace, pomocí které bude umožněn vzdálený přístup k manipulátoru Katana. Na základě analýzy pracoviště robota navrhnout vhodné hardwarové prostředky a zajistit, aby v případě jakýchkoliv komplikací během vzdáleného přístupu nedošlo k poškození robota nebo zařízení v jeho blízkosti. Pro tvorbu této aplikace použít vývojové prostředí Control Web 6 a hardwarové rozhraní DataLab, které je k dispozici na univerzitě.
3
TEORETICKÁ ČÁST
3 3.1
11
Teoretická část Robot Katana
Katana je malý, inteligentní robot, který vyráběla švýcarská firma Neuronics AG. Tato firma figuruje na poli robotiky a umělé inteligence od roku 1997. Má tedy bohaté zkušenosti a znalosti v problematice robotiky. Robot Katana představuje koncepci bezpečného robota, který je díky souboru bezpečnostních opatření a své konstrukci určen pro přímou spolupráci s lidmi. Může tedy s lidmi sdílet pracoviště a ti od něj nemusí být oddělení jakýmikoliv zábranami (ploty, závorami apod.). Robot je svou konstrukcí určen pro různé úlohy v průmyslu i v laboratořích. Dá se využít všude tam, kde je zapotřebí nahradit stereotypní lidskou práci, nebo například v místech, která by pro člověka představovala nebezpečná pracoviště (odebírat díly z rizikového prostoru, manipulace s nebezpečnými látkami apod.). Pro svoji velikost se ovšem nehodí do těžkého průmyslu. Tento robot je také přizpůsobený pro umístění kamerového systému, což zvyšuje jeho možnosti využití na rozpoznávání předmětů, barev a dalších důležitých parametrů pro rozhodování. (Neuronics AG, 2007a)
Obr. 1: Robot Katana (Neuronics AG, 2006, s. 6)
Robot je z veliké části vyroben z eloxovaného hliníku. Jsou využity harmonické převodovky pro zabezpečení precizního polohování s minimálním zatížením os. Pohon zajišťují DC stejnosměrné kartáčové motory, které jsou vybaveny digitálním odměřováním s vysokým rozlišením. (Neuronics AG, 2006)
3.1
Robot Katana
3.1.1
12
Pracovní nástroje
Univerzální uchopovač Základním a asi nejčastěji používaným chapadlem je univerzální uchopovač. Tento typ využívá také robot na naší univerzitě. Ten se skládá z těla uchopovače a dvou čelistí, které mají zabudované infračervené snímače a snímače síly. Podle přání zákazníka mohou obsahovat také snímače vodivosti. Samozřejmě existují různé typy čelistí s různou konfigurací senzorů. Proto je velmi důležité mít firmware uchopovače kompatibilní s typem čelistí. (Neuronics AG, 2006)
Obr. 2: Univerzální uchopovač (Neuronics AG, 2006, s. 20)
Na obr.3 jsou vyznačeny snímače a jejich umístění. Červenými tečkami jsou vyznačeny infračervené snímače a zelenými tečkami pak snímače síly. Tyto snímají po celé délce vnitřní strany čelistí. Na každé čelisti jsou umístěny čtyři infračervené snímače. Dva na vnitřní straně, jeden vepředu dole a poslední na vnější straně čelisti. Dva vnitřní senzory spolu s infračerveným senzorem ve středu těla uchopovače jsou využívány převážně k detekci předmětů. Jestliže jsou aktivovány přední snímače, slouží k detekci povrchu během pohybu ramene a otevírání čelistí. V čelisti jsou
Obr. 3: Čelisti uchopovače (Neuronics AG, 2006)
integrovány dva snímací body. Jeden ve přední, a druhý v zadní části čelisti. Každá síla působící na čelist aktivuje jeden, nebo oba snímací body. Analýzou těchto dvou složek je možné získat více o rozložení působící síly. Tento typ snímače dovoluje přesné měření, ale pokud se uchopované části podstatně odlišují (kus od kusu), je nutná kalibrace na softwarové úrovni. (Neuronics AG, 2006) Další možnosti Katana má samozřejmě mnoho dalších typů uchopovačů, které si zákazník může zakoupit. Na obr.4 jsou ukázány některé možnosti.
3.1
Robot Katana
13
Obr. 4: Další možnosti uchopovačů (Neuronics AG, 2007b)
3.1.2
Ovládací panel
Ovládací panel robota představuje nejmodernější ovládací prvky a komunikační technologie a zaručuje samostatné operace robotické ruky a periferních komponentů v reálném čase. Je založen na linuxovém operačním systému, který obsahuje mnoho standardních rozhraní, které zajišťují: • Jednoduchou komunikaci s motory, senzory, PLC regulátory. • TCP/IP podporu pro LAN a webové aplikace. • Spojení s průmyslovými sběrnicemi pomocí Modbus TCP1 • Využití dalších protokolů např. ProfiNet2 , nebo EtherCat3 . • USB spojení pro vstupní zařízení a datové zařízení (paměťová karta). (Neuronics AG, 2007b) 3.1.3
Možné nastavení
Pro nejlepší výsledky zadané práce a nejlepší pokrytí pracovní plochy robota, stejně tak jako pro bezpečnost a efektivitu je Katana dostupný ve dvou standardních konfiguracích. 3D CAD modely je kdykoliv možné velice rychle nakonfigurovat do ideální pozice. (Neuronics AG, 2007b) 3.1.4
Programovací a ovládací software Katana 4D a KNI
Software Katana 4D navržený pro průmyslové aplikace umožňuje lehké programování robotické ruky. S tímto softwarem programátor nepotřebuje ani předchozí zna1
Modbus - otevřený, nejvyuživanější protokol pro komunikaci v průmyslovém prostředí, pracující na principu master-slave/client-server. Ve spojení s TCP/IP protokolem. (Modbus organization, 2005-2012) 2 Ethernetový protokol pro využití v průmyslu. (Why use PFORINET?) 3 Ethernetový protokol pro využití v průmyslovém prostředí, zaměřený na práci v reálném čase vyvinutý firmou Beckhoff. (EtherCat)
3.2
Strojové vidění
14
Obr. 5: Možnosti konfigurace (Neuronics AG, 2007b)
Obr. 6: Pracovní rozsah robota (Neuronics AG, 2007b)
losti jakéhokoliv programovacího jazyka. O svých kvalitách přesvědčí začátečníky i pokročilé programátory Katana 4D díky: • Manuálnímu ovládání s přímým adresováním všech os jednotlivě, v základním nebo v pomocném souřadném systému. • Uživatelsky příjemné funkce pro souřadnicovou síť, seznam bodů, přímé a kruhové dráhy a trajektorie. • Četné standardní rozhraní a různé přídavné moduly. • Průvodce, který uživatele v několika krocích provede programováním. Open sourcové programovací rozhraní KNI je podporované každým robotem Katana. Tato knihovna založená na programovacím jazyku C++ umožňuje pokročilým programátorům ovládat robota přímo. KNI může být integrovaný také v .NET a jako DLL pro další ovládací systémy, jako je LabView, Matlab, nebo AgilentVee. Toto umožňuje ovládání Katany přes různá programovací prostředí s mnoha programovacími jazyky. (Neuronics AG, 2007b)
3.2
Strojové vidění
Historie tohoto oboru sahá do sedmdesátých let, kdy existující výpočetní technika již umožnila zpracování objemu dat, který je spojen s obrazovou informací. Název
3.2
Strojové vidění
15
strojové vidění (computer vision) se používá k nejobecnějšímu označení systémů, vykonávajících automatizovanou činnost na základě zpracování obrazu z kamery. Objektem sledování může být prakticky cokoliv – dopravní situace, lidská tvář, nebo například výrobní proces. Výrazné rozšíření tohoto oboru a technologie začíná v prvním desetiletí jednadvacátého století, kdy došlo k souběhu poptávky s možnostmi technické realizace. Poptávka byla způsobena změnou marketingových strategií výrobních společností. Tyto společnosti se začaly zaměřovat převážně na maximální orientaci na kvalitu a uspokojení zákazníka, současně se snížením nákladů na výrobu. Začaly se tedy ohlížet po technických prostředcích, které by jim umožnily provádět totální kontrolu veškeré produkce. Ve stejné době, hlavně díky tlaku komerčního využití v digitálních fotoaparátech, začaly být k dispozici levné a kvalitní čipy pro snímání obrazu. Současně se také objevily rychlé procesory s vysokým výpočetním výkonem za přijatelnou cenu. Strojové vidění tak mělo impuls k rozvoji a zároveň i potřebnou technologii. Výsledkem je dosud trvající boom v této oblasti, který pomohl i k rozvoji dalších specializovaných odvětví, například výrobě osvětlovačů a optických systémů. (Havle, 2008) 3.2.1
Princip strojového vidění
Činnost tohoto systému je v podstatě velmi podobná tomu, jak na stejném úkolu pracuje člověk. Stejně jako lidské oko zachytí kamera obraz zkoumaného předmětu, systém jej vyhodnotí podle předepsaného algoritmu a provede akci na základě výsledku vyhodnocení. Sledovaný objekt, který je většinou trojrozměrný je ozařován zdrojem záření. Objekt musí být schopen toto záření odrazit tak, aby odražené záření vytvořilo na snímacím prvku senzoru jasový dvourozměrný obraz. Důležité je, aby byla v tomto obraze obsažena informace, kterou potřebujeme o sledovaném objektu znát. Tato podmínka se zdá být zcela triviální, ale právě na ní ztroskotalo již mnoho aplikací a proto je nutné tuto podmínku splnit v reálných podmínkách za přiměřených nákladů. Obraz vytvořený na snímacím prvku je převeden na vhodnou měronosnou veličinu a vyhodnocen tak, aby se z něj získala požadovaná informace o sledovaném objektu. Záření, kterým je objekt ozářen, bývá ve většině případů viditelné světlo pocházející z umělých zdrojů, tzv. osvětlovacích jednotek. Dvourozměrný jasový obraz je vytvářen na snímacím prvku kamery. Měronosné veličiny mohou nést informaci redukovanou na údaj o kombinovaném jasu barevných složek dopadajícího světla (černobílé kamery), nebo mohou nést i informaci o barvě zkoumaného předmětu (barevné kamery). Protože jediným efektivním a vlastně i jediným prakticky možným způsobem vyhodnocení obrazové informace je dnes zpracování počítačem, je nutné převést analogové měronosné veličiny do digitálního tvaru — provést digitalizaci obrazu.
3.3
Control Web
16
Tato informace v digitální podobě je v počítači zpracována vhodnými algoritmy tak, aby byla získána požadovaná informace o objektu (tzv. image processing). Tato získaná informace má opět digitální podobu a předává se do okolí prostřednictvím digitálních výstupů, nebo pomocí digitálního komunikačního rozhraní. Pro strojové vidění je typické, že se výměna získané informace s okolím realizuje jako zpětná vazba na výrobní proces. Na jedné straně získává systém z procesu nezbytné vstupní údaje. Typicky to bývá povel k pořízení snímku v okamžiku, kdy je sledovaný objekt ve vhodné poloze. Na druhé straně se v závislosti na výsledku vyhodnocení obrazu obvykle provádí akční zásah ve výrobě, nejčastěji indikace nebo vyřazení vadného kusu. (Havle, 2008) 3.2.2
Snímač kamery
Obrazový snímač kamery je odpovědný za převod světla do elektrických signálů. V současné době jsou k dispozici dva typy obrazových snímačů, a to CCD a CMOS. Každý z nich má své výhody i nevýhody a oba dva se stále využívají. Každý z nich ovšem na jiný typ kamer a úloh. CCD snímače jsou kvalitnější, než typy CMOS. Kamery s CCD snímačem mají vyšší kvalitu obrazu, vyšší světelnou citlivost, což se projeví v lepší kvalitě obrazu při snížené viditelnosti. Nevýhoda je ovšem vyšší cena a pokud se v záběru objeví velmi světlý objekt, jako například přímé sluneční světlo, může se CCD snímač částečně roztéct, což vytvoří pruhy pod a nad objektem. Tomuto jevu se říká skvrna. V současné době už se CMOS snímače kvalitou obrazu přiblížili k CCD snímačům, ale stále ještě nejsou vhodné pro kamery, od kterých požadujeme nejvyšší možnou kvalitu obrazu. Ovšem pokud uživatel nepotřebuje vysokou kvalitu, je kamera s CMOS snímačem dostačující a levnější, než kamera s CCD snímačem. Další možnou výhodou může být, že jsou dostupné v menším provedení. Nevýhoda je již zmiňovaná špatná citlivost na světlo, takže se hodí pouze do dobře osvětlených prostor. (Obrazové snímače CCD vs. CMOS)
3.3
Control Web
Control Web je vývojové prostředí od firmy Moravské přístroje a.s. Tato firma byla založena v roce 1991 a soustředí se na vývoj a podporu technologicky vyspělých produktů v oblasti elektroniky a programového vybavení. Řada systémů rychlého vývoje aplikací pro průmysl, laboratoře a školy Control Panel a Conrol Web je vyvíjena více jak 20 let a stala se u nás nejpoužívanějším nástrojem v tomto oboru. (O společnosti, 2012) 3.3.1
Historie
V minulosti byl svět programového vybavení pro průmyslovou automatizaci jednodušší. Software se dělil na tři základní skupiny a to:
3.3
Control Web
17
• Na nejnižší úrovni to byly programy pro jednočipové řadiče, nebo vestavěné řídicí počítače, tzv. firmware. Tyto programy mají většinou pevně danou funkčnost od svého výrobce. Popřípadě bývají jen velmi málo modifikovatelné. • Prostřední článek představovaly obecně použitelné programovatelné automaty PLC, nebo specializované řídicí jednotky strojů CNC. Programovací model PLC je obvykle prostý – časovací jádro periodicky spouští sekvence interpretovaných instrukcí. Programovací jazyky do jisté míry připomínají instrukce programovatelných kalkulaček. • Na nejvyšší úrovni stávaly systémy pro operátorské řízení technologického procesu SCADA. Princip fungování těchto vizualizačních programů se většinou nezměnil – základem je tabulka datových elementů, jejichž data jsou cyklicky obnovována buď čtením hodnot z periferních zařízení nebo výpočtem z jiných elementů. Možnosti programování bývají omezené, vesměs se jedná o pouhou parametrizaci fixního programu. Členění do těchto tří základních skupin a z něj plynoucí principy výstavby automatizačních projektů přetrvávaly desetiletí a každý člověk z oboru, který se v této struktuře vyznal, následně věděl, co od které skupiny nástrojů může očekávat. V dnešní době, kdy existuje spoustu různých nástrojů a možností, jak řídit automatizované procesy, však tyto prostředky nestačí. (Co je Control Web?, 2010) 3.3.2
Control Panel
Tento software vznikl na počátku 90. let, kdy firma Moravské přístroje, při realizování zakázek stále častěji narážela na požadavky, které nebylo možno s použitím stávajících SCADA programů realizovat. Osobní počítače byly v té době už dostatečně výkonné, spolehlivé a levné. Ovšem programové vybavení počítačů tenkrát zaostávalo a nedokázalo využít tento výkon. Firma tedy začala pracovat na softwaru, který by umožnil vytvářet aplikace pro přímé řízení strojů v reálném čase, aplikace v oblasti simulace a modelování, zpracování dat v počítačových sítích apod. V době vzniku tohoto softwaru ovšem většina uživatelů používala operační systém Windows 3.1, který nebyl ideálním prostředím pro trvalý provoz řídicích aplikací v reálném čase v průmyslovém prostředí. Proto byl pro Control Panel vytvořen vlastní operační systém, který pracoval v chráněném módu procesorů 286 a vyšších a který mohl spustit mnoho paralelně běžících úloh. Tento systém obsahoval velmi kvalitní grafické uživatelské rozhraní, které dokázalo pracovat s velmi složitou hierarchickou strukturou oken na obrazovce. Systém byl i na tehdejší hardware velice výkonný a především stabilní, což umožňovalo provoz aplikací v Control Panelu nepřetržitě několik let bez odstávky. (Co je Control Web?, 2010)
3.3
Control Web
18
Obr. 7: Obrazovka aplikace v prostředí systému Control Panel (Co je Control Web?, 2010)
3.3.3
Control Web
Současně s vývojem systému Control Panel probíhal i vývoj operačního systému Windows. Uvedení operačního systému Windows NT znamenalo, že již existuje stabilní operační systém, na kterém se mohou postavit aplikace pro náročný, nepřetržitý průmyslový provoz. Existující systém Control Panel 3.1 byl převeden na platformu Windows pod názvem Control Web 3.1. Tímto začala nová etapa rozvoje systému, charakterizovaná především rozvojem internetových technologií a komunikací vůbec. Control Web 3.1 byl z velké části pouze replikou staršího systému Control Panel 3.1 pro Windows. Další verze tohoto systému Control Web 4, známý také pod jménem Control Web 2000, přinesl intenzivní technický rozvoj. Tato verze přinesla možnosti přímé komunikace virtuálních přístrojů v počítačové síti, byla implementována rozhraní podle standardů ActiveX, SQL a další, ale především přibyla do systému komponenta HTTP serveru s možností dynamického generování webových stránek z běžícího aplikačního programu. Tento systém také přinesl možnost provozování aplikací v operačním systému Windows CE. Tyto aplikace vývojář napíše pohodlně na stolním počítači s vývojovou verzí systému a poté z ní vygeneruje runtime, který je určen pro veškeré platformy a používané procesory systému Windows CE. Asi nejrozsáhlejší změnou v systému byl příchod verze Control Web 5. Tento systém je schopen vytvořit skupinu redundantních aplikací bez podpory nákladného serverového systému pouze prostřednictvím propojení v jedné počítačové síti. Řada vylepšení architektury zasahuje prakticky všechny části systému, mohutně je rozšířen také programovací jazyk OCL pro komunikaci mezi komponenty uvnitř aplikace. V této verzi byly také rozšířeny vizualizační schopnosti, a to o třírozměrný vykreslovací systém. Vykreslovací systém běží ve vlastním vlákně a je schopen v reálném
3.3
Control Web
19
čase vykreslovat i velmi složité scény s mnoha efekty v téměř fotorealistické kvalitě, viz obr.8.(Co je Control Web?, 2010)
Obr. 8: Obraz vytvořený 3D vykreslovacím systémem (Co je Control Web?, 2010)
3.3.4
Současnost
V současnosti je Control Web využíván nejen v rozsáhlých aplikacích ve velkých firmách, ale také v malých a vestavěných aplikacích, ve školách, vědě a výzkumu. Struktura aplikací se v poslední době podstatně změnila. Postupem času ubývá aplikací, ve kterých je požadováno pouze klasické operátorské pracoviště s vizualizací a případným sběrem dat. Požadavek rozhraní pro webové klienty je již samozřejmostí. Většina současných systémů je zapojena, často bezdrátově do počítačových sítí. Systém je oblíben také z toho důvodu, že díky němu může naprogramovat aplikaci i méně zkušený programátor. Při práci si programátor může vybrat, jestli bude sestavovat aplikaci pomocí grafického editoru, kde pomocí myši sestavuje uživatelské rozhraní, rozmisťuje jednotlivé komponenty a nastavuje jejich vlastnosti viz obr.9 Nebo si může vybrat textový editor, který už se neliší od programování v ostatních programovacích jazycích viz přílohy obr.18. Asi nejvýhodnější řešení je tyto dva editory kombinovat. Programátor má také možnost využít různé průvodce, kteří dokáží vytvořit kostru aplikace či nezkušenému programátorovi poradí s výběrem komponent, které je vhodné pro daný typ aplikace použít. (Co je Control Web?, 2010)
3.3.5
Časové rozdělení aplikací
V Control Webu je možné vytvářet dva druhy aplikací v závislosti na čase. Jednodušší, pouze datově řízení aplikace nebo (z hlediska programovací náročnosti) složitější aplikace reálného času. Datově řízená aplikace V této aplikaci jsou jednotlivé přístroje řízeny změnou příslušných dat a asynchronními událostmi (např. stiskem tlačítek uživatelem). Aktivované přístroje nebo
3.3
Control Web
20
Obr. 9: Ukázka grafického editoru
uživatelské zásahy tak poté mohou aktivovat další přístroje, na něž je pak přeneseno řízení. Kdy se datově řízené aplikace hodí: • V případech, kdy chceme data z technologie archivovat a vizualizovat bez potřeby precizně řídit časování těchto dějů. • Při vizualizaci pomalu se vyvíjejících dějů. • Tam, kde přesné načasování měření dat je méně důležité, než jejich přehledná grafická prezentace. (Kofránek, 2004) Aplikace reálného času Aplikace tohoto druhu jsou hlavní doménou systému Control Web. Systém zde poskytuje velké možnosti a prostředky pro optimální vyladění vytvářené aplikace vzhledem k výkonnosti hardwaru, na němž se aplikace provozuje. Na rozdíl od datově řízené aplikace je však náročnější na programátorskou práci. Pro optimální řízení časového průběhu komunikace s technologií a časování jednotlivých komponent v Control Webu je vyhrazen speciální prováděcí tok (thread) – tzv. časovací prováděcí tok, který má nastavenou vyšší prioritu, než ostatní prováděcí toky ostatních aplikací systému Windows. Operační systém zaručuje, že ze všech toků, které jsou v daném okamžiku schopny běžet (tedy nečekají a nespí), poběží vždy tok s nejvyšší prioritou (pokud je toků se stejnou prioritou více, bude je operační systém střídat). Časovací prováděcí tok proto díky své prioritě poběží přednostně, právě tehdy kdy bude potřeba. Časovací prováděcí tok(časovací thread): • Zajišťuje periodické časování přístrojů, shromažďuje a rozděluje všechny asynchronní zprávy od přístrojů, ovladačů, vstupů od uživatele. • Přesně odměřuje délku komunikačních prodlev. • Neustále sleduje délku běhu jednotlivých přístrojů a ovladačů.
3.4
DataLab IO
21
• V případné časové tísni zajišťuje popohnání aplikace vpřed. Zjednodušeně lze tedy říci, že časovací prováděcí tok se v průběhu aplikace stará o přípravu jednotlivých elementárních běhů. (Kofránek, 2004) 3.3.6
Modul VisionLab
VisionLab je plugin pro systém Control Web. Tento modul slouží, jak již napovídá název ke zpracování obrazu. VisionLab je využíván nejčastěji v průmyslových aplikacích reálného času, například pro kontrolu povrchu, průměru součástky apod. Dá se taky velmi dobře využít pro kontrolu SPZ značky automobilu. Práce s tímto systémem probíhá pomocí kroků, které jsou již naprogramované a stačí je pouze nastavit podle vlastních potřeb. Má-li aplikace sloužit například pro přečtení a kontrolu SPZ přijíždějícího automobilu, stačí v systému VisionLab přidat tento krok a on sám je schopen z obrazu připojené kamery rozpoznat umístění značky a přečíst ji. Toto má samozřejmě nějaká omezení. SPZ automobilu musí být podle norem, tzn. například, že znaky a čísla na SPZ musí být tmavé na světlém povrchu apod. Systém má samozřejmě mnohem více funkcí, které už ovšem nemusí být tak snadno nastavitelné, aby uživatel dostal požadovaný výstup. Tento modul umí spolupracovat s jakoukoliv kamerou, kterou podporuje operační systém a může být nainstalován na jakémkoli počítači. Kamera může být použita jakákoliv, počínaje integrovanou webkamerou v notebooku a průmyslovou kamerou konče. Záleží pouze na typu a požadavcích aplikace.
3.4
DataLab IO
Průmyslové vstupně/výstupní jednotky DataLab IO, vyráběné firmou Moravské přístroje a.s. jsou určeny pro spolupráci s nadřazeným počítačem, pro který zprostředkovávají měření (čtení) i nastavování (zápis) veličin. Jednotky jsou k dispozici ve variantách s komunikačním rozhraním USB (DataLab IO/USB), se síťovým rozhraním Ethernet (DataLab IO4/ETH) nebo se sériovým rozhraním RS-485 (DataLab IO4/COM). (Moravské přístroje a.s., 2004-2012) 3.4.1
DataLab IO/USB
Tyto jednotky komunikují s počítačem po velmi rychlé standardní sériové sběrnici USB, které se stalo všeobecně uznávaným standardem a nahrazuje zastarávající sériové linky a jiná rozhraní. Toto rozhraní přináší uživatelům velké množství výhod: • standardnost a univerzální rozšířenost, • vysoká přenosová rychlost (u USB 2.0 až 480 Mb/s), • doba komunikace mezi jednotkou a nadřazeným počítačem je asi 0.3 ms pro USB 2.0,
3.4
DataLab IO
22
• automatická konfigurace jednotky a to včetně instalace ovladačů. Návrh jednotek je důsledně modulární. Jednotky mají tedy volné pozice pro zasunutí vstupně/výstupních modulů podle potřeby aplikace a tímto lze kombinovat různé moduly. Jednotky jsou dostupné ve čtyřech provedeních: • Samostatná jednotka DataLab IO4/USB se čtyřmi moduly spojené s počítačem USB kabelem. Tyto jednotky mohou vyžadovat externí napájení 10 až 40 V DC. Je možné je spojit s libovolným počítačem standardu PC podporujícím rozhraní USB 2.0 nebo USB 1.1. • Samostatná jednotka DataLab IO2/USB se dvěma moduly spojené počítačem USB kabelem. Připojení k PC i napájení je shodné s výše popsanou jednotkou. • Samostatná jednotka DataLab IO1/USB s jednou pozicí pro vstupně/výstupní modul viz obr.10. Připojení k počítači i napájení této jednotky je výhradně přes USB sběrnici. • Jedna jednotka DataLab IO4/USB může být také zabudována přímo v průmyslových počítačích DataLab PC. V takovém případě jsou v horním krytu počítače vyvedeny svorkovnice zcela identické se samostatnou jednotkou DataLab IO4/USB. (Moravské přístroje a.s., 2004-2012) Napájení externích jednotek DataLab IO/USB Konektor USB obsahuje mimo datových vodičů i napájení pro USB periferie. Z hlediska napájení se USB periferie dělí na dvě skupiny: • Periferie s vlastním napájením. • Periferie napájené z USB sběrnice. Tyto periferie se dále dělí: – Periferie nízkospotřebové (maximální odběr 100 mA z 5V zdroje). – Periferie vysokospotřebové (maximální odběr 500 mA z 5V zdroje). USB porty, které jsou k dispozici přímo na PC, by vždy měly podporovat i vysokospotřebové USB periferie. Nikoli ale USB rozbočovače. Pokud je rozbočovač napájen z USB sběrnice, zpravidla bývá vyhrazeno 100 mA pro rozbočovač samotný. Zbývající proud je poté rozdělen na další porty, na každý port tedy 100 mA. Rozbočovač se tedy systému jeví jako vysokospotřebové USB zařízení a sám podporuje maximálně čtyři nízkospotřebové USB periferie. Pokud rozbočovač nemá své vlastní napájení. Jednotky DataLab IO4/USB a IO2/USB mohou pracovat v režimech napájení přes USB sběrnici a s vlastním napájením. Rozhodnutí, které napájení zvolit, záleží především na možnostech a na připojených modulech. Spotřeba jediného osaditelného modulu u jednotky DataLab IO1/USB nikdy nepřekročí maximální povolený odběr USB sběrnice (500 mA). Proto se tato jednotka vždy napájí přes USB. (Moravské přístroje a.s., 2004-2012)
3.4
DataLab IO
23
Obr. 10: DataLab IO1 (Moravské přístroje a.s., 2004-2012, s. 21)
3.4.2
Jednotka DataLab IO4/ETH
Tato jednotka je plně kompatibilní se všemi vstupně/výstupními moduly systému DataLab IO. Pouze USB rozhraní je nahrazeno 10/100 Mbps rozhraním Ethernet a jednotka komunikuje prostřednictvím protokolu TCP/IP. Tato jednotka existuje pouze v provedení pro čtyři vstupně/výstupní moduly. Napájení je možné pouze přes externí zdroj 10 až 30 V. Rozhraní Ethernet přináší uživatelům následující výhody: • Velká vzdálenost mezi řídicím počítačem a jednotkou. Jeden kabel sítě Ethernet může být dlouhý až 200 m. Jelikož Ethernet může být přenášen i jinými prostředky, než je kroucený pár vodičů, skutečná délka spojení může být výrazně delší. • Jelikož jednotka komunikuje protokolem TCP/IP, je možné směrovat a přenášet prostřednictvím různých počítačových sítí, není fyzická vzdálenost jednotky od počítače prakticky limitována. • Možnost snadného začlenění do podnikové sítě s využitím již existující infrastruktury. • Možnost komunikace jedné jednotky s více počítači. (Moravské přístroje a.s., 2004-2012) 3.4.3
Jednotka DataLab IO4/COM
Stejně, jako výše popsaná jednotka, je plně kompatibilní se všemi vstupně/výstupními moduly. Existuje pouze v provedení se 4mi sloty pro tyto moduly a napájení je možné pouze z externího zdroje 10 až 30 V. Rozhraní RS-485 přináší výhody jako: • Jedná se o zavedený standard v sériové komunikaci v průmyslovém prostředí.
3.5
DataCam a DataLight
24
• Komunikace na velké vzdálenosti – až 1200 m na jeden segment. Možnost prodloužení vzdálenosti pomocí opakovačů. • Odolnost proti rušení. (Moravské přístroje a.s., 2004-2012)
3.5
DataCam a DataLight
Kamery DataCam, stejně jako osvětlovací prvky DataLight, pochází od stejného výrobce, jako většina softwaru a hardwaru využitého při této práci a sice Moravské přístroje a.s. Všechny tyto komponenty spolu velice dobře spolupracují. 3.5.1
Kamery DataCam
Tyto kamery nachází uplatnění všude tam, kde je požadována nejlepší dosažitelná kvalita obrazu. Kamery DataCam přenášejí data v maximální dosažitelné kvalitě přímo do počítače po rychlé sběrnici USB 2.0. Průmyslové kamery DataCam jsou vestavěny do kompaktního a odolného těla z masivního hliníku. K dispozici jsou i provedení s krytím IP654 . Je možné si zakoupit barevné, i černobílé varianty s rozlišením od 640 × 480 až po 1600 × 1200 pixelů. Nízká spotřeba umožňuje napájení přímo z USB sběrnice. Obraz není v kameře nijak transformován, barevně vyvažován, interpolován, ani není nijak komprimován. Pro měřicí aplikace to přináší bezkonkurenční přesnost obrazu, pro některé dohledové aplikace však může být na překážku vysoký datový tok mezi kamerou a počítačem a omezená délka USB kabelu. (Moravské přístoje a.s., 2012, s. 6) Typické vlastnosti kamer Vlastnosti jako rozměry těla, komunikační rozhraní, konektory, napájení a spotřeba, hmotnost, expozice a rozsah pracovních teplo jsou společné pro všechny řady kamer DataCam. To, v čem se kamery od sebe liší, je především rozlišení CCD snímače (počet obrazových bodů), rozlišení A/D převodníku pro digitalizaci signálu z CCD snímače (8 nebo 16 bitů) a barevná hloubka (barevný nebo monochromní obraz). Důležitým parametrem kamer je frekvence snímků, tzv. frame rate, neboli FPS. Tento parametr udává, kolik snímků za sekundu je schopna kamera poskytnout. Je ovlivněn především počtem obrazových bodů a dynamikou (8 nebo 16 bitů na jeden vzorek). (Moravské přístoje a.s., 2012) Hlavní znaky CCD kamer DataCam jsou: • vysoce citlivé CCD snímače, • barevné i monochromní verze, 4 Stupeň ochrany před dotykem nebezpečných částí a před vniknutím cizích pevných těles a stupeň ochrany proti vniknutí vody: Zařízení je prachotěsné a je chráněno před dotykem drátem, chráněno proti tryskající vodě (Bureš, 2003)
3.5
DataCam a DataLight
25
• velmi nízký obrazový šum, • rozhraní USB 2.0, • napájení přes USB, • kompaktní a pevné hliníkové tělo, • široký výběr objektivů. (Moravské přístoje a.s., 2012, s. 7)
Obr. 11: Kamera DataCam (Moravské přístoje a.s., 2012, s. 11)
Použití kamer DataCam Tyto kamery se dají samozřejmě použít v mnoha aplikacích a případech. Velmi snadné použití těchto kamer je ale v prostředí systému Control Web, které umožňuje zvláště: • přenos obrazu po síti, • integrace obrazu do aplikací, • vytváření úloh zaměřených na strojové vidění pomocí systému VisionLab. (Moravské přístoje a.s., 2012, s. 8 ) 3.5.2
Osvětlovací jednotky DataLight
Volba správného osvětlení může být v některých případech důležitější než volba správné kamery. Užitečným doplňkem ke kamerám DataCam mohou být osvětlovací jednotky DataLight, které je možno prostřednictvím těchto kamer přímo ovládat. Některé úlohy strojového vidění mohou být velmi nenáročné na kvalitu osvětlení scény. V některých případech stačí použít například běžné osvětlení místnosti, či stolní lampu. V mnoha případech se mohou využít zářivkové trubice, které poskytují intenzivní a barevné stabilní světlo. V praxi se ale vyskytuje mnoho případů, kde jsou správné parametry osvětlení rozhodujícím faktorem pro viditelnost sledovaných objektů ve scéně. Zde se
3.5
DataCam a DataLight
26
uplatní osvětlovače se svítivými diodami, které jsou charakteristické nízkým příkonem a dlouhodobou stabilitou parametrů. (Moravské přístoje a.s., 2012, s. 22) Charakteristika jednotek DataLight Tyto diodové osvětlovače splňují vysoké nároky při příznivé pořizovací ceně a lze s nimi řešit i náročné aplikace. Tyto jednotky mohou být ovládány přímo kamerou DataCam, nebo také mohou svítit svým maximálním jasem bez připojení ke kameře. Zákazník má na výběr mezi zábleskovými a trvale svítícími reflektory a může si vybrat také mezi plošnými modely nebo kruhovými, které lze přišroubovat přímo ke kameře DataCam. K přednostem těchto osvětlovačů patří například: • Přímé řízení prostřednictvím kamer DataCam. K jedné kameře lze připojit až čtyři osvětlovací jednotky. • Osvětlovací jednotky mají pevné tělo z hliníkové slitiny. • Lze volit barvu světla, která může být: – bílá, – červená, – modrá, – infračervená. • Jednotky mohou být určeny pro trvalý svit nebo mohou generovat záblesky řízené expozicí kamery. • Jednotky jsou napájeny spínanými zdroji 12 VDC a vyznačují se velmi malým příkonem cca 4 W. (Moravské přístoje a.s., 2012, s. 23)
Obr. 12: Jednotky DataLight – a) kruhový reflektor, b) plochý reflektor (Moravské přístoje a.s., 2012)
4
METODIKA ŘEŠENí
4
27
Metodika řešení
4.1
Hardwarové řešení
Asi nejdůležitějším hardwarem je samotný robot, který se vzdáleně ovládá a řídí se jeho chod. Dalším hardwarem, který je při této práci stěžejní je vstupně-výstupní zařízení DataLab IO, kamera DataCam a osvětlovací jednotka DataLight. Všechny tyto prvky pochází z dílny českého výrobce Moravské přístroje a.s. a byly vybrány kvůli svým parametrům a vzájemné kompatibilitě a také díky kompatibilitě s programovacím systémem Control Web od stejné firmy. Další fyzická zařízení, která jsou při práci využita, už nejsou natolik klíčová a jejich výběr nebyl tolik důležitý. Je to například spínaná zásuvka, záložní napájecí zdroj, webová kamera Trust a rám na uchycení kamery a osvětlovací jednotky. Bez těchto zařízení by vzdálený přístup samozřejmě nebyl možný, ale jejich parametry již nejsou natolik zásadní. 4.1.1
DataLab IO
Jako vstupně-výstupní jednotka je využit modul analogových vstupů a digitálních vstupů/výstupů AD1. Tento modul obsahuje čtyři oddělené analogové vstupy a čtyři oddělené digitální vstupy/výstupy. Vlastnosti 4 analogové vstupy • 16bitový delta-sigma převodník, • napěťové rozsahy ±0,1 V až ±10 V, • proudové rozsahy ±1 mA až ±20 mA. 4 digitální vstupy/výstupy • směr volitelný propojkami na desce plošných spojů, • libovolná polarita vstupních signálů, • vzájemné galvanické oddělení vstupů/výstupů. Vlastní nastavení vstupů, respektive výstupů modulu se provádí pomocí propojek na desce plošných spojů. U analogových vstupů lze touto propojkou nastavit, jestli bude sloužit jako proudový, nebo napěťový vstup. U digitálních vstupů/výstupů lze nastavit samozřejmě, jestli konektory budou sloužit jako vstup, či výstup. A v případě vstupních kanálů také umožňují zvolit vstupní odpor (470, nebo 5170 Ω) a tím i rozsahy vstupních napětí vyhodnocovaných jako logická nula nebo jedna. Směr i rozsahy každého kanálu je možné nastavit nezávisle na sobě. (Moravské přístroje a.s., 2004-2012, s. 80 – 85)
4.1
28
Hardwarové řešení
Tab. 1: Parametry modulu (Moravské přístroje a.s., 2004-2012, s. 84 – 85)
Nízkonapěťový digitální vstup Vstupní odpor 470 Ω Logická nula (false) 0 až 1 V Logická jedna (true) 2 až 5 V Vysokonapěťový digitální vstup Vstupní odpor 5170 Ω Logická nula (false) 0 až 3,5 V Logická jedna (true) 7 až 30 V Digitální výstupy Maximální napětí 350 V Maximální proud 150 mA Maximální ztrátový výkon 150 mW Pracovní podmínky Pracovní teplota 0 až 50 ◦ C 4.1.2
DataCam
Pro snímání pracovní plochy robota byla vybrána barevná kamera DataCam s 8mi bitovým A/D převodníkem řady DC-0308C. Tato kamera obsahuje barevný čip SONY ICX424AQ. Tyto kamery se vyznačují vysokou citlivostí CCD snímače a poskytují vysoce kvalitní nekomprimovaný obraz s nízkým šumem. Frekvence snímků se pohybuje okolo 48 FPS. (Moravské přístoje a.s., 2012, s. 9 – 10) Tab. 2: Technické parametry kamery (Moravské přístoje a.s., 2012, s. 10)
CCD snímač Rozlišení A/D převodník FPS Expozice Rozhraní Závit objektivu Konektor Rozměry Hmotnost Napájení Spotřeba Teplotní rozsah
ICX424AQ 640 × 480 pixelů 8 bitů 48 125 µs – 8,192 s USB 2.0 High Speed C nebo CS 8-pin RJ-45 pro připojení osvětlovací jednotky 76 × 86 × 32,4 mm (Š × V × H) 180 g (bez objektivu) z USB rozhraní 275 mA −20 ◦ C – +50 ◦ C
4.2
29
Softwarové řešení
4.1.3
DataLight
Po předchozím zvážení všech možností, byl pro osvětlení pracovní plochy robota vybrán reflektor DataLight LT-40S. Reflektor osvětluje prostor bílým světlem. Pomocí kamery může být nastaven také jako zábleskový reflektor. Tento typ reflektoru byl vybrán pro své vlastnosti, které jsou: • Matice svítivých diod uspořádaných do obdélníku o rozměru 60 × 40 mm. • Přímé řízení jednotky prostřednictvím kamery DataCam, ke které mohou být připojeny až čtyři tyto jednotky. Pomocí kamery lze zapnout, vypnout osvětlovač a nastavit intenzitu svitu. • Napájení spínanými zdroji napětím 12 VDC a velmi malým příkonem cca 3 W. Napájení tak lze mezi jednotkami smyčkovat a jedním zdrojem tak napájet několik osvětlovačů. • Pevné tělo z obráběného hliníku. • Volitelná barva světla. (Moravské přístoje a.s., 2012, s. 36 – 38) Tab. 3: Technické parametry osvětlovače (Moravské přístoje a.s., 2012, s. 38)
Velikost svítící plochy Rozměry samostatného osvětlovače Hmotnost Napájení Příkon Teplotní rozsah
4.2
60 × 40 mm 101 × 76 × 30 mm (D × Š × V) 150 g 12 VDC cca 3 W −20 ◦ C – +50 ◦ C
Softwarové řešení
Vlastní aplikace je vytvořena v programovacím systému Control Web, který má univerzita k dispozici jako licenci určenou pro nekomerční použití ve školství. 4.2.1
Programování v Control Web
Programovací systém Control Web se hojně využívá pro řízení a vizualizaci technického zařízení. Může být využit například pro řízení malé vodní elektrárny. V praxi se využívá například pro ovládání tramvaje Škoda 14T. Hojně se využívá také ve školách pro simulaci laboratorních úloh a následně vytvoření a tisk protokolu. Programátor vytvoří aplikaci ve vývojové verzi, ale následně tuto aplikaci může převést na aplikaci určenou pro runtime verzi. Což znamená, že tato aplikace již nebude modifikovatelná a bude možné ji pouze spouštět. Toto se může zdát nevýhodné, ale opak je pravdou. Uživatel by neměl zasahovat do zdrojového kódu a pokud by měl konfigurovat aplikaci, tak by to mělo být zahrnuto do této aplikace. Další výhoda
4.2
Softwarové řešení
30
tohoto převedení je, že uživatel si už může zakoupit pouze runtime verzi Control Webu, která je mnohokrát levnější, než vývojová verze. Programování v Control Web je založeno na tzv. přístrojích a jejich procedurách. Jako přístroj je zde označováno vše. Může to být například tlačítko, měřící přístroj, ale také obrázek, popisek apod. Každý přístroj má své parametry a nativní procedury. Příklady parametrů: • rem – textová poznámka o přístroji pro vývojáře, • activity-period – perioda časování v sekundách. Tzn., že se přístroj aktivuje vždy v tomto intervalu, • visibility – udává viditelnost přístroje a udává se jako logické true nebo false, • owner – obsahuje jméno vlastníka ve vizuální struktuře. Příklady nativních procedur: • GetName() – vrací jméno přístroje, • Hide() – skryje viditelný přístroj, • GetValue() – přečte aktuální hodnotu vnitřního stavu přístroje. Při vývoji aplikace si programátor může vybrat, jestli bude pracovat v textovém nebo grafickém režimu. Oba režimy mají svá pro a proti. Pro rozložení přístrojů na hlavním panelu aplikace je výhodnější přepnout do grafického režimu a nastavit GUI5 . Stejně tak nastavování některých parametrů a procedur přístrojů je jednoduší v grafickém režimu, neboť tam jsou zobrazeny a vývojář nemusí znát jejich názvy. Při provázání přístrojů, například pokud jeden přístroj volá proceduru, nebo nastavuje hodnotu proměnné jiného přístroje, je toto zřejmě výhodnější řešit v textovém editoru, protože vývojář nemusí stále přepínat mezi přístroji a hledat údaje, které potřebuje. Další záložka pro vývoj aplikace je sekce Datové inspektory. Zde může programátor definovat proměnné, konstanty, ale také ovladače a kanály, které bude využívat v aplikaci. Tento způsob programování (grafické a textové programování dohromady) se označuje jako dvojcestné programování a přechod mezi jednotlivými režimy jako tzv. překlápění viz obr.13.
Obr. 13: Překlápění mezi režimy (Dokumentace systému Control Web)
Přesto, že grafická i textová podoba jsou navzájem zástupné, aplikace se ukládá a zálohuje v textové podobě. Jedním z důvodů je například to, že textový soubor 5
Graphical user interface
4.2
Softwarové řešení
31
umožňuje snadnou manipulaci a je lépe udržovatelný. Další z důvodů je vyšší bezpečnost a robustnost skladování aplikací. Například při náhlé havárii disku se často podaří zachránit kusy dat, přičemž textová data se dají snadněji rozeznat a případně rekonstruovat. (Dokumentace systému Control Web) 4.2.2
Vzdálený přístup
Pro tuto aplikaci je více možností vzdáleného přístupu. První možnost dává přímo systém Control Web, který obsahuje výkonný HTTP server, pomocí kterého se dá běžící aplikace zpřístupnit z libovolného internetového prohlížeče. Pro tuto možnost je nutné vytvořit HTML dokument. Toto by ovšem mohlo být pro programátora, který nemá dostatek zkušeností s vývojem webových aplikací obtížné. Proto je součástí CW průvodce pro vytvoření takového dokumentu. Tento průvodce vygeneruje z již hotové aplikace HTML dokument. Toto řešení se ale pro tuto aplikaci neukázalo jako to nejlepší. Aplikace pracuje s velkými objemy dat ze dvou kamer a mnoha tlačítky pro ovládání aplikace. Při testování této možnosti se vyskytly problémy se zobrazováním scény a také s ovládacími prvky. Řešení pomocí HTTP serveru a webové stránky bylo tedy vyloučeno. Další z možností je ovládání pomocí vzdáleného přístupu k počítači. Existuje obrovské množství softwaru, který nabízí uživateli vzdálený přístup do jeho počítače odkudkoliv. Stačí mít nainstalovaný tento software a přístup k internetu. Uživatel se pomocí přístupových údajů připojí ke svému počítači a ovládá ho, jako by seděl přímo u tohoto počítače. Vidí tedy vše, co se na počítači děje v reálném čase. Testování této možnosti dopadlo podstatně lépe. Přenášení obrazu z kamer bylo prakticky stejné, jako na počítači přímo připojeném k robotu, komunikace probíhala bez problémů a ovládání aplikace taktéž. Byla tedy vybrána tato možnost. Pro vzdálený přístup byl nainstalován software TeamViewer pro nekomerční účely. Tento program umožňuje vše, co se od takového softwaru očekává. Vzdálená správa počítače, vzdálený přístup, online schůzky apod. Pro uživatele je velká výhoda, že se dá využít bez předchozí instalace. Tzn., že pokud by chtěl uživatel vyzkoušet aplikaci pro ovládání robota na počítači, ke kterému nemá administrátorská práva, stačí mu pouze stáhnout TeamViewer a spustit ho. Další nespornou výhodou je, že tento software je dostupný na všechny rozšířené druhy operačních systémů (Windows, Linux, Mac), dokonce i na mobilní telefony. Pro reálné nasazení v praxi by ovšem mohl nastat problém s licencí. V tomto případě by univerzita nejspíše musela zakoupit licenci, nebo by se musel použít jiný software.
5
VLASTNí PRÁCE
5
32
Vlastní práce
Tato kapitola popisuje praktické řešení úkolu. To se skládá ze zapojení a nastavení fyzických komponent a dále z vytvoření aplikace, která dokáže tyto komponenty obsluhovat.
5.1
Fyzické řešení úlohy
Tato část úlohy není nikterak složitá, ale je stěžejní. Důležité je zapojit napájení robota do elektrické sítě přes záložní napájecí zdroj. Je to z toho důvodu, že robot neudrží své tělo bez elektrické energie a v případě odpojení napájení spadne a může poškodit sám sebe nebo věci v jeho dosahu. Proto je důležité před každým vypnutím robota provést tzv. kalibraci robota, která ho uvede do stabilní polohy. V případě, že uživatel sedí přímo vedle robota a dojde k výpadku proudu, je uživatel schopen to zaregistrovat a robota bezpečně zachytit a uvést do stabilní polohy. Ovšem v případě vzdáleného přístupu by uživatel nezjistil, co se stalo a robot by se mohl poškodit. Stejně tak je důležité napájet přes záložní zdroj počítač, na kterém běží aplikace vzdáleného přístupu a také osvětlení prostoru, aby uživatel v případě výpadku proudu mohl v rychlosti dodělat, případně uložit svoji práci. Napájení robota je dále nutno zapojit přes zásuvku spínanou malým napětím, aby bylo možno ho na začátku každé práce připojit k elektrické energii a po práci zase odpojit. Dale je potřeba uchytit kamery a osvětlovač na rám do takové polohy, aby co nejlépe snímali a osvětlovali pracovní prostor a robota a rám umístit do takové vzdálenosti, aby bylo bezpečné pohybovat robotem. Průmyslová kamera DataCam snímá pracovní prostor robota a webová kamera Trust snímá robota samotného, aby uživatel měl přehled, jak se robot pohybuje. Použitý rám na uchycení kamer a osvětlovače pochází také od firmy Moravské přístroje a.s. Po uchycení kamer a nastavení vhodné vzdálenosti rámu je důležité kamery co nejlépe zaostřit na snímaný objekt. Obě tyto kamery se doostřují manuálně.
5.2 5.2.1
Softwarové řešení aplikace Kostra aplikace
Vytvoření základní kostry aplikace v systému Control Web (dále jen CW) není nikterak složitá díky průvodci, který vývojáři pomůže s nastavením základních parametrů aplikace. V prvním kroku si uživatel vybere název a umístění aplikace a rozhodne, jestli aplikace bude pracovat v reálném čase nebo poběží volně v závislosti na změnách dat. V nejvíce případech se používá aplikace pracující v reálném čase. Další kroky se týkají nastavení hlavního panelu aplikace. Například velikost panelu, kde si vývojář může definovat vlastní velikost, nebo vybere aplikaci přes celou obrazovku. Dále je to počet panelů, názvy panelů, možnosti přepínání mezi panely apod. Další možné nastavení se týká časování. Tyto konfigurace jsou už ale pro programátory, kteří mají s tímto systémem více zkušeností a pro začátečníka je
5.2
Softwarové řešení aplikace
33
lepší tyto možnosti přejít a dokončit tak vytvoření kostry aplikace. Všechny možnosti, které si programátor při vytváření kostry nakonfiguroval je samozřejmě možné měnit v průběhu vývoje a nejspíše to vývojáře ani nemine.
Obr. 14: Průvodce novou aplikací v prostředí CW
Aby byl vývoj aplikace pro programátora více komfortní, je užitečné hned po vytvoření kostry otevřít inspektor přístroje hlavního panelu a vytvořit proceduru OnWindowClose(), která po spuštění aplikace umožní uživateli kliknutí na křížek v pravém horním rohu aplikace, který se nejčastěji používá pro ukončení aplikace. Procedura by měla vypadat asi takto: procedure OnWindowClose (); begin system . StopApplication (); end_procedure ;
V průběhu vývoje aplikace se tato procedura nejspíše rozšíří o další kód. Může obsahovat nějaké podmínky, výpis informace uživateli apod. V této aplikaci dokonce tato procedura neobsahuje příkaz pro vypnutí aplikace, ale pouze volá proceduru, která toto zajistí. procedure OnWindowClose (); begin if Katana . isConnected () = true then logOutput . Info ( ’ Katana se zkalibruje a ~ aplikace se vypne ’); pause 2; end ; backpane . S w i t c h A p p l i c a t i o n O f f (); end_procedure ;
Procedura SwitchApplicationOff() musí zajistit zkalibrování robota, vypnutí osvětlení, neboť toto by po vypnutí aplikace stále svítilo a to by bylo velice neeko-
5.2
Softwarové řešení aplikace
34
nomické, vypne napájení robota a nakonec zajistí vypnutí celé aplikace. Procedura vypadá takto: procedure S w i t c h A p p l i c a t i o n O f f (); begin switchingOff = true ; if firstCalibrate = true then if Katana . isConnected () = true then Katana . calibrate (); Katana . disconnected (); end ; else Katana . moveRobotTo ( -75.224 , -154.451 , 512.916 , -0.453 , 0.217 , 2.870); if Katana . isConnected () = true then pause 7; Katana . calibrate (); Katana . disconnected (); end ; end ; camera_1 . LightSwitch ( false ); send camera_1 ; pause 2; DL . DO01 = false ; system . StopApplication (); end_procedure ;
5.2.2
Konfigurace jednotky DataLab
Pro ovládání a sběr dat z jednotky DataLab je zapotřebí mít nainstalovaný ovladač. Ten je možné stáhnout z webové stránky výrobce6 . Po instalaci ovladače se musí systém CW znovu zapnout, aby se ovladače aktualizovaly. Potom je nutné vytvořit a nakonfigurovat ovladač v systému CW. Základní popis tohoto kroku je obsažen v nápovědě, pro nezkušeného uživatele to bohužel úplně nestačí a systém CW není natolik rozšířený, takže informace se hledají obtížně. Nastavení ovladače je v sekci Datové inspektory→Ovladače→přidat ovladač. Jako jméno ovladače může být uvedeno cokoliv, například tedy drvDataLab, do parametru Ovladač se z nabídky vloží instalovaný ovladač pro DataLab. Tímto krokem se zakáže další parametr Mapovací soubor. Další parametr očekává cestu k parametrickému souboru. Potřebný parametrický soubor ovšem při prvním použití DalaLabu neexistuje, musí se tedy vytvořit, kliknutím na ikonku Konfigurovat ovladač→Vytvořit nový soubor s názvem například dldrv.par. Dále Nástroje→Vyhledat zařízení a přidat používaný modul. Tímto se vytvoří požadovaný ovladač. Pro komunikaci se vstupy a výstupy modulu jsou zapotřebí komunikační kanály. Nejdříve se ale musí vytvořit sekce pro tyto kanály. Ta se přidá ve stejné záložce. Datové inspektory→Přidat sekci→channel. Sekce může být pojmenovaná například 6
http://www.mii.cz/
5.2
Softwarové řešení aplikace
35
DL jako DataLab a do parametru driver se uloží jméno vytvořeného ovladače, tedy drvDataLab. Tímto je vytvořena nová sekce komunikačních kanálů. Dále se musí nakonfigurovat komunikační kanály pro potřebné vstupy a výstupy. Ve vytvořené sekci DL→Skalární→přidat element, název může být např. DI01 pro digitální vstup a parametr driver index se nastaví na hodnotu 62. Obdobně pro digitální výstup se jménem DO01 a driver index = 6. Driver index se mění v závislosti na modulu a použitých konektorech. Číslo prvního vstupního a výstupního kanálu je možné zjistit v inspektoru ovladače drvDataLab. Přesné číslo použitého konektoru je potřeba zjistit testováním. Tímto jsou nakonfigurovány kanály. Jejich použití je již snadné. Například pro sepnutí zásuvky signálem z DataLabu stačí v kódu nastavit tento kanál na true: DL.DO01 = true; 5.2.3
Konfigurace kamer a osvětlovače
Pro použití kamer nepotřebuje systém CW nijaké zvláštní konfigurování. Všechny kamery musí mít pouze nainstalovaný ovladač. V inspektoru přístroje se musí nastavit parametr camera type. Zde jsou možnosti DataCam, WDM camera a image file. V případě použití DataCam je nutno vyplnit parametr camera id. Toto identifikační číslo kamery má každá kamera DataCam uvedena na štítku. V případě webové kamery je pak povinný parametr camera name, kde jsou na výběr všechny nainstalované a připojené webové kamery. Pro použití osvětlovače nemusí být instalované žádné ovladače. Konfigurace ovládání osvětlovače pomocí kamery je popsáno v nápovědě. Způsob, jakým je toto ovládání popsáno, ovšem není přesný a nelze se jím řídit. V grafickém editoru VisionLab je možnost Nastavení světel. V tomto nastavení se dá nakonfigurovat ovládání až čtyř osvětlovačů. Pro každé světlo jsou zde možnosti Rozsvítit světlo, Zábleskové světlo a Intenzita viz obr.15.
Obr. 15: Nastavení osvětlení ve VisionLab
5.2
Softwarové řešení aplikace
36
Toto ovšem platí pouze po editor VisionLab. Pro chování osvětlení při běhu aplikace jsou zde pole Výraz pro běh aplikace. Do těchto výrazů se zapisují logické hodnoty, popřípadě proměnné typu boolean. V případě intenzity osvětlení zde systém očekává číslo, nebo proměnnou typu real. Ve zdrojovém kódu kamery vypadá toto nastavení následně: light_1 condition = switchOn ; continuous = true ; brightness = lightIntensity ; end_light_1 ;
Toto jsou ovšem hodnoty, které se nastaví po spuštění aplikace. To by ale znamenalo, že by si uživatel nemohl vybrat, jestli chce mít osvětlení zapnuté, nebo vypnuté a s jakou intenzitou světla. Proto je v aplikaci ovládání osvětlení pomocí tlačítek a posuvníku. Po každé změně je ale nutné znovu aktivovat přístroj camera, aby se provedená změna mohla načíst. To se dělá pomocí příkazu send. Funkce na zapnutí osvětlení tedy vypadá takto: procedure OnPress (); begin camera_1 . LightSwitch ( true ); send camera_1 ; end_procedure ;
5.2.4
Ovládání robota
Pro ovládání robota aplikace využívá již vytvořenou ActiveX komponentu, která umožňuje ovládat robota pomocí systému CW. Tuto komponentu vytvořil student Mendelovy univerzity v Brně jako svoji diplomovou práci. Do aplikace se tedy z palety přístrojů přidá přístroj active x a v inspektoru přístroje se parametru CLSID nastaví hodnota dané komponenty. Robot se pak ovládá příkazy, které jsou velmi podobné příkazům původní knihovny robota. Například pro pohyb motoru 1 je vytvořena procedura: procedure OnPress (); begin if Katana . isConnected () then logOutput . Info ( ’ Natočení motoru 1 o ~+ ’ + str ( step1 ,10)); Katana . incDegrees (0 , step1 , false , TOLERANCE , TIMEOUT ); else logOutput . Warning ( ’ Katana neni pripojena ’); end ; end_procedure ;
5.2.5
Přihlášení uživatele
Přihlášení uživatele využívá aplikace z více důvodů. Jeden z důvodů je, aby aplikaci nevyužívali nepovolané osoby. Control Web má systém přístupových práv, který do-
5.2
Softwarové řešení aplikace
37
káže zabránit neautorizované osobě jakýkoliv zásah do aplikace, včetně její vypnutí. Bohužel tento systém nedokáže zabránit vypnutí aplikace přes prostředky operačního systému (například přes Správce úloh). Každá aplikace si poté nese informaci, jestli je systém přístupových práv aktivní, nebo není. Seznam autorizovaných uživatelů s jejich přístupovými právy je spjatý s nainstalovanou verzí systému Control Web. Modifikaci uživatelů může provádět pouze správce systému CW. Pro každého uživatele je důležité jeho přístupové jméno, heslo a identifikační číslo (IUD). Právě pomocí UID se v aplikaci nastavuje, jak a který uživatel může do dané aplikace zasahovat. Definovat, jestli bude daná aplikace vyžadovat autorizaci uživatelů může vývojář pomocí skupiny příkazů login v sekci settings: settings ... ... login l o g i n _ s y s t e m _ e n a b l e d = true ; l o g i n _ w i n d o w _ v i s i b l e = true ; end_login ; end_settings ;
Prakticky je možné nakonfigurovat aplikaci tak, že by jeden uživatel měl práva pouze na některé akce. Pokud má aplikace například několik ovládacích prvků, tak každý prvek může mít definována práva nezávisle na ostatních. V tomto případě by se mohlo nadefinovat například to, že přihlášený uživatel by mohl zapnout, respektive vypnout osvětlení, ale nemohl by nastavovat jeho intenzitu. Definování, který uživatel má práva přístupu k přístroji, se provádí pomocí klíčového slova access. Ke kterému se následně připíše UID uživatele, který má mít k tomuto přístroji přístup. V této aplikaci má nepřihlášený uživatel právo jen vypnout aplikaci. Je to nastaveno v hlavním panelu aplikace. panel backpane ; rem = ’ hlavní panel aplikace ’; gui owner = background ; access = [ 100 ]; window type = normal ; title = ’ Vzdaleny pristup ’; disable = zoom , minimize , maximize ; end_window ; end_gui ; ... end_panel
5.2.6
Ošetření možných komplikací
Je pochopitelné, že při vzdáleném ovládání robota může dojít k mnoha komplikacím, které by uživatel vůbec nemusel řešit, pokud by seděl poblíž robota a při vývoji aplikace je nutné k nim přihlédnout.
5.2
Softwarové řešení aplikace
38
Jeden z mnoha možných problému je náhlý výpadek elektrické energie. Z tohoto důvodu jsou důležité součásti napájeny přes záložní zdroj. Jenom toto ovšem nestačí. Je nutná kontrola elektrické sítě i na aplikační úrovni. Aby při výpadku o tomto byla informovaná aplikace a současně i uživatel. Pro tento účel jsou v jednotce DataLab nakonfigurovány dva digitální vstupy. Jeden nízkonapěťový, který vyhodnocuje jako logickou jedničku napětí 2 – 5 V a druhý vysokonapěťový, který vyhodnocuje napětí 7 – 30 V jako logickou jedničku. Toto je z důvodu možné budoucí modifikace. V komentáři použitého kanálu jsou potom uvedeny čísla ovladače pro oba vstupy, kvůli snadnější modifikaci. Aplikace tedy přes digitální vstup modulu AD1 přebírá informaci, jestli je funkční elektrická síť. Tuto informaci zpracovává procedura CheckPower(), která je vyvolávána každých pět sekund pomocí časovače Kontrola napajeni. Pokud tedy dojde k výpadku proudu a robot je napájen přes záložní zdroj, aplikace to zjistí nejpozději do pěti sekund. V tomto případě vyvolá procedura panel warning panel s textem, který uživatele upozorní, že došlo k výpadku proudu a že aplikace bude do několika minut ukončena. Po tomto informačním hlášení aplikace pokračuje dál, začne se ovšem odpočítávat definovaný počet minut, po kterých se aplikace vypne. Zároveň se uživateli zobrazí daný čas, který má na dokončení své práce. Zobrazovaný počet minut se odečítá, aby měl uživatel aktuální informaci. Počet minut, které uživatel může dostat, je závislý na parametrech záložního zdroje, kvůli snadnější modifikaci se v aplikaci nastaví jednoduše pomocí konstanty. Kontrola elektrické energie funguje samozřejmě také při zapnutí aplikace. Takže pokud uživatel zapne aplikaci, ta okamžitě zkontroluje stav napájení a při nefunkční elektrické síti uživatele informuje o vzniklém problému a vypne se. Procedura CheckPower() vypadá takto: procedure CheckPower (); begin if DL . DI01 = false then warning_panel . MyShow ( ’ powerOff ’); pause 4; warning_panel . Hide (); switchingOff = true ; lblUkonceni . Show (); mt rZ ob ra zo va ni Ca su . Show (); mt rZ ob ra zo va ni Ca su . Start (); pgmSwitchOff . StartTimer (); end ; end_procedure ;
Další možná komplikace může nastat při výpadku internetového připojení, ať už na straně uživatele, nebo na straně univerzity. Jelikož je vzdálený přístup postaven na softwaru TeamViewer, aplikace by neměla žádnou informaci o ukončení relace. Toto samozřejmě nemusí nastat jenom při výpadku připojení. Uživatel může například vzdálený přístup k počítači ukončit sám, bez validního ukončení aplikace. Z tohoto důvodu je do aplikace přidána kontrola aktivity uživatele. Aktivitou je myšleno pohyb kurzorem myši, nebo stlačení jakékoliv klávesy na klávesnici. A to
5.2
Softwarové řešení aplikace
39
i mimo tuto aplikaci. Pokud si tedy uživatel aplikaci minimalizuje a provádí například nějaké výpočty, tak aplikace stále rozpozná aktivitu na straně uživatele. Pokud je ale uživatel neaktivní po dobu 30ti minut, aplikace nahlásí uživateli, že kvůli jeho neaktivitě bude aplikace ukončena. Provede se kalibrace robota a aplikace se vypne. Stejně jako mezní čas pro ukončení aplikace při výpadku proudu, i doba neaktivity je v aplikaci uvedena jako konstanta. Její konfigurace je tudíž triviální. 5.2.7
Grafické rozhraní aplikace
Vytvoření uživatelského rozhraní je v systému CW velice snadné díky grafickému editoru. Vývojář tady nejčastěji použije funkci „chytni a táhniÿ, což znamená, že může posouvat přístroje pouhým kurzorem myši podle své potřeby. Stejně tak může měnit i jejich velikost. Základním kamenem uživatelského rozhraní v systému CW je hlavní panel backpane. Je to vlastně okno aplikace, které uživatel vidí. U tohoto panelu jsou z hlediska GUI nejdůležitější parametry position, který určuje pozici okna na pozadí, dále je to title, který určuje titulek okna a disable, kterým může programátor nastavit, jaké akce může uživatel provést s oknem (minimalizace, posouvání apod.). Na tento hlavní panel se přidává další panel, popřípadě více panelů. Na tyto panely se pak přidávají přímo přístroje. Vzhled přístrojů samotných se příliš konfigurovat nedá. Programátor může změnit jejich velikost, umístění, barvy a k některým může přidat vlastní ikonu. Víc toho změnit nemůže. Pro aplikaci je to ale dostačující a možných přístrojů, popisků apod. má CW opravdu hodně. Dají se tedy vytvořit vzhledově velmi pěkné aplikace.
Obr. 16: Ukázka aplikace
Tato aplikace má pevně stanovenou velikost okna a přístrojů. Uživatel může okno jen posouvat. Nejvíce prostoru v okně zabírá přístroj camera 1, která zobrazuje pracovní prostor robota. Toto je pro uživatele nejdůležitější. Dále je v okně menší zobrazení kamery, která snímá robota samotného. Tato kamera není tolik
5.2
Softwarové řešení aplikace
40
kvalitní a je pro uživatele spíše informativní. Její zobrazení tedy není natolik velké. Dále aplikační okno obsahuje pole pro výpis informačních zpráv pro uživatele a pak již prvky pro ovládání osvětlení a robota. Aplikace obsahuje také informační panel o počtu minut do ukončení aplikace při výpadku proudu. Toto je ovšem při normálním běhu aplikace skryto a uživateli se zobrazí teprve až při zmiňovaném výpadku proudu. Některá tlačítka jsou obohaceny o ikony indikující jejich funkci.
6
ZÁVĚR
6 6.1
41
Závěr Shrnutí práce
V této práci byla řešena problematika vzdáleného přístupu k pracovišti robota Katana. Nejprve bylo nutné se seznámit s tímto manipulátorem, jeho vlastnostmi a technickými parametry. Poté se musel zvážit výběr potřebného vybavení k fyzickému zapojení. Vzhledem k dobrým zkušenostem a spoluprácí s firmou Moravské přístroje a.s. byl vybrán hardware převážně z výroby této firmy. Na snímání a osvětlení pracovní plochy robota byla vybrána průmyslová kamera DataCam a osvětlovací jednotka DataLight. Obě tyto jednotky spolu perfektně spolupracují a jsou přichyceny k rámu od stejné firmy. Jako vstupně-výstupní jednota byla vybrána modulární jednotka DataLab s modulem analogových vstupů a digitálních vstupů/výstupů AD1. Všechno toto zařízení ovládá aplikace, vytvořená v programovém systému Control Web, který obsahuje systém strojového vidění VisionLab, taktéž od firmy Moravské přístroje a.s. Robot je do elektrické sítě připojen přes záložní zdroj, kvůli nebezpečí výpadku proudu a poškození manipulátoru, nebo věcí v dosahu manipulátoru. Zapnutí robota je vyřešeno spínanou zásuvkou, která se ovládá pomocí signálu z jednotky DataLab. Informaci o stavu elektrické sítě a případnému problému dostává aplikace také pomocí této jednotky. V případě náhlého výpadku proudu dostane uživatel předem definovaný čas na dokončení své práce. Po uplynutí tohoto času aplikace zařídí uvedení robota do stabilní polohy a vypne se. O všech akcích je uživatel dobře informován, buď pomocí standardního výpisu v rámci logovacího okna, nebo v případě závažných problému pomocí speciálního panelu, který informaci zobrazí přímo uprostřed okna aplikace a uživatel ji tedy nemůže přehlédnout. Uživatel tedy pomocí aplikace dokáže zapnout manipulátor, osvětlit si pracovní prostor, nastavit si intenzitu osvětlení a ovládat manipulátor. Všechny tyto akce sleduje pomocí připojených kamer, takže díky vzdálenému přístupu k počítači pomocí softwaru TeamViewer, nemusí být fyzicky přítomen v laboratoři, kde se tento robot nachází. Uživatel potřebuje znát přihlašovací údaje, aby mohl s aplikací jakýmkoliv způsobem pracovat. Bez přihlášení dokáže aplikaci pouze zapnout a vypnout. Nemůže se tedy stát, že by neautorizovaný uživatel mohl jakýmkoliv způsobem pohybovat robotem. Po přihlášení uživatele se aktivuje funkce, která kontroluje aktivitu uživatele. Aktivitou je myšlen pohyb kurzorem myši, nebo stisk jakékoliv klávesy i mimo aplikaci. Pokud je uživatel neaktivní po předem definovanou dobu, je mu na obrazovku vypsána informace o jeho neaktivitě, robot se zkalibruje a aplikace se vypne. Před každým odpojením robota od elektrické energie se musí přivést do stabilní polohy. Toto je důrazně vysvětleno každé osobě, která má přístup k manipulátoru. Uživateli by se ale mohlo stát, že by například ve spěchu zapomněl robota zkalibrovat. Před vypnutím aplikace se tedy robot automaticky zkalibruje. Při této práci jsem se velice dobře seznámil se všemi použitými nástroji a produkty, včetně strojového vidění. Zjistil jsem, že vytváření aplikace v systému Control
6.2
Zhodnocení výsledků
42
Web je pro programátora ze začátku velice obtížné, pokud nemá zkušenosti s tímto typem programování. Velká nevýhoda při práci s tímto systémem je jeho nepříliš velká rozšířenost ve světě. Najít tedy na webu nějaké informace, rady a návody je velice obtížné, skoro až nemožné. Vývojář je tedy odkázán na nápovědu v systému, kde bohužel není obsaženo vše. Další možnost jsou vzorové příklady, které může najít na webových stránkách výrobce a také po instalaci CW ve složce Examples. Také je možné požádat o pomoc technickou podporu výrobce, která probíhá pomocí vzdálené plochy softwaru TeamViewer. Kapitola Vlastní práce je tedy pojata z části jako možná nápověda a pomoc pro programátory, kteří by chtěli vyvíjet aplikace v tomto softwaru bez předchozích zkušeností.
6.2
Zhodnocení výsledků
Výsledek této práce umožňuje uživateli se odkudkoliv připojit na počítač přímo připojený k manipulátoru Katana, kde si spustí aplikaci vytvořenou v programovacím systému Control Web. Pomocí této aplikace zapne robota, kterého může posléze pomocí ovládacích prvků na panelu ovládat. V okně aplikace má k dispozici obraz ze dvou kamer umístěných tak, aby viděl na robota a také na pracovní prostor robota. V případě možných problémů s elektrickou energií, nebo připojením je aplikace schopna zareagovat a bezpečně robota zkalibrovat do stabilní polohy tak, aby se nepoškodil, odpojit ho od elektrické energie ze záložního zdroje a aplikace se sama vypne. Stejně tak aplikace hlídá, aby nedošlo k vypnutí robota bez jeho předchozí kalibrace. Což byly hlavní požadavky na bezpečnost při vzdáleném přístupu.
6.3
Budoucí využití a možná vylepšení
Aplikace by mohla najít uplatnění na univerzitě, kde by studenti nebyli závislí na přístupu do učebny, od které nemohou dostat klíč a přístupový kód, ale přitom by mohli bezpečně provádět různé pokusy s manipulátorem. Jedno z možných vylepšení by bylo například použití průmyslové kamery a systému VisionLab k vyhodnocování obrazu a nalezení definovaných předmětů, na které by se následně manipulátor navedl. Dalším možným vylepšením by mohlo být vytvoření nového, většího rámu tak, aby kamery mohly snímat celé okolí robota a použití více osvětlovacích jednotek.
7
7
LITERATURA
43
Literatura
bureš, m. Tabulka krytí IP (popis stupňů). In: Elektrika.cz, portál o silnoproudé elektrotechnice, elektroinstalace, vyhlášky, schémata zapojení [online]. 2003 [cit. 2012-11-18]. Dostupné z: http://elektrika.cz/data/clanky/krip030918. Co je Control Web?. Moravské přístroje a.s. :: Hlavní stránka [online]. 4.10.2010 [cit. 2012-12-29]. Dostupné z: http://www.mii.cz/art?id=380&cat=146&lang=405. EtherCAT. EtherCAT Technology Group — HOME [online]. [cit. 2012-11-15]. Dostupné z: http://www.ethercat.org/en/ethercat.html. havle, o. Strojové vidění, 1. díl DesignTech.cz - otevřený publikační portál věnovaný nejen CA technologiím [online]. 2008 [cit. 2012-12-29]. Dostupné z: http://www.designtech.cz/c/it-reseni/it-reseni/it-reseni/it-reseni/itreseni/it-reseni/strojove-videni-1-dil.htm. kofranek, j. Control Web - objektové vývojové prostředí (nejen) pro průmyslové aplikace [online]. 2004 [cit. 2012-11-15]. Dostupné z: formularekf.vsb.cz/formulare/F01/tsw/getfile.php?prispevekid=674 . c 2005-2012 [cit. 2012-11Modbus FAQ. modbus organization.Modbus [online]. 15]. Dostupné z: http://www.modbus.org/faq.php%5D. moravské přístroje a.s. DataLab IO [onc 2004–2012 line].
[cit. 2012-11-15]. Dotupné z: http://www.mii.cz/download/datalab/cze/DataLab%20IO%20Manual%20CZ.pdf. c 2012 [cit. 2012-11-15]. Dostupné moravské přístroje a.s. DataCam [online]. z: http://www.mii.cz/download/datacam/DataCamCZ.pdf . neuronics ag Katana HD5M [online]. 2007a [cit. 2012-12-19]. Dostupné z: http://katana.exactec.com/images/stories/pdf/katana letak cz.pdf. neuronics ag Katana Automation made easy [online]. 2007b [cit. 2012-11-19]. Dostupné z: http://www.romheld.com.au/updf/product brochure katana 0407 en pdf 217.pdf . neuronics ag Katana uživatelský manuál [online]. Verze: 2.0.5. EXACTEC. 2006, 62 s. [cit. 2012-11-15]. Dostupné z: http://katana.exactec.com/images/stories/pdf/katana manual cz.pdf . neuronics ag. Katana40 Prospekt [online]. 2008 [cit. 2012-11-15]. Obrazové snímače CCD vs. CMOS. Netcam.cz — IP kamery a příslušenství pro zabezpečovací a dohledové systémy [online]. [cit. 2012-12-29]. Dostupné z: http://www.netcam.cz/encyklopedie-ip-zabezpeceni/obrazove-snimace-ccdcmos.php.
7
LITERATURA
44
O společnosti. Moravské přístroje a.s. :: Hlavní stránka [online]. 13.4.2012 [cit. 201211-15]. Dostupné z: http://www.mii.cz/cat?id=8&lang=405. Why use PROFINET?. All Things PROFINET [online]. [cit. 2012-11-15]. Dostupné z: http://www.allthingsprofinet.com/organization.aspx?pagetype=PROFINET.
Přílohy
A
A
ŘEŠENí SNíMÁNí A OSVĚTLENí SCÉNY
Řešení snímání a osvětlení scény
Obr. 17: Řešení snímání a osvětlení scény
46
B
B
UKÁZKA APLIKACE
Ukázka aplikace
Obr. 18: Ukázka textového editoru
47
B
UKÁZKA APLIKACE
Obr. 19: Grafický editor aplikace před spuštěním
Obr. 20: Přihlášení uživatele do aplikace
48
B
UKÁZKA APLIKACE
Obr. 21: Standardní běh aplikace
Obr. 22: Hlášení o neaktivitě uživatele
49
B
UKÁZKA APLIKACE
Obr. 23: Hlášení uživateli o výpadku proudu
Obr. 24: Odpočet zbývajících minut po výpadku proudu
50
C
PŘILOŽENÉ CD
C
51
Přiložené CD
Přiložené CD obsahuje: • Přeloženou aplikaci ve standardním formátu Control Web CWX. • Zdrojové soubory aplikace, včetně potřebných souborů (obrázky, ikony apod.) • Práci v elektronické podobě