Programování PLC

Transkript

Programování PLC
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

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á...

Více

ORL číslo 20132

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.

Více

Zobrazit katalog

Zobrazit katalog před venkovními nečistotami a nadměrným opotřebením.

Více

automatizační systémy i.

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...

Více

Informační technologie

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...

Více

Jak funguje internet - podle Jiriho Peterky

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ř.:

Více

PŘÍRUČKA PROGRAMÁTORA PLC TECOMAT

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...

Více

Stáhnout zde

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.;

Více

příklady PLC

příklady PLC Příklady PLC

Více