Sunteți pe pagina 1din 59

Universitatea Politehnica Bucureşti

Facultatea de Automatică şi Calculatoare

Departamentul de Automatică şi Ingineria Sistemelor

LUCRARE DE LICENŢĂ
Sistem de comandă şi control pentru platforma
mecatronică de recuperare a pacienţilor cu afecţiuni
neurologice centrale

Absolvent
Eremia Andrei-Marius
Coordonator
Prof. Dr. Ing. Radu Dobrescu
Cuprins
1. Introducere.......................................................................................................................................... 3
2. Sistemul mecatronic. ........................................................................................................................... 5
3. Noţiuni teoretice sisteme de comandă şi control utilizate în cadrul proiectului ................................ 8
3.1 Sisteme SCADA .............................................................................................................................. 8
3.2 Automate programabile .............................................................................................................. 10
3.3 Senzori și traductoare ................................................................................................................. 11
4. Noţiuni teoretice reţele şi protocoale de comunicaţie utilizate în cadrul proiectului. ..................... 13
4.1 Rețele industriale de comunicație .............................................................................................. 13
4.2 Protocoale de comunicație ......................................................................................................... 14
4.2.1 Modbus RTU ......................................................................................................................... 14
4.2.2 Modbus TCP ......................................................................................................................... 17
5. Arhitectura sistemului mecatronic. Elemente componente, funcțiile și interconectarea acestora . 19
5.1 Arhitectura sistemului mecatronic .............................................................................................. 19
5.2. Traductoare utilizate in componenta sistemului mecatronic .................................................... 20
5.3 Convertizoare de frecvență utilizate în cadrul sistemului mecatronic ....................................... 22
5.4 Automatul programabil ............................................................................................................... 24
5.5 Interfața om - masină .................................................................................................................. 28
6. Prezentarea aplicației. ....................................................................................................................... 30
6.1 Prezentarea aplicației de la nivelul automatului programabil .................................................... 30
6.1.1. Organizarea aplicației de pe automatul programabil ......................................................... 30
6.1.2. Descrierea unităţii de organizare a programului axa_x.................................................. 32
6.1.3. Descrierea unității de organizare a programului axa_y.................................................. 37
6.1.4. Descrierea unității de organizare a programului axa_z ...................................................... 37
6.1.5. Descrierea unităţii de organizare a programului calcul_unghi ........................................... 39
6.1.6. Descrierea unității de organizare a programului PLC_PRG ................................................. 41
6.1.7. Descrierea unității de organizare a programului rotație..................................................... 42
6.1.8. Descrierea unităţii de organizare a programului rotatie2................................................... 44
6.1.9. Funcţiile bloc pentru comunicaţia pe magistrala serială RS-485 ........................................ 47
6.2. Prezentarea interfeței cu utilizatorul ......................................................................................... 47
7. Concluzii ............................................................................................................................................ 58
8. Bibliografie ........................................................................................................................................ 59
1. Introducere
Abilitatea de a se deplasa, utilizându-şi propriile membre, este unul dintre cei
mai importanţi factori care influenţează calitatea vieţii unei persoane. Calitatea vieţii
poate fi evaluată prin prisma nivelului de realizare a activităţilor de zi cu zi, a nivelului
vieţii sociale şi a nivelului de participare la activităţi economice şi de dezvoltare.

Dizabilităţile locomotorii afectează profund viaţa normală a persoanei. Aceste


dizabilităţi pot apărea din cauze medicale, neurologice sau în urma unor traume.
Dintre cauzele neurologice amintim: accident vascular cerebral, afecţiuni
degenerative şi inflamatorii ale ţesuturilor sistemului nervos central, vătămări ale
sistemului nervos central sau a sistemului nervos periferic (coloana vertebrală, nervi
periferici etc.). Insuficientele locomotorii sunt printre principalele consecinţe ale
accidentelor vasculare. În fiecare an, doar în Statele Unite, în jur de 700000 de
oameni sunt victimele accidentelor vasculare. Peste două treimi din supravieţuitori se
confruntă cu deficienţe locomotorii; o situaţie similară există şi în alte ţări. Costurile
materiale şi sociale investite în recuperare sunt foarte mari şi de cele mai multe ori
viaţa pacienţilor se schimbă dramatic [2].

Abordarea tradiţională în cazul recuperării pacienţilor cu probleme


locomotorii presupune existenţa mai multor terapeuţi, care ajută pacientul să-şi ducă
la îndeplinire procedurile de recuperare. De asemenea, această abordare presupune
şi efort susţinut şi intens din partea pacientului.

Recuperarea cu ajutorul benzii de alergat a apărut în anii 80. De atunci şi


până în zilele noastre au fost dezvoltate câteva dispozitive medicale pentru
exersarea mersului. Suspendarea pacientului deasupra unei benzi de alergat a
devenit astfel o terapie standard. Această metodă de recuperare prezintă două
restricţii importante. Prima se referă la necesitatea a cel puţin doi terapeuţi, care să
susţină fizic pacientul în timpul procedurilor. Al doilea aspect este înlocuirea mişcării
naturale a corpului pe mai multe direcţii cu o mişcare unidirecţională, artificială, în
direcţia de mişcare a benzii de alergat [2].

Rezultatele negative ale acestor două restricţii sunt: mişcarea uniformă şi


unidirecţională a membrelor inferioare iar corpul pacientului este forţat să execute
repetitiv aceeaşi mişcare nefirească. Astfel, după ce pacientul cu probleme
locomotorii a trecut prin dificultăţile metodelor terapeutice, acesta va întâmpina alte
dificultăţi în momentul în care va trebui să revină la activităţile obişnuite de zi cu zi.
Cercetătorii consideră că tehnologiile de recuperare bazate pe roboţi sunt de viitor şi
sunt foarte importante în recuperarea pacienţilor cu afecţiuni locomotorii. Roboţii fac
parte din categoria sistemelor complexe şi este necesară cunoaşterea modelelor
matematice ale traiectoriilor în funcţie de comenzi pentru implementarea sistemelor
de comandă şi control specifice [1]. În cazul de faţă, proiectarea algoritmilor de
comandă şi control vom aplica procedura încercare şi eroare.

Există şi alte sisteme mecatronice pentru recuperarea pacienţilor cu


probleme neurologice centrale atât produse de firme de aparatură medicală cât şi
rezultate ale proiectelor de cercetare desfăşurate la nivel european şi internaţional.
Un exemplu în acest sens este SIMESIM - Sistem mecatronic de simulare a
mişcărilor specifice mersului, în vederea recuperării persoanelor cu handicap
locomotor [7].

3
Proiectul de faţă îşi propune dezvoltarea unei aplicaţii software de comandă
şi control pentru o platformă mecatronică de recuperare a pacienţilor cu probleme
neurologice centrale. Se doreşte realizarea unei platforme complexe, construită din
elemente sau sisteme disponibile pe piaţă la momentul actual, cu un cost minim, şi
care să aibă performanţe asemănătoare sau mai bune decât ale sistemelor existente
pe piaţă la momentul actual.

4
2. Sistemul mecatronic.
Schema de principiu din figura 2.1 oferă o imagine de ansamblu atât asupra
elementelor componente ale sistemului cât şi asupra poziţiei medicului şi a
pacientului în cadrul acestui sistem. Ansamblul este compus din trei componente de
bază: structura electromecanică, structura de automatizare de câmp şi structura de
comandă şi control computerizat. Se observă că acţiunea asupra pacientului se
realizează pe mai multe planuri, într-un spaţiu tridimensional. Un pod rulant permite
şi realizează deplasarea pacientului în planul X-Y. Deplasarea pe cea de-a treia
dimensiune (deplasarea pe verticală) pe direcţia coordonatei Z se realizează prin
suspenarea pacientului într-un ham. Acesta are rolul de a prelua o parte din sarcina
care acţionează asupra membrelor inferioare ale pacientului. La aceste deplasări se
mai adaugă posibilitatea rotirii cu un unghi de până la 360 o în plan orizontal şi
suspendarea alternativă a umerilor pacientului în concordanţă cu frecvenţa paşilor
pacientului. Toate aceste deplasări în spaţiu se realizează la diferite valori ale
parametrilor viteză liniară şi unghiulară prestabiliţi de către medicul specialist.

Limitări fizice ale sistemului:


 Dimensiune axa X: 3 m, dar limitările constructive permit o mişcare de 2 m
pe direcţia axei X;

 Dimensiune axa Y: 5 m, dar limitările constructive permit o mişcare de 4 m


pe direcţia axei Y;

 Masa maximă pacient: 200kg.

Sistemul este conceput să permită două regimuri de lucru:

 Un regim „manual”: se numeşte principial manual deoarece


medicul/terapeutul introduce manual parametrii de mişcare necesari în
recuperarea pacientului. În esenţă este o funcţionare automată în limitele
unor comenzi;

 Un regim de mentenanţă care să permită realizarea de calibrări ale senzorilor


sau repararea defecţiunilor mecanice apărute.

Pe schema de principiu din figura 2.1 se pot observa principalele elemente


ale sistemului şi anume: structura cadrului dispozitivului, posibilitatea de mişcare a
elementelor dispozitivului, elemente de câmp (senzori, traductoare, echipamente de
măsurare şi comunicaţie) şi echipamente de calcul programabile (automat
programabil). De asemenea sunt evidenţiate componentele acţionărilor electrice
(convertizoare de frecvenţă şi motoreductoare) şi modul în care acestea comunică cu
echipamentele de automatizare.

Se impune realizarea unui sistem de comandă şi control care să aibă


următoarele caracteristici:

 Să „cunoască” protocolul de comunicaţie Modbus RTU;

 Să permită realizarea de interfeţe grafice rapid şi intuitiv;

5
 Să permită rularea programelor scrise de utilizator într-un limbaj de
programare de nivel înalt.

Se poate observa că aceste particularităţi pot fi oferite de un mediul de


dezvoltare pentru aplicaţii SCADA.

6
Fig 2.1. Schema de principiu a sistemului mecatronic

7
3. Noţiuni teoretice sisteme de comandă şi control utilizate în
cadrul proiectului
3.1 Sisteme SCADA

Sistemele SCADA (Supervisory Control And Data Aquisition) reprezintă


sisteme informatice pentru conducerea proceselor şi preluarea şi analiză în timp real
a datelor.

Sistemele SCADA au apărut începând cu anii 1960, cunoscând până în


prezent o evoluţie continuă. Controlul computerizat al proceselor şi al operaţiilor de
producţie a început o dată cu apariţia pe piaţă a unor calculatoare produse de Digital
Equipment Corporation (PDP-8 şi PDP-11). În paralel, automatele programabile au
cunoscut şi ele o evoluţie ascendentă în ceea ce priveşte funcţionalitatea oferită.
Minicalculatoarele au fost programate să emuleze funcţionarea şi modul de
programare al automatelor programabile. S-a dezvoltat o concurenţă între aceste
două abordări, concurenţă ce continuă chiar şi în zilele noastre [5].

Iniţial, sistemele de control erau utilizate pentru operarea unei singure


instalaţii. Dispozitivele de control asociate (fie minicalculator, fie automat
programabil) erau amplasate lângă instalaţie şi nu erau conectate la un alt sistem
extern, situat eventual la un nivel de conducere ierarhic superior.

Au apărut apoi sistemele distribuite de conducere, care puteau interconecta


instalaţii situate una lângă alta. De obicei aceste sisteme necesită şi utilizează o
reţea locală de mare viteză. Ca o necesitate pentru funcţionarea acestor sisteme,
integratorii de sisteme şi-au dezvoltat protocoale de comunicaţie proprietare.
Mentenanţa şi chiar dezvoltarea ulterioară a sistemelor de automatizare a devenit
dificilă datorită existenţei protocoalelor proprietare. A devenit necesară apariţia de
sisteme de conducere şi preluare a datelor care să poată lucra cu toate aceste
protocoale proprietare. Pe lângă acest avantaj, sistemele SCADA mai oferă
posibilitatea de a interconecta echipamente/instalaţii situate la mare distanţă.

Un sistem SCADA prezintă următoarea componenţă [3]:

 Server de control. Această componentă mai este denumită şi supervizor şi


conţine software-ul de control. Software-ul este conceput să comunice cu
dispozitivele situate la un nivel ierarhic inferior printr-o magistrală de
comunicaţie.

 Server SCADA sau MTU (Master Terminal Unit). Sistemele SCADA


utilizează ca model de comunicaţie modelul master/slave. De obicei există un
singur dispozitiv master care face cereri şi dă comenzi către mai multe
dispozitive slave. Componenta MTU este considerată ca fiind master în
modelul de comunicaţie descris.

 Remote Terminal Unit (RTU) sau remote telemetry unit. Este un dispozitiv de
achiziţie de date, conceput să lucreze cu sisteme SCADA. Dispozitivele RTU
sunt considerate dispozitive de câmp şi pot fi echipate cu interfeţe wireless
pentru cazurile în care comunicaţiile bazate pe cablu nu sunt disponibile.
Câteodată, automatele programabile pot fi configurate să lucreze ca
dispozive RTU.

8
 Interfaţa om-maşină (HMI). Această componentă include software-ul şi
