Sunteți pe pagina 1din 12

CURS 3

PROGRAMAREA APLICAIILOR N LIMBAJUL


LADDER DI AGRAM (LDR).

1. Introducere.
Ladder Diagram este un limbaj de programare grafic. n cea mai simpl form a sa, un program LDR este
asemntor cu imaginea unei diagrame de circuit electric de tip american. Aceasta este similar cu
diagrama de circuit electric German (standard DIN) dar se citete de la stnga la dreapta.
Elementele principale din LDR sunt contactele (contacts) i spirele (coils), n diferite forme i care au
diferite semnificaii. Ele sunt legate ntr-o secven logic cu ajutorul uror trasee grafice numite rungs i
branches care sunt similare cu conductoarele de legtur din circuitele electrice.

Subiectele dezvoltate n acest capitol sunt: operanzi, structura programelor LDR, operaii de baz n LDR,
temporizatoare, numrtoare, module de programare.

2. Operanzi.
Operanzii LDR sunt similari cu cei din limbajul STL. Ei sunt identificatori ai sistemului: intrri, ieiri,
timere, numrtoare, etc. n cadrul unui program, utilizarea acestor operanzi este singurul mod de
accesare a resurselor pe care le reprezint. n funcie de dimensiunea lor exist doua tipuri de operanzi:
operanzi de un singur bit;
operanzi de mai muli biti - 8, 16 sau 32 de bii.
Memorarea valorilor operanzilor n cazul cderii tensiunii de alimentare a automatului se numete
retenie. Deoarece majoritatea operanzilor se gsesc n memoria RAM, n cazul unei cderi de tensiune
coninutul memoriei se pierde. Memoria este volatil. Retenia este posibil dac automatul are n
componen o baterie de siguran.
n cazul ieirilor, acestea nu trebuie s memoreze starea dinainte de cderea de tensiune, pentru a nu pune
n pericol instalaia la revenirea tensiunii. Deci ieirile sunt ntotdeauna localizate ntr-o memorie volatil.
Se poate ntmpla s existe o cdere de tensiune i bateria de siguran s fie descrcat. Pentru
prevederea acestui defect se impune ca programele s aib seciuni n care s se iniializeze toi operanzii
importani pentru funcionarea sigur a instalaiei.

3. Structura unui program LDR.
Un program LDR este constituit din ramuri principale (rungs). Fiecare ramur principal are minim un
contact. De asemenea fiecare ramur principal conine cel puin o spir (coil). Adiional, ramuri
paralele (branches) pot fi inserate rezultnd astfel contacte n paralel. Ramurile paralele pot fi conectate
la orice nod al ramurii principale cu condiia ca ele s nu se suprapun. Mai multe spire pot fi configurate
n paralel dar ele trebuie s aib toate o intrare de comand comun. Altfel se folosesc mai multe ramuri
principale.

Din ce este constituit o ramur principal?
Un program LDR conine: ramuri principale, ramuri paralele, seciuni de ramur, contacte normal
deschise i normal nchise, casete de instruciuni i spire. Aceti termeni se explic mai jos cu ajutorul
figurii 1.

O caset de instruciuni poate fi folosit pentru a nlocui un contact sau o spir dar de obicei se folosete
pentru funcii care sunt imposibil de reprezentat grafic n LDR (de exemplu operaia aritmetic de
adunare a dou numere).


Fig. 1 Elemente grafice de program LDR.

Ramurile prezentate n figura 1 conin numai operaii i de aceea reprezint doar o legtur logic ntre
elemente binare. Fiecare operaie (adic fiecare contact, spir sau caset de instruciuni) necesit cel puin
un operand. Dac operandul lipsete, atunci programul are erori care vor fi evideniate la compilare.
Operandul se scrie deasupra elementului grafic (contact/spir/caset). Introducerea operandului se
realizeaz prin editarea cmpului respectiv. n cazul casetelor de instruciuini, este un lucru obinuit ca
acestea s necesite mai mult de un singur operand.

Parte condiional i parte executiv.
O ramur principal (rung) poate fi mprit ntr-o parte condiional i o parte executiv, figura 2. n
partea condiional se evalueaz la adevrat sau fals (1 sau 0) o funcie logic definit de utilizator cu
ajutorul contactelor i/sau al casetelor de comparaii logice. Spira reprezint partea executiv, iar aciunile
descrise de coninutul ei se declaneaz atunci cnd partea condiional a fost evaluat ca adevrat, 1
logic.

