VŠB-TU OSTRAVA
PLC I Programovatelné logické automaty I
Ing. Ivo Špička, Ph.D Ing. Ondřej Zimný, Ph.D
Ostrava 2017
POKYNY KE STUDIU
Programovatelné logické automaty I
Pro předmět Programovatelné logické automaty I. jste obdrželi studijní balík obsahující
integrované skriptum pro kombinované studium obsahující i pokyny ke studiu.
1. Prerekvizity
Pro studium tohoto předmětu se předpokládá absolvování předmětu Počítačová technika II.
2. Cílem předmětu a výstupy z učení
Student porozumí struktuře a parametrům programovatelných logických automatů (PLC),
jejich konfiguracím a programování.
Po prostudování předmětu by měl student být schopen:
výstupy znalostí:
Student bude ovládat různé způsoby programování PLC.
Bude znát hardwarové a softwarové řešení předních výrobců PLC.
Hlavní důraz je kladen zejména na dovednosti v aplikování programovatelných automatů pro
řešení standardní technické úkoly.
Student zvládne základní úroveň programování.
Pro koho je předmět určen
Předmět je zařazen do bakalářského studia na FMMI, ale může jej studovat i zájemce
z kteréhokoliv jiného oboru, pokud splňuje požadované prerekvizity.
Studijní opora se dělí na části, kapitoly, které odpovídají logickému dělení studované látky,
ale nejsou stejně obsáhlé. Předpokládaná doba ke studiu kapitoly se může výrazně lišit, proto
jsou velké kapitoly děleny dále na číslované podkapitoly a těm odpovídá níže popsaná
struktura.
Při studiu každé kapitoly doporučujeme následující postup:
Čas ke studiu: xx hodin
Na úvod kapitoly je uveden čas potřebný k prostudování látky. Čas je orientační a může
vám sloužit jako hrubé vodítko pro rozvržení studia celého předmětu či kapitoly. Někomu se
čas může zdát příliš dlouhý, někomu naopak. Jsou studenti, kteří se s touto problematikou
ještě nikdy nesetkali a naopak takoví, kteří již v tomto oboru mají bohaté zkušenosti.
Cíl: Po prostudování tohoto odstavce budete umět
popsat ...
definovat ...
vyřešit ...
Ihned potom jsou uvedeny cíle, kterých máte dosáhnout po prostudování této kapitoly –
konkrétní dovednosti, znalosti.
Výklad
Následuje vlastní výklad studované látky, zavedení nových pojmů, jejich vysvětlení, vše
doprovázeno obrázky, tabulkami, řešenými příklady, odkazy na animace.
Shrnutí pojmů
Na závěr kapitoly jsou zopakovány hlavní pojmy, které si v ní máte osvojit. Pokud
některému z nich ještě nerozumíte, vraťte se k nim ještě jednou.
Otázky
Pro ověření, že jste dobře a úplně látku kapitoly zvládli, máte k dispozici několik
teoretických otázek.
Úlohy k řešení
Protože většina teoretických pojmů tohoto předmětu má bezprostřední význam a využití
v databázové praxi, jsou Vám nakonec předkládány i praktické úlohy k řešení. V nich je
hlavní význam předmětu a schopnost aplikovat čerstvě nabyté znalosti při řešení reálných
situací hlavním cílem předmětu.
Způsob komunikace s vyučujícími:
Student má možnost se obrátit na přednášejícího i cvičícího i mimo výuku a komunikovat s
nimi elektronickou poštou. Kontakty na pedagogy jsou dostupné na internetových
stránkách školy.
1. Struktura a pracovní parametry programovatelných automatů (PLC).
Čas ke studiu: xx hodin
Cíl Po prostudování tohoto odstavce budete umět
Definovat, popsat: Výhody a nevýhody PLC, Technické řešení (HW) programovatelných
automatů (PLC)
Výklad
Vzhledem k tomu, že PLC nahradily nejen řídicí počítače a minipočítače, ale i průmyslové regulátory,
bezkontaktní logikou a reléovou logikou, je zřejmé, že jedním z kategorických požadavků průmyslu
(projektantů, elektroinženýrů a středních odborných pracovníků) byl především jednoduchý
programovací jazyk, který by byl velmi podobný jazyku logických schémat, booleovským rovnicím,
reléovým schématům, assembleru. Díky těmto jednoduchým programovacím "jazykům" bylo poměrně
jednoduché klasickou techniku logického řízení nahradit programově orientovanými a nesrovnatelně
flexibilnějšími řídicími systémy - programovatelnými automaty. Programovatelný automat umožňuje
naprogramovat logické rovnice, zatímco předcházející bezkontaktní nebo reléová logika (nebo v
současnosti programovatelná logická pole) realizují logické rovnice fyzickým propojením logických
členů. Jakákoli změna logické struktury se snadno provede změnou programu programovatelného
automatu, což je snáze proveditelné, než přepojení reléového nebo logického zapojení. Odhlédneme-li
od počáteční nespolehlivosti prvních programovatelných automatů (způsobené především
nespolehlivostí elektronických součástek), náhrada relé a bezkontaktní logiky programovatelnými
automaty byla jednoduchá a úspěšná.
V případě náhrady řídicího počítače programovatelným automatem, nebyla situace pro novou
technologii zdaleka tak příznivá. Pokročilejší programovatelné automaty sice vykazovaly již
dostatečnou spolehlivost a rovněž organizace projekčních prací a jejich realizace byly výrazným
zjednodušení oproti centralizovanému návrhu, sériovém ladění jednotlivých úloh a uvádění složitého
systému do chodu, na druhé straně programátorský komfort minipočítačů se programovým prostředím
PLC nahradil v plné míře až s příchodem SCADA systémů.
Výhody a nevýhody programovatelných automatů:
Výhody :
• rychlé přeprogramování úlohy
• málo náhradních dílů
• možnost tvorby velké hierarchické struktury dle potřeby
• flexibilita (naprojektování na míru)
• modularita (možnost rozšíření)
• hospodárnost (levné velmi malé a malé kompaktní automaty)
• vestavěná diagnostika vlastního PLC
• možnost tvorby vnější diagnostiky
• jednoduché programování
• možnost použití vyšších programovacích jazyků u nových automatů
• jednoduchý a spolehlivý OS reálného času
• velká nabídka kvalitních přístrojů různých výrobců.
Nevýhody:
• nižší programátorský komfort než u minipočítačů
• vyšší cena než IPC ekvivalentního výkonu při nižším programátorském komfortu PLC
• menší flexibilita ve srovnání s IPC
• užití nedostatečně standardizovaných sériových komunikačních sběrnic pro propojení
automatů do sítí
• nezbytnost hierarchické architektury při propojování do větších celků
1.1. Technické řešení (HW) programovatelných automatů (PLC)
V době svého vzniku (konec 60. let) si programovatelné automaty měly efektivně nahradit reléovou a
bezkontaktní logiku. Proto jejich architektura vycházela z toho, že budou zpracovávat binární
informaci. Jako HW jádro používaly bitové procesory. V době velmi pomalých procesorů s 8 nebo 16
bitovým slovem (v průběhu 70. let) se jevily bitové procesory jako velmi rychlé, kvaziparalelní řešení
ve srovnání s 8 a 16bitovými procesory. Proto se na architekturu PLC kladly následující nároky:
• bitově orientovaná CPU
• bitově orientovaná paměť dat
• slovně orientovaná paměť programu
• rozhraní na programovací přístroj
• jednoduchý instrukční soubor na zpracování logických rovnic
• systém speciálních funkcí (časovače, čítače a další)
Takto zkonstruovaný PLC se do dnešní doby nezachoval. Rychlost a příznivá cena výkonných
mikroprocesorů umožňuje použití slovně orientovaných mikroprocesorů i u velmi malých PLC. Přesto
se blokové schéma velmi malých, kompaktních PLC liší od architektury středních a velkých automatů,
jak je patrné z Obr. 1 a Obr. 2.
Obr. 1: Blokové schéma velmi malého PLC
Řízení logické úrovně je nemyslitelné bez toho, aby byly k disposici v základním vybavení každého
PLC časové funkce (časovače) a funkce čítání impulsů (čítače). Proto každý PLC má tyto dvě funkce
v základním programovém vybavení.
Obr. 2: Blokové schéma standardního modulárního PLC
Je patrné, že blokové schéma standardního modulárního PLC je velmi podobné na architekturu
mikropočítače. Základ tvoří vnitřní 16 nebo 32 bitová sběrnice, kolem které je modulárně vytvořen
celý PLC.
Zatímco u prvních PLC s bitově orientovanou CPU byla paměť programu oddělena od paměti
dat a pro data se používala i jiná (bitová) organizace paměti, dnešní PLC mají jednu operační paměť,
ve které jsou vyhrazeny prostory pro vstupní data, výstupní data, vnitřní proměnné a paměťový prostor
na vlastní program. Kromě toho jsou v paměti uloženy i funkční bloky a funkce jak systémové, tak
vytvořené uživatelem.
Způsob práce, který od počátku charakterizuje PLC a odlišuje je od řídicích mikropočítačů , tj.
cyklický způsob vykonávání programu zůstal základním režimem prakticky všech PLC. Tento
základní režim práce PLC je ukázán na Obr. 3.
Obr. 3: Časový diagram základní funkce PLC
Otázky k probranému učivu
Popište a vysvětlete: Výhody a nevýhody PLC
Popište a vysvětlete: Technické řešení (HW) programovatelných automatů (PLC)
Použitá literatura, kterou lze čerpat k dalšímu studiu
2. Základní programovací techniky pro tvorbu algoritmu PLC
Čas ke studiu: xx hodin
Cíl Po prostudování tohoto odstavce budete umět
Definovat, popsat: Funkce, Funkční bloky, Propojení prvků ve schématu FBD,
Schématická značka bloku, Příkaz Jump, Příkaz RETURN a vyhodnocování FBD,
Textová reprezentace funkcí, Grafická reprezentace funkcí, Řízení spouštění funkcí,
Deklarace funkčních bloků, Bistabilní funkční bloky, Funkční bloky pro detekci hran,
Čítačové funkční bloky, Časovací funkční bloky (časovače), Programování v prostředí
SFC, LD - Ladder Diagram (liniové nebo reléové schéma), FBD - Function Block
Diagram (Schéma funkčních bloků), ST - Structured Text (Strukturovaný text), CFC -
Continuous Function Chart (Volně propojované bloky), SFC - Sequential Function Chart
(Vývojový
Výklad
Funkce, funkční bloky a programy jsou v rámci normy IEC 61 131 nazývány společně programové
organizační jednotky (Program Organization Units, někdy se pro tento pojem používá zkratka POUs).
Funkce
IEC 61 131-3 definuje standardní funkce a uživatelem definované funkce. Standardní funkce jsou
např. ADD pro sčítání, ABS pro absolutní hodnotu, SQRT pro odmocninu, SIN pro sinus a COS pro
cosinus. Jakmile jsou jednou definovány nové uživatelské funkce, mohou být používány opakovaně.
2.1. Funkční bloky
Na Funkční bloky se lze dívat jako na integrované obvody, které reprezentují hardwarové řešení
specializované řídicí funkce. Obsahují algoritmy i data, takže mohu zachovávat informaci o minulosti
a tím se liší od funkcí. Mají jasně definované rozhraní a skryté vnitřní proměnné, podobně jako
integrovaný obvod nebo černá skříňka. Umožňují tím jednoznačně oddělit různé úrovně programátorů
nebo obslužného personálu. Klasickými příklady funkčního bloku jsou např. regulační smyčka pro
teplotu nebo PID regulátor.
Pokud jednou definujeme funkční blok, může být používán opakovaně v daném programu, nebo v
jiném programu, nebo i v jiném projektu. Je tedy univerzální a mnohonásobně použitelný. Funkční
bloky mohou být zapsány v libovolném z jazyků definovaném v normě. Mohou být tedy plně
definovány uživatelem.
Odvozené funkční bloky jsou založeny na standardních funkčních blocích, ale v rámci pravidel normy
je možno vytvářet i zcela nové zákaznické funkční bloky. Interface funkcí a funkčních bloků je popsán
stejným způsobem: Mezi deklarací označující název bloku a deklarací pro konec bloku je uveden
soupis deklarací vstupních proměnných, výstupních proměnných a vlastní kód v tzv. těle bloku. Podle
potřeby jsou doplňovány speciální bloky a každá firma nabízí ve svém programovacím prostředí
poněkud odlišný soubor bloků (např. spínací hodiny týdenní, roční, generátory impulzů, komparátory
apod.).
Standardní funkční bloky jsou funkce běžně vestavěné do PLC
Mohou být přetížené (overloaded) a mohou mít proměnný počet vstupů a výstupů standardní funkce
lze rozdělit do následujících skupin:
• Bistabilní funkční bloky
• Bloky pro detekci hran
• Čítačové funkční bloky (čítače)
• Časovací funkční bloky (časovače)
Programy
Na základě výše uvedených definic lze říci, že program je vlastně sítí funkcí a funkčních bloků.
Program může být zapsán v libovolném z jazyků definovaných v normě.
Diagramy funkčních bloků (FBDs) jsou další součástí standardu IEC 61131-3. Primární
koncept FBD je datový tok. V těchto typech programů jsou hodnoty průtoku od vstupů do výstupů
uvedeny prostřednictvím funkčních bloků.
Propojení prvků ve schématu FBD
Jednotlivé prvky schémat jsou propojeny lomenými čarami s následujícími vlastnostmi:
• Čáry znázorňují tok signálu ve schématu
• Výstupy bloků se nemohou přímo spojovat („zkratovat“)
• Pro spojování výstupů je nutné používat explicitní blok OR
Obr. explicitní blok OR
Bloky se spojují do schémat složených z elementárních bloků (funkcí nebo funkčních bloků)
Obr. 2. schéma bloků
Vstupní proměnné programu ve FBD
• Musí být připojeny ke vstupům bloků
• Typ každé proměnné musí být odpovídat typu připojeného vstupu
• Vstupem FBD může být konstantní výraz, vnitřní, vstupní nebo výstupní proměnná
Jednotlivá propojovací čára může být použita k propojení:
• Vstupní proměnné a vstupu bloku
• Výstupu bloku a vstup jiného bloku
• Výstupu bloku a výstupní proměnné
Propojení má následující vlastnosti:
• Je orientované, ve směru zleva doprava
• Levé a pravé zakončení propojovací čáry je stejného typu
• Lze použít několik pravých zakončení, která značí, že informace z levého zakončení je
přenášena na několik dalších zakončení (všechny musí být stejného typu)
Schématická značka bloku
Funkce bloku & je vyznačena uvnitř obdélníkového symbolu bloku
Obr. 3. Schématická značka bloku
Propojovací čára může být zakončena symbolem negace malé kolečko na pravém konci propojovací
čáry, viz příklad:
Obr. 4. Negace
Příkaz Jump
Pro řízení pořadí zpracování sítě FBD lze dále používat návěští skok na něj pomocí příkazu JUMP. Při
splnění Booleovské podmínky (TRUE) se vykonávání programu přenese za symbol návěští, viz
příklad.
Obr. 5. příkaz JUMP
Příkaz RETURN a vyhodnocování FBD
Příkaz RETURN umožňuje podmíněně ukončit vyhodnocování dané POU
Nabude-li připojená Booleovská hodnota TRUE, ukončí se daný program a zbývající část se
nevykoná.
Obr. 6 příkaz RETURN
Pořadí vyhodnocování sítě FBD se řídí následujícím pravidlem:
1. Vyhodnocení sítě je ukončeno před započetím vyhodnocování jiné sítě, využívající jeden nebo
několik výstupů předchozí vyhodnocované sítě.
2. Pořadí vyhodnocování dané sítě je implementačně závislé (!!!), obvykle shora dolů a zleva
doprava.
Zpětnovazební spojení bloků ve FBD:
• Ve schématu existuje zpětná vazba (zpětnovazební cesta, feedback path), pokud je výstup
nějaké funkce nebo funkčního bloku použit jako vstup funkce nebo funkčního bloku, který jej
předchází (je dříve vyhodnocován)
• Explicitní zpětná vazba – propojení výstupu daného bloku se vstupem dříve vyhodnocovaného
bloku (obr. a)
• Implicitní zpětná vazba – případ, kdy je výstup přiřazen do proměnné, použité pro vstup dříve
vyhodnocovaného bloku (obr. b, c)
• V případě explicitní zpětné vazby (obr. a)) není jednoznačně určeno pořadí, jak ji vykonávat
(zda jako případ b nebo c)
Obr. 7. Zpětnovazební spojení bloků ve FBD
Textová reprezentace funkcí
V textových jazycích lze předávat vstupní hodnoty dvěma způsoby:
Pomocí formálního seznamu parametrů (*)
Vstupním proměnným se přiřazují hodnoty, u kterých nezáleží na pořadí vstupních proměnných.
Libovolný počet použitých vstupních proměnných, které nemají uvedené parametry, mají implicitní
hodnoty A := LIMIT (EN:=COND, IN:=B, MX:=5, ENO=>TEMPL);
Pomocí neformálního seznamu parametrů
Vstupním proměnným se hodnoty nepřiřazují, mají dané pevné pořadí vstupů a pevný počet vstupních
proměnných A := LIMIT(1, B, 5); (* stejné jako LIMIT(EN:=TRUE, MN:=1, IN:=B, MX:=5); *)
Přiřazení výstupních hodnot buď není použito, nebo se přiřazuje do proměnných pomocí operátoru =>
Pro přiřazení do VAR_IN_OUT hodnot je třeba používat proměnných. Přiřazení do argumentů
VAR_INPUT je buď prázdné (viz (*)) nebo se přiřazuje konstanta, proměnná nebo návratová hodnota
funkce
Grafická reprezentace funkcí
Funkce mohou být graficky reprezentovány obdélníkem (nebo čtvercem), kde velikost může záviset
na počtu vstupů/výstupů a dalších informací a zpracování probíhá zleva (vstupy) doprava (výstupy).
Název nebo symbol funkce je uvnitř bloku kde na levé vnitřní straně symbolu bloku mohou, ale
nemusí být jména parametrů funkce (obrázek. Alb); nejsou-li uvedena u standardních funkcí, jsou
jména parametrů IN1, IN2, … (v případě jediného parametru je jméno IN). Argumenty a výsledek se
připojují pomocí propojovacích čar (flow lines). V místě připojení vstupu/výstupu může být malé
kolečko znamenající negaci příslušného vstupu/výstupu (obrázek. c) Lze požívat pro přídavný vstup
EN a/nebo výstup ENO. Je-li některý z nich použit, je vždy uveden jako první vstup/výstup shora
(obrázek. d)
Obr. 8. grafická reprezentace funkcí
Řízení spouštění funkcí
Pro řízení spouštění funkcí se používají přídavné Booleovské signály – vstup EN a výstup ENO
(mohou být použity oba).
Obě proměnné jsou implicitně deklarovány jako:
• VAR_INPUT EN: BOOL := 1; END_VAR , VAR_OUTPUT ENO: BOOL; END_VAR
Spouštění funkce se při použití těchto proměnných řídí pravidly:
Pro EN=FALSE (0) při vyvolání funkce se neprovedou operace uvnitř těla a PLC shodí výstup ENO
na FALSE. Jinak PLC nastaví ENO na TRUE (1) a vykonají se operace uvnitř těla funkce, kde se
může rovněž nastavovat hodnota ENO. Vyskytne-li se chyba při provádění těla standardní funkce, je
výstup ENOshozen na FALSE. V případě uživatelských funkcí musí být hodnota ENOexplicitně
přiřazena programátorem a je-li hodnota ENO=FALSE je nastavení výstupů funkce (VAR_OUTPUT,
VAR_IN_OUT a výsledku) závislé na implementaci
Reprezentace funkčních bloků
FB můžeme reprezentovat graficky i textově, ale ne všechny kombinace čtení a zápisu nejsou
přípustné.
Není dovoleno:
• Číst vstupy funkčního bloku mimo funkční blok
• Zapisovat do vstupů funkčního bloku zevnitř bloku
• Zapisovat do výstupu funkčního bloku vně funkčního bloku
• Případný vstup EN a výstup ENO se zpracovává stejně jako u funkcí
Obr. 9. grafická a textová reprezentace
Deklarace funkčních bloků
Funční bloky se deklarují obdobně jako funkce textově nebo graficky s následujícími rozdíly. Klíčová
slova pro deklaraci FB jsou FUNCTION_BLOCK …END_FUNCTION_BLOCK. Pro interní a
výstupní proměnné bloku lze používat kvalifikátor RETAIN. Kde hodnoty proměnných přenášené do
funkčního bloku pomocí konstrukce VAR_EXTERNAL mohou být v bloku modifikovány a hodnoty
výstupů jiných funkčních bloků přenášené do funkčního bloku pomocí konstrukce VAR_INPUT,
VAR_IN_OUT nebo VAR_EXTERNAL mohou být v bloku použity, ale nesmí být modifikovány. V
textových jazycích lze používat kvalifikátory R_EDGE a F_EDGE pro detekci náběžné a sestupné
hrany vstupního signálu.
Bistabilní funkční bloky
Grafická reprezentace Tělo funkčního bloku
SR klopný obvod, dominantní je SET (vstup S1)
Obr. 11. grafická reprezentace Obr. 1. tělo funkčního bloku
RS klopný obvod, dominantní je RESET (vstup R1)
Obr. 13. grafická reprezentace Obr. 2. tělo funkčního bloku
Funkční bloky pro detekci hran:
Grafická reprezentace Definice
R_TRIG – detekce náběžné hrany (rising edge)
Obr. 3. grafická reprezentace Obr. 4. definice
F_TRIG – detekce sestupné hrany (falling edge)
Obr. 17. grafická reprezentace Obr. 5. definice
Čítačové funkční bloky:
CTU – čítač směrem vzhůru (Up-counter)
Obr. 18. CTU
Dále existují obdobné bloky
CTU_DINT, CTU_LINT, CTU_UDINT a CTU_ULINT, CTD_DINT, CTD_LINT, CTD_UDINT a
CTD_ULINT, pro příslušný typ vstupu PV a výstupu CV.
CTD – čítač směrem dolů (Down-counter)
Obr. 19. CTD
CTUD – obousměrný čítač (Up-down counter)
Obr. 6. CTDU
ELSIF LD THEN CV := PV;
ELSE
Dále existují obdobné bloky CTUD_DINT, CTUD_LINT a CTD_ULINT pro příslušnýtyp vstupu PV
a výstupu CV
Časovací funkční bloky (časovače)
• Vstupy a výstupy mají následující význam
o IN – příznak pro spuštění časovače
o PT – přednastavená doba časování
o Q – příznak vypršení přednastavené hodnoty
o ET – průběžná doba běhu (po ukončení
o časování nabývá hodnotu PT)
*** je jménem bloku:
• TP (Pulse) – příchodem náběžné hrany vstupu IN se nahodí výstup Q po dobu PT. Přijde-li
další náběžná hrana během časování, je ignorována
• TON (On-delay) – výstup Q zpožďuje náběžnou hranu vstupu IN je zpožděna o čas PT.
Sestupná hrana pulsu je zachována. Pokud puls vstupu IN trvá kratší dobu než PT, je ingorován
• TOF (Off-delay) – výstup Q je nahozen s náběžnou hranou vstupu IN, sestupná hrana je
zpožděna o čas PT. Pokud mezi sestupnou hranou IN a následující náběžnou hranou je kratší čas než
PT, je tato sestupná hrana ignorována
Obrázek 21 časovací funkční blok
Úlohy (tasks):
Úloha (task) je definována jako prováděcí řídicí prvek schopný volat množinu POUs
Volání může být periodické nebo jednorázově aktivované náběžnou hranou specifikované Booleovské
proměnné.Množina POUs zahrnuje programy a funkční bloky specifikované v deklaraci programů
Task (grafická podoba může být spouštěna) periodicky s periodou danou nenulovou hodnotou
přivedenou na vstup INTERVAL. Neperiodicky náběžnou hranou signálu přivedeného na vstup
SINGLE. V obou případech má prioritu danou vstupem PRIORITY (0 je nejvyšší priorita)
Obr. 22. Úlohy (task)
Rozvrhování úloh (Task scheduling)
Priorita POU (tj. priorita tasku, který ji obsahuje) může být použita pro rozvrhování úloh.
Nepreemptivní rozvrhování. V okamžiku dostupnosti CPU je spuštěna POU s nejvyšší prioritou. Je-li
takových POU několik, je spuštěna ta, která čeká nejdéle. Preemptivní rozvrhování. V okamžiku
přidělení času dané POU, může být přerušeno vykonávání jiné POU s nižší prioritou. Toto přerušení
může trvat dokud není dokončeno zpracování POU s vyšší prioritou. POU by nemělo přerušovat POU
se stejnou prioritou. V závislosti na prioritách nemusí být daná POU spuštěna okamžitě po
naplánování. Výrobce by měl poskytnout informace, které umožní uživateli zjistit, zda budou
dodrženy všechny mezní časy (deadlines) v dané konfiguraci. Program, který není zařazen do žádné
úlohy má nejnižší systémovou prioritu. Po svém ukončení je spuštěn znovu.
2.2. Programování v prostředí SFC
Programování jednotlivých projektů je možné v jakémkoliv jazyku. Pro standardizaci programovacích
procesů byla vytvořena norma IEC 61131-3, která v sobě sdružuje 6 postupů programování. Záleží na
programátorovi, který postup zvolí pro tu určitou aplikaci.
• IL - Instruction List (posloupnost instrukcí)
• LD - Ladder Diagram (kontaktní plán / liniové či reléové schéma)
• FBD - Function Block Diagram (schéma funkčních bloků)
• ST - Structured Text (vyšší programovací jazyk - obdoba Pascalu)
• CFC - Continuous Function Chart (volně propojované bloky)
• SFC - Sequential Function Chart (vývojové schéma)
Nejdříve si přiblížíme všechny druhy postupů a poté se blíže budeme věnovat SFC.
IL - „Instruction List“
…je nejzákladnější možný popis programu a více méně se podobá programování mikrokontrolérů v
asembleru. Program se zde skládá z posloupnosti jednoduchých operací tvořených základními
instrukcemi (např. MOV, LD, ADD, JMP aj.) a operandy reprezentujícími jednotlivé registry a
paměťová místa.
Příklad programu:
LDC keKabineStop
AND keKabineA
LD X4.6
LET impPosKab
OR
AND X6.5
ANC odKabinyA
ANC konecKabina
WR keKabineA
Výhody:
+ Přesná definice chování programu
+ Paměťově i na rychlost zpracování úsporný program
Nevýhody:
- Nutnost znát nebo se alespoň dobře orientovat v příkazech a registrech
- Mnoho psaní
- Horší přehlednost programu a orientace v něm
LD - Ladder Diagram (liniové nebo reléové schéma)
…historicky LD zápis programu vychází z dob reléové logiky, kdy místo procesorů nebo
integrovaných logických obvodů typu NAND, NOR či XOR, se využívala soustava vzájemně
propojených relátek.
Obr. ukázka programování v Ladder diagramu - LD
Výhody:
+ Jasně definovaná posloupnost zápisu, kterou nelze porušit
+ Přehlednost zápisu (zvláště u menších programů)
+ Ideální pro zpracování velkého počtu logických signálů (vstupů a výstupů)
Nevýhody:
- Méně vhodný pro aritmetické operace a práce s daty (ASCII znaky / řetězci)
- S rostoucí složitostí programu rychle narůstá jeho délka
- Hůře pochopitelný pro „klasické programátory“
FBD - Function Block Diagram (Schéma funkčních bloků)
… zápis programu PLC v tzv. funkčních blocích (FBD), je takovou kombinací liniového schéma.
Prakticky se dá říct, že FBD režim je v podstatě LD režim, kde se u logických operací místo sériově-
paralelního zapojování symbolů kontaktů relé využívá klasických značek hradel AND, OR apod.
Obr. ukázka programování v funkčních blocích - FBD
Výhody:
+ Definované grafické členění programu do řádků
+ Logické operace v podobě hradel
+ Přehledný zápis programu
+ Ideální pro zpracování velkého počtu logických signálů (vstupů / výstupů)
Nevýhody:
- Méně vhodný pro složitější zpracování analogových signálů
- Nevhodný pro hromadnou manipulaci s velkým množstvím dat a ASCII znaky (řetězci)
- Nevhodný pro programování složitých algoritmů (vzorců)
ST - Structured Text (Strukturovaný text)
…programovací režim ST je ideální pro klasické programátory mikroprocesorů, protože jeho zápis je
tvořený posloupností symbolických instrukcí, kde jedna instrukce reprezentuje v „IL“ zápisu celou
posloupnost základních instrukcí.
Obr. ukázka programování v strukturovaném textu – ST
Výhody:
+ Snadné programování složitých aritmetických operací a vzorců
+ Ideální pro práci s velkými bloky dat a databázemi, textovými řetězci
+ Vhodný pro realizaci / zpracování datové komunikace
Nevýhody:
- Je nutné znát příkazy a přesnou syntaxi zápisu
- Horší přehlednost zápisu logických operací
- Méně vhodný pro přehledné zpracování velkého množství logických signálů DI/DO
CFC - Continuous Function Chart (Volně propojované bloky)
…zápis programu v programovacím režimu CFC je naopak ideální pro toho, kdo vyznává skládání
programu z jednotlivých „krabiček“ vzájemně propojených přes vývody.
Obr. ukázka programování v blocích – CFC
Výhody:
+ Volné uspořádání programu dle potřeby programátora
+ Zápis připomíná schéma zapojení součástek
+ Snadná realizace zpracování analogových signálů
+ Přehledný průchod signálu strukturou programu při zpracování
Nevýhody:
- Pro složitější programy se zápis stává nepřehledný
- Méně vhodný pro zpracování velkého množství logických signálů (vstupů / výstupů)
- Nevhodný pro realizaci manipulace s většími bloky dat, ASCII řetězci a datovou komunikaci
SFC - Sequential Function Chart (Vývojový diagram)
…programovací režim SFC je graficky orientovaný zápis pro snadné definování chování programu,
tedy jeho běh a reakce na různé rozhodovací situace. Prakticky umožňuje definovat chování programu
prostřednictvím všeobecně známého vývojového schéma, tedy větvení programu na základě splnění
rozhodovacích podmínek. Tento režim je ideální pro definování posloupnosti volání jednotlivých částí
programu (podprogramů) napsaných některým z výše uvedených programovacích režimů na základě
hodnot stavových proměnných. Také se s ním dobře realizuje sekvenční logika.
Obr. ukázka programování pomocí SFC
Výhody:
+ velmi přehledný zápis programu
+ přehledné definování a ošetření různých stavů programu
+ ideální pro realizaci sekvenční logiky
Nevýhody:
- nevhodný pro přímou realizaci zpracování analogových signálů
- nevhodný pro zpracování velkého počtu logických signálů
- nevhodný pro programování složitých algoritmů
Začínáme v programování v SFC
Pro začátek v programování v SFC si musíme ujasnit některé pojmy:
SBR/RET - vstup, výstupní parametry subrutiny
Initial STEP (Počáteční krok) - Počáteční pozice pro provedení programu
STEP (krok) - Pozice v programu, který definuje provozní stav
Action (Akce) - Část kroku, který definuje konkrétní provedení úkolu, může jich být i více
Transition (Podmínka) – Podmínka, která musí být splněna, aby bylo možno pokračovat v programu
STOP (zastaveni) Ukončení provádění programu v této větvi
SIMULTANEOUS BRANCH (Simultánní větev) - Definuje provedení částí programu současně –
paralelně.
SELECT BRANCH (Výběr větve) – Definuje provedení té části programu, která byla vybrána splnění
podmínky
Vytvoření subrutiny v SFC
1. V Control Organizer klikněte pravým tlačítkem myši na aplikaci, Main_Sequencer a vyberete Nová
rutina .
2. Parametry zadáte takto a klepněte na tlačítko OK po dokončení.
Všimněte si, že typ je sekvenční diagram funkce.
3. Ověřte, že strom projektu vypadá následovně:
4. V projektu klikněte na Prepare_Packaging a otevře se vám okno prostředí pro projektování v SFC.
Všimněte si, že program udělal pro Vás první krok s podmínkou.
5. Nyní klikněte pravým tlačítkem myši na Step_000 a vyberte příkaz Edit STEP "Step_000",
následně se Vám otevře dialogové okno s vlastnostmi
6. Přejmenujte si Step_000 ve vlastnostech dialog to např.Packaging_Prep a zmáčkněte Apply.
7. Po zmáčknutí Apply se jméno přepíše a potvrďte OK.
8. Nyní klikněte pravým tlačítkem myši do pole programu a vyberte možnost Add SFC Element.
9. Když se zobrazí následující obrazovka, vyberte Translation (podmínku) a potvrďte OK.
Takhle by mělo vypadat Vaše programovací pole:
Pokud máme v programu vytvořit 2 větve, které se budou provádět podle toho, která podmínka je
splněna, musíme si to takhle vytvořit.
10. Umístěte kurzor myši nad horní spojovacího bodu Tran_001 .
11. Jedním kliknutím přejdete do režimu spojování
12. Přesunete spojení nad horní spojovací bod Tran_000 tak, aby se spojovací bod změnil na zelený a
spojíte to.
13. Nyní je podmínka Tran_001 spojena s podmínkou Tran_000.
Podmínkou pro uskutečnění přechodu Tran_000 bude volba vanilkové nebo čokoládové přísady. Pro
uskutečnění části programu Tran_001 budou ostatní podmínky.
14. Pokud kliknete na ? v Tran_000 otevře se Vám okno Editoru strukturovaného textu.
15
15. Zadejte následující text v okně ST editoru: Recipe.Type = 1 OR Recipe.Type=2
16. Klepněte na prázdnou část prostoru SFC a ukončete úpravu. Ověřte si, že váš pracovní prostor se
zobrazí takto:
17. Nyní pro splnění podmínky Tran_001 : je nutné, aby jste do ní zapsali:
NOT (Recipe.Type = 1 nebo Recipe.Type=2)
18. Zkontrolujte si jestli Vás program vypadá takto:
Všimněte si, že výběr větve je určen k použití s podmínkami, které se vzájemně vylučují (tj, jen jeden
přechod stavu bude platit bezprostředně po průchodu programu).
19. Pokud chcete mít program přehlednější upravte si názvy podmínek:
Tran_001 na Non_Flavored_Bulk
Tran_000 na Vanilla_or_Chocolate
Po změně jména nezapomeňte nastavit jako typ BOOLEAN .
20. Nyní by program měl vypadat takto:
21. Označte Vanilla_or_Chocolate
22. Klikněte na tlačítko STEP v panelu SFC a umístěte ho do prostoru SFC a propojte s podmínkou
Vanilla_or_Chocholate
Vzhledem k tomu, že byl přechod vybrán před tím, než byl vložen krok, krok byl automaticky
připojen k přechodu. Tato výchozí akce dochází s umístění všech položek z panelu nástrojů, dokud
byla položka vybraná v pracovním prostoru.
23. Proveďte stejný postup k vytvoření dalšího kroku pro podmínku NON_flavour_bulk
24. Podívejte se jestli to vypadá stejně:
25. Klikněte na Step_000 a zvolte Add Action (Přidat akci) přidat akci zavřít solenoid.
Nová akce bude přidána k Step_000
26. Klikněte na otazník (?) v Action_000 otevřete okno editoru strukturovaný Text a zadejte
následující text:
Packaging_Solenoid.ProgCommand:=0;
27. Klikněte do prostoru SFC a tímto se ukončí změna programu.
28. Udělějte to samé do Step_001 a zadejte následující strukturovaný Text do nově vytvořené akce:
Packaging_Solenoid.ProgCommand: = 1;
29. Ověřte si, že váš program vypadá takto:
30. Pokud chcete mít program přehlednější popište si jednotlivé akce:
Action_000 na Close_Packaging_Solenoid
Action_001 na Open_Packaging_Solenoid
31. Mělo by to vypadat takto:
32. S pomocí toho co už známe, udělejte následující kroky (Step_000 a Step_001) s následujícím
popisem:
po Step_000:
Transition Tag: Packaging_Solenoid_Closed
ST condition: Packaging_Solenoid.Device0State
Po Step_001:
Transition Tag: Packaging_Solenoid_Open
ST condition: Packaging_Solenoid.Device1State
33. Mělo by to vypadat takhle:
34. Nyní ukončíme rozdělení větví a provedete to tak, že klepneme na nižší spojovací bod
Packaging_Solenoid_Closed podmínky k režimu spojování a klikněte na spodní spojovací bod
Packaging_Solenoid_Open přechod . Máme hotovo.
35. Dále přidáme STEP a Transition s následující specifikací:
STEP: Conveyor_Alert
TRANSITION: Conveyor_Alert_Complete
36. Přidejte následující dva kroky k Conveyor_Alert kroku:
Action Tag: Siren_On
Action ST text: Siren: = 1,
Action Tag: Siren_Off
Action ST text: Siren: = 0;
37. Mělo by to vypadat takhle:
38. Klikněte na STEP Conveyor_Alert a otevřete si okno s vlastnostmi.
39. Nastavte si PRESET 15000 je to vnitřní časovač nastaven na 15 sekund (uvádí se v
milisekundách), potvrďte Apply provedené změny a zmáčkněte OK.
40. Otevřete si Action Porperties pro blok Siren_On.
41. Z menu si vyberte provedení na „nástupnou hranu“P1 Pulse(Rising_Edge). To znamená, že se
akce provede pouze jednou, ikdyž bude krok Conveyor_Alert aktivní.
42. Změnu potvrdíte Aplly a klepněte na OK .
43. Pomocí stejným postupem jako v předchozím kroku, nastavíte vlastnost pro provedení akce pro
Siren_Off akci na „sestupnout hranu“ P0 Pulse(Falling_Edge) .
44. Ověřte si, žs Conveyor_Alert se nyní zobrazují s P1 a P0 podle následujícího obrázku:
45. Přidejte následující ST text, jako přechodnou podmínku pro Conveyor_Alert_Complete :
Conveyor_Alert.DN
Tento STEP/TRANSITION bude spouštěn následujícím způsobem:
Krok Conveyor_Alert jde aktivní od provedení akce Siren_On a je zapnut vnitřní časovač na 15s.
Když 15 podruhé časovač dokončí, Conveyor_Alert.DN bit je nastaven, akce Siren_Off se provede jen
jednou a Conveyor_Alert STEP zůstane neaktivní.
46. Přidejte nový krok s podmínkou po přechodu Conveyor_Alert_Complete s následujím nastavením:
STEP name: Start_Conveyor
Transition name: Conveyor_Started
47. Proveďte následující akci k Start_Conveyor kroku:
Action Tag: Conveyor_Go
Action Qualifier: N (uložený)
Action ST Text: Conveyor.ProgCommand: = 1,
48. Přidejte následující podmínku pomocí strukturovaného Textu do Conveyor_Started:
Conveyor.Device1State
A mělo by to vypadat takhle:
49. Abychom dokončili SFC nutno přidat další krok Conveyor_Started s následujícím nastavením:
STEP name: Package_Prep_Done
Tento krok nevytváří žádnou akci, ale víme, že když program dojde do této části programu, je konec.
50. Klikněte na tlačítko Verify Routine provedese kontrola rutiny jestli neobsahuje chyby. Pokud
nějaké jsou, nutno je opravit, pokud ne, máme rutinu pořádku.
51. V Control Organizer klikněte na Sequence_Main routine v projektu se Vám otevře prostor pro tuto
rutinu.
52. Posunout doprava a dolů tak, aby Prepare_Packaging_Line krokem je v pracovním prostoru.
53. Přidejte dvě akce na Prepare_Packaging_Line krok s následující specifikace:
Action Tag: Call_Package_Prep
Action Qualifier: N (uložený)
Action ST text: JSR (Prepare_Packaging);
Action name: Reset_Package_Prep
Action Qualifier: P0 Pulse (klesající Edge)
Action ST text: SFR (Prepare_Packaging, Packaging_Prep);
První akce způsobí, že rutina Prepare_Packaging bude provedena, dokud zůstává aktivní
Prepare_Packaging_Line STEP.
Druhá akce (SFC_ reset) vynuluje rutinu Prepare_Packaging Packaging_Prep
54. Přidejte následující podmínku v strukturovaném Textu do Packaging_Ready transition (přepsáním
'1' která byla dříve):
Package_Prep_Done_X
Vzpomeňme si, že Package_Prep_Done byl krok SFC instrukcí používaných na konci
Prepare_Packaging rutinu. X bit označuje, že tento krok je v současné době aktivní a skenována.
55. Váš program by nyní měl vypadat takto:
56. Klikněte na tlačítko Verify routine toto ověří, že tato rutina neobsahuje chyby. Pokud Vám
vyskočí nějaká chyba, zkontrolujte, jestli máte všechny kroky a podmínky propojeny.
Otázky k probranému učivu
Popište a vysvětlete:
Funkce, Funkční bloky, Propojení prvků ve schématu FBD, Schématická značka bloku, Příkaz Jump,
Příkaz RETURN a vyhodnocování FBD, Textová reprezentace funkcí, Grafická reprezentace funkcí,
Řízení spouštění funkcí, Deklarace funkčních bloků, Bistabilní funkční bloky, Funkční bloky pro
detekci hran, Čítačové funkční bloky, Časovací funkční bloky (časovače), Programování v prostředí
SFC, LD - Ladder Diagram (liniové nebo reléové schéma), FBD - Function Block Diagram (Schéma
funkčních bloků), ST - Structured Text (Strukturovaný text), CFC - Continuous Function Chart
(Volně propojované bloky), SFC - Sequential Function Chart (Vývojový diagram)
Použitá literatura, kterou lze čerpat k dalšímu studiu
3. Vstupy, výstupy, registry, adresování.
Čas ke studiu: xx hodin
Cíl Po prostudování tohoto odstavce budete umět
Definovat, popsat:
Vstupní moduly, Relé, Výstupní moduly, Paměť PLC, Stavové bity PLC
Výklad
Vstupy a výstupy, PLC jsou nezbytné pro monitorování a řízení procesu. Vstupy a výstupy lze rozdělit
do dvou základních typů: na logické (diskrétní) nebo spojité (analogové). Například ovládání žárovky.
Pokud lze pouze zapnout nebo vypnout, jde o logické ovládaní. Pokud lze světlo ztlumit na různé
úrovně, jedná se o spojité ovládaní. Spojité hodnoty se jeví přirozeněji, ale jsou upřednostňovány
logické hodnoty, protože zaručují větší spolehlivost a zjednodušují řízení. V důsledku toho většina
řídicích systémů (a PLC) využívá pro většinu aplikací logických vstupů a výstupů. Zaměříme se proto
Na logické I / O a necháme problematiku spojitých / O na později.
Výstupy napojené na pohony umožňují působit PLC na řízený systém (proces) tak, že se v řízeném
systému něco změní. Krátký seznam nejznámějších akčních členů je uveden níže v pořadí relativní
četnosti použití.
Solenoidové ventily - logické výstupy, které umožní přepínat průtoky hydraulických nebo
pneumatických médií.
Osvětlení - logické výstupy, které často mohou být napájeny a ovládány přímo z výstupu desek PLC.
Motorové spouštěče – motory při svém rozběhu odebírají velký proud, takže vyžadují motorové
spouštěče, které jsou v podstatě velké relé.
Servomotory – spojitý (analogový) výstup z PLC může ovládat variabilní rychlost nebo polohu.
Výstupy z PLC tvoří často relé, ale mohou být konstruovány z polovodičových součástek, jako jsou
tranzistory pro výstupy DC nebo triaky pro výstupy AC. Analogové výstupy vyžadují speciální
výstupní karty s digitálně analogovými převodníky.
Signály přiváděné na vstupy pocházejí ze senzorů, které převádějí fyzikální jevy (fyzikální veličiny)
na elektrické signály. Typické příklady senzorů jsou uvedeny níže v relativním pořadí četnosti použití.
Bezdotykové spínače - využívají indukčnosti, kapacity nebo světla pro logickou detekci objektu (je
přítomen, není přítomen).
Přepínače - mechanické mechanismy sepnou nebo rozepnou elektrické kontakty pro vytvoření
logického signálu.
Potenciometr - měří průběžně úhlové polohy na základě změny odporu.
LVDT (lineární proměnný diferenciální transformátor) - měří průběžně lineární vzdálenost pomocí
elektromagnetické vazby.
Vstupy pro PLC se vyrábějí v několika základních variantách, nejjednodušší jsou AC a DC vstupy.
Často se používají vstupy typu zdroj nebo spotřebič (source, sink). Typ výstupu určuje, zda zařízení je
napájeno. Nebo zda zařízení sepne nebo rozepne obvod jako jednoduchý vypínač.
Spotřebič - Je-li aktivní, výstup z umožňuje průchod proudu v obvodu na společnou zem. Tento typ
volíme, pokud jsou připojené zařízení napájeny různým napětím.
Zdroj - Když je aktivní, proud teče od zdroje, přes výstupní zařízení a na zem. Tento typ výstupu je
nejvhodnější, pokud jsou všechna zařízení ovládaná pomocí jediného napájecího napětí.
Často také mluvíme o výstupech NPN (spotřebič) a PNP (zdroj). Typ PNP se používá častěji.
Jednotlivé typy budou podrobně popsány v kapitole o senzorech.
3.1. Vstupy
V menších PLC jsou vstupy obvykle přímo jejich součástí a jsou určeny při nákupu PLC. Pro větší
PLC lze vstupy zakoupit jako moduly nebo karty, s 8 nebo 16 vstupy stejného typ na každé jednotlivé
vstupní kartě (modulu). Pro účely rozboru probereme všechny vstupy jako by byly karty. Níže
uvedený seznam ukazuje typické rozsahy vstupních napětí zhruba v pořadí četnosti použití.
12 až 24 V DC
100-120 V AC
10 až 60 V DC
12-24 V AC / DC
5 V DC (TTL)
200-240 V AC
48 V DC
24 V AC
PLC vstupní karty zřídka obsahují napájení vstupního obvodu, to znamená, že je zapotřebí externí
zdroj pro napájení vstupů a senzorů. Příklad na obrázku 2.2 Vstup AC Card a logiky ladderu ukazuje,
jak lze připojit AC vstup na kartu.
Obr. Vstup AC a karty Ladder Logic
V tomto příkladu jsou použity dva vstupy, jeden je normálně otevřený tvořený kontaktem tlačítka, a
druhý je teplotní spínač nebo tepelné relé (také normálně otevřené). (Poznámka: Tyto symboly jsou
standardní a budou popsány dále v této kapitole). Oba spínače jsou napájeny „živou“ větví připojenou
na výstupní fázovou svorku napájecího zdroje 24V AC. Napájení je přivedeno na levé strany obou
spínačů. Když jsou kontakty spínačů rozepnuta není žádné napětí přivedeno na vstupní kartu. Pokud
je některý ze spínačů sepnut, je přivedeno napětí ze zdroje na vstupní kartu. V našem případě jsou
použity vstupy 1 a 3 - všimněte si, že číslování vstupů začínají na 0. Vstupní karta vyhodnocuje napětí
na svých svorkách vůči společné svorce (nulovému potenciálu, vůči zemi). Pokud je vstupní napětí v
dané toleranci, vstup je sepnut. V programu v žebříčkové logice jsou znázorněny na obrázku pro
vstupy. Zde se používá pro zápis symboly Allen Bradley ControlLogix. Nad symbolem je uveden tag
(název proměnné) v příslušné vaně. Vstupní karta ("I"), je ve slotu 3, takže adresa karty je bob: 3.
I.Data.x, kde "x" je vstupní číslo příslušného bitu. Tyto adresy lze získat pomocí alias tagů
(nezavádíme novou proměnnou, pouze pojmenujeme již stávající, zde příslušný vstup). Tím se
program stane čitelnější.
Mnoho začátečníků jsou zmateni ve spojích uvedených v obvodu nahoře v obrázku. Základem pro
pochopení funkce je elektrický obvod, jeho smyčka vedoucí od a zpět do napájecího zdroje. Na
obrázku 2.2 Vstup AC a karty Ladder Logic můžeme obvod (smyčku) začít zkoumat od zdroje
fázové svorky napájecího zdroje. Proud teče ze zdroje, smyčka se uzavírá přes kontakty spínače, přes
obvod vstupní karty, a vede zpět k nulovému pólu zdroje, kde proud teče zpět do zdroje. V úplné
připojení PLC k čidlům bude tvořeno mnoha obvody, každý z nich musí tvořit kompletní uzavřenou
obvodovou smyčku.
Druhý důležitý koncept vstupních obvodů je obecný. Zde je společný nulový potenciál napájecího
zdroje (nulová svorka), nebo společné referenční napětí (napěťová svorka). Obvykle volíme
referenční, společný bod 0 V (nulový potenciál, zem) a všechna ostatní napětí měříme ve vztahu k
tomuto referenčnímu bodu (společné nule, společné zemi). Kdybychom použili druhý napájecí zdroj,
musíme zapojit i jeho nulovou svorku, takže by obě nulové svorky obou zdrojů byly spojeny ke
stejnému společnému propojovacímu bodu. Často bývá zapojení společného potenciálu a země
zmatené a nepřehledné. Je vhodné použít společný potenciál pro 0V, a uzemnění pro ochranu před
úrazy a poškození zařízení. V určitém místě je uzemnění připojeno v budově kovovou trubkou nebo
vodičem k zemi. K zemi je připojena i zemnící vodič elektrického rozvodu budovy, tudíž zemní
svorka zásuvek, k nimž jsou připojeny kovové částí elektrických zařízení. Pokud se elektrické obvody
uzavírají právě přes společnou zemní svorku, jsou obvody navrženy špatně. Je nutno oddělovat
zemnící svorku a nulový společný potenciál řídicích systémů.
Konečný zásada, která má tendenci mást začátečníky je, že každá vstupní karta je izolována. To
znamená, že pokud jste připojili na společný potenciál pouze jednu kartu a pak další karty již nejsou
na tento potenciál propojeny, pak se stane, že tyto další í karty nebudou fungovat správně. Je nutné
připojit na společný potenciál každou ze vstupních karet.
Při rozhodování, jaký typ vstupních karet použít, existuje mnoho kompromisů.
• DC napětí jsou obvykle nižší, a proto je bezpečnější (tj. 12-24V).
• DC vstupy jsou velmi rychlé, AC vstupy vyžadují delší dobu zapnutí. Například, může být 60 Hz
vlna vyžadovat až 1/60sec za rozumná uznání.
• DC napětí může být připojen k větší škále elektrických systémů.
• AC signály jsou odolnější vůči šumu, než DC, takže se hodí na dlouhé vzdálenosti, a hlučné
(magnetické) prostředí.
• AC napájení je jednodušší a méně nákladné dodávat do zařízení.
• AC signály jsou velmi běžné v mnoha stávajících automatizačních zařízení.
3.2. RELÉ
Pro řídicí logiku se relé používají jen zřídka, jsou ale důležité pro spínání velké výkonové zátěže. Níže
jsou uvedeny některé důležité pojmy týkající se relé.
Stykače - speciální relé pro spínání velkých proudových zátěží.
Motor Starter - v podstatě stykač zapojený do série s nadproudovým relé, které vypne obvod, pokud je
překročen nastavený proud.
Potlačení oblouku – při spínání a rozpínání obvodu bude se mezi kontakty relé tvořit elektrický
oblouk. Tento jev je závažný u velkých relé. Relé spínající střídavý proud tvorbu oblouku může
eliminovat tak, že bude spínat při průchodu proudu nulou (při změně polarity z negativní na pozitivní
a naopak). Při spínání zátěží napájených stejnosměrným proudem lze tento problém minimalizovat
tím, že při otevření kontaktů se fouká stlačený plyn přes kontakty k potlačení tvorby oblouku.
Střídavé relé - Je-li cívka relé napájena střídavým proudem, pak kontakty budou kmitat spínat a
rozpínat s frekvencí střídavého proudu. Tento problém výrobci relé řeší přidáním pomocného pólu ve
vnitřní konstrukci relé.
Nejdůležitějším aspektem při výběru relé nebo reléových výstupů na PLC je jmenovitý proud a napětí
relé. V případě, že jmenovité napětí je překročeno, budou se kontakty předčasně opotřebovávat, nebo
v případě, že spínané napětí je příliš vysoké může dojít i k požáru. Jmenovitý proud je maximální
proud, který může relé spínat. Při překročení této hodnoty se bude relé přehřívat, a zkracuje se jeho
životnost. Jmenovité hodnoty jsou obvykle uvedeny jak pro střídavé i pro stejnosměrné napětí a proud,
hodnoty pro stejnosměrný proud jsou nižší než pro střídavý proud. V případě, že skutečné náklady
jsou nižší než použité jmenovité hodnoty relé by mělo fungovat donekonečna. Pokud jsou dovolené
hodnoty napětí a proudu překročeny málo životnost relé se zkrátí. Výrazné překročení hodnot může
vést k okamžitému selhání a trvalému poškození. Vezměte prosím na vědomí, že relé může také
zahrnovat minimální rating, který by měl rovněž dbát na zajištění správné funkce a dlouhou životnost.
• Jmenovité napětí - provozní napětí na cívky relé. Nižší napětí může vést k selhání relé, vyšší
napětí zkrátí životnost relé.
• Jmenovitý proud - maximální proud, jehož překročením dojde k poškození (svařením nebo
tavením kontaktů).
Obr. Principiální schéma zapojení: vstupní obvody PLC
3.3. Výstupní moduly
Stejně jako u vstupních modulů, i výstupní moduly zřídka obsahují napájecí zdroj, ale fungují pouze
jako spínače. Pro napájení výstupů je ke kartě připojen Externí napájecí zdroj. Napětí tohoto zdroje je
pak spínáno každým výstupem karty. Typické výstupní napětí jsou uvedeny níže, a zhruba seřazené
podle popularity.
120 Vac
24 Vdc
12-48 Vac
12 až 48 V DC
5Vdc (TTL)
230 Vac
Výstupní karty mají obvykle 8-16 výstupů stejného typu a jsou navrženy pro spínaní různých proudů.
Výstupní karty jsou reléové, tranzistorové nebo triakové. nejvíce flexibilní výstupní karty jsou
Reléové. Jsou schopny spínání stejnosměrných i střídavých proudů. Na druhé straně jsou pomalejší
(typické přepnutí je asi 10 ms), jsou objemnější, dražší, a po milionech cyklů se opotřebovávají.
Reléové výstupy jsou často poskytují galvanicky oddělené kontakty. Tranzistorové karty jsou
omezeny na spínaní stejnosměrných proudů, a triakové výstupní karty pro spínání střídavých proudů.
Tranzistorové a triakové výstupy jsou spojeny po skupinách.
Izolované kontakty - pro každý výstup je určeno samostatné relé. To umožňuje spínat různá
napětí (AC nebo DC a napěťové úrovně až do maxima), stejně jako izolované výstupy pro
ochranu jiných výstupů a PLC. Doba odezvy je často větší než 10 ms. Tyto výstupy jsou
nejméně citlivé na kolísání napětí a napěťové a proudové špičky.
Společné výstupy - napětí připojené ke kartě PLC je společné různé výstupy, j sepínáno
pomocí polovodičových obvodů (tranzistory, triaky, atd.), Triaky jsou vhodné pro zařízení,
která vyžadují stříadavý proud obvykle nižší než 1A. Tranzistorové výstupy používají NPN
nebo PNP tranzistory až jsou schopny spínat až proud do velikosti 1 A. Jejich doba odezvy je
mnhem menší než 1 ms.
Obr. půdy z produkce: PLC výstupních obvodů
Pokud vytváříme systém, který má jak stejnosměrné tak i střídavé výstupy, je zapotřebí dávat pozor na
to, které typy výstupních karet použijeme. Pokud pro spínání střídavého napětí omylem použijeme
tranzistorový stejnosměrný výstup, pak obvod bude sepnut jen v kladné polovině cyklu napájecího
napětí, a zdá se, že výstup pracuje se sníženou hodnotou napětí. Je-li ke střídavému triakovému
výstupu připojen stejnosměrný zdroj, výstup se zapne a zůstane trvale sepnutý, nebude moci vypnout
bez vypnutí celého PLC.
Hlavní problém s napájením tvoří použití rozdílných zdrojů. Je vhodné nechat všechny zdroje
izolované a zachovat jejich společné svorky oddělené, což ale není vždy možné. Některé výstupní
moduly, například reléové, umožňují, aby každý výstup měl vlastní společnou svorku, připojenou na
samostatný vztažný potenciál. Polovodičové výstupní karty (tranzistorové a triakové) , disponují
jedním společným potenciálem, přivedeným na svorku COM, který je společný pro všechny výstupy.
Katra může obsahovat i skupinu výstupních svorek spojených s odpovídající svorkou COM1,
COM2… Pak každá skupina bude oddělena od jiné skupiny, ale výstupy jedné skupiny budou
využívat vždy svou společnou svorku COM1, …
Pokud systém obsahuje více výstupních karet je nutné mít propojené všechyn společné svorky COM
výstupních karet vzájemně mezi sebou a příslušným zdrojem, nebo v přípúadě oddělených zdrojů, pak
vždy pčíslušnou svorku COM se příslušnou svorkou (COM, nulovým potenciálem0 příslušného
zdroje.
Výstupní karta znázorněna na obr. 2.5 Příklad 24VDC Výstupní Card (NPN) je příkladem 24V DC
výstupní karty, která má jednu společnou sdílenou svorku COM. Tento typ výstupní karty obvykle
používá tranzistory pro spínání výstupů.
Obr. 2.5 Příklad 24V DC a výstupní karta (NPN)
V našem příkladu jsou výstupy zapojeny v obvodech, kterými protéká malý proud, zde se jedná o
žárovku a cívku relé. Rozeberme obvod žárovky, počínaje napájením 24V. Když je výstup 07 je
sepnutý, proud může téci přes žárovku na svorku 07 a vede na svorku COM, TA je propojena sae
společným pólem zdroje (COM) a tak je elektrický okruh uzavřena a tím je umožněno, aby se světlo
zapnulo. Pokud je výstup rozepnutý, proud obvodem nemůže proudit, a světlo se nesvítí. Výstup 03
ovládající relé je připojen podobným způsobem. Když je výstup 03 je sepnutý, proud protéká cívkou
relé, kontakty relé se sepnou a je připojeno napájení 120V AC k motoru. Program žebříčkové logice
je uveden v pravém dolním rohu obrázku. Zápis odpovídá zvyklostem Allen Bradley ControlLogix.
Výstupní karta ("O"), je ve vaně označené "sue" ve slotu 2. Jak je uvedeno, je dobré pro výstupy
výstupní karty definovat a používat alias tagy, tedy symbolické pojmenovaní pro již existující
proměnné (tagy), (např. motor), místo použití úplného popisu (např. Sue: 2. O.Data.3). Tato karta
může spínat napětí z mnoha zdrojů, ale všechny zdroje musí mít propojeny nulové svorky na jednu
společnou svorku COM na kartě.
Obvody v obr. 2.6 Příklad 24VDC Výstupní karta se společným vstupním napětím (PNP) jsou
zapojeny v pořadí napájení, pak zařízení, pak PLC karta, pak napájení. To vyžaduje, aby výstupní
karta měla svorku se společným potenciálem pro všechny výstupy. Některé zapojejní výstupních karet
obrtací pořadí zařízení a PLC karty, čímž se nahrazuje svorku společného ponteciálu COM svorkou
společného napájecího napětí. Příklad na obr. 2.5 Příklad z 24V DC a výstupní karta (NPN) se opakuje
na ve zapojení pro obr. 2.6 Příklad 24VDC Výstupní karta s společné napájení (PNP)
Obr. 2.6 Příklad 24VDC Výstupní karta s rozsahem vstupního napětí (PNP)
V tomto příkladu je kladný pól napájení 24V připojen k výstupní kartě přímo. V případě, že výstup je
sepnut, na je společné napájení přivedeno na příslušný výstup. Například, je-li výstup 07 sepnutý, pak
je na napájecí napětí přes tento výstup přivedeno k žárovce. Ta je pak připojena na polečný pól zdruje.
Obvod je užavřen, proud protéká obvodem a žárovka svítí. Odbodbě je tomu u zapojení relé pro řízení
motoru. Vlastná program v PLC se ale nijak nezmění. U tohoto typu výstupní karty lze použít pouze
jeden napájecí zdroj.
Můžeme také pro spínání výstupů použít reléové výstupní. Příklad ukazuje obr. 2.5 Příklad 24VDC
Výstupní Card (NPN) a Obrázek 2.6 Příklad 24VDC Výstupní karta s napěťový vstup (PNP) se
opakuje ještě jednou v obr. 2.7 Příklad reléový výstup karty pro reléový výstup .
Obr. 2.7 Příklad reléového výstupu karty
V tomto příkladu je 24V zdroj připojen přímo k oběma kontaktům relé na výstupní kartě(všimněte si,
že to vyžaduje dva propoje, zatímco v předchozí příkladu je zdroj připojen jen jením vodičem.) Při
aktivaci výstupu dojde k sepnutí kontaktů daného výstupu a napájení je připojeno k připojenému
zařízení. Toto uspořádání je velmi podobné zapojení Obrázek 2.6 Příklad 24VDC Výstupní karta se
společným napájecím napětím (PNP) , ale reléová karta může být také použita v zapojení se polečným
nulovým potenciálem, obdobně jako v obr. 2.5 Příklad 24Vdc výstupní karta (NPN) . Pokud
využijeme reléové výstupy, že je možné, aby každý výstup byl izolovaných od ostatních. Reléová
karta může mít výstupy AC i DC vedle sebe.
3.4. Paměť PLC
Pokročilé funkce žebříčkové logiky, jako jsou časovače a čítače umožňují provádět výpočty, přijímat
rozhodnutí a provádět další složité úkoly. Jsou složitější než základních vstupy a výstupy a potřebují
data uložená v paměti PLC. Paměť PLC je organizována por uchování různých typy programů a dat.
Tato kapitola se bude zabývat typy pamětí. Funkce, které je používají, budou popsány níže v
následujících kapitolách.
Program versus variabilní paměť
Paměť v PLC je rozdělena na část programu a proměnnýchi. Paměť programu obsahuje příkyzy, které
mají být provedeny, a nemůže být za chodu změněna. (Poznámka: Některé PLC umožňují On-line
editací provést drobné změny v programu, zatímco program běží.) Paměť proměnných se změní, když
PLC běží. V paměti CONTROL je definována pomocí názvů proměnných (také nazývané tagy).
PROGRAMY
PLC má seznam "hlavních úkolů", které obsahují hlavní program (y) běží vždy PLC. Mohou být
vytvořeny další programy, které jsou nazývány také podprogramy. Platné typy programů jsou Ladder
Logic, strukturovaný text, sekvenční funkční schémata, diagramy funkčních blok.
Speciální programové soubory mohou být také vytvořeny pro "start systému po zapnutí napájení -
Power-Up control" a "obsluho poruch". Power-up programy jsou určeny k inicializaci PLC v prvním
programovém cyklu. K testování tohoto stavu slouží "S: FS" bit. Programy obsluhující poruchy jsou
určeny k reakci na konkrétní selhání nebo problémy, které mohou vést k selhání řídicího systému.
Obvykle tyto programy jsou určeny k zotavení z menších poruch nebo k bezpečně vypnutí systém.
Proměnné (tagy)
Allen Bradley používá terminologii "tagy" k popisu proměnných, stavu a vstupní / výstupní (I / O)
hodnot."Controller Tags" zahrnují hodnoty stavu I / O. Tyto mohou být globální a používají je
všechny programy v PLC. Proměnné mohou být také lokální, což omezuje jejich použití na program,
který jei vlastní.
Proměnné mohou být typu alias, což je jméno jiný tag, nebo datový typ. Některé z běžných typů
proměnných, jsou uvedeny níže.
Obr. Vybrané datové typy ControlLogic
Datové hodnoty vždy musí být uloženy v paměti, mohou být doslova definovány. Na Obrázek 13.2
Písemné hodnoty dat je uveden příklad dvou různých datových hodnot. První z nich je celé číslo,
druhá je reálné číslo. Hexadecimální čísla označuje přípona H a pokud číslo začíná A, B, C, D, E
nebo F je před nimi uvedena nula, binární číslo je ukončeno znakem B na konci čísla .
Obr. Přímé¨číselné hodnoty
Datové typy mohou být vytvořeny v libovolné velikosti, 1D, 2D, nebo 3D polích.
Někdy budeme chtít odkazovat na pole hodnot. Tento odkaz je určen tak, že začíná znakem libry nebo
znakem hash '#'.
Obr. Pole
Výrazy umožňují adresaci a zadané funkce jsou interpretovány při spuštění programu. Příklad na obr.
Výrazy ukazuje příklad složitějšího výrazu. Hodnota proměnné (tagu) je argumentem funkce sin a po
vyčíslení se k hodnotě funkce sin přičte hodnota 1,3. Zadaný text je interpretován až v okamžiku běhu
PLC. Pokud se vyskytne chyba, projeví se až za běhu programu - funkci je třeba využívat velmi
obezřetně.
Obr. Výrazy
Datové typy a režimy adresování budou podrobněji probrány dále.
Obrázek 13.5 ukazuje příklad funkcí ladder logiky Základní pravidlo pro práci s funkcemi je, že i
když na vstupu je logická jednička (pravda), pak funkce bude provedena. První příkaz přesune (MOV)
literál 130, celé číslo, do paměti označené jako X. Dalším krokem bude kopírování hodnoty z
proměnné X do proměnné Y. Třetí příkaz sečte proměnné X a Y a uloží výsledek do Z.
Obr. Příklad funkce žebříčkové logice
3.5. Stavové bity PLC
Stav paměti programu umožňuje kontrolu funkce PLC, a také provést některé změny. Výběr ze
stavových bitů je uveden v obr. 13,8 Stavové bity a slova PLC ControlLogix . Úplnější seznamy jsou k
dispozici v příručkách daného systému. Prvních šest bitů je běžně používáno a jsou uvedeny s
jednoduchým označení pro použití žebříčkové logice. Ostatní systémové bity a slova vyžadují použití
funkce Get System Value (GSV) a pro zápis Set System Value (SSV). Tyto funkce mohou číst /
nastavit různé hodnoty v závislosti na typu objektu dat, která je využíván. V daném seznamu se
vyskytuje jeden datový objekt "WALLCLOCKTIME". Jednou z vlastností této třídy je DateTime,
který obsahuje aktuální čas. Je také možné použít třídu "PROGRAM" a instanci objektu
"MainProgram" a pomocí atributu "LastScanTime" určit, jak dlouho program běžel od předchozí
kontroly.
Obr. Stavové bity a slova pro ControlLogix
Příklad získání a nastavení hodnoty stavu systému je znázorněn na obrázku 13.9 Čtení a nastavení
stavových bitů s GSV a SSV . První řádek ladder logiky načte aktuální čas ze třídy
"WALLCLOCKTIME". V tomto případě třída nemá instanci a proto je její jméno prázdné. Je
požadován atribut je DateTime, jehož hodnota bude zapsána do pole DINT time [0..6]. Například
time[3] by měla obsahovat údaj o aktuální hodině. Na druhém řádku je čas Watchdog na MainProgram
nastavena na 200 ms. Pokud program MainProgram trvá déle než 200ms provést chyba bude
generován.
Obr. Čtení a nastavení stavových bitů s GSV a SSV
Jako vždy, je možné přidat další třídy a atributy pro stavové hodnoty lze nalézt v příručkách pro
procesory a instrukce používají.
Otázky k probranému učivu
Popište a vysvětlete: Vstupní moduly,
Popište a vysvětlete: Relé,
Popište a vysvětlete: Výstupní moduly,
Popište a vysvětlete: Paměť PLC,
Popište a vysvětlete: Stavové bity PLC
Použitá literatura, kterou lze čerpat k dalšímu studiu
4. Booleova algebra a PLC
Čas ke studiu: xx hodin
Cíl Po prostudování tohoto odstavce budete umět
Definovat, popsat: Logická proměnná a logická funkce, Funkce jedné proměnné, Funkce
n proměnných, Základní logické funkce, Vyjádření Booleových funkcí:, Úplná
disjunktivní normální forma (ÚDNF), Úplná konjunktivní normální forma (ÚKNF),
Minimalizace logických výrazů
Výklad
4.1. Logická proměnná a logická funkce
Logická proměnná je veličina, která vyjadřuje pouze dva stavy a nemůže se měnit spojitě. (např.
tlačítko, dvoupolohový vypínač)
0 - výrok neplatí, signál neexistuje, obvod nevede... .
1 - výrok platí, signál existuje, obvod vede ... .
Je-li logických proměnných n, pak lze jimi vyjádřit 2n různých stavů.
Vztah mezi logickými proměnnými je určen tzv. logickou funkcí.
Logická funkce je předpis, který přiřazuje kombinacím hodnot jedné nebo více vstupních
logických proměnných hodnotu výstupní proměnné.
Funkce jedné proměnné
Nejsnáze lze demonstrovat logické funkce na případu funkcí jedné vstupní proměnné a. Pravdivostní
tabulka této funkce bude mít na levé straně pouze jeden sloupec. Hodnotám této jediné nezávislé
proměnné lze přiřadit výstupní hodnoty čtyřmi způsoby, tedy existují čtyři logické funkce jedné
proměnné y1 až y4, jejichž pravdivostní tabulky shrneme do společné tabulky s jediným vyjádřením
hodnot vstupní proměnné a.
Pravdivostní tabulka logických funkcí
a y1 y2 y3 y4
0 0 0 1 1
1 0 1 0 1
Funkce n proměnných
Počtu n vstupních proměnných lze obecně přiřadit 22n logických funkcí. Dvě vstupní proměnné dávají
čtyři kombinace vstupních hodnot, kterým lze přiřadit 16 různých logických funkcí.
4.2. Základní logické funkce
Negace
označení: negace, inverse, non
AY
Pravdivostní tabulka:
p A Y
0 0 1
1 1 0
A Y
Logický součin
označení: logický součin, i, AND, konjunkce, průnik
BAY
Pravdivostní tabulka:
p A B Y
0 0 0 0
1 0 1 0
2 1 0 0
3 1 1 1
&0
00A
BY
Logický součet
označení: logický součet, nebo, OR, disjunkce, sjednocení
BAY
Pravdivostní tabulka:
p A B Y
0 0 0 0
1 0 1 1
2 1 0 1
3 1 1 1
>=10
00A
BY
Negovaný logický součin- funkce Shefferova
BAY
označení: negovaný logický součin, NAND
Pravdivostní tabulka:
p A B Y
0 0 0 1
1 0 1 1
2 1 0 1
3 1 1 0
&0
00A
BY
Negovaný logický součet - funkce Pierceova
BAY
označení: negovaný logický součet, NOR
Pravdivostní tabulka:
p A B Y
0 0 0 1
1 0 1 0
2 1 0 0
3 1 1 0
>=10
00A
BY
4.3. Vyjádření Booleových funkcí:
• Slovním zadáním
Navrhněte logický obvod, který upozorní obsluhu na poruchu, v případě zastavení jednoho nebo obou
motorů. Každý motor obsahuje snímač, který vyšle informaci v případě zastavení motoru.
• Pravdivostní tabulkou
p A B Y
0 0 0 0
1 0 1 0
2 1 0 0
3 1 1 1
• Karnaughovou mapou
0 1
2 3
5 4
7 6
CA
B
• Algebraickým výrazem
CDABCABCDY
• Blokovým schématem
&0
00
&0
00
&0
00
A
D
Y
B
C
Logické obvody dělíme:
Kombinační - hodnota výstupních veličin závisí jen na kombinaci vstupních veličin.
Sekvenční- hodnota výstupních veličin závisí jednak na kombinaci vstupních veličin a dále na
předchozím stavu (např. logické automaty pro řízení výrobních linek, automatické pračky apod.). Tyto
obvody musí vždy obsahovat vnitřní proměnné.
• Synchronní - všechny změny v logickém obvodu probíhají současně. Změny jsou řízeny
synchronizačními impulsy.
• Asynchronní- stav obvodu se mění ihned po změně vstupu, práce obvodu není
synchronizována.
Logický výraz
Užívají se dva základními tvary zápisu logické funkce logickým výrazem:
úplná disjunktivní normální forma (ÚDNF),
úplná konjunktivní normální forma (ÚKNF)
Při přepisu funkce zadané pravdivostní tabulkou do tvaru logického výrazu lze postupovat následovně:
4.4. Úplná disjunktivní normální forma (ÚDNF)
Přepis do tvaru součtu součinů (ÚDNF) provedeme tak, že vyhledáváme ty kombinace vstupních
proměnných, pro které má výstupní proměnná hodnotu 1. Pro každou takto nalezenou kombinaci
napíšeme takový součin vstupních proměnných, resp. jejich negací, aby tento součin měl právě
hodnotu 1. Znamená to, že v případě, že vstupní proměnná má v daném řádku hodnotu 1, zapíšeme
tuto proměnnou přímo, pokud má vstupní proměnná hodnotu 0, zapíšeme do výrazu negaci této
vstupní proměnné. Součet takto vytvořených součinů je logickým výrazem dané logické funkce.
4.5. Úplná konjunktivní normální forma (ÚKNF)
Při přepisu do tvaru součinu součtů (ÚKNF) naopak vyhledáváme ty řádky, kde je hodnota funkce y =
0 a do jednotlivých součtů zapisujeme podmínky odpovídající nulové hodnotě tohoto součtu. Tedy
naopak proti minulému postupu musíme zapsat přímou proměnnou v případě, že tato proměnná má v
daném řádku hodnotu 0 a negaci této proměnné, jestliže má tato proměnná hodnotu 1. Součinem
těchto podmínek dostaneme výslednou výraz určující podmínky nulové hodnoty této funkce.
Příklad:
Vypište z pravdivostní tabulky funkci ve tvaru úplné disjunktivní normální formy a úplné konjunktivní
normální formy.
Pravdivostní tabulka funkce 3 proměnných
p A B C Y
0 0 0 0 0
1 0 0 1 0
2 0 1 0 1
3 0 1 1 0
4 1 0 0 1
5 1 0 1 1
6 1 1 0 0
7 1 1 1 1
úplná disjunktivní normální forma (ÚDNF), tedy součet součinů základních proměnných nebo jejich
negací (pořadí p = 2, 4, 5, 7)
7542
ABCCBACBACBAY
úplná konjunktivní normální forma (ÚKNF), tedy součin součtů základních proměnných nebo jejich
negací (pořadí p = 0, 1, 3, 6)
6310
CBACBACBACBAY
Příklad:
Vypište z pravdivostní tabulky funkci ve tvaru úplné disjunktivní normální formy a úplné konjunktivní
normální formy.
Pravdivostní tabulka funkce 3 proměnných
p A B C Y
0 0 0 0 1
1 0 0 1 1
2 0 1 0 1
3 0 1 1 0
4 1 0 0 1
5 1 0 1 1
6 1 1 0 0
7 1 1 1 0
úplná disjunktivní normální forma (ÚDNF),tedy součet součinů základních proměnných nebo jejich
negací (pořadí p = 0, 1, 2, 4, 5)
54210
CBACBACBACBACBAY
úplná konjunktivní normální forma (ÚKNF),tedy součin součtů základních proměnných nebo jejich
negací (pořadí p = 3, 6, 7)
763
CBACBACBAY
4.6. Minimalizace logických výrazů
Zadání logické funkce některým z uvedených způsobů není pro konečnou realizaci vhodné. Proto
musíme získaný logický výraz zjednodušit, tzv. minimalizovat, a případně upravit do takového tvaru,
aby byl realizovatelný zvolenými prvky.
Minimalizace podle pravidel Booleovy algebry
Booleova algebra
Komutativní zákon ABBA ABBA
Asociativní zákon CBACBA CBACBA
Distributivní zákon CABACBA CABACBA
Absorpční zákon BABAA BABAA
Neutrálnost AA 0 AA 1
Agresivnost 11A 00 A
Vyloučení třetího 1 AA
Logický rozpor 0 AA
Dvojitá negace AA
Opakování AAA AAA
De Morganovy zákony
BABA BABA
Příklad:
Pomocí Booleovy algebry zjednodušte následující výrazy:
a) CDABCABCDY
b) ABDABABCABY
c) ABABBACBACY
d) ABCABY
e) CBAABCY
f) CBACBACBAY
g) ABCCABCBACBABCAY
h) BCDACDCDAY
i) ABCCABCBACBAY
j) BAABY
Řešení:
a)
CDCDABCABCCDABCABCDY
- z prvních dvou členů vytkneme D
- podle pravidla vyloučení třetího se závorka bude rovnat jedné
b)
0 DCABABABDABABCABY
- z prvních dvou členů vytkneme ABAB
- podle pravidla logického rozporu ABAB výraz je roven nule
c)
CCBABAC
BACBACABABBACBACY
1
0
- u posledního členu použijeme pravidlo logického rozporu a výraz ABAB je roven nule
- z prvních dvou členů vytkneme C
- podle pravidla vyloučení třetího se závorka bude rovnat jedné
d)
ABABCABABCABY 11
- z prvních dvou členů vytkneme AB
- podle pravidla agresivnosti výraz v závorce se bude rovnat jedné
e)
1111 CBACBACBAABCY
- u prvního členu aplikujeme De Morganův zákon
- podle pravidla vyloučení třetího se výraz bude rovnat jedné
f)
CABCBA
CBACBACBACBACBAY
11
- nejprve využijeme absorpční zákon
- z prvního a třetího členu vytkneme člen A, z druhého a čtvrtého členu vytkneme člen C
- na první a druhý člen použijeme zákon agresivnosti
g)
BCAABCABBABCAABBABCA
CCABCCBABCAABCCABCBACBABCAY
- z druhého a třetího členu vytkneme ze čtvrtého a pátého členu
- podle pravidla vyloučení třetího se závorky budou rovnat jedné
- z druhého a třetího členu vytkneme A
- podle pravidla vyloučení třetího se závorka bude rovnat jedné
- nakonec použijeme absorpční zákon
h)
ABCDDCBADCBADC
DCBADACADCBDCADACA
DCBDCADCABCDACDCDAY
11
- u všech čenů použijeme De Morganův zákon
- prvky prvního členu roznásobíme
- z prvního a čtvrtého členu vytkneme C , a z druhého a pátého členu vytkneme D
- podle zákona agresivnosti jsou prvky v závorkách rovny jedné
- dále použijeme pravidlo o opakování
- nakonec použijeme opět De Morganův zákon
i)
CAACB
CAACABABCACBABCACBABCBACBA
ABCBACBACCABCBACBAABCCABCBACBAY
- z třetího a čtvrtého členu vytkneme prvky AB a použijeme pravidlo vyloučení třetího
- dále používáme absorpční zákon
j)
ABBABBABBAAABABABAABBAABY
- nejprve dvakrát aplikujeme De Morganův zákon
- na první a čtvrtý člen aplikujeme pravidlo logického rozporu
Otázky k probranému učivu
Popište a vysvětlete: Logická proměnná a logická funkce
Popište a vysvětlete: Funkce jedné proměnné
Popište a vysvětlete: Funkce n proměnných
Popište a vysvětlete: Základní logické funkce
Popište a vysvětlete: Vyjádření Booleových funkcí:
Popište a vysvětlete: Úplná disjunktivní normální forma (ÚDNF)
Popište a vysvětlete: Úplná konjunktivní normální forma (ÚKNF)
Popište a vysvětlete: Minimalizace logických výrazů
Použitá literatura, kterou lze čerpat k dalšímu studiu
5. Význam minimalizace logických funkcí při tvorbě programu
Čas ke studiu: xx hodin
Cíl Po prostudování tohoto odstavce budete umět
Definovat, popsat: Minimalizace logických funkcí pomocí Karnaughových map
Výklad
5.1. Minimalizace logických funkcí pomocí Karnaughových map
Počet polí mapy odpovídá počtu možných kombinací na vstupu.
• Všechny jedničky v Karnaughově mapě musíme zakroužkovat, žádnou nesmíme vynechat
• Každá jednička může být současně součástí dvojice, čtveřice, atd., to znamená, že při
kroužkování se může vzít několikrát. Využíváme pravidla opakování.
• Přednost mají větší smyčky před menšími například osmice před čtveřicemi, čtveřice před
dvojicemi a dvojice před izolovanými jedničkami.
• Snažíme se vytvořit co nejmenší počet smyček s respektováním předchozích pravidel.
Karnaughova mapa pro:1 proměnnou
pod pruhem je hodnota logická 1, p = index pole
0 1
s1
p s1 Y
0 0 X
1 1 X
Karnaughova mapa pro:2 proměnné
0 2
1 3
s1
s2
p s1 s2 Y
0 0 0 X
1 0 1 X
2 1 0 X
3 1 1 X
Karnaughova mapa pro:3 proměnné
0 1
2 3
5 4
7 6
s1
s3
s2
p s1 s2 s3 Y
0 0 0 0 X
1 0 0 1 X
2 0 1 0 X
3 0 1 1 X
4 1 0 0 X
5 1 0 1 X
6 1 1 0 X
7 1 1 1 X
Karnaughova mapa pro:4 proměnné
0 2
1 3
10 8
11 9
5 7
4 6
15 13
14 12
s1
s2
s3
s4
p s1 s2 s3 s4 Y
0 0 0 0 0 X
1 0 0 0 1 X
2 0 0 1 0 X
3 0 0 1 1 X
4 0 1 0 0 X
5 0 1 0 1 X
6 0 1 1 0 X
7 0 1 1 1 X
8 1 0 0 0 X
9 1 0 0 1 X
10 1 0 1 0 X
11 1 0 1 1 X
12 1 1 0 0 X
13 1 1 0 1 X
14 1 1 1 0 X
15 1 1 1 1 X
Příklad:
Minimalizujte logickou funkci zadanou pravdivostní tabulkou pomocí Kargnaughovy mapy
p s1 s2 s3 Y
0 0 0 0 0
1 0 0 1 1
2 0 1 0 1
3 0 1 1 0
4 1 0 0 0
5 1 0 1 1
6 1 1 0 1
7 1 1 1 0
0 1
1 0
1 0
0 1
0 1
1 0
1 0
0 1
s3 s1
s2
Úplná disjunktivní normální forma pro funkci y je:
321321321321 SSSSSSSSSSSSY
Po minimalizaci při využití Karnaughovy mapy:
3223SSSSY
Příklad:
Minimalizujte logickou funkci zadanou pravdivostní tabulkou pomocí Kargnaughovy mapy
p s1 s2 s3 s4 Y
0 0 0 0 0 0
1 0 0 0 1 0
2 0 0 1 0 1
3 0 0 1 1 1
4 0 1 0 0 0
5 0 1 0 1 1
6 0 1 1 0 1
7 0 1 1 1 1
8 1 0 0 0 0
9 1 0 0 1 0
10 1 0 1 0 0
11 1 0 1 1 0
12 1 1 0 0 0
13 1 1 0 1 1
14 1 1 1 0 0
15 1 1 1 1 1
Minimalizaci logické funkce provedeme pomocí
Karnaughovy mapy.
0 1
0 1
0 0
0 0
1 1
0 1
1 1
0 0
s1
s2
s3
s4
Úplná disjunktivní normální forma pro funkci y je:
4321432143214321432143214321 SSSSSSSSSSSSSSSSSSSSSSSSSSSSY
Po minimalizaci při využití Karnaughovy mapy:
4213 SSSSY
Příklad:
Minimalizujte logickou funkci zadanou pravdivostní tabulkou pomocí Kargnaughovy mapy
p s1 s2 s3 s4 Y Minimalizaci logické funkce provedeme pomocí
0 0 0 0 0 1
1 0 0 0 1 0
2 0 0 1 0 0
3 0 0 1 1 0
4 0 1 0 0 1
5 0 1 0 1 0
6 0 1 1 0 0
7 0 1 1 1 0
8 1 0 0 0 1
9 1 0 0 1 0
10 1 0 1 0 0
11 1 0 1 1 0
12 1 1 0 0 1
13 1 1 0 1 0
14 1 1 1 0 0
15 1 1 1 1 0
Karnaughovy mapy.
1 0
0 0
0 1
0 0
0 0
1 0
0 0
0 1
s3 s1
s4
s2
Úplná disjunktivní normální forma pro funkci y je:
4321432143214321 SSSSSSSSSSSSSSSSY
Po minimalizaci při využití Karnaughovy mapy:
34 SSY
Příklad:
Navrhněte logický obvod, který upozorní obsluhu na poruchu, v případě zastavení jednoho nebo obou
motorů. Každý motor obsahuje snímač, který vyšle informaci v případě zastavení motoru.
M M
S1 S1
Logický obvod
Motor 1 Motor 2
Snímač 1 Snímač 2
Y
Přiřazení hodnot jednotlivých logických proměnných
Pro s1 = 1 pokud dojde k zastavení motoru 1
s1 = 0 pokud nedojde k zastavení motoru 1
Pro s2 = 1 pokud dojde k zastavení motoru 2
s2 = 0 pokud nedojde k zastavení motoru2
Pro y = 1 rozsvítí se kontrolka poruchy
y = 0 nerozsvítí se kontrolka poruchy
pravdivostní tabulka
p s1 s2 Y
0 0 0 0
1 0 1 1
2 1 0 1
3 1 1 1
Úplná disjunktivní normální forma pro funkci y je:
212121 ssssssY
tuto funkci minimalizujeme pomocí Boolovy algebry a dostaneme:
2112221121212121 ssssssssssssssssY
lze využít minimalizaci pomocí Karnaughovy mapy
0 1
1 1
s1
s2
výpis z Karnaughovy mapy
21 ssY
Příklad:
Navrhněte logickou funkci, která upozorní obsluhu v případě, že dvě nádrže s chladicí kapalinou jsou
prázdné.
S1 S2
Logický obvod
S3
Nádrž 1 Nádrž 2 Nádrž 3
Snímač 1 Snímač 2 Snímač 3
Y
Přiřazení hodnot jednotlivých logických proměnných
Pro s1 = 1 pokud nádrž č.1s chladicí kapalinou je prázdná
s1 = 0 pokud nádrž č.1s chladicí kapalinou je plná
Pro s2 = 1 pokud nádrž č.2s chladicí kapalinou je prázdná
s2 = 0 pokud nádrž č.2 s chladicí kapalinou je plná
Pro s3 = 1 pokud nádrž č.3 s chladicí kapalinou je prázdná
s3 = 0 pokud nádrž č.3 s chladicí kapalinou je plná
Pro y = 1 rozsvítí se kontrolka doplnění
y = 0 nerozsvítí se kontrolka doplnění
pravdivostní tabulka
p s1 s2 s3 Y
0 0 0 0 0
1 0 0 1 0
2 0 1 0 0
3 0 1 1 1
4 1 0 0 0
5 1 0 1 1
6 1 1 0 1
7 1 1 1 1
Úplná disjunktivní normální forma pro funkci y je:
321321321321 ssssssssssssY
Minimalizaci logické funkce provedeme pomocí Karnaughovy mapy
výpis z Karnaughovy mapy
323121 ssssssY
Příklad:
Plynový kotel má otevírat přívod plynu do kotle, když venkovní teplota klesne pod 16°C a nebo je
sepnut ruční spínač a když je voda v kotli nad minimální hodnotou a hoří zapalovací hořák.
Logický obvod
1s
2s
3s
4s
teplota
ruční spínač
hladina vody
zapalovací hořák
y přívod plynu
Pro s1 = 1 okolní teplota < 16°C
s1 = 0 okolní teplota ≥ 16°C
Pro s2 = 1 ruční spínač zapnut
s2 = 0 ruční spínač vypnut
Pro s3 = 1 voda nad minimální hladinou
s3 = 0 voda pod minimální hladinou
Pro s4 = 1 hoří zapalovací hořák
s4 = 0 nehoří zapalovací hořák
Pro y = 1 přívod plynu otevřen
y = 0 přívod plynu uzavřen
pravdivostní tabulka
p s1 s2 s3 s4 Y
0 0 0 0 0 0
1 0 0 0 1 0
2 0 0 1 0 0
3 0 0 1 1 0
4 0 1 0 0 0
5 0 1 0 1 0
6 0 1 1 0 0
7 0 1 1 1 1
8 1 0 0 0 0
9 1 0 0 1 0
10 1 0 1 0 0
11 1 0 1 1 1
12 1 1 0 0 0
13 1 1 0 1 0
14 1 1 1 0 0
15 1 1 1 1 1
Minimalizaci logické funkce provedeme pomocí
Karnaughovy mapy.
0 0
0 0
0 0
1 0
0 1
0 0
1 0
0 0
1s3s
2s
4s
Úplná disjunktivní normální forma pro funkci y je:
432143214321 ssssssssssssY
Po minimalizaci při využití Karnaughovy mapy:
423431 ssssssY
Příklad:
Navrhněte dekodér BCD kódu na sedmi segmentový displej.
Označíme si jednotlivé segmenty displej
y1
y2
y3
y6
y5
y7
y4
Sestavíme pravdivostní tabulku, segmenty které mají svítit, označíme „log. 1“
Pravdivostní tabulka
p s1 s2 s3 s4 y1 y2 y3 y4 y5 y6 y7
0 0 0 0 0 1 1 1 1 1 1 0
1 0 0 0 1 0 1 1 0 0 0 0
2 0 0 1 0 1 1 0 1 1 0 1
3 0 0 1 1 1 1 1 1 0 0 1
4 0 1 0 0 0 1 1 0 0 1 1
5 0 1 0 1 1 0 1 1 0 1 1
6 0 1 1 0 1 0 1 1 1 1 1
7 0 1 1 1 1 1 1 0 0 0 0
8 1 0 0 0 1 1 1 1 1 1 1
9 1 0 0 1 1 1 1 1 0 1 1
10 1 0 1 0 X X X X X X X
11 1 0 1 1 X X X X X X X
12 1 1 0 0 X X X X X X X
13 1 1 0 1 X X X X X X X
14 1 1 1 0 X X X X X X X
15 1 1 1 1 X X X X X X X
X – označuje volnou kombinaci. Může nabývat hodnot logické 0 nebo logické 1. Toto označení je
použito pro stavy, které nemohou nastat.
Úplná disjunktivní normální forma pro funkci y1 je:
432143214321432143214321432143211 ssssssssssssssssssssssssssssssssY
Minimalizaci logické funkce y1provedeme pomocí Karnaughovy mapy.
1 1
0 1
X 1
X 1
1 1
0 1
X X
X X
1s
2s
3s
4s
Po minimalizaci při využití Karnaughovy mapy:
4242311 ssssssY
Úplná disjunktivní normální forma pro funkci y2 je:
432143214321432143214321432143212 ssssssssssssssssssssssssssssssssY
Minimalizaci logické funkce y2 provedeme pomocí Karnaughovy mapy.
1 1
1 1
X 1
X 1
0 1
1 0
X X
X X
1s
2s
3s
4s
Po minimalizaci při využití Karnaughovy mapy:
434322 sssssY
Úplná disjunktivní normální forma pro funkci y3 je:
4321432143214321432143214321432143213 ssssssssssssssssssssssssssssssssssssY
Minimalizaci logické funkce y3 provedeme pomocí Karnaughovy mapy.
1 0
1 1
X 1
X 1
1 1
1 1
X X
X X
1s
2s
3s
4s
Po minimalizaci při využití Karnaughovy mapy:
4233 sssY
Úplná disjunktivní normální forma pro funkci y4 je:
43214321432143214321432143214 ssssssssssssssssssssssssssssY
Minimalizaci logické funkce y4 provedeme pomocí Karnaughovy mapy.
1 1
0 1
X 1
X 1
1 0
0 1
X X
X X
1s
2s
3s
4s
Po minimalizaci při využití Karnaughovy mapy:
4323423424 sssssssssY
Úplná disjunktivní normální forma pro funkci y5 je:
43214321432143215 ssssssssssssssssY
Minimalizaci logické funkce y5 provedeme pomocí Karnaughovy mapy.
1 1
0 0
X 1
X 0
0 0
0 1
X X
X X
1s
2s
3s
4s
Po minimalizaci při využití Karnaughovy mapy:
43425 ssssY
Úplná disjunktivní normální forma pro funkci y6 je:
4321432143214321432143216 ssssssssssssssssssssssssY
Minimalizaci logické funkce y6 provedeme pomocí Karnaughovy mapy.
1 0
0 0
X 1
X 1
1 0
1 1
X X
X X
1s
2s
3s
4s
Po minimalizaci při využití Karnaughovy mapy:
42433216 sssssssY
Úplná disjunktivní normální forma pro funkci y7 je:
43214321432143214321432143217 ssssssssssssssssssssssssssssY
Minimalizaci logické funkce y7 provedeme pomocí Karnaughovy mapy
0 1
0 1
X 1
X 1
1 0
1 1
X X
X X
1s
2s
3s
4s
Po minimalizaci při využití Karnaughovy mapy:
42322317 sssssssY
Otázky k probranému učivu
Použitá literatura, kterou lze čerpat k dalšímu studiu
6. Řešení kombinačních úloh
Čas ke studiu: xx hodin
Cíl Po prostudování tohoto odstavce budete umět
Definovat, popsat: Funkce hradel, Multiplexery
Výklad
6.1. Funkce hradel
Celkem existuje 16 různých možných typů 2 vstupových logických hradel. Nejjednodušší jsou AND a
OR. Tři další hojně používané hradla jsou NAND, NOR a EOR. Všechna tři složitější mohou být
složena se základních funkcí AND a OR, jak je znázorněno na obrázku 5.12 Konverze komplexních
logických funkcí .
Obr. Konverze komplexních logických funkcí
6.2. Multiplexery
Multiplexery umožňují připojit více zařízení k jednomu navazujícímu zařízení, které pracuje s daty
připojených zařízení. Tento systém se používá v telefonních ústřednách. Telefonní ústředna určí, který
telefon bude připojen k prostřednictvím přepínačů k jinému přístroji. Telefonní hovory se tak dají
uskutečnit s někým daleko bez samostatného vedení mezi oběma přístroji. Ve starších telefonních
ústřednách operátoři fyzicky propojovali vodiče. V moderní počítačové ústředně se děje totéž přepne,
ale s digitální hlasovými signály.
Na obr. 5.13 Multiplexer je nakreslen multiplexer, závislosti na hodnotách adresních bitů, A1 a A2
propojí jeden ze čtyř vstupů D1, D2, D3 a D4 na výstup.
Obr. Multiplexer
Žebříčkové logika programové formy multiplexeru lze vidět v obr. 5.14 multiplexeru v Ladder logice .
Obr. Multiplexer v žebříčkové logice
Otázky k probranému učivu
Popište a vysvětlete: Funkci hradel
Popište a vysvětlete: Multiplexery
Použitá literatura, kterou lze čerpat k dalšímu studiu
7. Řešení sekvenčních logických úloh, inicializace programu.
Čas ke studiu: xx hodin
Cíl Po prostudování tohoto odstavce budete umět
Definovat, popsat: Přídrže, Časovače, Čítače
Výklad
7.1. Přídrže
Přídrž je jako přepínač - když se zapne, zůstane zapnutý až do okamžiku, kdy je opět uvolněn, přepne
se do druhé polohy. Přídrž v žebříčkové logice používá jednu instrukci na zapnutí a druhou instrukci
na vypnutí, jak je znázorněno na Obrázku 8.2 Přídrž v Ladder diagramu . Výstup s písmenem L uvnitř
zapne výstup D, když je vstup A je jedničkový. D zůstane zapnuté, i když A bude nulové. Výstup D se
vypne, pokud vstup B bude jedničkový a výstup s písmenem U uvnitř má vstup v logické jedničce.
Pokud byl výstup přidržen (zachycen), bude držet svou hodnotu, a to i v případě, že jeho vstup bude
vypnut.
Obr. Přídrž v Ladder diagramu
Stav žebříčkové logiky v obr. 8.2 Přídrž v Ladder diagramu je ilustrován na časovém diagramu na
obrázku Časový diagram výstupu typu přídrž . Časový diagram udává hodnoty vstupů a výstupů v
závislosti na čase. Například hodnota vstupu A začíná na nule (false) a přechází do jedničky (true) a
po určité době zase klesne na nulu. Vidíme, že, pokud je vstup A v jedničce obou výstupy se zapnout
(budou jedničkové). Je vidět mírné zpoždění mezi změnou vstupů a z toho vyplývající změny výstupů
vzhledem k nastavené době skenování. V diagramu přerušované čáry představují výstupní scan
(zpracování výstupů, přepis jejich obrazů z paměti na fyzické výstupy), test systému a čtení vstupů (za
předpokladu, že tytu činnosti jsou velmi krátké.) Prostor mezi čárkovanými čarami je skenování
(provádění programu) žebříčkové logiky. Vidíte, že když se vstup zapne, zpočátku to není detekováno,
až do první přerušované čáry (zde se přečtou vstupy). Dále zde existuje zpoždění do další přerušované
čáry, zatímco je skenována žebříčková logika, a pak následuje výstup na další přerušovanou čarou.
Když se nakonec vypne normální výstup C, přídrž výstupu D způsobí, že se jeho stav nezmění. Vstup
B uvolní výstup D. Vstup B se zapne dvakrát, ale poprvé to není na dost dlouho, aby byl tento stav
detekován čtením vstupů, takže je ignorován. Podruhé uvolní výstup D a D výstup vypne.
Obr. Časový diagram výstupu typu přídrže
Časový diagram ukazuje Časový diagram výstupu typu přídrž obsahuje více detailů, než je běžné v
časovém diagramu, jak je znázorněno na obrázku 8.4 Typický časový diagram . Krátký impuls za
normálních okolností se nezpracuje a nemůže být využitý, řešením je, že systém buď prodlouží délku
impulsu, nebo snížení dobu scanu programu. Ideální systém by měl běžet tak rychle, že takový případ
(aliasing) by nebyl možný.
Obr. Typický časový diagram
7.2. Časovače
Existují čtyři základní typy časovačů, jak je znázorněno na obr. 8.7 Čtyři základní typy časovače .
Časovač se zpožděným zapnutím pokud přejde jeho vstup z logické nuly do logické jedničky, počká
stanovený čas a teprve pak jeho výstup bude aktivní, pokud ale jeho vstup bude nula, jeho výstup se
okamžitě vypne. Časovač se zpožděným vypnutím se zapne v okamžiku, kdy jeho vstup přejde z nuly
do jedničky, ale jeho vypnutí bude zpožděno. To znamená, že pokud jeho vstup přejde z logické
jedničky do logické nuly, jeho výstup bude ještě po stanovenou dobu aktivní. Časovač se zpožděným
zapnutím může být použit, aby pec dosáhla požadovanou teplotu teploty před zahájením výroby.
Časovač se zpožděným vypnutím použijeme, abychom udrželi chladicí ventilátory po stanovenou
dobu zapnuté poté, co již byla pec vypnuta.
Obr. Čtyři základní typy časovače
Retentivní časovače sumují všechny časy zapnutí (a vypnutí), přesto že časování nebylo ještě
dokončeno. Neretentivní časovač začne časování pokaždé od nuly. Typické aplikace pro retentivní
časovače patří sledování času chodu zařízení, aby bylo možno signalizovat potřebu údržby.
Neretintivní časovač může být použit pro tlačítko START a jeho signál krátce zpozdit před uvedením
dopravníku do pohybu.
Příklad časovače TON je znázorněn na obr. 8.8 Časovač TON . Příčka má jeden vstup A a funkční
blok TON. (Poznámka: Tento blok časovače bude vypadat pro různé PLC různě, ale bude obsahovat
stejné funkce.) Informace uvnitř bloku časovače popisují jeho časové parametry. První položka je
jméno časovače časovač "example". Toto jméno určuje místo v paměti PLC, do kterého se uloží
informace o nastavení časovače. Výchozí jednotka nastavení zpoždění jsou milisekundy, v tomto
případě vidíme, že je časování nastaveno na 4 s (4000 ms). Hodnota akumulátoru udává aktuální
hodnotu časovače, zde hodnotu 0. Když je časovač spuštěn hodnota akumulátoru se bude zvyšovat,
dokud nedosáhne nastavené hodnoty. Kdykoliv vstup A je aktivní, výstup EN časovače bude nastaven
na jedničku. Výstup DN časovače bude nabývat hodnotu nula (false) tak dlouho, dokud akumulátor
nedosáhne nastavené hodnoty. Výstupy EN a DN nelze při programování měnit, ale jsou důležité při
ladění žebříčkové logiky programu. Druhý řádek ladder logiky používá výstup časovače DN pro
ovládání jiný výstupu B.
Obr. Časovač TON
Časový diagram na obrázku 8.8 Časovač TON znázorňuje chování časovače TON s nastavením
časování 4 sekundy se zpožděným zapnutím. Pokud je vstup časovače nastaven na hodnotu jedna
výstup časovače EN - povolen (enable) bude také nastaven na hodnotu jedna (vlastně kopíruje svůj
vstup). Je-li hodnota akumulátoru rovna přednastavené hodnotě, bude nastaven výstup DN (done,
dočasoval). V opačném případě bude nastaven bit TT na jedničku (timer timing, časovač časuje) a
hodnota jeho akumulátoru se zvyšuje. V prvém případě, když je vstup A nastaven na jedničku jen po
dobu 3 sekund, pak se hodnota akumulátoru časovače vynuluje. (Poznámka: V případě retenčního
časovače hodnota akumulátoru zůstane na hodnotě 3 sekundy). Podruhé vstup A je aktivní po dobu
více než 4 sekundy. Po 4 sekundách bit TT se vynuluje se a bit DN se nastaví na jedničku. Když vstup
a přejde opět do nuly, akumulátor časovače se resetuje (nastaví na nulu) a DN bit je nastaven na nulu.
Hodnotu akumulátoru lze zadat při programování. Po nahrání programu do automatu bude tato
hodnota nastavena v časovači při prvním oběhu programu (skenování). Pokud časovač TON není
povolen, hodnota akumulátoru časovače bude nastavena na nulu.
Časovač na obr. 8.9 Retentivní časovač se zpožděným zapnutín je stejná jako v obr. 8.8 Časovače
TON , vyjma toho, že je retentivní. Hlavní rozdíl je v tom, že když je jeho vstup v logické nule,
hodnota akumulátor se nevynuluje. V důsledku toho se příště časovač zapne o již uplynulý čas dříve a
po dosažená přednastavené hodnoty již nečasuje. Proto je nutno použít instrukce Reset, která časovač
vynuluje.
Obr Allen Bradley Retenční On-Delay Timer
Časovač se zpožděným vypnutím je zobrazen na obr. 8.10 časovač se zpožděným vypnutím . Tento
časovač má časovou opět ms, s přednastavenou hodnotou 3500, což dává celkem zpoždění 3,5 s.
Stejně jako u časovače TON výstup EN enable časovače odpovídá jeho vstupu. Když je vstup A
jedničkový, nastaví se bit DN na jedničku. Zůstává jedničkový, i když vstup časovače přejde do nuly,
akumulátor časovače se načítá. DN bit přejde do nuly, když je vstup časovače dostatečně dlouho ve
stavu vypnuto (nula), aby hodnota akumulátoru dosáhla hodnoty předvolby. Tento typ časovače není
remanentní, takže když je vstup přejde z nuly do jedničky, akumulátor resetuje. Časovače se
zpožděným vypnutím má svůj výstup normálně vypnut (DN je false) do doby, než je poprvé
aktivován.
.
Obrázek 8.10 Časovač se zpožděným vypnutím
Retenční časovače se zpožděným vypnutím (RTF) mají málo aplikací a používají se jen zřídka.
7.3. Čítače
Existují dva základní typy čítačů: čítač nahoru (přičítá) a čítač dolů (odečítá). Kdykoli vstupu čítače
přejde z nuly do jedničky hodnota akumulátoru čítače se zvýší o 1 (bez ohledu na to, jak dlouho je
vstup v jedničce.) Dosáhne-li hodnota akumulátoru přednastavené hodnoty čítače, bude nastaven bit
DN do jedničky (výstup čítače). U čítače směrem dolů se s nástupnou hranou vstupu čítače (při jeho
přechodu z jedničky do nuly) se sníží hodnota akumulátoru, dokud není dosaženo přednastavené
hodnoty.
Čítač nahoru (CTU) je znázorněn na obr. 8.15 An Allen Bradley Counter . Instrukce vyžaduje paměť v
PLC, kde ukládá hodnoty a stav čítače, v tomto případě je nazvaná „příklad“. Přednastavená hodnota
je 4 a hodnota v akumulátoru je 2. Pokud vstupní A přejde do nula a pak opět do jedničky (přechod z
nuly do jedničky nazývme nástupnou hranou signálu) hodnota v akumulátoru se zvýší na 3. Pokud
vstup A opět přejde do nuly a pak opět do jeničky (další nástupná hrana) hodnota akumulátoru se
zvýší na hodnotu 4 a výstup DN se nasatví na jedničku. Čítač dočítal. Počítání může pokračovat nad
nastavenou hodnotu. Pokud vstup B je nastaven na jedničku, hodnota akumulátoru čítače bude
vynulována.
Obrázek 8.15 Čítač
Čítače směrem dolů jsou velmi podobné čítačům nahoru. A oba typy mohou být použity pro stejný
účel. Vezměme si příklad na obrázku 8.16 Příklad čítačů , vstupu cnt_up řídí vstup čítač CTU a vstup
cnt_down řídí vstup čítače CTD. Všimněme si, že se jedná o stejný časovač „example“. Instrukce
CTU zvyšuje hodnotu akumulátoru a instrukce CTD hodnotu téhož akumulátoru snižuje. Obě
instrukce mají i společný výstupní bit dočítal DN. Přednastavená hodnota čítače je uložena v paměti
označené „example“, oba čítače mají tudíž stejnou předvolbu. Vstup reset slouří pro vynulování čítače.
Obrázek 8.16 Počítadlo Příklad
Časový diagram na obr. 8.16 Counter příklad ukazuje chování čítačů. Budeme-li předpokládat, že
hodnota v akumulátoru začíná na 0, pak nástupné hrany na cnt_up vstupu způsobí, že se bude zvyšovat
hodnota čítače na hodnotu 3, s dalšími nástupnými hranami se hodnota akumulátoru čítače dále
zvyšuje. V okamžiku, kdy dosáhne akumulátor čítače přednastavené hodnoty 3, výstup čítače DN je
nastaven na hodnotu jedna. V okamžiku nástupné hrany vstupu reset se hodnota akumulátoru
vynulujea současně se nastaví do do nuly o vástup DN. Pulsy na vstupu cnt_up pak znovu způsobí, že
hodnota akumulátoru se opět zvyšuje, až dosáhne hodnoty 5. Pulzy na vstupu cnt_down pak způsobí,
že hodnota akumulátoru se sníží pod hodnotu 3 a a výstup DN přejde do nuly. Vstup cnt_up pak
způsobí, že se hodnota akumulátoru opět zvýší, ale vstup reset znovu čítač vynuluje, a pulsy na vstupu
cnt_up následně opět zvyšují hodnotu akumulátoru čítače až do hodnoty 3.
Otázky k probranému učivu
Popište a vysvětlete: Přídrže
Popište a vysvětlete: Časovače
Popište a vysvětlete: Čítače
Použitá literatura, kterou lze čerpat k dalšímu studiu
8. Matematika na počítači v programu PLC.
Čas ke studiu: xx hodin
Cíl Po prostudování tohoto odstavce budete umět
Definovat, popsat: Číselné soustavy, Manipulace s daty, Matematické funkce, Logické
funkce, Booleovské funkce
Výklad
9.1. Číselné soustavy
Číselné soustavy
m
m
n
n
n
n zazazazazazazaX
2
2
1
1
0
0
1
1
2
2
1
1
z – základ soustavy (desítková z = 10; osmičková z = 8)
z i – vyjadřuje příslušnou váhu
a i – představuje hodnotu příslušející váze z i
Příklad:
Zápis čísla 123,45 v desítkové soustavě
10
21012
54,321
10510410310210145,123
Příklad:
Zápis čísla 11,111 v dvojkové soustavě
2
32101
111,11
2121212121111,11
Převody soustav
Převod čísla ze soustavy s různým základem do soustavy desítkové
Vyčíslíme jednotlivé mocniny základu
Vynásobíme jednotlivými koeficienty
Jednotlivé součiny sečteme
Výsledek v desítkové soustavě
Příklad:
Převeďte číslo 2)111,1011( do soustavy desítkové:
875,11125,025,05,0128
125,0125,015,011121081
21212121212021)111,1011( 3210123
2
102 )875,11()111,1011(
Příklad:
Převeďte číslo 2)1101110( do soustavy desítkové:
1102483264
02141810321641
20212121202121)1101110( 0123456
2
102 )110()1101110(
Příklad:
Převeďte číslo 4)32,23( do soustavy desítkové:
875,11125,075,038
0625,0225,031342
42434342)32,23( 2101
2
104 )875,11()32,23(
Příklad:
Převeďte číslo 8)7,13( do soustavy desítkové:
875,11875,038
125,071381
878381)7,13( 101
8
108 )875,11()7,13(
Příklad:
Převeďte číslo 8)521,174( do soustavy desítkové:
65821,1240195,03126,0625,045664
00195,01015625,02125,051487641
818285848781)521,174( 321012
8
108 )65821,124()521,174(
Převod čísla ze soustavy desítkové do soustav s různým základem
Pro převod čísel z desítkové soustavy lze využit dvou metod:
Metoda postupného odečítání
Metoda postupného dělení a násobení
Metoda postupného odečítání spočívá v nalezení všech mocnin a jejich počtu v zadaném čísle. Je
snadno použitelná pro převod do soustavy o základu 2, neboť odpadá určení počtu jednotlivých
mocnin základu.
U metody postupného dělení a násobení se celočíselná a zlomková část čísla převádí odděleně.
Celočíselná část čísla se dělí základem soustavy, do které číslo převádíme. Zbytek po dělení
představuje nejnižší platnou číslici. Výsledek po dělení se opět podělí základem. Postup se opakuje, až
je výsledek dělení menší než základ soustavy, který pak představuje nejvyšší platnou číslici.
Příklad:
Převeďte číslo 10)2547( z desítkové soustavy do soustavy dvojkové metodou postupného dělení a
násobení:
012:2
022:4
142:9
192:19
1192:39
1392:79
1792:159
01592:318
03182:636
16362:1273
112732:2547
zbytek
zbytek
zbytek
zbytek
zbytek
zbytek
zbytek
zbytek
zbytek
zbytek
zbytek
210 111001111100)2547(
Příklad:
Převeďte číslo 10)7492( z desítkové soustavy do soustavy osmičkové metodou postupného dělení a
násobení:
618:14
5148:117
01178:936
49368:7492
zbytek
zbytek
zbytek
zbytek
810 16504)7492(
Příklad:
Převeďte číslo 10)68,138( z desítkové soustavy do soustavy dvojkové metodou postupného dělení a
násobení:
012:2
022:4
042:8
182:17
0172:34
1342:69
0692:138
zbytek
zbytek
zbytek
zbytek
zbytek
zbytek
zbytek
104,1252,0
152,1276,0
176,1288,0
088,0244,0
144,1272,0
072,0236,0
136,1268,0
zbytek
zbytek
zbytek
zbytek
zbytek
zbytek
zbytek
Příklad:
Převeďte číslo 10)11,111( z desítkové soustavy do soustavy dvojkové metodou postupného dělení a
násobení:
112:3
032:6
162:13
1132:27
1272:55
1552:111
zbytek
zbytek
zbytek
zbytek
zbytek
zbytek
104,1252,0
152,1276,0
176,1288,0
088,0244,0
044,0222,0
022,0211,0
zbytek
zbytek
zbytek
zbytek
zbytek
zbytek
9.2. Manipulace s daty
Move
Existují dva základní typy funkcí přesunu dat;
MOV (hodnota, cíl) - přesune hodnotu do místa v paměti
MVM (hodnota, maska, cíl) - přesune hodnotu do paměti, ale s maskou pro výběr konkrétní bitů.
Jednoduchý MOV přesuna obsah z jednoho místa v paměti a umístí jej na jiné místo v paměti.
Příklady základního MOV jsou uvedeny v obr. 14,2 příklady funkce MOV . Když A jedničkové, že
funkce MOV přesune číslo od zdroje (source) na cílovou adresu (dest). Údaje ve zdrojovém místě jsou
ponechány beze změny. Když vstup B jedničkový, desetinné číslo uložené v místě source test_real_1
bude převedeno na celé číslo a uloženo na cílovou adresu v paměti test_int jako celé číslo. Číslo v
plovoucí desetinné čárce, bude zaokrouhlena nahoru nebo dolů na nejbližší celé číslo. Když C nabude
hodnoty jedna, celočíselná hodnota 123 bude zapsána do paměťového místa test_int.
Obrázek 14.2 Příklady funkce MOV
Složitější příklad funkcí přesunů je uveden na obrázku 14.3 Příklad instrukcí MOV a MVM s
binárními hodnotami . V okamžiku, kdy vstup A nabude hodnoty true, v prvním kroce instrukce MOV
zapíše hodnotu 130 do paměti na místo INT_0. V dalším kroce příkaz MOVpřesune hodnotu -9385 z
int_1 na int_2. (Poznámka: Číslo je zobrazeno jako záporné, binární hodnota je ve dvojkovém
doplňku.) Pro jednoduché instrukce MOV nejsou binární hodnoty nutné, ale pro instrukce MVM jsou
uvedené binární hodnoty nezbytné pro pochopení funcke. Instrikce přesune bity z int_3 do int_5, ale
pouze ty, které jsou pozičně obsaženy v masce int_4, ostatní bity v cílovém místě jsou ponechány beze
změny. Všimněte si, že první bit int_5.0 zůstvá v cílové adrese jedničkový před i po provedení
instrukce MVM, ale v masce bit nula je nulový,. Funkce MVM je velmi užitečné pro aplikace, kde
manipulován jednotlivými binární bity, ale jsou méně užitečné při ¨práci s číselnými hodnotami.
Obrázek 14.3 Příklad instrukcí MOV a MVM s binárními hodnotami
9.3. Matematické funkce
Matematické funkce obdrží jednu nebo více hodnot, provéedou matematickou operaci a uloží výsledek
do paměti. Obrázek 14,4 Aritmetické Funkce ukazuje funkci ADD, která bude načítat hodnoty z int_1
a real_1, převést je tak na typ hodnoty cílové adresy, převede na hodnotu v plovoucí desetinné čárce a
uloží výsledek do proměnnní real_2. Funkce má dva zdroje označené zdroj A a zdroj B. V případě
funkce sčítání pořadí zdrojů se může změnit, což ale není možné u dalších operací, jako je odčítání a
dělení. Seznam dalších jednoduchých aritmetických funkci je uveden následně. Některé z funkcí, jako
je například změna znaménka čísla jsou funkce unární, takže obsahují jen jeden zdroj.
Obrázek 14.4 Aritmetické funkce
Použití matematických funkcí je znázorněno na obrázku Aritmetické funkce . Většina operací dá
očekávaný výsledeki. Druhá funcke ADD funkce bere hodnotu z int_3 a k ní přičte 1 a a zapíše
výsledek do místa source int_3, jde o známou inkrementaci hodnoty proměnné int_3. První instruukce
DIV dělí celé číslo 25 číslem10, výsledek se zaokrouhlí na nejbližší celé číslo, v tomto případě 3, a
výsledek je uloží ¨do proměnné int_6. Instrukce NEG má jako novou hodnotu -10 proměnné int_4,
nikoli původní hodnotu 0, obrací znaménko a uloží hodnotu výsledku do int_7.
Obrázek 14.5 Aritmetický Příklad funkce
Seznam dalších funkcí je uveden na obr. 14,6 Pokročilé matematické funkce . Tento seznam obsahuje
základní trigonometrické funkce, exponenty, logaritmy a odmocniny. Poslední funkce CPT bude
přijímat výraz a provede komplexní výpočet.
Obrázek 14.6 Pokročilé matematické funkce
Obrázek 14.7 rovnice v žebříčkové logiky ukazuje příklad, kde rovnice naprogramována v žebříčkové
logice. Prvním krokem při převodu je převést proměnné v rovnici do nevyužitých paměťových míst v
PLC. Rovnice může pak být převedena za použití vnořených výpočtů, jako je například funkce LN. V
tomto případě jsou výsledky funkce LN uloženy na jiné místo v paměti, které využijeme později.
Ostatní operace jsou prováděny podobným způsobem. (Poznámka:. Tato rovnice může být realizován
v jiných formách, pomocí menšího množství paměťových míst)
Obrázek 14.7 Rovnice v žebříčkové logice
Stejná rovnice v obr. 14,7 rovnice v žebříčkové logiky by byla realizovány funkcí CPT jak je
znázorněno na obr. 14,8 Výpočty s funkcí Compute . Rovnice používá stejné umístění paměti jako
příklad na obr. 14,7 rovnice v Ladder logice . Výraz je zadaný přímo do programu PLC.
Obrázek 14.8 Výpočty s funkcí Compute
Matematické funkce můžou způsobit chyby jako je přetečení, přenos, atd. Musíme dávat pozor, aby
nedošlo k problémům, jako je například přetečení čísle. Tyto problémy jsou méně časté při použití
výpočtu v plovoucí desetinné čárce. Celá čísla jsou k těmto problémům náchylnější, protože jsou
omezeny svým rozsahem.
9.4. Logické funkce
14.2.1 Porovnání hodnot
Funkce porovnávání jsou zobrazeny na obr. 14,15 relační funkce . Předchozí funkční bloky byly
výstupy, tyto funkce nahrazují kontakty vstupů. Ppříklad ukazuje rovnici (rovná se) funkci, která
porovnává dvě čísla s plovoucí desetinnou čárkou. Pokud jsou čísla stejná, výstupní bit light je
jedničkový, jinak je nulový. Jiné druhy rovnosti funkcí jsou uvedeny pod příkladem.
Obrázek 14.15 Porovnání funkcí
Příklad na obr. 14,16 Porovnávací funkce ukazuje šest základních porovnávacích funkcí. Na pravé
straně obrázku jsou příklady relačních operací.
Obrázek 14.16 Příklady funkce porovnání
Můžeme použít namísto předešlých funkcí funkcí uvedených na Použití CMP s funkcí CMP, který
umožňuje textovézápisy relačních operací.
Obrázek 14.17 Použití CMP
Ve funkce CMP mohou být použity složitější výrazy pro složitější porvnávání, jak je znázorněno na
obr. 14,18 složitější porovnání . Výraz určí, zda je A mezi B a C.
Obrázek 14.18 Složitější výraz porovnání
9.5. Booleovské funkce
Obrázek 14.22 Booleovské funkce zobrazuje funkci Booleovy algebry. Uvedená funkce získá vstupy
ze slov z bitové paměti, provede logickou operaci a uloží výsledky do nového umístění v bitové
paměti. Tyto funkce jsou orientovány na operace na úrovni slov. Schopnost provádět logické operace
umožňuje provést logické operace na více než jednom bitu.
Obrázek 14.22 Booleovské funkce
Použití logických funkcí je znázorněno na obr. 14,23 Příklad logických funkcí . První tři funkce
vyžadují dva argumenty, zatímco poslední funkce vyžaduje pouze jeden. Funkce AND nastaví ty bity
ve výsledku, které jsou jedničkové v obou zdrojových slovech. Funkce OR nastaví ne jedničku ve
výsledném slově ty bity které jsou jedničkové alespoň v jednom zdrojovém slově, pokud jeden právě z
bitů ze zdrojovýcjh slov je v insrukce.XOR jedničkový funkce nastaví na jedničku příslušný bit ve
výsledném slově. Funkce NOT neguje všechny bity ve zdrojovém slově.
Obrázek 14.23 Příklady logických funkcí
Otázky k probranému učivu
Popište a vysvětlete: Číselné soustavy
Popište a vysvětlete: Manipulace s daty
Popište a vysvětlete: Matematické funkce
Popište a vysvětlete: Logické funkce
Popište a vysvětlete: Booleovské funkce
Použitá literatura, kterou lze čerpat k dalšímu studiu
9. Práce s textem,
Čas ke studiu: xx hodin
Cíl Po prostudování tohoto odstavce budete umět
definovat ......
popsat ...
vyřešit ....
Výklad
ASCII (American Standard cod efor information interchange)
Pokud pracujeme s nečíselnými údaji můžeme použít znaky a textové řetězce. Každý znak je má
jedinečný kód a můžeme používat k ukládání a interpretování data. ASCII (American Standard kód
pro výměnu informací), je velmi běžný kódová tabulka je znázorněn na obr. 12,17 znak ASCII tabulky
a obr. 12,18 ASCII tabulky znaků .Tabulka obsahuje základní písemné znaky, stejně jako některé
speciální znaky, a některé řídicí kódy. Každému z nich je přiděleno jedinečné číslo. Na příklad
písmeno A na většině počítačů po celém světě bude mít hodnotu 65 dekadicky nebo 41
hexadecilmálně.
Obrázek 12.17 ASCII tabulky znaků
Obrázek 12.18 ASCII tabulky znaků
Tato tabulka uvádí kódy 0-127, ale jsou rozsáhlejší tabulky, které obsahují zvláštní grafické symboly,
mezinárodní znaky, atd. Nejvodnější je používat pouze základní kódy do hodnoty 127, protože jsou
široce podporovány, a měly by stačit pro všechny ovládací prvky úlohy.
Příklad řetězce znaků kódovaných v ASCII je uveden v obr. 12,19 řetězec znaků zakódovaných ve
formátu ASCII .
Obrázek 12.19 Řetězec znaků zakódovaných v ASCII
Pokud jsou znaky uspořádány do řetězce, které mají být vysílány jsou znaky LF a / nebo CR často
zařazeny na konec řetězce označující konec řádku. Při ukládání řetězce v počítači ASCII hodnota nula
se používá k ukončení řetězce.
Otázky k probranému učivu
Použitá literatura, kterou lze čerpat k dalšímu studiu
10. Real-time výpočty v PLC, řízení úloh.
Čas ke studiu: xx hodin
Cíl Po prostudování tohoto odstavce budete umět
definovat ......
popsat ...
vyřešit ....
Výklad
Operační systém je soubor programů, které spolu s dalšími vlastnosti výpočetního systému tvoří
základ pro pracovní režimy výpočetního systému. Zejména vykoná řízení a dohled nad běžícími
programy. Programovatelné automaty PLC jsou vybaveny zpravidla jednoduchým, spolehlivým
operačním systémem reálného času. Jednoduchost a spolehlivost operačního systému (OS)
programovatelných automatů hraje významnou roli v konkurenceschopnosti PLC oproti IPC a dalším
prostředkům průmyslové automatizace.
Obr. 9: Cyklický režim PLC
Režim přerušení může být parametrizován, takže časově kritické akce mohou být obslouženy mimo
cyklus PLC.
Proto je v PLC implementována některá z forem mnohonásobného provádění úloh, tzv. multitasking.
V současné době, kdy většina PLC má k disposici jen jednu CPU, nejde
o skutečný paralelní běh úloh na multiprocesorovém systému, ale pouze o souběžné vykonávání
několika úloh na jediném procesoru. V dalším uveďme princip jednoduchého multitaskingového
systému, implementovaného často na stávajících PLC.
Jedná se o jistou jednoduchou formu multitaskingu, kdy i zde lze rozlišovat přerušení od časovače
(time-driving-multitasking) a přerušení od procesu (event- driving-multitasking). Na Obr. 10 je
znázorněna funkce PLC při time-driving-multitasking [ 1 ].
Jednotlivým úlohám (task) jsou přiřazeny priority 1 až 4. Čím vyšší číslo, tím vyšší priorita. Úlohy 4 a
2 se vykonávají v každém cyklu, protože jde o časově kritické úlohy, které nestačí ošetřovat s delší
periodou. Naopak úlohy 3 a 1 stačí ošetřovat jen každý druhý cyklus. Na Obr. 10 je dále vidět, že dle
priority jsou tasky vykonávány v pořadí 4-3-2-1 a dále to, že doba cyklu není dostatečně dlouhá, takže
task 1 se nestačí vykonat v jednom cyklu. Zbytek úlohy (task1) se proto musí vykonat v následujícím
cyklu, ale s prioritou nižší, než mají úlohy
4 a 2. V tomto režimu může každý uživatel psát svoji úlohu nezávisle na ostatních úlohách.
Každý task využívá samostatně "svoje vstupní veličiny". Funkce přerušení je podobná i v případě
přerušení od procesu. Kupř. změna vstupní veličiny způsobí start příslušného tasku. Některé
multitaskové systémy umožňují libovolnému tasku využívat libovolné proměnné (vstupní, vnitřní
proměnné).
Obr. 10:Time-driving-multitasking u PLC
I při existenci přerušení zůstává ve většině případů cyklický režim funkce, znázorněný na Obr.
9, základním pracovním režimem. Doba cyklu PLC je zpravidla definována jako doba, kterou PLC
potřebuje k načtení dat, vyslání dat na výstupy a zpracování 1k instrukcí (nikoli 1 instrukce, neboť
program o 1 instrukci nedává smysl). Typická doba cyklu moderních PLC (k roku 2000) je 1 - 5 ms,
přičemž PLC s rychlými CPU do 1 ms jsou k disposici (Mitshubishi a další).
Otázky k probranému učivu
Použitá literatura, kterou lze čerpat k dalšímu studiu
11. Časovače a čítače pro řešení v reálném čase-úkoly.
Čas ke studiu: xx hodin
Cíl Po prostudování tohoto odstavce budete umět
definovat ......
popsat ...
vyřešit ....
Výklad
Otázky k probranému učivu
Použitá literatura, kterou lze čerpat k dalšímu studiu
12. Sekvencéry a jejich využití.
Čas ke studiu: xx hodin
Cíl Po prostudování tohoto odstavce budete umět
Definovat, popsat: Sekvencery
Výklad
13.1. Sekvencery
Mechanická hrací skříňka je jednoduchý příklad sekvenceru. Na bubínku, který se otáčí, jsou malé
kolíčky, které vychylují jazýčky. Ty pak po uvolnění kmitají a vydávají tón určité výšky. Pořadí s
počtem kolíčků udává pořadí a množství tónů v jednotlivých časových okamžicích. Sekvence tónů
písničky je pevně stanovena. Semaforu jsou nyní řízeny elektronikou, ale dříve používaly sekvencery,
které byly založeny na rotačním bubnu s vačkami, které určovaly pořadí a dobu zapnutí jednotlivých
světel semaforu. Jedna z těchto vaček je znázorněna na obrázku 15.6 Single Cam v Drum Sequencer .
Vačka se pomalu otáčí a plochy pod kontakty budou stoupat a klesat a dojde k rozepnutí a sepnutí
kontaktů. Pro řadič semaforu by otáčky určily celkovou doby cyklu semaforu. Každá vačka bude
ovládat jedno světlo, a úpravou délky jednotlivých částí obvodu délku lze nastavit zapnutí a vypnutí
každého světla.
Obrázek 15.6 Single Cam v Drum Sequencer
Sekvencer PLC používá seznam slov v paměti. Sekvencer načítá v daném okamžiku jedno ze slov
seznamu a přesouvá jeho obsah na jiné místo v paměti nebo na výstupy. Když je dosaženo konce
seznamu sekvencer se vrátí na první slovo a proces začíná znovu. Sekvencer je znázorněn na obrázku
15.7 Základní Instrukce třídiče . Instrukce SQO načte slova z bitové paměti začíná na sekvence[0].
Délka je 4, takže konec seznamu bude sekvence [0] + 4 nebo sekvence[4] (celková délka "sekvence"
je ve skutečnosti 5). Řadič je spuštěn hranou signálu, a na každou nástupnou hranu načte slovo ze
seznamu a přesune jej na svůj výstup output_lights. Když sekvencer dosáhne konec seznamu, vrátí se
na druhé místo v seznamu pořadí [1]. První položka v seznamu je sekvence [0] a to bude odeslána na
výstup, pouze pokud je instrukce SQO aktivní během prvního skenu PLC, jinak je první slovo
odesílané na výstupu je sekvence [1]. Hodnota masky je 000Fh nebo 0000000000001111b a tak pouze
čtyři nejméně významné bity budou zapsány na výstup, ostatní bity výstupu nelze změnit. Ostatní
instrukce umožňují manipulaci se slovy, které mají být přidány nebo odstraněny ze seznamu
sekvenceru.
Obrázek 15.7 Základní Instrukce sekvenceru
Příklad sekvenceru je uveden na obr. 15,8 sekvencer pro řízení semaforu pro řízení semaforu.
Sekvence příznaků jsou uloženy v paměti (ručně programátorem). Ty jsou pak přesunuty na výstupní
karty, tak jak je aktivována funkce sekvenceru. Maska (003Fh = 0000000000111111b) bude
znamenat, že pouze 6 nejméně významných bitů na výstupu se změní.
Obrázek 15.8 Sequencer pro řízení semaforu
Otázky k probranému učivu
Popište a vysvětlete: Sekvencery
Použitá literatura, kterou lze čerpat k dalšímu studiu
13. Ladění programu.
Čas ke studiu: xx hodin
Cíl Po prostudování tohoto odstavce budete umět
definovat ......
popsat ...
vyřešit ....
Výklad
Otázky k probranému učivu
Použitá literatura, kterou lze čerpat k dalšímu studiu
14. Ovládání programu.
Čas ke studiu: xx hodin
Cíl Po prostudování tohoto odstavce budete umět
definovat ......
popsat ...
vyřešit ....
Výklad
Otázky k probranému učivu
Použitá literatura, kterou lze čerpat k dalšímu studiu