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
40710262.022.png 40710262.023.png 40710262.024.png 40710262.025.png
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
+
40710262.001.png 40710262.002.png
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
40710262.003.png 40710262.004.png 40710262.005.png 40710262.006.png
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
¨’
40710262.007.png 40710262.008.png 40710262.009.png 40710262.010.png 40710262.011.png 40710262.012.png
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
40710262.013.png 40710262.014.png 40710262.015.png 40710262.016.png 40710262.017.png 40710262.018.png 40710262.019.png 40710262.020.png 40710262.021.png
Zgłoś jeśli naruszono regulamin