Fig. 2 Partea condiional i partea de execuie a unei ramuri principale.

Contact, normal deschis
Caseta de instructiuni
Ramura principala
Spira
Sectiune care poate contine un contact
Ramuri paralele
Spire paralele
Contact, normal nchis
Partea condiional
Partea de execuie

Funcionarea unei ramuri principale este identic cu cea a unui circuit electric de comand. Sarcina
electric (releul) este reprezentat de partea executiv a ramurii LDR. Partea condiional este analoag
contactelor electrice serie sau paralel.

Logica de procesare a unui program LDR.
Programele LDR sunt executate n ordine, ramur dup ramur i ciclic, dup terminarea tuturor
ramurilor se rencepe execuia de la prima ramur. Programul se execut atta timp ct nu exist o
comand expres de oprire. Ramurile principale (rungs) sunt numerotate n mod automat de ctre mediul
de programare. Din acest motiv exist o secven clar de procesare a mai multor ramuri principale.
nainte de ncrcarea programului LDR n AP, programul este translatat n cod main cu ajutorul unui
program special numit compilator. Instruciunile cuprinse n ramuri sunt translatate consecutiv, conform
numerotrii i a ordinii apariiei n program. Chiar i n cadrul unei singure ramuri principale,
compilatorul va respecta secvena programat de utilizator. De exemplu, o a doua spir n paralel va
aprea n programul cod main ca fiind executat dup prima spir.

n cazul automatelor programabile multi-procesor, cea de-a doua spir va fi comutat dup prima, cu o
ntrziere de cteva microsecunde. Automate programabile cu un singur procesor folosesc, n general,
metoda imaginii de proces
1
pentru actualizarea intrrilor i iesirilor. La acestea, actualizarea ieirilor
fizice are loc independent de secvena de program conceput de utilizator, la sfritul fiecrui ciclu al
programului. Cnd se pornete automatul (cu ntreruptorul RUN/STOP sau prin alimentare cu tensiune)
instruciunile se execut de la prima linie de program.

Aceast logic secvenial este exploatat particular, atunci cnd se folosesc operanzii binari speciali (ex.:
FI, numit bit de initializare, initialization flag mediul FST). FI are valoarea 1 logic pentru primul ciclu
al programului. ncepnd cu al doilea ciclu i pn la oprirea automatului, operandul FI va avea valoarea
0 logic. Cu ajutorul operandului FI este posibil aducerea oricrui operand n starea iniial dorit la
nceputul programului.

n figura 3, setarea n 1 logic a ieirii O0.1 se face doar pentru primul ciclu al programului. Setarea n
1 logic a ieirii O0.2 se face ncepnd de la al doilea ciclu al programului i pn la oprirea acestuia
deoarece negaia lui FI are valoarea 0 logic n primul ciclu iar n rest are valoarea 1 logic.
Fig. 3 Utilizarea operandului binar special, FI (initialization flag).

Modul de actualizare al intrrilor/ieirilor.
Acelai program LDR poate fi rulat pe mai multe tipuri de automate programabile. Procesarea intern a
programelor LDR este diferit funcie de modul de actualizare de ctre AP a semnalelor de intrare/ieire.
Astfel, automatele programabile cu un singur procesor, de obicei, folosesc un tampon de memorie numit
imagine de proces (process image). Funcionarea AP-urilor cu memorie de imagine de proces este
urmtoarea:
- nainte de intrarea n ciclul unui program, n aceast memorie se ncarc valoarea semnalelor fizice de
intrare;
- pe parcursul rulrii unui ciclu, valorile intrrilor sau ieirilor folosite n program sunt cele din
memoria imagini de proces (chiar dac pe parcursul ciclului unele intrri se pot schimba). Imaginea
de proces este actualizat cu comenzi de setare sau resetare a ieirilor;

1
Se detaliaz mai trziu n acest capitol.
- la terminarea ciclului, ieirile fizice sunt actualizate corespunztor valorilor din imaginea de proces.
Dup aceasta ciclul se repet.

Observaii:
1) Memoria cu imaginea de proces se actualizat i n cazul n
care, n acelai program se sare la o ramur principal
anterioar celei curente (cu instruciune de salt).
2) Dac proiectul are mai multe programe LDR, imaginea de
proces este actualizat nainte de execuia primei ramuri
principale a fiecrui program.

