Documente Academic
Documente Profesional
Documente Cultură
AUTOMATE PROGRAMABILE
396
Automatele programabile modulare oferă cea mai mare flexibilitate. Există o mare
varietate de module din fiecare tip (UC, de I/E, etc)şi de sertare de bază, din care proiectantul
poate croi un sistem cât mai apropiat de cerinţele aplicaţiei considerate. Exemple de
automate programabile din această clasă sunt SIMATIC S5 al firmei Siemens, PLC – 5 al
firmei Allen Bradley, etc. Din punct de vedere al numărului de puncte de I/E, automatele
programabile modulare se înscriu în clasa automatelor programabile medii şi mari (cu mii de
puncte de I/E). În lipsa unor precizări, automatele programabile discutate vor fi considerate
implicit compacte extensibile sau modulare.
Fiecare producător de automat programabil pune la dispoziţia utilizatorului o gamă
largă de surse de alimentare, sertare de bază, module UC şi de interfaţare şi module de I/E.
Aceştia din urmă vor alege acele componente ale sistemului care corespund necesităţilor
aplicaţiei considerate. Operaţiunea de selecţie a modulelor şi sertarului de bază în funcţie de
cerinţele aplicaţiei se numeşte configurare. De aici reiese unul din marile avantaje ale
automatelor programabile, şi anume flexibilitatea lor: ele pot fi configurate în funcţie de
specificul aplicaţiei.
În continuarea capitolului sunt discutate în detaliu caracteristicile automatelor
programabile, cu exemplificări pentru pentru câteva tipuri reprezentative, iar în finalul lui sunt
formulate concluziile referitoare la utilizarea automatelor programabile în controlul
proceselor, [7].
397
Fig. 7.2. a) Un izolator optic; b) un canal al unui modul de intrări discrte în c.c. ;
c) Conectarea semnalelor la un modul de intrări discrete
398
care se va putea modifica şi pote fi reprezentat printr-un grafic amplitudine-frecvenţă, ca în
figura 7.3.
Pentru a extrage eşantioanele corecte, semnalul trebuie eşantionat cu o frecvenţă mai
mare decât 2 fc. În sistemele reale, fc este rareori cunoscut cu precizie şi, uzual, este aleasă o
rată de eşantionare de 4-10 fc.
În general, automatele programabile lucrează cu cuvinte de 16 biţi. Dacă un modul de
intrări analogice ocupă un slot în sertarul de bază şi citeşte o sigură intrare analogică, acest
lucru va fi o risipă costisitoare de adrese de I/E. Un modul de intrări discrete cu 16 puncte
costă uzual aproximativ un sfert din preţul unui modul de intrări analogice. Acest neajuns
poate fi eliminat prin utilizarea multiplexării, aşa cum reiese din figura 7.4.
Aici, patru semnale de intrare analogice, separate unul de altul prin amplificatoare de
izolare, sunt selectate pe rând prin comutatoare electronice şi sunt convertite într-o valoare
numerică cu un singur convertor analog-numeric. Asemenea module procesează, de obicei, 4,
8 sau 16 semnale de intrare analogice.
Un modul de intrări analogice cu 8 canale şi 12 biţi rezoluţie va furniza 8 valori
numerice în gama 0-4095. De regulă, acestea trebuie preluate de către program şi convertite în
unităţi inginereşti. De aceea, un automat programabil trebuie să rezolve două probleme: cum
să preia data multiplexată de la modulul de intrări analogice şi cum să utilizeze această dată în
program. În principiu, există 2 moduri de preluare a datelor, reprezentate în figura 7.5.
Automatul programabil selectează canalul dorit prin trimiterea unei adrese pe 3 sau 4
biţi ca o instrucţiune de ieşire către modul, împreună cu comanda “converteşte”. Modulul
trimite înapoi un semnal “Gata” şi rezultatul conversiei pe 12 biţi, ce poate fi citit printr-o
instrucţiune de intrare. Această metodă are avantajul că programatorul poate alege perioade de
eşantionare diferite pentru fiecare canal.
399
Metoda din figura 7.5.b este mai des utilizată. Un bloc de locaţii de memorie din
memoria automatului programabil este asociat direct cu modulul de intrări analogice. Acesta
funcţionează continuu, înscriind valori numerice în locaţiile de memorie, de unde pot fi citite
direct de către program.
Conversia semnalului din forma primară pe 12 biţi în unităţi inginereşti se face
conform relaţiei:
N V max V min
VM V min (7.1)
4095
unde: VM este valoarea măsurată (în unităţi inginereşti), N este valoarea semnalului în forma
primară pe 12 biţi, Vmax este valoarea maximă a semnalului în unităţi inginereşti
(corespunzătoare lui 4095) iar Vmin este valoarea minimă a semnalului în unităţi inginereşti
(corespunzătoare lui 0).
PLC-5 al firmei Allen Bradley citeşte semnalele analogice cu un modul de intrări
analogice (1771-IFE) care poate citi, în forma sa cea mai simplă, 8 intrări analogice. UC
comunică cu modulul prin intermediul unor instrucţiuni numite “transferuri pe bloc”, care
transferă data la/de la un bloc de locaţii de memorie. Transferurile de date de la UC la modul
sunt numite “transferuri de scriere bloc” (BTW – Block Transfer Writes) iar transferurile de la
modul în memorie se numesc “transferuri de citire bloc” (BTR – Block Transfer Reads).
Modulul de intrări analogice utilizează ambele instrucţiuni BTW şi BTR. Instrucţiunea
BTW este utilizată o singură dată, după pornirea automatului programabil, pentru
configurarea modulului iar instrucţiunea BTR este utilizată ulterior pentru citirea datelor, aşa
cum reiese din figura 7.6.
Instrucţiunea BTW defineşte
comportarea modulului: dacă va furniza date
în cod binar sau BCD, dacă se vor utiliza 8
semnale diferenţiale sau 16 semnale raportate
la un 0 V comun, valorile minime şi maxime
ale domeniilor de intrare (Vmax şi Vmin din
(7.1)) pentru fiecare canal, precum şi o
constantă de timp de filtrare (pentru a aplica
semnalului de intrare un filtru de ordinul
1, care ajută la înlăturarea zgomotelor Fig. 7.6. Instrucţiunile BTW şi BTR
din semnal). Modulul 1771-IFE oferă o
constantă de timp de filtrare de maxim 1s. Pentru valori mai mari ale acestei constante,
programatorul poate construi o rutină de filtrare separată.
Modulul utilizează toate aceste informaţii pentru a furniza citiri direct în unităţi
inginereşti. De exemplu, figura 7.7.a ilustrează o treaptă de program care transmite 15 cuvinte
400
de date începând de la locaţia N 11:10 către modulul din poziţia din stânga a slotului 2 al
sertarului de bază 3 ori de câte ori B 3/5 este închis.
Odată făcută definirea, valorile pot fi citite la intervalele de timp necesare cu
instrucţiunea BTR, ca în figura 7.7.b, în care sunt citite 20 de valori de la modulul aflat în
poziţia din stânga a slotului 5 al sertarului de bază 4 ori de câte ori B 3/72 este 1. Valorile sunt
memorate începând cu locaţia N 12:0.
Fig. 7.8. Tipuri de module de ieşiri discrete: a) cu sursă comună; b) cu sursă separată
Un modul de ieşiri izolate, prezentat în figura 3.8.b are ieşiri şi protecţii individuale şi
poate fi conectat direct la orice circuit din exterior. Însă modulul este mai complicat, un
modul cu 8 ieşiri izolate putând primi pe terminalele sale tensiuni diferite din 8 direcţii.
În figura 7.9 este prezentat un circuit de ieşire pe tranzistor, ieşire care generează
curent (source). Dacă se utilizează tranzistoare npn rezultă un canal de ieşire care absoarbe
curent (sink).
401
Un modul de ieşiri discrete în c.a. utilizează, de obicei, triace. Acestea au avantajul că
se dezactivează la trecerea prin zero a curentului prin sarcină, ceea ce elimină interferenţele
provocate la dezactivarea sarcinilor inductive.
402
Fig. 7.11. Controlul vitezei unui motor prin comenzi ale operatorului
Numărătorul din figura 3.11 păstrează viteză direct în rot/min, dar cu preţul diminuării
rezoluţiei. Pentru gama 0-1350 rot/min, eroarea datorată rezoluţiei este de aproximativ 0,1 ,
faţă de eroarea teoretică datorată rezoluţiei, de 0,025 (vezi tabelul 7.1).
Acest automat programabil poate cuprinde până la 8 sertare de bază în versiunea 5/25.
Sertarul de bază ce conţine modulul UC este automat sertarul de bază 0. Adresele celorlalte
sertare de bază pot fi stabilite prin switch-uri (în gama 1-7). Legătura între sertarul de bază 0
şi celelalte se realizează prin cabluri de comunicaţie seriale.
Există trei moduri diferite de configurare a sertarelor de bază, dintre care va fi discutat
cel mai simplu (şi mai logic). Fiecare sertar de bază conţine 8 sloturi, numerotate 0-7, şi în
fiecare slot pot fi instalate două module. De exemplu, în figura 7.13 slotul 1 conţine un modul
de intrare pe 16 puncte şi un modul de ieşire pe 16 puncte, iar slotul 2 conţine două module de
404
ieşire pe 8 puncte. Adresarea intrărilor are forma generală I: sertar slot / bit ,
unde bit poate avea una sau două cifre. Allen Bradley utilizează adresarea biţilor în octal.
De exemplu, adresa I:27/14 reprezintă intrarea 14 din slotul 7 al sertarului de bază 2. Ieşirile
sunt adresate într-o manieră similară: O: sertar slot / bit , astfel că
O:35/06 este ieşirea 6 din slotul 5 al sertarului de bază 3.
În sistemele cu automate programabile ale firmei Siemens adresele de I/E pe bit sunt
dispuse în grupuri de câte 8 biţi, ce formează un octet. Un semnal este identificat prin numărul
său de bit (0-7) şi numărul său de octet (0-127).Intrările sunt notate prin I octet . bit
iar ieşirile sunt notate prin Q octet . bit [113]. De exemplu, I 9.4 este intrarea cu
adresa de bit 4 din octetul 9 iar Q 63.6 este ieşirea cu adresa de bit 6 din octetul 63.
Ca şi Allen Bradley, Siemens utilizează sloturi pentru instalarea modulelor în sertarul
de bază. Sunt disponibile module pe 16 puncte (2 octeţi) şi pe 32 de puncte (4 octeţi).
Adresarea fixă a sloturilor este descrisă în figura 7.14.a. Fiecărui slot îi sunt atribuiţi în ordine
405
Fig. 7.15. Structura unui sistem GEM-80
Un cuvânt poate fi numai intrare sau numai ieşire. Nu este permisă duplicarea
cuvintelor de adresă. Modulele de I/E sunt disponibile pe 8, 16 şi 32 de biţi, astfel că unui slot
îi pot reveni o jumătate de cuvânt, un cuvânt sau două cuvinte, în funcţie de modulele
utilizate.
Adresele individuale de slot pot fi setate prin comutatoare rotative fixate pe panoul din
spatele fiecărui sertar de bază. Utilizatorul are libertate în alegerea adreselor dar, de obicei, se
preferă o logică secvenţială. Figura 7.16 prezintă o structură tipică pentru un sistem GEM-80.
Automatul programabil Master al firmei ABB (la origine ASEA) este un sistem mai
complex decât cele analizate până acum . Structura sa este descrisă în figura 7.17.a.
406
Modulele de I/E nu sunt identificate prin poziţia lor în sertarul de bază, ci prin adresa
setată pe modul. Deci, adresele de I/E nu reflectă poziţia modulului. Un modul poate fi mutat
în altă poziţie (împreună cu conectorul său) fără a se modifica adresarea sa.
Memoria UC este structurată ca în figura 7.17.b. Valorile I/E sunt conectate la un
procesor al bazei de date, dar spre deosebire de automatele programabile anterioare,
proiectantul poate stabili diverse viteze de lucru pentru diferite module.
Figura 7.17.c arată structura bazei de date pentru un modul de intrare. Există două
nivele de definire, nivelul superior (1) dând detalii asupra modulului (cum ar fi tipul său,
adresa sa şi, eventual, rata de scanare) iar nivelele inferioare dând relaţii despre fiecare canal
al modulului (cum ar fi nivelul semnalului, modul de utilizare al său, constanta de filtrare).
Baza de date conţine detalii despre toate I/E, care pot fi adresate în program fie prin
identificatorul din baza de date ( de exemplu, DI 3.1), fie printr-un nume unic (de exemplu,
Pompă hidraulică 2 pornită prin butonul Start).
Acesta este un exemplu tipic de automat programabil mic, ce conţine procesor, sursă
de alimentare şi conexiuni de I/E, toate înglobate într-o singură unitate . Cea mai mică unitate,
F2-40M, are 24 de intrări şi 16 ieşiri. Cele 24 de intrări sunt notate X400-X427 (în octal) iar
cele 16 ieşiri sunt notate Y430-Y447 (în octal). Numerele (aparent arbitrare) corespund, de
fapt, în mod direct locaţiilor de memorie unde sunt păstrate imaginile intrărilor şi ieşirilor.
Adrese similare sunt utilizate şi în sistemele mai mari ale seriei.
7.7. Memorii interne pe bit
În majoritatea aplicaţiilor un automat programabil este nevoit să memoreze, pe lângă
valorile semnalelor de I/E, şi semnalele interne pentru date cum ar fi “pompa funcţionează”,
“sistem fără defect”, etc. Ar fi foarte costisitor să se aloce ieşiri adevărate pentru aceste
semnale, astfel că toate automatele programabile oferă memorii interne de bit. Acestea se
numesc “relee auxiliare”la Mitsubishi, “fanioane” la Siemens, “spaţiu general de lucru” la
GEM-80 şi “memorii de bit” la Allen Bradley.
Mitsubishi utilizează notaţia M nnn, cu nnn=100-377 în octal. Notaţia la Siemens
este F octet.bit, de exemplu, F 27.06. GEM-80 [110] are o varietate de spaţii generale
de lucru. Cel mai utilizat se numeşte tabela G. O variabilă de memorie din tabela G apare în
program ca G cuvânt.bit (de exemplu, G 52.14). Valorile memorate în tabela G sunt fără
reţinere, adică sunt resetate la (re)pornirea automatului programabil. În schimb, valorile
memorate în tabela R (de exemplu, R 12.03) sunt păstrate şi atunci când automatul
programabil este oprit sau când alimentarea este decuplată.
La PLC-5 memoria de bit este notată prin B 3/n, unde n este numărul locaţiei de
memorie (de exemplu, B 3/192). B înseamnă memorie de bit iar 3 este obligatoriu şi este
utilizat când PLC-5 memorează date în fişiere. Astfel, memoria de bit constituie fişierul 3
(B3), temporizatoarele constituie fişierul 4 (T4) iar numărătoarele fişierul 5 (C5).
Automatul programabil Master al firmei ABB [108] nu necesită neapărat memorii
interne de bit, această funcţie fiind îndeplinită de elementele şi conexiunile din interiorul
bazei sale de date şi de către limbajul de programare.
Cea mai des întâlnită formă de programare a memoriei pe bit este ilustrată în figura
7.18.a. Aici, ieşirea C (de exemplu, “instalaţie pornită”) este activată când este activată
intrarea A (de exemplu, “Start”), şi rămâne activată până când se dezactivează intrarea B
(“Stop”). Funcţionarea este reprezentată în diagrama temporală din figura 7.18.b.
407
Fig. 7.18. a) Circuit de memorare a biţilor; b) diagrama temporală de funcţionare
408
7.20, prioritatea aparţine ultimei trepte de program (dintre cele două), datorită ciclului
program, fapt care dă prioritate, în mod corect, semnalului STOP.
Căderea alimentării sau oprirea automatului programabil cauzează probleme
memoriilor de bit. Unele memorii ar trebui să-şi păstreze conţinutul pe durata nefuncţionării
automatului programabil iar altele ar trebui resetate la repornire. În acest scop, producătorii de
automate programabile permit utilizatorului să stabilească care sunt memoriile de bit care îşi
vor păstra starea pe durata nefuncţionării automatului programabil (numite memorii cu
reţinere) şi care se vor şterge la (re)pornire (numite memorii fără reţinere).
7.8. Temporizatoare
409
Fig. 7.22. Tipuri diferite de temporizatoare utilizate pentru aceeaşi aplicaţie: a) notaţia PLC-5;
b) notaţia GEM-80; c) notaţia SIMATIC S5-115U
410
corespunde unui temporizator cu reţinere. Pentru acestea trebuie utilizat un semnal
suplimentar pentru aducerea lor la 0.
Pentru măsurarea unor timpi mai mari decât cei posibili cu un singur temporizator, se
pot conecta în cascadă mai multe temporizatoare sau se pot utiliza împreună numărătoare şi
temporizatoare.
7.9. Numărătoare
412
instrucţiunea LIMIT, care testează dacă A este între B şi C, iar GEM-80 şi SIMATIC S5
dispun de testul “ ”. În afară de F2 al firmei Mitsubishi, toate celelalte automate programabile
discutate permit realizarea a cel puţin patru operaţii aritmetice (+, -, , :). Pentru a putea
preveni posibilele erori cauzate de aceste operaţii, aceste automate programabile sunt
prevăzute şi cu fanioane de depăşire. Pentru efectuarea operaţiilor aritmetice PLC-5 utilizează
blocurile ADD, SUB, MULT şi DIV. Cele mai puternice automate programabile din seria
PLC-5 (cum ar fi 5-40) au o instrucţiune de calcul pe bloc, care permite evaluarea unei
expresii aritmetice într-o singură instrucţiune. SIMATIC S5-115U evaluează instrucţiunile
aritmetice în format IL (listă de instrucţiuni). În figura 7.26.b a fost ilustrat un exemplu de
transfer, în care se utilizează acumulatorul. De fapt, există două acumulatoare, instrucţiunile
aritmetice utilizând conţinutul ambelor acumulatoare. Automatele programabile Master al
firmei ABB şi GEM-80 al firmei CEGELEC oferă instrucţiuni aritmetice similare.
Unele automate programabile sunt prevăzute cu instrucţiuni speciale pentru procesarea
semnalelor analogice. La GEM-80 cele mai utilizate sunt:
SQRT - extrage radical de ordinul 2 (de exemplu, în cazul traductoarelor diferenţiale);
LINCON - realizează X (A/B)+C cu limitarea rezultatului;
FGEN - generează o funcţie pe baza unor puncte (utilă, de exemplu, la liniarizări);
LIMIT - limitează inferior sau superior valoarea unui semnal;
RAMP - limitează viteza de creştere sau de descreştere a unui semnal;
ANALAG - generează un element de întârziere de ordinul 1.
Majoritatea automatelor programabile care permit utilizarea modulelor de I/E
analogice sunt prevăzute cu funcţia PID. De exemplu, GEM-80 este prevăzut cu funcţia
PIDABS care permite implementarea regulatoarelor PID. Figura 7.27 exemplifică cel mai
simplu mod de utilizare al acestei funcţii.
Pe de altă parte, ieşirile nu sunt modificate în momentul în care sunt calculate. O zonă
de memorie a automatului programabil, corespunzătoare ieşirilor, este modificată de program
şi, apoi, toate ieşirile sunt actualizate simultan la sfârşitul ciclului program curent.
Se poate considera că memoria automatului programabil constă din patru zone, aşa
cum apare în figura 7.28.c. Intrările sunt citite şi memorate într-o zonă imagine a intrărilor la
începutul ciclului program iar ieşirile sunt calculate şi memorate într-o zonă imagine a
ieşirilor, de unde sunt actualizate (transferate spre punctele de ieşire) la sfârşitul fiecărui ciclu
program. Această zonă de date este mai mică decât cum ar fi de aşteptat. Pentru un automat
programabil cu 1000 de I/E discrete, această zonă ar consta din 26 locaţii de memorie de 16
biţi (un cuvânt). O valoare analogică va necesita un cuvânt. Temporizatoarele şi
numărătoarele necesită câte două cuvinte (unul pentru valoarea curentă şi unul pentru
valoarea prestabilită) iar 16 memorii interne pe bit necesită un cuvânt. Majoritatea memoriei
este alocată, de fapt, celei de-a patra zone, zona programului.
Evident, ciclul program limitează viteza semnalelor la care automatul programabil
trebuie să răspundă. În figura 7.29.a, un automat programabil este utilizat pentru numărarea
unei secvenţe de impulsuri rapide, cu frecvenţa mai mică decât cea de execuţie a ciclului
program. Se observă că automatul programabil numără corect.
414
În figura 7.29.b frecvenţa impulsurilor este mai mare decât frecvenţa de execuţie a
ciclului program şi automatul programabil începe să piardă impulsuri. În cazul extrem din
figura 7.29.c, blocuri întregi de impulsuri pot fi total ignorate. De aceea, în general, orice
semnal de intrare citit de automatul programabil trebuie să fie prezent un timp mai mare decât
durata ciclului program. Impulsurile mai scurte pot fi citite corect numai dacă se întâmplă ca
ele să fie prezente la momentele potrivite, lucru care nu poate fi garantat. În general, frecvenţa
impulsurilor trebuie să fie mai mare decât ½ din durata ciclului program, dar în practică există
şi alţi factori de care trebuie să se ţină cont la stabilirea acestei frecvenţe (cum ar fi filtrele
modulelor de intrare).
Mai puţin evident, un ciclu program poate cauza un decalaj aleator între intrări şi
ieşiri. În figura 7.30 este prezentată o intrare care trebuie să comande activarea imediată a
unei ieşiri. În cazul cel mai bun, intrarea apare la începutul ciclului program, ducând la
activarea ieşirii după un ciclu program. În figura 7.30.b intrarea a apărut imediat după citirea
intrărilor, fiind văzută de automatul programabil abia la începutul celui de al doilea ciclu
program. Prin urmare, ieşirea va fi activată cu o întârziere de două cicluri program faţă de
momentu activării intrării.
Fig. 7.30. Efectul ciclului program asupra timpului de răspuns: a) cazul cel mai favorabil; b)
cazul cel mai defavorabil
Fig. 7.31. Decalaje datorate programului: a) logica este împotriva execuţiei programului; b)
logica este conformă cu execuţia programului
415
În primul ciclu program intrarea determină evenimentul A. În următorul ciclu program
evenimentul A determină evenimentul B. După cinci cicluri program de la activarea intrării,
evenimentul D determină activarea ieşirii. Dacă programul este realizat ca în figura 7.31.b,
întreaga secvenţă are loc într-un singur ciclu program.
Efectele duratei ciclului program devin mai complexe în cazul existenţei unor sertare
de bază comandate la distanţă şi conectate prin cablu serial. În general, starea acestor I/E este
citită de către un scaner de I/E, ca în figura 7.32, care, uzual, nu este sincronizat cu ciclul
program. De exemplu, cu o durată a ciclului program de 30 ms şi cu un ciclu de comandă la
distanţă a I/E de 50 ms, cel mai scurt timp de răspuns poate fi de 30 ms, dar cel mai mare
poate fi de 160 ms (cu o I/E pierzând la limită ciclul I/E iar ciclul I/E pierzând la limită ciclul
program).
În cazul programelor pentru controlul unor procese secvenţiale, durata unui ciclu
program este dependentă şi de tehnica de programare utilizată. Există două tehnici posibile de
realizare a programului: programarea orientată după ieşiri şi programarea orientată după stări.
Prima tehnică presupune generarea directă a ieşirii pe baza unei ecuaţii logice în care apar
numai acele semnale de I/E care condiţionează starea ieşirii. Rezultă un program mai scurt
(deci o durată a ciclului program mai mică), dar mai greu de înţeles. A doua tehnică
presupune întocmirea diagramei stărilor, în care sunt puse în evidenţă stările posibile ale
automatului secvenţial şi tranziţiile posibile între aceste stări. Programul defineşte mai întâi
condiţiile de activare a fiecărei stări, condiţiile de activare a fiecărei tranziţii şi abia apoi
condiţiile de activare a ieşirilor. Se obţine un program mai lung, dar mult mai uşor de înţeles.
Pentru reducerea efectului duratei ciclului program, producătorii de automate
programabile oferă mai multe facilităţi. Tipic, există posibilitatea utilizării unor module de I/E
inteligente şi independente (discutate în paragraful 7.4) şi există posibilitatea secţionării
programelor în zone cu timpi de execuţie diferiţi. Pentru a reduce timpul de răspuns la unele
semnale de intrare considerate foarte importante, care necesită acţiuni urgente (cum sunt
semnalele de avarie, de exemplu) există posibilitatea transferului prin întreruperi.
În scopul evitării buclelor infinite automatele programabile au fost prevăzute cu un
ceas de gardă (watchdog timer). Acesta este resetat la începutul fiecărui ciclu program şi
măsoară timpul în care se execută fiecare ciclu program. Valoarea prestabilită a sa este fixată
de către producător, ţine cont de timpii de citire a intrărilor şi de actualizare a ieşirilor şi
corespunde celui mai lung program posibil (dat de dimensiunea memoriei program) care
utilizează instrucţiunile cele mai mari consumatoare de timp. Dacă valoarea măsurată a
duratei ciclului program curent este mai mică decăt valoarea prestabilită a ceasului de gardă,
416
acesta permite execuţia unui nou ciclu program. În caz contrar, execuţia programului este
terminată şi toate ieşirile sunt dezactivate.
Reţeaua în stea din figura 7.35 este de asemenea bazată pe un master conectat punct la
punct cu staţiile individuale. Controlul comunicaţiei este realizat de staţia master.
Comunicaţiile staţie –la –staţie au loc prin intermediul şi cu cooperarea master-ului.
420
În figura 7.36 staţiile au fost conectate într-un inel. Nu există master şi orice staţie
poate comunica cu orice altă staţie, având drepturi egale de acces. Această structură este
denumită legătură egal-la-egal (peer-to-peer). Este necesară utilizarea unor tehnici de evitare
a conflictelor ce apar atunci când două staţii doresc să utilizeze aceeaşi linie simultan.
Reţeaua din figura 7.37 este probabil cel mai utilizat tip de reţea de către automatele
programabile. Există o singură linie cu rezistoare terminale şi, la fel ca reţeaua în inel, este o
legătură peer-to-peer, toate staţiile având acelaşi statut.
O legătură peer-to-peer permite mai multor staţii să utilizeze aceeaşi reţea. Inevitabil,
vor exista la un moment dat două staţii ce vor dori să comunice în acelaşi timp. Dacă nu se iau
măsuri corespunzătoare, va rezulta blocarea reţelei.
Una din tehnici constă în alocarea unor intervale de timp în care fiecare staţie poate să-
şi plaseze mesajele. Aceasta se numeşte multiplexare prin divizarea timpului (time divizion
multiplexing) sau TDM. Chiar dacă previne conflictele, poate fi ineficientă deoarece o staţie
va trebui să aştepte pentru intervalul ei de timp chiar dacă nici o staţie nu are vreun mesaj de
transmis. Într-o oarecare măsură pot fi preîntâmpinate diferenţele între frecvenţele mesajelor
unor staţii diferite prin alocarea mai multor intervale de timp uneia sau mai multor staţii. Într-
o reţea cu cinci staţii, notate A,…, E, dacă staţia A este mai solicitată, poate fi adoptată o
ordine de lucru de genul ABACADAEAB…Aceasta se numeşte TDM statistică.
Intervalul de timp gol din figura 7.38 utilizează un pachet cu circulaţie continuă prin
inel. Când o staţie doreşte să transmită un mesaj, ea aşteaptă ca pachetul gol să ajungă în
dreptul ei, după care poate să-şi plaseze mesajul.
421
O idee similară este transferul simbolului sau tokenului, unde un simbol cu
semnificaţia “Permisiune de transmisie” circulă prin reţea. O staţie poate emite doar atunci
când este în posesia simbolului, care este eliberat doar atunci când se primeşte confirmarea
recepţionării mesajului.
Atât metoda pachetului gol cât şi metoda transferului tokenului necesită o cale de
reinstalare a pachetului gol sau a tokenului la refacerea reţelei după o cădere a ei. Acest lucru
este realizat, de obicei, de o staţie master sau de o staţie monitor, care însă nu are acelaşi rol
ca şi staţiile master din figurile 7.34 şi 7.35.
De obicei, sistemele bazate pe magistrale utilizează o metodă prin care o staţie care
doreşte să emită un mesaj “ascultă” în reţea să vadă dacă aceasta este utilizată de cineva sau
nu. Dacă este, staţia aşteaptă. Dacă reţeaua nu este ocupată, staţia emite mesajul ei, prin
aceasta blocând toate celelalte staţii până când se termină mesajul. Această metodă se
numeşte acces multiplu prin detectarea purtătoarei (carrier sense multiple acces) sau CSMA.
Totuşi, pot apare situaţii neplăcute atunci când două staţii încep simultan să emită
mesaje, producându-se o coliziune a mesajelor. Această situaţie poate fi uşor detectată,
ambele staţii oprindu-se şi aşteptând un timp oarecare înainte de a încerca să retransmită. Este
utilizat un timp aleator de oprire a celor două staţii pentru a nu se repeta coliziunea. Această
tehnică se numeşte acces multiplu prin detectarea purtătoarei cu detecţia coliziunilor (CSMA
with colision detection) sau CSMA/CD.
Există o diferenţă fundamentală între TDM, pachetul gol şi transferul tokenului pe de
o parte, şi CSMA pe de altă parte. La primul grup există o anumită risipă de timp, în schimb
fiecare staţie are garantat accesul într-un interval de timp specificat. La CSMA există puţină
risipă de timp, dar teoretic se poate întâmpla ca o staţie să sufere coliziuni repetate şi chiar să
nu poată deloc să-şi transmită mesajul.
Un aspect important este de a defini cât timp o ieşire comandată de o legătură serială
poate rămâne necontrolată. Să zicem 2 secunde. După comanda “Pornire motor”, automatul
programabil iniţiator trimite prin legătură un tren de impulsuri cu o perioadă ceva mai scurtă,
de exemplu 1,5 secunde, ca în figura 7.40. În automatul programabil B cele două forme
complementare ale acestui semnal acţionează două temporizatoare de tip TOF fixate la 2
secunde. Cu ieşirea “Legătură bună” pot fi acţionate ieşirile comandate de către legătura
serială. Dacă legătura se defectează, unul din cele două temporizatoare se va dezactiva (iar
celălalt va rămâne activat), determinând dezactivarea semnalului “Legătură bună” şi a tuturor
ieşirilor comandate de legătura serială, acestea trecând într-o stare sigură.
Zgomotul este sursa principală de probleme şi, de obicei, se manifestă printr-o creştere
a timpului de răspuns introdus de reţea.
423
Fig. 7.40. O soluţie de verificare a legăturii seriale
Primele măsuri împotriva zgomotelor sunt separarea de cablurile de alimentare prin
utilizarea unor trasee separate sau a unor tuburi de protecţie. Ecranele cablurilor trebuie să fie
neîntrerupte şi trebuie pământate toate într-un singur loc. De asemenea, ecranele cablurilor nu
trebuie să atingă părţile metalice ale dulapurilor.
7.15. Concluzii
425