1
Curs 4. Numaratoare. Programarea numaratoarelor
Numaratoarele utilizate de catre automatele programabile au aceiasi
functionare ca si cele cunoscute (integrate). Controlul aplicatiilor care utilizeaza
numaratoare poate fi realizat prin incrementarea pana la o anumita valoare dupa care
cauzeaza aparitia unui eveniment sau provoaca aparitia evenimentului pana cand
numaratorul atinge valoarea presetata. In figura 4. 1 prezentam un exemplu tipic pentru
folosirea unui numerator - o instalatie de imbuteliere. Numaratorul poate fi folosit pentru
gruparea sticlelor in baxuri a cate 6 bucati.
Figura 4.1. Aplicatie care presupune utilizarea numaratoarelor
Un numarator este setat sau resetat in functie de semnalele prezente la
intrarile sale. Frecventa de numarare depinde de timpul de procesare al programului.
Numararea se poate face crescator prin aplicarea unui impuls pe intrarea respectiva sau
in sens descrescator pentru intrarea de count down. Diferenta intre numaratoare consta
in tipul de numarare care poate fi efectuat : in sens crescator (CU), in sens descrescator
(CD) si in ambele sensuri (CUD).
Numaratorul prezent in aplicatia din figura 4.2. este unul care insumeaza
ambele tipuri de numarare. Prin activarea intrarii I0.2 este setat, adica este inscrisa
valoarea 20 data de formatul C#20, iar prin activarea intrarii I0.3 este resetat aceasta
valoare urmand sa fie stearsa. Pentru incrementare este folosita intrarea I 0.0 iar pentru
Automate programabile-colegiu an II
2
decrementare intrarea I 0.1. Valoarea care se gaseste in numarator poate fi citita prin
folosirea variabilei de memorie C1 sau direct pe cele doua iesiri in valoare binara sau in
cod BCD. Iesirea Q 0.0 este 1 daca valoarea inscrisa in numarator este diferita de 0 si 0 in
caz contrar.
Figura 4.2. Programarea unui numerator de tipul CUD.
Codul scris in limbaj STL echivalent pentru diagrama ladder prezentata in figura 4.2. este
urmatorul:
A I 0.0
CU C 1
A I 0.1
CD C 1
A I 0.2
L C#20
S C 1
A I 0.3
R C 1
A C 1
= Q 0.0
Celelalte doua tipuri de numaratoare intalnite la automatele din familia Simatic sunt
redate in figura 4.3 si reprezinta de fapt doar parti ale celui de tip CUD prezentat,
permitand doar operatia de incrementare sau decrementare. Sunt folosite in cazul in care
Automate programabile-colegiu an II
3
nu exista decat operatii de acest tip pentru a evita o functionare eronata a intregului
system de conducere.
a) b)
Figura 4.3. Numaratoarele de tip CU(a) si CD(b) care pot fi utilizate la automatele din
familia Simatic
Numaratoarele au o zona rezervata in memoria unitatii centrale. Pentru
fiecare adresa a unui numerator este rezervat un cuvant de 16 biti. Capacitatea unitatii
centrale este de 256 de astfel de numaratoare. Bitii cuprinsi intre 0 si 9 contin valoarea
care este incarcata in numarator. Limitele intre care poate fi cuprinsa aceasta valoare sunt
cuprinse intre 0 si 999.
Figura 4.4. Inscrierea unei valori intr-un numarator
Automate programabile-colegiu an II
4
In figura 4.4 putem observa modul in care se transforma valoarea inscrisa in numerator
de la aplicarea ei la intrarea data de codul C#127 in acest caz si transformarea binara a
acesteia datorata folosirii doar a celor 10 biti.
Instructiunile mai importante care sunt folosite in cazul scrierii
programelor folosind STL sunt urmatoarele:
L incarca valoarea numaratorului;
LC - incarca valoarea numaratorului in format BCD;
R - reseteaza numaratorul;
S incarca numaratorul cu valoarea presetata;
CU- incrementeaza valoarea numaratorului;
CD decrementeaza valoarea numaratorului.