n figura 4 se poate observa schematic modul rulare a unui
program LDR pentru un automat care utilizeaz memorie cu
imagine de proces, a), i pentru un automat fr imagine de
proces, b).

Automatele programabile multiprocesor nu utilizeaz memorie
pentru imaginea de proces. Starea intrrilor fizice este citit
imediat cum apar n partea condiional a ramurilor. Semnalele
de ieire sunt de asemenea actualizate imediat ce instruciunile
din partea executiv sunt executate, ieirile fizice fiind
comutate nainte de terminarea ciclului.

Ce nseamn acest lucru n practic se poate observa cu ajutorul programului din figura 5. Acest program
poate fi rulat pe orice tip de automat programabil (cu un singur procesor sau cu mai multe procesoare).
Programul nu are o utilitate practic deoarece ieirea O0.1 este pur i simplu comutat n 1 i n 0 logic de
mai multe ori pentru aceeai condiie ndeplinit, dac intrarea I0.1 este activat.

n acest caz, pentru un automat care utilizeaz imaginea de proces, ieirea O0.1 nu va fi comutat de mai
multe ori (din 1 n 0 logic sau invers). La terminarea unui ciclu al programului, ieirea O0.1 va fi
dezactivat dac I0.1 este 0 logic sau va fi activat dac intrarea I0.1 este 1 logic, deoarece aceasta
este ultimul lucru care se intmpl n comand, nainte de actualizarea imaginii de proces.

Fig. 5. Program LDR exemplu pentru nelegerea lucrului cu memoria de imagine de proces

Pe de alt parte, un automat care acceseaz ntrrile i ieirile n mod direct (automatele multi-procesor)
va comuta ieirea O0.1 din 1 logic n 0 logic i invers de mai multe ori, pe msur ce se execut
fiecare instruciune. Aceste comutri se pot vedea cu un osciloscop.

Avantajele metodei imaginii de proces:
- asigurarea c starea logic a intrrilor nu se modific pe parcursul unui ciclu al programului;
Actualizarea
Imaginii de Proces
Ramura principal
nr. 1
Ramura principal
nr. 3
Ramura principal
nr. 2
Ramura principal
nr. 4
Ramura principal
nr. 1
Ramura principal
nr. 3
Ramura principal
nr. 2
Ramura principal
nr. 4
a) b)
Fig. 4. Procesare cu imagine de
proces, a) i fr, b).
- asigurarea c ieirile i menin starea logic rezultat dup ultimul ciclu; Aceasta permite scrierea, la
sfritul programului, de rutine de verificare i control cu care se pot depista erori de programare.

Observaie: Dac aceste verificri sunt absolut necesare pentru automatele cu acces direct la intrri/ieiri, programarea se face
folosind flag-uri. Aceste flag-uri se copiaz la ieiri numai la sfritul programului, dup ce valorile lor sunt validate de
rutinele de verificare.

- execuia programului este mult mai rapid atunci cnd se folosete metoda imaginii de proces

Avantaje metodei de acces direct la intrri/ieiri:
- este posibil funcionarea n paralel a mai multor module cu procesor, astfel realizndu-se un sistem
multi-procesor;
- se asigur utilizarea strii curente, practic instantanee, a unei intrri;
- n ciclul programului nu se mai consum timp pentru actualizarea imaginii de proces;
- se poate utiliza o comutare rapid a ieirilor pentru comanda unor periferice electronice (de exemplu:
motoare pas cu pas, numrtoare electronice, afiaje electronice, multiplexoare electronice).

Care din cele dou metode este mai bun depinde de specificul aplicaiei, de complexitatea ei i de
mrimea programului final.

