STVYSOKÁ ŠKOLA POLYTECHNICKÁ JIHLAVA Katedra technických studií Obor Počítačové systémy
P ro g r a m p ro z a ř í z e n í G a s S a m p l e r v p ro s t ř e d í D e t S t u d i o s P L C A m i t bakalářská práce
Autor: Zdeněk Musil Vedoucí práce: Ing. Lukáš Skála Jihlava 2016
Abstrakt Bakalářská práce se zabývá vývojem řídicího programu pro stanici, která slouží k měření výskytu radioaktivních aerosolů. Stanice je řízena programovatelným automatem Amit. Veškerá implementace probíhá ve vývojovém prostředí DetStudio, jehož primární programovací jazyk je strukturovaný text. Stanice přijímá příkazy pro provedení funkce z pracoviště přes komunikační proces, který tyto příkazy zpracovává. Další možností ovládání je přes uživatelský terminál s dvěma úrovněmi přístupu.
Klíčová slova PLC, DetStudio, Amit, DB-NET, RS232, RS485
Abstract Bachelor thesis deals with the development of a control program for measuring station occurrence of radioactive aerosols. The station is controlled by programmable logic controller Amit. All implementation progress takes place in development environment DetStudio whose primary programming language is a structured text. Station receive an instructions for performance function from workstation via communication process which processing these instructions. Another option is controlled by user terminal with two levels of access.
Key words PLC, DetStudio, Amit, DB-NET, RS232, RS485
Prohlašuji, že předložená bakalářská práce je původní a zpracoval/a jsem ji samostatně. Prohlašuji, že citace použitých pramenů je úplná, že jsem v práci neporušil/a autorská práva (ve smyslu zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů, v platném znění, dále též „AZ“). Souhlasím s umístěním bakalářské práce v knihovně VŠPJ a s jejím užitím k výuce nebo k vlastní vnitřní potřebě VŠPJ . Byl/a jsem seznámen/a s tím, že na mou bakalářskou práci se plně vztahuje AZ, zejména § 60 (školní dílo). Beru na vědomí, že VŠPJ má právo na uzavření licenční smlouvy o užití mé bakalářské práce a prohlašuji, že s o u h l a s í m s případným užitím mé bakalářské práce (prodej, zapůjčení apod.). Jsem si vědom/a toho, že užít své bakalářské práce či poskytnout licenci k jejímu využití mohu jen se souhlasem VŠPJ, která má právo ode mne požadovat přiměřený příspěvek na úhradu nákladů, vynaložených vysokou školou na vytvoření díla (až do jejich skutečné výše), z výdělku dosaženého v souvislosti s užitím díla či poskytnutím licence. V Jihlavě dne 25.5.2016 ...................................................... Podpis
Poděkování Na tomto místě bych rád poděkoval svému vedoucímu práce Ing. Lukáši Skálovi za poskytnutí tématu a možnost vytvářet ho pod jeho vedením.
Obsah 1
Úvod.......................................................................................................................... 8
2
Popis zařízení .......................................................................................................... 10
3
4
2.1
Popis řešení ...................................................................................................... 11
2.2
Analýza existujících řešení .............................................................................. 12
Programovatelné logické automaty ........................................................................ 13 3.1
Algoritmy řízení ............................................................................................... 13
3.2
Programovací jazyky........................................................................................ 14
3.2.1
Instrukční list ............................................................................................ 14
3.2.2
Strukturovaný text..................................................................................... 14
3.2.3
Příčkový diagram ...................................................................................... 15
3.2.4
Funkční blokové schéma .......................................................................... 15
Sběrnicová komunikace .......................................................................................... 16 4.1
4.1.1
Rozhraní RS-232....................................................................................... 17
4.1.2
Rozhraní RS-485....................................................................................... 17
4.2
6
Komunikační protokoly ................................................................................... 17
4.2.1
Modbus RTU ............................................................................................ 18
4.2.2
DB-NET .................................................................................................... 18
4.3 5
Sériová sběrnice ............................................................................................... 16
Průmyslový Ethernet ........................................................................................ 19
Řídicí systém Amit ................................................................................................. 20 5.1
Řídicí jednotka AMiNi4W2 ............................................................................. 20
5.2
Rozšiřující moduly ........................................................................................... 21
5.3
Průmyslový terminál APT200.......................................................................... 22
Programovací prostředí DetStudio.......................................................................... 23 6.1
Procesy ............................................................................................................. 23
6.2
Podprogramy .................................................................................................... 24
6.3 7
Programová část ...................................................................................................... 26 7.1
Základní funkce ................................................................................................ 26
7.1.1
Procesy ...................................................................................................... 26
7.1.2
Podprogramy ............................................................................................. 30
7.1.3
Obrazovky ................................................................................................. 34
7.2 8
Obrazovky ........................................................................................................ 24
Testování a ladění ............................................................................................ 38
Závěr ....................................................................................................................... 40
Seznam použité literatury ............................................................................................... 42 Seznam obrázků .............................................................................................................. 44 Seznam tabulek ............................................................................................................... 44 Seznam zkratek ............................................................................................................... 45 Přílohy............................................................................................................................. 46 1
Obsah přiloženého CD ............................................................................................ 46
2
Fotodokumentace zařízení ...................................................................................... 47
1 Úvod V dnešní době je průmyslová technologie nedílnou součástí veškerého automatizovaného továrního odvětví. To, co dříve dělaly velké skupiny lidí, dnes dokáže jediný člověk, který zvládne obsluhovat stroj nebo dokonce celý výrobní proces s mnohem větší spolehlivostí. Rozmanitost automatizovaných úloh je tak vysoká, že nelze vytvořit univerzální algoritmy pro všechny druhy úloh. Poté, co přišly na řadu programovatelné logické automaty, byl tento problém vyřešen. PLC obsahuje své vlastní programovací jazyky, které jsou vytvořeny pro jednoduché i komplexnější programování úloh. O PLC jsem se začal zajímat až během studia na vysoké škole a to zejména v předmětech zabývající se jeho problematikou. Během školní praxe roku 2015 jsem dostal ve firmě Envinet a.s., nyní Nuvia a.s. možnost okusit trochu více z tohoto odvětví a říkal jsem si, že tohle je ta správná cesta, kterou se chci v budoucnu ubírat. Po praxi v této firmě jsem dostal nabídku udělat na toto téma bakalářskou práci a ani chvíli jsem neváhal. Gas Sampler je autonomní zařízení pro měření aerosolových částic ve vzduchu. Toto zařízení dokáže automaticky běžet bez zásahu člověka až po dobu 18 týdnů. Pro realizaci řídicího programu pro stanici byl zvolen řídicí systém Amit, a to nejen z důvodu dlouhodobé spolupráce s firmou Nuvia a.s., ale i pro snadnou realizaci cílů tohoto projektu. Řídicí systém komunikuje s přídavnými moduly přes komunikační protokol Modbus RTU. Na začátku bude třeba nastavit komunikaci mezi PLC a moduly. Poté bude třeba vytvořit zadané základní funkce a postupně je vyladit. Po vyladění se budou přidávat pomocné funkce, které pomohou k zpřehlednění kódu. Po dokončení všech funkcí bude třeba vyladit veškeré chyby. Dalším krokem bude vytvoření programu pro uživatelský terminál. Nejdůležitějším prvkem budou dva uživatelské přístupy s oddělenými právy řízení stanice. Celé zařízení půjde ovládat přes uživatelský terminál. Nakonec se vytvoří komunikační proces mezi stanicí a pracovištěm. Proces bude odbavovat příkazy z pracoviště určené pro stanici. Teoretická část se zabývá popisem zařízení, popisem prvků i technologií, použitých pro úspěšné zrealizování tohoto projektu. V první řadě je třeba se seznámit se zařízením, kvůli kterému tato práce vznikla. V dalších částech jsou popsány možné programovací jazyky pro programování tohoto zařízení. Dále následují použité sběrnicové komunikace
8
a komunikační protokoly. V neposlední řadě dojde k seznámení řídicího systému Amit a programovacího prostředí DetStudio. V praktické části jsou více popsány využité procesy, jejich úloha v projektu a zdůvodnění jejich existencí. Dále se zabývá všemi dosud vytvořenými funkcemi neboli podprogramy. Nakonec se tato část věnuje vývoji programu pro uživatelský terminál a také tomu, jakým způsobem probíhá testování veškerých funkcí.
9
2 Popis zařízení Gas Sampler je automatická a dálkově ovládaná stanice na měření aerosolů zachycených na filtru. Systém je navržen jako jeden z prvků včasného varování před radiační havárií. Slouží také jako monitoring prostředí v okolí jaderných provozů. Zařízení je ovládáno za pomoci PLC, které vykonává příkazy příchozí z PC. Z pohledu programátora, jde o dopravení filtrů na předem určená stanoviště. Zařízení obsahuje 37 různých senzorů, připojených na digitální vstupy. Dále je zde dalších 6 digitálních vstupů snímajících různé poruchy na přístroji a 2 analogové vstupy pro snímání teploty z teplotních čidel Ni1000. Pro ovládání zařízení je vyhrazeno 26 digitálních výstupů. Zařízení se skládá ze 4 stanovišť. Prvním stanovištěm je naskladnění filtrů do oběhu ze zásobníku naskladnění. Stanoviště obsahuje výsuvný/zásuvný válec a kleště pro chytání filtrů. Kleště se pohybují směrem nahoru/dolů a umějí se rozevírat/svírat. Druhým stanovištěm je prosávání. Zde jsou dva vysouvající se válce, jeden se vysouvá/zasouvá od spodu a druhý se vysouvá/zasouvá z vrchu, dále je zde možno spouštět vyhřívání vzduchu na potřebnou teplotu zadávanou z pracoviště. Po zasunutí válců se spouští prosávání okolního vzduchu filtrem. Třetím stanovištěm je měření, kam stačí filtr pouze dopravit a o měření se postará zabudovaná detekční jednotka. Posledním stanovištěm je vyskladnění filtru z oběhu do zásobníku vyskladnění. O doprovázení filtrů po stanovištích se stará otočný stůl. Tento stůl je otáčen pomocí motoru. V otočném stolu jsou vyraženy kulaté otvory, které mají o malinko větší průměr než filtry. Otvor má takovou hloubku, aby filtr nelezl ven a na dně díry je zarážka proti jeho propadnutí. Zásobníky s filtry jsou jištěny lopatkou, která slouží k tomu, aby nedošlo k jejich vypadnutí při manipulaci se zásobníkem.
Obrázek 2.1 Stanoviště zařízení, zdroj: autor
10
2.1 Popis řešení Základní myšlenkou tohoto projektu je vytvořit hlavní řídicí program neboli firmware pro řídicí stanici Amit AMiNi4W2 programovaným v prostředí DetStudio. Stanice bude v pozici Slave a bude poslouchat příkazy z PC v pozici Master. Proces pro komunikaci mezi PC a PLC, který určuje pravidla volání funkcí, bude implementován. Program se bude skládat z několika základních řídicích funkcí a pomocných podprogramů. Hlavní funkcí bude celý cyklus, kdy se provede jeden cyklus jasně stanovených pohybů výsuvných a zásuvných válců, otočného stolu a kleští pro nabírání filtrů. Další funkcí bude softwarová inicializace, kdy se veškeré komponenty nastaví do původní polohy pro otáčení stolu. Následuje funkce pro výměnu filtrů, která bude volána, když v zásobníku naskladnění dojdou filtry a bude třeba doplnit nové. Při zavolání funkce se vše potřebné nastaví do polohy pro pohodlné vyjmutí zásobníku, naplnění filtrů a jeho vrácení zpět. Další funkce se bude zabývat vyskladněním všech filtrů, které se právě nachází v oběhu, do vyskladňovacího zásobníku. Poslední z hlavních řídicích funkcí bude klasický reset, kdy se nastaví veškeré proměnné do počátečních hodnot. Nejdůležitějším prvkem bude tyto funkce odzkoušet a vyladit veškeré kolize a problémy vedoucí k zastavení zařízení, poškození součástí stroje nebo zranění obsluhy.
Obrázek 2.2 Blokové schéma, zdroj: autor
K PLC je připojen uživatelský terminál APT200. Terminál se programuje pomocí skriptů a bude obsahovat pomocné ovládání pro řídicí stanici. V terminálu budou navrženy 11
dvě uživatelské úrovně přihlášení, a to pro obsluhu stanice s nižšími právy a pro techniky s vyššími právy. Uživatelský terminál bude obsahovat ovládání všech stanovišť a bude obohacen o funkci demo programu. Jedná se o celý cyklus volaný s určitou časovou periodou. Dalším využitím bude možnost samostatně ovládat jednotlivé válce, kleště nebo otočný stůl.
2.2 Analýza existujících řešení Zařízení podobných účelu ve světě již existují. Je těžké tyto zařízení srovnávat, jelikož výrobci dodávají pouze stručné katalogové listy, ze kterých se nedá moc co porovnávat. Pro srovnání bylo zvoleno zařízení GES-400 od českého výrobce VF a.s. Jde o havarijní odběrové zařízení aerosolů a jódů. Zařízení má podobnou řídící strukturu jako Gas Sampler. Je ovládáno podřazeným PLC, které dostává instrukce z PC s tím rozdílem, že u GES-400 jde pouze o uživatelský terminál. Po hlubším zkoumání bylo zjištěno, že GES-400 obsahuje 2 dráhy, z nichž má každá pouze 1 filtr. Jeden z nich vydrží 5 hodin, poté musí být vyměněn. Všechny ovládací prvky jsou ovládány přes uživatelský terminál, takže dotyčná obsluha musí u zařízení stát, aby ho mohla řídit. [7]
Obrázek 2.3 GES-400, zdroj: http://www.vf.cz/data/files/b-09-a0010cs-141030-ges-400-313cz.pdf
12
3 Programovatelné logické automaty PLC je v dnešní době celkem malý řídicí počítač hojně využívaný v průmyslovém odvětví. Je řízen mikroprocesorem obsahující vlastní operační systém přizpůsobený k řešení automatizovaných úloh v reálném čase s co nejmenší dobou odezvy. Vyhodnocuje data z pasivních členů a na základě vyhodnocení řídí členy aktivní. PLC je navrženo tak, aby se co nejvíce vymezily provozní havárie a nemohlo docházet k neobvyklým provozním stavům. Při výskytu havárie ji dokáže okamžitě rozpoznat a včas patřičně zareagovat. Řídicí operační systém a veškeré základní nastavení jsou uloženy v uživatelské paměti. Stavy aktivních a pasivních členů, algoritmy programu a proměnných jsou uloženy v operační paměti, která je zálohovaná baterií. Program je rozdělen na procesy, které se vykonávají za sebou v nekonečné smyčce. Pořadí je určeno podle priority. Sofistikovanější systémy dokáží zpracovávat několik procesů paralelně v jeden čas. [3] Obrázek 3.1 Řízení a zpracování pomocí PLC znázorňuje propojení technologického procesu s řídicím PLC, které zpracovává data a dále je poskytuje PC pro zpracování do vnímatelné podoby.
Obrázek 3.1 Řízení a zpracování pomocí PLC, zdroj: autor
3.1 Algoritmy řízení Obecným popisem řešení zadaného úkolu řízení je posloupnost základních operací neboli kroků řízení. Dobře navržený algoritmus si musí stát za kvalitním dosažením cíle, ale hlavně i za bezpečnou proveditelností. V dnešní době se řídicí algoritmy nahrávají do řídicích jednotek ve formě programů. Ty většinou bývají jedinečného původu a způsobu vykonávání. Lze je snadno a hlavně za nízké náklady přepisovat nebo měnit. U PLC je kladen vysoký nárok na spolehlivost a bezpečnost. V případě výpadku napájení je zařízení převedeno do bezpečného stavu. Dnešní řídicí jednotky nahrazují i klasické
13
regulátory, kdy jejich soubor instrukcí umožnuje popsat činnost spojitých a nespojitých regulátorů. [6]
3.2 Programovací jazyky Programování PLC vyžaduje mírně odlišný přístup než je znám v běžných PC. Původní myšlenka je navržení jazyka pro snadnou realizaci logických funkcí. V rámci normy IEC 1131-3 jsou doporučovány čtyři základní programovací jazyky. Systémové jazyky různých výrobců se mohou mírně lišit, protože se výrobci soustředí hlavně na své technické vybavení a proto přenosnost programů mezi různými výrobci není možná. Jediné co jde, je přenášet programy mezi různými stanicemi téhož výrobce. [3][6]
3.2.1 Instrukční list Jedná se o strojově orientovaný kód, obdobou tohoto kódu je asembler u mikroprocesoru. Skládá se ze souboru jednoduchých instrukcí, kdy každá instrukce začíná na novém řádku, který je složen z mnemo kódů a operandů. Instrukční list umožnuje naprogramovat všechny možné funkce procesoru, ale je uživatelsky velmi náročný. [3][6]
Obrázek 3.2 Ukázka instrukčního listu, zdroj: autor
3.2.2
Strukturovaný text
Vyšší programovací jazyk, který je obdobou jazyků C a Pascal. Základ je postavený na jazyku Pascal ale jeho nedostatky jsou doplněny jazykem C. Strukturovaný text je objektově orientovaný a obsahuje prvky dnešních programovacích jazyků. Hlavní myšlenkou jazyka je využívání zápisu aritmetických a logických výrazů. Výrazy provádějí výpočty výsledků, které jsou uloženy v adresovaných proměnných. Vyhodnocení výrazu tkví v použití operátorů na operandy s tím, že operátory mají 14
stanovenou prioritu vykonávání. Nejprve jsou aplikovány operátory s vyšší prioritou a nakonec s nejnižší. Strukturovaný text využívá podmínek a cyklení programu, je mnohem přehlednější a uživatelsky jednodušší při vykonávání složitějších aritmetických operací nebo komplexních funkčních bloků. [3][6]
Obrázek 3.3 Ukázka strukturovaného textu, zdroj: autor
3.2.3 Příčkový diagram Jazyk je založený na grafickém znázornění kombinační nebo sekvenční reléové logiky. Kombinační logika vznikne paralelním nebo sériovým spojením jednoho nebo více prvků spojených se vstupem a výstupem. V sekvenční logice se využívá výstup jednoho obvodu k ovládání vstupu jiného obvodu. Příčkový diagram je vhodný pro programování jednoduchých, ale i složitějších logických úloh. Je nejvhodnější pro hledání problému, protože ve schématu je vodivá cesta zvýrazněna a hledání závady je tímto velmi ulehčeno. Příčkový diagram je nevhodné používat na složitější aritmetické operace. [3][6]
Obrázek 3.4 Ukázka příčkového diagramu, zdroj: autor
3.2.4 Funkční blokové schéma Grafický soubor vzájemně pospojovaných funkčních bloků pracuje na stejném principu jako příčkový diagram. Na výběr je předpřipraveno vysoké rozmezí funkčních bloků a je možné si dopsat své vlastní bloky. Implementace programů v tomto jazyce 15
je jednoduchá a jdou v něm dělat i složitější úlohy pro zachování snadné přehlednosti. [3][6]
4 Sběrnicová komunikace Komunikace mezi řídicími systémy je velmi důležitým prvkem pro sběr, přenos a vyhodnocení dat. Sběrnice zajišťuje přenos různých elektrických pokynů mezi dvěma nebo vice elektronickými zařízeními. Sběrnice se liší v hodnotách elektrického napětí. Datové přenosy jsou řízeny komunikačním protokolem. Typy komunikací se dělí na sériové a paralelní. Různé sběrnice jsou vhodné pro různá prostředí. Některé sběrnice se hodí pro komunikaci na nejvyšší úrovni distribuovaných systémů a jiné pro řešení mezi stroji a průmyslovými procesy. Obrázek 4.1 Použitá komunikace v projektu zobrazuje použité komunikace v projektu mezi řídicími prvky a distribuovanými systémy. [3]
Obrázek 4.1 Použitá komunikace v projektu, zdroj: autor
4.1 Sériová sběrnice Charakteristika této sběrnice spočívá v postupném přenášení jednotlivých bitů za sebou. Při sériové komunikaci jsou postupně oslovována jednotlivá zařízení a získaná data jsou předávána bit po bitu. Jednotlivé informace se před odesláním musí u odesílacího zařízení rozložit na jednotlivé bity a odeslat po vodiči. Následně se bity složí v přijímacím zařízení zpět na plnohodnotnou informaci. Nejvyšší využití tkví v přenosu elektrické informace na větší vzdálenost, neboť komunikace tvoří jedno-párový vodič. Tím se sníží náklady na kabeláž. Při sériové komunikaci nedochází k vzájemným rušivým elementům
16
při přenosu dat. Přenosová rychlost je z důvodu postupného přenosu nižší než u paralelní sběrnice. [3][6]
Obrázek 4.2 Ukázka komunikace po sériové sběrnici, zdroj: autor
4.1.1 Rozhraní RS-232 Jedná se o nejrozšířenější sériové rozhraní, kdy poslední platný standart RS-232C vyšel v roce 1969. Toto rozhraní umožnuje doplnit procesor o další periferní zařízení. Podporuje synchronní i asynchronní přenos dat. Standart definuje spoustu kontrolních mechanizmů, které jsou používané ve spojení s koncovkami DTE a DCE. Datové a kontrolní obvody pracují v jednom směru, ale obvody pro vysílání a příjem dat jsou od sebe odděleny. Rozhraní může pracovat ve Full Duplex režimu. Počet datových bitu není nijak stanoven, ale běžně se využívají rámce po 8 bitech. Pořadí vysílaných bitů je od nejméně významného LSB po nejvýznamnější bit MSB. [9]
4.1.2 Rozhraní RS-485 Sběrnice využívaná v průmyslu umožnuje připojení velkého počtu zařízení. Na rozdíl od RS232 neobsahuje žádné řídicí vodiče. Datový spoj je diferenciální a slouží jako sběrnice. Tím umožnuje více zařízením zúčastnit se komunikace. Počet vodičů je snížen na dva datové, ke kterým se někdy přidává ještě třetí vodič, což je společný zemnící potenciál. Také se přidává stínění vodiče. [11]
4.2 Komunikační protokoly Komunikační protokoly jsou pravidla, která popisují postupy a parametry využitých při posílání nebo přijímání dat. V rozsáhlejších průmyslových sítích jsou nejčastěji používány protokoly, kde účastníci sítě komunikují na principu klient-server, masterslave nebo předávají tokenu v logickém kruhu. [6] 17
4.2.1 Modbus RTU Komunikační protokol pracuje na úrovni aplikační vrstvy ISO/OSI a komunikace probíhá na principu MASTER – SLAVE. V jednom okamžiku může být na sběrnici jenom jedno master zařízení a až 254 slave zařízení. Pro úspěšnou komunikaci musí mít každé slave zařízení svoji specifickou adresu, která se nesmí v dané Modbus síti opakovat. Komunikaci může zahájit pouze master. Slave nesmí nikdy začít zahajovat komunikaci bez pověření od mastera. Master zařízení posílá požadavky na slave zařízení ve dvou režimech. Jedním je unicast režim, kdy master pošle požadavek jednomu konkrétnímu slave zařízení, které odpoví zpět. Druhým je broadcast režim, kdy master odešle požadavek všem slave zařízením, ale žádné neodpoví. Začátek a konec zprávy je odlišen mezerou delší než 3,5 znaku. [10][11]
Obrázek 4.3 Komunikační rámce zprávy, zdroj: http://home.zcu.cz/~ronesova/bastl/files/modbus.pdf
4.2.2 DB-NET DB-NET je asynchronní komunikační protokol od firmy Amit, který je implementován po nahrání operačního systému NOS do stanice. Protokol je určen pro komunikaci mezi stanicemi. Je implementován jak na rozhraní RS232, tak na RS485. Stanice jsou řízeny metodou předávání tokenu, která se nazývá TOKEN-RING a výměna tokenu je v logickém kruhu. Pokud stanice dostane token, stává se z ní řídící stanice sítě a může vysílat požadavky. Po zpracování požadavků, je předává token dále. Po předání tokenu, stanice již nemůže vysílat požadavky, ale pouze odpovídat na žádosti. Maximální počet stanic v síti je omezen na 32 a každá stanice musí mít svoji jedinečnou adresu. [12]
18
4.3 Průmyslový Ethernet Průmyslový Ethernet je dnes již jeden ze základních komunikačních prostředků v průmyslu. Nejčastěji se využívá ve vyšší distribuční vrstvě pro komunikaci mezi stanicemi a počítači v tzv. LAN síti. V průmyslu se využívá stromová topologie, která podporuje přenosové rychlosti 10/100 Mb/s. Problémem u těchto sítí jsou větší náklady, jelikož použitý hardware musí splňovat požadavky pro práci v průmyslu, kde je kladen velký důraz na stabilitu, nízkou odezvu, ale také odolnost proti vibracím, tekutinám a prachu. Protokoly pro průmyslový Ethernet nabízejí efektivnější výměnu dat mezi více zařízeními v síti. Pro obsloužení většího počtu stanic a počítačů se využívají směrovače, a to i v bezdrátovém provedení. Jako jeden z mála prostředků nabízí možnost spojení s okolním světem pomocí internetu. [14][15]
Obrázek 4.4 Využití průmyslového Ethernetu, zdroj: http://www.uamt.feec.vutbr.cz/~zezulka/download/KPPA/A010741-I.pdf
19
5 Řídicí systém Amit Amit je přední výrobce a dodavatel řídicí technologie, počítačů a řídicí elektroniky v České republice a spolupracuje s mnoha firmami i v zahraničí. Jednou z těchto firem je i Nuvia a.s. Funkční systém managementu dle jakostní normy ISO 9001 zaručuje stabilní a vysokou úroveň kvality poskytování služeb a výrobků zákazníkům. [5] Řídicí systémy Amit jsou zkonstruovány tak, aby šly použít ve veškerých projektech, které jsou realizovány pomocí PLC, ale i tam, kde by bylo řešení s PLC obtížnější. Oproti PLC jiných výrobců dokáží řešit složitější výpočetní operace. Pro svoji vysokou paměťovou kapacitu jsou vhodné i pro ukládání monitorovacích dat. K řídicím systémům Amit lze snadno připojit prvky jiných výrobců automatizačních technologií. [5]
5.1 Řídicí jednotka AMiNi4W2 Tento řídicí systém obsahuje zabudovaný Ethernet, pro možné připojení do lokální sítě LAN přes konektor RJ45. Do každého nově pořízeného řídicího systému je nutností před programováním nahrát operační systém NOS, tím se zajistí nahrání aktuálně nejnovější verze tohoto OS. [1]
Obrázek 5.1 Kompaktní řídicí systém AMiNi4W2, zdroj: www.amit.cz/docs/cz/amini/amini4w2_d_cz_101.pdf
20
Základní vlastnosti AMiNi4W2:
8 galvanicky oddělených digitálních vstupů a výstupů [1]
8 analogových vstupů U / I / Ni1000 /Pt1000 [1]
4 analogové vstupy 0 V až 10 V [1]
Sériové rozhraní RS485 s galvanickým oddělením [1]
Rozhraní Ethernet 10/100Mbs [1]
5.2 Rozšiřující moduly Moduly vzdálených vstupů a výstupů se používají, pokud řídicí stanice trpí nedostatkem vlastních integrovaných vstupů a výstupů pro daný projekt. Procesor řídicí stanice snadno zvládne zpracovat data z mnohem více vstupů a výstupů než má stanice integrované v základu. Komunikace ARION garantuje obsloužení až 63 modulů připojených sériovou linkou. Pořízení modulů je mnohem levnější varianta než kupovat další stanici. Dalším využitím je přenos vzdálených signálů od řídicí stanice. Díky tomu se velice sníží náklady za kabely. Výhodou je také vyšší odolnost proti rušení analogových signálů vlivem dlouhého přenosu. Hodnoty jsou poté posílány přes komunikační protokoly, které jsou ošetřeny a nemůže dojít ke ztrátě nebo k chybným hodnotám. [8]
21
5.3 Průmyslový terminál APT200 Průmyslový terminál se sériovou komunikací je vhodný pro jednoduché ovládání PLC přes klávesnici. Tento terminál lze připojit k řídicím systémům, disponující sériovým rozhraním RS232 bez galvanického oddělení, dvěma konektory - CANON 9 a RJ45. Další možností je komunikační linka RS485. Terminál je vhodné namontovat do panelu rozvaděče. Řídicí terminál obsahuje klávesnici, která má 8 ovládacích tlačítek s krytím IP 55. Dále dvouřádkový černobílý podsvícený LCD displej, kde každý řádek pojme až 16 znaků. [2]
Obrázek 5.2 Průmyslový terminál, zdroj: http://www.amit.cz/docs/cz/terminaly/apt200_d_cz_100.pdf
22
6 Programovací prostředí DetStudio Jak již bylo zmíněno v kapitole 3.2 Programovací jazyky, každý výrobce má svůj specifický jazyk a u výrobce řídicích systémů Amit tomu není jinak. DetStudio umožnuje efektivní a jednoduchou tvorbu programových aplikací, ale pouze pro stanice Amit. Návrhové prostředí pro programování vychází z BASIC jazyků. DetStudio obsahuje tři základní programovací jazyky, a to instrukční list, reléová schémata a strukturovaný text. Strukturovaný text je nejpoužívanější co se týče stanic Amit a umožnuje nejširší škálu možností. Před samotným programováním je třeba do každé nové stanice nahrát aktuální verzi operačního systému, který umožnuje spouštění aplikací vytvořených v tomto návrhovém prostředí a umožňuje komunikaci po protokolu DB-NET. [4] Obrázek 6.1 Programovací prostředí DetStudio zobrazuje grafické rozdělení veškerých oken programu, je možné si všimnout, že program je celý v českém jazyce, a to i okna nápovědy.
Obrázek 6.1 Programovací prostředí DetStudio, zdroj: autor
6.1 Procesy Procesy jsou části programu, které pracují samostatně a jsou nezávislé na jiných částech programu. Většina procesů pracuje v cyklech, ale najdou se i speciální procesy, které mají 23
své specifické vlastnosti. Program procesu může být vytvořen v libovolném jazyce, uvedeným v kapitole 3.2 Programovací jazyky. [4] Dělení procesu ve stanicích Amit:
Normal: Normální procesy pracují cyklicky a jsou spouštěny za sebou podle priority. Jeden program může obsahovat 16 těchto procesů, které se nemohou vzájemně přerušovat.
Interrupt: Procesy přerušení se vykonávají na základě přerušení od vnější události a mají ze všech procesů nejvyšší prioritu. Jeden program může obsahovat 16 těchto procesů. Každý má nastavenou prioritu a ty s nižší prioritou nemůžou přerušit proces s vyšší prioritou, v opačném případě to možné je.
Init: Tento proces je spouštěn pouze jednou, a to po spuštění stanice. V něm se nastavují
inicializační
sekvence
a
počáteční
podmínky
pro běh programu.
HiSpeed: Procesy určeny k obsluze velmi rychlých dějů. Perioda procesu se dá nastavit v rozmezí od 1 do 1677 ms. Proces je určen hlavně pro řešení akcí, které jsou časově velmi kritické.
Idle: Idle proces je spouštěn pouze v okamžicích, kdy si jiný proces nenárokuje procesor stanice, proto je vhodné do tohoto procesoru umísťovat sekvence o nízké prioritě výkonu. Nejčastěji se sem umísťuje modul obsluhující grafický terminál. [4]
6.2 Podprogramy Podprogramy na rozdíl od procesů nejsou vykonávány cyklicky a musí se jednotlivě v procesech volat. Podprogramy je možné psát všemi dostupnými jazyky, které DetStudio nabízí. Počet podprogramů je omezen na 900. Základní funkcí je připravení vlastního funkčního bloku, který je v procesech libovolně volán. Podprogramy zpřehledňují kódy, které by jinak byly napsány do jednoho procesu. [4]
6.3 Obrazovky Obrazovky slouží k rozvržení přechodu obrazovek na grafickém terminálu, vkládání ovládacích prvků obrazovky, jejich parametrizaci nebo napsání vlastních ovládacích prvků. Programování je rozdílné od samotné implementace v PLC, obrazovky 24
se programují pomocí skriptů a metod. Skripty jsou vykonávány jako odezva na nějakou uživatelskou událost, obvyklým příkladem může být reakce na stisk tlačítka, ale i na vnitřní popud řídicí stanice. V návrhu obrazovek je jejich zobrazení v reálných velikostech, jako tomu bude na grafickém terminálu. Při prvotním nastavení stanice v programu DetStudio je třeba vybrat grafický terminál, ať jde o integrovaný nebo externí. [4]
25
7 Programová část Tato kapitola se zabývá programovou částí řídicího systému. Jsou zde stručně popsány funkce a důvody vzniku jednotlivých procesů, funkcí a návrhů obrazovek u terminálu. Dále je zde vysvětlen způsob testování zařízení.
7.1 Základní funkce Hlavní program obsluhuje mnoho funkcí, ale pouze některé se volají z PC pomocí komunikačního procesu. Ostatní fungují na automatické bázi a nelze je samostatně volat. Některé funkce lze také volat z uživatelského terminálu, ale pouze po ověření autorizace a přepnutí do manuálního režimu ovládání, aby se zamezilo vstupu nepověřené a nezkušené osoby, která by mohla narušit probíhající průběh. PC může volat pouze čtyři základní funkce, a to celý cyklus, softwarovou inicializaci, vyskladnění všech filtrů z oběhu a reset řídícího zařízení. V manuálním režimu z terminálu lze volat pouze jednu funkci, a tím je demo program. Poté je zde na výběr volání jednotlivých pohybů všech stanovišť. Z manuálního režimu po přihlášení je možné ovládat jednotlivé digitální výstupy samostatně a kontrolovat stav digitálních vstupů.
7.1.1 Procesy Pro naprogramování zařízení bylo použito 6 procesů, z toho 4 normal procesy, 1 idle a 1 init proces, více o těchto procesech v kapitole 6.1 Procesy. Normální procesy jsou nastaveny s periodou od 100 ms do 500 ms. Hlavni_P Tento proces obsahuje hlavní řídicí smyčky a je považován za jádro programu. Také obsluhuje čtení, zápis na digitální a analogové vstupy a výstupy. První smyčka obsluhuje řízení alarmu. V podmínce se testuje, jestli nenastalo alarmové hlášení. Pokud ano, spustí se každých 20 sekund alarm po dobu trvání 2 sekund. Doba trvání alarmu je tak dlouho, dokud se nevyřeší vzniklý problém, který vyvolal spuštění alarmu. Seznam alarmů je možný ke zhlédnutí v podkapitole AlarmObrazovka. Následuje testovací hlavička, do které jsou vnořeny dvě smyčky. V testovací hlavičce je testováno, jestli nenastal alarm nebo chyba způsobená problémem spojená s mechanickou částí přístroje. Vnořené smyčky zkoumají, jaký je nastaven režim řízení, tím je myšlen režim automatický 26
a manuální. Podle režimu se pokračuje danou smyčkou, která má specifický výběr. Smyčka pro automatický režim umožnuje volat základní řídicí funkce, zatímco smyčka pro manuální režim dokáže volat pouze jednotlivé části pohybů zařízení a funkci celý cyklus. Cislopozice Proces slouží k přečtení aktuální polohy otočného stolu. Poloha je snímána čtyřmi čidly, které vracejí hodnotu v podobě čtyř bitů. Proces převádí tyto bity na dekadickou hodnotu, kvůli snazšímu určení aktuální polohy a lepší práci s ní v programu. ModBUS Komunikace Modbus RTU byla firmou Amit implementována v prostředí DetStudio už ve starších verzích jako přeprogramovaný objekt s názvem MODBS_R. Jediné co je třeba, tento objekt nastavit tak, aby mohla být komunikace uskutečnitelná. MODBS_R 1, 9600, 0x0004, 17, 50, 60
Pro sériovou komunikaci byl nastaven port 1. Zvolená rychlost komunikace je 9600Bd, znaky mají 1 stopbit a jsou bez parity. Stanice po obdržení odpovědi čeká minimální nastavený čas, což je 50 znaků. Na odpověď se čeká maximálně nastavený čas tj. 60 znaků, při zvolené rychlosti 9600Bd, stanice čeká cca 50ms. Modul zpracovává všechny vzdálené body, které mají svůj komunikační kanál 17. Toto nastavení nelze měnit za chodu systému a po každé změně je třeba systém řádně restartovat, aby se nastavení projevilo. ProcIDLE Proces obsahuje modul, který je určen pro připojení grafického terminálu. Modul zajišťuje výměnu mezi softwarovou částí stanice a terminálu. ProcINIT Proces počátečního nastavení obsahuje dva moduly pro periodické načítání stavových registrů a nastavení proměnných užitých v programu, které je třeba mít předem nastaveny do určité hodnoty.
27
RmtDef DOMB, "15,0-17", 0, NONE, 3, 17, NONE.0, Result, State
Modul RmtDef definuje vzdálené proměnné, které neobsahuje řídicí stanice. Zde bude popsáno nastavení modulu digitálních vstupů. První parametr je název proměnné DOMB, ze které nebo do které jsou data přenášena. Další parametr definuje adresu vzdáleného zařízení. Zařízení firmy Amit mají tuto adresu jasně stanovenou. Podle zařízení se nastaví perioda s jakou je vkládán požadavek na vykomunikování vzdálené proměnné, v tomto případě je zde 0, což značí pouze zápis do vzdáleného modulu. Následuje parametr, který udává fyzickou adresu zařízení vlastnící vzdálenou proměnnou, v tomto případě to je adresa 3. Dále sem patří identifikace komunikačního kanálu, který byl nastaven již v modulu MODBS_R. Pro úspěšnou komunikaci musí parametry obou modulů souhlasit. Poslední dva parametry Result a State jsou pro ladění komunikace. Do proměnné Result se zapisuje stav komunikace. Podle komunikační tabulky lze zjistit, o jaký stav se jedná. V proměnné State je zapsána hodnota, která podle tabulky ukazuje stav požadavku, případně popis problému při tomto stavu. ComPC Proces určuje pravidla pro komunikaci mezi řídicí stanicí a pracovištěm. Jak již bylo řečeno, řídicí stanice poslouchá příkazy od řídicího pracoviště. Aby vše fungovalo a nedocházelo ke kolizím, je třeba do stanice implementovat proces, který vše uřídí. Pracoviště si může přečíst, v jakém stavu se stanice nachází. Stav stanice je uložen v proměnné Status_PLC a podle toho může reagovat a posílat příkazy pro vykonání funkcí. Více ukazuje Tabulka 7.1 Stavy stanice a jejich popis. Dalšími parametry, které si může pracoviště přečíst ze stanice je, jaký aktuální pohyb stanice vykonává, jaký alarm nastal, pokud nastal a také jaké jsou aktuální teploty vzduchu foukaného přes filtry. Status_PLC
Popis stavu
0
Probíhá výměna filtrů
1
Stanice je připravena k přijetí příkazu
2
Stanice přijala příkaz a vykonává ho
3
Stanice vykonala zadaný příkaz
4
Fail, nastala nějaká chyba bránící vykonání příkazu
5
Stanice je nastavena v ručním režimu a nereaguje na příkazy z pracoviště
6
Z uživatelského panelu byl vyslán požadavek na výměnu filtrů Tabulka 7.1 Stavy stanice a jejich popis, zdroj: autor
28
Další vlastností je, že pracoviště může zapisovat hodnoty do předem připravených proměnných. Do proměnné Funkce_PC se číslem zapíše, jakou funkci chce pracoviště vykonat. Více ukazuje následující tabulka. Funkce_PC
Popis funkce
1
Celý cyklus
2
Softwarová inicializace
3
Vyskladnit všechny filtry z oběhu
4
Výměna filtrů u válce naskladnění a vyskladnění
5
Reset paměti a digitálních výstupů Tabulka 7.2 Volané funkce a jejich popis, zdroj: autor
Obrázek 7.1 Zpracování požadavku řídicí stanicí, zdroj: autor
Obrázek 7.1 Zpracování požadavku řídicí stanicí, zdroj: autor ukazuje zpracování jednoho požadavku. Z pracoviště je vyslán příkaz pro funkci celý cyklus. Do proměnné Funkce_PC se tedy zapíše 1, což je podle tabulky celý cyklus. Aby nebyl požadavek zahozen, musí být stanice připravena tento požadavek přijmout. Do Status_PLC musí být zapsána hodnota 1. Tím stanice podle tabulek říká, že je připravena přijmout další příkaz a mimo to musí být přepnuta do automatického režimu. Pokud je vše splněno, požadavek se z počítače vynuluje a začíná se s testováním chyb. Pokud je v tento moment v zařízení zjištěna nějaká chyba, stanice se přepne do režimu 4, což je podle tabulek stav, 29
kdy nastala nějaká chyba a je potřeba ji řešit, než se zavolá další funkce. Pokud však chyba nenastala, nastaví se požadavek na funkci celý cyklus a režim stanice se přepne do 2, což značí, že stanice úspěšně přijala požadavek a vykonává ho.
7.1.2 Podprogramy V podprogramech jsou řešeny veškeré funkce přístroje, a to z důvodu modulárního využití. V procesech jsou volány příkazem Call a zatím následuje název podprogramu. Výstup z podprogramu nastává v momentě, kdy podprogram dojede nakonec nebo pomocí pseudopříkazu Exit. Modulárním využitím je myšleno to, že se funkce mohou kombinovat jak chtějí a volat v libovolném pořadí. Veškeré podprogramy jsou ošetřeny proti kolizím, ale i časovou prodlevou neboli timeout. Pokud vykonávání podprogramu trvá moc dlouho, je téměř jisté, že došlo k nějakému problému. Po vypršení časové prodlevy se spustí alarm a uloží se údaj o tom, ve které části se vykonávání programu zastavilo a tímto způsobem se snadno zjistí příčina problému [8]. BezFiltru Tato funkce hlídá filtry ve válci naskladnění a je volána automaticky. U válce naskladnění je optické čidlo, které vyhodnocuje, jestli kleště drží filtr. Pokud ano, znamená to, že zásobník ještě obsahuje nejméně jeden filtr. Mohou nastat případy, kdy se filtr zasekne v kleštích a není spuštěn do takové polohy, aby byl vyhodnocen jako přítomný. V tomto případě optické čidlo vyhodnotí nepřítomnost filtru. Aby se zabránilo špatně vyhodnoceným stavům, vznikl tento podprogram. Po vyhodnocení nepřítomnosti filtru se spustí tento podprogram a ten si vyhodnocení zaznamená. Proběhne další cyklus, a pokud byl filtr pouze zaseklý, tentokrát už se naskladní do otočného stolu. Je velmi nepravděpodobné, aby se zaseknutý filtr ani na druhý pokus nevyskladnil. Podprogram se ukončí a pokračuje se v normálních cyklech. Pokud však filtry opravdu došly a podprogram znovu vyhodnotí nepřítomnost filtrů, tak se další naskladňovat nebudou a zbytek filtrů se dojede klasickým způsobem. Po vyskladnění posledního filtru z oběhu se spustí alarmová hláška, která upozorní na prázdný zásobník naskladnění.
30
Cyklus Funkce modulárně poskládaná ze základních podprogramů určující jeden cyklus filtru v oběhu od naskladnění po vyskladnění daného filtru. Pořadí vyvolaných podprogramů lze snadno měnit. Switch Pohyby case 1 Call Neprosavat endcase case 2 Call Naskladneni Endcase Case 3 Call rotace1 EndCase Case 4 Call Prosavat EndCase Case 5 Call Vyskladneni EndCase Endswitch
Tímto způsobem jsou vykonány jednotlivé pohyby. Začíná se jedním, a když je celý vykonán, pokračuje se dalším až do posledního. Posledním pohybem funkce se celý cyklus ukončí. Všechny funkce cyklu jsou vysvětleny dále. Rotace1 Funkce ovládající otočný stůl. Otočný stůl má v sobě čtyři otvory, kterými se válce mohou bez problému pohybovat. Problém nastává až v momentě, kdy je některý válec vysunut a při pohybu stolu by došlo k zaseknutí o tento válec. Při tomto stavu by bylo nezbytné ihned zastavit zařízení. Oprava by spočívala v rozmontování válce a ručním posunutím stolu, pokud by nedošlo k nějakému jinému poškození. Tento stav se nesmí stát a proto je tato funkce patřičně ošetřena. Ošetření spočívá v kontrole stavů válců, a pokud by některý zavazel v pohybu, bude zavolána funkce InitValce, více o této funkci v podkapitole InitValce. Pro povolení otočit stůl je třeba nejdříve aktivovat enable, za tím následuje impulz neboli pokyn k otočení. Stůl se otočí o osminu kruhu, a proto je třeba vyslat další impulz pro otočení, což dá dohromady čtvrtinu. Na konci se otestuje, jestli je stůl otočen do správné pozice, kdy je možné naložit filtr a funkce se ukončí.
31
Naskladneni Tato funkce, která má za úkol naložit filtr na otočný stůl se skládá z několika základních pohybů, a to: vyjetí válce naskladnění nahoru, dále rozevření kleští, čímž dojde k propadnutí filtru na válec. Další pohyb je sevření kleští, které chytnou filtr nad propadlým filtrem. Následně sjíždí válec směrem dolů a za ním kleště, které propadlý filtr zatlačí do otočného stolu. Poslední pohyb je vyjetí kleští zpět nahoru a filtr je připraven pro cestu otočným stolem. Vyskladneni Funkce slouží pouze k vyložení filtru do vyskladňovacího zásobníku. Pokud je otočný stůl s filtrem na tomto stanovišti, vyskladňovací válec vyjede do zásobníku s filtrem a válec následně sjede. U tohoto zásobníku je ochranný zpětný mechanizmus, který blokuje propadnutí filtrů zpět. Prosavat Funkce má za úkol dopravit válce prosávání na své místo. Je zde třeba testovat správnou polohu prosávačky. S ní lze ručně manipulovat a tím ji odsunout mimo otočný stůl. Spodní válec prosávání je třeba vysunout a vrchní válec zasunout. V dalším kroku dochází k profoukávání okolního vzduchu filtrem a podle potřeby je možné vzduch ohřát na nastavenou teplotu, která je zadávána z pracovní stanice. Neprosavat Neprosavat je protiklad funkce Prosavat. Po ukončení prosávání je třeba vrchní válec vysunout a spodní válec zasunout zpět, aby mohlo dojít k bezpečnému otáčení stolu. FiltryZObehu Pokud je zavolána tato funkce, přestanou se naskladňovat nové filtry a přeruší se veškeré ostatní funkce. Postupně se otočný stůl otáčí a vyskladňovací válec vyskladňuje veškeré filtry v oběhu. Po vyskladnění posledního filtru se přístroj pozastaví.
32
VymenaFiltru Funkce, která usnadňuje výměnu zásobníku se vstupními filtry. Kromě testování obsahuje dva pohyby. První pohyb zajistí vysunutí válce naskladnění nahoru a následné rozevření kleští. Tím se zajistí snadná manipulace zásobníku a při vytáhnutí lopatky ze zásobníku nepropadnou žádné filtry ven. SWInit Tato funkce zajistí nastavení veškerých částí přístroje do základních poloh. Při novém spuštění přístroje je třeba nastavit všechny stanoviště do původních poloh. Mohlo by se totiž stát, že před spuštěním byl přístroj neočekávaně vypnut bez řádného ukončení. Proto je třeba před použitím přístroje veškeré stanoviště nastavit do základních poloh, dokud se tak nestane, není možné volat jiné funkce. Reset Funkce slouží k okamžitému přerušení vykonávání všech pohybů přístroje. Digitální výstupy a parametry používané při práci s pohyby přístroje jsou vynulovány nebo navráceny do původní hodnoty. Softwarová ochrana je vyvolána z pracoviště k rychlému pozastavení veškeré činnosti při výskytu problémů. InitValce Funkce je volána automaticky, vždy když je třeba nastavit válce do takové polohy, aby bylo možné pohybovat otočným stolem a nedošlo ke kolizím. Před každým otočením stolu je testováno, jestli v pohybu otočného stolu by nemohl bránit některý výsuvný válec. Pokud by bránil, automaticky se volá tato funkce a všechny bránící válce budou nastaveny do polohy pro bezkolizní pohyb otočného stolu. CheckERR Funkce hlídá digitální vstupy, které jsou od toho, aby varovali před hw chybou veškerých komponentů v projektu. Může se jednat o chybu spojenou s napájením kompresoru, otočného stolu, spektrometrie nebo také o chybný tlak u kompresoru. Pokud by některá z těchto chyb nastala, rozsvítí se signálky pro alarm zařízení nebo bezpečnostního obvodu. 33
7.1.3 Obrazovky V obrazovkách je řešeno ovládání a grafický návrh veškerých přechodů na displeji. V obrazovkách se pracuje s textem, který je kódován v ACII kódu. Terminál obsahuje dva stupně přihlášení, jedním stupněm je běžná obsluha a dalším stupněm je technik. Pin od stupně technik budou znát pouze vyškolení pracovníci. V tomto stupni je možné ovládat veškeré části přístroje. Obrazovky je možné ladit přímo v prostředí DetStudio. Firma Amit nabízí tento simulátor ke stažení z jejich stránek. Na Obrázek 7.2 Simulátor obrazovek je možné vidět, jakým způsobem probíhá ladění obrazovek. Zobrazí se zvolená obrazovka a tu lze jí řídit klikáním na příslušná tlačítka. Parametry obrazovek lze zapisovat v pravém sloupci a je možné si přidat jakýkoliv parametr.
Obrázek 7.2 Simulátor obrazovek, zdroj: autor
Global Global je speciální druh obrazovky, kterou obsahuje každý projekt. Tuto obrazovku nelze přejmenovat nebo smazat. Umisťují se zde skripty, které se musí zpracovat bez ohledu na právě otevřenou obrazovku. V případě tohoto přístroje je zde časovač, který hlídá čas přihlášení uživatele. Pokud se uživatel přihlásí a zapomene se odhlásit při odchodu, tak tato obrazovka zajistí, že se uživatel automaticky odhlásí při delší časové neaktivitě. Další funkcí je hlídaní alarmové chyby. Pokud nastane alarm, bude zobrazen na displeji. 34
Info Při spuštění zařízení nebo odhlášení uživatele se objeví tato obrazovka. Zobrazuje aktuální stav počtu chyb způsobené elektrickou částí přístroje. Dále si může uživatel přečíst, v jakém režimu se přístroj nachází. Odchod z této obrazovky je možný pouze po přihlášení uživatele. Login Na obrazovku Login se přechází z obrazovky Info. Uživatelské stupně mají své vlastní piny, které jsou čtyřmístné. Zatímco pin technické obsluhy je pevně daný a dá se změnit pouze v jádru programu, uživatelský pin je možné měnit. Jednoduchý logovací systém je v prostředí navrhnut už od firmy Amit. Z důvodu programátorské nepřizpůsobivosti byl vytvořen vlastní login fungující na jednoduchém principu. event Login_OnOpen() login.Refresh(); pin[0,0]=0; pin[0,1]=0; pin[0,2]=0; pin[0,3]=0; //promenna posunu pozice pp=0; //42 v ascii je * KeyM[0,0] = 42; KeyM[0,1] = 42; KeyM[0,2] = 42; KeyM[0,3] = 42; end;
Skript OnOpen() – událost vyvolána při skoku na obrazovku, nastaví kontrolní pin do nulových hodnot. Do proměnné KeyM sloužící k zobrazení výsledku na displeji jsou zapsány hodnoty 42, což je v ASCII kód pro *. //slouzi k prihlaseni uzivatele, testuje jestli zadane heslo odpovida danemu uzivateli //inkrementace hodnoty jednotlive pozice event Key1_OnKeyDown() if pin[0,pp]>8 then pin[0,pp]=0; else pin[0,pp] = pin[0,pp] + 1; endif; end;
35
Skript OnKeyDown() – událost vyvolána při stisku tlačítka, inkrementuje aktuální pozici pinu do hodnoty 9, poté přeteče zpět na 0. Obdobným způsobem je implementována dekrementace. //posun pozice vpravo event Key3_OnKeyDown() if pp>2 then pp=0; else pp=pp+1; endif; end;
Dalším skriptem je posouvání pozice pinu vpravo. Jak již bylo řečeno pin je čtyřmístný a proto stačí posouvat do hodnoty 4 a poté proměnná posunu přeteče na pozici 0. Obdobný způsob je vytvořen pro posouvání vlevo. event Key5_OnKeyDown() //Master heslo - kontrola if pin[0,0]==0 and pin[0,1]==0 and pin[0,2]==0 and pin[0,3]==0 then Application.ActualUser = 2; MasterMenu.Show(); else //Uzivatelske heslo - kontrola if (heslo[0,0]==pin[0,0]) and (heslo[0,1]==pin[0,1]) and (heslo[0,2]==pin[0,2]) and (heslo[0,3]==pin[0,3]) then Application.ActualUser = 1; UzivaMenu.Show(); else pomo =1; AccessDenied.Show(); endif; endif; end;
Poslední skript kontroluje zadané hodnoty pinu na terminálu s uloženým pinem obsluhy a master pinem Pokud se některý z nich bude shodovat, nastaví se práva a přejde se na následující obrazovku. Master pin je pevně nastaven, zatímco uživatelský pin je uložen v databázové proměnné.
Obrázek 7.3 Obrazovka logování, zdroj: autor
36
MasterMenu Po úspěšné autorizaci jako technická obsluha, se objeví tato obrazovka. Rozcestník na další obrazovky, ať jde o ovládání jednotlivých funkcí, válců, tak je zde možnost změnit uživatelský pin. Uživatelé si sami pin změnit nemohou a to z důvodu ochrany, tudíž pro změnu uživatelského pinu je podmínkou znát master pin. OvladaniFunkce Obrazovka obsahuje menu se všemi dostupnými funkcemi. Z této obrazovky lze tyto funkce volat, ale jen pokud je zařízení nastaveno v manuálním režimu. OvladaniValce Obrazovka obsahuje menu, kde je možné si vybrat ovládání jednotlivého válce nebo rotace stolu. Zobrazuje i aktuální polohu válce. NovyPin Obrazovka pro změnu uživatelského pinu funguje na podobném principu jako login, ale s jedním rozdílem. Aby se zadaný pin uložil jako nový aktuální pin, je třeba pro kontrolu tento nový pin zadat znovu. Jedná se o ochranu před špatně zadaným pinem. UzivMenu UzivMenu je menu obsluhy, kdy obsluha má pouze jednu možnost, a to nechat si zavolat funkci výměna filtrů. Řídicí stanice si požadavek uloží do paměti a pošle pracovišti. Poté je na něm, jak s požadavkem naloží. Demo Obrazovka obsluhující ukázkový program zařízení. Pomocí časovače je v určitých časových intervalech volána funkce cyklus. Jde o jediný způsob, jak bez PC volat periodicky cyklus základních pohybů. V demo obrazovce nedochází k odpočtu času po odhlášení uživatele.
37
Zmeneno Obrazovka určená pouze k tomu, aby ukázala text závislý na tom, ze které obrazovky se na ni přešlo. Text má nastavenou neviditelnost a po přechodu z určité obrazovky se zviditelní text závislý pouze na předchozí obrazovce. Například pokud dojde v logovací obrazovce k chybnému zadání pinu, přejde se na tuto obrazovku a zobrazí se text „Chybne zadan pin“ a po určitém čase se vrací na původní obrazovku. AlarmObrazovka Obrazovka slouží k zobrazení aktuální alarmové hlášky. Alarmová chyba spustí zvukový alarm, ale vypnut bude až po odstranění chyby nebo po zmáčknutí klávesy na terminálu. Je to z důvodu toho, aby se zajistilo, že obsluha bude o chybě vědět. Alarm bit
Popis alarmové chyby
Alarm.0
Válec naskladnění nevyjel nahoru
Alarm.1
Kleště se nerozevřely
Alarm.2
Kleště se nesevřely
Alarm.3
Válec nebo kleště nesjely dolů
Alarm.4
Kleště nevyjely nahoru
Alarm.5
Válec vyskladnění nevyjel nahoru
Alarm.6
Válec vyskladnění nesjel dolu
Alarm.7
Válce prosávačky nevysunuty
Alarm.8
Válce prosávačky nezasunuty
Alarm.9
Stůl se neotočil
Alarm.10
Prázdný zásobník na filtry
Alarm.11
Přítomnost lopatek při vykonání funkce, kdy je třeba vysouvat válce vyskladnění a naskladnění Tabulka 7.3 Seznam alarmů a popis, zdroj: autor
7.2 Testování a ladění Testování a ladění chyb je jeden z nejdůležitějších aspektů řízení PLC. Přístroj musí být před vydáním do ostrého provozu bezchybně otestován, nesmí při provozu dojít ke kritické chybě, díky které by došlo k fatálnímu poškození přístroje nebo v horším 38
případě ke zranění obsluhy. Testováním se nejen zjistí “díry“ v programu, které je třeba vyladit, ale i mechanické nedokonalosti. Testování probíhá tím způsobem, že jsou stále dokola vyvolávány veškeré funkce v různých pořadích několiksetkrát a nesmí dojít k žádné programové chybě. Tímto způsobem bylo zjištěno i několik mechanických nedostatků. Jedním z nich byly kleště pro chytání filtrů. Občas se stávalo, že kleště zachytily filtr na nesprávném místě, což vedlo k nespuštění filtru do otočného stolu. Problém byl vyřešen náběhy na ručičkách kleští. Ve strukturovaném textu je obtížnější hledat chyby programu. Pokud se zavolá funkce a program se neočekávaně zasekne nebo špatně provede pohyb, tak je jasné, že ve volané funkci je někde chyba, ale přesné místo je obtížnější zjistit. Proto byly veškeré pohyby rozděleny a jsou vykonávány za sebou. Když se dokončí aktuální pohyb, může se přejít na další. Tímto způsobem se snadno zjistí, v jaké části programu došlo k problému. Pro jednodušší ladění je možné si zobrazit inspektor. Ten ukazuje aktuální dění ve stanici a zobrazuje ho v přehledné tabulce. Do tabulky si můžeme vložit své proměnné podle povahy ladění. Hodnoty se dají přepisovat manuálně. Je možné si nechat zobrazit až 4 inspektory najednou. Ladění terminálu obsahuje svůj inspektor. Když dojde k zaseknutí zařízení, v tabulce se zobrazí, co bylo právě v ten moment zapsáno na vstupech a výstupech. Inspektor pro ladění stanice je možný vidět na Obrázek 7.4 Inspektor pro ladění programu.
Obrázek 7.4 Inspektor pro ladění programu, zdroj: autor
39
8 Závěr Cílem práce bylo vytvoření řídicího programu pro zařízení Gas Sampler, který je řízený programovatelným automatem a uživatelským terminálem. Gas Sampler je prototyp zařízení, který měří výskyt radioaktivních aerosolů ve vzdušném prostředí. K řízení byl vybrán řídicí systém Amit. Veškerá implementace probíhala v prostředí DetStudio. Prostředí disponuje mnoha programovatelnými jazyky, ale jako vhodný kandidát byl vybrán strukturovaný text. Jedná se o rozsáhlý program s využitím mnoha funkcí, které by i tak musely být naprogramovány v tomto jazyce. Navíc v případě prostředí DetStudio se jedná již o mnohem vyšší jazyk než je u konkurenčních systémů. Nejprve jsem měl z tohoto jazyka menší obavy, ale během chvíle jsem zjistil, že je uživatelsky velmi přívětivý a může v něm dělat i programátor s menšími programátorskými zkušenostmi. V prostředí nabízí i jednoduché nastavení komunikací v případě sériových sběrnic. Pro komunikaci mezi řídicím systémem a moduly byla použita knihovna Modbus RTU. Jedná se o plně dostačující protokol pro odbavení I/O modulů. Modbus RTU lze použít pouze v případě se sběrnicí RS-485. U uživatelského terminálu není třeba žádného protokolu, stačí jen vytvořit speciální proces, který se o vše postará, ale to jen v případe, že se jedná o terminál firmy Amit. Základní funkce byly nejprve vytvořeny jako součást hlavního procesu. Po delším čase jsem se rozhodl jednotlivé pohyby válců vytvořit samostatně a vytvářet tak modulární funkce. Například funkce celý cyklus obsahuje hromadu nejrůznějších pohybů válců, kleští a stolu. Kombinace těchto pohybů se často měnily, a to z důvodu zajištění nejvhodnější kombinace pro hladký průběh celé funkce. Po vytvoření a odzkoušení zadaných funkcí celý cyklus, softwarová inicializací, vyskladnění všech filtrů z oběhu, výměna filtrů v zásobníku naskladnění a reset došly na řadu další funkce, které zadány nebyly, ale jejich existence vyladila a obohatila samotný program. Tyto funkce nelze volat jakýmkoliv způsobem, protože fungují na automatické bázi a samostatně se volají v případě potřeby. Například v každé funkci je třeba před provedením pohybu testovat, jestli pohybu v cestě něco nepřekáží. Toto testování by znamenalo hromadu řádků navíc v každé části programu. Proto vznikla funkce, která se automaticky před zahájením funkce zavolá a zajistí veškeré opatření spojené s pohybem komponent zařízení. Hlavní proces obsluhuje pouze menu, které přechází na jednotlivé funkce podle režimu řízení.
40
Uživatelský terminál má rozdílnou implementaci, než samotné PLC. Pro to, aby mohl být terminál programován a testován ve stejném prostředí, je třeba doinstalovat rozšiřující modul. Pro vytvoření uživatelských přihlašování bylo zvoleno vlastní řešení, i když prostředí má přihlašovací funkci v jisté míře zvládnutou. Největším problémem je, že tyto funkce jsou na pevno implementovány a nelze je nijak měnit. Ve zmíněných funkcích nelze k příkladu měnit počet číslic pinu a jeho zadávání není moc uživatelsky přívětivé, často způsobovalo problémy. Dalším problémem byla změna pinu. Tyto piny jsou pevně dány a lze je měnit pouze v samotném prostředí, a to je velice nekomfortní. Nejideálnějším řešením tedy bylo vytvoření vlastní přihlašovací funkce, která nabízí dva stupně přihlášení. Úroveň technická má pevně daný pin a zná ho pouze technická podpora. Druhá je uživatelská a tato úroveň může svůj pin měnit, ale pouze po splnění určitých podmínek. Mohlo by totiž docházet k problémům, kdy si nějaký uživatel změní pin a ostatním o tom nedá vědět. Každá úroveň má své specifické menu se svými možnostmi. Terminál je odladěn a není možné se přes úrovňové zabezpečení nějak dostat. Osoba, která nezná ani jeden z pinů se nemůže dostat k ovládání zařízení. Jako posledním jsem se zabýval komunikačním procesem. Komunikační proces je určený k tomu, aby stanice dokázala zpracovávat instrukce posílané z pracoviště. Stanice pracuje jako podřazený systém a sama o sobě nemá povoleno provádět jakoukoliv činnost. Instrukce k činnosti posílá nadřazené pracoviště. Komunikační proces obsahuje pravidla pro přijetí instrukce a její samotné vykonání. Tento proces zatím nebyl testován v ostrém běhu, jelikož v té době ještě nebyl k dispozici průmyslový počítač. Proces je otestován pouze za pomocí osobního počítače. V těchto počítačích není velký rozdíl, pouze v tom, že ten průmyslový počítač je odolnější vůči vnějším vlivům v průmyslu. Propojení stanice a pracoviště je přes lan Ethernet. Amit již nabízí protokoly určené ke komunikaci pomocí této linky mezi stanicemi nebo pracovišti. Když se na program zpětně dívám, tak mne napadají další opatření, kterými by mohl program disponovat. Tato opatření nesouvisí nijak se samotnou funkčností, ale pouze k cestě k čistšímu kódu. Při testování funkcí byly zjištěny mechanické nedostatky, které bylo nutné odstranit. Tím se mírně zdržel vývoj programu. Veškeré cíle byly splněny a výsledný program bude nasazen do ostrého provozu na zařízení NuEM CEGAM.
41
Seznam použité literatury [1]
AMiNi4W2/G: Kompaktní řídicí systém s rozhraním Ethernet [online]. 3. vyd. Praha: AMiT, spol. s.r.o., 2015 [cit. 2016-05-17]. Dostupné z: http://www.amit.cz/docs/cz/amini/amini4w2g_g_cz_102.pdf
[2]
APT200: Průmyslový terminál [online]. Praha: AMiT, spol. s.r.o., 2008 [cit. 2016-05-17]. Dostupné z: http://www.amit.cz/docs/cz/terminaly/apt200_g_cz_100.pdf
[3]
BENEŠ, Pavel, Josef JANEČEK aj. Automatizace a automatizační technika: systémové pojetí automatizace. Brno: Computer Press, 2014, 224 s. ISBN 97880-251-3628-7.
[4]
DetStudio: Průvodce první aplikací [online]. 5. vyd. Praha: AMiT, spol. s.r.o., 2011 [cit. 2016-05-17]. Dostupné z: http://www.amit.cz/docs/cz/sw/detstudio_g_cz_104.pdf
[5]
FAQ - Hardware, řídicí systémy: Řídicí systémy obecně. Amit [online]. Praha: Amit [cit. 2016-05-17]. Dostupné z: http://www.amit.cz/cz/faq/faq_hw.htm
[6]
CHLEBNÝ, Jan, Pavel BENEŠ aj. Automatizace a automatizační technika: prostředky automatizační techniky. 5. vyd. Brno: Computer Press, 2014, 304 s. ISBN 978-80-251-3747-5.
[7]
Havarijní odběrové zařízení aerosolů a jódů GES-400 [online]. Černá Hora: VF, a.s., 2014 [cit. 2016-05-22]. Dostupné z:http://www.vf.cz/data/files/b-09a0010cs-141030-ges-400-313-cz.pdf
[8]
KACZMARCZYK, Václav a Jiří PALÁT. Komunikace v síti ARION [online]. 3. vyd. Praha: AMiT, spol. s.r.o., 2009 [cit. 2016-05-17]. Dostupné z: http://www.amit.cz/support/cz/aplikacni_poznamky/ap0005_cz_02.pdf
[9]
OLMR, Vít. Sériová linka RS-232 [online]. [cit. 2016-05-22]. Dostupné z: http://vyvoj.hw.cz/rozhrani/hw-server-predstavuje-seriova-linka-rs-232.html
[10]
RONEŠOVÁ, Andrea. Přehled protokolu MODBUS [online]. 2005 [cit. 201605-17]. Dostupné z: http://home.zcu.cz/~ronesova/bastl/files/modbus.pdf 42
[11]
ŘÍHA, Zbyněk. Zásady používání RS485 [online]. 3. vyd. Praha: AMiT, spol. s.r.o., 2010 [cit. 2016-05-22]. Dostupné z: http://www.amit.cz/support/cz/aplikacni_poznamky/ap0016_cz_02.pdf
[12]
ŘÍHA, Zbyněk. Komunikace v síti DB-Net [online]. 3. vyd. Praha: AMiT, spol. s.r.o., 2011 [cit. 2016-05-17]. Dostupné z: http://www.amit.cz/support/cz/aplikacni_poznamky/ap0009_cz_02.pdf
[13]
ŘÍHA, Zbyněk. Komunikace v síti MODBUS [online]. 6. vyd. Praha: AMiT, spol. s.r.o., 2015 [cit. 2016-05-17]. Dostupné z: http://www.amit.cz/support/cz/aplikacni_poznamky/ap0008_cz_05.pdf
[14]
ZEZULKA, František a Ondřej HYNČICA Průmyslový Ethernet I: Referenční model ISO/OSI [online]. 2007, (1) [cit. 2016-05-17]. ISSN 1210-9592. Dostupné z: http://automa.cz/prumyslovy-ethernet-ii:-referencni-model-iso-osi-34209.html
[15]
ZEZULKA, František a Ondřej HYNČICA. Průmyslový Ethernet IV: Principy průmyslového Ethernetu [online]. 2007, (10) [cit. 2016-05-17]. ISSN 12109592. Dostupné z: http://automa.cz/prumyslovy-ethernet-iv:-principyprumysloveho-ethernetu-34198.html
43
Seznam obrázků Obrázek 2.1 Stanoviště zařízení...................................................................................... 10 Obrázek 2.2 Blokové schéma ......................................................................................... 11 Obrázek 2.3 GES-400 ..................................................................................................... 12 Obrázek. 3.1 Řízení a zpracování pomocí PLC .............................................................. 13 Obrázek 3.2 Ukázka instrukčního listu ........................................................................... 14 Obrázek 3.3 Ukázka strukturovaného textu .................................................................... 15 Obrázek 3.4 Ukázka příčkového diagramu..................................................................... 15 Obrázek 4.1: Použitá komunikace v projektu ................................................................. 16 Obrázek 4.2 Ukázka komunikace po sériové sběrnici .................................................... 17 Obrázek 4.3 Komunikační rámce zprávy ....................................................................... 18 Obrázek 4.4 Využití průmyslového Ethernetu ............................................................... 19 Obrázek 5.1 Kompaktní řídicí systém AMiNi4W2 ........................................................ 20 Obrázek 5.2 Průmyslový terminál .................................................................................. 22 Obrázek 6.1 Programovací prostředí DetStudio ............................................................. 23 Obrázek 7.1 Zpracování požadavku řídicí stanicí .......................................................... 29 Obrázek 7.2 Simulátor obrazovek .................................................................................. 34 Obrázek 7.3 Obrazovka logování ................................................................................... 36 Obrázek 7.4 Inspektor pro ladění programu ................................................................... 39
Seznam tabulek Tabulka 7.1 Stavy stanice a jejich popis ......................................................................... 28 Tabulka 7.2 Volané funkce a jejich popis....................................................................... 29 Tabulka 7.3 Seznam alarmů a popis ............................................................................... 38
44
Seznam zkratek ASCII - American Standard Code for Information Interchange BASIC - Beginner's All-purpose Symbolic Instruction Code Bd – Baud CD - Compact Disk CDE - Data Communication Equipment DTE - Data Terminal Equipment IEC - International Electrotechnical Commission IP - International Protection Marking LAN – Local Area Network LCD - Liquid Crystal Display LSB - Least Significant Bit Mb – Mega bit ms - milisecond MSB - Least Significant Bit NOS - Network Operating System OS - Operating System PC - Personal Computer PLC - Programmable Logic Controller RTU - Remote Terminal Unit
45
Přílohy 1 Obsah přiloženého CD Na CD v kořenovém adresáři se nachází tato bakalářská práce ve formátu BP_Musil_2016. Ve složce Program je vložen celý řídicí program a ve složce Aplikace je instalace vývojového prostředí DetStudio.
46
2 Fotodokumentace zařízení
Zařízení Gas Sampler zepředu
47
Pohled na zásobníky vyskladnění a naskladnění
48
Zásobník naskladnění, otočný stůl a prosávání
Pohled do rozvodné skříně na PLC a moduly
49