hardware-ul care îi permite operatorului uman să monitorizeze starea unui
proces condus, să schimbe parametrii de conducere a procesului sau să
suprascrie manual anumiţi parametrii utilizaţi în conducerea automată în caz
de apariţie a unei situaţii de urgenţă. Interfaţa om-maşină poate de
asemenea să aibă funcţia de engineering şi să permită configurarea
referinţelor sau algoritmilor şi parametrilor de control din automatul
programabil. De asemenea, interfaţa om maşină, afişează informaţii despre
starea procesului în timp real, informaţii despre evoluţia procesului (istoricul
parametrilor), rapoarte detaliate şi alte informaţii necesare operatorilor,
administratorilor, directorilor, partenerilor de afaceri şi altor utilizatori
autorizaţi. Locaţia şi tipul platformei pot diferi substanţial. De exemplu o
interfaţă om maşină poate fi reprezentată de un dispozitiv dedicat situat în
camera de comandă, poate fi un laptop conectat la o reţea LAN wireless sau
o pagină într-un browser pe orice sistem conectat la internet.

 Istoricul parametrilor. Acesta este stocat într-o bază de date centralizată care
are rolul de a înregistra evoluţia parametrilor într-un sistem de conducere.
Informaţiile stocate în baza de date pot fi accesate pentru diverse rapoarte şi
statistici care să ajute planificarea proceselor.

 Server de intrare/ieşire. Această componentă este responsabilă de


colectarea, stocarea şi oferirea accesului la informaţie către celalte
componente ale unui sistem SCADA. Acest server poate fi găzduit pe acelaşi
calculator care găzduieşte server-ul de control sau poate fi o platformă
separată atât hardware cât şi software. Server-ele de intrare ieşire mai pot fi
folosite şi pentru interfaţarea elementelor de control care sunt produse de
alte firme şi care utilizează alte protocoale de comunicaţie.

 Mijloace de comunicare. Acestea au rolul de a interconecta elementele


componente ale unui sistem SCADA. Comunicarea poate avea loc prin reţele
dedicate sau prin Internet, prin conexiuni cablate sau fără fir.

Elementele componente descrise sunt elemente cheie ale unui sistem


SCADA. Un astfel de sistem poate conţine şi alte elemente care nu au fost amintite
aici sau poate integra în cadrul aceluiaşi dispozitiv mai multe funcţionalităţi descrise
ca separate mai sus.

Indiferent de aplicaţia unde este folosit, un sistem SCADA are următoarele


avantaje:

 Robusteţe şi fiabilitate. Datorită apariţiei de defecte la echipamentele de


monitorizare şi control pot apărea timpi morţi în procesul de producţie.
Aceste pauze pot fi extrem de costisitoare şi pot încetinii ritmul producţiei.
Sistemele SCADA şi-au dovedit fiabilitatea de-a lungul a zeci de ani de
funcţionare.

 Deschidere şi integrabilitate. De-a lungul anilor, dezvoltatorii de sisteme


SCADA au găsit metode de integrare chiar şi a sistemelor mai puţin
cunoscute. Sistemele SCADA din zilele noastre pot utiliza majoritatea
protocoalelor de comunicaţie atât proprietare cât şi liber distribuite.

9
 Flexibilitate. Sistemele SCADA sunt scalabile şi upgradabile. Poţi porni de la
un sistem mic şi să îl dezvolţi pe parcurs sau poţi implementa un sistem
complet de la început.

3.2 Automate programabile


Automatele programabile (PLC – Programable Logic Controller) sunt sisteme
solide, fără componente mecanice in miscare, cu arhitectură simplificată dar
asemănătoare calculatoarelor. Acestea pot fi utilizate în sisteme SCADA sau sisteme
distribuite de conducere ca şi componente de control într-un sistem ierarhizat de
conducere. În cazul sistemelor SCADA, automatele programabile pot fi configurate
pentru a oferi funcţionalitatea asemănătoare RTU-urilor. Când sunt utilizate în
sisteme de control distribuit, PLC-urile au rolul de controller-e locale. Automatele
programabile sunt de asemenea utilizate ca şi componente primare în sisteme de
control mici şi microautomatizari [5].

Automatele programabile conţin o parte de memorie ce poate fi programată


de către utilizator pentru stocarea instrucţiunilor pentru manipularea porturilor de
intrare/ieşire, logică, cronometrare, numărare, controller PID, comunicaţie, calcule
matematice şi procesare de date şi fişiere.

Iniţial automatele programabile au fost proiectate şi realizate să emuleze


funcţionarea schemelor de automatizare cu relee. Programarea era făcută în
diagrame ladder. Logica ladder era utilizată cu preponderenţă de proiectanţii de
sisteme de automatizare pentru a descrie schemele de comandă cu relee.

De-a lungul timpului au fost adăugate noi funcţionalităţi automatelor


programabile. Au apărut şi numeroase metode de programare, integrarea
automatelor programabile fiind posibilă în orice aplicaţie de control şi monitorizare.
Conform standardului IEC-61131 (prima versiune apărând în anul 1993) modalităţile
de programare sunt [14]:

 Diagrame ladder (LD – Ladder diagram). Este o modalitate grafică, inspirată


din proiectarea schemelor de comandă cu relee.

 Diagrame de funcţii bloc (FBD – Function Block Diagram). Este o modalitate


grafică care arată funcţia (legătura) între variabilele de intrare şi cele de
ieşire. Variabilele sunt legate de funcţiile bloc cu ajutorul liniilor de
conecțiune.

 Text structurat (ST – Structured Text). Este o modalitate textuală de


programare. Instrucţiunile sunt scrise într-un limbaj de nivel înalt asemănător
limbajului de programare Pascal.

 Listă de instrucţiuni (ÎL – Instruction list). Instrucţiunile sunt sunt scrise într-un
limbaj de nivel scăzut asemănător limbajului de asamblare.

 Diagramă secvenţială de funcţii (SFC – Sequential Function Chart). Conţine


elemente pentru organizarea secvenţială şi paralelă a algoritmului de
conducere.

10
 Diagramă continuă de funcţii (CFC – Continuous Function Chart). Modalitate
de programare asemănătoare cu diagrame de funcţii bloc, dar care oferă
posibilitatea de aranjare a funcţiilor bloc aşa cum doreşte programatorul.

Automatele programabile care se găsesc pe piaţă în zilele noastre au


avantajul de a fi modulare. Astfel, integratorul de sisteme îşi poate configura
automatul programabil în funcţie de necesităţi. Mai mult, în afară de interfeţele
clasice de intrare/ieşire pentru semnale analogice sau digitale, integratorii de sisteme
au la dispoziţie interfeţe de comunicaţie. Cu ajutorul acestora se poate realiza
comunicaţia cu alte automate programabile sau cu calculatoare industriale din
diversele sisteme ierarhizate de conducere.

Interfeţele de comunicaţie oferă atât posibilităţi de conectare cu fir cât şi fără


fir. De asemenea, indiferent de modalitatea fizică de conectare, interfeţele de
comunicaţie oferă suport pentru protocoale atât deschise cât şi proprietare [6].

3.3 Senzori și traductoare


Senzorul este un element sensibil, capabil să detecteze şi să cuantifice
modificări ale mediului înconjurător, asemenea simţurilor umane [15]. De obicei,
ieşirile senzorilor se află într-o gamă de tensiune sau curent predispusă la zgomote
şi perturbaţii. Acest lucru face imposibilă transmiterea informaţiei la distanţă de la
senzori. De aceea senzorii se folosesc în asociere cu circuite de adaptare, care au
ieşirea într-un semnal unificat în tensiune sau curent, mai puţin predispus
perturbaţiilor şi zgomotelor induse în conductori.

Traductorul este dispozitivul compus din senzor şi circuitul specific de


adaptare. Pe lângă transformarea semnalului de ieşire într-un semnal unificat,
adaptorul mai are şi rolul de a compensa caracteristică de intrare-iesire a senzorului.
La modul general, traductorul este un dispozitiv care transformă o formă de energie,
într-o altă formă de energie [15].

Traductoarele pot avea ieşire analogică sau digitală.

Ieşirea analogică poate fi:

 În tensiune în gamele de măsură uzuale: 0-5V, 0-10V, -10-10V. Acest tip de


ieşire este predispus la perturbaţii datorită câmpurilor electromagnetice
existente în locaţiile prin care trec conductoarele

 În curent: 4-20mA, 0-20mA. Acest tip de ieşire este rezistent la perturbaţii.

Traductoarele cu ieşire în curent se pot alimenta separat sau pot fi alimentate


din bucla de curent.

Există astfel 3 categorii de traductoare, în funcţie de numărul de conductori


necesari pentru funcţionare:

 Două fire. În acest caz, trauctorul se alimentează din bucla de curent.

11
 Trei fire. În acest caz există un conductor comun de masă pentru alimentare
şi semnal. Pe lângă acesta mai sunt necesare două conductoare: unul pentru
alimentare şi unul pentru semnal

 Patru fire. În acest caz circuitele de alimentare şi semnal sunt complet


separate. Această modalitate de conectare se foloseşte pentru traductoarele
care necesită mai multă energie pentru a funcţiona sau pur şi simplu este
necesară separarea galvanică a celor două circuite.

Senzorii şi traductoarele oferă informaţie despre parametrii măsurabili dintr-


un proces .

12
4. Noţiuni teoretice reţele şi protocoale de comunicaţie utilizate în
cadrul proiectului.
4.1 Rețele industriale de comunicație

Reţelele industriale de comunicaţie au apărut în jurul anilor 1960, o dată cu


dezvoltarea calculatoarelor industriale şi a legăturilor între acestea. Tot în această
perioadă au fost dezvoltate şi primele reţele proprietare de comunicaţie digitală.

Utilizarea reţelelor locale pentru a interconecta calculatoare şi dispozitive de


automatizare cu sisteme industriale de automatizare a devenit populară începând cu
anii 1980. Capacitatea ridicată şi costul scăzut oferite de reţelele locale (LAN – Local
Area Network) a făcut conducerea distribuită a proceselor să devină o realitate.
Sistemele industriale de automatizare sunt de obicei implementate ca arhitectura
distribuită deschisă, utilizând reţele de comunicaţie digitală.

A devenit un lucru obişnuit în zilele de astăzi ca utilizatorii conectaţi la o reţea


locală să comunice cu echipamente de automatizare aflate într-o altă reţea locală.
Aceste reţele sunt legate prin gateway-uri care comunică prin intermediul reţelelor ce
acoperă suprafeţe extinse [5].

O dată cu creşterea dimensiunii sistemelor de automatizare deci implicit a


creşterii numărului de dispozitive de automatizare pentru controlul unui proces, a
devenit foarte importantă apariţia de standarde care să asigure posibilitatea de
interconectare universală a echipamentelor de automatizare şi a calculatoarelor de
proces. Standadele OSI (Open System Interconnection) permit ca echipamentele de
automatizare să comunice indiferent de producător.

Reţelele industriale de comunicaţie prezintă avantajul comunicaţiei seriale.


Pe un număr mic de fire pot fi transmise informaţii la distanţe mari. Deoarece reţelele
industriale lucrează cu mai multe dispozitive cablate la aceeaşi linie de comunicaţie,
se pot adăuga foarte uşor noi echipamente.

Pentru ca toate acestea să funcţioneze corespunzător, reţeaua de


comunicaţie trebuie să respecte un set definit de reguli. Acest set de reguli poartă
denumirea de protocol de comunicaţie. Acesta determina cum este transportat fluxul
de date între dispozitivele conectate. Cu protocoale de comunicaţie îmbunătăţite,
timpul de transfer poate fi redus, protecţia datelor poate fi asigurată şi chiar se poate
asigura transferul deterministic, predictibil, în timp real pentru aplicaţiile care necesită
acest lucru.

Pentru comunicaţia la nivelul ierarhic inferior au fost dezvoltate reţele de


câmp (fieldbus) cu protocoale specifice pentru îndeplinirea criteriilor de cost redus,
timp de răspuns redus.

Reţelele industriale pot utiliza diferite medii de comunicaţie în funcţie de


viteza şi distanţa necesară pentru transportul datelor [5]:

 Cablu coaxial: utilizat pentru transmiterea cu viteză mare pe distanţă de


câţiva kilometrii. Este utilizat deoarece are avantajul unui preţ redus, instalare
şi mentenanţă uşoară.
13
 Cablu cu perechi răsucite. Poate transmite date cu vieza de ordinul Mbit/s pe
distanţe de 1km. Are dezavantajul scăderii distanţei maxime a magistralei pe
măsură ce se doreşte creşterea vitezei de comunicaţie. De asemenea este
succeptibil la interferenţe electromagnetice.

 Fibra optică permite viteze de ordinul Gbit/s şi nu este afectată de


interferenţe electromagnetice. Echipamentele de interfaţare sunt scumpe şi
este dificilă instalarea.

 Transmisia fără fir. Se utilizează de obicei în situaţiile în care se fac


măsurători temporare sau mobile.

Există de asemenea mai multe interfeţe fizice pentru reţele industriale:

 Interfaţa serială RS-232. Permite conexiunea punct la punct a