Viteza de execuie a unui automat programabil.
Procesarea fiecrui contact i a fiecrei spire implic timp. De aici rezult c timpul de ciclu al unui AP
depinde de lungimea programului. Pentru evitarea ciclurilor excesiv de lungi, AP-urile moderne ofer
comanda de salt. Astfel se permite saltul peste acele pri din program care nu sunt necesare pentru o
anumit stare a intrrilor/ieirilor. Timpul de ciclu al automatelor programabile variaz n limite largi. n
plus, timpul de procesare a diferitelor comenzi poate varia mult (o operaie aritmetic consum mult mai
mult timp dect o comutare a unei ieiri). Este dificil de fcut o estimare general valabil despre timpul de
ciclu al unui AP. Afirmaii din cataloage de prezentare de genul: 6 milisecunde la 1000 de instruciuni
arat destul de bine dar nu au valoare practic deoarece instruciuni diferite necesit timpi de execuie
diferii. n practic se folosesc coduri de program cu care se poate msura timpul de ciclul al unui
program dat. Tot prin software se pot msura timpii de execuie pentru o instruciune specific i timpul
de ntrziere necesar actualizrii intrrilor i ieirilor.

4. Operaii de baz n programe LDR.
Analog setului de instruciuni din limbajul STL, n LDR exist simboluri grafice ce au funcii bine
determinate. Operaiile executate de aceste funcii se detaliaz n acest paragraf. Pentru structurarea
informaiei, operaiile LDR se vor mprii n mai multe categorii.

Operaii logice
Funcia logic I pentru doi operanzi binari, I0.1 i I0.2, este reprezentat n figura 6.


Fig.6.


Operaia logic SAU pentru doi operanzi binari, I0.1 i O0.2, este prezentat n figura 7.


Fig. 7.



Negaia unui operand binar se poate face n partea condiionat, figura 8, sau n cea de execuie, figura 9.
n primul caz Execuia are loc dac intrarea I0.1 este dezactivat. n al doilea caz ieirea O0.1 este
activat cnd Condiie este neindeplinit (0 logic).

Fig. 8.


Fig. 9.


Funcia logic de identitate este una din operaiile de baz n LDR. Folosete o intrare i o ieire, la fel ca
funcia NU logic, dar valoarea de adevr a intrri se transmite la ieire, figura 10.

Fig. 10.

Funcia logic SAU EXCLUSIV este o condiie des utilizat n practic. LDR nu are un simbol grafic
special pentru aceast funcie. Funcia se realizeaz printr-o succesiune serie-paralel de contacte. n figura
11 este prezentat operaia SAU EXCLUSIV ntre doi operanzi: I0.1 i I0.2. Instruciunea din partea de
Execuie se proceseaz dac numai una din cele dou intrri este activat.


Fig. 11.



Se pot realiza operaii SAU EXCLUSIV cu mai mult de dou variabile. n figura 12 se prezint ramura de
program LDR n care se evalueaz trei operanzi binari cu o funcie SAU EXCLUSIV.



Fig. 12.





Operaia NOP
Operaia special NOP este o operaie care nu face nimic. Toate limbajele de programare trebuie s aib o
operaie nul. n LDR, operaia NOP este utilizat ca operator ataat unui contact. n acest caz contactul
va fi totdeauna activat (1 logic) iar instruciunile din partea de execuie se vor executa la fiecare ciclu de
program, fig.13.

Fig. 13.

Dac operatorul NOP este utilizat ntr-o ramur, aceasta nseamn c pentru acea ramur este dezactivat
mecanismul de recunoatere a frontului de semnal (tranziia din 0 n 1). De asemenea, acea ramur este
activ permanent. n figura 14 se d un exemplu de utilizare a funciei NOP la comanda de incrementare a
unui numrtor. Numrtorul va contoriza fiecare ciclu al programului. Dac se asociaz acest numrtor
cu un temporizator i se msoar timpul n care se execut, de exemplu 10000 cicluri, se poate estima
timpul de ciclu al unui program.

Fig. 14.

Operaia de memorare (latching)
Aceast operaie seamn cu metoda tradiional de automeninere la utilizarea releelor de ctre
electricieni. Este o memorie de 1 bit. n automatele programabile, memoria de un bit se realizeaz cu
comenzile SET i RESET. Oricum, realizarea acestei memorii cu ajutorul contactelor se practic des n
programele LDR.

