Sunteți pe pagina 1din 5

Lucrarea 2

Utilizarea temporizatoarelor şi numărătoarelor


Utilizarea temporizatoarelor
Se pot utiliza temporizatoarele încorporate în FEC. În exemplul “Dispozitiv de ridicare”, după ce
cilindrul 2A s-a retras, ca măsură de protecţie, cilindrul 1A trebuie să aştepte 5 sec înainte de retragere.
Utilizarea funcţiei Help
 Click pe “Help”
 Click pe “Help Topics”
 Click pe “Index” tab şi scrie “Timers”
 Conţinutul documentaţiei despre Timers este afişat în dreapta.

 În controlerul
FEC se admit
operanzii pentru
temporizatorul “x”:
o Tx -
Timer “x”, operand de un bit care reprezintă starea temporizatorului. Poate avea valoarea 1
sau 0 şi poate să-şi schimbe valoarea prin SET Tx sau RESET Tx.
o TPx - Temporizator presetat pentru Timer “x”, este un operand multibit de un cuvânt (16
biţi) care reprezintă valoarea dată de programator prin: LOAD V200 TO TPx. Se încarcă
valoarea de 2 sec la TPx. Valoarea maximă a temporizatorului presetat este de 65535, adică
655 sec.
o TWx - Timer word “x” este un operand multibit de un cuvânt, care reprezintă valoarea
curentă a temporizatorului x. La activarea temporizatorului (SET Tx) se încarcă valoarea lui
TPx în TWx, după care numărul este decrementat la fiecare impuls de ceas al controlerului.
Când TWx ajunge la 0, Tx este resetat automat şi temporizatorul este dezactivat.
 Formatul uzual al temporizatoarelor este:

STEP 10

IF I0.1 „Input 0.1


THEN SET O0.2 „Lampă
SET T1 „Temporizator 1
with 5s

STEP 20

IF N T1 „Temporizator 1; cele 5 sec au trecut


THEN RESET O0.2 „Lampă
JMP TO 10
 Sunt 256 temporizatoare în FEC declarate ca T0 până la T255.
Inserarea temporizatorului în exemplul de proiect
În programul de mai sus al proiectului, se modifică STEP 40 şi apare STEP 50, astfel:

STEP 10
IF SB „Buton Start este apăsat
AND B1 „Cilindru 1A este retras
AND B3 „Cilindru 2A este retras
THEN SET Y1 „Solenoid pentru cilindrul 1A/ridică platforma

STEP 20
IF B2 „Cilindru 1A este extins
THEN SET Y2 „Solenoid pentru cilindru 2A/ȋmpinge cutia

STEP 30
IF B4 „Cilindru 2A este extins
THEN RESET Y2 „Solenoid pentru cilindru 2A/retrage pistonul

STEP 40
IF B3 „Cilindru 2A este retras
THEN SET T1 „Temporizator 1
with 5s

STEP 50
IF N T1 „Temporizator 1/dacă au trecut 5s
THEN RESET Y1 „Solenoid pentru cilindru 1A/coboară platforma
JMP TO 10

După ce cilindrul 2A s-a retras, temporizatorul va fi activat pentru 5 sec şi după trecerea celor 5 sec,
cilindrul 1A se va retrage.
Reconstruieşte proiectul şi testează funcţionalitatea programului.
Utilizarea numărătoarelor
Prin introducerea funcţiei de numărare, proiectul din exemplul prezentat mai sus se va modifica astfel
încât după ce se realizează 10 cicluri de funcţionare a dispozitivului, acesta să se oprească.
 Numărătoarele sunt structuri de date formate din 3 operanzi, de exemplu pentru numărătorul x:
o Cx - Numărătorul al x-lea, operand de un bit, care memorează starea numărătorului x. Se
activează/dezactivează cu SET Cx, RESET Cx, unde x=0÷256.
o CPx - Numărător presetat pentru numărătorul x, este un operand multibiţi de un cuvânt care
încarcă o valoare introdusă de către utilizator. Aceasta poate fi o constantă sau un operand
cuvânt (IW, OW, FW, ..);
o CWx - Numărător multibiţi de un cuvânt pentru numărătorul x, care memorează valoarea
curentă a numărătorului. Modificarea valorii numărătorului cu o unitate se face prin INC/DEC
CWx.
Sunt disponibile 2 metode de utilizare a numărătoarelor:
 Prima utilizează comanda SET Cx prin care bitul Cx este 1 logic şi se încarcă în CWx
valoarea 0. Se încarcă o valoare la operandul CPx. La fiecare execuţie a instrucţiunii INC CWx,
se măreşte cu o unitate valoarea acestui operand. Când CWx=CPx, atunci Cx=0, în mod
automat. A doua metodă nu utilizează CPx, ci doar CWx a cărei valoare o iniţializează, o
incrementează şi apoi o compară cu o constantă.
 Prima metodă:
STEP 10
IF NOP` „Nici o condiţie impusă (poate să lipsească)
THEN LOAD V10 „Numărătorul presetat CP0=10
TO CP0 „(valoare zecimală)
SET C0 „Numărător 0/ Se iniţializează CW0=0
RESET Y1 „Solenoid 1/poziţia initială (jos) a platformei

STEP 20
IF B1 „Senzor 1/platforma este jos
THEN INC CW0 „Incrementează cu 1 valoarea numărătorului curent 0

STEP 30
IF N B1 „Senzor 1/platforma este sus
THEN NOP „Nu face nimic

STEP 40
IF N C0 „Numărătorul CW0=CP0, atunci C0=0
THEN JMP TO 50 „Sare la pasul 50
OTHRW JMP TO 20 „Sare la pasul 20

STEP 50

THEN SET Y1 „Solenoid 1


JMP TO 10 „Sare la pasul 10

 A doua metodă:

STEP 10
IF NOP „Nici o condiţie impusă (poate să lipsească)
THEN LOAD V0 „Ȋncarcă valoarea zecimală 0 la
TO CW0 „la numărătorul curent 0
RESET Y1 „Solenoid 1/poziţia initială (jos) a platformei

STEP 20
IF B1 „Senzor 1/platforma este jos
THEN INC CW0 „Incrementează cu 1 valoarea numărătorului curent 0
STEP 30
IF CW0 „Numărătorul current CW0=10
= V10
THEN JMP TO 40 „Sare la pasul 40
OTHRW JMP TO 20 „Sare la pasul 20

STEP 40
THEN SET Y1 „Solenoid 1
JMP TO 10 „Sare la pasul 10

 Se pot declara 256 numărătoare în FEC de la C0 la C255.


Inserarea numărătorului în proiect
Trebuie modificat programul cu temporizator pentru a i se adăuga funcţia de numărare.
Noul proces va fi:
 La apăsarea butonului de Start va începe ciclul de funcţionare al dispozitivului.
 Ciclul se va opri numai dacă au fost transportate 10 piese.
 Se aplică temporizarea de 5s la retragerea pistonului cilindrului 1A.
Lista de alocare va include:
 C0 - Numărător 0
 CP0 - Numărător presetat 0
 CW0 - Numărător curent 0
Prima metodă
STEP 10
IF SB „Buton de start este apăsat
AND B1 „Cilindru 1A este retras
AND B3 „Cilindru 2A este retras
THEN SET Y1 „Solenoid pentru cilindrul 1A/platforma urcă
LOAD V10
TO CPO „Numărătorul CP0=10
SET C0 „Numărător 0, adică CW0=0
STEP 20
IF B2 „Cilindru 1A este extins
THEN SET Y2 „Solenoid pentru cilindrul 2A/cutia este ȋmpinsă

STEP 30
IF B4 „Cilindrul 2A este extins
THEN RESET Y2 „Solenoid pentru cilindrul 2A/pistonul se retrage

STEP 40
IF B3 „Cilindrul 2A este retras
THEN SET T1 „Temporizator 1
with 5s
STEP 50
IF N T1 „Temporizator 1/au trecut 5s
THEN RESET Y1 „Solenoid pentru cilindrul 1A/platform coboară
INC CW0 „Numărător 0 CW0=CW0+1

STEP 60
IF N CO „Numărător 0/CW0=CP0
THEN JMP TO 10 „Sare la pasul 10
OTHRW NOP „Nu face nimic

STEP 70
IF B1 „Cilindrul 1A este retras
AND B3 „Cilindrul 2A este retras
THEN SET Y1 „Solenoid pentru cilindrul 1A/platform urcă
JMP TO 20 „Sare la pasul 20

A doua metodă:
STEP 10
IF SB „Buton start este apăsat
AND B1 „Cilindrul 1A este retras
AND B3 „Cilindrul 2A este retras
THEN SET Y1 „Solenoid pentru cilindrul 1A/platform urcă
LOAD V0
TO CWO „Numărător CW0=0
Lucrarea 3
STEP 20
IF B2 „Cilindrul 1A este extins
THEN SET Y2 „Solenoid pentru cilindrul 2A/cutia este ȋmpinsă

STEP 30
IF B4 „Cilindrul 2A este extins
THEN RESET Y2 „Solenoid pentru cilindrul 2A/pistonul se retrage

STEP 40
IF B3 „Cilindrul 2A este retras
THEN SET T1 „Temporizator 1
with 5s

STEP 50
IF N T1 „Temporizator 1/au trecut 5sec
THEN RESET Y1 „Solenoid pentru cilindrul 1A/platforma coboară
INC CW0 „Cuvânt de numărator CW0=CW0+1

STEP 60
IF CWO „Numărătorul CW0=10
= V10
THEN JMP TO 10 „Sare la pasul 10
OTHRW NOP „Nu face nimic

STEP 70
IF B1 „Cilindrul 1A este retras
AND B3 „Cilindrul 2A este retras
THEN SET Y1 „Solenoid pentru cilindrul 1A/platform urcă
JMP TO 20

Se vor edita programele pentru subiectele propuse şi se va verifica prin rulare la staţiile
corespunzătoare dacă acestea corespund cerinţelor.

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