echipamentelor. Nu oferă viteză foarte mare de transmitere a datelor.

 Interfaţa serială RS-485. Permite conexiunea multipunct a echipamentelor.

 Interfaţa Ethernet. Oferă viteză mare de transport dar pe distanţe mici.

Reţelele industriale oferă avantaje majore faţă de variantele clasice de


conectare:

 Cablare redusă. De aici rezultă un cost mic de instalare şi mentenanţă. De


asemenea este redus şi timpul necesar proiectării sistemului.

 Interfaţarea cu dispozitive inteligente. Acest lucru conduce la funcţionalitate


crescută cum ar fi diagnosticarea avansată online.

 Adăugarea de dispozitive noi se face foarte uşor atât timp cât nu s-a atins
dimensiunea maximă a magistralei.

 Posibilitatea de realizare a unei arhitecturi de control distribuit ce poate


creşte performanţa globală a sistemului de reglare.

4.2 Protocoale de comunicație


Protocoalele de comunicaţie sunt strâns legate de interfeţele fizice de
comunicaţie, fiind proiectate pentru a oferi o transmitere rapidă şi corectă a datelor.
Unele dintre mai utilizate protocoale de comunicaţie în automatizări sunt Modbus
RTU şi Modbus TCP.

4.2.1 Modbus RTU

Modbus RTU este un protocol deschis, serial (interfeţele fizice utilizate pot fi
RS-232 sau RS-485), derivat din arhitectura master/slave. Protocolul Modbus RTU
este frecvent utilizat în sisteme de management al clădirilor şi sisteme de
automatizare. Această utilizare frecventă este datorată simplităţii în utilizare. În

14
funcţionarea comunicaţiei, dispozitivul master face o cerere către dispozitivul slave.
Dispozitivul slave analizează cererea şi răspunde dispozitivului master [6].

Pentru a asigura corectitudinea datelor, protocolul Modbus RTU utilizează


codul detector şi corector de erori CRC 16. Regiştrii de dimensiune de 16 biţi pot fi
utilizaţi pentru a împacheta numere în virgulă mobilă, text ASCII sau alte tipuri de
date care nu sunt standard definite.

Modbus RTU este considerat un protocol situat la nivelul 7 (nivelul aplicaţie)


al modelului OSI. Protocolul a fost definit ca fiind un protocol de tip cerere/răspuns şi
oferă servicii specificate prin coduri de funcţii. Codurile funcţiilor Modbus fac parte din
PDU (Protocol Data Unit).

Mesajele cu ajutorul cărora se realizează transmisia de date într-o reţea de


comunicaţie se numesc frame-uri. Structura unui frame de Modbus este următoarea:

Adresa slave Codul funcției Date CRC

8 biti 8 biti n x 8 biti 16 biti

Tabelul 4.1 Frame-ul Modbus RTU

Marcarea terminării unui mesaj se face cu ajutorul unei pauze de minim 3,5
caractere. Transmiterea unui nou mesaj poate fi făcută după această pauză. Mesajul
trebuie transmis în flux continuu. Dacă există un interval liber de 1,5 caractere înainte
de terminarea mesajului, dispozitivul care primeşte frame-ul nu îl va lua în
considerare. Următorul bit după această pauză se va considera parte a următorului
mesaj, mai exact parte a câmpului adresă. În mod similar, dacă un nou mesaj începe
să fie transmis mai devreme de 3,5 caractere, va fi considerat parte a mesajului
anterior [11].

Codurile pentru cele mai utilizate funcţii ale protocolului Modbus sunt:

 Read discrete inputs – 2

 Read coils – 1

 Write single coil – 5

 Write multiple coils – 15

 Read input registers – 4

 Read multiple holding registers – 3

 Write single holding register – 6

 Write multiple holding regsters – 16

Memoria utilizată pentru magistrala Modbus se mapează astfel:

15
Tip de date Tip de date Adresa de start
Modbus

Modbus coils Bit – valoare binara 00001

Discrete inputs Intrare digitala 10001

Input register Intrare analogica 30001

Holding register Valoare analogica, variabila 40001

Tabelul 4.2. Maparea regiștrilor Modbus

Adresele standard de pe o magistrală Modbus RTU sunt în gama 1-254.


Adresa 0 este rezervată ca fiind adresa de broadcast. În principiu, adresa 0 este
foarte rar utilizată, deoarece nu există o confirmare clară că mesajul a fost primit de
toate dispozitivele slave de pe magistrală. Referitor la limitările impuse de interfeţele
fizice de comunicaţie: pe RS-232 poate fi conectat un singur nod iar pe RS-485 pot fi
conectate un număr de până la 32 de noduri, deşi există dispozitive care permit
creşterea acestui număr.

Fizic, pentru a transmite date pe magistrală, acestea sunt încapsulate în


următorul frame:

1 bit de start 5-9 biti de date 0-1 bit de paritate 1-2 biti de stop

Tabelul 4.3. Dimensiunea elementelor mesajului trimis pe magistrala serială

Comunicatia seriala este o comunicatie asincrona (nu exista linie fizica


pentru a sincroniza ceasurile sistemelor care comunica) si de aceea este nevoie de
biti de start si de stop pentru a marca inceputul si sfarsitul unui frame. Din aceasta
cauza, trebuie ca dispozitivele care comunica pe o magistrala seriala sa fie
configurate in acelasi mod in ceea ce priveste viteza de transmisie (baud rate). Se
pot utiliza unul sau doi biti pentru stop, insa uzual se utilizeaza unul.

Câmpul date este de asemenea configurabil. În mod uzual, primul bit din
câmpul de date care este transmis este bitul mai puţin semnificativ.

Câmpul de paritate nu este folosit în mod uzual, deşi poate ajuta în medii cu
interferenţe electromagnetice puternice. Paritatea poate fi even sau odd. Dacă este
setată ca fiind even (pară), se numără biţi de 1 din câmpul de date. Dacă aceştia
sunt impari, se setează câmpul paritate ca fiind 1, astfel să fie un număr de apariţii
pare de 1 în câmpul date şi paritate. Altfel câmpul se setează la valoarea 0. Dacă
paritatea este setată ca fiind odd (impară), se numără biţii de 1 din câmpul de date.
Dacă numărul acestora este par, se setează câmpul paritate la valoarea 1, altfel se
setează la valoarea 0. Acesta este un mecanism bun de detecţie a erorilor atât timp
cât este alterată valoarea unui singur bit. Dacă la destinaţie se constată că nu
corespund câmpurile de date şi paritate, transmisia frame-ului trebuie reluată [6].

În mod uzual, pentru o magistrală serială cu protocol Modbus RTU, setările


implicite sunt 9600 8N1 ceea ce înseamnă:

 Baudrate: 9600

16
 Câmpul de date are dimensiunea: 8biti

 Paritate: fără paritate

 Număr biţi de stop: 1

4.2.2 Modbus TCP

Modbus TCP este un protocol care transportă mesaje caracteristice,


asemănătoare mesajelor Modbus RTU, dar cu ajutorul reţelelor Ethernet şi a stivei
de protocoale TCP/IP.

Spre deosebire de Modbus RTU, un frame de Modbus TCP nu conţine


câmpurile adresă slave şi CRC. Adresarea în acest caz se face prin IP la nivelul
stivei de protocoale TCP/IP. De asemenea, corectitudinea informaţiei va fi garantată
la nivelul de transport al modelului OSI prin protocolul TCP.

Apar în schimb câteva câmpuri noi [6]:

 Identificator de tranzacţie (Transaction Identifier). Acest câmp de dimensiune


2 octeţi este completat de către slave pentru a identifica fiecare cerere.
Datorită modului de funcţionare al stivei de protocoale TCP/IP peste o
interfaţă Ethernet este posibil ca răspunsurile să nu ajungă în aceeaşi ordine
în care au fost formulate cererile.

 Identificator de protocol (Protocol Identifier). Acest câmp de dimensiune 2


octeţi este setat de slave şi are tot timpul valoarea 0.

 Dimensiunea mesajului (Length). Acest câmp de dimensiune 2 octeţi


identifică numărul de octeţi rămaşi din mesaj. În cazul Modbus RTU,
terminarea mesajului curent se realiza printr-o pauză de 3,5 caractere. În
cazul Modbus TCP, cine primeşte mesajul ştie exact care trebuie să fie
dimensiunea acestuia.

 Identificator unitate (Unit Identifier). Acest câmp are dimensiunea un octet şi


se utilizează în cazul în care mai mulţi clienţi se află în spatele unui gateway
şi utilizează aceeaşi adresă IP.

Structura unui mesaj Modbus TCP este:

Identificator Identificator Dimensiunea Identificator Cod Date


tranzacție protocol mesajului unitate funcție

2 octeti 2 octeti 2 octeti 1 octet 1 octet n x 1


octet

Tabelul 4.4. Structura frame-ului Modbus TCP

Acest nou antet de dimensiune 7 octeţi poartă denumirea de Modbus


Application Header (MBAP header). La fel ca în cazul protocolului Modbus RTU,
acest mod de împachetare a datelor corespunde tot nivelului aplicaţie (nivelul 7) în
modelul Open System Interconnection.
17
Mai departe, pentru a fi transmis prin interfaţa Ethernet, mesajul este
împachetat succesiv în frame-uri specifice nivelului transport (protocol TCP), nivelului
reţea (protocol IP) şi în cele din urmă nivelului legătură de date.

Portul utilizat (nivel TCP) pentru comunicaţia utilizând Modbus TCP este
portul 502.

Ca şi avantaje faţă de protocolul Modbus RTU amintim:

 Viteză mai mare de transfer a datelor

 Dimensiunea magistralei nu este limitată la 32 de elemente ca în cazul


magistralei seriale RS-485, singura limitare fiind cea legată de numărul de
adrese de IP corespunzătoare clasei utilizate.

 Datele pot fi transmise prin reţele ce acoperă o suprafaţă mare (Wide Area
Network sau chiar Internet), fără a fi necesare gateway-uri suplimentare.

18
5. Arhitectura sistemului mecatronic. Elemente componente, funcțiile și interconectarea acestora
5.1 Arhitectura sistemului mecatronic

Fig 5.1.Arhitectura sistemului

19
Conform figurii 5.1, arhitectura sistemului conţine o ierarhie de 3 nivele:

 Nivelul de supervizare: la acest nivel se află interfaţa om-maşină;

 Nivel de achiziţie şi control: la acest nivel se află automatul programabil


modular;

 Nivel câmp – traductoare şi elemente de comandă a acţionarilor: cuprinde


senzori, traductoare şi convertizoare de frecvenţă.

De asemenea, în cadrul arhitecturii de sistem din figura 5.1 putem observa


modalitatea de conectare a nivelurilor ierarhice.

5.2. Traductoare utilizate in componenta sistemului mecatronic


Traductoarele ce intră în componenţa sistemului mecatronic sunt:

 patru limitatoare de cursă (câte două pentru fiecare din axele X şi Y). Rolul
acestor limitatoare de cursă este de a informa sistemul de monitorizare şi
control când căruciorul mobil se află în apropierea limitelor fizice de
mişcare ale sistemului.

 două traductoare liniare de poziţie (câte unul pentru fiecare din axele X şi
Y). Rolul acestora este de a informa sistemul de monitorizare şi control
asupra poziţiei căruciorului mobil în lungul celor două axe de mişcare.

 două traductoare de forţă (plasate pe axa Z, pe hamul ce leagă umerii


pacientului la sistemul mecatronic de recuperare). Rolul acestora este de
a determina iniţial masa pacientului şi apoi ce parte din această masă este
susţinută de sistem

 un traductor unghilar. Rolul acestuia este de a determina la ce unghi este


rotit căruciorul faţă de poziţia de referinţă.

Limitatoarele de cursă utilizate sunt modelul XCKD2118N12 produs de


firma Telemecanique (în ziua de astăzi Schneider). Ca şi semnal de iersire, aceste
limitatoare de cursă au două contacte – unul normal închis şi unul normal deschis.
În momentul în care căruciorul ajunge la capăt de cursă şi atinge limitatorul, acele
două contacte îşi schimbă poziţia. Starea contactului se poate determina uşor
utilizând un automat programabil cu intrări digitale. Deşi oferă două contacte,
folosirea celui normal închis în logica de automatizare este recomandată deoarece
în cazul în care apare un defect în circuit (secţionarea unui conductor din cablu
sau desfacerea unei legături), sistemul se va comporta ca şi când căruciorul ar fi
ajuns la capăt de cursă şi va fi oprit, evitându-se eventualele accidente. În cazul în
care se foloseşte contactul normal deschis pentru realizarea interblocărilor
software, un defect de tipul celui de sus ar rămâne nedetectat, ajungerea la cap
de cursă a căruciorului putând determina avarii ale sistemului electromecanic şi
eventual poate produce rănirea pacientului şi a terapeutului.

Traductoarele liniare de poziţie utilizate sunt modelul EF500 produse de


firma Elcis. Acest model conţine un encoder incremental. Distanţa este măsurată
cu ajutorul unui cablu de oţel legat la căruciorul mobil, traductorul propriu zis
aflându-se fixat pe cadrul sistemului mecatronic.
20
Specificaţii tehnice traductor poziţie Elcis EF500:

 lungime maximă măsurabilă: 5000mm;

 rezoluţia de măsurare: 0,1mm;

 eroare maximă de neliniaritate: 0,04%;

 semnal de ieşire: curent unificat 4-20mA;

 alimentare: 24Vcc;

 conexiunea electrică se realizează pe patru fire (două pentru semnal şi


două pentru alimentare).