Simbolul logic pentru memoria de 1 bit este cel al unui circuit
bistabil, fig. 15. Un circuit bistabil are dou intrri, S (set) i R
(reset) i o singur ieire, A. Un semnal 1 logic n intrarea S
(set) provoac activarea ieirii A. Dup ce A a fost activat, el va
rmne n aceast stare indiferent de valoarea logic a intrrii S.
Trecerea ieirii A n starea 0 logic se face prin activarea intrrii
R (reset). Dup dezactivarea lui A nu mai conteaz dac R i
schimb starea. Dac semnalele R i S sunt ambele 0 logic
ieirea A i va menine starea anterioar. Se difereniaz dou
tipuri de circuite bistabile, corespunztor comportrii dorite a ieirii A n cazul n care semnalele R i S
sunt 1 logic n acelai timp:
- cu resetare dominant, oricare ar fi starea intrrii S (0 sau 1 logic), activarea semnalului R va
provoca obligatoriu trecerea ieirii A n starea 0 logic;
- cu setare dominant, oricare ar fi starea intrrii R (0 sau 1 logic), activarea semnalului S va provoca
obligatoriu trecerea ieirii A n starea 1 logic.
Pentru programarea unui circuit bistabil n LDR este nevoie de utilizarea a trei operanzi binari cu condiia
ca operandul echivalent semnalului A s poat fi modificat (flag de memorie sau ieire). Figura 16.
reprezint un circuit bistabil cu resetare dominant dat de operandul I1.2 i setare dat de operandul
I1.1. Semnalul analog ieirii bistabilului este flagul F3.1.


Fig. 16.



Circuitul bistabil cu setarea dominant este descris de figura 17. Setarea se face de ctre intrarea I1.1
indiferent de valoarea ieirii I1.2. Resetarea se face cu semnalul I1.2 dar numai atunci cnd intrarea I1.1
este 0 logic.


Fig. 17.




Operaii cu spire (coils)
Atunci cnd spirele sunt energizate se face diferen ntre comenzile care nu se pstreaz i comenzile
care se pstreaz:

Comenzi care nu se pstreaz.
Pentru o comand care nu se pstreaz, starea logic a condiiei se transfer direct la spir. n spir se
reflect fiecare schimbare a strii logice a condiiei. n figura 18 se d comanda de activare a ieirii O1.1
atunci cnd intrarea I1.1 este activat. n momentul n care intrarea I1.1 devine 0 logic ieirea O1.1 va
fi dezactivat (0 logic), fig. 19.

1 0
1
S
R
A
1 1
1
S
R
A
a) b)

Fig. 15. Schema logic al unui
circuit bistabil (memorie de 1 bit):
a) cu resetare dominant;
b) cu setare dominant


Fig. 18.



Fig. 19. Activarea i dezactivarea ieirii O1.1 funcie de semnalul de intrare I1.1,
n cazul unei comenzi care nu se pstreaz.

n cazul acestui tip de comand exist i varianta de comand negat, fig. 20, la care semnalul de ieire
O1.1 este activat dac intrarea I1.1 este 0 logic i este dezactivat dac intrarea I1.1 are starea 1 logic,
conform diagramei din figura 21.


Fig.20



Fig.21. Activarea i dezactivarea ieirii O1.1 funcie de semnalul de intrare I1.1,
n cazul unei comenzi negate care nu se pstreaz.

Comenzi care se pstreaz.
n acest caz comenzile sunt executate precis dac (i numai dac) ramura are starea 1 logic, adic
condiia ramurii este ndeplinit. Dac condiia trece din starea 1 logic n starea 0 logic, comanda
executat de spir nu se va anula. Exist dou tipuri de comenzi care se pstreaz: SET i RESET. Ele
sunt comenzi opuse n sensul c se anuleaz una pe cealalt dac se aplic aceluiai operand. n figura 22
se poate vizualiza tipul de spir Set. Ieirea O1.1 este activat cnd intrarea I1.1 devine pentru prima oar
1 logic, fig.24.a. Schimbri ulterioare ale intrrii I1.1 nu mai influeneaz ieirea O1.1. Dac ieirea
O1.1 a fost dezactivat din alt parte a programului, la execuia urmtoare a acestei ramuri ieirea O1.1
poate fi activat din nou, dac intrarea I1.1 este 1 logic. Tipul de spir Reset este prezentat n fig. 23.
Acesta are efect invers, aa cum se vede din diagrama 24.b.


Fig. 22.


Fig. 23.



timp
I1.1 - Condiie
O1.1 - Execuie
1 logic
0 logic
timp
I1.1 - Condiie
O1.1 - Execuie
1 logic
0 logic

a) b)

Fig. 24. Activarea ieirii O1.1 funcie de semnalul de intrare I1.1, n cazul unei comenzi
care se pstreaz: a) comand SET; b) comand RESET.

