Wyklad IL 2008


Grupa Program Flow
Grupa Program Flow
COMMENT - komentarz,
COMMENT - komentarz,
CALL - wywołanie podprogramu, END - koniec programu
CALL - wywołanie podprogramu, END - koniec programu
Grupa Program Flow
Grupa Program Flow
JUMPN - skok, LABELN - etykieta,
JUMPN - skok, LABELN - etykieta,
MCRN - ominięcie, ENDMCRN - koniec ominięcia
MCRN - ominięcie, ENDMCRN - koniec ominięcia
1
Instruction List (IL)
Instruction List (IL)
Etykieta Operator Operand Komentarz
URUCHOM: LD_BOOL START  Przycisk START
ANDN ZAKAZ  Nie ma ZAKAZ
ST_BOOL POMPA  Włącz POMPA
" Język programowania zbli\ony do asemblera
" Język programowania zbli\ony do asemblera
" Działania wykorzystują akumulator
" Działania wykorzystują akumulator
" Dozwolona jedna operacja na linię
" Dozwolona jedna operacja na linię
Instruction List (IL)  funkcje binarne
Instruction List (IL)  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
argument uaktywniany zboczem narastającym := akumulator, wartość
PT zmienna
akumulatora nie ulega zmianie
argument uaktywniany zboczem opadającym := akumulator, wartość
NT zmienna
akumulatora nie ulega zmianie
NOT akumulator := NOT akumulator
AND zmienna akumulator := akumulator AND argument
ANDN zmienna akumulator := akumulator AND NOT argument
akumulator := akumulator AND zagnie\d\one wyra\enie logiczne,
zagnie\d\one
otwarcie nawiasu powoduje zło\enie bie\ącej funkcji na stosie,
AND( wyra\enie
zamknięcie nawiasu powoduje pobranie ze stosu i wykonanie funkcji z
logiczne
aktualnym stanem akumulatora
akumulator := akumulator AND NOT zagnie\d\one wyra\enie logiczne,
zagnie\d\one
otwarcie nawiasu powoduje zło\enie bie\ącej funkcji na stosie,
ANDN( wyra\enie
zamknięcie nawiasu powoduje pobranie ze stosu i wykonanie funkcji z
logiczne
aktualnym stanem akumulatora
2
Instruction List (IL)  funkcje binarne
Instruction List (IL)  funkcje binarne
OR zmienna akumulator := akumulator OR argument
ORN zmienna akumulator := akumulator OR NOT argument
zagnie\d\one akumulator := akumulator OR zagnie\d\one wyra\enie logiczne, otwarcie
OR( wyra\enie nawiasu powoduje zło\enie bie\ącej funkcji na stosie, zamknięcie nawiasu
logiczne powoduje pobranie ze stosu i wykonanie funkcji z aktualnym stanem akumulatora
zagnie\d\one akumulator := akumulator OR NOT zagnie\d\one wyra\enie logiczne, otwarcie
ORN( wyra\enie nawiasu powoduje zło\enie bie\ącej funkcji na stosie, zamknięcie nawiasu
logiczne powoduje pobranie ze stosu i wykonanie funkcji z aktualnym stanem akumulatora
XOR zmienna akumulator := akumulator XOR argument
XORN zmienna akumulator := akumulator XOR NOT argument
zagnie\d\one akumulator := akumulator XOR zagnie\d\one wyra\enie logiczne, otwarcie
XOR( wyra\enie nawiasu powoduje zło\enie bie\ącej funkcji na stosie, zamknięcie nawiasu
logiczne powoduje pobranie ze stosu i wykonanie funkcji z aktualnym stanem akumulatora
zagnie\d\one akumulator := akumulator XOR NOT zagnie\d\one wyra\enie logiczne, otwarcie
XORN( wyra\enie nawiasu powoduje zło\enie bie\ącej funkcji na stosie, zamknięcie nawiasu
logiczne powoduje pobranie ze stosu i wykonanie funkcji z aktualnym stanem akumulatora
Instruction List (IL)  funkcje binarne
Instruction List (IL)  funkcje binarne
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.
3
Instruction List (IL)  zakładanie
Instruction List (IL)  zakładanie
podprogramu
podprogramu
Instruction List (IL)  edycja
Instruction List (IL)  edycja
4
IL - funkcje binarne przykład 1.
IL - funkcje binarne przykład 1.
Z = (W1 + W2) (W3 + W4)
program w LD:
program w IL:
IL - funkcje binarne przykład 2.
IL - funkcje binarne przykład 2.
WEJ1 " WEJ2 = WYJ2
"
"
"
program w IL:
brak równowa\nego programu w LD
Funkcję XOR mo\na zrealizować korzystając z tego, \e
_____ _____
WEJ1 " WEJ2 = (WEJ1 WEJ2) + (WEJ1 WEJ2)
"
"
"
program w IL:
program w LD:
5
IL - funkcje binarne przykład 3.
IL - funkcje binarne przykład 3.
____________
WYJ1 = WEJ1 + (WEJ2 WEJ3)
programy w IL:
brak równowa\nego programu w LD
IL - funkcje binarne przykład 3.
IL - funkcje binarne przykład 3.
korzystając z prawa de Morgana:
___________ _____ _____
WEJ2 WEJ3 = WEJ2 + WEJ3
program w LD:
program w IL:
6
IL - funkcje binarne przykład 4.
IL - funkcje binarne przykład 4.
IL - funkcje binarne przykład 5.
IL - funkcje binarne przykład 5.
7
IL - funkcje binarne przykład 5.
IL - funkcje binarne przykład 5.
program w LD:
IL - funkcje binarne przykład 5.
IL - funkcje binarne przykład 5.
program w IL:
8
IL - funkcje binarne przykład 6.
IL - funkcje binarne przykład 6.
IL - funkcje binarne przykład 6.
IL - funkcje binarne przykład 6.
program w LD:
program w IL:
9
IL - funkcje binarne przykład 7.
IL - funkcje binarne przykład 7.
IL - funkcje binarne przykład 7.
IL - funkcje binarne przykład 7.
program w IL:
10
Instruction List (IL)  funkcje matematyczne
Instruction List (IL)  funkcje matematyczne
operator argument opis
LD_INT zmienna lub stała akumulator := argument
LD_ENO brak akumulator := Enable Output
ST_INT zmienna argument := akumulator
ST_DINT zmienna argument := akumulator
ST_REAL zmienna argument := akumulator
ADD zmienna lub stała akumulator := akumulator + argument
SUB zmienna lub stała akumulator := akumulator  argument
MUL zmienna lub stała akumulator := akumulator * argument
DIV zmienna lub stała akumulator := akumulator / argument
MOD zmienna lub stała akumulator := akumulator modulo argument
IL  bloki funkcyjne z grupy Math
IL  bloki funkcyjne z grupy Math
blok funkcyjny typ argumentów ENO opis
ADD_INT(in1, in2) in1: INT, DINT lub REAL
ADD_DINT(in1, in2) in2: INT, DINT lub REAL tak akumulator:= in1 + in2
ADD_REAL(in1, in2) akumulator: INT, DINT lub REAL
SUB_INT(in1, in2)
in1: INT, DINT lub REAL
in2: INT, DINT lub REAL tak akumulator:= in1 - in2
SUB_DINT(in1, in2)
akumulator: INT, DINT lub REAL
SUB_REAL(in1, in2)
MUL_INT(in1, in2)
in1: INT, DINT lub REAL
in2: INT, DINT lub REAL tak akumulator:= in1 * in2
MUL_DINT(in1, in2)
akumulator: INT, DINT lub REAL
MUL_REAL(in1, in2)
DIV_INT(in1, in2)
in1: INT, DINT lub REAL
DIV_DINT(in1, in2)
in2: INT, DINT lub REAL tak akumulator:= in1 / in2
akumulator: INT, DINT lub REAL
DIV_REAL(in1, in2)
in1: INT, DINT akumulator:= in1 modulo in2
MOD_INT(in1, in2)
in2: INT, DINT tak (funkcja modulo czyli reszta
MOD_DINT(in1, in2)
akumulator: INT, DINT z dzielenia całkowitoliczbowego)
ihi: INT lub WORD
ilo: INT lub WORD
ohi: INT lub WORD
SCALE_INT(ihi, ilo, ohi, olo, in) akumulator:= wartość po
tak
SCALE_WORD(ihi, ilo, ohi, olo, in) przeskalowaniu
olo: INT lub WORD
in: INT lub WORD
akumulator: INT lub WORD
11
IL  Math przykład 1.
IL  Math przykład 1.
IL  funkcje sterujące
IL  funkcje sterujące
Operator Argument Opis
Operator Argument Opis
JMP etykieta bezwarunkowy skok do etykiety
JMP etykieta bezwarunkowy skok do etykiety
JMPC etykieta skok do etykiety, je\eli akumulator = 1
JMPC etykieta skok do etykiety, je\eli akumulator = 1
JMPCN etykieta skok do etykiety, je\eli akumulator = 0
JMPCN etykieta skok do etykiety, je\eli akumulator = 0
CAL Nazwa podprogramu Bezwarunkowe wywołanie podprogramu
CAL Nazwa podprogramu Bezwarunkowe wywołanie podprogramu
CALC Nazwa podprogramu Wywołanie podprogramu, je\eli akumulator = 1
CALC Nazwa podprogramu Wywołanie podprogramu, je\eli akumulator = 1
CALCN Nazwa podprogramu Wywołanie podprogramu, je\eli akumulator = 0
CALCN Nazwa podprogramu Wywołanie podprogramu, je\eli akumulator = 0
RET brak bezwarunkowy powrót z podprogramu
RET brak bezwarunkowy powrót z podprogramu
RETC brak powrót podprogramu, je\eli akumulator = 1
RETC brak powrót podprogramu, je\eli akumulator = 1
RETCN brak powrót podprogramu, je\eli akumulator = 0
RETCN brak powrót podprogramu, je\eli akumulator = 0
12
IL  Math przykład 2.
IL  Math przykład 2.
IL  funkcje relacji
IL  funkcje relacji
Operator Argument Opis
Operator Argument Opis
akumulator := (akumulator = argument)
akumulator := (akumulator = argument)
EQ Zmienna lub stała
EQ Zmienna lub stała
akumulator typu BOOL
akumulator typu BOOL
akumulator := (akumulator `" argument)
akumulator := (akumulator `" argument)
NE Zmienna lub stała
NE Zmienna lub stała
akumulator typu BOOL
akumulator typu BOOL
akumulator := (akumulator > argument)
akumulator := (akumulator > argument)
GT Zmienna lub stała
GT Zmienna lub stała
akumulator typu BOOL
akumulator typu BOOL
akumulator := (akumulator e" argument)
akumulator := (akumulator e" argument)
GE Zmienna lub stała
GE Zmienna lub stała
akumulator typu BOOL
akumulator typu BOOL
akumulator := (akumulator < argument)
akumulator := (akumulator < argument)
LT Zmienna lub stała
LT Zmienna lub stała
akumulator typu BOOL
akumulator typu BOOL
akumulator := (akumulator d" argument)
akumulator := (akumulator d" argument)
LE Zmienna lub stała
LE Zmienna lub stała
akumulator typu BOOL
akumulator typu BOOL
13
IL funkcje relacji - przykład
IL funkcje relacji - przykład
IL bloki relacji
IL bloki relacji
Operator Typ argumentów Opis
Operator Typ argumentów Opis
EQ_INT (in1, in2) in1: INT, DINT, REAL
EQ_INT (in1, in2) in1: INT, DINT, REAL
EQ_DINT (in1, in2) in2: INT, DINT, REAL akumulator := (in1 = in2)
EQ_DINT (in1, in2) in2: INT, DINT, REAL akumulator := (in1 = in2)
EQ_REAL (in1, in2) akumulator: BOOL
EQ_REAL (in1, in2) akumulator: BOOL
NE_INT (in1, in2) in1: INT, DINT, REAL
NE_INT (in1, in2) in1: INT, DINT, REAL
NE_DINT (in1, in2) in2: INT, DINT, REAL akumulator := (in1 `" in2)
NE_DINT (in1, in2) in2: INT, DINT, REAL akumulator := (in1 `" in2)
NE_REAL (in1, in2) akumulator: BOOL
NE_REAL (in1, in2) akumulator: BOOL
GT_INT (in1, in2) in1: INT, DINT, REAL
GT_INT (in1, in2) in1: INT, DINT, REAL
GT_DINT (in1, in2) in2: INT, DINT, REAL akumulator := (in1 > in2)
GT_DINT (in1, in2) in2: INT, DINT, REAL akumulator := (in1 > in2)
GT_REAL (in1, in2) akumulator: BOOL
GT_REAL (in1, in2) akumulator: BOOL
GE_INT (in1, in2) in1: INT, DINT, REAL
GE_INT (in1, in2) in1: INT, DINT, REAL
GE_DINT (in1, in2) in2: INT, DINT, REAL akumulator := (in1 e" in2)
GE_DINT (in1, in2) in2: INT, DINT, REAL akumulator := (in1 e" in2)
GE_REAL (in1, in2) akumulator: BOOL
GE_REAL (in1, in2) akumulator: BOOL
LT_INT (in1, in2) in1: INT, DINT, REAL
LT_INT (in1, in2) in1: INT, DINT, REAL
LT_DINT (in1, in2) in2: INT, DINT, REAL akumulator := (in1 < in2)
LT_DINT (in1, in2) in2: INT, DINT, REAL akumulator := (in1 < in2)
LT_REAL (in1, in2) akumulator: BOOL
LT_REAL (in1, in2) akumulator: BOOL
LE_INT (in1, in2) in1: INT, DINT, REAL
LE_INT (in1, in2) in1: INT, DINT, REAL
LE_DINT (in1, in2) in2: INT, DINT, REAL akumulator := (in1 d" in2)
LE_DINT (in1, in2) in2: INT, DINT, REAL akumulator := (in1 d" in2)
LE_REAL (in1, in2) akumulator: BOOL
LE_REAL (in1, in2) akumulator: BOOL
14
Porównanie języków LD i IL
Porównanie języków LD i IL
Język LD:
Język LD:
h język graficzny
h język graficzny
h łatwy do analizy
h łatwy do analizy
h najodpowiedniejszy do programowania operacji logicznych (algebra
h najodpowiedniejszy do programowania operacji logicznych (algebra
Boole a)
Boole a)
h przetwarzanie przez przepływ sygnału ( prądu ), który mo\e być
h przetwarzanie przez przepływ sygnału ( prądu ), który mo\e być
realizowany równolegle
realizowany równolegle
h stosowanie instrukcji skoku w językach graficznych stoi w pewnej
h stosowanie instrukcji skoku w językach graficznych stoi w pewnej
sprzeczności z zasadą równoległego przetwarzania sygnału w obwodzie
sprzeczności z zasadą równoległego przetwarzania sygnału w obwodzie
h brak instrukcji dla obliczeń iteracyjnych (typu REPEAT, WHILE, FOR)
h brak instrukcji dla obliczeń iteracyjnych (typu REPEAT, WHILE, FOR)
Język IL:
Język IL:
h język tekstowy
h język tekstowy
h wygodniejszy w procedurach zarządzania pamięcią lub przy
h wygodniejszy w procedurach zarządzania pamięcią lub przy
programowaniu obliczeń iteracyjnych, bardziej elastyczny
programowaniu obliczeń iteracyjnych, bardziej elastyczny
h trudny do analizy
h trudny do analizy
h język proceduralny, tzn. instrukcje są wykonywane jedne po drugich
h język proceduralny, tzn. instrukcje są wykonywane jedne po drugich
h brak instrukcji iteracyjnych, trzeba je organizować przez wprowadzenie
h brak instrukcji iteracyjnych, trzeba je organizować przez wprowadzenie
wskaznika dla iteracji i wykorzystanie instrukcji porównania lub skoków
wskaznika dla iteracji i wykorzystanie instrukcji porównania lub skoków
Języki LD i IL - kompatybilność
Języki LD i IL - kompatybilność
" niepełna kompatybilność języków programowania  wynika z ró\nego sposobu
przetwarzania
" LD - nie dopuszcza się do wprowadzania operacji logicznych w obwodzie po
operacjach przypisania
" IL - brak odpowiednika w języku tekstowym pary EN / ENO, trzeba ją
zastąpić przez warunek
15
Języki LD i IL - kompatybilność
Języki LD i IL - kompatybilność
Wykorzystanie własności równoległego przetwarzania w językach graficznych
poprzez łączenie jednego wyjścia z większą liczbą wejść wymaga przy
tłumaczeniu na języki tekstowe wprowadzania dodatkowych zmiennych w celu
uzyskania kompatybilności programów.
16


Wyszukiwarka

Podobne podstrony:
Wyklad 2 PNOP 08 9 zaoczne
GAZOPROJEKT WYKŁAD PWR 08 Zagadnienia inSynierskie i ekonomiczne KOGENERACJA
Wytrzymalosc Materialow wyklad Laczniki 08 9
Wyklad analogowe 08
Wytrzymalosc Materialow wyklad Ciegna 08 9
KPC Wykład (13) 08 01 2013
Wyklad kombinacyjne 08
BO II stacjonarne wykład nr 08
BO II stacjonarne wykład nr 08
Wykład Kosinska 08 11 2012
Wyklad sekwencyjne 08
TI Wykład 08
Wyklad ElementyProg 12 08
W07 08 WYKLADY TIORB 2007 MECHANIZACJA CALOSC z rysunkami
wyklad10 08 tekst
wyklad7 08 tekst
wyklad8 08 tekst
08 Miedzynarodowe aspekty zarzadzania finansami przedsiebiorstwa wyklad

więcej podobnych podstron