Traductoarele de forţa utilizate sunt modelul TS-AMP şi sunt produse de


firma AEP transducers. Pentru a putea fi conectate la sistemul mecatronic şi ham,
aceste traductoare necesită a fi echipate cu inele de tracţiune.

Caracteristici tehnice traductoare de forţă:

 masa maximă: 200kg;

 precizie: 0,03%;

 sensibilitate: 0,1%;

 eroare maximă de neliniaritate: 0,023%;

 semnal de ieşire: curent unificat 4-20mA;

 alimentare 12-24Vcc;

 conexiunea electrică se realizează pe 3 fire (1 fir comun pentru masa


circuitelor de semnal şi alimentare).

Traductorul unghiular utilizat pentru acest sistem este modelul NRH300DP


produs de Penny&Giles. Traductorul este compus din două componente, un şurub
cu cap magnetic (aceasta fiind şi componentă care se află în mişcare, montată pe
elementul a cărui poziţie unghiulară se doreşte a fi aflată) şi senzorul propriu zis.
Traductorul utilizează efectul Hall pentru a măsura poziţia unghiulară relativă.

Specificaţii tehnice pentru traductorul unghiular:

 unghi măsurat: 20-360 grade;

 neavând componente în mişcare care să se atingă se poate spune că este


tolerant la uzură mecanică;

 alimentare: 5Vcc;

 semnal de ieşire: analogic, 0,5-4,5 Vcc;

21
 două ieşiri pentru asigurarea redundanţei în cazul sistemelor critice din
punctul de vedere al siguranţei.

Se poate observa că semnalul de ieşire nu este într-o gamă uzuală deci


se impune utilizarea unui adaptor de semnal. Penny&Giles oferă pentru
traductoarele produse, adaptorul universal de semnal SSC (Sensor Signal-
Conditioning).

Caracteristicile tehnice ale adaptorului de semnal pentru traductorul


unghiular:

 tensiune de alimentare: 10-30Vdc. Această tensiune nu trebuie să fie


neapărat fixă, poate fi şi variabilă în această gamă.

 Semnal de ieşire: 4-20mA (sau 5-19mA) şi 0,5V-4,5V. Pentru a putea


prelucra semnalul oferit cu ajutorul unui automat programabil, gama de
interes pentru ieşire este cea în curent unificat şi anume 4-20mA. Tipul
semnalului de ieşire poate fi selectat cu ajutorul unor comutatoare situate
pe PCB-ul adaptorului;

 Amplificarea şi zeroul pot fi adjustate de către utilizator cu ajutorul unor


potenţiometre de pe PCB-ul adaptorului.

Din motive tehnice şi mecanice, traductorul unghiular a putut fi montat


doar pe axul motoreductorului. Din acest motiv, la o rotaţie a căruciorului
traductorul unghiular execută 4,44 rotaţii. Această problemă va fi corectată
software.

5.3 Convertizoare de frecvență utilizate în cadrul sistemului mecatronic

Cele cinci motoare utilizate pentru mişcarea sistemului mecatronic sunt


motoare asincron trifazate. Viteza de rotaţie a acestor motoare este dată de
următoarele relaţii

Viteza de rotaţie a câmpului magnetic învârtitor este:


𝑓
𝑛1 = 60 𝑝 (5.1)

Unde f - frecvenţa tensiunii de alimentare şi p - numărul de poli ai


înfăşurării statorice.

Turaţia motorului este dependentă pe lângă turaţia câmpului magnetic


învârtitor şi de alunecare şi este determinată de formula:

𝑛2 = 𝑛1 ∗ (1 − 𝑠) (5.2)

Unde s – alunecarea şi este un coeficient care depinde de sarcina pe care


motorul o acţionează

Observăm aşadar că pentru a modifica turaţia unui motot asincron trifazat,


trebuie să modificăm frecvenţa curentului de alimentare. Acest lucru se poate face
cu ajutorul unor dispozitive denumite generic convertizoare de frecvenţă.

22
Convertizoarele de frecvenţă folosite pentru acest sistem sunt modele din
seria VFD-EL şi sunt produse de firma Delta AC Drives.

Caracteristici tehnice pentru convertizoare de frecvenţă:

 Tensiune nominală de intrare: 480Vac;

 Gama de variaţie a tensiunii de intrare: 380-480Vac;

 Număr faze: 3;

 Include butoane pentru comenzi manuale;

 Frecvenţa maximă de ieşire: 600Hz;

 Conţine interfaţa serială RS-485 cu protocol Modbus RTU pentru setarea


valorilor de referinţă şi diagnoză de la distanţă.

Interfaţa serială RS-485 este configurabilă şi permite setarea parametrilor


baudrate, dimensiune date, paritate, număr biţi de stop. Pentru acest proiect,
aceşti parametrii au fost setaţi la valorile considerate implicite:

 Baudrate: 9600;

 Număr biţi de date: 8;

 Paritate: fără paritate;

 Număr biţi de stop: 1;

În modelul de comunicaţie master-slave, convertizoarele de frecvenţă


reprezintă partea slave. Adresa Modbus este configurabilă la acest model, putând
lua orice valoare între 1 şi 255.

Valorile adreselor Modbus asociate convertizoarelor de frecvenţă în cadrul


acestui proiect sunt:

Functie convertizor Adresa Modbus

Axa X-X 2

Rotire 3

Ridicare 4

Mecanism saltaret 5

Axa Y-Y 6

Tabelul 5.1. Adresele asociate convertizoarelor de frecvență

Harta regiștrilor Modbus pentru acest model de convertizoare de frecvență


este:

23
Denumire Tip date Cod funcție Adresă registru
parametru Modbus Modbus

Direcție mișcare Word FC6 8192

Frecvență Word FC6 8193

Frecvență la ieșire Word FC3 8451

Tabelul 5.2. Harta regiștrilor Modbus și functiile aferente

Această listă de parametrii este minimală. Convertizorul oferă şi alte funcţii


şi posibilitate de diagnoză online prin magistrala Modbus dar aceste lucruri nu se
folosesc în proiectul de faţă.

Conform manualului de utilizare, parametrul direcţie mişcare trebuie să


aibă valoarea 18 pentru mersul înainte (forward), 34 pentru mersul înapoi
(reverse) şi 1 pentru stop.

5.4 Automatul programabil

În cadrul proiectului s-a utilizat un automat programabil modular din seria


750, produs de firma Wago.

Componenţa automatului programabil este:

 un CPU: 750-880;

 un modul intrări digitale: 750-1405;

 un modul ieşiri digitale: 750-1504;

 două module de intrări analogice: 750-455;

 un modul interfaţă serială: 750-653/03;

 un modul terminator: 750-600;

Specificaţii tehnice CPU 750-880:

 tensiune de alimentare: 24 Vcc;

 automatul programabil poate fi asociat cu orice modul din seriile 750 şi


753;

 două porturi Ethernet care suportă protocoalele de comunicaţie: Modbus


TCP, Internet IP, HTTP, BootP, DHCP, DNS, SNTP, FTP, SNMP;

 viteză comunicaţie porturi Ethernet: 10/100Mbps;

 1 MB de memorie de date şi program;

24
 programabil cu ajutorul metodelor descrie în standardul IEC-61131;

 se pot conecta până la 64 de module pe o linie;

 suportă card SD de dimensiune de până la 32 GB.

Specificaţii tehnice modul intrări digitale 750-1405:

 număr canale intrări digitale: 16;

 fiecare canal este filtrat cu un filtru RC de rejecţie a zgomotelor cu


constantă de timp de 3 ms;

 curent consumat: 25mA;

 nivel digital 0: -3 – 5Vdc;

 nivel digital 1: 15-30Vdc;

Specificaţii tehnice modul intrări analogice 750-455:

 număr canale intrări analogice: 4;

 tip semnal: curent unificat 4-20mA;

 rezistenţă de intrare: <100Ω @ 20 mĂ;

 curent consumat: 65mA;

 rezoluţia convertorului analog numeric: 12 biţi;

 timp de conversie: 10ms;

 eroare de măsurare: 0,2% la o temperatură de 25oC;

Specificaţii tehnice modul interfaţă serială RS-485 750-653/3:

 permite conexiunea cu orice dispozitiv care are interfaţă RS-485;

 funcţionarea interfeţei este conform standardului TIA/EIA-485-A;

 modalitate de transmisie configurabilă: full duplex/half duplex;

 baud rate configurabil: 1200 – 19200 baud, setare implicită: 9600 baud;

 dimensiunea maximă a liniei: 1000m dacă se utilizează cablu cu perechi


răsucite;

 curent consumat: 65mA.

În ceea ce priveşte comunicaţia pe cele două magistrale de comunicaţie


conform modelului master/slave:

25
 în cazul comunicaţiei pe magistrala serială RS-485, protocol Modbus RTU
cu convertizoarele de frecvenţă: automatul programabil este master iar
convertizoarele de frecvenţă sunt slave;

 în cazul comunicaţiei pe magistrala Ethernet, protocol Modbus TCP cu,


calculatorul pe care este instalată interfaţă grafică: automatul programabil
este slave iar calculatorul este master.

Flag-urile pentru comunicaţia cu interfaţa grafică instalată pe calculator


sunt configurate în memoria automatului programabil astfel:

NR. PARAMETRUL TAG Adresa TIP date

1 Limitator cursă stânga X LCSX_s 12288 BOOL

2 Limitator cursă dreapta X LCDX_s 12289 BOOL

3 Limitator cursă fața Y LCFY_s 12290 BOOL

4 Limitator cursă spate Y LCSY_s 12291 BOOL

5 Stare comandă motor X-forward CPIX_s 12292 BOOL

6 Stare comandă motor X-reverse CPRX_s 12293 BOOL

7 Stare comandă motor Y-forward CPIY_s 12294 BOOL

8 Stare comandă motor Y-reverse CPRY_s 12295 BOOL

9 Stare comandă motor Z-forward CPSZ_s 12296 BOOL

10 Stare comandă motor Z-reverse CPJZ_s 12297 BOOL

11 Stare comandă motor saltaret-forward CPIS_s 12298 BOOL

12 Stare comandă motor saltaret-reverse CPRS_s 12299 BOOL

13 Stare comanda motor rotatie-forward CPIR_s 12300 BOOL

14 Stare comandă motor rotatie-reverse CPRR_s 12301 BOOL

15 Comanda start/stop exercițiu medic CSEM_s 12302 BOOL

16 Comandă manuală buton CMB_s 12303 BOOL

17 Start motor X înainte SDIX_s 12304 BOOL

18 Start motor X înapoi SDRX_s 12305 BOOL

19 Start motor Y înainte SDIY_s 12306 BOOL

20 Start motor Y înapoi SDRY_s 12307 BOOL

21 Start motor Z ridicare SDSZ_s 12308 BOOL

26
22 Start motor Z coborâre SDJZ_s 12309 BOOL

23 Start motor rotație dreapta SMRD_s 12310 BOOL

24 Start motor rotație stânga SMRS_s 12311 BOOL

25 Start motor săltăreț înainte SMSS_s 12312 BOOL

26 Start motor săltaret înapoi SMJS_s 12313 BOOL

27 Acționare buton oprire urgență STOP_s 12314 BOOL

28 Bit terminare miscare BTM_s 12315 BOOL

29 Limită cursă unghi rotație stânga LCUS_s 12316 BOOL

30 Limită cursă unghi rotație dreapta LCUD_s 12317 BOOL

31 Valoare registru intrare AI forță stânga TFSS_s 12292 WORD

32 Valoare registru intrare AI forță dreapta TFSD_s 12293 WORD

33 Parametru pentru calcul unghi setpoint Directie_s 12294 WORD

34 Setpoint X TPVX_s 12295 INT

35 Setpoint Y TPVY_s 12296 INT

36 Mod operare MO_s 12297 WORD

37 Valoare distanță pe axa X TDXX_s 12308 REAL

38 Valoare distanță pe axa Y TDYY_s 12310 REAL

39 Valoare unghi TURP_s 12312 REAL

40 Valoare viteză deplasare pe axa X(în RVDX_s 12314 REAL


m/s)

41 Valoare viteză deplasare pe axa Y(in RVDY_s 12316 REAL


m/s)

42 Valoare viteză deplasare pe axa Z(in RVDZ_s 12318 REAL


m/s)

43 Valoare viteză rotație(in m/s) RVUR_s 12320 REAL

44 Valoare viteză săltăreț(in m/s) RVMS_s 12322 REAL

45 Setare viteză axa x(in m/s) PVDX_s 12324 REAL

46 Setare viteză axa Y(in m/s) PVDY_s 12326 REAL

47 Setare unghi brut TPU_s 12328 REAL

48 Frecvență pași săltăreț FPS_s 12330 REAL

27
49 Viteza compusă TP_s 12332 REAL

Tabelul 5.3. Tag-urile Modbus TCP setate in automatul programabil

5.5 Interfața om - masină


