Řešení příkladů z 1. dílu: Řešení – rozbor slovních úloh Příklad b) : Na automatickém plnícím zařízení se plní vyráběný nápoj do láhví současně až třemi plnícími hlavami napojenými na menší společný zásobník doplňovaný čerpadlem. Vzhledem k výkonu čerpadla je třeba jeho spínání a vypínání zabezpečit tak, aby běželo vždy, když výška hladiny v zásobníku nedosahuje své maximální hodnoty anebo, když aspoň dvě ze tří plnících hlav jsou současně v provozu. Ve všech ostatních situacích je čerpadlo zastaveno. Zeleně je označeno, kde by bylo vhodné umístit snímač, budeme potřebovat tři snímače pro zjištění zapnutí jednotlivých plnících hlav a jeden snímač pro zjišťování výšky hladiny v zásobníku, tedy celkem potřebujeme čtyři čidla. Červeně je označeno místo, které představuje požadovanou činnost navrhovaného zařízení, v tomto případě je to spínání a vypínání čerpadla. 1.
vstupní proměnné … 3 plnící hlavy a 1 snímač hladiny (4 snímače) => 4 proměnné např. a, b, c, d pro jistotu uvedeme výroky: proměnná a … „první plnící hlava je v provozu“ … pokud ano, pak a = 1; pokud ne, pak a = 0 proměnná b … „druhá plnící hlava je v provozu“… pokud ano, pak b = 1; pokud ne, pak b = 0 proměnná c … „třetí plnící hlava je v provozu“ … pokud ano, pak c = 1; pokud ne, pak c = 0 proměnná d … „snímač hladiny je pod maximem“… pokud ano, pak d = 1; pokud ne, pak d = 0 (snažíme se výroky zapsat tak, aby představoval stav, kdy je potřeba sepnou čerpadlo)
2.
výstupní proměnné … 1 signál (sepnutí čerpadla) => 1 výstupní funkce f výstupní funkce f … „čerpadlo je sepnuto“ … ano, je-li f = 1; ne, je-li f = 0
vlastní logiku, tedy to, kdy se opravdu sepne čerpadlo, provádí navržený logický obvod podle zadání tj.: „v případě, že výška hladiny v zásobníku nedosahuje své maximální hodnoty anebo, když aspoň dvě ze tří plnících hlav jsou současně v provozu“
Příklad c) : K zajištění pitné vody pro výškový dům je ve sklepě umístěna hlavní nádrž a na střeše rezervní nádrž. Voda se čerpá do vodovodního systému a do rezervní nádrže pomocí hlavního čerpadla nebo pomocí rezervního čerpadla, které začne pracovat v případě poruchy hlavního čerpadla automaticky. Rezervní nádrž na střeše slouží k vyrovnání vodního tlaku při kolísání výkonu jednoho nebo druhého čerpadla. Čerpadla smějí pracovat jen tehdy, jestliže je splněno několik podmínek: koncentrace znečištění vody není příliš vysoká, síťové napětí pro pohon čerpadel není příliš nízké, v hlavní nádrži je dost vody a rezervní nádrž není plná. Musí se také samozřejmě zjistit, zda jsou obě čerpadla a jejich filtry v pořádku. Napřed se podíváme, kam je zapotřebí umístit čidla: -
čidlo poruchy hlavního čerpadla čidlo poruchy rezervního čerpadla čidlo stavu filtru hlavního čerpadla čidlo stavu filtru rezervního čerpadla čidlo překročení koncentrace znečištění vody čidlo pro pokles síťového napětí
-
čidlo pro minimum hladiny vody v hlavní nádrži čidlo pro maximum hladiny v rezervní nádrži
1.
vstupní proměnné … celkem 8 čidel => 8 proměnných např. a, b, c, d, e, f, g, h pro jistotu uvedeme opět výroky: proměnná a … „hlavní čerpadlo má poruchu“ … pokud ano, pak a = 1; pokud ne, pak a = 0 proměnná b … „rezervní čerpadlo má poruchu“… pokud ano, pak b = 1; pokud ne, pak b = 0 proměnná c … „filtr hlavního čerpadla je v pořádku“ … pokud ano, pak c = 1; pokud ne, pak c = 0 proměnná d … „filtr rezervního čerpadla je v pořádku“… pokud ano, pak d = 1; pokud ne, pak d = 0 proměnná e … „koncentrace znečištění vody překročena“ … pokud ano, pak e = 1; pokud ne, pak e = 0 proměnná f … „nízká úroveň síťového napětí“… pokud ano, pak f = 1; pokud ne, pak f = 0 proměnná g … „hladina vody v hlavní nádrži pod min.“ … pokud ano, pak g = 1; pokud ne, pak g = 0 proměnná h … „hladina vody v rezervní nádrži nad max.“… pokud ano, pak h = 1; pokud ne, pak h = 0
2.
výstupní proměnné … 2 signály (sepnutí čerpadel) => 2 výstupní funkce f1, f2 výstupní funkce f1 … „hlavní čerpadlo je zapnuto“ … ano, je-li f1 = 1; ne, je-li f1 = 0 výstupní funkce f2 … „rezervní čerpadlo je zapnuto“ … ano, je-li f2 = 1; ne, je-li f2 = 0
vlastní logiku, tedy to, kdy se které čerpadlo opravdu sepne, provádí navržený logický obvod podle zadání tj.: pro hlavní čerpadlo: „v případě, že koncentrace znečištění vody není příliš vysoká, síťové napětí pro pohon hlavního čerpadla není příliš nízké, v hlavní nádrži je dost vody a rezervní nádrž není plná. Musí se také samozřejmě zjistit, zda je hlavní čerpadlo a jeho filtr v pořádku“ pro rezervní čerpadlo: „v případě poruchy hlavního čerpadla a zároveň v případě, že koncentrace znečištění vody není příliš vysoká, síťové napětí pro pohon hlavního čerpadla není příliš nízké, v hlavní nádrži je dost vody a rezervní nádrž není plná. Musí se také samozřejmě zjistit, zda je rezervní čerpadlo a jeho filtr v pořádku“
Příklad d) : Stroj je chlazen dvěma ventilátory. Správnou funkci ventilátoru hlídá senzor, který při poruše ventilátoru dává signál log. 1. Navržený logický obvod bude signalizovat, že stroj je chlazen jen jedním ventilátorem a v případě poruchy obou ventilátorů stroj zastaví. 1.
vstupní proměnné … 2 ventilátory (2 snímače) => 2 proměnné např. a, b uvedeme výroky: proměnná a … „první ventilátor má poruchu“ … pokud ano, pak a = 1; pokud ne, pak a = 0 proměnná b … „druhý ventilátor má poruchu“… pokud ano, pak b = 1; pokud ne, pak b = 0
2.
výstupní proměnné … 1 signál (např. led dioda) a 1 akce (zastavení stroje)=> 2 výstupní funkce f1 a f2 výstupní funkce f1 … „led dioda svítí“ … ano, je-li f1 = 1; ne, je-li f1 = 0 výstupní funkce f2 … „vypnutí napájení stroje“ … ano, je-li f2 = 1; ne, je-li f2 = 0
logika podle zadání tj.:
pro signalizaci: „v případě, že stroj je chlazen jen jedním ventilátorem“ pro zastavení: „v případě, že oba ventilátory mají poruchu“
Příklad e) : Automatika plynového kotle určeného k vytápění rodinného domku má zajistit otevření přívodu plynu do kotle, když vnitřní teplota klesne pod 18° anebo je sepnut ruční spínač. Musí být zajištěno, aby tlak vody v okruhu kotle byl nad minimální hodnotu a aby hořel zapalovací hořáček. 1.
vstupní proměnné … 4 snímače => 4 proměnné např. a, b, c, d výroky: proměnná a … „vnitřní teplota klesla pod 18°“ … pokud ano, pak a = 1; pokud ne, pak a = 0 proměnná b … „ruční spínač je sepnut“… pokud ano, pak b = 1; pokud ne, pak b = 0 proměnná c … „tlak vody nad min.“ … pokud ano, pak c = 1; pokud ne, pak c = 0 proměnná d … „hořáček hoří“… pokud ano, pak d = 1; pokud ne, pak d = 0 (snažíme se výroky zapsat tak, aby představoval stav, kdy je potřeba otevřít přívod)
2.
výstupní proměnné
…
1 akce => 1 výstupní funkce f
výstupní funkce f … „otevřen přívod plynu do kotle“ … ano, je-li f = 1; ne, je-li f = 0 logika podle zadání tj.: „v případě, že vnitřní teplota klesne pod 18° anebo je sepnut ruční spínač“
Řešení - zjednodušení logické funkce pomocí pravidel Booleovy algebry
a)q x yz xyz xy z xz(y y) xy z xz xy z b)y abc abc abc ac(b b) abc ac abc c)y abc abc abc abc ac(b b) ac(b b) ac ac a d )y x 1 x 2 x 3 x 1 x 2 x 3 x 1 x 2 x 3 x 1 x 2 x 3 x 2 x 3 x 1 x 3 e)y x 2 x 1 x 0 x 2 x 1 x 0 x 2 x 1 x 0 x 2 x 1 x 0 x 1 x 0(x 2 x 2) x 2 x 0(x 1 x 1) x 1 x 0 x 2 x 0 f )y abc abc abc abc ab ab b g)y abc abc abc abc ac ab h)y x 2 x 1 x 0 x 2 x 1 x 0 x 2 x 1 x 0 x 2 x 1 x 0 x 2 x 0 x 2 x 0 i)y abc abc abc abc abc ab bc abc b(a ac) bc ab bc bc ab c j)y abc abc abc abc abc abc ac ab abc abc a(c bc) a(b bc) ac ab ab ac c ab ab k)y abc abc abc abc abc abc abc abc ...[b a c ] l)y abc abc abc abc ...[c ] m)y abc abc abc abc ...[bc ab] n)y abcd abcd abcd abcd ...[bd ] o)y abc d abcd abcd abcd [c(bd bd )] f )y abc abc abc abc ...[ab ab] g)y abc abc abc abc abc abc ...[a c ] h)y abc abc bc d bcd ...[bc ]
Řešení - zjednodušení logické funkce pomocí pravidel De Morgana
a)y a d (b ac) a(d (b ac)) a(d b ac) a(d b(a c)) a(d ab bc) ad ab abc ad ab(1 c) ad ab a(b d ) b)y a (d bc) (a d c) a (d bc) a d c a bcd a d c a bc d c abc d c)y a d(b ac) (b c) a(d (b ac)) bc a(d abc) bc ad abc bc ad c(ab b) ad ac bc d )y ((abc) b) b (a c) (abc b) b ac ((a b c) b) abc (a b c)abc abc abc abc e)y (a bc)(b cd ) b c ...[a(b c d ) c(b d )] f )y a b cd bd ...[b d ] g)y b a d a b(ac d ) ...[ab acd ] h)y ac bc ac ...[ab ac bc ] i)y ab ab c b(a bc) ...[a b c ] j)y x 1 x 2 x 1 x 2 ...[ x 1 x 2 x 1 x 2] k)y (a bc cd ) bc ...[a b c d ] l)y a c bd bd ...[ac(bd bd )] m)y (a bc) a(b c) ...[c b] n)y a b a b ...[a b] o)y a b ac cd (a bc) ...[a abc cd ] p)y a(b ac) cd(a bc) ...[a b cd ] q)y (c d )(c d ) ad c ...[c d cd ] r )y a b c a b ...[abc ] s)y a b c ab ac ...[abc ab ac ] t )y a(b ac) ...[a bc ] u)y cd(a bc) ...[cd ab ac ] v)y a bc b ...[a b c ]