Sunteți pe pagina 1din 11

Limbajul IL

04.04.2015 10:31 1
Limbaje de programare

Limbaje de programare pentru AP


Limbajul IL (STL)
Limbajul ST(Structured Text)
Limbajul LAD (Ladder Diagram)
Limbajul FBD (Function Block Diagram)
Limbajul SFC (Sequential Function Chart)

04.04.2015 10:31 2
Limbajul IL (Instruction List)

Instruction List (IL) sau StaTement List (STL) este un limbaj de


nivel jos, definit ca parte a normei IEC 61131. El este utilizat
pentru realizarea aplica iilor mici sau pentru optimizarea codului
anumitor p i ale unor aplica ii. IL se bazeaz pe AWL
(AnWeisungsListe) elaborat de firma Siemens, care utilizeaz
modelul cu un singur acumulator. Limbajul IL este nivelul de baz
al limbajelor de programare pentru AP - toate celelalte limbaje de
programare putând fi convertite la programe IL. Conversia invers ,
adic din IL în alte limbaje de programare pentru AP, nu este
întotdeauna posibil . Un program scris în limbaj de IL este o
secven de mnemonici (nume simbolice) care va fi convertit în
cod executabil prin opera ii de asamblare i editare de leg turi.

04.04.2015 10:31 3
Operatori în IL
Operatori de transfer (LD i ST sau =). Datele pot fi transferate de la
memorie la acumulator i invers;
Exemplu:
LD %I0.0 (*Încarca continutul intrarii I0.0 în acumulator*)
ST %Q1.0 (*Transfera la iesirea Q1.0 continutul acumulatorului*)
= %Q0.0 (*Transfera la iesirea Q0.0 continutul acumulatorului*)
Operatori de setare/resetare (S (Set) i R (Reset)). Realizeaz setarea,
respectiv resetarea operanzilor;
Exemplu:
S %M0.0 (*Seteaza bitul M0.0*)
R %M0.1 (*Reseteaza bitul M0.1* )
Operatori logici (AND, OR, XOR). Realizeaz func ii logice între con inutul
PROCESi acumulator;
operandului
Exemplu:
AND %M0.0 (*Realizeaza conjunctia logica intre acumulator si M0.0 *)
OR %M0.0 (*Realizeaza disjunctia logica intre acumulator si M0.0 *)
XOR %M0.0 (*Realizeaza SAU EXCLUSIV intre acumulator si M0.0 *)

04.04.2015 10:31 4
Operatori în IL
Operatori de transfer (MOV). Datele se transfer între o surs i o
destina ie. Operatorul are o liter suplimentar pentru a specifica felul
datei: B, dac este un transfer de octet, W, dac este un transfer de
cuvânt sau DW, dac este un transfer de dublu cuvânt. Instruc iunea are
doi operanzi: sursa i destina ia.
Exemplu:
MOVB %MB0, %MB1 (*Realizeaza transferul din MB0 in MB1*)
MOVW %MW0, %MW1 (*Realizeaza transferul din MW0 in MW1*)
Operatori aritmetici (ADD, SUB, MUL, DIV). Realizeaz opera iuni
aritmetice între operanzi.
Exemplu:
(*Programul realizeaza adunarea unor variabile*)
(*intregi si memoreaza rezultatul intr-o alta*)
PROCES
(*variabila intreaga*)
(*Variabilele a, b, c variabile simbolice de tip intreg*)
LD a (*Incaraca a in acumulator*)
ADD b (*Aduna cu b*)
ST c (*c=a+b*)
04.04.2015 10:31 5
Operatori în IL
Operatori rela ionali (GT, GE, EQ, NE, LE, LT). Compar operanzii i
seteaz acumulatorul în func ie de rezultatul compara iei.
Exemplu:
(* Programul seteaza doua variabile booleene în *)
(* functie de rezultatul comparatiei *)
(* Variabilele a, b, c sunt variabile simbolice *)
(* Variabilele bo1 si bo2 sunt variabile booleene *)
LD a (*Încarca a în acumulator*)
GT b (*Compara cu b*)
ST bool (*Memoreaza rezultatul comparatiei*)
LD b (*Încarca b în acumulator*)
GTPROCES
a (*Compara cu a*)
ST bool2 (*Memoreaza rezultatul comparatiei*)

