Sunteți pe pagina 1din 12

Laborator 10

Automate programabile

Programarea automatelor programabile AP


Instruciuni de salt, apel subrutine,
bucle, control principal
1. Noiuni teoretice introductive

Obiective:

Funcia de control principal MC i MCR

Instruciuni de salt CJ

Instruciuni de apel subrutina CALL, SRET

Bucle FOR NEXT

1.1 Funcia de control principal (instruciunile MC i MCR)


Instruciunile MC (setare control principal) i MCR (resetare) pot fi utilizate pentru setarea
condiiilor de baza crora blocurile de program individuale pot fi activate sau dezactivate. n
formatul Schem cu contacte, o instruciune Control principal funcioneaz ca un comutator n bara
de bus din stnga, ce trebuie nchis pentru a fi executat urmtorul bloc de program.

MC

(Master Control) Control principal, seteaz o condiie de control principal, marcnd


nceputul unui bloc de program

MCR (Master Control Reset) Resetare control principal, reseteaz o condiie de control principal,
marcnd finalul unui bloc de program.
Instruciunea MC poate fi utilizat asupra ieirilor (Y) i a releelor (M). n: N0 pn la N7

n exemplul de mai sus, liniile de program dintre instruciunile MC i MCR sunt executate doar
atunci cnd intrarea X001 este pornit.
Seciunea de program ce trebuie executat poate fi specificat cu adresa de imbricare
N0 - N7, ceea ce v permite s introducei mai multe instruciuni MC nainte de instruciunea MCR
de nchidere. Adresarea unui dispozitiv Y sau M specific un contact de nchidere. Acest contact va
activa seciunea de program atunci cnd condiia de intrare pentru instruciunea MC are valoarea
Adevrat.
n cazul n care condiia de intrare a instruciunii MC va avea valoarea Fals, strile dispozitivelor
dintre instruciunile MC i MCR se vor modifica dup cum urmeaz:
- Temporizatoarele cu memorare, contoarele i dispozitivele ce sunt controlate cu instruciuni SET
i RST i vor pstra starea curent.
- Temporizatoarele fr memorare i dispozitivele ce sunt controlate cu instruciuni OUT sunt
resetate.

Structurile neimbricate se pot repeta fr limitare, cele imbricate pot fi maxim 8, N0 pn la N7 [3]
2

1.2. Instruciuni de salt (CJ Conditional Jump)


Instruciunile de salt pot scurta ciclul de funcionare, cresc viteza de rulare prin eliminarea unor
pri de program. Cnd se execut o instruciune de salt, programul sare la pasul cu eticheta Pxxx.
Cnd intrarea este inactiv OFF, se
execut toi paii din program. Cnd
intrarea este activ ON, programul
sare la eticheta P0. n acest caz, paii
nainte etichetei P0 nu vor fi
executai.
ntr-un program pot exista mai multe
etichete, pentru FX1S pot fi de la P0P62. Eticheta P63 este rezervat
pentru saltul la sfrsit de program
END.

2.1 Modul n care se execut instruciunile cnd este utilizat o


instruciune de salt
Funcionarea ieirilor Y i releelor M, S
n timpul executrii unei instruciuni de salt, starea
ieirilor Y i releelor M, S , va fi meninut la
valoarea de anterioar saltului.

1) n timpul executrii unei instruciuni de salt, chiar


dac X00 trece n OFF, M10 rmne ON.
2) Fr instruciune salt, M10 trece ON/OFF n funcie
de X000

Instruciunile de salt permit atribuirea dubl a ieirilor. n acest exemplu, ieirea Y000 este o bobin
dubl.
3

Cnd X010 = OFF, programul funcioneaz n conformitate cu starea intrrii X001.


Cnd X010 = ON, programul funcioneaz n conformitate cu starea intrrii X002.

Funcionarea temporizatoarelor
Valoarea curent a temporizatoarelor generale este ngheat pe durata cnd instruciunea de salt
este activ, i continu de unde a rmas dup dezactivarea instruciunii de salt.
Temporizatoarele cu memorie de 1 ms (T246 T249) reia cronometrarea cnd se dezactiveaz
instruciunea de salt sau se reactiveaz comanda Timerului prin X001.
Dac instruciunea de resetare pentru un temporizator cu memorie (T246 pn laT255) este
programat nainte sau dup o instruciune de salt, RST va terge o valoare actual a
temporizatorului.