O comand care nu se pstreaz poate fi realizat cu dou comenzi care se pstreaz: SET i RESET,
dup cum se observ n figura 25. Efectul este cel din diagrama 26 i este identic cu cel al unei comenzi
care nu se pstreaz (cea din fig. 18).


Fig. 25




Fig. 26. Activarea i dezactivarea ieirii O1.1 funcie de semnalul de intrare I1.1, n cazul a
dou comenzi opuse care se pstreaz. Semnalul O1.1 este identic cu cel din fig. 6.18.


Operaia de salt
Comanda de salt apare n partea executiv a unei ramuri. Ea ofer posibilitatea de scurtare a timpului de
ciclu al unui program prin saltul peste instruciunile din program inutile la un moment dat, n decursul
aplicaiei. La urmtorul ciclu, instruciunile peste care s-a efectuat saltul pot fi executate, dac starea
sistemului automatizat o impune.

O comand de salt se insereaz n partea executiv a unei ramuri i conine o etichet (label) care
reprezint destinaia saltului, adic punctul din program de unde se execut urmtoarea instruciune.
Eticheta reprezint un ir oarecare de maxim 9 caractere alfanumerice, date de utilizator, i care trebuie s
nceap cu o liter. Nu se face diferen ntre litere mari i litere mici. Pentru a stabili destinaia unui salt,
eticheta trebuie inserat n ramura de interes, la nceputul prii condiionale. Dac exist o comand de
salt la o etichet anume, de exemplu motor3, i eticheta nu apare undeva n program, la nceputul prii
condiionale al unei ramuri, atunci se va semnala o eroare de sintax la compilarea programului.
O comand de salt n LDR arat ca n figura 27. Ea reprezint un salt condiionat, care se execut numai
dac partea condiional a ramurii este adevrat.

timp
I1.1 - Condiie
O1.1 - Execuie
1 logic
0 logic
timp
I1.1 - Condiie
I1.1 negat - Condiie
1 logic
0 logic
O1.1 - Execuie
timp
I1.1 - Condiie
O1.1 - Execuie
1 logic
0 logic



Fig. 27



Un salt necondiionat se realizeaz cu ajutorul operandului NOP, ca n figura 28.


Fig. 28.



Observaie: O comand de salt nu nlocuiete o spir (coil). Trebuie s existe cel puin o spir n fiecare
ramur. Dac se dorete doar un salt ca rezultat al unei condiii, trebuie utilizat un flag (care nu este util n
program) ca operand pentru spir.

Inserarea etichetei n partea condiional a unei ramuri se face ca n figura 29. Eticheta este motor3 i a
fost folosit mai sus la comanda de salt.

Fig.29.




Observaie: Utilizarea unei etichete n partea condiional a unei ramuri nu nlocuiete un contact. Trebuie
s existe cel puin un contact n partea condiional a fiecrei ramuri.

Operaia LOAD TO
LOAD TO este o operaie utilizat cu operanzi muti-bit (16 bii). Instruciunea LOAD ncarc n
acumulatorul MBA coninutul unui operand multi-bit. Din MBA se poate copia acel coninut n orice
operand multi-bit (mai puin la intrri) cu ajutorul instruciunii TO.
Caseta grafic LDR prezentat n figura 30 realizeaz automat cele dou instruciuni. Ea copiaz valoarea
constant 12 n memorie, la adresa FW5.

Fig. 30.


Aceeai comand se poate executa i cu o caset aritmetic/logic.


Operaii aritmetice
Casetele pentru operaii aritmetice fac parte din setul de casete pentru operaii binare multi-bit. Ele apar
ntotdeauna n partea executiv a unei ramuri. Casetele aritmetice acoper cele patru operaii de baz:
adunarea, scderea, nmulirea i mprirea. n figura 31 se d cte un exemplu de utilizare a celor patru
operaii de baz. Operanzii se introduc unul sub altul. n ultimul operand, al treilea, se ncarc rezultatul
operaiei aritmetice.

adunare


scdere



nmulire


mprire


Fig. 31. Exemple de casete de operaii aritmetice.

Aceleai operaii se mai pot efectua i cu o caset aritmetic/logic.

