Sunteți pe pagina 1din 6

Automate programabile-colegiu an II

1
Curs 5. Functii aritmetice la automatele programabile

Automatele programabile de clasa medie si mai complexa sunt prevazute
cu functii aritmetice. Principalele functii utilizate in programare sunt: adunarea, scaderea,
inmultirea, impartirea si radacina patrata.

Adunarea si scaderea. Pot fi aplicate mai multor tipuri de operanzi si
presupun efectuarea operatiilor de scadere si adunare asupra operanzilor respectivi. In
figura 5.1. am reprezentat blocurile cu care se lucreaza in programarea ladder (in cazul
automatelor din familia Simatic) pentru operanzi de tip intreg (a) si real (b).

a) b)
Figura 5.1. Blocurile folosite pentru adunare cu operanzi reali si intregi

Figura 5.2. Exemplu de adunare a doi operanzi

In figura 5.2 este prezentat un model de adunare a doi operanzi. Acestia sunt reprezentati
de MW0 si MW2 la intrarile In1 si IN2. Rezultatul adunarii este prezent la iesirea out
reprezentata de MW12. Fiecare adunare a doi operanzi se realizeaza atata timp cat
intrarea de enable (I0.1 in figura) are valoarea 1 logic. Iar in cazul in care avem o
depasire aceasta este subliniata de iesirea EN0.
Pentru operatia de scadere obtinem o reprezentare de acelasi tip cu
diferenta ca reprezentarea poarta alt nume (SUB_I pentru cazul scaderii a doi intregi) iar
operatia este data de: OUT=IN2-IN1 restul pinilor avand aceiasi semnificatie, existand
posibilitatea efectuarii operatiei asupra mai multor tipuri de operanzi.
Automate programabile-colegiu an II
2
Codul scris in STL pentru diagrama ladder din figura 5.2 este urmatorul:

A I 1.0 - testeaza daca e activ semnalul de enable
JNB _001 pentru adunare
L MW 0 - incarca cei doi operanzi
L MW 2
+I
T MW 12 - stocare rezultat
AN OV - fanion depasire
SAVE
CLR
_001: A BR - e pastrat rezultatul
= Q 1.0
Inmultirea si impartirea. In cazul operatiilor de inmultire si impartire
blocurile sunt asemanatoare diferind doar operatiile care se realizeaza. In figura 5.3.
putem observa reprezentarile in programarea bazata pe diagrame ladder pentru operatiile
de inmultire si impartire pentru intregi(a) si numere reale(b).

a) b)
Figura 5.3. Reprezentarea operatiilor de inmultire si impartire pentru intregi (a) si numere
reale (b)
Operanzii sunt aceiasi diferind doar operatia care se realizeaza intre ei. Ceilalti pini au
aceiasi semnificatie de validare(EN), rezultat(OUT) sau indicator depasire(ENO).
Exemplificarea pentru realizarea unei anumite operatii este facuta in figura 5.4. in cazul
inmultirii a doi intregi:

Figura 5.4. Exemplu de inmultire a doi operanzi
Automate programabile-colegiu an II
3
Compararea. Automatele de capacitate medie si complexa au prevazute
functii de comparare a datelor care sunt vehiculate. Numerele sunt comparate intern intr-
o varianta similara cu cea de la microprocesoare. Datel care pot fi comparate sunt de
diverse tipuri pornind de la numarul inscris intr-un contor vis-a-vis de o data fixa sau
compararea a doua date de intrare la un anumit interval de timp.
Functiile de comparare care apar in general la automatele programabile
sunt urmatoarele:
egal cele doua numare au valori egale;
inegal(diferit) - cele doua numere sunt de valori diferite;
mai mare sau egal - primul operand in raport cu cel de al doilea;
mai mic primul numar este strict mai mic decat al doilea;
mai mare primul operand este mai mare decal al doilea;
mai mic sau egal primul operand este mai mic sau egal in raport
cu al doilea.
Cazurile prezentate sunt ilustrate in figura 5.5. pentru programarea utilizand diagrame
ladder din cadrul limbajului Step 7 iar identificarea fiecarei operatii se poate face pe baza
operatorilor inscrisi pe ele.

Figura 5.5. Cazurile de comparatoare a doua numere intregi

In figura sunt prezentate doar comparatoare a doua numere intregi. In general, in
programarea automatelor, exista comparatoare pentru diverse tipuri de date (real).

Figura 5.6. Compararea a doi intragi folosind diagrame ladder
Automate programabile-colegiu an II
4
Un exemplu de program realizat folosind diagrame ladder pentru compararea a doua
numere intregi este dat in figura 5.6. impreuna cu codul aferent pentru aplicatie scris in
limbaj STL.