Funcionarea numrtoarelor
Contoarele uzuale suspend numrarea cnd se execut o instruciune de salt. Ele vor continua
numrarea la dezactivarea instruciunii de salt.
Resetarea numrtorului se face fr s se in cont de instruciunea de salt.
Atunci cnd un contor de mare vitez (C235 C255) ncepe numrarea, el va continua s numere
chiar dac apare o instruciune de salt.

2.2 Modaliti pentru efectuarea instruciunilor de salt


Salt la aceeai etichet
Pot fi mai multe instruciuni care fac salt la aceeai etichet, dar nu pot exista dou etichete plasate
la linii de program diferite care s aib acelai nume, vor rezulta erori.
Salt ntr-un singur ciclu operaional
Atunci cnd este utilizat o instruciune de salt pe front CJP, programul sare la etichet ntr-un
singur ciclu operaional.
Salt n sus
Este posibil de a programa salt la o etichet aflat la o linie de program cu numr mai mic dect
cel al liniei de salt CJ.

3. Instruciuni de apel subrutina (CALL, SRET)


n cazul n care instruciunea CALL este executat, programul va face salt la eticheta desemnat de P0.
Dup execuia subprogramului de la eticheta P0, se ntoarce la programul original cu instruciunea SRET.
Intr-un program pot exista mai multe etichete, astfel pentru:
FX1S : P0-P62 FX1N, FX2N, FX1NC, FX2NC : P0-P62, P64+P127, FX3U, FX3UC : P0-P62
P64-P4095
Dac este utilizat P63, se face salt la sfrit de program END.
Dup utilizarea subrutinelor, se remprospteaz intrrile i ieirile,

Pentru cronometre utilizate n programele subrutina este necesar utilizarea de cronometre T192 -T199, i
T246- T249

1) n cazul X000 este "OFF", "Programul A" va fi executat.


2) Cnd X000 este "ON", "Programul A" va fi executat dup execuia programului subrutin cu "eticheta
P0".
3) n cazul X001 este "OFF", "Programul B" va fi executat.
4) n cazul X001 este "ON", "Programul B" va fi executat dup execuia programului subrutin cu "eticheta
P0".

3.1 Apel instruciuni imbricate


Acesta este cazul n care o subrutin apeleaz o alt subrutin.

Cnd X001 intrare este ON se execut


instruciunea CALL P, iar programul sare la
eticheta P1 i se execut subrutina 1.
Subrutina 1 apeleaz instruciunea CALL P2,
programul va sari la eticheta P2 i se execut
subrutina 2.
Dup execuia subrutini 2, instruciunea SRET [B]
va reveni i se execut in continuare subrutina 1.
Dup finalizarea subrutinei 1, operaia se mut
prin instruciuni SRET [A], la programul
principal.
Numerele disponibile pentru etichetele sunt P0P62, P64-P127.
Dac temporizatoarele generale sunt utilizate ntro subrutin sau program de rutina de ntreruperi,
nregistrarea timpului este activat numai n
programul principal.
Acest lucru este la fel i pentru contoare. In
general, contoarele nu trebuie utilizate n subrutine
sau ntreruperi.

4. Bucle FOR NEXT


Buclele FOR-NEXT au mai multe utilizri, dintre care cele mai des ntlnite sunt in procesrile
multiple de algoritmi sau procesrile multiple pe adrese diferite de date.
Buclele FOR-NEXT pot fi de asemenea utilizate in proceduri de cutare de date, in tabele sau
blocuri de date din memoria automatului programabil. Uneori utilizarea buclelor reduce codul ce
trebuie programat si face programul mai uor de neles.
Secvena cuprinsa in bucla FOR - NEXT se proceseaz de un numr n de ori (n= 1 la 32767),
precizat prin instruciune FOR, dup care programul continua cu secvena imediat urmtoare
instruciunii NEXT:

In cazul in care nu este necesara procesarea permanenta a buclei FOR-NEXT, ca metoda de


invalidare a acesteia se poate utiliza saltul conditionat - Conditional Jump (CJ). Aceasta metoda va
preveni procesarea buclei daca acest lucru nu este necesar si va conduce la reducerea timpului de
scanare.

4.1 Bucle FOR NEXT imbricate


Instruciunile FOR-NEXT permit 5 nivele de imbricare. Aceasta nseamn c se pot programa
maxim 5 bucle FOR-NEXT secvenial, una n interiorul celeilalte.
In imaginea de mai jos sunt prezentate doua programe ce au 3 si respectiv 2 nivele de
imbricare. In cazul buclelor imbricate, numrul de repetri al buclei de pe nivelul inferior se
multiplica de un numr de ori egal cu numrul de repetri ale buclei/buclelor de pe nivelele
superioare.

Dac numerele pentru FOR si NEXT nu sunt identice, poate s apar o eroare.

2. Desfurarea lucrrii
Obiective:

Funcia de control principal MC i MCR

Instruciuni de salt condiionat CJ

Instruciuni de apel subrutina CALL, SRET

Bucle FOR NEXT

2.1. Activitate 1: Funcia de control principal MC i MCR


Se va introduce urmtorul program i se va urmri funcionarea n Ladder Logic
Test sau se va nscrie n AP i se trece n Monitor Mode F3.

Se observ modificarea diagramei Ladder n urma rulrii programului.

Acest exemplu este o structur neimbricat i instruciunile MC se pot repeta fr limitare.

Test 1:
Implementai programul pentru funcia Master Control MC cu o structur imbricat dup exemplul
expus n paragraful 1.1
Structurile imbricate pot fi maxim 8, N0 pn la N7 [3]
8

2.2. Activitate 2: Instruciuni de salt condiionat CJ


Cnd este activ instruciunea CJ, programul va face un salt la eticheta specificat,
care se introduce dnd dublu click pe numrul liniei de program i se d OK.
n exemplul de mai jos, liniei 11 i s-a atribuit eticheta P62.

Exemplu de program cu instruciunea de salt CJ

Se observ c liniile de program 6 i 8 nu sunt executate deoarece este activ instruciunea de salt la
eticheta P62, [CJ P62]. Dac nu este activ instruciunea de salt, atunci se execut toate liniile de
program.

2.3. Activitate 3: Instruciuni de apel subrutina CALL, SRET


n cazul n care instruciunea CALL este executat, programul va face salt la eticheta
desemnat de P0. Dup execuia subprogramului de la eticheta P0, se ntoarce la
programul original cu instruciunea SRET.
Se va introduce urmtorul program i se va urmri funcionarea n Ladder Logic
Test sau se va nscrie n AP i se trece n Monitor Mode
9

Test 2:
Concepei un program n care n care o subrutin apeleaz o alt subrutin.

2.4. Activitate 4: Bucle FOR NEXT


Se va introduce urmtorul program i se va urmri funcionarea n Ladder Logic Test

Bucla FOR, adaug la registrul D2, valoarea K3, intr-un ciclu de K5 . Vezi i FOR.avi.

10

Rezolvare test 1: Funcia MC imbricat, se poate urmri i secvena MC2.avi

Rezolvare test 2
Exemplu de subrutin care apeleaz alt subrutin.

Se poate urmri rularea acestui program n CALL2.avi

11

Bibliografie
1. MELSEC FX Family, Progrramable Logic Controller, Beginner s manual, FX1S, FX1N,
FX2N, FX2NC i FX3U, Mitsubishi Electric, Industrial Automation, 30.0.2010, Versiunea
C
2. GX DEVELOPER FX, V0845-1L0C-M, Programming Software, Article no: 208761,
Date:07. 2007, Mitsubishi Electric, Industrial Automation, Distribuitor: Sirius Trading &
Services
3. MITSUBISHI, Progrramable Controllers, MELSEC-F, Discovering Control, An
Intermediate Guide To Learning PLCs, JY997D22101-A, 01/2006

12