Programování PLC
Transkript
Programování PLC Autoři: Ing. Josef Kovář Ing. Zuzana Prokopová Ing. Ladislav Šmejkal, CSc. Partneři projektu: Rostra s.r.o. Trimill, a.s. Výukový materiál byl vytvořen v rámci projektu „Implementace programování PLC automatů dle evropské normy IEC 61 131 do výuky žáků středních škol“, reg. č. CZ.1.07/1.1.08/01.0016. Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. Programování PLC -2- 1 Úvod Nejpoužívanějším automatizačním prostředkem v průmyslu je programovatelný automat (PLC, SPS). V automatizační technice jsou využívány již zhruba 30 let. Jejich typickou vlastností je programovatelnost na úrovni blízké mentalitě konstruktéra nebo projektanta. Původně byly PLC určeny pro řízení strojů, jako náhrada za pevnou reléovou logiku. Tomu odpovídal i programovací jazyk kontaktních (reléových) schémat. Jazyky prvních PLC disponovaly několika příkazy (typicky 8 nebo 16), které byly ekvivalentní spínacímu a rozpínacímu kontaktu, paralelnímu a sériovému řazení, cívce, obvodům paměti, čítače a časovače. Dnes je pro každý programovatelný automat k dispozici několik typů jazyků: kromě jazyka kontaktních schémat to bývá jazyk logických schémat, jazyk mnemokódů nebo jiný textový jazyk, nově i jazyk sekvenčního programování. Dnešní programovací jazyky jsou podstatně bohatší – bohužel se poněkud vzdálily mentalitě konstruktérů a projektantů, takže vznikla samostatná profese „programátor PLC“. Sjednocení programovacích jazyků a vývojových systémů pro PLC je cílem nové mezinárodní normy IEC 61131-3. Programovatelnost a variabilnost výstavby poskytuje PLC jejich pověstnou univerzálnost a přizpůsobivost. Již neplatí, že PLC řešil jen logické úlohy, zatímco ke zpracování analogových veličin se používaly specializované regulátory. PLC dnes zvládne oba typy úloh (a mnoho dalších). Programem PLC lze realizovat vazby a ošetřit logické souvislosti, které jsou při použití specializovaných (uzavřených) a přístrojů nedostupné (za předpokladu, že program PLC je nám „otevřen", nejlépe jsme-li jeho tvůrci). Takto lze například řešit vazby mezi regulací různých veličin (třeba teploty a vlhkosti, teploty a kvality spalování, teploty a dodržení sjednané spotřeby) nebo optimalizovat proces a přizpůsobovat jej měnícím se podmínkám, minimalizovat spotřebu, náklady nebo ztráty. K řešení dodatečných požadavků mnohdy vyhoví nezměněná konfigurace PLC a vícenáklady jsou „jen" v programátorské práci, ve vytvoření a ověření programu (program PLC je sice „software", ale rozhodně není zadarmo). Mnohdy se nové funkce realizují až za provozu, na základě dodatečných požadavků uživatele (někdy až za provozu pozná, co je skutečně třeba, jindy jsou požadavky vynuceny změnou technologie nebo změněnou situací u uživatele). Je obvyklé, že kromě vlastních řídicích funkcí jsou PLC systémům svěřovány funkce analýzy (rozpoznávání chybových a rizikových stavů, analýzy spotřeby energie a surovin, sledování produkce, zmetkovitosti, ztrát a zhoršené kvality, vyhodnocování množství a stavu odpadu, sledování výkonnosti a vytížení personálu), ochran a kontrol (před nebezpečným nebo neoprávněným zásahem obsluhy, před hrozícími ztrátami nebo haváriemi). Z uvedených skutečností vyplývá, že v současné době jsou znalosti programování PLC velkou výhodou pro technika, který pracuje v automatizačním průmyslu. Programování PLC -3- 2 Programování PLC 2.1 Centrální jednotka Poskytuje programovatelnému automatu inteligenci. Realizuje soubor instrukcí a systémových služeb, zajišťuje i základní komunikační funkce s vlastními i vzdálenými moduly, s nadřízeným systémem a s programovacím přístrojem. Paměťový prostor, který poskytuje uživateli je obvykle rozdělen na části. Prvá je určena pro uložení uživatelského program (PLC programu), datových bloků a tabulek. Její obsah se zadává v edičním režimu a během vykonávání programu se obvykle nemění (u "TECOMAT" se může měnit jen obsah tabulek). Druhá část je operační (zápisník). Jsou v ní lokalizovány uživatelské registry, čítače a časovače, obrazy vstupů a výstupů, komunikační, časové a jiné systémové proměnné (systémové registry). Obsah operační části se dynamicky mění působením uživatelského a systémového programu. Centrální jednotky současných programovatelných automatů obsahují mikroprocesor, mikrořadič nebo specializovaný řadič, zaměřený na rychlé provádění instrukcí. Jeho programem (systémovým programem) jsou realizovány všechny funkce, které má uživatel k dispozici, tj. kompletní soubor instrukcí programovatelného automatu, jeho systémové služby, časové a komunikační funkce. Jen výjimečně a za omezujících podmínek zpřístupňují některé PLC uživatelům programování na úrovni instrukcí mikroprocesoru. Typické je použití instrukcí a příkazů jazyka programovatelného automatu, který je přizpůsoben převažujícím úlohám a způsobu myšlení typického uživatele a programátora PLC. 2.2 Soubor instrukcí PLC Protože programovatelné automaty byly původně určeny k realizaci logických úloh a k náhradě pevné logiky, nechybějí v žádném PLC instrukce pro základní logické operace s bitovými operandy. Tj. sejmutí pravdivostní hodnoty adresovaného bitu, operace logického součtu a součinu, negace, výlučného součtu a jiných kombinačních logických funkcí, instrukce pro realizaci paměťových funkcí a klopných obvodů, pro zápis výsledku a mezivýsledku na adresované místo, ale i instrukce čítačů, časovačů, posuvných registrů, krokových řadičů a jiných funkčních bloků. Současné PLC nabízejí instrukční soubor podstatně bohatší. V souboru instrukcí vyspělých PLC obvykle nechybí ani instrukce pro aritmetiku a operace s čísly (někdy jen nejzákladnější, např. sčítání, odčítání a porovnávání, jindy kompletní knihovny pro výpočty s pevnou nebo plovoucí řádovou čárkou), logické instrukce s číselnými operandy (paralelní operace s operandem v délce byte, slova nebo delším) a přenosy dat. Obvyklé jsou instrukce pro organizaci programu (např. skoky v programu, volání podprogramů a návraty). 2.3 Specializované instrukce Některé PLC poskytují i velmi výkonné instrukce pro komplexní operace, např. pro realizaci regulátorů a jejich automatické seřizování, pro fuzzy logiku a fuzzy regulaci, pro operace s daty a s datovými strukturami, pro realizaci ucelených funkčních bloků, pro ukládání dat do zásobníků a záznamníků, pro podporu tvorby kultivovaného operátorského rozhraní a pro podporu komunikací. Tyto specializované instrukce usnadňují programování (nabízejí již hotové ucelené funkce nebo jejich "prefabrikáty"), zvyšují však i výpočetní výkon PLC. Programování PLC 2.4 -4- Systémové služby Jako systémové služby označujeme prostředky, které centrální PLC poskytuje nad rámec instrukčního souboru. Obvykle sem řadíme soubor systémových registrů, které obsluhuje systémový program. 2.5 Výkonnost programovatelného automatu Výkonnost programovatelného automatu se nejčastěji posuzuje podle doby vykonání instrukcí. Obvyklé hodnoty pro výkonné systémy jsou v řádu jednotek mikrosekund na instrukci, výjimečně méně (někdy se uvádějí doby na 1 000 instrukcí). U malých systémů bývají časy řádově jednotky až desítky mikrosekund na instrukci. Zde je třeba uvést, že toto hodnocení je mnohdy zavádějící. Uváděné časové údaje obvykle odpovídají jen nejzákladnějším logickým instrukcím. Doby ostatních instrukcí bývají mnohonásobně delší (často desetkrát i stokrát). Výpočetní výkon PLC zvyšují instrukce, které realizují komplexní funkční bloky (krokové řadiče, aritmetické knihovny pro práci v pevné nebo v pohyblivé řádové čárce, PID regulátor, fuzzy regulátor, generátor funkcí) nebo dovolují efektivní zpracování souborů dat a datových struktur. Významnou pomoc přestavují systémové služby. Odezvu systému na kritické události zkracuje i možnost přerušení a multiprogramování. Výkonnost stejného systému bude záviset na typu převažujících úloh a na prostředcích, které k tomu použijeme, na míře kvalifikovanosti programátora, jak výkonné instrukce a postupy použije a které ze systémových služeb využijeme. Proto se doporučuje výkonnost PLC posuzovat nikoliv podle katalogových údajů, ale podle výsledků řešení reálných příkladů a typových úloh, zpracovaných kvalifikovaným programátorem. 3 Vykonávání programu PLC 3.1 Uživatelský program, cyklická aktivace Program PLC je posloupnost instrukcí a příkazů jazyka. Typickým režimem jeho aktivace je cyklické vykonávání v programové smyčce. Na rozdíl od jiných programovatelných systémů se programátor PLC nemusí starat o to, aby po konci programu vrátil jeho vykonávání opět na začátek - zajistí to již systémový program. Naopak každé dlouhodobé setrvání programu v programové smyčce je "fatální chybou" a systém jej hlásí jako "překročení doby cyklu". Cyklické vykonávání programu je schematicky znázorněno na obr. 1. Vždy po vykonání poslední instrukce uživatelského programu (např. E 0) je předáno řízení systémovému programu, který provede tzv. otočku cyklu. V ní nejprve aktualizuje hodnoty výstupů a vstupů: hodnoty uložené dosud v paměti jako obrazy výstupů (registry Y) přepíše do registrů výstupních periferních modulů a hodnoty ze vstupních modulů okopíruje do paměťových obrazů vstupů (registry X). Dále aktualizuje časové údaje pro časovače a systémové registry, ošetří komunikaci a provede ještě řadu režijních úkonů. Po otočce cyklu je opět předáno řízení prvé instrukci uživatelského programu (např. P 0) Obr. 1.: Cyklické vykonávání programu Programování PLC -5- PLC program je vykonáván v cyklu. Po spuštění programu jsou nejprve provedeny režijní operace systému, aktualizace systémových a časových proměnných, naplánována aktivace procesů pro další cyklus, ... apod. Poté jsou sejmuty aktuální hodnoty fyzických vstupů, které jsou pro celý následující cyklus konzervovány, jako obrazy vstupů X. Následně se vykoná požadovaný program a na závěr jsou na výstupy vyslány aktuálně vyčíslené hodnoty obrazů výstupů Y. Celý cyklus se stále opakuje. 3.2 Obrazy vstupů a výstupů Pro program PLC je typické, že nepracuje s aktuálními hodnotami vstupů a výstupů, ale s jejich "paměťovými konzervami" - s obrazy vstupů a výstupů, uloženými v zápisníkové paměti (registry X a Y). Aktualizace jejich hodnot - předání obrazů výstupů k řízenému objektu a sejmutí aktuálních vstupních hodnot od řízeného objektu se provede pouze ve fázi otočky cyklu. Tím je zajištěna synchronizace vstupních a výstupních dat s během programu a je tak omezena možnost chyb způsobených nevhodným souběhem měnících se hodnot (hazardních stavů). Obdobně jsou po dobu cyklu zmrazeny i časové údaje a hodnoty většiny systémových proměnných (například zpráv předávaných sériovou komunikací). 3.3 Multiprogramování, vícesmyčkový režim Některé systémy dovolují práci v určitém režimu multiprogramování nebo vícesmyčkové aktivace, případně práci v přerušovacím režimu. Na obr. 2 je příklad multiprogramové struktury PLC programu pro TECOMATy. Systém nabízí uživateli určitou "kostru", soubor procesů P0 až P64, pro které jsou dána pevná pravidla aktivace. Proces P0 se aktivuje vždy po otočce cyklu (úvodní proces), P64 naopak vždy před otočkou (závěrečný proces), procesy P1, P2, P3, P4 se v aktivaci cyklicky střídají (čtyřfázové procesy), P5 až P9 se aktivují v časových prioritách (každých 0,4 s; 3,2 s; 25,6 s; 3,4 min a 27,2 min). O aktivaci procesů P10 až P40 (uživatelské procesy) rozhoduje programátor tím, jak nastaví hodnoty aktivačních bitových proměnných v systémových registrech S25 až S29. Procesy P62 a P63 se aktivují jednorázově po zapnutí nebo po restartu systému (inicializace při teplém a studeném restartu). Procesy P41 až P44 jsou aktivovány jako odezva na přerušující událost (interval 10 ms, změna hodnoty na přerušujícím vstupu, při zjištění méně závažné chyby v programu, podle stavu čítače vnějších událostí). Je ponecháno na vůli programátora, jak dalece tuto strukturu aktivace procesů využije. Procesy, které nejsou vytvořeny, nebudou ani aktivovány. Pokud tedy všechny instrukce svého uživatelského programu zapíšeme do procesu P0 mezi instrukce P0 a E0, bude celý program aktivován v jediné nestrukturované programové smyčce. Nejsou-li vážné důvody pro složitější struktury, doporučujeme zůstat u tohoto nejjednoduššího způsobu aktivace. Programování PLC -6- Obr.2: Schéma multiprogramové aktivace procesů Programování PLC -7- 4 Programovací jazyky PLC K programování nabízejí PLC systémy specializované jazyky, původně navržené pro snadnou, názornou a účinnou realizaci logických funkcí. Jazyky systémů různých výrobců jsou podobné, nikoliv však stejné. Přenositelnost programů mezi PLC různých výrobců není možná, daří se to obvykle jen mezi systémy téhož výrobce. Mezinárodní norma IEC 1131-3 však sjednocuje programovací jazyky pro PLC. Kodifikuje čtyři typy jazyků . 4.1 jazyk mnemokódů ("Instructions List", "IL", v německé terminologii "Anweisungslist", "AWL") je obdobou assembleru u počítačů, a je také strojově orientován. To znamená, že každé instrukci PLC systému odpovídá stejně pojmenovaný příkaz jazyka. Jazyky mnemokódů poskytují i obvyklý "assemblerský komfort", tj. aparát symbolického označení návěští pro cíle skoků a volání, symbolická jména pro číselné hodnoty, pro pojmenování vstupních, výstupních a vnitřních proměnných a jiných objektů programu (datových bloků a tabulek, struktur a jejich prvků), pro automatické přidělování paměti pro uživatelské registry a pro jiné datové objekty, pro jejich inicializaci (zadání počátečního obsahu), pro zadávání číselných hodnot v různých číselných soustavách. 4.2 jazyk kontaktních(reléových) schémat, ("Ladder Diagram", "LD", německy "Kontaktplan", "KOP" viz obr. 3.) je grafický. Program se základními logickými operacemi zobrazuje schéma ve formě obvyklé pro kreslení schémat při práci s reléovými a kontaktními prvky. Pouze symboly pro kontakty a cívky jsou zjednodušeny, aby mohly být vytvářeny semigraficky: spínací kontakty jako dvojice svislých čárek, rozpínací kontakt je navíc "přetržen" lomítkem, cívky jsou označovány dvojicí závorek. Funkční bloky (např. čítače, časovače) jsou kresleny jako obdélníkové značky. Obr. 3.: Jazyk Instrukce, které nemají svou analogii v kontaktní symbolice (a těch kontaktních (releových) bývá většina) se obvykle zobrazují jako dvojice závorek nebo schémat obdélníková značka s vepsaným mnemokódem instrukce. Jazyk kontaktních schémat je výhodný při programování nejednodušších logických a v případech, kdy s ním pracuje personál, který nezná (a nechce znát) tradiční počítačové programování. Je nezastupitelný při požadavku rychlého servisu, obzvlášť pokud ladicí prostředky dovolují zvýraznit na schématu "vodivou cestu". Pak je nalezení závady na stroji (třeba vadného spínače) otázkou několika minut. Pokud v programu převažují složitější instrukce (třeba aritmetické instrukce nebo logické s vektorovými operandy, skoky a volání), pak je kontaktní schéma již násilné a postrádá svou názornost. 4.3 jazyk logických schémat Obr. 4.: Jazyk logických schémat (jazyk funkčních bloků, "Function Block Diagram" německy "FUP") - obr. 4 je opět grafický. Základní logické operace popisuje obdélníkovými značkami. Výška značky je přizpůsobena počtu vstupů. Své značky mají i ucelené funkční bloky, např. čítače, časovače, posuvné registry, paměťové členy, ale i aritmetické a paralelní logické instrukce. Vychází vstříc uživatelům zvyklým na kreslení Programování PLC -8- logických schémat pro zařízení s integrovanými obvody. Obdobný, ale obecnější, jazyk se využívá při popisu a programování systémů, zpracovávajících analogové proměnné, při programování regulačních a měřicích úloh . 4.4 jazyk strukturovaného textu je obdobou vyšších programovacích jazyků pro PC (např. Pascal nebo C). Umožňuje úsporný a názorný zápis algoritmů. 4.5 graficképrostředí pro sekvenční programování Nadstavbu nad popsanými jazyky tvoří grafické prostředí pro sekvenční programování – obr.5 (SFC, GRAFCET). Dovoluje stavový popis sekvenčních úloh v symbolice přechodového grafu konečných automatů a určité třídy Petriho sítí. K popisu struktury používá značky stavů, Obr. 5.: Jazyk přechodů a větvení. Chování v jednotlivých stavech nebo sekvenčního definování podmínek přechodů lze obvykle popsat programování prostředky kteréhokoliv z dříve popsaných jazyků nebo dalším vnořeným sekvenčním grafem (podgrafem). Jazyk sekvenčního programování je velmi názorný a podporuje systémový přístup k programování. Programátor má malý prostor k vytváření chaoticky neuspořádaných programů, je nucen zamyslet se nad podstatou problému, má možnost systematicky ji popsat a realizovat. Většina řízených technologií je svou podstatou sekvenční. Poměrně náročným sekvenčním problémem bývá i vyhodnocení posloupnosti tlačítek a zásahů obsluhy. 5 Programovací a vývojové prostředky K zadání a k ladění uživatelského programu slouží programovací přístroje. Tradičně byly řešeny jako specializované přístroje v kufříkovém nebo příručním provedení. V současné době se pro komfortní programování používají výhradně počítače standardu PC (stolní i přenosné) s potřebným programovým vybavením pro vývoj a ladění uživatelských programů (vývojovým systémem). Pouze pro malé systémy nebo pro skromnější podmínky v terénu se nabízejí příruční programovací přístroje ("kalkulačka", "hand held progi-ammer"). Programovací přístroje (vývojové systémy, vývojová prostředí) umožňují zápis programu, jeho opravy, překlad ze zdrojové formy do kódu PLC, jeho přenos do PLC a ladění programu s reálným PLC (on line), včetně monitorování proměnných programu a technologických proměnných, krokování a trasování programu, s možností zobrazovat a měnit stavy aktuálních proměnných. Některé vývojové systémy dovolují i přenos programu z PLC do programovacího přístroje a jeho zpětné přeložení. Bývá nabízena i možnost simulace PLC na počítači a ladění uživatelského programu na něm (ladění v režimu "off line"). Tato možnost je významná pro předběžné odladění programu a odstranění nejzávažnějších chyb bez rizika poškození technologie a s minimem ztrátových časů, dále pak ve fázi, kdy technologie ještě není připravena. Významnou funkcí je i možnost zpracování dokumentace programu, případně celého projektu. Programování PLC -9- Programovací přístroje a vývojové systémy se kromě souboru funkcí liší i svou přívětivostí a logickou uceleností obsluhy, způsobem dialogu, ztrátovými časy a mírou stresů, kterými zatěžují programátora. Významnou vlastností je i přizpůsobení se jazyku uživatele (v našem případě míra ovládnutí češtiny). 6 Struktura paměti a registrů Řídící algoritmus programovatelného automatu (dále PLC - Programmable Logic Controller) je zapsán jako posloupnost instrukcí v paměti uživatelského programu. Centrální jednotka postupně čte z této paměti jednotlivé instrukce, provádí příslušné operace s daty v zápisníkové paměti a zásobníku, případně provádí přechody v posloupnosti instrukcí, je-li instrukce ze skupiny organizačních instrukcí. Jsou-li provedeny všechny instrukce požadovaného algoritmu, provádí centrální jednotka aktualizaci výstupních proměnných do výstupních periferních jednotek a aktualizuje stavy ze vstupních periferních jednotek do zápisníkové paměti. Tento děj se stále opakuje a nazýváme jej cyklem programu (obr.2, obr.6). Jednorázová aktualizace stavů vstupních proměnných během celého cyklu programu odstraňuje možnosti vzniku hazardních stavů při řešeni algoritmu řízení (během výpočtu nemůže dojít ke změně vstupních proměnných). Obr. 6: Cyklické řešení uživatelského programu READ X - přepis hodnot ze vstupních jednotek PLC do oblasti X v zápisníkové paměti WRITE Y - přepis hodnot vypočtených programem z oblasti Y do výstupních Obr. 7: Struktura zápisníkové jednotek PLC paměti režie - příprava centrální jednotky PLC k řešeni dalšího cyklu programu (komunikace po sériové lince probíhají během celého cyklu). 6.1 Struktura zápisníkové paměti Zápisníkem nebo též zápisníkovou pamětí rozumíme úsek paměťového prostoru PLC, který je přístupný jak pro čteni, tak i pro zápis uživatelských dat. Instrukce PLC umožňují přístup na libovolný bit, byte, resp. slovo zápisníku. Tato paměť je předem rozdělena do několika částí s vyhrazeným významem. Schematicky je uspořádání zápisníkové paměti zobrazeno na obr.7. Zápisníková paměť je rozdělena na tyto části: - obrazy vstupních signálů X - obrazy výstupních signálů Y - systémové registry S - uživatelské registry R Programování PLC - 10 - Všeobecně je dodržována zásada, že přístup systémového programu k zápisníkové paměti se uskutečňuje výhradně ve fázi otáčky cyklu uživatelského programu. To se týká nejenom snímání fyzických vstupů do sekce X a nastavování hodnot ze sekce Y na fyzické výstupy, ale i změn hodnot systémových proměnných S. To znamená, že po dobu cyklu uživatelského programu jsou údaje zápisníku zmrazeny a aktualizují se až po nejbližší otočce cyklu. Tím je výrazně omezena možnost výskytu různých hazardních stavů v uživatelském programu v důsledku asynchronnosti okamžiků změn jednotlivých proměnných. V průběhu cyklu se mění pouze ty proměnné, které ovlivňuje uživatelský program (přímý zápis do zápisníku - WRITE, SET, RESET), nebo účinky některých funkcí (např. nastavení příznaků výsledků, aktualizace stavu čítačů, časovačů, posuvných registrů nebo stepperu, apod.). Upozornění: Je třeba si uvědomit, že okamžiky uživatelského přerušení bývají asynchronní vůči klidovému cyklu uživatelského programu a nesystematickým hospodařením nad proměnnými zápisníku si uživatel může vytvořit dostatek svých hazardních stavů. Je tedy třeba věnovat potřebnou péči přiřazení proměnných, vytvoření pravidel pro spolupráci mezi procesy klidového cyklu a mezi přerušujícími procesy. Při výpadku napájecího napětí je část obsahu zápisníku zálohována z náhradního zdroje (tzv. remanentní zóna v uživatelských registrech R). Při opětovném startu mohou být tyto zálohované hodnoty použity i pro další řízení záleží na způsobu rozběhu a na dalších okolnostech (neporušenost zápisníku, nezměněný obsah uživatelské kazety apod.). Při volbě konfigurace si může uživatel zvolit velikost remanentní zóny. 6.2 OBRAZY VSTUPŮ X Před každým začátkem cyklu programu zajišťuje centrální jednotka aktualizaci této oblasti zápisníkové paměti ze vstupních periferních jednotek na základě deklarační tabulky zadané v uživatelském programu, která popisuje přiřazení mezi obrazy vstupů X a fyzickými adresami jednotlivých jednotek. 6.3 OBRAZY VÝSTUPŮ Y Po každém ukončení cyklu programu zajišťuje centrální jednotka přesun výsledků z této oblasti zápisníkové paměti ze vstupních periferních jednotek na základě deklarační tabulky zadané v uživatelském programu, která popisuje přiřazení mezi obrazy vstupů X a fyzickými adresami jednotlivých jednotek. 6.4 SYSTÉMOVÉ REGISTRY S Tato oblast zápisníkové paměti je vyhrazena pro specifické použití systémovým programem automatu a nedoporučuje se ji používat pro jiný účel. Některé bity a slova jsou pravidelně v otočce cyklu nastavovány systémovým programem a jsou vhodné pouze pro čtení. Některé bity naopak modifikují svým nastavením chování systémového programu. Například TECOMAT nastavuje po některých instrukcích příznaky v registrech SO a S1, v S2 jsou signalizovány stavy systému, v S3 je uložena doba trvání minulého cyklu a v S4 pořadové číslo cyklu. V registrech S5 až Sl2 je předáván systémový čas a datum (soubor údajů v "lidských"jednotkách: 0,01 s, 1 s, 1 min, 1 hod, den v týdnu a den v měsíci, měsíc, rok). Programování PLC - 11 - Jednotlivé bity v registru S13 jsou souborem periodických signálů, využitelných jako časové jednotky (s periodou 100 ms, 500 ms, 1 s, 10 s, 1 min, 10 min, 1 hod, 1 den a se souměrnou střídou 1 : 1), v S20 a S2l jsou uloženy impulsy od náběžných a sestupných hran těchto proměnných. V registrovém páru S 14, 15 (slově SW 14) je nepřerušovaně aktivován systémový časovač s jednotkou 100 ms, a analogicky ve slovech SWl6 a SWl8 pracují časovače s jednotkami 1s a 10s. Další ze systémových registrů slouží pro ovládání komunikací, pro aktivaci uživatelských procesů, pro zobrazení kódu chyby a pro další údaje. Mezi systémové služby počítáme i systémovou podporu komunikací, obsluhu inteligentních modulů (systémových i periferních) realizaci a obsloužení čítačů a časovačů, multiprogramování a přerušení programu. 6.5 UŽIVATELSKÉ REGISTRY R Paměťová oblast určená pro proměnné uživatelského programu, pro realizaci čítačů, časovačů, posuvných registrů, stepperů a dynamických tabulek. V zapínací sekvenci systémového programu po studeném restartu jsou všechny registry R vynulovány. Po teplém restartu je uchována remanentní část registrů R, ostatní jsou vynulovány. Je ponecháno zcela na uživateli, jak využije registry R, které využije pro své pracovní proměnné nebo tabulky a které vyhradí pro realizaci funkčních bloků. Systém neurčuje, kolik smí být použito čítačů, kolik časovačů apod. Jediným omezením je celkový počet registrů. O tom, zda objekt bude remanentní nebo neremanentní, rozhoduje též uživatel tím, do které oblasti objekt zařadí. Pokud uživatelský program používá časově omezené objekty, které se v čase vylučují, pak mohou být realizovány se stejnými registry R. Slovo vyhrazené čítači nebo posuvnému registru může být obsluhováno různými instrukcemi čítání a posuvů, aniž by došlo ke zhroucení (neplatí to pro časovače). Slovo R přiřazené některému objektu je volně přístupné pro ostatní instrukce, takže např. hodnotu čítače nebo časovače lze porovnávat s několika údaji, případně ji měnit. 6.6 PŘÍMÉ VSTUPY A VÝSTUPY U Adresový prostor označený operandem U (unit - jednotka) není součástí zápisníkové paměti, ale je to přímý adresový prostor periferních jednotek. Operand U tak poskytuje alternativu k zónám X a Y v zápisníku, která umožňuje přímý styk s periferními jednotkami v daném okamžiku bez čekání na otočku cyklu. Operand U umožňuje pouze bytový a slovní přístup pomocí instrukcí LOAD a WRITE. Jeho využití je vhodné pro zabezpečení časově kritických reakcí. Nadbytečné využívání má však za následek zpomalení výkonu programu, protože přímý přístup k periferním jednotkám je časově náročnější než operace se zápisníkovou pamětí. Důležitá upozornění: Přímým zápisem/čtením do/z periferní jednotky nedojde k odpovídající změně hodnoty v obraze této jednotky v zápisníku v zóně Y/X! V případě přímého čtení dojde k opravě hodnoty v obraze během otočky cyklu a obvykle to není na závadu (je však třeba s tím počítat). V případě přímého zápisu je však nutné opravu v zápisníku zabezpečit uživatelským programem, jinak dojde v otočce cyklu k zápisu původní hodnoty ze zápisníku do jednotky. Programování PLC - 12 - Pokud je nutné přímý zápis do jednotky používat, je lepší vypnout obsluhu výstupů jednotky v softwarové konfiguraci při překladu uživatelského programu v překladači (položka aktivace vstupů a výstupů) a obsluhovat výstupy výhradně přímými zápisy s operandem U. Je třeba si uvědomit, že práce s přímými vstupy a výstupy porušuje zásadu neměnnosti vstupních a výstupních údajů během cyklu a zvyšuje riziko hazardů. Použití operandů U by mělo být omezeno na případy, kdy je třeba zajistit okamžitou odezvu, např. při ošetření havarijních situací, v procesech obsluhy přerušení apod. 7 DATA V UŽIVATELSKÉM PROGRAMU 7.1 DATA D Data D mají význam konstant uživatelského programu. Jsou součástí uživatelského programu a jsou pro něj dostupná pouze pro čtení. Mohou se zadávat a měnit pouze v edičních režimech. Výhodně mohou být použity jako parametry, které modifikují uživatelský program. Pro určitou třídu řídících algoritmů může být například vytvořen a odladěn jediný uživatelský program, který je před konkrétním použitím přizpůsoben skutečným podmínkám zadáním odpovídajících parametrů v zóně D. Obdobně lze uživatelský program přizpůsobovat měnícím se požadavkům zadavatele, změnám technologie, měnícímu se sortimentu výrobků apod. Použiti dat D je výhodné i v případě, kdy různá místa programu používají stejnou číselnou logickou konstantu. Pokud ji pokaždé zadáme Jako bezprostřední operand, pak při potřebě její změny musíme vyhledat a opravit všechna místa v programu, kde se vyskytuje. Výhodnější je zadat tuto hodnotu jednou v datech D. Při jakékoliv změně stačí změnit pouze tuto jednu hodnotu a není třeba zasahovat do programu. V datech D mohou být uloženy i souvislé posloupnosti hodnot; například tabulky nebo vzory pro nastavení zápisníku a výstupů v klíčových situacích. 7.2 TABULKY T Tabulky T jsou stejně jako data D součástí uživatelského programu a i jejich použití může být obdobné. Na rozdíl od dat D, která jsou dostupná většinou instrukcí pro čtení, jsou tabulky T dostupné pouze zvláštními instrukcemi, které se odvolávají na adresový prostor T (tabulkové instrukce, instrukce blokových přenosů). Data D mohou být nestrukturovaná nebo mohou mít libovolně složitou strukturu, lze přímo přečíst jejich libovolné místo. Naproti tomu mají tabulky T vždy předepsanou strukturu - je to vždy řada hodnot stejného formátu (bit, byte nebo slovo) s přídavným údajem o délce této řady. Každé položce (hodnotě z této řady) je přiřazeno pořadové číslo - index. Nejnižší položka má nulový index, index poslední položky nazýváme mezi (počet položek = mez + 1). Tabulky T tedy mohou být definovány bud' jako bitové, bytové nebo slovní (obr.7). S každou je uložena i její mez (jednotně měřená v počtu bytů). Bitové tabulky jsou z toho důvodu vždy doplněny nulami na celý byte. Tabulky se s výhodou dají používat pro kódování a dekódování. Programování PLC - 13 - 8 ZÁSOBNÍK VÝSLEDKŮ Při vykonávání uživatelského programu pracuje PLC se zásobníkem, který má 8 úrovní v šíři slova označených AO až A7 (akumulátor A, střádač výsledků). Jeho struktura je znázorněna na obr.9. Aktivní úroveň AO označovaná také jako vrchol zásobníku je využitá v naprosté většině instrukcí. Obr. 9.: Schématické znázornění struktury zásobníku Se zásobníkem pracují nejenom bitové operace, ale i bytové a slovní logické operace, aritmetické operace, přenosové operace, předávají se v něm logické a číselné parametry složitějších instrukcí a podprogramů. Zásobník je cyklický a můžeme si jej představit jako bubnovou paměť podle obr.8. Těchto zásobníků máme k dispozici celkem 8. Aktivní je vždy jeden a můžeme mezi nimi přepínat. Tím jsou otevřeny velké možnosti v oblasti přenosu parametrů mezi funkcemi v uživatelském programu bez nutnosti časově náročného meziukládání parametrů do zápisníku. 8.1 STRUKTURA ZÁSOBNÍKU Vrchol A0 je aktivní vrstvou, která má význam střadače (akumulátoru A). Vrstvy A1, A2 až A7 obsahují postupně sled předchozích hodnot vrcholu zásobníku. Posun zásobníku vpřed způsobují instrukce typu LOAD a některé složitější instrukce. Při každém posunu zásobníku vpřed o jednu úroveň jsou hodnoty všech jeho úrovní A0 až A6 přesunuty do úrovní s čísly o jedničku vyššími a vrchol zásobníku A0 je obsazen nově ukládanou hodnotou dle schématického postupu: A0 < - nová data A1 < - původní obsah A0 A2 < - původní obsah A1 …….. A7<- původní obsah A6 Obr. 10.: Představa zásobníku jako Původní obsah A7 se nenávratně ztrácí (je přepsán novým bubnové paměti obsahem A0). Posun zásobníku vzad provádí instrukce typu POP a bezoperandové instrukce aritmetických a logických operací. Zpětný posun probíhá dle schématického postupu: Po instrukci POP: AO < - původní obsah A1 Programování PLC - 14 - A1 < - původní obsah A2 A2 < - původní obsah A3 ………… A7< - původní obsah A0 Po bezoperandové instrukci A0 < - výsledek operace mezi A0 a A1 A1 < - původní obsah A2 A2 < - původní obsah A3 ………. A7 < - původní obsah A0 Každá úroveň zásobníku má šíři 16 bitů (1 slovo nebo 2 byty). Při operaci se zásobníkem je účelné jednotlivé části symbolicky označit (obr.7). Dolní byte označujeme písmenem L (low) A0L, A1L, ... A7L Horní byte označujeme písmenem H (high) – A0H, A1H, ... A7H. Celé slovo pak můžeme označit jako dvojici: AO = (A0H, A0L) A1 = (A1H, A1L) …… A7 .=. (A7H, A7L) Podobně jako u zápisníku budeme jednotlivé bity úrovně číslovat za tečkou dle schématu např. pro A0: Pokud instrukce načítá bitový operand, pak hodnota bitové proměnné (0 nebo 1 ) je na všech šestnácti bitech vrcholu A0 (A0 = 0 nebo A0 = 65 535). Pokud je načítán bytový operand, pak hodnota tohoto bytu je uložena na dolní části vrcholu A0L, horní část je vynulována A0H = 0. Pokud je načítán slovní operand, pák je tímto slovem zaplněn právě celý vrchol A0. Naopak pokud ukládáme data v šíři slova, pak je na cílovou adresu uložen celý obsah vrcholu A0. Při ukládání dat v šíři byte je uložen pouze dolní byte vrcholu A0L. Horní byte A0H je ignorován. Pokud ukládáme data v šíři bitu, pak v případě nulové hodnoty A0 ukládáme nulovou hodnotu bitu, v případě nenulové hodnoty A0 ukládáme jedničku. Ukládáme tedy podélný logický součet (OR) všech šestnácti bitů vrcholu A0. Pokud uživatel určitou posloupnost bitových instrukcí provede s bytovým operandem, pak se předepsané operace provedou naráz se všemi stejnolehlými bity, takže počet vykonaných operací se zosminásobí (např. osmice členů AND, OR, XOR, osmice klopných obvodů R-S, D, impulsních obvodů apod.). Kombinování bitových, bytových a slovních operací navzájem, jejich kombinováním s podmíněnými instrukcemi a kombinováním aritmetických operací s logickými, získává uživatel velmi bohatý a výkonný aparát. Programování PLC 8.2 - 15 - PŘEPÍNÁNÍ ZÁSOBNÍKŮ K dispozici máme 8 zásobníků značených A, B, C, D, E, F, G, H, z nichž každý má takovou strukturu, jak byla popsaná pro zásobník A. Aktivní je vždy jeden zásobník, ostatní jsou uchovány v tom stavu, v jakém se nacházely při jejich opuštění uživatelským programem, a nemá na ně vliv žádný stav uživatelského programu. Například při otevření nového uživatelského procesu je nulován pouze aktivní zásobník. Po zapnutí nebo restartu PLC jsou všechny zásobníky vynulovány a aktivní je vždy zásobník A. Po otočce cyklu je vždy vynulován zásobník A a je nastaven jako aktivní. Kdykoliv můžeme zásobníky přepnout, tzn. že dosud aktivní zásobník bude uživatelským programem opuštěn a nadále bude program pracovat s nově zvoleným zásobníkem. Přitom se zálohuje i stav příznakových registrů S0 a S1. 9 Návrh programu a jeho realizace Pokud modernizujeme starší stroj nebo jiné zařízení tak, že vysloužilou reléovou logiku nahrazujeme novým programovatelným automatem, pak kontaktní nebo logické schéma stávajícího zařízení můžeme považovat za bezprostřední zadání, které s využitím standardních grafických jazyků pro PLC můžeme „opsat". Tento START postup je rychlý a poměrně spolehlivý. Jeho nevýhodou je, že modernizovanému stroji, který jsme vybavili špičkovým řídicím systémem ponecháváme nakonzervovány jeho původní vlastnosti, ano Č1>Č2 nic nového mu nepřidáme, případně okopírujeme i staré chyby a slabá místa. ne Relé, stykače a tlačítka jsou v některých případech nenahraditelné a nemá smysl se bránit jejich použití i v případech, kdy je k řízení použit PLC. Z bezpečnostních důvodů se takto realizují záložní bezpečnostní okruhy, např. obvod CENTRAL STOP. Je proto výhodnější provést novou analýzu - na starý stroj se podívat z pohledu současných požadavků a nových možností nabízených programovatelným automatem. Takto vytvořené zadání bude obecnější a modernizovaný stroj přiblíží současné technické úrovni. Lze například doporučit modernizaci pohonů stroje s využitím frekvenčních měničů (již jejich ovládání si vyžádá změnu v programu PLC). Významnou modernizací může být kvalitnější operátorské rozhraní a bezpečnější obsluha s využitím dialogu vedeného prostřednictví moderního operátorského panelu. Neměli bychom zapomínat na řešení diagnostiky a monitorování procesů, které se již stává standardním požadavkem pro moderní řízení strojů a technologií. Č1 zaměň s Č2 Č1>Č3 ano ne Č1 zaměň s Č3 Č2>Č3 ano ne Č2 zaměň s Č3 KONEC Obr. 10: Seřazení tří čísel dle velikosti Programování PLC - 16 - Zanedbatelná není ani skutečnost, že tradiční kontaktní schéma, plné samodržných kontaktů a zpožďovacích relé, není tím nejnázornějším a nejpřehlednějším podkladem pro bezchybné pochopení funkcí a souvislostí. Daleko názornější a systematičtější bývá stavový nebo tabulkový popis, popřípadě vývojový diagram, který je současně podkladem pro nejvýhodnější realizaci PLC programu. 9.1 Jak se stát programátorem Je málo účinné učit se programovat pouhým čtením učebnic nebo příruček. Účinnější je aktivní studium, kdy výklad občas přerušíme a sledujeme postup řešeni příkladu a pochopení látky si ověřujeme na řešení zadaných úloh. Mohou to být úlohy téměř triviální, např. ovládání dveří v dopravních prostředcích, chytré a úsporné způsoby ovládání svítidel na schodištích a chodbách, ovládání ventilace a splachování. Užitečné je už jen zamyslet se nad přesnou slovní formulací požadavků na řízení. Dobrým tréninkem tvořivého myšlení může být „jen" popis činností a postupů člověka při obvyklém ručním řízení strojů a výrobních procesů nebo při jejich diagnostice (zjištění závad a rozpoznání jejich pravděpodobných příčin), upozornění na hrozící havárií nebo mimořádné stavy. Pokusme se automatizovat různé činnosti člověka (operátora), které jsou dosud považované za „neautomatizovatelné" a které již vyžadují značnou dávku umělé inteligence, např. při manévru rozjíždění či zastavení automobilu, parkování, odbočování nebo předjíždění. Není důležité hned všechny problémy vyřešit, důležité je umět je vidět, popsat, formulovat zadání a hledat možná řešení. Nelitujme úsilí, vynaloženého na řešení „nesmyslných problémů", na „návraty ze slepých uliček", ani na „opětovně objevovanou Ameriku". Cokoliv samostatně vyřešíme, to nás obohatí, rozšíří naši „znalostní databázi" nebo upřesní údaje naši „mapy chápání světa". Při řešení skutečných problémů pak obvykle tvořivým způsobem sestavujeme výsledné řešení z dílčích „polotovarů ze skladu", který jsme zaplnili dřívějšími aktivitami - svými pokusy, omyly a úspěchy skládáme kaménky do mozaiky. Je prokázáno, že lidská tvořivost je aktivita, kterou lze úspěšně trénovat a která bez trvalého posilování slábne. Obvykle si neuvědomujeme, že tvořivost vyžaduje značnou dávku odvahy. Někdy už jen k tomu, abychom se nenechali odradit možným neúspěchem, výsměchem nebo poznámkami typu: „to snad nemyslíte vážně", „tak se to přece nedělá", „tak jsem vás to neučil", „nikdo to tak nedělá", „v učebnicích se o tom nepíše". K prosazení nadprůměrného a originálního řešení je nutné překonat odpor zastánců průměrnosti a navíc i svou nejistotu a obavy - není jisté, že naše řešení bude úspěšnější, než průměrné. Originálním nápadem vybočujeme z řady, stáváme se nekonformními, jinými než ostatní, do určité míry osamělými. Asi nejtěžší je překonat vnitřní bariéru autocenzury, která ničí naše nápady hned při jejich vzniku jedovatými slůvky „to je hloupost!", „to není možné!", v lepším případě jen pochybností, je to možné, když je to jiné?". Ještě zhoubnější účinky má dopředná autocenzura, která nám slůvky „to přece nejde", „to je nemožné", „to nedokážu" brání, abychom se daným problémem vůbec zabývali. Je snadné doporučit, abychom si stále opakovali formulku „nic není nemožné" nebo poněkud kacířsky znějící „překonej strach a staneš se bohem", těžší je přijmout ji a uvést v život. Schůdnější asi je postup po menších krůčcích - postupné získávat sebedůvěru úspěšným řešením stále složitějších problémů, rozšiřovat své znalosti a dovednosti, rozvíjet svou Programování PLC - 17 - tvořivost, překonávat psychické a společenské bariéry a využívat mechanizmus autosugesce v krocích: „chtěl bych - mohu - chci - stávám se -jsem". Nejlépe se učíme programovat vlastní tvořivou prací, samostatným řešením problémů. Řešené příklady různé složitosti a z různých aplikačních oborů jsou umístěny na internetové stránce vydavatele BEN na adrese http://shop.ben.cz/ 121127 nebo na stránce www.tecomat.cz. Jsou zde umístěny i zdrojové texty příkladů z učebnice, zadání úloh a jejich řešení. Příklady jsou postupně doplňovány. Jeden slogan praví: “Nikdy neříkej, že to nelze udělat. Pokaždé se najde nějaký blbec, který to neví a udělá to“. Počítač je však „dokonalý“ sluha – příkazy je třeba zadávat obezřetně, protože je plní doslovně. V uvedeném příkazu by mohl nastat problém například v případě, že sluha noviny nenalezne. Co pak má sluha dělat? Při vytváření příkazů pro počítač je nutné přesně promyslet situace, které mohou nastat, a pokusit se je co nejpřesněji formulovat. Počítač dělá přesně to, co je mu řečeno, a proto je třeba dobře promyslet, jaké příkazy mu zadáme. Algoritmus si lze představit jako sekvenci jednoduchých kroků, kdy v každém kroku víme, který krok bude následovat (nebo algoritmus již končí). Navíc je po konečném počtu kroků (a tedy do určité doby) získán výsledek. Počítačový program je pak zápis algoritmu takovým způsobem, kterému rozumí počítač. Počítač poté vykonává příkazy, přičemž součástí těchto příkazů může být spouštění různých částí programu v závislosti na chování uživatele. START Načti X1 X2.0=0 ne ano O 4 místa vpravo Obr. 11: Schéma multiplexeru 9.2 Vývojový diagram Před začátkem programování je vhodné nejprve přesně popsat nejen co řešíme, ale také jak to řešit. Velmi Vezmi dolní 4 bity KONEC Obr. 12: Vývojový diagram k zadání 2 Programování PLC - 18 - srozumitelnou možností jak popsat, co bude počítač provádět, představuje vývojový diagram. Vývojový diagram je grafickým vyjádřením algoritmu. Jedná se o posloupnost geometrických obrazců, které jsou propojeny spojnicemi. Zadání 1: Seřaďte tří čísla dle velikosti od největšího po nejmenší. Vývojový diagram je uvedený na obrázku 10. Zadání 2: Na vstupy X1.0 až X1.7 přicházejí informace z technologického procesu. Pro vyhodnocování potřebujeme vždy jen první nebo druhou čtveřici bitů. Čtveřice se vybírá bitem X2.0. Realizujte multiplexer dle schématu na obr. 12. 9.3 Návrh algoritmu pomocí automatu Mooreova typu Start=1 Start=0 vpravo=0 0 1 doprava = 0 doleva = 0 sání = 0 vlevo=1 doprava = 1 doleva = 0 sání = 1 doprava = 0 doleva = 1 sání = 0 2 Předpokládejme jednoduchý manipulační mechanizmus s pohybem v jednom směru a s pneumatickou savkou. V ustáleném stavu setrvává v levé poloze. Po odstartování se přisaje výrobek a přemístí do pravé krajní polohy, kde jej uvolní a vrací se do levé klidové polohy a čeká na opětovné odstartování. Přechodový diagram je na obrázku 13. vpravo=1 Navržený algoritmus je velmi zjednodušený a nevystihuje celý děj. Např. po odstartování se výrobek musí nejdříve přisát a pak teprve začne přemísťování. Typickou vlastností stavových konečných automatů je existence zpětné vazby. V automatu Mooreova typu Obr. 13 Algoritmus pro manipulátor (používají se i jiné typy – např. Mealyho automat) jsou výstupy vyčíslovány jen z hodnot stavu. Má stacionární charakter – dokud nedojde k přechodu (změně stavu), jeho výstupy se nemění. To odpovídá požadavkům na řízení obvyklých mechanizmů a technologických procesů. (cvičení AUTc - návrh programu pro řízení linky) vlevo=0 10 Celkové řešení zadaného problému 10.1 Popis problému Jak již bylo popsáno výše, při popisu problému je třeba dbát na jeho úplnost a vyčerpávající způsob vysvětlení všech možných stavů, které lze od děje nebo zařízení očekávat. Pokud to nedodržíme, následné změny prakticky vždy způsobí nutnost zcela nového návrhu. Programování PLC - 19 - Na obr. 14 je znázorněno schéma zdvihacího zařízení, jímž se má zvedat nebo spouštět břemeno. Pohyb břemena zavěšeného na laně zajišťuje pohonný mechanizmus, sestávající z kladky a motoru. Protože břemeno je velké hmotnosti, je třeba před úplným zastavením zabránit rozkmitání celé soustavy pomalým dojezdem. Stykač KM 1, slouží pro sepnutí motoru pro směr nahoru, KM2 dolů. Stykačem KM3 se zapne pomalý dojezd v obou směrech. Pro hlídání koncových poloh slouží koncové snímače SQ1 pro polohu nahoře, SQ4 pro polohu dole, pro indikaci poloh pro zahájení pomalého dojezdu jsou instalovány snímače SQ2 pro směr nahoru, SQ3 pro směr dolů. Celé zdvíhací zařízení se ovládá dvěma tlačítky, která jsou umístěna společně s dvěma kontrolkami na ovládací skříňce. Po stisknutí tlačítka SB1 se břemeno začne zdvíhat (pohybovat nahoru včetně pomalého dojezdu), po dobu zdvihání svítí Obr. 15 Vývojový diagram vzorového projektu Obr. 14 Schéma zdvihacího zařízení Obr. 16 Vývojový diagram programové části kontrolka HL1. Po stisku tlačítka SB2 se břemeno začne spouštět (pohybovat směrem dolů včetně pomalého dojezdu), po dobu pohybu svítí kontrolka HL2. Při chybě nebo nebezpečí se celé zařízení uvede do klidu vypnutím napájecího napětí (tzv. nouzové zastavení). Programování PLC - 20 - Naším úkolem nyní bude navrhnout ŘS (příp. i jeho konkrétní konfiguraci), který bude schopen zabezpečit požadovanou činnost a naprogramovat jej. Pro tvorbu programového vybavení je třeba přesně definovat též požadované chování systému, které lze zapsat buď slovně nebo lépe v grafické podobě, např. formou vývojového diagramu. Je třeba též mít na paměti skutečnost, že návrh obvodového řešení řídicího systému a tvorbu programového vybavení nemusí vždy provádět jedna a táž osoba. Popis zkoumaného zařízení musí tedy být srozumitelný a úplný, aby každý z týmu, který řeší zadanou úlohu, mohl bez problémů spolupracovat. Na obr. 15 je uvedený vývojový diagram popisující činnost vzorového projektu jednoduchého zdvíhacího zařízení. Z tohoto diagramu budeme vycházet při tvorbě programového vybavení řídicího systému. Vývojový diagram dílčí části hlavního programu (tzv. rutiny) pro obsluhu dojezdu na horní krajní snímač SQ1 vč. pomalého dojíždění při přejezdu přes snímač SQ2 je uvedený na obr. 16. Obdobně bude řešena rutina pro stejnou činnost při dojezdu na spodní krajní snímač SQ4 a zpomalení při přejezdu snímače SQ3. 10.2 Návrh konfigurace řidícího systému Návrh konfigurace ŘS je v tomto případě poměrně jednoduchý. Z popisu problému lze odvodit potřebný počet vstupů a výstupů ŘS. Navíc je zřejmé, že typ výstupů bude záležet především na typu cívek stykačů. Lze předpokládat, že typ bude dodatečně zvolen, takže v tomto případě lze zvolit reléové výstupy. Moderní uzavřená relé vykazují vysokou životnost. Daleko převyšující životnost ostatních mechanických prvků celého zařízení. Uvádí se, že zaručovaná životnost těchto relé bývá lepší než 106 sepnutí (záleží na velikosti spínaného proudu, při větším proudu zaručovaná životnost klesá!). Při četnosti sepnutí 1 x za minutu při jednosměnném provozu jde o zaručovanou dobu životnosti minimálně 5 let. Pokud by to řešení problému vyžadovalo, bylo by nutno též posoudit rychlost procesoru (dobu cyklu), množství přerušovacích vstupů, množství a rychlost čítačových vstupů, dále pak v případě měření a regulace spojitých procesů množství, rychlost a přesnost analogových vstupů, resp. analogových výstupů. Pro náš příklad zvolme např. řídicí systém Foxtrot od firmy TECO s 16 vstupy a 8 reléovými výstupy. Jde o systém s možností příp. dalšího rozšiřování, komunikace s ovládacím terminálem (např. typu ID 08) a dostatečně dimenzovanou velikostí paměti pro program. Obr. 17.: Zjednodušené schéma zapojení obvodů řídicího systému vzorového projektu 10.3 Příklad realizace Programování PLC - 21 - Na obr. 16 je nakresleno zjednodušené schéma zapojení obvodů ŘS pro navrhovanou aplikaci. Bezkontaktní indukční snímače SQ1 až SQ4 jsou polarity NPN. Paralelně s cívkami stykačů budou zapojeny ochranné odrušovací prvky (diody při stejnosměrném napájení, varistory při střídavém napájení). 10.4 Návrh systému metodou algebraických grafů Jinou možností jak navrhnout algoritmus řízení je použití metody algebraických grafů. Z předchozího SQ1=1 or SB1=0 or KM2 =1 or Fl_1=1 SB1=1 and KM2=0 and SQ1=0 and Fl_1=0 SQ2=0 SQ4=1 or SB2=0 or KM1 =1 or Fl_1=1 SB2=1 and KM1=0 and SQ4=0 and Fl_1=0 KM1:=1 HL1:=1 0 SQ3=0 KM2:=1 HL2:=1 1 RAF 3 0 1 RAF 2 HL2:=0 KM3:=0 KM2:=0 pomSQ3:=0 KM3:=1 HL1:=0 KM3:=0 KM1:=0 SQ2=1 SQ1=1 KM3:=1 pomSQ3:=1 SQ3=1 SQ4=1 2 2 SQ1=1 SQ4=1 Obr. 18.: Jízda nahoru Obr. 19.: Jízda dolů (Fl_0=0) (Fl_0=1) or (SB2=0) and (SB2=1) SQ3=0 and pomSQ3=0 JE RESTART KM2:=1 HL2:=1 Fl_0:=0 0 ? 1 ano Fl_0:=1 Fl_1:=1 pomSQ3:=1 ne RAF 1 ne HL2:=0 KM3:=0 KM2:=0 Fl1_:=0 JE STOP KM3:=1 pomSQ3:=0 ? pomSQ3=1 or SQ3 = 1 SQ4=1 2 ano KM1,KM2,KM3:=0 RAF1,RAF2,RAF3:=0 Fl_0:=1, Fl_1:=1 SQ4=1 Obr. 20: Restart nebo Stop Obr. 21.: Počáteční sekvence Programování PLC - 22 - návrhu nevyplývá, jak je programově zabezpečeno nouzové vypnutí. Následující algoritmus (Obr. 18 – Obr. 20) snad pamatuje na všechny podmínky zadání. Pro jízdu nahoru a dolů jsou navrženy samostatné grafy. Další graf popisuje stav po RESTARTU nebo po nouzovém výpadku (Obr. 20). Z navržených algoritmů je zřejmé, jak může jeden program ovlivňovat běh jiného. Je-li např. Fl_1 = 1, nespustí se program pro jízdu nahoru, ani dolů (obr. 18, obr. 19). Naopak program pro restart a STOP se spouští jen je-li FL_0 = 1. PROGRAM prg10_4 VAR_INPUT END_VAR VAR Fl_0 : BOOL := 1; Fl_1 : BOOL := 1; pomSQ3 : BOOL := 1; Stop : BOOL; SQ1 : BOOL; SQ2 : BOOL; SQ3 : BOOL; SQ4 : BOOL; SB1 : BOOL; SB2 : BOOL; HL1 : BOOL; HL2 : BOOL; KM1 : BOOL; KM2 : BOOL; KM3 : BOOL; RAF1 : int := 0; RAF2 : int := 3; RAF3 : int := 6; END_VAR VAR_OUTPUT END_VAR VAR_TEMP END_VAR IF (Stop = true) THEN KM1 := 0; KM2 := 0; KM3 := 0; HL1 := 0; HL2 := 0; RAF1 := 0; RAF2 := 3; RAF3 := 6; FL_0 := 1; FL_1 := 1; END_IF; CASE RAF1 OF 0 : IF ((Fl_0 = true)and (SB2 = true)) //je restart nebo stop, THEN KM2 := true; //pak sepni HL2 := true; Fl_0 := 0; RAF1 := 1; END_IF; 1 : IF ((SQ3 = true)or(pomSQ3 = true)) THEN KM3 := true; Programování PLC - 23 - pomSQ3 := 0; RAF1 := 2; END_IF; 2 : IF (SQ4 = true) THEN KM2 := 0; HL2 := 0; KM3 := 0; Fl_1 := 0; RAF1 := 0; END_IF; END_CASE; CASE RAF2 OF 3 : IF ((Fl_1 = false)and (SB2 = true)and (KM1 = false)and (SQ4 = false)) THEN KM2 := true; HL2 := true; RAF2 := 4; END_IF; 4 : IF (SQ3 = true) THEN KM3 := true; pomSQ3 := 1; RAF2 := 5; END_IF; 5 : IF (SQ4 = true) THEN KM2 := 0; HL2 := 0; KM3 := 0; RAF2 := 3; END_IF; END_CASE; CASE RAF3 OF 6 : IF ((Fl_0 = false)and (SB1 = true)and (KM2 = false)and (SQ1 = false)) THEN KM1 := true; HL1 := true; RAF3 := 7; END_IF; 7 : IF (SQ2 = true) THEN KM3 := true; RAF3 := 8; END_IF; 8 : IF (SQ1 = true) THEN KM1 := 0; HL1 := 0; KM3 := 0; Programování PLC - 24 - RAF3 := 6; END_IF; END_CASE; END_PROGRAM 11 PŘÍRUSTKOVÉ SNÍMAČE A NÁVRH JEJICH ALGORITMIZACE Pro měření polohy nebo úhlového natočení se nejčastěji používají přírůstkové snímače. Vyrábějí se v nepřehledném sortimentu typů a provedení, lineární nebo rotační, využívají různé principy a způsoby vyhodnocení, ale výsledný signál mívá ustálený tvar - dvojici binárních fázově posunutých signálů. Při pohybu s konstantní rychlostí jsou to periodické obdélníkové signály, symetrické, fázově posunuté zhruba o čtvrtinu periody. Vyhodnocením posloupností jejich fází a úrovní lze rozlišit směr pohybu a navíc zjemnit informaci o poloze - pro každou periodu lze získat čtyři impulzy s informací o přírůstku. Pro většinu případů je ale frekvence výstupů natolik vysoká, že vyhodnocení nelze řešit programem PLC. Řeší se ve specializovaných modulech PLC, specializovaných vstupních obvodech Obr. 22 Principy snímače polohy rychlých a čítacích vstupů nebo vnitřním systémovým programem na úrovni systémového mikroprocesoru (firmware). Někdy je zpracování řešeno již v samotných snímačích a polohový údaj je pak do PLC předáván sériovou komunikací. Ve všech těchto případech program PLC využívá již kompletní informaci o poloze. Přesto se lze s úlohou rozlišení směru a přírůstků polohy z posloupnosti dvoufázových průběhů setkat i na úrovni programu PLC. V některých případech stačí podstatně hrubší rozlišení, než nabízejí snímače polohy. K získání informace mohou být využity různé clonky, vrtulky, zuby pastorku nebo hřebínku nebo otvory (obr. 9). Získáme tak dvoufázové průběhy, odlišné pro oba směry pohybu (obr. 10). Je vidět, že se liší jen negací jednoho z průběhů. Pro každý směr lze rozlišit čtyři impulzy během periody, z nichž každý nese informaci o jednotkové změně polohy nebo úhlu. Jejich čítáním Obr.10 Dvoufázové průběhy pro přírustkové měření polohy je získán výsledný údaj o poloze nebo natočení. Z rozdílu (diference) polohy nebo úhlu za určitý časový interval lze spočítat rychlost nebo úhlovou rychlost pohybu, druhé diference pak zrychlení. Pro pohyb v kladném směru (+) lze impulzy ve významu přírůstků (p) definovat výrazem: p := (NOT b AND náběh_a) OR (a AND náběh_b) OR (b AND spád_a) OR (NOT a AND spád_b) Programování PLC - 25 - a pro opačný směr m := (b AND náběh_a) OR (a AND spád_b) OR (NOT b AND spád_a) OR (NOT a AND náběh_b) Všimněme si, že se oba výrazy liší jen negací jedné z proměnných a vyhodnocením náběžné a sestupné hrany. Záměnou b za NOT b nebo a za NOT a získáme z výrazu pro impulzy p výraz pro impulzy m a naopak. Program můžeme napsat pomocí jazyka LD: Programování PLC - 26 - 12 Použitá literatura : 1. PLC a automatizace, 1. základní pojmy, úvod do programování; Ladislav Šmejkal, Marie Martinásková; BEN – technická literatura, Praha 2007 2. PLC a automatizace 2, sekvenční logické systémy a základy fuzzy logiky; Ladislav Šmejkal; BEN – technická literatura; Praha 2005 3. http://www.tecomat.cz/ 4. Mobilní roboty; Petr Novák; BEN - technická literatura; Praha 2005 13 Obsah 1 Úvod .......................................................................................................................................... 2 2 Programování PLC ...................................................................................................................... 3 3 4 2.1 Centrální jednotka .............................................................................................................. 3 2.2 Soubor instrukcí PLC ........................................................................................................... 3 2.3 Specializované instrukce ..................................................................................................... 3 2.4 Systémové služby................................................................................................................ 4 2.5 Výkonnost programovatelného automatu........................................................................... 4 Vykonávání programu PLC .......................................................................................................... 4 3.1 Uživatelský program, cyklická aktivace ................................................................................ 4 3.2 Obrazy vstupů a výstupů ..................................................................................................... 5 3.3 Multiprogramování, vícesmyčkový režim ............................................................................ 5 Programovací jazyky PLC ............................................................................................................ 7 4.1 jazyk mnemokódů............................................................................................................... 7 4.2 jazyk kontaktních(reléových) schémat,................................................................................ 7 4.3 jazyk logických schémat ...................................................................................................... 7 4.4 jazyk strukturovaného textu ............................................................................................... 8 4.5 graficképrostředí pro sekvenční programování ................................................................... 8 5 Programovací a vývojové prostředky .......................................................................................... 8 6 Struktura paměti a registrů......................................................................................................... 9 7 6.1 Struktura zápisníkové paměti .............................................................................................. 9 6.2 OBRAZY VSTUPŮ X ............................................................................................................ 10 6.3 OBRAZY VÝSTUPŮ Y .......................................................................................................... 10 6.4 SYSTÉMOVÉ REGISTRY S .................................................................................................... 10 6.5 UŽIVATELSKÉ REGISTRY R .................................................................................................. 11 6.6 PŘÍMÉ VSTUPY A VÝSTUPY U ............................................................................................. 11 DATA V UŽIVATELSKÉM PROGRAMU ........................................................................................ 12 7.1 DATA D ............................................................................................................................. 12 7.2 TABULKY T ........................................................................................................................ 12 8 ZÁSOBNÍK VÝSLEDKŮ ................................................................................................................ 13 8.1 STRUKTURA ZÁSOBNÍKU ................................................................................................... 13 8.2 PŘEPÍNÁNÍ ZÁSOBNÍKŮ ..................................................................................................... 15 9 Návrh programu a jeho realizace .............................................................................................. 15 9.1 Jak se stát programátorem................................................................................................ 16 9.2 Vývojový diagram ............................................................................................................. 17 9.3 Návrh algoritmu pomocí automatu Mooreova typu .......................................................... 18 10 Celkové řešení zadaného problému ...................................................................................... 18 10.1 Popis problému................................................................................................................. 18 10.2 Návrh konfigurace řidícího systému .................................................................................. 20 10.3 Příklad realizace ................................................................................................................ 20 10.4 Návrh systému metodou algebraických grafů.................................................................... 21 11 PŘÍRUSTKOVÉ SNÍMAČE A NÁVRH JEJICH ALGORITMIZACE ................................................... 24 12 Použitá literatura : ................................................................................................................ 26
Podobné dokumenty
Hacking, cracking a warez
Později bylo nutné přijmout některá další pravidla doplňující původních šest bodů:
7. Nikdy nepoškodit systém
8. Nevlamovat se do státních počítačů
Dále si vysvětlíme proč.
Druhá skupina, která stá...
ORL číslo 20132
Motto: Mnohé morální škody, které napáchal předlistopadový režim,
ten polistopadový režim ještě zvýraznil a rozvinul.
automatizační systémy i.
takových složitých systémů se stávalo s jejich rostoucí složitostí často velkým problémem.
Ve druhé světové válce se zvýšily požadavky na zbrojní výrobu a tím se zvýšily požadavky
na automatizaci v...
Informační technologie
Síťová vrstva
• Vrstva č. 3, anglicky network layer. Tato vrstva se stará o směrování v síti a síťové adresování.
Poskytuje spojení mezi systémy, které spolu přímo nesousedí. Obsahuje funkce, kter...
Jak funguje internet - podle Jiriho Peterky
• rodina protokolů TCP/IP
obsahuje protokoly které
pokrývají:
– přenos dat (protokoly IP, TCP,
UDP)
– manipulaci s adresami
– fungování služeb (aplikací), např.:
PŘÍRUČKA PROGRAMÁTORA PLC TECOMAT
Princip vykonávání uživatelského programu
Řídící algoritmus programovatelného automatu je zapsán jako posloupnost instrukcí
v paměti uživatelského programu. Centrální jednotka postupně čte z této p...
Stáhnout zde
Příklady č. 45 – 47 jsou převzaty z knihy Řízení a regulace pro strojírenství a mechatroniku, autoři
Dietmar Schmid a kol., nakladatelství Europa – Sobotáles cz. S. r. o.;