A I 0.1
A(
L MW 0
L MW 2
<=I
)
= Q 1.0
Instructiuni de rotire si deplasare. Instructiunile de rotire si deplasare
sunt prezente la majoritatea automatelor programabile. Acestea pot fi de urmatoarele
patru tipuri generale din care se obtin mai multe prin multiplicare pentru diverse tipuri de
operanzi asupra carora se aplica:
deplasare la dreapta;
deplasare la stanga;
rotire la dreapta;
rotire la stanga.
In figura 5.7. sunt prezentate in forma data de diagrame ladder cele 4 tipuri enumerate
mai sus. Primele doua litere inscrise reprezinta operatia (sh=shift, ro = rotate), urmatoarea
sensul realizarii ei (r=right, l=left) iar ultima tipul de operand asupra caruia se aplica
operatia respectiva.

Figura 5.7. Tipuri de operatori pentru deplasare si rotire in Step 7

Unii dintre operatori pot fi aplicati doar anumitor tipuri de date. In figura 5.8. vom
prezenta realizarea unei operatii de deplasare asupra unui operand de tip intreg. Intrarea
EN este pentru validarea operatiei care se va efectua. La intrarea IN este prezent
operandul care urmeaza sa fie deplsat iar la intrarea N numarul de biti cu care se va face
deplasarea. Rezultatul final este afisat la iesirea OUT iar ENO ne precizeaza daca
operatia a fost efectuata cu succes.

Automate programabile-colegiu an II
5
Figura 5.8. Exemplu pentru folosirea operatorului de deplasare in cazul a doi intregi

Codul rezultat prin transformarea diagramei ladder din figura 5.8. in limbaj STL este
urmatorul:

A I 0.1
JNB _001
L MW 2
L MW 0
SSI
T MW 12
SET
SAVE
CLR
_001: A BR
= Q 1.0
In cazul folosirii unui operator pentru rotirea bitilor unui numar am utilizat urmatorul
exemplu:

Figura 5.9. Exemplu pentru utilizarea operatorului de rotire asupra unui operand

Automate programabile-colegiu an II
6
In acest caz semnificatia pinilor este identica in raport cu cea de la operatorul de
deplasare. Codul obtinut prin transformare din diagrama ladder in limbaj STL pentru
acest exemplu este urmatorul:

A I 0.1
JNB _001
L MW 4
L MD 0
RLD
T MD 10
SET
SAVE
CLR
_001: A BR
= Q 1.0

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

  • Curs 1
    Curs 1
    Document4 pagini
    Curs 1
    Alina Mititik
    Încă nu există evaluări
  • Curs5 2 PDF
    Curs5 2 PDF
    Document6 pagini
    Curs5 2 PDF
    Ionescu Claudiu
    Încă nu există evaluări
  • Curs7 PDF
    Curs7 PDF
    Document9 pagini
    Curs7 PDF
    Ionescu Claudiu
    Încă nu există evaluări
  • Curs6 2
    Curs6 2
    Document6 pagini
    Curs6 2
    Alina Munt
    Încă nu există evaluări
  • Curs 2 PDF
    Curs 2 PDF
    Document6 pagini
    Curs 2 PDF
    Ionescu Claudiu
    Încă nu există evaluări
  • Curs6 1 PDF
    Curs6 1 PDF
    Document4 pagini
    Curs6 1 PDF
    Ionescu Claudiu
    Încă nu există evaluări
  • Curs 4 PDF
    Curs 4 PDF
    Document4 pagini
    Curs 4 PDF
    Ionescu Claudiu
    Încă nu există evaluări
  • Curs 3 PDF
    Curs 3 PDF
    Document6 pagini
    Curs 3 PDF
    Ionescu Claudiu
    Încă nu există evaluări
  • Curs Arduino
    Curs Arduino
    Document11 pagini
    Curs Arduino
    mihai37
    Încă nu există evaluări
  • Curs5 1 PDF
    Curs5 1 PDF
    Document6 pagini
    Curs5 1 PDF
    Ionescu Claudiu
    Încă nu există evaluări
  • Lectia1 Curs Arduino ArduinoBlink
    Lectia1 Curs Arduino ArduinoBlink
    Document9 pagini
    Lectia1 Curs Arduino ArduinoBlink
    winetouluu
    Încă nu există evaluări
  • Scheme Electrice Conectare Remorca
    Scheme Electrice Conectare Remorca
    Document8 pagini
    Scheme Electrice Conectare Remorca
    Florian Lucian
    Încă nu există evaluări