Interfața om – maşină (HMI-Human Machine Interface) se va realiza în
mediul de dezvoltare pentru sisteme SCADA PcVue. PcVue este un produs al
companiei ArcInformatique. PcVue este un produs cu funcţii complete
reprezentând ultimele noutăţi în ceea ce priveşte softwareul SCADA pentru
monitorizarea şi controlul mai multor staţii. PcVue asigură ergonomia modernă şi
instrumente bazate pe tehnologia orientată pe obiecte scurtând timpul pentru
dezvoltarea aplicaţiilor, cuprinzând standardele interfeţei de utilizator propuse de
Microsoft şi beneficiind de securitate oferită de platformele Windows [12].

PcVue oferă o soluţie flexibilă pentru supravegherea proceselor industriale,


a echipamentelor şi a infrastructurii. PcVue suportă o mare varietate de standarde
de comunicare, inclusiv driver built-in pentru Industrie şi constructorii de maşini
(aproximativ 200 de protocolae curente şi legale), Sistemul de Management al
Clădirilor – BMS (lns, BACnet, SNMP), Generarea Puterii Electrice, T&D şi
Sisteme de Putere (IECs, DNP3) şi Tratarea şi distribuţia apei potabile
(majoritatea protocoalelor de telemetrie).

PcVue este mobile-ready: se pot accesa informaţii prin intermediul aplicaţiei


TouchVue instalată de tabletă sau pe smartphone ori prin intermediul unui motor
de căutare web utilizând light web client WebVue. PcVue implementează
caracteristicile necesare securităţii cibernetice pentru a proteja sistemul împotriva
ameninţărilor în creştere însoţite de schimbările rapide ale tehnologiei şi utilizarea
pe scară largă a utilizatorilor conectaţi în reţelele din industrie.

PcVue este primul software care oferă funcţii pentru crearea interfeţelor
HMI 3D. De asemenea introduce o serie de Servicii Web pentru a uşura crearea
portalului şi integrarea cu alte aplicaţii. Acestea include: MES (Manufacturing
Execution System), CMMS (Computerized Maintenance Management System),
SCM (Supply Chaîn Management) şi ERP (Enterprise Resource Planning) [12].

PcVue suportă înregistrarea informaţiilor în baza de date Microsoft SQL


Server 2008 şi este furnizată împreuna cu SQL Server 2008 Express Edition.

Caracteristici importante ale mediului de dezvoltare PcVue [12]:

 Putere şi simplitate. PcVue are un motor grafic recunoscut ca fiind unul


dintre cele mai puternice şi uşor de folosit de pe piaţă. Multe caracteristici
facilitează generarea interfeţei de utilizator: desen vectorial detaliat,
imagini importate şi obiecte 3D DirectX din programe de proiectare
asistată pe calculator (CAD), inserare de clipuri video şi controlere ActiveX
cu proprietăţi ce pot fi modificate în timpul folosirii aplicaţiei, rotaţii libere
ale textelor şi desenelor, culori transparente etc.

 Securitate şi ergonomie. Abilitatea de vizualizare a panourilor animate sub


formă de icoane şi folosirea ferestrelor tip pop-up reduc riscul de
28
suprapunere a informaţiei importantă. Drepturile de acces multi-nivel şi
meniurile asociate fiecaărui utilizator asigură ca navigarea în aplicaţia
curentă să fie creată pentru a se mula pe nevoile şi permisiunea fiecărui
utilizator.

 Istoricul şi graficele de evoluţie în timp real. Într-o singură fereastră PcVue,


se pot crea mai multe grafice de evoluţie (trend charts) ce pot fi
manipulate cu o serie de instrumente standard: zoom, cursori, asignare
dinamică a variabilelor la grafice, etc.

 Managerul de alarme. Pentru a face faţă diverselor cereri pentru aplicaţii,


formatul şi prezentarea alarmelor este extrem de configurabil.

 OPC. PcVue funcţionează atât ca OPC Data Access Client, cât şi ca OPC
DA XML Client pentru schimbul de date în timp real cu serverele de
comunicaţie şi Serverul OPC DA, astfel schimbând informaţii cu a treia
parte a aplicaţiei (administrarea prin comandă la distantă şi mentenanţa
asigurată de calculator).
 Scripturi utilizator. PcVue are diverse opţiuni standard pentru scriere şi
rulare de programe structurate. Prin scrierea de scripturi în Microsoft VBA
sau PcVue SCADA BASICS, se pot adapta funcţiile produsului la cererile
specificate. Se pot accesa proprietăţile, metodele şi evenimentele
elementelor de control ActveX integrate cu aplicaţia împreună cu mediul
proiectului, variabilele şi elementele de desenare native ale PcVue-ului.
De asemenea, se pot rula programe DLL externe. Scripturile pot rula după
evenimente, ciclic sau temporizat.

29
6. Prezentarea aplicației.
Aşa cum am văzut mai devreme, în descrierea elementelor de comandă,
aplicaţia de comandă şi control pentru sistemul mecatronic va avea două
componente: un program care va rula ciclic pe automatul programabil şi interfaţa
cu utilizatorul (HMI) care va rula pe calculatorul medicului.

6.1 Prezentarea aplicației de la nivelul automatului programabil


Aplicaţia de pe automatul programabil a fost realizată utilizând versiunea
2.3.9.47 a aplicaţiei CoDeSys. CoDeSys este un mediu de dezvoltare pentru
aplicaţii aferente automatelor programabile şi conţine metodele de programare
descrie în versiunea 3 a standardului de programare IEC 61131. Aplicaţia a fost
dezvoltată utilizând metoda de programare CFC (Continuous Function Chart).

6.1.1. Organizarea aplicației de pe automatul programabil

În cadrul CoDeSys, programele pot fi organizate în subprograme denumite


generic unități de organizare a programului (POU – Program Organization Unit).

Fig 6.1. Structura programului împărțită in unitati de organizare

Unităţile de organizare a programului rotaţie şi rotatie2 îndeplinesc


împreună o funcţionalitate. A fost necesară impartiea programului ce realizează
funcţionalitatea dorită în două supbrograme datorită limitărilor de spaţiu pe care se
poate întinde un program în mediul de programare CoDeSys.
30
În cardul aceste aplicaţii, în împărţirea programului în unităţi de organizare
a programului s-a urmărit utilizarea unui număr minim de variabile globale pentru a
limita problemele ce pot să apara datorită utilizării deficitare a variabilelor globale
(una dintre acestea fiind scrierea concurentă a aceleiaşi variabile de către mai
multe suprograme).

Schimbul necesar de date între aceste unităţi de organizare a programului


se poate realiza prin intermediul variabilelor globale. Definirea şi iniţializarea
variabilelor globale în mediul de dezvoltare CoDeSys se realizează în submeniul
Global_Variables din meniul Resouces. Pentru această aplicaţie, definirea
variabilelor globale şi valorile iniţiale ale acestora se pot observa în figură
următoare.

Fig 6.1. Declararea variabilelor globale

Variabila unghi de tip real, cu valoare iniţială 0 reprezintă unghiul de


rotaţie al căruciorului care susţine pacientul. Valoarea unghiului este calculată în
unitatea de organizare a programului calcul unghi şi necesită a fi utilizată de
subprogramul rotatie2 pentru a fi comparată cu valoarea de referinţă pentru
unghiul de rotaţie.

Variabila var_terminarerotatie_intermediară de tip logic este trecută în 1


logic în momentul în care unghiul de rotaţie a căruciorului atinge valoarea de
referinţă. Valoarea este modificată de unitatea de organizare a programului
rotatie2 şi această informaţie este utilizată în POU-rile axa_x, axa_y şi şold.

Variabila var_intermediara_terminare_mişcare de tip logic este modificată


în 1 logic în unitatea de organizare a programului axa_x în momentul în care se
atinge poziţia de referinţă pe axă x. Este folosită de unitatea de organizare a
programului axa_y.

Variabila unghi_setpoint de tip real este calculată în unitatea de


organizare a programului rotaţie şi este utilizată în programul rotatie2.

Variabilele viteza_descompusa_x şi viteza_descompusa_y de tip real sunt


scrise de unitatea de organizare a programului rotaţie şi utilizate în cadrul
programelor axa_x şi axa_y.

Ordinea şi modul de rulare a unităţilor de organizare a programelor în


cadul mediului de dezvoltare CoDeSys este descrisă în submeniul Task
configuration din meniul Resources

31
Fig 6.2. Setarea modalităţii de rulare a programelor.

S-a ales pentru această aplicaţie ca metodă de rulare tipul freewheeling.


În acest caz rularea subprogramelor se va realiza în mod liber de către automatul
programabil, fără nici o constrângere legată de timpul de rulare. Nu este necesară
impunerea unor constrângeri legate de timpul de rulare în cazul acestei aplicaţii.

6.1.2. Descrierea unităţii de organizare a programului axa_x

POU-ul axa_x guvernează mişcarea dispozitivului mecatronic pe direcţia


axei X în funcţie de informaţiile primite de la interfata grafică şi de starea
sistemului mecatronic. Variabilele utilizate în acest subprogram şi declarate în
spaţiul specific sunt viteza_X şi mişcare_X de tip word şi cu valoare iniţială 0.

Rolul programului axa_x este de a calcula valorile variabilelor viteza_X şi


mişcare_X şi de a le comunica mai departe convertizorului de frecvenţă specific.

Prima parte a programului realizează calculul parametrului viteza_X.


Secvenţa de funcţii bloc este descrisă în figura următoare.

Fig 6.3. Calculul parametrului viteză pentru mişcarea pe axă X

32
Primul bloc AND (poziţia 0 în ordinea executării instrucţiunilor) are ieşire 1
logic dacă s-a dat comanda start mişcare din interfaţă cu utilizatorul (CSEM_s este
1), dacă comanda pentru mişcare în modul manual din ecranul de mentenanţă
(CMB_s) este 0 logic şi dacă sistemul nu se află în timpul mişcării de rotaţie în
jurul axei Z (var_terminarerotatie_intermediara este 1). În acest caz funcţia bloc
SEL (numărul 7 în ordinea de execuţie a programului) va trimite la ieşire ceea ce
se află la a treia intrare. Viteza corespunzătoare pentru mişcarea pe axă X ( este
stocată în variabila viteza_descompusa_x în m/s) este înmulţită cu un coeficient,
în acest caz 22500. Acest coeficient ţine cont de funcţiile de transfer ale
elementelor acţionarilor electrice (convertizor de frecvenţă, motor, reductor etc.).
În final, valoarea rezultată care este tip real, va fi convertită la tipul word. Acest
lucru este necesar a fi realizat deoarece convertizorul de frecvenţă accepta doar
tipul de date word pentru prescrierea vitezei.

În cazul în care ieşirea funcţiei AND (poziţia 0) este 0, blocul SEL (poziţia
7) va transmite la ieşire valoarea de pe a doua intrare. Blocul AND (poziţia 1) are
rolul de a stabili dacă se doreşte mişcarea manuală din modul mentenanţă
(CMB_s este setat pe 1), dacă mişcarea se doreşte a fi realizată în sensul înainte
(SDIX_s este setat pe 1) şi dacă sistemul nu a ajuns la capătul de cursă
(LCSX_NC este 1). Asemănător, aceeaşi logică este implementată pentru
mişcarea înapoi din modul mentenanţă cu ajutorul funcţiei bloc AND situată la
poziţia 2. Dacă oricare din cele două condiţii sunt îndeplinite, blocul SEL (poziţia 4)
va avea la ieşire valoarea 500 (o viteză mică pentru modul de mentenanţă al
echipamentului). În caz contrar, ieşirea va fi 0 şi va corespunde fie modului normal
de mişcare, fie modului oprit (mod care am văzut mai sus că este stabilit de către
blocul de la poziţia 0).

A doua parte a programului realizează calculul variabilei mişcare_X.


Această valoare va fi mai apoi transmisă convertizorului de frecvenţă. Valorile
posibile ale variabilei mişcare_X conform manualului convertizorului de frecvenţă
sunt:

 miscare_X=18. În acest caz mişcarea se va realiza pe direcţia înainte


(forward)

 miscare_X=34. În acest caz mişcarea se va realiza pe direcţia înapoi


(reverse)

 miscare_X=1. În acest caz motorul va fi oprit (stop).

33
Fig 6.4. Calculul parametrului miscare_X

34
Blocul AND (poziţia 11) are ieşirea 1 logic dacă s-a dat comanda start
mişcare din interfaţă cu utilizatorul (CSEM_s este 1), dacă comanda pentru mişcare
în modul manual din ecranul de mentenanţă (CMB_s) este 0 logic şi dacă sistemul
nu se află în timpul mişcării de rotaţie în jurul axei Z
(var_terminarerotatie_intermediara este 1).

În acest caz, blocul SEL (poziţia 30) va trimite la ieşire valoarea de pe a doua
intrare, corespunzătoare mişcării în modul automat al sistemului.

Blocul GE de la poziţia 15 compară dacă valoarea corespunzătoare poziţiei


sistemului pe axă X (TDXX) este mai mare decât valoarea de referinţă pentru poziţia
sistemului pe axă X (TPVX_s). Această situaţie arată că poziţia sistemului se află în
dreapta poziţiei de referinţă şi este nevoie de o comandă înainte pentru a ajunge în
poziţia de referinţă. Blocul de la poziţia 16 verifică dacă sistemul nu este prea
aproape de limita fizică pentru deplasarea în sensul înainte. Această verificare este
doar o măsură de siguranţă în plus, pe lângă limitatorul de cursă.

