PAiRAII_Instr_2008_lab7.pdf
(
162 KB
)
Pobierz
PAiRAII_Instr_2008_lab7
7
ProgramowaniewjęzykuInstructionList
Informacje wst
ę
pne:
JĘZYKLISTYINSTRUKCJI(INSTRUCTIONLIST)DLAPLC
Język programowania
Instruction List
jest językiem opartym na akumulatorze. Przy wykonywaniu funkcji
binarnych akumulator jest typu BOOL.
Format rozkazu:
<etykieta:> operator <argument> ‘
komentarz
Funkcje binarne
Operator
Argument
Opis
LD_BOOL
zmienna
akumulator := argument
LDN_BOOL
zmienna
akumulator := NOT argument
ST_BOOL
zmienna
argument := akumulator
wartość akumulatora nie ulega zmianie
STN_BOOL
zmienna
argument := NOT akumulator
wartość akumulatora nie ulega zmianie
S
zmienna
argument SET := akumulator
wartość akumulatora nie ulega zmianie
R
zmienna
argument RESET := akumulator
wartość akumulatora nie ulega zmianie
PT
zmienna
argument uaktywniany zboczem narastającym := akumulator
wartość akumulatora nie ulega zmianie
NT
zmienna
argument uaktywniany zboczem opadającym := akumulator
wartość akumulatora nie ulega zmianie
NOT
akumulator := NOT akumulator
AND
zmienna
akumulator := akumulator AND argument
ANDN
zmienna
akumulator := akumulator AND NOT argument
AND(
zagnieŜdŜone
wyraŜenie
logiczne
akumulator := akumulator AND zagnieŜdŜone wyraŜenie logiczne
otwarcie nawiasu powoduje złoŜenie bieŜącej funkcji na stosie, zamknięcie
nawiasu powoduje pobranie ze stosu i wykonanie funkcji z aktualnym
stanem akumulatora
ANDN(
zagnieŜdŜone
wyraŜenie
logiczne
akumulator := akumulator AND NOT zagnieŜdŜone wyraŜenie logiczne
otwarcie nawiasu powoduje złoŜenie bieŜącej funkcji na stosie, zamknięcie
nawiasu powoduje pobranie ze stosu i wykonanie funkcji z aktualnym
stanem akumulatora
OR
zmienna
akumulator := akumulator OR argument
ORN
zmienna
akumulator := akumulator OR NOT argument
OR(
zagnieŜdŜone
wyraŜenie
logiczne
akumulator := akumulator OR zagnieŜdŜone wyraŜenie logiczne
otwarcie nawiasu powoduje złoŜenie bieŜącej funkcji na stosie, zamknięcie
nawiasu powoduje pobranie ze stosu i wykonanie funkcji z aktualnym
stanem akumulatora
Laboratorium Podstaw Automatyki i Regulacji Automatycznej II
1
Programowanie w j
ę
zyku Instruction List
ORN(
zagnieŜdŜone
wyraŜenie
logiczne
akumulator := akumulator OR NOT zagnieŜdŜone wyraŜenie logiczne
otwarcie nawiasu powoduje złoŜenie bieŜącej funkcji na stosie, zamknięcie
nawiasu powoduje pobranie ze stosu i wykonanie funkcji z aktualnym
stanem akumulatora
XOR
zmienna
akumulator := akumulator XOR argument
XORN
zmienna
akumulator := akumulator XOR NOT argument
XOR(
zagnieŜdŜone
wyraŜenie
logiczne
akumulator := akumulator XOR zagnieŜdŜone wyraŜenie logiczne
otwarcie nawiasu powoduje złoŜenie bieŜącej funkcji na stosie, zamknięcie
nawiasu powoduje pobranie ze stosu i wykonanie funkcji z aktualnym
stanem akumulatora
XORN(
zagnieŜdŜone
wyraŜenie
logiczne
akumulator := akumulator XOR NOT zagnieŜdŜone wyraŜenie logiczne
otwarcie nawiasu powoduje złoŜenie bieŜącej funkcji na stosie, zamknięcie
nawiasu powoduje pobranie ze stosu i wykonanie funkcji z aktualnym
stanem akumulatora
JeŜeli wyraŜenie logiczne zaczyna się od operatora:
AND(
ANDN(
OR(
ORN(
XOR(
XORN(
to następną instrukcją musi być operator LD_BOOL lub LDN_BOOL.
WyraŜenia logiczne moŜna zagnieŜdŜać do 8 poziomów.
Przykład 1.
Napisz w języku
Instruction List
podprogram sterujący dla czterech wejść dwustanowych W1, W2, W3 i W4
realizujący następującą funkcję logiczną:
(W1
+
W2)
•
(W3
W4)
Wynik operacji ma sterować wyjściem o nazwie Z.
Rozwi
ą
zanie
W tym celu naleŜy załoŜyć blok podprogramu, który zostanie napisany w języku
Instruction List
oraz
zadeklarować akumulator. Na akumulator potrzeba 8 referencji binarnych i 2 referencje o organizacji słowowej
nigdzie nie uŜywane w programie.
2
Laboratorium Podstaw Automatyki i Regulacji Automatycznej II
+
Programowanie w j
ę
zyku Instruction List
Następnie naleŜy umieścić w bloku _MAIN wywołanie podprogramu (CALL) i przejść do edycji podprogramu.
Prawym klawiszem myszy wprowadzamy słowo kluczowe,
a następnie równieŜ prawym klawiszem myszy deklarujemy zmienną:
Laboratorium Podstaw Automatyki i Regulacji Automatycznej
3
Programowanie w j
ę
zyku Instruction List
Tak będzie wyglądać gotowy podprogram:
Przykład 2.
Napisać podprogram w języku IL realizujący funkcję XOR (eXclusive-OR)
WYJ2
=
WEJ1
WEJ2
Rozwi
ą
zanie I
Rozwi
ą
zanie II
Przykład 3.
Napisz program w języku IL dla trzech wejść dwustanowych WEJ1, WEJ2 i WEJ3 realizujący następującą
funkcję logiczną:
WEJ1
+
(WEJ2
•
WEJ3)
Wynik operacji ma sterować wyjściem WYJ1.
Rozwi
ą
zanie I
Rozwi
ą
zanie II
(korzystając z prawa de Morgana)
4
Laboratorium Podstaw Automatyki i Regulacji Automatycznej II
¨’
Programowanie w j
ę
zyku Instruction List
Przykład 4.
Napisz program do przełączania kierunku wirowania osi silnika. Przyciski niestabilne P_PRAWO i P_LEWO
słu
Ŝą
do wyboru kierunku wirowania osi silnika, czyli wł
ą
czania wyj
ść
S_PRAWO i S_LEWO. Przycisk
rozwierny STOP zatrzymuje ruch silnika.
P_PRAWO
P_LEWO
STOP
S_PRAWO
S_LEWO
Rozwi
ą
zanie
Przykład 5.
Napisz program sterujący dla PLC, który będzie powodował mruganie lampki podłączonej do wyjścia
dwustanowego o nazwie LAMPKA z cz
ę
stotliwo
ś
ci
ą
1 Hz. Lampka ma mruga
ć
od momentu naci
ś
ni
ę
cia przez
operatora przycisku niestabilnego START do momentu naciśnięcia przycisku rozwiernego STOP.
START
STOP
LAMPKA
Rozwi
ą
zanie
Przykład 6.
Napisz program sterowania wyjściem WYJ1 zgodnie z poniŜszym przebiegiem czasowym:
WEJ1
WEJ2
WYJ1
Laboratorium Podstaw Automatyki i Regulacji Automatycznej
5
Plik z chomika:
rszyjota
Inne pliki z tego folderu:
Wyklad_sekwencyjne_2008.pdf
(189 KB)
wyklad_Math_Relational_2008_copy.pdf
(92 KB)
wyklad_Math_Relational_2008.pdf
(92 KB)
Wyklad_konstrukcja_szczebla_2008.pdf
(140 KB)
Wyklad_kombinacyjne_2008.pdf
(301 KB)
Inne foldery tego chomika:
Zgłoś jeśli
naruszono regulamin