04.04.2015 10:31 6
Operatori în IL
Operatori de salt (JMP, CALL, RET)
Exemplu:
(* Programul memoreaza în c rezultatul operatiei*)
(* a-b daca a este mai mare ca b sau rezultatul *)
(* operatiei b-a daca b este mai mare ca a *)
(* Variabilele a, b i c sunt variabile simbolice de tip întreg *)
LD a
GE b
JMPC ET1
LD b
SUB a
ST c
PROCES
JMP ETEND
ET1: LD a
SUB b
ST c
ETEND:
04.04.2015 10:31 7
Modificatori
Modificatorul este un caracter, care este ata at operatorului i poate
realiza:
Negarea boolean a operatorului. De obicei acest operator este
caracterul N;
Întârzierea opera iei. De obicei acest operator este caracterul (;
Realizarea unei opera ii condi ionate. Atunci când limbajul
permite, acest operator este caracterul C.
Exemplu:
ANDN %I0.0
realizeaz o opera ie logic AND între con inutul acumulatorului sau
stivei i negarea intr rii I0.0 a unui automat, iar rezultatul este re inut
în acumulator sau stiv .
Instruc iunile:
AND( %I0.0
OR %I0.1
)

04.04.2015 10:31 8
Lucrul cu stiva în STL
În STL trebuie utilizate instruc iuni speciale pentru controlul stivei.
Aceste instruc iuni sunt OLD i ALD, care execut opera ii de OR i AND
între componentele din capul stivei.
LD %I0.0 LD %I0.1 LD %I0.2 AND %I0.3
%I0.0 %I0.1 %I0.2 E
%I0.0 %I0.1 %I0.1
LD %I0.0 Stiva
%I0.0 %I0.0
LD %I0.1
LD %I0.2
AND %I0.3
E=%I0.3 AND %I0.2
OLD OLD ALD
ALDPROCES E1 E2
= %Q0.0 %I0.0

E1=E OR %I0.1 E2=E1 AND %I0.1


04.04.2015 10:31 9
Studiu de caz
se dezvolte un program care s controleze un motor de curent alternativ trifazat care este
ac ionat într-un singur sens prin intermediul unui contactor a c rei bobin este alimentat la
24 V CC. Programul trebuie s realizeze pornirea/oprirea local de la un set de butoane L1,
pentru pornire i LS pentru oprire. De asemenea programul trebuie s permit pornirea
controlat prin program prin setarea timp de 2 secunde a unor variabile interne RUN_P, pentru
pornire i STOP_P pentru oprire. Motorul se consider indisponibil dac schema nu are
asigurat alimentarea în curent continuu. Se va seta o variabil de avarie a motorului dac s-a
dat o comand de pornire prin program a motorului i contactorul nu i-a închis contactele în 2
secunde. Ie irea din starea de avarie se va face numai prin ap sarea unui buton de resetare a
avariei.
Solu ie: Se va utiliza un automat S7 214 al firmei SIEMENS. Intr rile i ie irile utilizate sunt:
I0.0 (nume simbolic L1) – pentru butonul de pornire local L1 (contact normal deschis);
I0.1 (nume simbolic LS) – pentru butonul de oprire local LS (contact normal închis);
I0.2 (nume simbolic B1) – pentru contactul normal deschis al contactorului de pornire al
motorului;
I0.3 (nume simbolic R_AV) – pentru butonul de resetare a avariei (contact normal deschis);
I0.4 (nume simbolic AV) – pentru contactul normal deschis al contactorului care leag schema
la sursa de curent continuu, indicând disponibilitatea motorului;
I0.5 (nume simbolic LP) – pentru validarea comenzii de la panoul local (1, pentru pornire
local 0, pentru pornire prin program);
Q0.0 (nume simbolic C1) – ie ire pentru alimentarea bobinei contactorului de legare la barele
de curent alternativ a motorului.

04.04.2015 10:31 10
Network 1
// Pornirea automata
LD RUN_P
O C1 // Autoretinere
AN LP // Este pozitionat pe pornire automata?
AN STOP_P // S-a generat un semnal de oprire?
A AV // Motorul este disponibil?
AN AVARIE // Nu a ap rut o avarie
// Pornirea manuala
LD L1 // S-a apasat butonul de pornire?
O C1 // Autoretinere
A LP // Este pozitionat pe pornire locla?
A LS // Butonul de oprire locala este apasat?
A AV // Motorul este disponibil?
AN AVARIE // Nu a ap rut o avarie
// Testul conditiei de pornire automata sau manuala
OLD
= C1
Network 2
// Testul inchiderii contactorului in 2 s
LD C1
AN B1
TON T37, 20
Network 3
// Generarea si resetarea semnalului de avarie
LD T37
O AVARIE
AN R_AV
= AVARIE
04.04.2015 10:31 11

S-ar putea să vă placă și