Praktiskt exempel på digital krets
Vi har blivit anlitade som konsulter åt företaget Fabriken AB. Vår uppgift är att konstruera ett digitalt kontrollsystem för en av maskinerna i deras fabrik. Vårt system skall visa maskinens status på tre lysdioder, en fjärde lysdiod skall tändas om ett fel har uppstått i maskinen, och när ett fel har uppstått skall det skickas en signal som stoppar maskinen Följande vet vi:
Insignaler: | a | Statussignal a, skall skickas till diod | |
b | Statussignal b, skall skickas till diod | ||
c | Statussignal c, skall skickas till diod | ||
Utsignaler: | error | Signal för fel, skall skickas till diod | |
continue |
Signal som talar om för maskinen om den ska stå stilla eller stanna av. | ||
Villkor för fel: | Ett fel har uppstått om a,b och c har värdet "1" samtidigt. Vid fel ska en lysdiod tändas. | ||
Villkor för continue: | Continue signalen ska vara "1" så länge inget fel har inträffat. När ett fel inträffar ska signalen bli "0". |
Lösning:
Med våra kunskaper om grindar och boolsk algebra i bagaget inser vi att signalen error kan konstrueras med AND-grindar, eftersom att de kollar om båda insignalerna har värdet "1". Eftersom att vi har tre insignaler innebär det att vi måste kombinera två AND-grindar för att få önskat resultat.
Vi inser också att utsignalen signalen continue helt enkelt är inversen (omvändningen) av error signalen, och därför kan vi konstruera stop genom att skicka error singalen genom en ICKE-grind.
Statussignalerna ska bara skickas vidare till dioder, så dem behöver vi inte göra något åt.