Blocurile de la 17 la 20 verifică dacă sistemul se află în poziţia de referinţă


astfel:

 blocul 17 realizează scăderea TDXX-TPVX_s. Această valoare reprezintă


diferenţa dintre poziţie şi referinţă, deci valoare reprezintă generic o eroare;

 cele două valori fiind de tip word, pentru a putea calcula modulul, valoarea
diferenţei trebuie să fie de tip integer. Blocul 18 realizează această
conversie.

 blocul 19 calculează valoarea absolută a diferenţei;

 blocul 20 compară eroarea cu valoarea 300, valoare stabilită prin încercări


experimantale. Dacă eroarea este mai mică de 300, atunci se poate
considera că sistemul a ajuns în poziţia indicată de referinţă.

Dacă toate condiţiile descrise mai sus sunt verificate, plus sistemul nu se află
la limita de cursă pentru mişcarea înainte (LCSX_NC este 1), ieşirea blocului AND de
la poziţia 22 este 1 iar ieşirea blocului SEL de la poziţia 23 va fi valoarea 18 (valoare
corespunzătoare pentru mişcarea în direcţia inante).

De asemenea, ieşirea blocului 20 este conectată la variabila


var_intermediara_terminare_mişcare. Această va fi mai apoi folosită în programul
axa_y pentru a confirma faptul că sistemul a ajuns la poziţia de referinţă pe ambele
axe.

În mod asemănător se realizează determinarea necesităţii de mişcare înapoi


în cadrul lanţului de blocuri 24-27, diferenţă majoră fiind sensul comparaţiei. Dacă la
mişcarea înainte această a fost GE (greater equal), în cazul mişcării înapoi este LE
(lower equal).

Blocul ADD de la poziţia 28 este o modalitate elegantă, simplă şi sigură de a


conecta două intrări la o ieşire în condiţiile în care cel puţin una este 0 la un moment

35
dat, fără a fi necesară utilizarea de blocuri de selecţie şi variabile auxiliare
suplimentare.

Ieşirea blocului AND de la poziţia 11 este 0 în cazul în care nu s-a dat o


comandă în funcţionare normală ci se doreşte fie ca sistemul să fie operat în modul
mentenanţă, fie acesta este oprit şi aşteaptă noi comenzi.

În acest caz, variabila mişcare_X este tratată de blocurile 9-14. Blocul 9


verifică dacă se doreşte efectuarea comenzii de mers înainte (SDIX_s este 1) în
modul mentenanţă (CMB_s este 1) şi limitatorul de cursă nu este activat (LCSX_NC
este 1). Dacă toate condiţiile sunt îndeplinite, ieşirea blocului 10 va avea valoarea 18,
valoare corespunzătoare mişcării înainte pe axă X. Echivalent se face verificarea şi
pentru mişcarea înapoi în modul de mentenanţă. Blocul ADD de la poziţia 14
realizează aceeaşi funcţia că blocul ADD de la poziţia 28.

În final, partea a treia a programului trimite comenzi către convertizorul de


frecvenţă şi de asemenea trimite confirmări ale funcţionării motoarelor către interfaţă
cu utilizatorul.

Fig 6.5. Transmiterea comenzilor către convertizorul de frecvenţă

Blocul 31 verifică dacă variabila mişcare_X are valoarea 18, valoare


corespunzătoare mişcării înainte pe axă X şi în cazul afirmativ setează valoarea
CPIX_s la 1. Aceeaşi acţiune este realizată în mod similar de blocul 33. Aceste valori
sunt o confirmare a direcţiei de mişcare a sistemului necesare modului mentenanţă.

Pentru a putea simplifica logica şi folosi blocurile ADD la poziţiile 14 şi 28, am


considerat până acum valoarea 0 a parametrului mişcare_X ca valoare
36
corespunzătoare stării stop a motorului. Dacă am trimite această valoare la
convertizorul de frecvenţă, acesta ar afişa un mesaj de eroare deoarece comandă
este necunoscută. Este necesară valoarea 1 pentru ca mişcare_X să fie interpretată
ca şi comandă stop. Acest lucru este verificat şi realizat de blocurile 35 şi 36.

Blocul 37 trimite către convertizorul de frecvenţă corespunzător valorile


stocate în variabilele viteza_X şi mişcare_X şi preia de la acesta valoare frecvenţei
de ieşire ce va fi stocată în variabila RVDX_s şi trimisă către interfaţă cu utilizatorul.

6.1.3. Descrierea unității de organizare a programului axa_y

Programul axa_y este în mare parte asemănător din punct de vedere


structural cu programul axa_x. În figură următoare se poate observa setarea
variabilei BTM_s (variabilă care arată faptul că sistemul a ajuns în poziţia de referinţă
pe axele X-Y).

Fig 6.6. Setarea variabilei BTM_s

Lanţul de blocuri 33-36 determină dacă sistemul a ajuns la poziţia de


referinţă pe axa Y. Utilizând funcţia logică AND (poziţia 37) împreună cu variabila
var_intermediara_terminare_mişcare setată în programul axa_X, putem afla dacă
sistemul a ajuns în poziţia de referinţă pe ambele axe.

6.1.4. Descrierea unității de organizare a programului axa_z

În ceea ce priveşte elementele de comandă şi control de pe axa Z, aceasta


nu conţine limitatoare de cursă sau traductoare care să măsoare distanţă. Aşadar,
comenzile specifice pentru mişcarea pe axa Z sunt comandate din interfaţa cu
utilizatorul.

Din acest motiv, programul axa_z este unul simplu şi este prezentat în figură
următoare.

37
Fig 6.7. Programul de comandă şi control pentru axa Z

Blocurile 0 şi 1 determină dacă se doreşte o comandă manuală (CMB_s este


setat la valoarea 1) şi dacă această comandă se doreşte a fi aplicată axei Z (SDSZ_s
este 1 pentru o comandă de urcare, 0 în caz contrar, SDJZ_s este 1 pentru o
comandă de coborâre, 0 în caz contrar). Dacă aceste condiţii sunt îndeplinite, se
setează viteza de ridicare la valoarea 3000 corespunzătoare unei frecvenţe de 30Hz,
valoare determinată experimental pentru evitarea accidentelor.

În cazul vitezei, indiferent dacă se doreşte urcarea sau coborârea, viteza


este aceeaşi. În cazul direcţiei de mişcare trebuie făcută o diferenţiere astfel:

 dacă se doreşte urcarea atunci parametrii CMB_s şi SDSZ_s vor avea


valoarea 1 logic. Ieşirea blocului 4 va fi 1 iar la ieşirea blocului 5 vom avea
valoarea 18 corespunzătoare unei deplasări în direcţia înainte (în acest caz
ridicare). Ieşirea blocului 6 va fi 0 şi în continuare blocul 7 va avea la ieşire
valoarea 0. La ieşirea blocului 8 va fi rezultatul adunării valorilor 18 şi 0.

 dacă se doreşte coborârea atunci parametrii CMB_s şi SDJZ_s vor avea


valoarea 1 logic. Ieşirea blocului 6 va fi 1 iar la ieşirea blocului 7 vom avea
valoarea 34, valoare corespunzătoare unei deplasări în direcţia înapoi (în
acest caz coborâre). Ieşirea blocului 4 va fi setată la valoarea 0 şi în
continuare ieşirea blocului 5 va fi setată la valoarea 0. La ieşirea blocului 8 va
fi rezultatul adunării valorilor 0 şi 34.

Comenzile către convertizorul de frecvenţă corespunzător şi informaţiile


pentru interfaţă cu utilizatorul sunt preluate şi trimise în mod asemănător cu datele
pentru axa X.

38
Fig 6.8. Comenzile către convertizorul de frecvenţă corespunzător axei Z

6.1.5. Descrierea unităţii de organizare a programului calcul_unghi

Deşi traductorul unghiular instalat pentru a determina poziţia unghilulara în


jurul axei Z a sistemului are domeniul de măsurare 20 o-360o, din motive mecanice,
instalarea acestuia nu a putut fi realizată în raport de multiplicare 1:1 cu mişcarea de
rotaţie ci în raport 1:4,44. Aşadar traductorul poate măsura doar unghiuri cu valoarea
de până la 81,81o în raport cu o poziţie de referinţă. Este necesară aplicarea unei
corecţii software pentru a putea măsura unghiuri de până la 360o.

Traductorul unghiular are ca ieşire un semnal unificat 4-20mA, valoarea


20mA corespunzătoare unui unghi aflat între 0o şi 20o, iar valoarea 4mA
corespunzătoare unui unghi de 359o. Se impune astfel determinarea trecerilor de la
20mA la 4mA şi de la 4mA la 20mA, ţinând cont şi de sensul acestor treceri.
Măsurarea unghiului se face în sens orar faţă de punctul de referinţă.

Secvenţa de program care realizează aceste determinări este prezentată în


figură următoare.

39
Fig 6.9. Determinarea trecerilor peste limita de măsurare

La prima pornire a automatului programabil, sistemul mecatronic se află într-


o poziţie unghiulară corespunzătoare unui unghi între 0 o şi 81,81o. Variabila n de tip
întreg este iniţializată cu 0. De asemenea variabila n a fost declarată de tip retain şi
persistent. Din acest motiv, este salvată în porţiunea de memorie nevolatilă a
automatului programabil, nefiind afectată de penele de curent şi încărcările ulterioare
de program.

Determinarea trecerilor de la 20mA la 4mA şi de la 4mA la 20mA se face


astfel:

 blocul 1 realizează diferenţa dintre valorile registrului corespunzător


traductorului unghiular între două cicluri succesive ale automatului
programabil. Valoarea stocată în registru poate lua valori între 0
(corespunzător unui semnal de curent 4mA) şi 32767 (corespunzător unui
semnal de curent 20mA);

 se verifică dacă diferenţa se încadrează în unul din intervalele [17000,


32767] sau [-17000, -32767]. Este nevoie de încadrarea în intervale,
deoarece valorile intrarilor automatului programabil sunt citite periodic la
fiecare rulare a unui ciclu de program care durează în medie 0,1 secunde şi
trecerea poate fi ratată dacă se încearcă detecţia exactă a trecerilor.
Intervalele trebuie să fie suficient de mari pentru a nu pierde trecerile datorită
citirii la momente de timp discrete a datelor şi suficient de mici pentru a nu
avea rezultate false. Valorile din capetele intervalelor au fost alese prin
procedeul încercare şi eroare prin evaluări experimentale;

 dacă valoarea diferenţei se încadrează în intervalul [17000, 32767] înseamnă


că semnalul a avut o trecere de la 4mA la 20mA. În acest caz vom aduna 1
la variabila n.

 dacă valoarea diferenţei se încadrează în intervalul [-32767, -17000]


înseamnă că semnalul a avut o trecere de la 20mA la 4mA. În acest caz vom
scădea 1 din variabila n.

40
 la final, valoarea registrului corespunzătoare măsurătorii unghiului este scrisă
în variabila auxiliară unghi_aux pentru a putea fi folosită la următorul ciclu al
automatului programabil

Astfel, putem număra de câte ori în mişcarea unghiulară în jurul axei Z s-a
trecut peste limita de 81,81o în orice direcţie, măsurată faţă de poziţia 0 a sistemului.

Valoarea unghiului în grade se calculează utilizând secvenţa de program din


figura următoare.

Fig 6.10. Calculul unghiului de rotaţie

La valoarea unghiului calculată pe baza semnalului de la traductorul


unghiular se adaugă n*81,81 grade. Se obţine o valoare pozitivă a unghiului în cazul
în care mişcarea de rotaţie s-a realizat în sens orar faţă de punctul de referinţă 0 şi
valoare negativă în cazul în care mişcarea de rotaţie s-a realizat în sens
trigonometric faţă de punctul de referinţă 0.

Dacă unghiul este negativ, deci poziţia unghiulară a sistemului este în sens
trigonometric, valoarea unghiului în intervalul [0,360) se obţine prin adunarea valorii
unghiului cu 360.

6.1.6. Descrierea unității de organizare a programului PLC_PRG

În orice program realizat în mediul de dezvoltare CoDeSys trebuie să existe


o unitate de organizare a programului denumită PLC_PRG. În cazul acestei aplicaţii

41
în PLC_PRG s-au realizat doar atribuiri pentru a oferi informaţii care sunt necesare
interfeţei grafice cu utilizatorul.

Fig 6.11. Conținutul programului PLC_PRG

Aceste atribuiri reprezintă:

 starea logică a limitatoarelor de cursă (primele patru atribuiri)

 valorile regiştrilor intrărilor analogice pentru măsurarea distanţelor pe cele


două axe (TDXX şi TDYY)

 valorile regiştrilor intrărilor analogice pentru măsurarea masei pacientului


(TFSS şi TFSD).

6.1.7. Descrierea unității de organizare a programului rotație

Prima parte a programului realizează calcularea referinţei pentru unghiul de


