Dotarea automatelor programabile cu instruciuni pentru manipularea datelor i cu instruciuni aritmetice a permis extinderea domeniului de aplicaie, de la controlul de tip on-off, la controlul analogic sau controlul poziional.
Instruciunile de manipulare a datelor pot fi clasificate folosind diverse criterii: a) Dup tipul instruciunilor: - Instruciuni de transfer; - Instruciuni de comparare;
b) Dup mrimea blocurilor procesate: - Instruciuni cu operare la nivel de cuvnt caz n care se folosete terminologia de register sau de word); - Instruciuni cu operare pe blocuri/pachete de date caz n care se folosete terminologia de table sau file; c) Dup efectul instruciunilor: - stocarea temporar a informaiei; - deplasarea informaiei dintr-o zon de memorie n alta; - deplasarea i prelucrarea informaiei dintr-o zon de memorie n alta;
Conceptul de cuvnt, respectiv tabel de date, este prezentat n figura 1, pentru cazul automatelor Allen-Bradley.
Fig. 1: Ilustrarea conceptului de registru (cuvnt), respectiv de tabel (fiier), n cazul AP
Facilitatea de a opera la nivel de cuvnt este foarte important pentru lucrul cu intrri/ieiri analogice.
AP Curs 10 Page 2 of 10 1. Instruciuni pentru transferul datelor la nivel de cuvnt
Instruciunea Move(MOV) deplaseaz datele din registrul surs (S) n registrul destinaie (D), fr alterarea informaiei transferate . Cteva modaliti de reprezentare pentru aceast instruciune sunt prezentate n figura 2.
Fig. 2: Modaliti de reprezentare a instruciunii MOV Instruciunea MOV poate fi folosit pentru: - ncrcarea registrului Preset al unui numrtor sau al unui timer; - preluarea coninutului registrului Accumulator de la un numrtor; - preluarea strii logice de la intrrile discrete ale unui modul de intrare i depunerea lor ntr-un registru; - preluarea informaiei dintr-un registru i transmiterea ei la un modul de ieire; - lucrul cu modulele analogice de intrare sau de ieire;
Condiia de validare a liniei n care este amplasat instruciunea MOV este opional
Instruciunea Move with Mask (MVM) Pentru aceast instruciune trebuie specificate 3 registre: surs, masc, destinaie. Fiecare bit din registrul surs care ntlnete valoarea 1 pe poziia corespondent a registrului masc, ajunge n registrul surs prin suprascriere peste coninutul iniial al destinaiei. Fiecare bit din registrul surs care ntlnete valoarea 0 pe poziia corespondent a registrului masc, nu modific coninutul iniial al destinaiei.
Fig. 3: Modul de operare al instruciunii MVM, pentru automatele Allen-Bradley
AP Curs 10 Page 3 of 10 Instruciunea de deplasare a unui segment dintr-un registru, Bit Field Distribution (BTD) Instruciunea BTD, permite copierea/deplasarea doar a unui segment, de lungime specificat, din registrul surs. Registrul destinaie poate fi un registru oarecare (vezi figura 4b) sau chiar registrul surs (vezi figura 4a).
Fig. 4: Modul de operare al instruciunii BTD, pentru automatele Allen-Bradley Pentru acest tip de instruciune trebuie specificat: - registrul surs; - bitul surs (bitul de nceput al segmentului ce urmeaz a fi copiat din registrul surs); - lungimea (exprimat n bii) a segmentului ce urmeaz a fi copiat; - registrul destinaie; - bitul destinaie n registrul destinaie (bitul de la care se ncepe depunerea fragmentului copiat).
AP Curs 10 Page 4 of 10 Aplicaia 1: Schimbarea constantei de timp a unui Timer n figura 5 se prezint o aplicaie simpl n care durata temporizrii timer- ului T4:1 se poate schimba n timpul funcionrii de la 5 la 10 secunde, n funcie de starea comutatorului SS1. Cele dou constante (5 respectiv 10 secunde), sunt ncrcate n registrul Preset al timerului prin intermediul instruciunilor de tip MOV.
Fig. 5: Utilizarea instruciunii MOV pentru schimbarea constantei de timp
Aplicaia 2: Schimbarea valori preset pentru un numrtor CTU n figura 6 se prezint o aplicaie de numrare a pieselor de pe o band rulant. Valoarea prestabilit a numrului de piese se poate modifica n timpul funcionrii prin intermediul comutatoarelor A, B, C. ncrcarea registrului Preset al numrtorului se face prin intermediul instruciunilor de tip MOV, ce sunt condiionate comutatoarelor.
Fig. 6: Utilizarea instruciunii MOV pentru schimbarea registrului Preset al unui numrtor
AP Curs 10 Page 5 of 10 2. Instruciuni pentru transferul blocurilor de date Operaiile de copiere sau de transferare a tabelelor/fiierelor/blocurilor de date sunt realizate prin instruciuni specifice ce pot diferi de la un productor la altul. n principiu, exist trei tipuri de operaii cu fiiere, aa cum se arat n figura 7: registru fiier; fiier fiier; fiier registru.
Fig. 7: Instruciuni pentru transferul datelor la nivel de fiier
Transferul de tip File/Table Registru Blocul de memorie (denumit uneori fiier, alteori tabel) este constituit dintr-un grup de registre amplasate la adrese succesive. Transferul de tip fiier registru se realizeaz deplasnd, unul dup altul, cuvintele din blocul de memorie, n registrul destinaie. Pentru aceasta, n corpul instruciunii trebuie specificat, adresa de nceput a blocului de memorie, dimensiunea blocului de memorie ce trebuie deplasat, pointerul din interiorul blocului i adresa registrului destinaie. Un exemplu de acest fel este prezentat n figura 8. Blocul de date ce trebuie transferat este amplasat la adresa Reg 2000 i are dimensiunea 8. Valoarea pointerului este specificat de registrul 1000 i are valoarea 4. Registrul destinaie este Reg 3000. n aceste condiii, dup validarea instruciunii (nchiderea contactului 10), la prima tranziie OFFON a contactului 11 are loc transferul registrului Reg 2003 n registrul Reg 3000 , dup care se incrementeaz pointerul (trece din valoarea 4 n valoarea 5). La urmtoarea tranziie OFFON a contactului 11 se transfer Reg 2004 i aa mai departe, pn la terminarea blocului de date, moment n care se activeaz ieirea 101. Ieirea Enable urmrete starea contactului de validare 10, iar ieirea End of Table se activeaz dup transferul ultimei locaii a blocului de date.
Fig. 8: Modul de operare al instruciunii de transfer de tip fileregistru AP Curs 10 Page 6 of 10 Instruciunea poate fi folosit pentru: ncrcarea valorii preset a numrtoarelor; stabilirea constantei de timp a timerelor; controlul simultan al mai multor ieiri discrete; controlul ieirilor analogice, etc.
Transferul de tip Registru File/Table Acest tip de instruciune permite stocarea ntr-o zon de memorie specificat, a coninutului unui registru din momente diferite de timp. Modul de lucru este ilustrat n figura 9.
Fig. 9: Modul de operare al instruciunii de transfer de tip registru file Instruciunea poate fi folosit pentru: ncrcarea de noi date ntr-un tabel; stocarea evoluiei n timp a unei intrri analogice; stocarea evoluiei n timp a unui grup de intrri discrete; stocarea evoluiei n timp a semnalului de eroare dintr-un proces, etc.
Operaii aritmetice la nivel de fiier, instruciunea File Arithmetic and Logic (FAL). O instruciune de transfer fiiere, cu un caracter mai general, ce permite i execuia unor operaii matematice asupra datelor transferate este ntlnit la automatele Allen-Bradley, sub denumirea de File Arithmetic and Logic (FAL). Semnificaia parametrilor specifici instruciunii FAL, se prezint mai jos: - Control, este un registru n care procesorul scrie o serie de bii necesari n procesul de execuie al instruciuni. n mod implicit, registrul de control este R6. - Lenght, reprezint dimensiunea blocului de date (fiierului) ce trebuie transferat exprimat n cuvinte. Dimensiunile acceptate sunt cuprinse ntre 1 i 1000, exprimat ca numr zecimal. - Position, reprezint poziia curent n fiier, n momentul execuiei operaiei de transfer. Imediat dup resetarea acestei instruciuni, valoarea acestui registru este zero, valoare ce are semnificaia nceputului de fiier. n timpul execuiei programului, acest registru poate fi scris i cu o valoare oarecare, dac transferul trebuie nceput din alt punct i nu de la nceput. - Mode, indic numrul de elemente din fiier ce trebuie transferate n fiecare proces de scanare. Exist trei posibiliti: AP Curs 10 Page 7 of 10 o All Mode, (A), fiierul este transferat complet ntr-un singur ciclu scan. Acest mod de lucru are ca efect creterea timpului necesar efecturii unui scan, mai ales pentru fiiere lungi. o Numeric Mode, permite specificarea numrului de elemente ce trebuie transferate din fiier, n fiecare scan. Acest mod de lucru are ca efect scderea timpului necesar efecturii unui ciclu scan prin faptul c fiierul este fragmentat i transferat pe parcursul mai multor cicluri scan. n acest registru se accept numere ntre 1 i 1000. o Incremental Mode, (I ), determin transferarea unui singur element pentru fiecare tranziie pozitiv (falsetrue) a prii de intrare a liniei Ladder n care este amplasat instruciunea FAL. - Destination, este un registru n care se precizeaz adresa de nceput a zonei de memorie n care se depun elementele transferate. Se accept adres de fiier sau adres de registru. - Expression, este un registru n care se poate preciza adresa sursei de date, o constant sau un tip de operator. Modul de utilizare a instruciunii FAL pentru realizarea transferurilor de date fr prelucrare, se poate vedea n figurile 10 i 11, pentru: - realizarea transferului de tip filefile (vezi figura 10) - realizarea transferului de tip fileword (vezi figura 11.a) - realizarea transferului de tip word file (vezi figura 11.b)
Fig. 10: Transferul de date de tip filefile folosind instruciunea FAL
AP Curs 10 Page 8 of 10
Fig. 11: Utilizarea instruciunii FAL pentru transfer de tip: a) fileword; b) word file;
Instruciunea FAL permite i realizarea de operaii aritmetice sau logice, cu execuie la nivel de fiier cum ar fi: adunarea, scderea, nmulirea, mprirea, extragerea radicalului, conversii din binar n BCD sau din BCD n binar. Modul de utilizare a instruciunii FAL pentru realizarea transferurilor de date cu prelucrare, se poate vedea n figurile 10 i 11, pentru: - adunarea ntre datele din dou fiiere (vezi figura 12.a) - scderea unei constante din datele unui fiier (vezi figura 12.b) - nmulirea datelor dintr-un fiier cu o constant (vezi figura 13.a) - mprirea datelor din dou fiiere (vezi figura 13.b)
Fig. 12: Utilizarea instruciunii FAL pentru: a) adunarea datelor din dou fiiere; b) realizarea scderii cu o constant a datelor dintr-un fiier AP Curs 10 Page 9 of 10
Fig. 13: Utilizarea FAL pentru: a) nmulirea datelor din dou fiiere; b) realizarea mpririi ntre dou fiiere
3. Instruciuni de transfer cu execuie rapid Unele automate dispun de instruciuni de copiere a fiierelor cu execuie mai rapid dect cele prezentate anterior. n continuare se prezint dou instruciuni specifice automatelor Allen- Bradley. a) Instruciunea Copy File (COP) Instruciunea COP este folosit pentru copierea rapid a dou blocuri de date. Modul de execuie i elementele caracteristice sunt prezentate n figura 14.a
Fig. 14: Instruciuni cu execuie rapid: a) instruciunea Copy File (COP); b) instruciunea Fill File (FLL);
b) Instruciunea Fill File (FLL) Instruciunea FLL este similar instruciuni de transfer word file, este folosit pentru scrierea rapid a unui bloc de date. Modul de execuie i elementele caracteristice sunt prezentate n figura 14.b. Instruciunea este folosit mai ales pentru scrierea valorii 0 ntr-o zon de memorie. AP Curs 10 Page 10 of 10 4. Instruciuni pentru diagnosticare, Diagnostics (DIAG) Aceast instruciune este util n verificarea funcionrii corecte a echipamentelor comandate de AP. Ca mod de lucru, instruciunea DIAG realizeaz o comparare ntre dou fiiere: - RefReg fiierul cu date de referin (conine comportarea dorit a sistemului); - SourceReg fiierul cu date de intrare (conine comportarea actual al sistemului); Simbolul i modul de operare al instruciunii DIAG este prezentat n figura 15.
Fig. 15: Instruciunea Diagnostics (DIAG) Dup terminarea instruciunii se activeaz ieirea Done. n cazul n care s-au gsit diferene ntre coninutul celor dou fiiere, se activeaz i ieirea Miscompare, iar bitul eronat i poziia acestuia sunt memorate ntr-un registrul intern, Reg 3000.