Alte operaii binare multi-bit
n afar de operaiile aritmetice mai exist disponibile urmtoarele operaii binare multi-bit:
- rotirea biilor spre dreapta (sau spre stnga): ROR (ROL);
- translatarea tuturor biilor spre dreapta (sau spre stnga): SHR (SHL);
- conversia unui numr din reprezentare binar n reprezentare BCD (Binar Codat Decimal): BID;
- conversia unui numr din reprezentare BCD n reprezentare binar: DEB;
- operaii logice bit cu bit ntre doi operanzi multi-bit: SI, SAU, SAU EXCLUSIV;
- schimbarea ntre ei a valorilor octeilor MSB i LSB ai unui operand multi-bit (16 bii): SWAP;
- complementul n baza doi al unui operand multi-bit: CPL;
- inversul, bit cu bit, al unui operand multi-bit: INV;

Fiecare din aceste operaii necesit doi operanzi multi-bit. Primul operand este sursa (asupra lui se
exercit funcia) iar al doilea este destinaie (n el se nregistraz rezultatul operaiei). C este aa se
observ din figura 32, unde se folosete operaia de rotire spre stnga cu un bit (ROL) a coninutului
operandului IW1. Rezultatul se nregistreaz n operandul FW3.
Sursa i destinaia pot fi reprezentate de acelai operand, cu condiia ca acesta s nu fie un cuvnt de
intrare (la intrri nu se poate scrie).


Fig. 32.


Toate aceste operaii sunt utile n rezolvarea eficient a unor probleme mai complexe de automatizare.

Operaii cu caseta aritmetic/logic (A/L)
Casetele A/L sunt folosite, la fel ca i cele de operaii multi-bit, numai n partea executiv a ramurilor. Ele
permit o programare coerent de operaii complexe care folosesc operanzi multi-bit. Pentru multe din
operaiile care se pot efectua cu casete A/L exist casete LDR speciale dar acestea realizeaz o singur
operaie (de exemplu adunarea a doi operanzi multi-bit).

Operaii de incrementare i decrementare
Se folosesc n partea executiv iar forma grafic de reprezentate LDR este o spir (coil). Operaia de
incrementare modific valoarea unui operand multi-bit cu + 1.
Operaia de decrementare modific valoarea unui operand multi-bit cu 1.
Se folosesc de obicei pentru actualizarea numrtoarelor dar se pot aplica oricrui operand multi-bit cu
excepia intrrilor. Figura 33 prezint operaia de incrementare a operandului FW5.

Fig. 33.

Comanda de incrementare se execut doar cnd
starea logic a prii condiionale trece din 0
logic n 1 logic, adic numai pe frontul
cresctor al semnalului Condiie. Figura 34
arat modificrile operandului FW5 la un semnal
oarecare al prii condiionale. Se consider c la
nceput valoarea din FW5 este 0.


Operaii de comparaie multi-bit
Permit comparaii cu rezultat logic (adevrat sau fals) ntre operanzi multi-bit. Sunt operaii de baz
pentru orice tip de automat programabil. Comparatorii multi-bit permit evaluarea relaiei dintre doi
operanzi (valori pe 16 bii), evaluarea numrtoarelor, comparaii ntre un operand i o valoare constant,
etc.
Exist 6 tipuri de comparaie ntre doi operanzi multi-bit :
- egal (=);
- mai mare(>);
- mai mare sau egal (>=);
- mai mic (<);
- mai mic sau egal (<=);
- diferit (<>);

Comparaiile multi-bit sunt reprezentate cu casete (box) i se folosesc n partea condiional a unei ramuri
LDR. n caset trebuiesc specificai doi operanzi. Valoarea lor este comparat conform tipului de caset
(=, >, >=, <, <=, <>) iar valoarea de adevr se transmite mai departe n partea condiional a ramurii.
Figura 35 prezint comparaia de egalitate ntre intrarea OW1 i registrul R2. Dac valorile lor sunt egale
atunci se va procesa comanda descris de Execuie.

Fig. 35


Un exemplu mai complex este dat n figura 36. Dac toate cele trei comparaii sunt adevrate, se
proceseaz comanda Execuie.

Fig. 36.


Observaie: Cu aceste casete se poate nlocui funcia NOP. De exemplu, relaia 1 > 0 este ntotdeauna
adevrat, putndu-se folosi n locul contactului cu operandul NOP.





timp
Condiie
Valoare FW5
1 logic
0 logic
1
2
3
Fig. 34. Incrementare

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