rotaţie al căruciorului. Programul care rulează în spatele interfeţei grafice cu
utilizatorul ne oferă următoarele informaţii:

 unghiul determinat de poziţia curentă şi direcţia viitoare de deplasare. Acest


unghi este determinat dintr-un triunghi din teorema lui Pitagora generalizată.
Valoarea unghiului este reţinută în variabila TPU_s;
42
 parametrul Direcţie_s care poate avea următoarele valori: 1 – unghiul de
referinţă este chiar TPU_s, 2 – unghiul este 360-TPU_s, 5 – unghiul de
referinţă este 180o.

Alegerea uneia dintre aceste situaţii se poate realiza cu o funcţie bloc de


multiplexare ca în figura următoare.

Fig 6.12. Utilizarea funcţiei bloc de multiplexare pentru determinarea valorii unghiului

Partea a doua a programului calculează proiecţiile vitezei compuse


(parametrul TP_s) pe direcţiile celor două axe X şi Y.

În funcţie de cadranul în care se află rotit căruciorul putem avea mai multe
situaţii:

 cadranul I. Valoarea unghiului de referință se află în intervalul [0, 90].


Descompunerea pe axe se realizează după formulele:

𝑣𝑥 = 𝑣𝑖𝑡𝑒𝑧𝑎 ∗ cos⁡(𝑢𝑛𝑔ℎ𝑖⁡𝑟𝑒𝑓𝑒𝑟𝑖𝑛𝑡𝑎) (6.1)

𝑣𝑦 = 𝑣𝑖𝑡𝑒𝑧𝑎 ∗ sin⁡(𝑢𝑛𝑔ℎ𝑖⁡𝑟𝑒𝑓𝑒𝑟𝑖𝑛𝑡𝑎) (6.2)

 cadranul II. Valoarea unghiului de referință se află în intervalul (90, 180].


Descompunerea pe axe se realizează după formulele:

𝑣𝑥 = 𝑣𝑖𝑡𝑒𝑧𝑎 ∗ cos⁡(180° − 𝑢𝑛𝑔ℎ𝑖⁡𝑟𝑒𝑓𝑒𝑟𝑖𝑛𝑡𝑎) (6.3)

𝑣𝑦 = 𝑣𝑖𝑡𝑒𝑧𝑎 ∗ sin⁡(180° − 𝑢𝑛𝑔ℎ𝑖⁡𝑟𝑒𝑓𝑒𝑟𝑖𝑛𝑡𝑎) (6.4)

 cadranul III. Valoarea unghiului de referință se află în intervalul [180, 270).


Descompunerea pe axe se realizează după formulele:

𝑣𝑥 = 𝑣𝑖𝑡𝑒𝑧𝑎 ∗ cos⁡(𝑢𝑛𝑔ℎ𝑖⁡𝑟𝑒𝑓𝑒𝑟𝑖𝑛𝑡𝑎 − 180°) (6.5)

𝑣𝑦 = 𝑣𝑖𝑡𝑒𝑧𝑎 ∗ sin⁡(𝑢𝑛𝑔ℎ𝑖⁡𝑟𝑒𝑓𝑒𝑟𝑖𝑛𝑡𝑎 − 180°) (6.6)

 cadranul IV. Valoarea unghiului de referință se află în intervalul [270, 360).


Descompunerea pe axe se realizează după formulele:

43
𝑣𝑥 = 𝑣𝑖𝑡𝑒𝑧𝑎 ∗ cos⁡(360° − ⁡𝑢𝑛𝑔ℎ𝑖⁡𝑟𝑒𝑓𝑒𝑟𝑖𝑛𝑡𝑎) (6.7)

𝑣𝑦 = 𝑣𝑖𝑡𝑒𝑧𝑎 ∗ sin⁡(360° − ⁡𝑢𝑛𝑔ℎ𝑖⁡𝑟𝑒𝑓𝑒𝑟𝑖𝑛𝑡𝑎) (6.8)

În cazul cadranului I, codul sursă este prezentat în figura următoare.

Fig 6.13. Calculul descompunerii vitezelor pentru cazul în care unghiul este în
cadranul I

Variabilă semafor_viteza este setată cu o valoare diferită în funcţie de


cadranul pentru care se face calculul. Pentru cadranul I valoarea acesteia este 0.
Variabilă semafor_viteza se va folosi ulterior ca primă intrare într-un bloc de
multiplexare pentru atribuirea valorilor vitezelor descompuse în funcţie de situaţia
prezentă.

De remarcat este faptul că funcţiile bloc matematice SIN şi COS din


CoDeSys lucrează cu unghiuri în radiani, deci este necesară o transformare din
grade în radiani.

Succesiunea de funcţii 8-11 realizează calcului de descompunere pentru


componenta X iar succesiunea de funcţii 12-15 realizează calculul de descompunere
pentru componenta Y.

6.1.8. Descrierea unităţii de organizare a programului rotatie2

Prima parte a programului rotatie2 realizează simularea unor limitatoare de


cursă ale mişcării de rotaţie. Sistemul mecatronic permite rotirea până la poziţia 275 o
în ambele direcţii.

Porţiunea de program care realizează această funcţie este descrisă în figură


următoare.

44
Fig 6.14. Simularea limitatoarelor de cursă pentru mişcarea de rotaţie

Succesiunea de funcţii bloc 0-4 simulează comportamentul limitatorului de


cursă în cazul rotirii în sens trigonometric. Variabilă LCUS_s are valoare 1, dacă
direcţia de deplasare este în sens trigonometric (variabilă mişcare rotire nu are
valoarea 18) şi unghiul se află în intervalul (275, 285]. Asemănător se determină
dacă sistemul mecatronic ajunge la limita de rotaţie în sens orar.

Intervalele au fost selectate luând în calcul inerţia sistemului şi limitele fizice.


De asemenea, s-a luat în calcul că simularea limitelor de cursă să nu genereze
informaţii false despre poziţia sistemului.

Partea a doua a programului realizează setarea parametrului viteza_rotire.

Fig 6.15. Setarea parametrului viteza_rotire

Parametrul viteză este setat la valoarea 150 în oricare din următoarele


situaţii:

45
 dacă s-a dat o comandă de rotire în sens orar (SMRD_s are valoare 1), limita
de cursă în sensul orar nu este atinsă (LCUD_s are valoare 0) şi s-a dat o
comandă manuală din modul de mentenanţă (CMD_s are valoare 1).

 dacă s-a dat o comandă de rotire în sens trigonometric (SMRS_s are valoare
1), limita de cursă în sensul orar nu este atinsă (LCUD_s are valoare 0) şi s-a
dat o comandă manuală din modul de mentenanţă (CMD_s are valoare 1).

 Dacă diferenţa dintre unghi şi referinţă (eroarea) în valoare absolută este mai
mică de 5o.

De asemenea, tot în această parte se realizează setarea parametrului


var_terminarerotatie_intermediara care este utilizat de restul unităţilor de organizare
a programului ca semnalizare a faptului că sistemul nu se află în mişcare de rotaţie.
La terminarea mişcării de translaţie (BTM_s are valoare 0), variabilei
var_terminarerotatie_intermediara i se atribuie valoarea 0.

Partea a treia a programului rotatie2 stabileşte sensul de rotaţie. Datorită


limitelor fizice ale sistemului, sensul de rotaţie trebuie stabilit atât în funcţie de
unghiul de referinţă cât şi în funcţie de poziţia unghiulară a sistemului la momentul în
care se începe mişcarea de rotaţie. Această parte a programului are dimensiuni
destul de mari pentru a fi prezentată în cadrul lucrării de faţă ca şi cod sursă, dar
totalitatea situaţiilor este prezentată în tabelul de mai jos.

Relatie intre Stare


Unghi Unghi
unghi si unghi limitatoare de Directie de rotatie
referinta sistem
referinta cursa

≥265, ≤275 - Sens trigonometric

≤285, ≥275 - Sens orar

Unghi referinta
Sens trigonometric
> unghi
≤275, ≥0
Unghi referinta
Sens orar
< unghi
≤265, ≥0
>285 - Sens trigonometric

- LCUS_s=1 Sens trigonometric


<285, >275
- LCUD_s=1 Sens orar

Unghi referinta
- Sens trigonometric
> unghi
<360, >285
<360, >285 Unghi referinta
- Sens orar
< unghi

<275 - - Sens orar

46
- LCUS_s=1 Sens trigonometric
<285, >275
- LCUD_s=1 Sens orar

Tabelul 6.1. Sensul de rotație în funcție de starea sistemului

6.1.9. Funcţiile bloc pentru comunicaţia pe magistrala serială RS-485

Datorită numărului mic de parametrii ce necesită a fi transmişi prin


intermediul magistralei seriale, o metodă simplă este utilizarea configuratorului de
Modbus Master din submeniul PLC Configuration, meniul Resources pentru
generarea funcţiilor bloc.

Magistrala de comunicaţie aşa cum este descrisă în program este prezentată


în figura următoare.

Se pot observa parametrii magistralei de comunicaţie, codificarea magistralei


de comunicaţie (COM2, la acest automat programabil interfeţele de comunicaţie sunt
automat mapate de la stânga la dreapta începând cu COM2), adresele de magistrală
ale echipamentelor, denumirea variabilelor, adresele regiştrilor şi funcţiile Modbus
utilizate.

Fig 6.16 Magistrala Modbus și dispunerea echipamentelor

6.2. Prezentarea interfeței cu utilizatorul

Transmiterea informaţiilor între operatorul uman şi calculator se realizează


utilizând ecrane grafice, care compun interfaţa HMI. Funcţiile ecranelor realizate sunt

47
de a prelua comenziile date de operator, de a le transmite automatului programabil şi
de afişarea valorilor preluate de la traductoarele montate pe sistemul mecanic şi
transmise către automatul programabil, care au scopul de a aduce la cunoştinţa
medicului/operatorului informaţiile necesare legate de desfăşurarea exerciţiului.

Pentru această aplicaţie au fost create 8 ecrane, care prezintă meniul de


navigare prin aplicaţie, cele 2 moduri de lucru şi funcţiile conexe necesare pentru
bună desfăşurare a aplicaţiei sistemului.

Ecranele create sunt următoarele:

 Ecranul de start;

 Ecranul meniu;

 Ecranul pentru înregistrarea pacientului;

 Ecranul pentru executarea procedurii de cântărire a pacientului;

 Ecranul pentru rularea aplicaţiei în modul local – de mentenanţă;

 Ecranul pentru rularea aplicaţiei în modul manual;

 Ecranul pentru completarea fişei;

 Ecranul pentru desemnarea traiectoriei.

La pornirea aplicaţiei, primul contact al utilizatorului este cu ecranul de start.


Ecranul de start oferă informaţii despre aplicaţia căruia îi este destinată şi permite
utilizatorului înregistrarea în aplicaţie cu ajutorul unui nume de utilizator şi o parolă
apăsând butonul login. Înregistrarea are ca scop limitarea folosirii sistemului de către
persoanele neautorizate.

Fig 6.17. Ecranul de start al interfeței cu utilizatorul

48
Fig 6.18 Ecranul de start după apăsarea butonului de login

După autentificarea utilizatorului în sistem, ecranul meniu apare în locul


ecranului de start. În acest ecran se poate observa ce utilizator este înregistrat în
acel moment în sistem, de cât timp este înregistrat în sistem, din ce clasă de
utilizator face parte, data, ora şi meniul principal al aplicaţiei.

La apăsarea butonului OK, dacă datele de autentificare sunt corecte, se


setează o variabilă internă trigger la valoarea 1 pentru a se porni un timer care să
măsoare timpul sesiunii curente.

Meniul are 4 opţiuni:

 Înregistrarea pacientului – utilizat pentru a introduce, datele personale


considerate importante ale pacientului. Din acest meniu se apelează
procedura de cântărire a pacientului

 Modul mentenanţă – este utilizat pentru a accesa modul de operare de


mentenanţă, în care comenzile vor fi date de către operator, manual,
utilizând butoanele de pe ecran.

 Modul manual – este utilizat pentru a accesa modul de operare în care


medicul controlează pas cu pas procedura de tratament a pacientului,
utilizând ecranul de traiectorie pentru a crea un traseu pe care pacientul să îl
urmărească.

 Logout – procedura prin care un utilizator se deconectează de la sistem.

49
Fig 6.19. Ecranul meniu al interfeței cu utilizatorul

Următorul pas în procedura de execuţie, este înregistrarea datelor


pacientului. Prin introducerea datelor personale, se va pregăti o fisă a pacientului
care va putea fi exportată în care va apărea numele, prenumele, CNP, greutatea
cântărită la începutul procedurii de recuperare şi o notă a medicului despre condiţia
acestuia. Pentru a afla greutatea pacientului trebuie executată procedura de
cântărire.

Fig 6.20. Ecranul înregistrare pacient

50
La apăsarea butonului „Cântărire Pacient” din ecranul „Înregistrare Pacient”
se va deschide ecranul „Cântărire Pacient”. În acelaşi timp, variabila CMB
corespunzătoare unei comenzi manuale va fi setată la valoarea 1. Rolul acestei
variabile este de a informa programul ce rulează pe automatul programabil despre
faptul că a fost autorizată o comandă manuală.

Fig 6.21. Ecranul „Cantarire Pacient”

