ZESPÓŁ SZKÓŁ ELEKTRONICZNYCH - TECHNIKUM ELEKTRONICZNE
w Zielonej Górze
V eo - Pracownia układów mikroprocesorowych i mikrokomputerów.
V sk - Pracownia systemów mikroprocesorowych
Przewodnik do ćwiczeń
Nr ćwiczenia S7_6a
Temat ćwiczenia:
Aplikacje S7-200
Programowa realizacja układów kombinacyjnych
Przykład 1
Zrealizować programowo w sterowniku S7-212 komparator porównujący dwie liczby p i q przyjmujące wartości od zera do dwóch. Jeżeli p>q, to na wyjściu pojawia się 1. Jeżeli p<q, to na wyjściu pojawia się 0. Jeżeli p=q , to stan wyjścia nie jest określony.
Kodujemy liczby p i q w kodzie binarnym za pomocą dwucyfrowych liczb dwójkowych AB i CD wprowadzanych równolegle. Układ ma więc cztery wejścia - A, B, C, D i jedno wyjście W.
p |
A |
B |
q |
C |
D |
W |
0 |
0 |
0 |
0 |
0 |
0 |
- |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
2 |
1 |
0 |
0 |
0 |
0 |
0 |
3 |
1 |
1 |
- |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
- |
1 |
0 |
1 |
2 |
1 |
0 |
0 |
1 |
0 |
1 |
3 |
1 |
1 |
- |
2 |
1 |
0 |
0 |
0 |
0 |
1 |
2 |
1 |
0 |
1 |
0 |
1 |
1 |
2 |
1 |
0 |
2 |
1 |
0 |
- |
2 |
1 |
0 |
3 |
1 |
1 |
- |
3 |
1 |
1 |
0 |
0 |
0 |
- |
3 |
1 |
1 |
1 |
0 |
1 |
- |
3 |
1 |
1 |
2 |
1 |
0 |
- |
3 |
1 |
1 |
3 |
1 |
1 |
- |
Tablica Karnaugha i funkcja logiczna po zminimalizowaniu :
CD |
00 |
01 |
11 |
10 |
|
AB |
|
|
|
|
|
|
X |
|
X |
|
W = A + B C |
|
1 |
X |
X |
|
|
11 |
X |
X |
X |
X |
|
10 |
1 |
1 |
X |
X |
|
Program dla sterownika S7-212
A I0.5 B I0.4 C I0.1 D I0.0 W Q0.0
|
NETWORK 1
LDN "C" A "B" O "A" = "W"
NETWORK 2 MEND
|
Przykład 2
Zrealizować programowo dekoder pełny 2/4 o dwóch wejściach i czterech wyjściach, realizujący kod wyjściowy 1 z 4 wg poniższej tablicy stanów:
Tablica 2
Wejścia |
Wyjścia 1 z 4 |
|
|
|||||
B |
A |
Wy_0 |
Wy_1 |
Wy_2 |
Wy_3 |
|
|
|
0 |
0 |
1 |
0 |
0 |
0 |
|
Tablica stanów dekodera pełnego 2/4 |
|
0 |
1 |
0 |
1 |
0 |
0 |
|
|
|
1 |
0 |
0 |
0 |
1 |
0 |
|
|
|
1 |
1 |
0 |
0 |
0 |
1 |
|
|
Program STL dla sterownika S7-212:
Wejściom A, B przypisujemy adresy I0.0, I0.1. Wyjściom Wy_0 ....Wy_3 adresy Q0.0....Q0.3.
//Dekoder pełny 2/4, realizujący kod wyjściowy 1 z 4.
NETWORK 1
LDN "A"
AN "B"
= "Wy_0"
NETWORK 2
LD "A"
AN "B"
= "Wy_1"
NETWORK 3
LDN "A"
A "B"
= "Wy_2"
NETWORK 4
LD "A"
A "B"
= "Wy_3"
NETWORK 5
MEND
Przykład 3
Zaprojektować programowe rozwiązanie transkodera służącego do przetwarzania kodu szesnastkowego na kod BCD. Zależność między tymi dwoma kodami przedstawia tablica stanów:
Cyfry |
Kod szesnastkowy |
BCD |
|||||||
|
Z 8 |
Y 4 |
X 2 |
W 1 |
B1 |
A4 |
A3 |
A2 |
A1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
2 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
3 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
4 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
5 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
6 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
7 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
8 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
9 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
A |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
B |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
C |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
D |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
E |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
F |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
Układ ma 5 wyjść i cztery wejścia.
Na podstawie tablic Karnaugha (wykonaj je w zeszycie) funkcje logiczne mają postać:
A1 = W
A2 = X Z + X Y Z
A3 = X Y + Y Z
A4 = X Y Z
B1 = XZ + YZ
Program STL:
Przyporządkuj wejściom W, X, Y, Z adresy I0.0 - I0.3; wyjściom A1, A2, A3, A4, B1 - adresy Q0.0 - Q0.4.
//Transkoder służący do przetwarzania kodu szesnastkowego na kod BCD.
NETWORK 1
LD "W"
= "A1"
NETWORK 2
LD "X"
AN "Z"
LDN "X"
A "Y"
A "Z"
OLD
= "A2"
NETWORK 3
LD "X"
A "Y"
LD "Y"
AN "Z"
OLD
= "A3"
NETWORK 4
LDN "X"
AN "Y"
A "Z"
= "A4"
NETWORK 5
LD "X"
A "Z"
LD "Y"
A "Z"
OLD
= "B1"
NETWORK 6
MEND
2/5
B
A
Wy_0
Wy_1
Wy_2
Wy_3
1 z 4
Schemat logiczny dekodera pełnego 2/4