Logické řízení 1. Logické řízení - Úvod Logické řízení je cílená činnost, při níž se logickým obvodem zpracovávají informace o řízeném procesu a podle nich ovládají příslušná zařízení tak, aby se dosáhlo předepsaného cíle. Spojité veličiny, které jsou popsány spojitými proměnnými, mohou nabývat nekonečného počtu hodnot. V tomto předmětu se budeme zabývat logickými veličinami nebo logickými proměnnými, které mohou nabývat konečného počtu hodnot. Na nich je založena logická algebra, tj. soustava pravidel, určených k popisu vztahů mezi logickými proměnnými. Tato pravidla popisují nejčastěji logické operace což jsou vlastní úkony logické algebry. Zvláštním druhem logických proměnných jsou dvouhodnotové proměnné a dvouhodnotové veličiny, které nabývají pouze dvou možných hodnot, nejčastěji označované jako 0 a 1. To jsou také nejčastěji se vyskytující logické veličiny v technice. Nejčastěji Obecněji Je-li to fyzikálně výstižnější Pro slovní pojmy False, True
0 L VYPNUTO NE F
1 H ZAPNUTO ANO T
Tab. 1.1: Logické veličiny v technice Logická algebra která je založená na dvouhodnotových veličinách se nazývá Booleova algebra (podle irského matematika G. Boolea 1515-1864). Logický obvod je fyzikální systém, který realizuje logické operace. Nejčastěji složen z polovodičových prvků (integrované obvody). Logické obvody můžeme rozdělit: První způsob dělení: • Kombinační obvod (AND, OR, NOT, …) • Sekvenční obvod (RS, JK, D, …) Druhý způsob dělení • S pevnou logikou (Logické pole) • Programovatelné (Programovatelné automaty, počítače, …) 1.1 Pravdivostní tabulka: Pravdivostní tabulka představuje nejjednodušší způsob zápisu kombinačních logických funkcí. Pravdivostní tabulkou vyjadřujeme závislost výstupní veličiny na vstupní. Pří větším počtu vstupních proměnných však může být tento způsob zápisu nepohodlný pro značný počet řádků tabulky.
1
Počet řádků pravdivostní tabulky je dán počtem vstupů. 2n, kde n je počet vstupů. Počet vstupů 1 2 3 4 atd.
Počet řádků 2 4 8 16 atd.
Tab. 1.2: Výpočet počtu řádků pravdivostní tabulky Do tohoto počtu řádků se počítají pouze řádky s nulami a jedničkami, ne označení vstupů a výstupů. Pomocí těchto řádků můžeme vyjádřit všechny možné kombinace, které mohou nastat. Obvykle pro první vstup střídáme nuly a jedničky, pro druhý dvě nuly dvě jedničky, pro třetí čtyři nuly čtyři jedničky, pro čtvrtý osm nul osm jedniček atd.
Příklad pro dva vstupy A, B: A 0 0 1 1
B 0 1 0 1
Y
Příklad pro tři vstupy A, B, C: A 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
C 0 1 0 1 0 1 0 1
2
Y
Příklad 1.1: Jako příklad použití pravdivostní tabulky uvedeme popis převodníku čtyřbitového binárního kódu na kód sedmisegmentového displeje s hexadecimálním zobrazením. Náčrt zapojení a zobrazované znaky (hexadecimální číslice) jsou nakresleny na obrázku 1.1. U vstupních proměnných je symbolem MSB (Most Significant Bit) a LSB (Least Significant Bit) označen nejvýznamnější a nejméně významný bit.
Obr. 1.1: Zapojení převodníku V pravdivostní tabulce jsou pro všechny kombinace vstupních proměnných (zde r, s, t, u) uvedeny hodnoty výstupních proměnných. Nejobvyklejší je uvádět kombinace vstupních proměnných tak, že při interpretaci formou binárních číslic představují posloupnost přirozených čísel zapsaných v binárním kódu. Při tomto způsobu zápisu vyjadřují uvedená čísla stav jednotlivých vstupních proměnných a říká se jim stavový index. Funkce převodníku je dána následující pravdivostní tabulkou. číslo číslice (stav.index) (hex) 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 A 11 B 12 C 13 D 14 E 15 F
r 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
vstupy s t 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1
u 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
a 1 0 1 1 0 1 1 1 1 1 1 0 1 0 1 1
b 1 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0
c 1 1 0 1 1 1 1 1 1 1 1 1 0 1 0 0
výstupy d 1 0 1 1 0 1 1 0 1 1 0 1 1 1 1 0
Tab. 1.3: Pravdivostní tabulka převodníku
3
e 1 0 1 0 0 0 1 0 1 0 1 1 1 1 1 1
f 1 0 0 0 1 1 1 0 1 1 1 1 1 0 1 1
g 0 0 1 1 1 1 1 0 1 1 1 1 0 1 1 1
2. Logické funkce 2.1 Logické funkce jedné proměnné
Logické funkce jedné proměnné jsou nejjednodušším případem logických funkcí. Jsou v podstatě čtyři a jsou popsány následujícími pravdivostními tabulkami a algebraickými zápisy (rovnicemi). První funkce je pro libovolné y rovna 0 a nazývá se falsum. x 0 1 falsum
y 0 0 lež
y=0 Druhá má vždy opačnou hodnotu y než x . Nazývá se negace. x 0 1 negace
y 1 0 opak
y=x Třetí funkce má pro y vždy stejnou hodnotu jako je x a nazývá se aserce. x 0 1 aserce
y 0 1 opakování
y=x Čtvrtá funkce má y stále rovno 1 pro všechna x a nazývá se verum. X 0 1 Verum
y 1 1 pravda
y =1
4
Praktický význam má však pouze jedna funkce ze čtyř základních funkcí jedné proměnné a tou je negace a ta patří k nejdůležitějším logickým funkcím.
y=x
2.2 Logické funkce dvou proměnných Nyní se budeme zabývat logickými funkcemi dvou proměnných. Je jich celkem šestnáct jak je vidět z následující tabulky. 1. falsum nulová fce y x1 x2 0 0 0 0 0 1 0 1 0 0 1 1 9. negace log. součtu y x1 x2 1 0 0 0 0 1 0 1 0 0 1 1
2. konjunkce log. součin y x1 x2 0 0 0 0 0 1 0 1 0 1 1 1 10. ekvivalence y x1 x2 1 0 0 0 0 1 0 1 0 1 1 1
3. inhibice y 0 0 1 0
x1 0 0 1 1
x2 0 1 0 1
11. negace y 1 0 1 0
x1 0 0 1 1
x2 0 1 0 1
4. aserce opakování y x1 x2 0 0 0 0 0 1 1 1 0 1 1 1 12. implikace y x1 x2 1 0 0 0 0 1 1 1 0 1 1 1
5. inhibice y 0 1 0 0
x1 0 0 1 1
x2 0 1 0 1
13. negace y 1 1 0 0
x1 0 0 1 1
x2 0 1 0 1
6. aserce opakování y x1 x2 0 0 0 1 0 1 0 1 0 1 1 1 14. implikace y x1 x2 1 0 0 1 0 1 0 1 0 1 1 1
7. dilema y x1 x2 0 0 0 1 0 1 1 1 0 0 1 1 15. negace log. součinu y x1 x2 1 0 0 1 0 1 1 1 0 0 1 1
8. disjunkce log. součet y x1 x2 0 0 0 1 0 1 1 1 0 1 1 1 16. verum jedn. funkce y x1 x2 1 0 0 1 0 1 1 1 0 1 1 1
Tab. 2.1: Logické funkce dvou proměnných Všech 16 funkcí se opět nepoužívá, používají se běžně pouze následující čtyři. a) Konjunkce, logický součin, AND je charakterizován tím, že funkční hodnota y nabývá jedničky pouze tehdy, když obě proměnné x1 , x2 (obecně všechny proměnné) jsou jedničky.
y = x1 ⋅ x2 y = x1 ∧ x2 x1 0 0 1 1
x2 0 1 0 1
5
y 0 0 0 1
b) Disjunkce, logický součet, OR je charakterizována tím, že funkční hodnota y nabývá jedničky tehdy, když alespoň jedna z proměnných x1 , x2 (obecně ze všech proměnných) je jednička.
y = x1 + x2 y = x1 ∨ x2 x1 0 0 1 1
x2 0 1 0 1
y 0 1 1 1
c) Negace konjunkce, Shefferova funkce, NAND je charakterizována tím, že funkční hodnota y nabývá jedničky tehdy, když proměnné x1 , x2 (obecně všechny proměnné) nejsou současně jedničky.
y = x1 ⋅ x2 y = x1 ∧ x2 x1 0 0 1 1
x2 0 1 0 1
y 1 1 1 0
d) Negace disjunkce, Pierceova funkce, NOR je charakterizována tím, že funkční hodnota y je jednička, když žádná z proměnných x1 , x2 (obecně když žádná z proměnných) není jednička.
y = x1 + x2 y = x1 ∨ x2
6
x1 0 0 1 1
x2 0 1 0 1
y 1 0 0 0
2.3 Obecné logické funkce Více vstupů, více výstupů:
Výstup yi je závislí na kombinaci nezávislých logických proměnných x1 , x2 ,..., xn Logické funkce můžeme vyjádřit: • • •
Booleovými funkcemi – to je negací, konjunkcí a disjunkcí Funkcemi NAND – stačí jediná funkce Funkcemi NOR – opět stačí jediná funkce
Podle toho, které vyjádření zvolíme, mluvíme o booleovy algebře, NAND algebře nebo NOR algebře. Základní je vyjádření Booleovými funkcemi – pro vyjádření logické funkce potřebujeme tři základní funkce a při realizaci této funkce potřebujeme tři druhy logických prvků. Pokud se rozhodneme pro vyjádření logické funkce základní funkcí NAND nebo funkcí NOR, vystačíme s jedním druhem základní funkce a při realizaci potřebujeme pouze jeden druh logických obvodů.
7
3. Booleova algebra Používá tři základní funkce (negaci, konjunkci a disjunkci), ale lze jimi vyjádřit libovolnou funkci. Základním požadavkem je každou logickou funkci minimalizovat, to je vyjádřit ji co nejmenším počtem základních logických funkcí. Tím se při realizaci spotřebuje nejmenší počet logických prvků, technická realizace vyjde nejjednodušší, nejekonomičtější a také se zvýší její spolehlivost.
3.1 Pravidla Booleovy algebry K zjednodušování čili k minimalizaci logických funkcí používáme základní pravidla Booleovy algebry, se kterými se teď seznámíme. Násobení má přednost před sčítáním ! 3.1.1 Zákon vyloučení třetího x ∨ x =1 Pravidlo: 1∨ 0 = 1 Důkaz:
0 ∨1 = 1
3.1.2 Logický rozpor Pravidlo: x⋅x = 0 1⋅ 0 = 0 Důkaz:
0 ⋅1 = 0
3.1.3 Dvojitá negace Pravidlo:
x=x
Důkaz:
1 = 0 …1 = 1
0 = 1… 0 = 0
3.1.4 Opakování x∨ x = x Pravidlo: x⋅x = x Důkaz: 1∨1 = 1 1 ⋅1 = 1
0∨0 = 0 0⋅0 = 0
3.1.5 Komutativní zákony x1 ∨ x2 = x2 ∨ x1 Pravidlo: x1 ⋅ x2 = x2 ⋅ x1 Důkaz: 1∨ 1 = 1∨ 1 1 ⋅1 = 1 ⋅1
0∨0 = 0∨0 0⋅0 = 0⋅0
3.1.6 Asociativní zákony Pravidlo: x1 ∨ ( x2 ∨ x3 ) = x1 ∨ x2 ∨ x3
x1 ⋅ ( x2 ⋅ x3 ) = x1 ⋅ x2 ⋅ x3 Důkaz:
1 ∨ ( 0 ∨ 1) = 1 ∨ 1 = 1... ⇔ ...1 ∨ 0 ∨ 1 = 1 1⋅ ( 0 ⋅1) = 1⋅ 0 = 0... ⇔ ...1⋅ 0 ⋅1 = 0
3.1.7 Distributivní zákony Pravidlo: x1 ⋅ ( x2 ∨ x3 ) = ( x1 ⋅ x2 ) ∨ ( x1 ⋅ x3 )
x1 ∨ ( x2 ⋅ x3 ) = ( x1 ∨ x2 ) ⋅ ( x1 ∨ x3 ) 8
Důkaz:
1⋅ ( 0 ∨ 1) = 1⋅1 = 1... ⇔ ... (1⋅ 0 ) ∨ (1⋅1) = 0 ∨ 1 = 1 1 ∨ ( 0 ⋅1) = 1 ∨ 0 = 1... ⇔ ... (1 ∨ 0 ) ⋅ (1 ∨ 1) = 1 ⋅1 = 1
3.1.8 Absorpční zákony x1 ∨ ( x1 ⋅ x2 ) = x1 Pravidlo:
(
)
x1 ∨ x1 ⋅ x2 = x1 ∨ x2
x1 ⋅ ( x1 ∨ x2 ) = x1
(
)
x1 ⋅ x1 ∨ x2 = x1 ⋅ x2 Důkaz:
1 ∨ (1⋅ 0 ) = 1 ∨ 0 = 1
( )
1 ∨ 1 ⋅ 0 = 1 ∨ 0... = ...1 ∨ 0
1⋅ (1 ∨ 0 ) = 1⋅1 = 1
(
)
1 ⋅ 1 ∨ 0 = 1 ⋅ 0... = ...1 ⋅ 0 3.1.9 Neutrálnost 0 a 1 Pravidlo: 0∨ x = x 1⋅ x = x 0 ∨1 = 1 Důkaz: 1 ⋅1 = 1
0∨0 = 0 1⋅ 0 = 0
3.1.10 Agresivnost 0 a 1 1∨ x = 1 Pravidlo: 0⋅ x = 0 Důkaz: 1∨1 = 1 0 ⋅1 = 0
1∨ 0 = 1 0⋅0 = 0
3.1.11 De Morganovy zákony x1 ∨ x2 = x1 ⋅ x2 Pravidlo:
(3.11) (3.12)
x1 ⋅ x2 = x1 ∨ x2
Důkaz:
1 ∨ 0 = 1 = 0... = ...1⋅ 0 = 0 ⋅1 = 0 1⋅ 0 = 0 = 1... = ...1 ∨ 0 = 0 ∨ 1 = 1
De Morganovy zákony jsou velmi důležité, uplatní se zejména v budoucím převádění Booleovy algebry na NAND nebo NOR algebru. Budeme je používat ve tvaru, který z rovnic (3.11) a (3.12) dostaneme negací levé a pravé strany rovnice. x1 ∨ x2 = x1 ⋅ x2
x1 ⋅ x2 = x1 ∨ x2
Napišme si tyto rovnice ještě jednou, například pro tři proměnné, které označíme a, b, c, poněvadž je budeme v budoucnu velmi často používat. a ∨ b ∨ c = a ⋅b⋅c
a ⋅b⋅c = a ∨ b ∨ c
9
V dalším textu se budeme zabývat minimalizací logických funkcí. Nejjednodušší je použití těchto pravidel Booleovy algebry a úpravy výrazů tak dlouho, dokud nedostaneme nejkratší výraz. Většinou je to však příliš pracná metoda, zvlášť když se jedná o složitější výrazy a také nemusíme vždy dostat minimální tvar, protože nevíme, kdy je nejkratší, kdy je minimální. Hodně zde záleží na praxi a technické dovednosti. Proto se obyčejně minimalizace neprovádí tímto způsobem, ale většinou použitím Karnaughovy mapy, která bude vysvětlena později.
Příklad 3.1: Minimalizujte logickou funkci y = x1 ⋅ x2 ⋅ x3 ∨ x1 ⋅ x2 ⋅ x3 ∨ x1 ⋅ x2 ⋅ x3 ∨ x1 ⋅ x2 ⋅ x3 ∨ x1 ⋅ x2 ⋅ x3
Řešení: Z druhého a třetího členu vytkneme x1 ⋅ x2 a z čtvrtého a pátého členu vytkneme x1 ⋅ x2 .
(
)
(
y = x1 ⋅ x2 ⋅ x3 ∨ x1 ⋅ x2 x3 ∨ x3 ∨ x1 ⋅ x2 x3 ∨ x3
)
Výrazy v závorkách jsou podle zákona vyloučení třetího rovny jedné.
y = x1 ⋅ x2 ⋅ x3 ∨ x1 ⋅ x2 ∨ x1 ⋅ x2 Potom z druhého a třetího členu vytkneme x1 .
(
y = x1 ⋅ x2 ⋅ x3 ∨ x1 x2 ∨ x2
)
Výraz v závorce je ze stejného důvodu opět roven jedné.
y = x1 ⋅ x2 ⋅ x3 ∨ x1 Použijeme absorpční zákon podle kterého je x1 ∨ x1 ⋅ x2 = x1 ∨ x2 a dostaneme výsledek. y = x1 ∨ x2 ⋅ x3
Příklad 3.2: Minimalizujte logickou funkci y = x1 ⋅ x3 ⋅ x4 ∨ x1 ⋅ x3 ⋅ x4 ∨ x2 ⋅ x3 ⋅ x4
Řešení: Podle De Morganova zákona převedeme negaci logických součinů na součet negací.
(
) (
) (
y = x1 ⋅ x3 ∨ x4 ∨ x1 ∨ x3 ∨ x4 ∨ x2 ∨ x3 ∨ x4
)
Výraz v první závorce roznásobíme, zbylé dvě závorky není třeba uvádět.
10
y = x1 ⋅ x3 ∨ x1 ⋅ x4 ∨ x1 ∨ x3 ∨ x4 ∨ x2 ∨ x3 ∨ x4 Vytkneme x3 a x4 a dostaneme výraz: y = x3 ⋅ ( x1 ∨ 1) ∨ x4 ⋅ ( x1 ∨ 1) ∨ x1 ∨ x2 ∨ x3 ∨ x4
Podle zákona agresivnosti 0 a 1
1∨ x = 1
jsou výrazy v závorkách rovny jednotce.
y = x3 ∨ x4 ∨ x1 ∨ x2 ∨ x3 ∨ x4 Podle zákona opakování je x ∨ x = x a tedy dostaneme výraz:
y = x1 ∨ x2 ∨ x3 ∨ x4 Výsledný vztah dostaneme aplikací De Morganovy zákona.
y = x1 ⋅ x2 ⋅ x3 ⋅ x4
3.2 Vyjádření Booleovských funkcí Nejčastěji používané prostředky pro vyjádření Booleových funkcí jsou: • • • • •
Slovní zadání Pravdivostní tabulka Algebraický zápis – rovnice popisující logický obvod Karnaughova mapa – eventuálně jiné mapy Blokové schéma – schématické značky pro logické členy.
Slovní zadání je v praxi velmi časté, protože všechny procesy můžeme zapsat pomocí slovního zadání. Pro složitější zadání zkonstruujeme ze slovního zadání pravdivostní tabulku, se kterou jsme se již setkali a pro jednodušší zadání píšeme přímo algebraický zápis.
Příklad 3.3: Převod ze slovního zadání na pravdivostní tabulku a algebraický výraz. Máme tři vypínače, kterými můžeme zapínat žárovku. Žárovka svítí v případě, že alespoň dva vypínače jsou zapnuty. To znamená, že máme jediný výstup (žárovka svítí = 1, nesvítí = 0) a tři vstupy (vypínače zapnuty = 1, vypnuty = 0). Výstup označíme y vstupy x1 , x2 , x3 . Funkci zapojení žárovky a přepínačů můžeme popsat následující pravdivostní tabulkou 3.1.
11
y
x1 0 0 0 0 1 1 1
x2 0 0 1 1 0 0 1
x3 0 1 0 1 0 1 0
0 0 0 1 0 1 1
1
1
1
1
pozn. žádný vypínač není zapnut zapnut je pouze třetí vypínač (potřebujeme alespoň dva) zapnut je pouze druhý vypínač (potřebujeme alespoň dva) vypínače dva a tři jsou zapnuty, žárovka svítí zapnut je pouze první vypínač (potřebujeme alespoň dva) vypínače jedna a tři jsou zapnuty, žárovka svítí vypínače jedna a dva jsou zapnuty, žárovka svítí všechny tři vypínače jsou zapnuty, a protože je v zadání alespoň dva, žárovka svítí i pro tři Tab. 3.1: Pravdivostní tabulka
Nyní si ukažme, jak přecházíme od pravdivostní tabulky k algebraickému zápisu logické funkce. Každou logickou funkci můžeme algebraicky vyjádřit jako součet logických součinů. V pravdivostní tabulce postupujeme po řádcích a uvažujeme pouze ty, ve kterých výstup y nabývá hodnoty 1. Vstupní proměnné mezi sebou násobíme s tím, že ta vstupní veličina, která má hodnotu 1 je zastoupena přímo, pokud má hodnotu 0 je zastoupena svojí negací. Při přechodu na nový řádek použijeme sčítací člen. Funkce daná předchozí pravdivostní tabulkou bude vyjádřena algebraickým výrazem:
y = x1 ⋅ x2 ⋅ x3 ∨ x1 ⋅ x2 ⋅ x3 ∨ x1 ⋅ x2 ⋅ x3 ∨ x1 ⋅ x2 ⋅ x3 Tomuto tvaru logické funkce, který sestává z logického součtu logických součinů se říká disjunktivní normální forma (DNF). Je to jedno z důležitých vyjádření Booleových funkcí a je základem pro popis logické funkce Karnaughovou mapou, ke které se dostaneme později. Nebo opačně: Každou logickou funkci můžeme vyjádřit jako logický součin logických součtů. V pravdivostní tabulce postupujeme po řádcích a uvažujeme pouze ty, ve kterých výstup y nabývá hodnoty 0. Vstupní proměnné mezi sebou sčítáme s tím, že ta vstupní veličina, která má hodnotu 1 je zastoupena svou negaci, pokud má hodnotu 0 je zastoupena přímo. Při přechodu na nový řádek použijeme násobící člen. Funkce daná předchozí pravdivostní tabulkou bude vyjádřena algebraickým výrazem:
(
)(
)(
y = ( x1 ∨ x2 ∨ x3 ) ⋅ x1 ∨ x2 ∨ x3 ⋅ x1 ∨ x2 ∨ x3 ⋅ x1 ∨ x2 ∨ x3
)
Tomuto tvaru logické funkce, který sestává z logického součinu logických součtů se říká konjunktivní normální forma (KNF).
12
Příklad 3.4: Následující pravdivostní tabulky zapište ve tvaru DNF a KNF. a) Pro dvě proměnné
x1 0 0 1 1
y
x2 0 1 0 1
0 1 1 0
DNF: y = x1 ⋅ x2 ∨ x1 ⋅ x2
(
KNF: y = ( x1 ∨ x2 ) ⋅ x1 ∨ x2
)
b) Pro tři proměnné
x1 0 0 0 0 1 1 1 1
y
x3 0 1 0 1 0 1 0 1
x2 0 0 1 1 0 0 1 1
0 0 0 1 1 0 1 1
DNF: y = x1 ⋅ x2 ⋅ x3 ∨ x1 ⋅ x2 ⋅ x3 ∨ x1 ⋅ x2 ⋅ x3 ∨ x1 ⋅ x2 ⋅ x3
(
)(
)(
KNF: y = ( x1 ∨ x2 ∨ x3 ) ⋅ x1 ∨ x2 ∨ x3 ⋅ x1 ∨ x2 ∨ x3 ⋅ x1 ∨ x2 ∨ x3 c) Pro čtyři proměnné
x1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
x2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
x3 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
13
x4 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
y
0 0 1 1 0 1 1 1 0 1 0 0 0 0 0 0
)
y = x1 ⋅ x2 ⋅ x3 ⋅ x4 ∨ x1 ⋅ x2 ⋅ x3 ⋅ x4 ∨ x1 ⋅ x2 ⋅ x3 ⋅ x4 ∨ x1 ⋅ x2 ⋅ x3 ⋅ x4 ∨ x1 ⋅ x2 ⋅ x3 ⋅ x4 ∨ x1 ⋅ x2 ⋅ x3 ⋅ x4
( x1 ∨ x2 ∨ x3 ∨ x4 ) ⋅ ( x1 ∨ x2 ∨ x3 ∨ x4 ) ⋅ ( x1 ∨ x2 ∨ x3 ∨ x4 ) ⋅ ( x1 ∨ x2 ∨ x3 ∨ x4 ) ⋅ ( x1 ∨ x2 ∨ x3 ∨ x4 ) ⋅
(
)(
)(
)(
)(
⋅ x1 ∨ x2 ∨ x3 ∨ x4 ⋅ x1 ∨ x2 ∨ x3 ∨ x4 ⋅ x1 ∨ x2 ∨ x3 ∨ x4 ⋅ x1 ∨ x2 ∨ x3 ∨ x4 ⋅ x1 ∨ x2 ∨ x3 ∨ x4
)
3.3 Karnaughova mapa Karnaughova mapa slouží k vyjádření Booleovských funkcí, ale především k jejich minimalizaci. Minimalizaci zatím neuvažujme, a mluvme zatím pouze o vyjádření logických funkcí Karnaughovými mapami. Mapa je tabulka, která má tolik políček, kolik je kombinací vstupních proměnných vyšetřované funkce. Funkce s n vstupními proměnnými tedy vyjadřujeme mapou s 2n políčky. Každé políčko odpovídá jedné z možných kombinací a zapisujeme do něj odpovídající funkční hodnotu. Podle kódu, kterým přiřazujeme políčka jednotlivých kombinacím proměnných, rozlišujeme různé mapy. Nejznámější je Karnaughova mapa. U ní se sousední políčka od sebe liší hodnotou jediné proměnné. Pro jeden výstup je vždy jedna Karnaughova mapa. Zavedeme následující konvenci pro Karnaughovu mapu: 1. Pro dvě proměnné používáme mapu 2x2, přičemž svislá hrana je pro jednu proměnnou, vodorovná pro druhou. Pro tři proměnné používáme mapu 2x4 (nebo 4x2), kde svislá hrana je pro jednu a vodorovná pro dvě proměnné. Pro čtyři proměnné používáme mapu 4x4, kde máme vždy po dvou proměnných na hranách atd. Karnaughovy mapy logických funkcí dvou až šesti proměnných jsou na obr. 3.1. x5 x2 x4
x1
x3 x2 x1
x1
x3
x2
x2 x5 x6
x2 x4
x3 x1
x4
x1
x3
Obr.3.1: Karnaughovy mapy pro logické funkce dvou až šesti proměnných
14
2. Řádky nebo sloupce, ve kterých je příslušná hodnota rovna 1 označíme vedle mapy svislou nebo vodorovnou čárou, tam, kde čára není je hodnota rovna 0. U jedné proměnné je čára na jednom řádku nebo sloupci, u dvou jsou čáry na dvou sloupcích, přičemž se tyto čáry musejí částečně překrývat (to znamená že nesmějí být ani zcela nad sebou, ani vůbec). 3. Pravá hrana Karnaughovy mapy sousedí s levou hranou, stejně tak i horní hrana sousedí se spodní. 4. Do mapy vložíme jedničky z pravdivostní tabulky podle bodu dva. Na následujícím obrázku jsou zobrazeny Karnaughovy mapy pro algebraické výrazy:
y = x1 ⋅ x2 ∨ x1 ⋅ x2
y = x1 ⋅ x2 ⋅ x3 ∨ x1 ⋅ x2 ⋅ x3 ∨ x1 ⋅ x2 ⋅ x3 ∨ x1 ⋅ x2 ⋅ x3 y = x1 ⋅ x2 ⋅ x3 ⋅ x4 ∨ x1 ⋅ x2 ⋅ x3 ⋅ x4 ∨ x1 ⋅ x2 ⋅ x3 ⋅ x4 ∨ x1 ⋅ x2 ⋅ x3 ⋅ x4 ∨ x1 ⋅ x2 ⋅ x3 ⋅ x4 ∨ x1 ⋅ x2 ⋅ x3 ⋅ x4
Obr. 3.2: Karnaughovy mapy pro předchozí algebraické výrazy
15
3.4 Blokové schéma Schematické značky logických obvodů jsou uvedeny na následujícím obr. Na levé straně jsou uvedeny značky starší, ještě však hojně používané, na pravé novější, přizpůsobené ke snadnějšímu grafickému znázornění.
Obr.3.3: Schématické značky logických obvodů
Příklad: 3.5: Mějme rovnici y = x1 ⋅ x2 ∨ x1 ⋅ x2 . Tuto rovnici se nyní pokusíme nakreslit pomocí blokových schémat negace, konjunkce, disjunkce. Na levou stranu si nakreslíme vstupní proměnné, na pravou výstupní proměnnou (proměnné).
Vstupní proměnné, které jsou negovány nejprve znegujeme, potom násobíme a nakonec sčítáme (stejně jako v klasické matematice i zde má násobení přednost před sčítáním).
16
Příklad 3.6: Zakreslete pomocí blokových schémat logickou funkci y = x2 ⋅ x4 ∨ x1 ⋅ x3 ∨ x1 ⋅ x2 ⋅ x4
4. Minimalizace logických funkcí K dané logické funkci existuje několik různých tvarů. Všechny jsou matematicky rovnocenné, protože představují stejnou funkční závislost i když mohou být tvarově značně odlišné. Nejsou však rovnocenné z hlediska technického a ekonomického. Pro technickou realizaci je nutno vždy funkci upravit do nejjednoduššího tvaru – minimalizovat ji. Minimalizací funkce dosáhneme toho, že při její realizaci budeme potřebovat nejmenší počet logických prvků (negací, konjunkcí, disjunkcí). Tím se logický obvod stane jednoduchým, samozřejmě také levnějším z hlediska ekonomického a spolehlivějším. Pro minimalizaci existuje řada metod. S jednou z nich jsme se již seznámili. Je to algebraická minimalizace. Logickou funkci zjednodušujeme aplikací různých pravidel Booleovy algebry až na minimální výraz. Metoda je značně pracná, nikdy si nejsme stoprocentně jisti, že daný výraz je už ten minimální. Naprosto se nehodí pro složitější funkce více proměnných. Druhá metoda minimalizace je použití Karnaughovy mapy. Zatím jsme se seznámili s Karnaughovými mapami jako nástrojem pro vyjádření neboli pro popis funkce. Ale jejich hlavní význam je právě aplikace pro minimalizaci logických funkcí. To je umožněno základní vlastností Karnaughovy mapy a to, že se dvě sousední políčka mapy liší v hodnotě pouze jedné proměnné. Minimalizace pomocí Karnaughovy mapy bude spočívat v opačném postupu než při sestavování mapy, a to nalezením algebraického tvaru funkce, zadané mapou. Budeme postupovat tak, že sousední políčka mapy, která obsahují jednotku jako funkční hodnotu, budeme sdružovat do dvojic, čtveřic, osmic, šestnáctic atd. x2 x1 x4 Podle Karnaughovy mapy na obr. zjistíme, že při zakroužkování dvou sousedních jedniček je odpovídající x3 1 algebraická funkce:
1
1
1
(
)
y = x1 ⋅ x2 ⋅ x3 ⋅ x4 ∨ x1 ⋅ x2 ⋅ x3 ⋅ x4 = x1 ⋅ x2 ⋅ x4 x3 ∨ x3 = x1 ⋅ x2 ⋅ x4
1
1
17
Uvažujeme-li zakroužkované čtyři sousední jedničky, odpovídá jim funkce:
y = x1 ⋅ x2 ⋅ x3 ⋅ x4 ∨ x1 ⋅ x2 ⋅ x3 ⋅ x4 ∨ x1 ⋅ x2 ⋅ x3 ⋅ x4 ∨ x1 ⋅ x2 ⋅ x3 ⋅ x4 =
(
)
(
)
= x1 ∨ x1 ⋅ x2 ⋅ x3 ⋅ x4 ∨ x1 ∨ x1 ⋅ x2 ⋅ x3 ⋅ x4 =
(
)
x2 ⋅ x3 x4 ∨ x4 = x2 ⋅ x3 V odpovídající logické funkci chybí ta hodnota, která v příslušné dvojici, čtveřici, osmici,… mění svoji hodnotu. V prvním případě to byla proměnná x3 , ve druhém případě u čtyřech sousedních políček jsou to proměnné x1 a x4 . Byly to samozřejmě ty proměnné, které byly v závorce ve smyslu proměnná nebo její negace a tato závorka se rovnala jedničce podle zákona vyloučení třetího. A toto bylo zapříčiněno vlastností Karnaughovy mapy, že se dvě sousední políčka liší pouze v hodnotě jedné proměnné. Sloučením dvou sousedních jednotkových políček vyloučíme jednu proměnnou, sloučení čtyř políček vyloučíme dvě proměnné, sloučením osmi políček vyloučíme tři proměnné atd. Teď zbývá ještě říci, co rozumíme pojmem sousední políčka v Karnaughově mapě.
Sousednost políček v Karnaughově mapě: Sousedními jsou např. i políčka na protilehlých okrajích mapy. Snad pomůže představa, že mapu „srolujeme“ , že bude levý okraj sousedit s pravým a současně dolní s horním. Dvojice mohou být svislé i vodorovné. Čtveřice mohou být dvě a dvě jedničky pod sebou, ale také vodorovně čtyři jedničky vedle sebe anebo svisle pod sebou. Osmice mohou být 1 krát 8 vodorovně či svisle, 2 krát čtyři vodorovně či svisle, ... Dále nesmíme zapomenout na rohové čtveřice, osmice apod. Příklady všech těchto čtveřic jsou na následujícím obrázku.
x2
x4 x2 x1 x3
x4
x1
1
1
1
x3 1
1
1
1
1
1
1
1
1
1
1
1
1 1
1
1
1
Základní pravidla pro minimalizaci logických funkcí Karnaughovými mapami – jak provést seskupení jedniček v mapě do izolovaných jedniček, dvojic,čtveřic, ....
• • •
Všechny jedničky v mapě musí být zakroužkovány, žádnou nesmíme vynechat. Každá jednička se může při kroužkování vzít několikrát, může být současně součástí dvojice, čtveřice, ... (to umožňuje zákon opakování x ∨ x ∨ x ∨ ... = x . Přednost mají ... osmice před čtveřicemi, čtveřice před dvojicemi a dvojice před izolovanými jedničkami. 18
•
V rámci pravidla podle kterého žádnou jedničku nesmíme vynechat, se snažíme o co nejmenší počet smyček.
Příklad 4.1 Karnaughovou mapou minimalizujte logickou funkci:
y = x1 ⋅ x2 ⋅ x3 ∨ x1 ⋅ x2 ⋅ x3 ∨ x1 ⋅ x2 ⋅ x3 ∨ x1 ⋅ x2 ⋅ x3 ∨ x1 ⋅ x2 ⋅ x3 Řešení: Nakreslíme Karnaughovu mapu pro tři proměnné viz obr. a napíšeme jedničky do příslušných políček. x2 x3
x1
1
1
1
1
1
Zakroužkujeme jednoznačně jednu čtveřici a jednu dvojici. Poté obdržíme výsledek y = x1 ∨ x2 ⋅ x3
Poznámka: Při řešení praktických úloh se často stává, že logická funkce je definována pouze v některých kombinacích vstupních proměnných, zatím co na funkčních hodnotách zbývajících kombinací nezáleží. Jsou to tzv. neurčené stavy. Mimo stavy, kdy na funkční hodnotě nezáleží, jsou to také kombinace vstupních proměnných, které se z nějakých důvodů nemohou vyskytnout (jsou fyzikálně nedostupné, nebo „zakázané“). Hodnota v neurčeném stavu může být dodefinována libovolně. Odpovídající čtvereček v Karnaughově mapě při minimalizaci označíme x a můžeme ho pak nahradit 1 nebo 0, podle toho, co je v daném okamžiku výhodnější, abychom získali minimální tvar.
19
5. Realizace logických funkcí Jak plyne z Booleovy algebry, je možné libovolnou logickou funkci vyjádřit kombinaci logického součtu nebo logického součinu a operace negace. Chceme-li tedy sestrojit obvod, který by modeloval nějakou zadanou logickou funkci, musíme mít k dispozici obvody, které generují uvedené základní logické funkce. Elektronické obvody pro generaci uvedených funkcí nazýváme po řadě: hradlo “OR”, hradlo “AND” a invertor. Dříve než si rozebereme schémata, je třeba vysvětlit pojmy tzv. pozitivní a negativní logiky. Přiřazení logických stavů “0” a “1” napěťovým úrovním je totiž zcela libovolné a záleží na tom kterém přístroji, jakého přiřazení používá. Pakliže stav logické “0” odpovídá nižšímu napětí na výstupu logického členu nežli stav logické “1”, hovoříme o tzv. pozitivní logice. Jeli tomu naopak, tj. logické “0” odpovídá vyšší napětí nežli logické “1”, pak se jedná o negativní logiku. Přitom je třeba zdůraznit, že nezáleží na velikosti napětí, obě mohou být kladná nebo obě záporná nebo jedno kladné a druhé záporné; pakliže logická “1” odpovídá kladnějšímu napětí, jedná se o pozitivní logiku, jinak je to logika negativní. Stejným způsobem se označuje logika tzv. dynamická (na rozdíl od právě popsané statické, neboli úrovňové logiky), kdy ovšem příslušné úrovně jsou na vstupech logických členů pouze po velmi krátkou dobu, tedy ve formě napěťových impulsů. Vzhledem k tomu, že parametry reálného logického členu se různí kus od kusu (užívají se odpory s určitou tolerancí, tranzistory a diody, které mohou mít různé parametry), není možné stanovit přesnou hodnotu napětí odpovídající logické “0” resp. “1” v té které logické síti. Místo toho se logické členy konstruují tak, aby nebyly citlivé na změnu napětí vstupních parametrů pokud tyto leží v určitém intervalu napětí. Viz obr.5.1.
Obr 5.1: Ukázka logické 0 a logické 1 v pozitivní a negativní logice Například pro hradla TTL (transistor-transistor-logic) jsou příslušné intervaly následující: Uvst(0) = max. 0,8 V Uvst(1) = min. 2 V Neboli pro logickou “0” je povolený interval vstupních napětí 0 - 0.8V pro logickou “1” to je 2 - 5 V. Hradlo samo má zaručovaná výstupní napětí: Uvýst(1) = min. 2,4 V Uvýst(0) = max. 0,4 V
20
tj. hluboce v povolené toleranci napětí vstupních. Napájecí napětí je ( 5 ± 0, 25 ) V. Uvedené hodnoty jsou typické pro tzv. tranzistorovou logiku a byly implementovány u celé řady výrobců logických obvodů. Zdaleka to však nejsou jediné používané napěťové úrovně u logických obvodů. Hradla s tranzistory řízenými elektrickým polem mají logické úrovně okolo 0 V a 9 V a existuje i tzv. logika s vysokou šumovou imunitou HLL (high-level-logic), kde napěťová úroveň logické “1” je řádu 10 - 50 V. S takovými napěťovými logickými úrovněmi pracují řídicí systémy v provozech, kde je zvýšená úroveň elektromagnetického rušení. Na druhé straně pro speciální přístroje s nízkým napájecím napětím (náramkové hodinky) byly vyvinuty obvody, kde jsou logické úrovně mezi 0 V a 3 V i níže. Pokud nebude výslovně uveden opak, budeme se zabývat pouze pozitivní logikou. Prostředky pro realizaci se vyvíjely takto: 1. 2. 3. 4. 5. 6. 7.
kontaktní prvky (například relé) polovodičové obvody tranzistory integrované obvody programovatelné logické pole programovatelné automaty mikropočítačové systémy, počítače
Z toho body 1 až 4 jsou prostředky s pevnou logikou a body 5 až 7 jsou programovatelné.
5.1 logické obvody s kontakty (relé, přepínače, tlačítka,... ) Logický součet pomocí relé:
Logický součet pomocí tlačítek, koncových spínačů, ...:
kreslíme jen zjednodušeně: (logický součet - zapojení paralelně)
21
logický součin: (zapojení sériově)
je-li vstupní proměnná negovaná použijeme místo spínacích kontaktů kontakty rozpínací (v klidu je sepnut)
Příklad 5.1:
(
)
Spínacími a rozpínacími kontakty realizujte logickou funkci y = x2 x1 ∨ x3 .
Řešení:
5.2 Logické obvody s diodami Logický součet: (např. Zálohové napájení ze dvou zdrojů)
X 0 0 1 1
Y 0 1 0 1
X+Y 0 1 1 1
X 0 0 1 1
Y 0 1 0 1
XY 0 0 0 1
Logický součin:
22
5.3 Logické obvody s tranzistory 5.3.1 Obvody DCTL (Direct-Coupled-Transistor-Logic) Přímo vázaná tranzistorová logika DCTL je nejjednodušším typem logiky, který ve své skladbě používá tranzistorů. Základním hradlem těchto obvodů je hradlo NOR, které je znázorněno na obr 5.2.
Obr. 5.2: Hradlo NOR realizované DCTL logikou. Obvod je tvořen několika tranzistory s propojenými a uzemněnými emitory a společným kolektorovým odporem. Je zřejmé, že stačí, aby jeden z tranzistorů byl otevřen a napětí na výstupu klesne na jeho saturační napětí, tj. na napětí řádu 0,1 V. Otevření eventuálních dalších tranzistorů nezpůsobí již podstatnou změnu výstupního napětí. Hradla jsou v tomto systému propojena přímo jak je také ukázáno na obr. 5.2. Proto napětí na výstupu tohoto hradla v nevybuzeném stavu zpravidla nepřekročí úroveň 1 V (je omezeno napětím na diodě báze-emitor následujícího hradla). Předpokladem pro správnou funkci systému těchto hradel je naprostá shoda charakteristik jednotlivých tranzistorů, jinak tranzistor s nižším napětím báze-emitor spotřebuje většinu proudu plynoucího z kolektorového odporu předcházejícího hradla a tranzistory s vyšším napětím báze-emitor zůstanou nevybuzeny. Tím vznikají potíže propojování jednotlivých hradel mezi sebou, pokud není systém umístěn na jediném čipu. Tento systém proto v praxi nedosáhl širšího uplatnění. Myšlenka se však uplatnila u jiných systémů.
5.3.2 Obvody RTL (Resistor Tranzistor Logic) Aby se redukoval efekt nestejných charakteristik tranzistorů, byly vloženy odpory do bázových přívodů každého tranzistoru. Tím vznikla tzv. odporově-tranzistorová logika RTL Obvody této logiky se již po určitou dobu vyráběly v integrované formě, postupně však byly vytlačeny jinými systémy s lepšími parametry. Základním hradlem je zde opět NOR, jehož schéma je na obr. 5.3. Zařazením odporů do bází tranzistorů se rovněž zvýšila schopnost hradla budit více následujících logických obvodů. Proti přímo vázané logice se však snížila spínací rychlost obvodu, neboť parazitní kapacity se nyní musely nabíjet přes větší odpor. Proto se někdy přidávaly paralelně ke vstupním odporům tzv. urychlovací kondenzátory (na obr. 5.3 čárkovaně), které tvořily s parazitní vstupní kapacitou kapacitní dělič napětí.
23
Obr. 5.3: Hradlo NOR realizované RTL logikou.
5.3.3 Obvody DTL (Diode Tranzistor Logic) Systém diodové tranzistorové logiky DTL je jedním z obvodů, které se pro speciální účely ještě vyrábějí. Základním hradlem tohoto systému je NAND a vzniklo v podstatě kombinací diodového obvodu AND s invertorem - obr. 5.4. Dioda Ds zajišťuje, že tranzistor zůstane uzavřen, pakliže alespoň jeden ze vstupů je uzemněn, tj. v bodě X je napětí rovné spádu na příslušné diodě a v bodě Y je napětí nulové. Jako Ds se obvykle užívají dvě diody v sérii, čímž se zvětší šumová imunita hradla. Odporový dělič v bázi invertoru je volen tak, aby v případě logických jedniček na vstupech byl tranzistor otevřen. Vstupní odpor hradla je velký, je-li vstup na úrovni logické 1 a rovná se prakticky R1, je-li vstup na úrovni logické 0. Výstupní odpor ve stavu logické 1 je roven kolektorovému odporu a ve stavu logické nuly je velmi malý. Hradla se tedy dají snadno řadit za sebe, typické zpoždění signálu na jedno hradlo je 25 ns. Výroba v monolitické formě není obtížná. Koncepce systému skýtá možnost zařadit místo diody Ds Zenerovu diodu a tím získat systém s extrémně vysokou šumovou imunitou.
Obr. 5.4: Hradlo NAND realizované DTL logikou.
24
5.3.4 Obvody TTL (Tranzistor Tranzistor Logic) Největšího rozšíření dosáhly ve své době integrované logické systémy TTL (TransistorTransistor-Logic) řady MH 74xx. V dnešní době jsou však nahrazovány systémy STTL, MOS a CMOS, které mají nižší spotřebu a srovnatelnou rychlost. Zachovala se však definice logických úrovní; pokud má moderní logický systém stejně definované napěťové úrovně logické nuly a jedničky, nazývá se kompatibilní s TTL na logických úrovních (logic level TTL compatible). V těchto obvodech jsou vstupní diody nahrazeny víceemitorovým tranzistorem. Víceemitorový tranzistor se totiž relativně snadno vyrábí standardní planární technologií a jeho výroba je ekonomičtější než výroba několika izolovaných diod. Navíc při běžném provozu jsou hradla TTL rychlejší než DTL zhruba 2x; typická hodnota zpoždění se pohybuje okolo 12 ns. Základním hradlem je opět NAND, které je nakresleno na obr. 5.5.
Obr. 5.5: Hradlo NAND realizované TTL logikou Funkce obvodu je následující: a) Všechny vstupy jsou ve stavu logické jedničky - V tomto případě levý tranzistor pracuje v inverzním režimu. Pravý tranzistor je otevřen a na jeho kolektoru je napětí logické 0. b) Jeden nebo více vstupů jsou ve stavu logické nuly - Pak je pravý tranzistor uzavřen a na jeho kolektoru dostaneme přes rezistor napětí logické 1.
5.4 Logické obvody s integrovanými obvody Při navrhování logických obvodů se často používají prvky NAND (negace logického součinu) a NOR (negace logického součtu), protože tyto prvky jsou snadno dostupné v širokém sortimentu a snadno se realizují. Výhodou oproti Booleovými prvkům je, že k realizaci používáme pouze jeden druh prvků, a to buď NAND a nebo NOR. Nejdříve si podle obr. 5.6 ujasněme funkci těchto prvků a které logické funkce realizují. To je z předcházejícího kontextu a z obrázku jasné.
x1
&
x1 y = x1.x2
1
y = x1∨x2
x2
x2 NAND
NOR
Obr. 5.6: Prvky NAND a NOR
25
Nyní si ještě řekněme, jak se realizuje logická funkce negace pomocí prvku NAND nebo NOR. Většinou mají prvky NAND a NOR tři nebo čtyři vstupy. Při realizaci můžeme volné vstupy: 1. ponechat volné (což je totožné jako připojit logickou 0) 2. všechny spojit (proletovat) s jedním vstupem na který přivádíme vstup. 3. připojit na ně logickou hodnotu 1 Podle obr. 5.7 vidíme, že při vytváření negace z prvků NAND je možné použít varianty 2 a 3, tedy propojit všechny vstupy a nebo připojit na ne hodnotu logická 1, ale nesmíme je ponechat volné. Při vytváření negace z prvků NOR můžeme použít varianty 1 a 2, tedy ponechat nepoužité vstupy volné a nebo je propojit, ale nesmíme na ně připojit hodnotu logická 1. x
x
x 1 1 1
& y=x.0.0.0=1
& y=x.x.x.x=x
x
x
x & y=x.1.1.1=x 1
1 y=x∨0∨0∨0=x
1 y=x∨x∨x∨x=x
1 y=x∨1∨1∨1=0
1 1
Obr. 5.7: Realizace negace prvky NAND a NOR
Příklad 5.2: Navrhněte realizaci logické funkce, dané pravdivostní tabulkou a) Booleovými prvky b) Prvky NAND c) Prvky NOR
x1 0 0 0 0 0 0 0 0
x2 0 0 0 0 1 1 1 1
x3 0 0 1 1 0 0 1 1
26
x4 0 1 0 1 0 1 0 1
y
0 1 0 1 1 1 0 1
1 1 1 1 1 1 1 1
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
1 0 1 0 1 0 0 0
Tab. 5.1: Pravdivostní tabulka
Řešení Nejdříve danou logickou funkci pomocí Karnaughovy mapy minimalizujeme. Karnaughova mapa je na obr. 5.4.3. Podle pravidel minimalizace zakroužkujeme jednu čtveřici a dvě dvojice. Tím dostáváme minimalizovanou logickou funkci vyjádřenou Booleovými prvky. x2 x4
x1
x3
1
1
1
1 1
1
1
1
Obr. 5.8: Karnaughova mapa a) Realizace prvky Booleovy algebry: Použijeme minimalizovanou logickou funkci y = x1 ⋅ x2 ⋅ x4 ∨ x2 ⋅ x3 ⋅ x4 ∨ x1 ⋅ x4 , ze které nakreslíme blokové logické schéma (viz. obr. 5.9a). b) Realizace prvky NAND:
y = x1 ⋅ x2 ⋅ x4 ∨ x2 ⋅ x3 ⋅ x4 ∨ x1 ⋅ x4 y = x1 ⋅ x2 ⋅ x4 ∨ x2 ⋅ x3 ⋅ x4 ∨ x1 ⋅ x4 y = x1 ⋅ x2 ⋅ x4 ⋅ x2 ⋅ x3 ⋅ x4 ⋅ x1 ⋅ x4 c) Realizace prvky NOR:
y = x1 ⋅ x2 ⋅ x4 ∨ x2 ⋅ x3 ⋅ x4 ∨ x1 ⋅ x4 y = x1 ⋅ x2 ⋅ x4 ∨ x2 ⋅ x3 ⋅ x4 ∨ x1 ⋅ x4 y = x1 ∨ x2 ∨ x4 ∨ x2 ∨ x3 ∨ x4 ∨ x1 ∨ x4 y = x1 ∨ x2 ∨ x4 ∨ x2 ∨ x3 ∨ x4 ∨ x1 ∨ x4 y = x1 ∨ x2 ∨ x4 ∨ x2 ∨ x3 ∨ x4 ∨ x1 ∨ x4 Je třeba si uvědomit, že při realizaci prvky NAND a NOR musí být celá rovnice negována !!!
27
Bloková schémata na obr. 5.9 ukazují již zmíněnou realizaci Booleovými prvky na obr. 5.9a, prvky NAND na obr. 5.9b a prvky NOR na obr. 5.9c. Z obr. 5.9 si můžeme udělat také představu o tom, kolik prvků je na jednotlivé realizace zapotřebí. V případě Booleových prvků by bylo potřebí 4 invertorů, 3 součtových členů a 1 součinu, tj. celkem 8 prvků. V případě realizace prvky NAND by bylo zapotřebí 8 prvků NAND, v případě realizace prvky NOR bude potřebí 8 prvků NOR. Tedy v úhrnu potřebujeme pro jednotlivé realizace stejný počet prvků, výhodou u prvků NAND a NOR je, že využíváme prvky stejného typu.
x1
x1
& &
& x4
x4 &
1 y
& x2
x2 &
x3
&
x3
&
& y
x1
1
1
x4
1
1
x2
1
1
& &
1 y 1 y
x3
Obr. 5.9: Realizace Booleovými prvky, prvky NAND a prvky NOR
5.5 Realizace s programovatelnými logickými poli Speciální IO s mnoha vstupy a výstupy
Obsahují velké množství pravidel pro součiny, součty, negace Programováním se přepálí určité spoje v síti propojené a tím se vytvoří požadované propojení, tj. požadované fce. Pro složitější funkce, jsou velmi rychlé, ... Pokračování vývoje: obvody XILINX - ty obsahují i registry, čítače, ALU, ... Lze použít i pro sekvenční obvody a složitější funkce (včetně numerických funkcí)
5.6 Realizace s programovatelnými automaty
• • • •
Nejuniverzálnější Použití hlavně u kusových aplikací střední a vyšší složitosti Více způsobů programování viz. další látka
28
6. Kombinační logické obvody Kombinační logické obvody realizují kombinační logické funkce. (NOT, OR, AND, …)
Definice 1: Každé kombinaci vstupních proměnných x1 ,..., xn odpovídá jednoznačně jen jedna kombinace výstupních proměnných y1 ,..., ym . Definice 2: Hodnoty výstupů y1 ,..., ym závisí jen na okamžitých hodnot vstupů x1 ,..., xn . Kombinační obvody neobsahují paměťové prvky (jsou bez klopných obvodů). Kombinační obvod je většinou zadán pravdivostní (kombinační) tabulkou. VSTUPY x3 x1 x2 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
VÝSTUPY y1 y2 1 0 0 0
Kombinační obvody se většinou používají pro jednodušší úlohy řízení.
Příklad: Hlídání zlomených vrtáků:
x1 , x2 = 1 ⇒ zlomen y = 1 ⇒ porucha
y = x1 + x2 x1
x2
29
y
0 0 1 1
0 1 0 1
0 1 1 1
Realizace integrovanými obvody: obecně
hradly NAND
y = x1 + x2 = x1 ⋅ x2
Realizace programovatelným automatem, zápis programů pomocí instrukcí (viz další látka). A IX1 sejmutí vstupu X1 (adresa I32.0) O IX2 přičtení vstupu X2 (adresa I32.1) = OY přesun výsledku na výstup (adresa O32.0) Pro svou důležitost jsou často realizovány jako jeden logický člen tři složené logické obvody:
• • •
EXCLUSIVE-OR (neekvivalence) EXCLUSIVE-NOR (ekvivalence) AND-OR-INVERT
6.1 Logická funkce EXCLUSIVE-OR (neekvivalence) Funkci EXCLUSIVE-OR lze obecně definovat pro n logických proměnných. Tato funkce nabývá hodnoty 1 právě když existuje mezi n vstupními logickými proměnnými alespoň jedna, která má jinou hodnotu, než ostatní. Funkce EXCLUSIVE–OR se obvykle značí ⊕ . Jsou-li A, B vstupní logické proměnné, lze tuto funkci zapsat jako:
A ⊕ B = A⋅ B + A⋅ B = A⋅ B + A⋅ B Zapojení hradla EXCLUSIVE–OR lze realizovat pomocí dvou invertorů, dvou hradel AND a hradla NOR následovně:
30
A 0 0 1 1
B 0 1 0 1
A⊕ B 0 1 1 0
Obr 6.1: Důležitost funkce EXCLUSIVE–OR je následující: Chtějme sečíst dvě binární čísla o jednom bitu. Výsledek nabude hodnoty 0 pakliže obě čísla budou 0 , hodnoty 1 je-li jedno z nich 0 a druhé 1. Jsou-li obě čísla rovna 1, pak součet bude opět 0, ale je potřeba vytvořit přenos do eventuálního následujícího bitu. Označíme-li součet S a přenos C (carry), pak je zřejmé, že:
S = A⊕ B C = Ai B Obvodu generujícímu tyto dvě veličiny se říká polosčítačka. Na předchozím obrázku je rovněž znázorněno, že jednoduchou úpravou (vyvedením jednoho ze vstupů hradla NOR) lze získat z hradla EXCLUSIVE-OR polosčítačku.
6.2 Logická funkce EXCLUSIVE-NOR (ekvivalence) Ekvivalence je jak již název napovídá inverzní funkcí k právě popsané funkci a lze ji jednoduše vytvořit přidáním invertoru k hradlu EXCLUSIVE-OR. Tohoto způsobu však není možno použít při návrhu složitějších logických sítí a vždy je nutno promyslet nejefektivnější způsob generace té které logické funkce, jinak by neúměrně narůstaly rozměry, příkon a ve zdaleka ne poslední řadě také cena příslušné logické sítě. Proto vztah pro tuto funkci upravíme:
A ⊕ B = A⋅ B + A⋅ B = A⋅ B + A⋅ B = A⋅ B + A⋅ B Zapojení hradla EXCLUSIVE–NOR lze realizovat úpravou zapojení funkce EXCLUSIVE– NOR buď užitím na výstupu hradla OR místo hradla NOR, nebo prostou změnou zapojení vstupů hradel AND jak je ukázáno následovně.
A 0 0 1 1
B 0 1 0 1
A⊕ B 1 0 0 1
Obr 6.2: Toto zapojení je výhodné zejména tím, že vyvedením výstupů hradel AND získáme jednobitový komparátor. Součin A ⋅ B je totiž roven 1 právě když A = 1 a B = 0 tj. A > B ,
31
stejně A ⋅ B je rovno 1 právě když A = 0 a B = 1 , tj. A < B . Výstup A ⊕ B je roven 1 právě když A = B = 0 nebo A = B = 1 .
6.3 Logická funkce AND-OR-INVERT Hradla AND-OR-INVERT jsou logické obvody sestavené ze dvou hradel AND a z jednoho hradla NOR. Pravdivostní tabulka takového hradla a schéma je následující.
A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
Obr. 6.3:
B 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
C 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
X 1 1 1 0 1 1 1 0 1 1 1 0 0 0 0 0
Vyjádření logické funkce je následující: A ⋅ B + C ⋅ D Proč se tyto obvody vyráběly v integrované formě vyplyne nejlépe, porovnáme-li obrázek 6.3 s obr. 6.1 a 6.2. Z tohoto srovnání vidíme, že můžeme tímto obvodem za pomoci dvou invertorů vytvořit funkce EXCLUSIVE-OR/NOR a navíc propojíme-li oba vstupy každého u hradel AND, můžeme realizovat funkci NOR. Tato hradla se vyráběla pod označením 7450 a 7453.
7. Sekvenční logické obvody Sekvenční logické obvody realizují sekvenční logické funkce. Definice 1: Hodnoty výstupních proměnných y1 ,..., ym závisejí nejen na okamžitých hodnotách vstupních proměnných x1 ,..., xn , ale i na jejich minulých hodnotách (na jejich časovém sledu). To znamená, že sekvenční obvody obsahují paměťové prvky (klopné obvody). Definice 2: Jestliže některé kombinaci vstupů odpovídají dvě nebo více kombinace výstupů, pak se jedná o sekvenční obvod.
32
Sekvenční automat: Realizuje posloupnost řídících kroků při řízení složitějších zařízení (například turbosoustrojí,...). Popis funkce sekvenčního obvodu: Sekvenční obvod můžeme nejlépe vyjádřit grafem přechodů (orientovaný graf s uzly a hranami). Lze též použít v některých případech pravdivostní tabulku, kde do vstupů zahrneme i vnitřní proměnné.
Příklad: Řízení pohybu mezi dvěma dorazy (lisování, stříhání,...).
Pravdivostní tabulka (sestavena z technologických požadavků):
x1 1 0 0 0
x2 0 0 1 0
y1 1 1 0 0
y2 0 0 1 1
Poznámky "vybavení", tj. zapnutí pohonu nahoru a vypnutí dolů posun nahoru "vybavení", tj. zapnutí pohonu dolů a vypnutí nahoru posun dolu
Pro kombinaci x1 = 0 a x2 = 0 jsou dva různé výstupy ⇒ jedná se o sekvenční obvod.
33
Řešení 1: Jde o sekvenční obvod, zavedeme vnitřní proměnné y1 − , y2 − , zastupující dosavadní pohon:
x1 0 0 0 0 1 1 1 1
x2 0 0 1 1 0 0 1 1
y1 − 0 1 0 1 0 1 0 1
y1 0 1 0 0 1 1 0 0
Není dosaženo horní ani dolní úvratě a nepohybujeme se nahoru Není dosaženo horní ani dolní úvratě a pohybujeme se nahoru Dosaženo horní úvratě a nepohybujeme se nahoru Dosaženo horní úvratě a pohybujeme se nahoru Dosaženo dolní úvratě a nepohybujeme se nahoru Dosaženo dolní úvratě a pohybujeme se nahoru Dosaženo horní a dolní úvratě a nepohybujeme se nahoru Dosaženo horní a dolní úvratě a pohybujeme se nahoru
Řešení 2: Realizace integrovanými obvody (NOT, OR, AND):
Řešení 3: Požadované funkce "mazání" a "vybavení" má klopný obvod R-S (R = RESET = nulování, S = SET = nastavení) ⇒ nejjednodušší realizace dvěma R-S klopnými obvody:
34
Řešení 4: Realizace programovatelným automatem, zápis programů pomocí instrukcí.
Řešení 5: Realizace grafem přechodů - Každý stav, který může nastat vyjádříme kolečkem, do kterého doplníme hodnotu, kterou nabývá. Šipkami vyjadřujeme události, vyvolané změnou vstupu. K šipce připíšeme, označení použitého vstupu.
Rozšíření o bezpečnostní čidlo: x3=1 - ruce v nebezpečném prostoru.
Rozšíření o tlačítka START a STOP: (pravdivostní tabulka by měla 2+1+2=5 vstupů řádků).
35
32
Logické obvody se dělí na: • Kombinační logické obvody - u nichž hodnoty vstupních logických signálů určují jednoznačně hodnoty signálů výstupních. Neobsahují žádné paměťové členy, které by uchovávaly informaci o předchozích hodnotách vstupních proměnných. • Sekvenční logické obvody - u kterých hodnota výstupu nezávisí pouze na okamžité kombinaci vstupních proměnných, ale je závislá i na výchozím počátečním stavu, ve kterém daná kombinace vstupních proměnných přišla a navíc na jejich časovém sledu. Prakticky to znamená, že dvěma stejným kombinacím vstupních proměnných nemusí odpovídat stejná výstupní funkce. Sekvenční logické obvody dělíme na: • Asynchronní sekvenční obvody - u nichž případná změna vnitřních stavů a tedy i změna výstupu je vyvolávána bezprostředně změnami vstupních proměnných. • Synchronní sekvenční obvody - jejichž činnost je podmíněna přivedením synchronizačních, tzv. hodinových impulsů na zvláštní vstup. Každá změna stavu, tzv. změna vstupních a vnitřních proměnných u synchronních obvodů je řízena těmito impulsy a tak jsou zajištěny stejné okamžiky změn všech proměnných. Základními a nejjednoduššími sekvenčními logickými obvody jsou klopné obvody. Jejich úkolem je zaznamenat přítomnost přechodné informace změnou svého stavu a tento stav uchovat i v případě, že tato informace zmizí.
7.1 Klopný obvod R-S Základním obvodem, který je schopen setrvat v určitém stavu (logické 0 nebo 1) bez aplikace vnějších logických úrovní (mimo napájecí napětí ovšem) je tzv.paměťová buňka, neboli klopný obvod. Nejjednodušší klopný obvod vytvoříme pomocí dvou invertorů, kterým křížem propojíme vstupy a výstupy viz obr.7.1.1. Po zapojení napájecího napětí se nastaví na výstupu jednoho invertoru logická jednička a na druhém výstupu logická nula. Tento stav je logicky konzistentní, neboť je-li např. na výstupu Q invertoru I1 logická jednička, je tato i na vstupu A2 invertoru I2, který musí mít tedy na svém výstupu Q nulu. Nula je tedy i na vstupu A1 invertoru I1, což odpovídá stavu na jeho výstupu.
Obr.7.1.1: Zapojení klopného obvodu. Chceme-li do paměťové buňky “zapisovat”, tj. nastavovat výstup Q do úrovně 0 nebo 1, musíme použít místo prostých invertorů dvojvstupová hradla NAND a propojit je společně se dvěma invertory podle obr. 7.1.2. Tomuto zapojení se říká asynchronní klopný obvod R-S.
36
Obr.7.1.2: Zapojení asynchronního klopného obvodu R-S. Asynchronní klopný obvod R-S pracuje následujícím způsobem. Signálem logické 1 na vstupu S se nastavuje do stavu 1, signálem logické 1 na vstupu R se nastavuje do stavu 0. Při S=0 a R=0 se stav výstupu klopného obvodu nemění, kombinace vstupních signálů S=1 a R=1 je zakázána. Na následujícím obrázku je zobrazena pravdivostní tabulka asynchronního klopného obvodu RS. S R Q Q 0 0 1 1
Q 0 1 -
0 1 0 1
Q 1 0 -
Obr.7.1.3: Pravdivostní tabulka asynchronního klopného obvodu R-S.
Obr.7.1.4: Stavový diagram asynchronního klopného obvodu R-S. V sekvenčním logickém systému je třeba, aby se nastavení nebo nulování klopných obvodů dělo v synchronismu s hodinovými impulsy. To lze zabezpečit tak, že místo invertorů zobrazených na obr. 7.1.2 použijeme dvoustupová hradla NAND, která otevíráme hodinovými impulsy viz obr. 7.1.5. Pokud bude na hodinovém vstupu log 0 (stav mezi dvěma impulsy), nezmění klopný obvod svůj stav a pamatuje si jej po dobu mezi dvěma hodinovými impulsy. Zapojení takového synchronního klopného obvodu je na obr. 7.1.5.
37
Obr.7.1.5: Zapojení synchronního klopného obvodu R-S. Jsou-li vstupy R a S uzemněny (je-li na nich logická nula), pak na výstupech řídících hradel je logická jednička nezávisle na úrovni hodinového vstupu. Výstupy Q a Q zůstávají proto na úrovni, do které se dostaly před tím, než jsme na oba vstupy R a S logickou nulu přivedli. Přivedením logické nuly na oba vstupy R i S zablokujeme tedy stav výstupů Q a Q , které jsou nyní nezávislé na hodinových impulsech. Na obr. 7.1.6 je pravdivostní tabulka synchronního klopného obvodu a na obr. 7.1.7 je schematická značka obvodu.
S 0 0 0 0 1 1 1 1
C 0 1 0 1 0 1 0 1
R 0 0 1 1 0 0 1 1
Q Q Q Q 0 Q 1 -
Obr.7.1.6: Pravdivostní tabulka synchronního klopného obvodu R-S.
Obr.7.1.7: Schematická značka synchronního klopného obvodu R-S. Kromě právě popsaného klopného obvodu R-S jsou používány tři další typy klopných obvodů: dvojčinné klopné obvody J-K, T a D. Dvojčinné klopné obvody J-K, D a T odstraňují neurčitý stav obvodu R-S. Obvod T pracuje jako binární obvod, který mění svůj stav po každém hodinovém impulsu Qn +1 = Qn .
38
7.2 Klopný obvod D Klopný obvod typu D je paměťový člen, který při příchodu hodinového impulsu (vstup C) přenáší informaci ze vstupu D na výstup. Zapojení klopného obvody typu D je na obr. 7.3.1. Konkrétní zapojení je možno odvodit ze zapojení R-S klopného obvodu. Když je D = 1 a C = 1 tak je signál S aktivní a klopný obvod přechází do stavu 1. Když D = 0 a C = 1 tak je aktivní signál R a klopný obvod přechází do stavu 0. Pravdivostní tabulka je na obr. 7.3.2.
_ S
D C
Q
_ Q
_ R
Obr.7.3.1: Zapojení klopného obvodu typu D. Q Q D C 0 0 1 1
Q 0 Q 1
0 1 0 1
Q 1 Q 0
Obr.7.3.2: Pravdivostní tabulka klopného obvodu typu D.
D
Q
C
_ Q
Obr.7.3.3: Schematická značka klopného obvodu typu D. Schematická značka je na obr. 7.3.3. Klopné obvody typu D mohou sloužit jako paměti binární informace, která se vybaví hodinovým impulsem k dalšímu zpracování. Příkladem jednoduchého obvodu typu D je integrovaný obvod 7474 který má dva jednoduché D-obvody v jednom pouzdru. Tyto klopné obvody mají dva nastavovací vstupy S, R, Datový vstup D , hodinový vstup C a je řízen náběžnou hranou (obr. 7.3.4).
Q _ Q
Obr.7.3.4: D klopný obvody 7474.
39
7.2 Klopný obvod J-K Pro odstranění neurčitého stavu klopného obvodu R-S byl vyvinut klopný obvod J-K. Používá se pro stavbu registrů a čítačů. Principiální zapojení je na obr. 7.2.1.
Obr.7.2.1: Zapojení klopného obvodu J-K. Zapojení obsahuje dva klopné obvody R-S, u nichž výstupy Q a Q prvního jsou navázány na vstupy S a R druhého. Druhý klopný obvod se řídí invertovanými hodinovými impulsy a zpětná vazba je vedena z výstupu druhého klopného obvodu na vstup prvního. První klopný obvod se nazývá řídicí (master), druhý klopný obvod je řízený (slave). Pravdivostní tabulka klopného obvodu J-K je na obr. 7.2.2. Vstupy J K
Výstupy Qn +1 Qn +1
0 0 1 1
Qn
0 1 0 1
0 1 Qn
Qn 1 0 Qn
Poznámka Předchozí stav Nulování Nastavení Překlápí do opačného stavu
Obr.7.2.2: Pravdivostní tabulka klopného obvodu J-K. S náběžnou hranou hodinového impulsu se nastavuje úroveň na výstupech řídícího obvodu; řízený obvod je uzavřen, neboť úroveň na jeho hodinovém vstupu C = 0 . Se sestupnou hranou hodinového impulsu se uzavírá vstup řídícího klopného obvodu a stav na jeho výstupu je kopírován řízeným klopným obvodem. Jeho výstupní úrovně jsou vedeny zpětnou vazbou na vstup řídícího obvodu, tam však nezpůsobí žádnou změnu, neboť tentokrát je řídící obvod uzavřen ( C = 0 ). Oba výstupy Q i Q jsou propojeny se vstupními členy NAND tak, že výstupní funkce je definována i pro případ kdy J = 1 a K = 1 . Na obr. 7.2.3 je stavový diagram klopného obvodu J-K a na obr. 7.2.4 je jeho schematická značka.
40
Obr.7.2.3: Stavový diagram klopného obvodu J-K.
Obr.7.2.4: Schematická značka klopného obvodu J-K. V integrálním provedení se vyrábí celá řada J-K klopných obvodů. Uvedeme si dva typy 7472 a 7476 (viz obr. 7.2.5). Integrovaný obvod 7472 je J-K klopný obvod, který má 3 vstupy J, 3 vstupy K, vstup synchronizace C a nastavovací vstupy S, R. Integrovaný obvod 7476 obsahuje dva J-K klopné obvody se vstupy J, K, vstupem synchronizace C a nastavovacími vstupy R a S. Q
J K C
_ Q
S R
Q _ Q
Obr.7.2.5: J-K klopné obvody 7472 a 7476.
7.4 Klopný obvod typu T Klopný obvod typu T mění svůj stav při každém hodinovém impulsu. Je tedy Qn +1 = Qn . Z pravdivostní tabulky obvodu J-K můžeme vidět, že tuto funkci plní obvod J-K pro J = K = 1. Obvod typu T má tedy dva vstupy - vstup T (spojené vstupy J-K) a vstup pro hodinové impulsy. Je-li T = 1 , obvod se překlápí, Qn +1 = Qn , je-li T = 0, obvod zůstává překlopen do původního stavu; Qn +1 = Qn .
7.5 Přehled klopných obvodů Při aplikacích jsou důležité čtyři typy klopných obvodů: klopný obvod R-S, klopný obvod JK, D a T. Obvody typu J-K a D jsou vyráběny v integrované formě v různých stupních integrace, obvod typu R-S je možné sestrojit pomocí hradel NAND nebo použít místo něj obvod J-K. Rovněž obvod typu T se dá snadno vytvořit z obvodu typu J-K nebo z obvodu typu D. Klopné obvody mívají kromě synchronních vstupů dat ještě tzv. přímé neboli asynchronní vstupy, jimiž je možno nastavovat výstupy klopného obvodu do stavu Q = 0 nebo Q = 1 v době mezi dvěma hodinovými impulsy. Je-li klopný obvod typu master-slave, mění svůj stav při sestupné hraně hodinového impulsu; jinak při náběžné hraně.
41
8. Posuvné registry Kombinací n klopných obvodů, schopnou zapamatovat si n-bitovou informaci, nazýváme registrem. Spojíme-li výstup klopného obvodu se vstupem následujícího klopného obvodu dostáváme sestavu tzv. posuvného registru. Příklad pětibitového posuvného registru, který je komerčně vyráběn, vidíme na obr. 8.1.
Obr. 8.1: Pětibitový posuvný registr. Pro posuvný registr jsou nezbytné dvojčinné obvody typu J-K. Pokud je posuvný registr vybaven sériovým vstupem dat (viz obr. 8.1), je první klopný obvod opatřen invertorem mezi vstupy J a K , čímž je vytvořen z tohoto klopného obvodu klopný obvod typu D. Hradla typu NAND v nastavovacích vstupech klopných obvodů slouží k tomu, aby se všech pět klopných obvodů po nastavení informace na jednotlivých vstupech PS0 - PS4 mohlo nastavit jediným impulsem.
8.1 Sériový vstup dat Předpokládejme, že chceme zapsat do registru binární číslo 01011. Číslo zapisujeme způsobem obvyklým u decimálních čísel tak, že nejméně významný bit je vpravo. Sledujme při tom Tab. 8.1.1.
Tabulka 8.1.1: Funkce pětibitového posuvného registru. Nejprve je třeba vynulovat všechny klopné obvody aplikací logické úrovně 0 na mazací vstup registru. Pak všechny výstupy Q0 - Q4 jsou 0. Nastavovací vstup registru je na úrovni logické 0, což má za následek, že všech pět nastavovacích vstupů jednotlivých klopných obvodů je na úrovni logické jedničky. Data na sériovém vstupu registru musí být synchronizována s 42
hodinovými impulsy tak, že při aplikaci hodinového impulsu do registru je na sériovém vstupu nastaven jeden z datových bitů počínaje od nejméně významného (LSB). Při prvním hodinovém impulsu je tedy na vstupu registru (KO4) nejméně významný bit, který se sestupnou hranou impulsu přesune na výstup Q4 , tedy na vstup S3 a jeho komplement Q4 na R3. Proto při aplikaci druhého hodinového impulsu se nejméně významný bit přesune na výstup Q3 eventuelně komplementovaný na Q3 , zatímco do K04 se načte další bit digitálního slova. Po pěti bitech se musí hodiny zastavit a podle tabulky vidíme, že v každém z klopných obvodů je po řadě informace o jednom z bitů zadaného dvojkového čísla. Tuto informaci můžete přečíst najednou z výstupů Q4 - Q0; v tom případě mluvíme o převodníku sériového na paralelní kód, nebo opět sériově z výstupu Q0; například při značně větší rychlosti hodinových impulsů. To je tzv. metoda vyrovnávací paměti (registr FIFO, first in, first out). Například při spojení terminálu s počítačem není možné, aby terminál byl k počítači připojen po celou dobu, kdy vkládáme klávesnicí data. Proto se data z klávesnice ukládají do vyrovnávací paměti, která se rychle vyprázdní na povel k odeslání dat.
8.2 Paralelní vstup dat Všimněme si nyní nastavovacích vstupů PS0 - PS4. Tyto vstupy jsou od vlastních nastavovacích vstupů klopných obvodů odděleny hradly NAND, které umožňují blokovat vnější vstupy a zapsat informaci jediným impulsem do vstupu nastavení registru. To je vhodné např. při přenosu dat od digitálních měřících přístrojů, kde je informace v paralelní formě, tj. všechny bity jsou dostupné najednou. K propojení měřícího přístroje s řídícím počítačem však někdy není možné použít velkého množství vodičů, proto je třeba převést tuto paralelní informaci na sériovou. Po ukončení měření, kdy je na vstupech PS0 - PS4 informace, aplikujeme logickou úroveň 1 na vstup nastavení registru, čímž nastavíme výstupy jednotlivých klopných obvodů Q0 - Q4 do odpovídajících pozic (registr je třeba nejprve vynulovat). Proto se vstupu nastavení registru někdy říká zapisovací vstup (write). Informace shromážděná v registru se nyní může přečíst buď opět paralelně; v tom případě je třeba opatřit výstupy Q0 - Q4 obdobnými hradly NAND jako nastavovací vstupy. Druhý vstup hradel pak umožňuje oddělit výstupy registru od dalšího zařízení. Informaci však můžeme přečíst též sériově z výstupu Q0 při synchronní aplikaci hodinových impulsů. V tomto případě hovoříme o převodníku paralelního na sériový kód.
8.3 Kruhový registr Spojíme-li výstup Q0 se sériovým vstupem registru, opakuje se na výstupech Q0 - Q4 stejná informace vždy po pěti hodinových impulsech. Takovému uspořádání říkáme kruhový registr. Lze si např. představit desetibitový kruhový registr, do jehož MSB byla na počátku uložena jednička a jinak byl registr vynulován. Je zřejmé, že vždy po deseti hodinových impulsech bude na MSB opět jednička a podle toho, na kterém bitu je právě jednička poznáme, kolik impulsů (v rozmezí od 0 do 9) přijal hodinový vstup registru. Takový registr tedy tvoří dekadický čítač (dělič deseti), kde není nutný dekodér binární informace na dekadickou; komplikaci však tvoří skutečnost, že je třeba vždy po zapnutí přístroje vložit do registru jedničku, která pak v registru "obíhá". Pro dělení větším číslem potřebujeme rovněž značný počet klopných obvodů, takže cena zařízení neúměrně stoupá.
43
9. Čítače Kombinaci klopných obvodů schopnou čítat počet vstupních impulsů a vyjádřit jejich počet pomocí buď binárního nebo jiného kódu, nazýváme čítače.
9.1 Asynchronní čítač vpřed Asynchronní čítač vpřed je znázorněn na obr. 9.1.1.
Obr. 9.1.1: Asynchronní čítač vpřed. Skládá se z řetězce (v našem případě čtyř) klopných obvodů typu T. Klopné obvody byly vytvořeny pomocí obvodu J-K připojením obou vstupů na logickou 1. Jednotlivé klopné obvody mění stav výstupu při každé sestupné hraně na svém hodinovém vstupu. Překlápění obvodů se tedy řídí v podstatě dvěma pravidly: 1. Výstup Q0 obvodu T0 mění svůj stav při každé sestupné hraně vstupních impulsů. 2. Všechny ostatní výstupy mění svůj stav právě když předcházející klopný obvod mění stav výstupu Q z 1 do 0. Aplikací těchto pravidel dostáváme tvar signálu na výstupech Q0 - Q3 tak, jak je uvádí obr. 9.1.2 a tabulka 9.1.3. Vidíme, že stav výstupů Q0 - Q3 je přesně binární reprezentace čísla, udávajícího pořadí vstupního hodinového impulsu. Takovýto řetězec klopných obvodů tedy čítá v binární soustavě. Pro názorné zobrazení příslušného čísla je však třeba užít dekodéru, tj. logické sítě s 16 výstupy tak, aby při každé kombinaci jednotlivých bitů byl na logické úrovni 1 právě jeden z výstupů.
Obr. 9.1.2: Signál na výstupech Q0 až Q3 asynchronního čítače.
44
číslo výstupního impulsu 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
výstupy klopných obvodů Q3 Q2 Q1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 0 0 0
Q0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
Tabulka 9.1.3: Signál na výstupech Q0 až Q3 asynchronního čítače.
9.2 Synchronní čítače Z rozboru funkce asynchronních čítačů je zřejmé, že změna stavu z 1 do 0 předcházejícího obvodu teprve působí změnu stavu následujícího obvodu. V případě, že všechny obvody jsou na logické úrovni 1, vybudí postupně jeden druhý a doba potřebná k tomu, aby celý čítač vykonal odezvu na vstupní impuls, může být srovnatelná s dobou mezi jednotlivými impulsy. To je nebezpečné zvláště tehdy, je-li řada obvodů dlouhá, neboť dokud celý řetězec nedosáhne ustáleného stavu, nelze jeho výstupy synchronně (v jednom okamžiku) odečíst a zařízení tak ztrácí smysl. Aby se doba odezvy čítače na vstupní impuls snížila, byla opět poněkud modifikována topologie zapojení čítače tak, aby na klopné obvody byl přiveden vstupní impuls synchronně. V tom případě je však třeba zabezpečit, aby měnily stav jen ty klopné obvody, u kterých je to požadováno. Zde se plně využívá funkce obvodu typu T. Pomocí řídící logiky se ze stavu výstupů předcházejících obvodů určuje logická úroveň vstupu T a tedy skutečnost, zda klopný obvod změní nebo nezmění stav při aplikaci následného hodinového impulsu. Čítač se tak v době mezi impulsy “připravuje” na zpracování následného hodinového impulsu. Příklad binárního synchronního čítače je na obr. 9.2.1. Použitím tohoto zapojení lze zhruba zdvojnásobit pracovní frekvenci čítače ve srovnání s asynchronním. Využitím asynchronních vstupů klopných obvodů lze před započetím čítání nastavit počáteční stav čítače, tj. provést předvolbu.
45
Obr. 9.2.1: Binární synchronní čítač.
9.3 Vratný čítač Zařízení, které jsme právě rozebrali zobrazují počet vstupních impulsů v binárním tvaru, tj. každý další impuls způsobí zvýšení stavu čítače o 1. Často je ale třeba, aby čítač počet impulsů odečítal. Čítač, který toto provádí, se nazývá čítačem vzad. Asynchronní čítač vzad realizujeme tak, že místo výstupu předchozího klopného obvodu Qn připojíme na hodinový vstup následujícího obvodu Qn +1 předchozí negovaný výstup Qn . Čítače, které umožňují podle řídícího povelu čítání buď vpřed nebo vzad nazýváme vratnými. Asynchronní čítač vzad realizujeme tak, že místo výstupů Qi propojíme s hodinovými vstupy následujících obvodů výstupy Qi . Chceme-li tedy realizovat vratný asynchronní čítač, musíme sestrojit přepínač, který bude přepínat do hodinových vstupů buď výstup Q nebo Q předchozího klopného obvodu. Příklad realizace takového přepínače je na obr. 9.3.1.
Obr.9.3.1: Binární vratný čítač. Čítač čítá P 1 vpřed 0 Vzad Obr. 9.3.2: Pravdivostní tabulka binárního vratného čítače. Obdobně jako se konstruují synchronní čítače vpřed lze vytvořit i vratné synchronní čítače se zachováním jejich výhody oproti asynchronním - podstatně kratší doby odezvy na vstupní impuls. Jejich schéma je podstatně složitější, než u asynchronních vratných čítačů, neboť je nutné hradlovat hodinový signál v každém stupni; proto si je nebudeme uvádět. Vratné čítače se vyrábějí buď jako samostatné integrované obvody střední integrace, nebo jsou na jednom čipu integrovány s obvody plnícími další funkce. 46
10. Integrované obvody – IO (pro logické operace) Definice IO: Obvod obsahující miniaturizované aktivní a pasivní obvodové prvky, umístěné v jednom společném pouzdře. Pouzdro IO: • plastové (levnější) • keramické (vydrží vyšší teploty a je spolehlivější) Počet vývodů: 14-16-18-24-28-(40=mikroprocesory)
10.1 Rozdělení IO dle stupně integrace 1. S malou integrací (SSI=Small-Scale-Integration) obsahuje méně než 25 obvodových funkcí na čipu. 2. Se střední integrací (MSI=Medium-Scale-Integration) obsahuje 25 až 200 obvodových funkcí na čipu. 3. S velkou integrací (LSI=Large-Scale-Integration) obsahuje více než 200 obvodových funkcí na čipu. 4. S velmi velkou integrací (VLSI=Very Large-Scale-Integration) obsahuje desetitisíce obvodových funkcí na čipu.
10.2 Rozdělení IO dle technologie výroby 1. Bipolární technologie - základem je bipolární tranzistor s přechodem PN, přes přechod se přenášejí elektrony a díry Vlastnosti: • rychlý • vyšší spotřeba • menší hustota integrace
a) TTL Technologie (Tranzistor-Tranzistor-Logic) nejstarší, nejrozšířenější vystačí s jediným napájením +5V velký logický zisk (na jeden výstup IO lze připojit 10 výstupů) vysoká rychlost, dobrá šumová imunita modifikace: - S-TTL (Scottkyho antisaturační diody ⇒ vyšší rychlost) - LS-TTL (Schottkyho + nízká spotřeba) b) Technologie ECL tj. emitorově vázané obvody velmi rychlé (tranzistory jen v aktivní oblasti, bez saturace) nutné dvě napájecí napětí menší šumová imunita (rozkmit signálu 0,8V)
47
2. Unipolární technologie základem tranzistor MOS (Metal-Oxid-Semiconductor)
Technologie MOS-P (tranzistory MOS s P kanálem) starší Technologie MOS-N: 3x rychlejší (pohyblivější nosiče nábojů), vysoký stupeň integrace Technologie CMOS (komplementární MOS): komplementární dvojice tranzistorů MOS, široké rozmezí napájecího napětí (3¸ 18V), malá spotřeba ⇒ vhodné i pro bateriové napájení.
10.3 IO pro základní logické operace tj. pro sčítání, násobení, negaci, tj. pro kombinační obvody. Základem je obvod NAND s různým počtem vstupů - často 4x2 vstupy až 1x8vstupů:
Některé mají součet součinů: (typ MH7454): y = A ⋅ B + C ⋅ D + E ⋅ F + G ⋅ H Lze použít i čtveřici hradel NOR: (typ OCY7402N - dovoz): y = A + B
48
10.4 Převodníky kódů, multiplexery a IO se specializovaným kombinačním obvodem Příklad: Převodník z kódu BCD (Binar Code Decimal) na kód jedna z deseti (MH7442)
Příklad: Převodník z kódu BCD na kód sedmisegmentových zobrazovacích jednotek (D146, D147)
Příklad: Šestnáctikanálový multiplexer (pro výběr dat) (MH74150)
49
Programovatelné automaty 11. Programovatelné automaty všeobecně Označení: • PA: Programovatelný automat • PLC: Programmable Logic Controller • SPS: Speicher Programmierte Steuerung • SOFT PLC: PA realizovaný pomocí PC (náhradní řešení) Podstata:
(
Závislost VÝST = f VST
)
je dána programem ⇒ název PA. Zásadní výhodou vůči
automatům s pevnou logikou je, že funkce je dána programem, nikoliv propojením relé, tranzistorů, IO. U automatů s pevnou logikou je funkce dána propojením obvodů. Činnost PA je dána jen programem a z toho plyne název PA. Stejný HW pro tisíce různých aplikací ⇒ hromadná výroba ⇒ nízká cena. Největší světový výrobci (podíl na světovém trhu v roce 1994) • Siemens 22,1% (v roce 1997 bylo v ČR 25 000 Simaticů) • Allen Bradley 16.0% - americká firma (na americkém trhu asi 50%) • AEG Schneider 10,8% - německá firma • Mitsubishi 9.9% - japonská firma • Omron 8,0% - japonská firma • Ostatní 33,1% Výrobci v ČR • TECO Kolín • ZAT Příbram (jako první zavedli vývojové prostředí) • MICROPEL (PES1, PES2…) – Firma MICROPEL přichází rychle se špičkovými novinkami. Například propojení s telefonem pomocí SMS měl MICROPEL v roce 2000, ostatní firmy až po 4 letech. Velkým firmám uvedení novinek na trh trvá déle, protože si musí vše zvážit, nemohou si dovolit něco vyrobit a za rok říct budeme to vyrábět jinak. Neúplné PA (předstupně PA) • „Logický modul“ LOGO! (SIEMENS) – seznámíme se sním ve cvičení • „Inteligentní Relé“ EASY (MOELER) • „Mikroautomat“ ALPHA (MITSUBISHI)
50
11.1 Oblasti použití PA
• •
•
• •
PA jsou nejrozšířenější řídicí systémy. Začátek používání PA můžeme situovat do roku 1970 kdy se začala používat mikroprocesorová technika. Důvodem vzniku byla malá odolnost počítačů v průmyslovém prostředí. Automaty jsou například odolnější v těchto oblastech: Vyšší odolnost vůči vibracím - například u počítače by nevydržel pevný disk a také jeho celková konstrukce je stavebnicová a při vibracích se "rozpadá". U automatu disk není a jeho mechanická konstrukce je pevnější. Vyšší odolnost vůči prachu a vlhkosti - do počítače je prach vháněn ventilátorem a zde se usazuje (kvůli rovnoměrnému proudění vzduchu v počítači). V kombinaci s vysokou vlhkostí může způsobit zkrat. U automatů ventilátor není, protože mají podstatně nižší spotřebu a není je tedy nutno chladit. Konstrukce automatu je dělána tak, aby se nedal snadno vy-zkratovat. Vyšší odolnost při výkyvech napájení - elektrická síť fabriky může kolísat (například při rozběhu nebo zastavení stroje který odebírá větší množství proudu). Zdrojové jednotky jsou dělány tak, aby vydržely (některé) proudové špičky, záložní baterie, je schopna nahradit výpadky proudu. Vyšší odolnost vůči elektromagnetickým polím - u automatu není tolik součástek, které by se dali zmagnetovat a většina výrobců se snaží tyto prvky odstínit. Všechny nevýhody počítačů se dají vylepšit (odpružení disku, vzduchotěsné oddělení od okolního prostředí s vlastním chlazením atd., ale narůstá nám zde cena. I automaty mají své nevýhody, jednou z hlavních je nižší rychlost (oproti počítačům). Současné automaty například nedokáží pracovat s obrazem. U takovýchto výrob (například osazování desek plošných spojů) musíme postupovat opačně, to znamená přizpůsobovat výrobu počítačům (průmyslovým). U této výroby nemáme problém s vibracemi, ale snažíme se o čisté prostředí bez prachu, počítače mají vlastní el. okruh, který je zálohován atd. Kromě vysoké odolnosti hardwarové, mají automaty i vyšší odolnost softwarovou. Software je "ušit na míru" danému automatu a je tak stabilnější než běžné OS u počítačů. Minimální rozsah úlohy pro PA: Můžeme orientačně říci, že minimální rozsah úlohy pro PA je tam, kde nahradíme 5-10 relé. Například pro rozběh motoru a jeho přepínání z hvězdy do trojúhelníku je PA zbytečný. Na to nám stačí jedno relé. Maximální rozsah úlohy pro PA není omezen. Je totiž možné distribuované řízení, tj. síť mnoha desítek až stovek PA. Použití PA hlavně pro základní úrovně řízení, tj. pro technologickou úroveň. Na následujícím obrázku můžeme vidět pyramidu řízení.
51
• • •
PA jsou přizpůsobeny technologii a jsou sní přímo spojeny. Je vyžadována velmi vysoká spolehlivost a PA často zajišťují funkce ochran. V praxi je ale výhodnější mít zvlášť ochrany a zvlášť řízení. To můžeme vidět v pyramidě řízení. HW zabezpečení je použito pro životně důležité zabezpečení například chemie, letadla atd. Nesmí být programovatelné, ale pouze HW. Při extrémních aplikacích jsou PA zálohovány, například systémem 2 z 3. Tuto funkci většina PA přímo podporuje. Dřívější PA byly jen pro logické řízení, tj. pro zpracování 2 hodnotových veličin – pro kombinační a sekvenční řízení. Dnešní PA zpracovávají i analogové veličiny a číslicové údaje (to umožňuje přímé připojení číslicových snímačů, číslicových zařízení atd.)
11.2 Charakteristické vlastnosti PA
• • • •
•
• • • •
PA je mikropočítač orientovaný na automatické řízení. Jádrem je mikroprocesor, který vykonává logické a aritmetické operace. Uživatel nemusí znát mikroprocesor, ani použitý operační systém. Chod PA je řízen vnitřním systémovým softwarem (firmwarem) od výrobce tak, aby uživatelský software byl co nejjednodušší. Většinou jsou k dispozici hotové knihovny bloků pro časté algoritmy (např. sejmutí analogové veličiny a její převod na číslo, hlášení o chybách, překročení rozsahu analogové veličiny atd.). Program je psán ve speciálním jazyku, který je přizpůsoben pro HW daného automatu – dříve co automat to jiný programovací jazyk, ale dnes se začíná prosazovat standardizace dle normy IEC. Nezbytným příslušenstvím PA je programovací přístroj, který slouží k editaci a k testování PA. Největší HW univerzálnost je u stavebnicových PA, protože volíme počet ale i sortiment vstupně/výstupních jednotek. Pro náročné algoritmy jsou speciální jednotky (někdy se nazývají „inteligentní periferie“). PA má poměrně dokonalou auto-diagnostiku, protože musí být spolehlivý tak se sám kontroluje. Používá watchdog: o Odmlčení programu se vyhodnocuje jako závažná chyba. o Kontrola doby cyklu – odměřuje se doba, kdy se nevyskytují instrukce. Po zjištění chyby se zastaví program a výstupy PA se nastaví do definovaných hodnot.
11.3 Struktura PA Na následujícím obrázku je zobrazena obvyklá struktura PA. Počet výstupních jednotek je dle velikosti vany. Programovací přístroj stačí jen při uvádění do provozu. Sběrnice má 3 části: • datové vodiče • adresové vodiče • řídící vodiče
52
Někdy je vnitřní paměť rozdělena na: • Část RAM pro program (včetně zálohování pomocí baterie) • RAM pro data. Tato paměť může být zálohována a rozhoduje o tom programátor. • EEPROM pro parametry. Má omezený počet zápisů. Po zapnutí PA se z důvodu rychlosti program přesune z EEPROM paměti do paměti RAM. PA vždy pracuje dle programu v paměti RAM. Do RAM se přenese: • Z programovacího přístroje. • Z paměťového modulu EEPROM. Není-li paměť RAM zálohována baterií tak po každém zapnutí PA. Je-li paměť zálohována baterií pak jen při prvním zapnutí. V dnešní době se často místo baterie používá velkokapacitní kondenzátor.
11.3 Časový chod programu
• •
Odlišnost od běžných mikropočítačů Celý program je rozdělen do dílčích programů které jsou odlišně zpracovány.
11.3.1 Cyklicky spouštěný program
53
Blok sejmutí vstupů - přenos hodnot ze vstupních svorek do registrů - všechny najednou. Blok zpracování programu - během zpracování zůstávají vstupy i výstupy konstantní. Blok zápis do výstupů - přenos hodnot z registrů na výstupní svorky - zase vše najednou.
11.3.2 Časově spouštěný program
Nutné například pro regulační algoritmy.
11.3.3 Alarmově spouštěný program
• •
Inicializace při výskytu změny na určeném vstupu PA (řízení událostmi). Určeno pro rychlé reakce PA na naléhavé změny (téměř všechny poruchy technologie).
Hierarchie priorit: • Alarmově spouštěný program přerušuje časově spouštěný program a také cyklicky spouštěný program (má nejvyšší prioritu). • Časově spouštěný program přerušuje cyklicky spouštěný program. Postup při přerušení programu: • Přijde přerušení • Data se uloží do registru • Provede se další program • Data se obnoví z registru • Pokračuje se v provádění přerušeného programu Jednoduché PA umožňují pouze časové spouštění programu a nebo mohou umožňovat časové spouštění programu a cyklické spouštění programu a nebo v nejhorším případě pouze cyklické spouštění programu.
11.4 Provozní režimy PA Hlavní režimy (mají indikaci na čelním panelu PA): • RUN: normální provoz, program běží. • STOP: program v tomto režimu není zpracováván. o PA přejde do režimu STOP automaticky po zjištění chyby nebo povelem z panelu či z programovacího přístroje. o Stavy časovačů, čítačů, značek zůstávají zachovány. o Výstupy přejdou do stavu 0 nebo do předem definovaného stavu (nutno řešit v návaznosti na připojenou technologii).
54
Vedlejší režimy: • START (spuštění): zpracuje se zvláštní blok programu určený jen pro spuštění. • NULOVÁNÍ: smaže se program v RAM, včetně dat, časovačů, čítačů a značek. • KOPÍROVÁNÍ programu z paměťového modulu EEPROM do RAM. • KOPÍROVÁNÍ z RAM do paměťového modulu EEPROM.
11.5 Programovací přístroj Účel: • • • • • •
Vytvářet programy – editace zdrojového programu. Měnit a korigovat již vytvořené programy (změny parametrů). Překlad zdrojového programu do strojového kódu, včetně kontrol a přenosu do PA. Testovat správný chod programu i automatu (krokování programu + brake-point). Diagnostikovat poruchy (nalézt závadu). Monitorovat provoz, např. Po dobu zprovozňování (některé nové PA umožňují vykreslení časových průběhů vybraných veličin – grafické osciloskopické funkce). Režimy: • Bez spojení s PA, např. při editaci programů. • Ve spojení s PA, všechny testy, přesuny programů. Existuje více druhů programovacích přístrojů, liší se službami a cenou: • Ruční – pro změny parametrů, zobrazí jen jednu nebo dvě instrukce (podle displeje). • Přenosné – většinou laptop, použití většinou pro servis. • Stolní – PC kompatibilní Jeden programovací přístroj postačí pro všechny PA v podniku. Spojení s PA je většinou realizováno přes rozhraní RS232C nebo TTY (proudová smyčka), někdy také přes technologické sběrnice.
12. HW programovatelných automatů 12.1 Kompaktní PA
• • • • • • • •
Pevný počet vstupů a výstupů (rozšíření je sice možné ale méně vhodné). Uzavřená mechanická konstrukce. Variabilita jen volbou PA (napájení, úrovně I/O). Úrovně signálů dány (zvolenou variantou PA). Hodí se jen pro malé úlohy. Lepší odolnost v hrubých provozech. Lepší poměr cena/1 vstup vůči stavebnicím. Ceny asi 5000 až 30000 Kč.
55
Typicky:
Příklady: Firma Siemens: • Simatic S5-90U (8 vstupů, 6 reléových výstupů, 1 čítačový vstup, 1 alarmový vstup). • Simatic S5-95U (16 vstupů, 16 výstupů, 8 analog. vst., 1 analog. vst., 4 alarmové vst.). • Simatic S7-212 (8 vstupů, 6 výstupů, 1 přerušovací vstup z těch 8). • Simatic S7-214 (14 vstupů, 10 výstupů, 4 přerušovací vstupy z 14, 2 čítačové z 14).
12.2 Stavebnicové PA
• •
Počet jednotek je volitelný v přímém rozsahu Sortiment jednotek je široký o Dle druhu signálu – binární, analogové, číslicové, speciální o Dle velikosti signálu – binární 12V, 24V, 48V 230V střídavých o Dle charakteru signálu: Napěťové Proudové Odporové Impulsní
56
• •
Typicky 1 vana Pro velké úlohy se používá několik van které se propojí
12.3 Jednotky (moduly) stavebnicových PA 12.3.1 Zdrojové jednotky
•
• •
Napájecí napětí pro PA: o 230V střídavých - používá se tam kde nám nevadí výpadek napájení. Nepoužívá se záložní zdroj UPS, protože vydrží jen desítky minut. o 24V stejnosměrných – tam kde je třeba zálohovat např. baterií. o 48V stejnosměrných – toto napětí se dnes již moc nepoužívá. Zajišťuje vnitřní napětí +5V, ±15V , +24V atd. Často obsahuje bateriový zdroj pro zálohové napájení paměti RAM tzn. udržení programu a remanentních dat (Siemens udrží obsah paměti RAM 1 rok, životnost je cca. 5 let).
12.3.2 Centrální procesorové jednotky - CPU
• • • •
• • •
Zpravidla máme možný výběr z několika typů lišících se výkonností, rozsahem paměti, cenou atd. Poměr ceny mezi jednoduchou procesorovou jednotkou a nejlepší je až 50x. Obsahuje výměnný programový modul, vněmž je uložen uživatelský program. Používá paměťové IO: o EEPROM – elektricky mazatelné paměti. o EPROM – mazatelné světlem – používaly se dříve. o PROM – nejsou programovatelné. Zapisovalo se do nich už při výrobě. Má konektor pro připojení programovacího přístroje. Často má další konektory k sběrnicovému spojení s ostatními PA a zařízeními. Ovládací a indikační prvky (přepínač mezi RUN - STOP, COPY), Indikace chyby.
12.3.3 Komunikační jednotka
• •
Používá se pro složitější druhy spojení (ty jednodušší obstará přímo deska CPU – je tam na to speciální konektor). Nebo pro spojení na lokální síť (ETHERNET) pro dálkové prohlížení dat a řízení PA.
57
12.3.4 Jednotky pro binární vstupy
• •
Každá jednotka obsluhuje 4 až 32 vstupů na jednom modulu. Většina vstupů je galvanicky oddělena.
• Větší počet typů, přibližně 5 navzájem se lišících úrovní napětí: o TTL – moc se v automatech nepoužívá o 12Vss o 24Vss – nejpoužívanější o 110Vac o 230Vac • napětí je nutno dodržet v rozsahu ±20% 12.3.5 Jednotky pro binární výstupy
• Obsahují 2 až 16 výstupů na jednom modulu. • Výstupy: o Bezkontaktní – jako spínací prvky se používají tranzistory nebo triaky. o Pro kontaktní spínání – reléové – bezpečné galvanické oddělení. • Větší počet typů lišící se hlavně spínacím proudem 0.1Ass, 0.5Ass, 1Ass, 2Aac, 5Aac a dovoleným spínacím napětím. 12.3.6 Jednotky analogových vstupů
• •
4 až 16 vstupních jednotek na jednom modulu. Často je řešeno přes multiplexer:
•
velmi důležité je zda zvolíme galvanické oddělení! (kvůli ceně - pokud ano podstatně dražší, ale odolnější). doba převodu (1 kanál) o 40ms integrační A/D převodník o desítky ms aproximační A/D převodník (menší odolnost vůči rušení 50Hz)
•
58
•
druhy vstupů: o jednotky mV pro termočlánky o 0 až ±10V pro obecné použití o 0 až ±20mA, 4 až 20mA pro čidla s dlouhými přívody o Pt100 (Pt500, Pt1000) platinové teploměry (jmenovitý odpor 100,500,1000 Ω )
12.3.7 Jednotky analogových výstupů
• •
2 až 8 výstupních jednotek na jednom modulu zpravidla každý výstup má svůj D/A převodník
•
výstupy: o 0 až ±10V, 0 až +10V o 0 až ±20mA, 4 až 20mA Galvanické oddělení je drahé
•
12.3.8 Speciální jednotky
• •
•
Siemens označuje jako „inteligentní periferie“ odlehčují CPU od náročných algoritmů, například: o pro řízení polohovacího zařízení s krokovými motorky nebo o pro inkrementální čidla polohy regulační jednotky: o 1 až 4 smyčky rychlé regulace o větší model až 12 smyček současně o rychlé zpracování analogových signálů o simulační (diagnostické) jednotky (přepínače, zkouška funkce PA)
59
13. SW programovatelných automatů
• • • • •
Činnost PA je dána uživatelským programem Uživatelský program je v součinnosti se systémovým SW a „OS“ Pro uživatele není nutná znalost systémového SW a „OS“ Uživatelský SW je problémově orientovaný minimum řešitelských prací Doposud převažovaly firemní SW Malá jednotnost snaha o standardizaci
13.1 Norma IEC 1131 (eventuelně IEC-61131)
• • • •
Vydána v roce 1993 Týká se obecného programování automatizačních prostředků, tj. PA, mikropočítačů, průmyslových PC (IC, IPC) Má 5 dílů, ale programování PA je pouze v díle 1131-3 (ostatní jsou o I/O, komunikaci, atd.) Definováno 5 druhů zápisu programu (+ jejich kombinace)
a) Grafické jazyky • Jazyk kontaktních schémat • Jazyk logických schémat • Jazyk sekvenčního programování b) Textové jazyky • Jazyk mnemokódů • Strukturovaný textový jazyk (nově, dříve ne)
•
SW obsahuje o Programy (knihovny obecných algoritmů pro zákazníky) o Funkce (aritmetické, trigonometrické, exponenciální, atd.) o Funkční bloky (pro opakované algoritmy, vnitřní proměnné)
Každý program i funkční blok má jednotnou strukturu:
60
13.2 Jazyk kontaktních schémat
• •
Anglicky LD = Ladder Diagram, event. LAD, event. RLL = Relay Ladder Logic Německy KOP = Kontakt Plan
• •
Výhoda: Snadné hledání chyb pomocí vodivých cest Nevýhoda: Nelze použít u složitějších úloh
13.3 Jazyk logických schémat (jazyk funkčních bloků)
• • •
Anglicky FBD = Function Blok Diagram Německy FUP = Funktions Plan Obdoba schématům s integrovanými obvody IO
• •
Výhoda: Názornost Nevýhoda: Problematické u složitějších úloh
13.4 Jazyk mnemokódů
• • •
Anglicky IL = Instruction List, eventuelně STL Německy AWL = An Weisung Liste Obdobně jako u běžných programů, to je instrukce za instrukcí
61
Příklad: LD AN O = operace
• •
I1 I2 I3 O1
LD AN O =
operand se symbolickými jmény
I0.0 I0.1 I0.2 Q0.0 operand s absolutními adresami
Výhoda: Nejuniverzálnější, je vhodný i pro složité operace Nevýhoda: Obtížnější (velké množství strojově orientovaných instrukcí)
Srovnání možností jednotlivých jazyků:
13.5 Jazyk sekvenčního programování
• • • • •
Anglicky SFC = Sequential Function Chart Pro řízení typu „krok za krokem“ Používá se zejména pro řízení obráběcích strojů Lze řešit i jiným programovacím jazykem, ale toto je lepší a přehlednější Začalo se používat ve Francii: firma Grafcet, Siemens: Graph 5
62
Příklad zápisu jedné větve:
Větvení programu má následující alternativy:
• •
Výhoda: Efektivní zápis s dokumentováním Nevýhoda: Nutnost znalosti metodiky programování
63
13.6 Strukturovaný textový jazyk
• • • • •
Anglicky ST = Structured Text Zatím málo rozšířen Je podobný Pascalu Výhoda: Úsporný zápis Nevýhoda: Větší nároky na překladač (jako u klasického programování), překladač negeneruje nejlepší kód, protože se jedná o vyšší programovací jazyk a v asembleru to vždy napíšeme lépe ale pracně.
13.7 Zápis programu stavovým grafem (Grafem přechodů)
• • • • •
Není v normě IEC 1131 Používá se pro řízení strojů Je vhodný pro sekvenční i asynchronní procesy Výhody: Velmi univerzální, grafy lze vnořovat, názorné Používá ho například Siemens: S7-Higraph
64
14. Programování základních logických operací v jazyce Step7 Podstata: • Při logickém součtu (O ..) a součinu (A ..) se jako první operand použije hodnota z vrcholu střadače a druhý operand z instrukce. • Výsledek všech operací se uloží na vrchol střadače. • Instrukce OLD je bez operandu. Vezme dvě nejvyšší položky ze střadače, sečte je a výsledek uloží na vrchol střadače. Třetí položka se tím dostane na druhou pozici. • Instrukce ALD je bez operandu. Vezme dvě nejvyšší položky ze střadače, vynásobí je a výsledek uloží na vrchol střadače. Třetí položka se tím dostane na druhou pozici. • Střadač má hloubku 8 (Může být použito 8 po sobě jdoucích instrukcí LD ..). 14.1 Příklady zápisu logických funkcí v jazyce Step 7
y = x1 ⋅ x2 + x3 ⋅ x4 ⋅ x5 Součet součinů: LD X1 // přesun X1 na vrchol střadače A X2 // součin X1*X2 na vrchol střadače LD X3 // přesun X3 na vrchol střadače a posun předchozího součinu na druhou pozici AN X4 // součin X3*X4 na vrchol (na druhé pozici zůstal první součin) A X5 // součin X3*X4*X5 na vrchol (na druhé pozici zůstal první součin) OLD // sečte první (vrchol) a druhou položku střadače, výsledek uloží na vrchol = Y // výsledek z vrcholu překopíruje na adresu Y (vrchol zůstává) Součin součtů: LD O ON LD O LD O ALD
X1 X2 X3 X4 X5 X6 X7
ALD = Y
X1 X2 X3 X4
Y
)
// přesun X1 na vrchol střadače // součet X1+X2 na vrchol střadače // součet X1+X2+X3 na vrchol střadače // přesun X4 na vrchol střadače a posun předchozího součtu na druhou pozici // součet X4+X5 na vrchol střadače (na druhé pozici zůstal první součet) // přesun X6 na vrchol a posun předchozího na 2 pozici a prvního na 3 pozici // součet X6+X7 na vrchol (bez posuvu) // vynásobí první a druhou položku střadače, výsledek (X4+X5)*(X6+X7) // uloží na vrchol, zároveň zpětný posuv z 3 pozice na 2 pozici // vynásobí první a druhou položku střadače, výsledek uloží na vrchol // výsledek z vrcholu překopíruje na adresu Y
Obecnější kombinace: LD LDN LD A OLD ALD =
(
y = x1 + x2 + x3 ⋅ ( x4 + x5 ) ⋅ ( x6 + x7 )
(
y = x1 ⋅ x2 + x3 ⋅ x4
)
// přesun X1 na vrchol střadače // přesun X2 na vrchol střadače // na vrcholu střadače X3, pak X2 , na třetí pozici X1 // na vrcholu X3*X4, ostatní bez posunu // na vrcholu X2+X3*X4 , posun X1 na druhou pozici // na vrcholu výsledný součin // výsledek z vrcholu překopíruje na adresu Y
65