După ce pacientul este fixat în suport, cântărirea acestuia se face astfel:

 Se ridică pacientul apăsând pe butonul „Ridicare pacient” până când


greutatea acestuia este în totalitate susţinută de sistem;

 Se ajustează curelele astfel încât cele două valori de la traductoarele de forţă


să fie aproximativ egale (pacientul trebuie să fie în echilibru) ;

 Se observă stabilizarea valorii greutăţii (greutatea constă în suma valorilor


primite de la cele două traductoare de forţă);

 Medicul apasă butonul „Stocare valoare”;

 Pacientul este coborât folosind butonul „Coborâre pacient„ până când acesta
îşi susţine un procent din greutatea sa corporală (poate fi toată greutatea sau
o parte în funcţie de decizia medicului.

Pentru mai multă siguranţă, modul de trimitere al valorilor variabilelor


asociate butoanelor Ridicare pacient şi Coborâre pacient a fost setat ca handled.
Aşadar, variabilele asociate butoanelor au valoare 1 atât timp cât sunt menţinute în
poziţie apăsat.

51
Butonul Ridicare pacient este asociat parametrului SDSZ_s, iar butonul
„Coborare pacient” este asociat parametrului SDJZ_s din programul automatului
programabil.

După operaţiunea de cântărire, prin apăsarea butonului înapoi se realizează


închiderea ecranului cântărire pacient şi redeschiderea ecranului „Fisa pacient”.

Pentru simplitatea în exploatare şi evitarea posibilelor greşeli în realizarea


procedurii de cântărire a pacientului procedura de coborâre a acestuia este
condiţionată de operaţiile de ridicare şi cântărire. După apăsarea butonului „Stocare
valoare”, se activează butonul „Coborâre pacient” şi se dezactivează butonul
„Ridicare pacient„. În cazul în care este nevoie, procedura de cântărire a pacientului
se poate reface după salvarea în prealabil a fişei pacientului.

După terminarea completării câmpurilor de date din ecranul Fisa pacient,


utilizatorul va apăsa butonul „Salvare fisa”, pentru a scrie informaţiile într-un raport
tabelar, compatibil Microsoft Excel. Acest lucru se realizează prin rularea unui script
în VBA.

După completarea şi salvarea fişei pacientului, următorul pas este


configurarea unui exerciţiu. Pentru acest lucru, se apasă butonul înapoi din ecranul
Fisa pacient şi se revine la ecranul Meniu. Din acest ecran se selectează modul
manual de funcţionare şi se va deschide ecranul modului manual.

Fig 6.22. Ecranul modului de funcționare manual

52
În ecranul modului manual, medicul poate introduce parametrii mişcării cum
ar fi viteza compusă pe axele X şi Y, poate introduce o traiectorie cu ajutorul
ecranului Traiectorie. Această traiectorie este limitată la 6 segmente.

De asemenea în cadrul ecranului Mod manual se afişează parametrii ca


viteza descompusă pe fiecare axă (asociate parametrilor RVSX_s şi RVDY_s din
programul automatului programabil), viteza de rotaţie (asociată parametrului RVUR_s
din programul automatului programabil), distanţa de parcurs, coordonatele poziţiei
viitoare în care va ajunge sistemul.

În partea stângă a ecranului este reprezentată mişcarea sistemului pe


direcţiile X-Y, poziţia actuală în timp real a sistemului fiind reprezentată cu un cerc
roşu iar poziţia viitoare cu un cerc galben.

La apăsarea butonului Start exerciţiu se va activa o variabilă trigger care va


porni un timer pentru cronometrarea duratei exerciţiului şi se vor activa butoanele de
comandă: “Start mişcare”, “Traiectorie” şi “Mişcare manuală”.

Butonul „Mişcare manuală” activează cele 8 butoane: „Start mişcare Y


înainte”. „Start mişcare Y înapoi”, „Start mişcare X stanga”, „Start mişcare X dreapta”,
„Start rotaţie dreaptă”, „Start rotaţie stanga”, „Sus mişcare Z”, „Jos mişcare Z”.
Comportamentul sistemului în cazul utilizării acestor butoane este asemănător cu
acţiunea butoanelor din modul „Mentenanta”. Aceste butoane permit medicului
adjustarea poziţiei pacientului. Acest lucru poate fi necesar în special înainte de
pornirea unui exerciţiu automat.

Fig 6.23. Ecranul „Miscare manuala” după apăsarea butonului start exercițiu

La apăsarea butonului „Traiectorie” se va deschide ecranul corespunzător.

53
Fig 6.24. Ecranul „Traiectorie”

În ecranul traiectorie, parametrul „Segmente” selectează numărul de


segmente care vor fi luate în considerare pentru definirea traiectoriei. Numărul maxim
este 6. Segmentele se pot introduce fie de la tastatură în câmpurile corespunzătoare
parametrilor poziţie pe axă X şi Y, fie prin operaţiunea drag and drop asupra
cerculeţelor galbene numerotate din reprezentarea grafică a planului situată în partea
dreaptă a ecranului. Cerculeţul roşu indică poziţia actuală a sistemului.

Butonul „Anulare” resetează valorile coordonatelor punctelor la valoarea 0.

La apăsarea butonului „Acceptare” valorile sunt validate şi apoi sunt stocate


în variabile interne. În acelaşi timp, ecranul „Traiectorie” este închis şi se redeschide
ecranul “Mod manual”.

La apăsarea butonului „Start mişcare”:

 Se preiau punctele de traiectorie

 Se aleg punctele poziţie curentă(cu parametrii xb,yb), poziţie viitoare(cu


parametrii xc,yc) şi un punct convenabil ales (xa=xb, ya=6).

 Se formează un triunghi şi se calculează unghiul determinat de dreptele


formate din punctele poziţie curentă – punct convenabil ales şi poziţie
curentă – poziţie viitoare după formula:

54
(𝑥𝑏−𝑥𝑐)2 +(𝑦𝑏−𝑦𝑐)2 +(𝑥𝑎−𝑥𝑏)2 +(𝑦𝑎−𝑦𝑏)2 −(𝑥𝑐−𝑥𝑎)2 −(𝑦𝑐−𝑦𝑎)2
𝑢𝑛𝑔ℎ𝑖 = arccos⁡ (6.9)
2∗√(𝑥𝑏−𝑥𝑐)2 +(𝑦𝑏−𝑦𝑐)2 ∗√(𝑦𝑏−𝑦𝑎)2 +(𝑥𝑏−𝑥𝑎)2

Formula a fost dedusă din teorema cosinusurilor într-un triunghi oarecare,


cunoscută şi sub denumirea de Teorema lui Pitagora generalizată [10].

Unghiul calculat mai sus nu ţine cont de poziţia punctului poziţie viitoare faţă
de axa determinată de punctul ales convenabil şi punctul poziţie actuală.
Determinarea poziţiei se va face în continuare utilizând testul de orientare a unui
punct faţă de un vector.

 Se asociază valoare unghiului cu parametrul TPU_s din programul


automatului programabil;

 Se calculează determinantul

1 1 1
𝑑𝑒𝑡 = |𝑥𝑎 𝑥𝑏 𝑥𝑐 | (6.10)
𝑦𝑎 𝑦𝑏 𝑦𝑐

Determinantul indentifică poziţia punctului C (poziţie viitoare) în raport cu


vectorul orientat astfel: dacă determinantul este 0, punctul se află pe dreapta AB,
dacă determinantul este negativ, punctul se află „în dreapta” vectorului şi dacă
determinantul este pozitiv punctul se află „în stânga” vectorului [9].

 Se asociază valoarea determinantului cu parametrul Direcţie_s din programul


automatului programabil

o Direcţie_s=1, dacă determinantul este pozitiv;

o Direcţie_s=2, dacă determinantul este negativ;

o Dacă determinantul este 0, se determină dacă punctul poziţie viitoare


este situat deasupra sau dedesubtul punctului poziţie curentă (este
comparat yc cu yb). Dacă yc>yb atuncti Direcţie_s=4, altfel
Direcţie_s=5.

 Se transmit valorile Direcţie_s şi TPU_s către automatul programabil;

 Se setează parametrul CSEM_s la valoarea 1;

 Se aşteaptă ca mişcarea de la acest pas să se încheie, lucru semnalizat de


parametrul BTM_s către trece la valoare 1;

 Se repetă acest algoritm pentru numărul de segmente ales

Butonul „Completează fişa” din ecranul „Mod manual” deschide ecranul „Fisa
pacient” iar medicul poate completa fişa salvată iniţial după operaţiunea de cântărire.

55
Din ecranul „Meniu” se poate deschide ecranul „Mod mentenanţă”. În
momentul apăsării butonului „Mod mentenanţă” se setează la valoarea 1 parametrul
asociat CMB_s din aplicaţia de pe automatul programabil. Acest parametru
autorizează comenzile manuale.

Fig 6.25. Ecranul modului „Mentenanta”

În cadrul acestui ecran se pot vizualiza valorile măsurate de traductoare,


starea limitatoarelor de cursă, frecvenţa curentului de ieşire al convertizoarelor de
frecvenţă, poziţia curentă a sistemului marcată cu un cerculeţ roşu din reprezentarea
schematică a sistemului din partea stângă a ecranului. De asemenea se pot da
comenzi de mişcare către toate cele cinci motoare cu o viteză mică, prestabilită în
aplicaţia automatului programabil.

Butoanele din partea de jos a paginii au că parametrii asociaţi în aplicaţia


automatului programabil astfel:

 Butonul „Start Mişcare X stanga” – SDIX_s;

 Butonul „Start Mişcare X dreapta” – SDRX_s;

 Butonul „Start Mişcare Y înainte” – SDIY_s;

 Butonul „Start Mişcare Y înapoi” – SDRY_s;

 Butonul „Mişcare Z ridicare” – SDSZ_s;

 Butonul „Mişcare Z coborâre” – SDJZ_s;

 Butonul „Start Rotaţie Dr” – SMRD_s;

 Butonul „Start Rotaţie St” – SMRS_s.

56
La fel ca în cazul operaţiunii de cântărire pacient, modul de trimitere al
valorilor parametrilor asociaţi butoanelor de mai sus este setat ca handled. Acest
mod trimite ca valoare a parametrului asociat valoarea 1 atât timp cât butonul este
ţinut apăsat.

57
7. Concluzii
Unul din obiectivele proiectului, aşa cum este definit în introducerea lucrării, a
fost realizarea unui sistem mecatronic pentru recuperarea pacienţilor cu afecţiuni
neurologice centrale, utilizând elemente componente ce se găsesc pe diversele pieţe
la momentul actual.

Reducând acest obiectiv strict la sistemul de comandă şi control, putem


spune că acesta a fost în totalitate îndeplinit, utilizând produse de la producători
consacraţi în domeniile lor de activitate: Wago (automate programabile),
ArcInformatique (sisteme SCADA).

În elaborarea acestui proiect au fost consultate atât diversele cursuri studiate


la facultate cum ar fi: Acţionari, Automate programabile şi microprogramare,
Traductoare şi sisteme de măsurare, Sisteme avansate de comunicaţii pentru mediul
industrial, cât şi elemente de geometrie analitică (calculul unghiului dintre două
drepte, stabilirea poziţiei unui punct în raport cu o dreaptă).

Cel puţin din punctul de vedere al sistemului de comandă şi control se pot


realiza îmbunătăţiri ulterioare. Pentru sporirea siguranţei în exploatare se pot adăuga
limitatoare de cursă pentru mişcarea de rotaţie în jurul axei Z. Pentru un control mai
precis al vitezei de deplasare se pot adăuga traductoare de turaţie pe ieşirile
motoarelor şi stabilirea unor algoritmi de control în buclă închisă. De asemenea se
poate regândi arhitectura software-ului pentru ca sistemul de comandă şi control să
fie uşor scalabil.

58
8. Bibliografie
1. Florin Ionescu, Radu Dobrescu. Modelling complex mechatronic systems
2. Petre Lucian Seiciu. Active Walking Mechatronic System for
NeuroRehabilitation. Matematical Applications in Science and Mechanics; p.
225-230.
3. Keith Stouffer, Joe Falco, Karen Kent. Guide to Supervisory Control and Data
Acquisition (SCADA) and Industrial Control Systems Security.
4. Inductive automation. Design like a pro.
5. S. Djiev. Industrial Networks for communication and control.
6. MODICON, Inc., Industrial Automation Systems. Modicon Modbus protocol
reference gude, 1996
7. http://www.omtr.pub.ro/cesit/granturi/simesim/
8. http://www.omtr.pub.ro/cesit/granturi/RELIVE/
9. Mihai-Sorin Stupariu. Geometrie computationala – suport de curs, 2015-2016
10. https://ro.wikipedia.org/wiki/Teorema_cosinusului
11. http://www.rtaautomation.com/technologies/modbus-rtu/
12. http://www.pcvuesolutions.com/index.php/pcvue-hmiscada/scada-features
13. S. Dumitriu. Motoare asincrone trifazate – suport de curs.
14. Kark-Heinz John, Michaeln Tiegelkamp. IEC-61131-3: Programmig Industrial
Automation Systems.
15. V. Sgârciu. Traductoare și sisteme de măsurare – suport de curs.

59

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