Sistem S.c.a.d.a. Integrat Pentru Asigurarea Sigurantei In Functionare

1. Introducere

1.1 Motivația și scopul proiectului

Lucrarea are ca scop studiul controlului la distanță al unui ansamblu format din două macarale printr-o interfață grafică în condiții de securitate sporită. Se va realiza o aplicație care permite controlul de la distanță al macaralelor fiind mereu supravegheate de o cameră video care nu va permite ciocnirea accidentală a acestora. Instalația este construită în scop didactic dar poate fi extinsă și în mediul industrial.

Acest proiect de licență îmbină cunoștințele dobândite la materiile studiate pe parcusul celor patru ani de facultate cum ar fi:

Automate programabile si microprogramare

Sisteme de conducere a proceselor industriale

Programarea aplicațiilor in timp real

Sisteme integrate de conducere

Odată cu dezvoltarea economică si socială, se poate observa o creștere considerabilă a numarului de noi construncții. La baza construirii acestora există un întreg sistem de utilaje menite să susțină întreg procesul. Printre acestea, importante de menționat sunt macaralele. Acestea pot fi de mai multe feluri și sunt nelipsite din orice zonă de construcție.

În această lucrare se va face referire la cele de tip turn, scopul fiind dezvoltarea unui sistem de control, în timp real, a acestora. Macaralele de tip turn pot fi utilizate într-o multitudine de activități, având o rază de acțiune foarte variabilă. Acestea se pot utiliza în șantiere de construcții industriale, navale sau civile pentru manipularea materialelor necesare. Un alt avantaj al folosirii macaralelor de tip turn în domeniul construcțiilor este reprezentat de precizia mișcărilor efectuate și de controlul deținut asupra modului de acționare (viteza de ridicare si coborâre a sarcinii, așezarea sarcinii pe suprafața de lucru). [1]

Frecvența utilizării acestor utilaje a condus la punerea problemei legate de siguranța personalului care le manipulează și a mediului de lucru. Astfel, a început să se pună accentul pe sistemele capabile să gestioneze totalitatea aspectelor ce țin de securitate. Printre aceste aspecte se numără chiar și eliminarea operatorului macaralei, tinzându-se spre un control în timp real, de la distanță, cu un grad ridicat de precizie. Acest lucru este menit să garanteze siguranța întregului șantier.

În această lucrare am încercat sa simulez un scenariu de lucru pe șantier în care în urma unei erori umane două macarale au posibilitatea să se ciocnească dar în urma implementării sistemului de securitate de monitorizare și control video este eliminat acest pericol.

Această măsură de siguranță aplicată unui sistem de macarale este unică deocamdată dar în același timp e destul de greu de implementat în realitate. Printre măsurile de securitate deja aplicate macaralelor se numără dispozitivele de oprire a macaralelor în caz de vânt, limitatoarele de cursă, limitatoarele de viteză. În urma unor eforturi mai mari să sperăm că și această metodă pe care o voi prezenta se va implementa pe șantiere în viitorul apropiat.

1.2 Descrierea instalației

Instalația folosită reprezintă un ansamblu de două macarale în miniatură de tip turn (Macaraua A și Macaraua B ca în figura 1.2.1). Pentru a asigura si partea de securitate am amplasat o cameră web deasupra acestora care va monitoriza în permanență mișcările macaralelor. Prin intermediul unui program dezvoltat în Matlab de achiziție si prelucrare de imagine și cu ajutorul unei plăci de achiziție de date putem genera o intrare digitală automatelor în cazul în care există riscul ca macaralele să se ciocnească. Pe această intrare va fi setată o pe fiecare automat câte o ieșire care va opri toate mișcările macaralelor.

Figura 1.2.1 – ansamblul de macarale

Ansamblul prezentat în figura 1.2.1 este format din

Macara în miniatură de tip turn care 3 motoare care asigură 3 mișcări: pentru mișcarea pe orizontală ( înainte – înapoi ), pentru mișcarea pe verticală ( sus – jos ) și pentru mișcarea unghiulară ( rotire stânga – rotire dreapta )

Macaraua B are doar 2 motoare care asigură doar mișcarea pe verticală și mișcarea unghiulară

Panou de culoare roșie pentru a detecta vârful macaralei A

Panou de culoare roșie pentru a detecta vârful macaralei B

Motoarele celor două macarale sunt conectate la ieșirile digitale ale automatelor. Aceste motoare pot fi acționate independet sau simultan. Alimentarea macaralei se poate face în două moduri. Pentru utilizarea joystick-ului, alimentarea se va face cu patru baterii AA iar pentru utilizarea plăcuței cu relee alimentarea se va face separat, de la o sursă de tensiune continuă.

Conectarea macaralei la atuomat se realizează cu ajutorul unei mufe “sub D – tată“ și o mufă “sub D – mamă” la capătul dinspre automat. Cu ajutorul acestor mufe se poate realiza foarte ușor cuplarea de la joystick și cuplarea de la automat și invers. Toate aceste elemente componente ale instalație vor fi tratate mai în amănunt în capitolul 4 – Solutia Hardware

Panoul de comandă al macaralei a fost înlocuit de o interfață grafică SCADA destul de prietenoasă care asigură controlul de la distanță care va fi prezentata pe larg în capitolul 5 – solutia Software. Interfața SCADA comunică la rândul ei cu automatele programabile Allen-Bradley 1756 – L55 ControlLogix oferite de Rockwell Automation care au încărcate pe ele programele ce comandă mișcările macaralelor. Comunicarea dintre interfață și automate se realizează prin conexiune Ethernet, fiind legate toate în rețea (calculatorul pe care a fost proiectată interfața și cele două automate), aparținându-i fiecărui echipament câte un IP static.

Pentru achiziția semnalelor și pentru a da comandă automatelor ca macaralele să se oprească sunt folosite următoarele echipamente: o placă de achiziție NI 9474 de la National Instruments, un sașiu Compact DAQ 9172 (cDAQ) tot de la National Instruments care au rolul de a transmite semnalele către macara și de a le converti în semnale specialitare plăcii de achiziție și o cameră web A4tech care are rolul de a achiziționa imaginile.

Elemente de execuție identificate în sistem:

Automatele Allen-Bradley

Placa de achiziție NI 9474

Șasiu NI Compact DAQ9172

Dispozitive auxiliare:

Camera web A4tech

Mărimi de comandă:

Cele 5 motoare de pe macarale ce sunt comandate prin intermediul interfeței SCADA si al plăcii de achiziție

Mărimi de intrare:

Imaginile achiziționate cu ajutorul camerei

Comenzile date din interfață prin intermediul butoanelor

Mărimi de ieșire:

Ieșirile digitale din automat care generează comanda motoarelor

1.3 Descrierea soluției propuse

Figura 1.3.1 – Soluția propusă

Cele două automate sunt programate astfel încât să asigure controlul de la distanță al macaralelor. Cele două macarale pot fi comandate simultan dintr-o interfață SCADA care se află pe un calculator legat la rețea, la fel ca și cele două automate.

Camera web este amplasată deasupra ansamblului de macarale fiind atașată de un cadru improvizat. Aceasta captează și prelucrează imaginile. Captarea imaginilor se face in format RGB. Din format RGB se transformă imaginea în nuanțe de gri de unde este extrasă culoarea roșie. Apoi imaginea RGB este transformată în imagine alb – negru ( black&white ) care are o reprezentare sub forma de matrice ce are ca valori doar 0 si 1 ( valoarea ‘0’ pentru negru și valoarea ‘1’ pentru alb).

Pe brațele macaralelor, la capete, a fost amplasat câte un pătrat de culoare roșie care sa fie recunoscut de camera web ( văzut ca BLOB = Binary Large OBject) și care să fie monitorizate în timp real. Programul realizat calculează distanța dintre centrele de greutate ale celor două puncte detectate și prin intermediul plăcii de achiziție va activa o intrare digitală pe fiecare automat în cazul în care distanța se micșorează până în punctul în care este pusă în pericol funcționarea în condiții de siguranță a macaralelor.

2. Sisteme SCADA

2.1 Generalități: ce este SCADA și la ce folosește

SCADA este un acronim care vine de la expresia din limba engleză “Supervisory Control And Data Acquisition”. Chiar dacă expresia de la care vine termenul SCADA nu face referire la termenul distanță, care este comun celor mai multe sisteme SCADA, acronimul SCADA este totuși un acronim bun. Un sistem SCADA permite unui operator aflat într-o locație centrală a unui proces distribuit pe o arie largă, precum un câmp petrolier sau de gaze, un sistem de distribuție prin conducte, sistem de irigații sau un sistem hidroelectric, să realizeze schimbări de referințe pentru controlerele proceselor aflate la distanță, să deschidă sau să închidă valve sau comutatoare, să monitorizeze alarme, să strângă informații măsurate de la proces. [2]

Când dimensiunile procesului devin foarte mari – sute sau chiar mii de kilometri de la unul la celălalte – atunci se pot aprecia mai mult beneficiile aduse de SCADA, precum reducerea costurilor vizitelor de retina pentru a monitoriza funcționarea instalațiilor/proceselor. Valoarea acestor beneficii va crește și mai mult dacă aceste instalații sunt foarte depărtate și cer un efort deosebit pentru a fi vizitate.

O aplicație de tip SCADA implică două elemente:

Procesul ce trebuie să fie monitorizat și controlat.

O rețea de echipamente inteligente care se interfațează cu primul sistem prin intermediul senzorilor și al mecanismelor de control. Această rețea, care este sistemul SCADA, oferă posibilitatea monitorizării avansate și a controlului primului sistem prezentat

Un sistem SCADA poate fi construit folosind mai multe tipuri de tehnologii și protocoale ce vor fi prezentate în subcapitolele următoare.

Procese potrivite utilizării SCADA:

Instalațiile de producere a petrolului sau gazului – incluzând sonde, sisteme de depozitare, echipamente de măsurare pentru fluide, pompe – sunt deseori împrăștiate pe o arie întinsă; cer un control relativ simplu precum pornirea/oprirea unor motoare, este nevoie de strângerea unor informații ce se măsoară regulat și trebuie să răspundă rapid la condițiile din restul instalațiilor

Sistemele de transport prin conducte pentru gaze, petrol, substanțe chimice, apă, au elemente care sunt localizate la distanță față de un punct central de control, pot fi controlate prin închiderea sau deschiderea unor valve sau pornirea/oprirea unor pompe și trebuie să fie capabile să răspundă rapid la condițiile pieții sau la o scurgere de materiale periculoase, dăunatoare mediului ambiant.

Managementul traficului, automatizarea traficului feroviar, controlul semnalelor luminoase și al macazurilor; descongestionarea traficului rutier prin integrarea sistemelor de supraveghere video cu telecomandarea semafoarelor

Sistemele de irigații acoperă deseori sute de kilometric pătrați și pot fi controlate prn închiderea sau deschiderea unor comutatoare

Dacă sunt înțelese domeniile de aplicare ale solutiilor SCADA si beneficiile acestora, trebuie văzute și la avantajele pe termen lung pe care le oferă ca și instrument de analiză:

Acces la date importante de proces, atât în timp real cât și istoric, cu posibilități de structurare și raportare flexibile

Analiza trend-urilor de process

Descoperirea și corectarea punctelor de încetinire ale procesului

Reducerea schemelor de personal și a costurilor implicate

O soluție SCADA oferă un instrument de optimizare al proceselor și de creștere a eficienței. Se poate alege orice punct considerat critic în proces pentru a fi monitorizat și controlat. SCADA fiind o aplicație foarte flexibilă va crește odată cu procesul fără să fie necesară o investiție inițială care să acopere nevoi previzionate pe terment mediu și lung. Eficiența acestor sisteme se vede mai ales în procesele complexe și în rețelele cu distribuție teritorială importantă, unde vederea procesului din interior și concentrarea multor puncte distribuite într-un loc conduce la o creștere importantă a eficienței și la economii de costuri considerabile.

2.2 Structura unui sistem SCADA

O soluție SCADA îndeplinește patru funcții: [3]

Achiziție de date

Comunicarea datelor

Prezentarea datelor

Control

Sistemele SCADA sunt alcătuite din componente de natură diferită, acestea fiind conectate între ele. Schema principală a unui sistem SCADA este prezentată în figura 2.2.1. În continuare voi enumera principalele componente după natura lor urmând să precizez și rolul acestora.

Figura 2.2.1 – Schema principală a unui sistem SCADA

Aceste funcții sunt susținute de cele patru componente ale soluției SCADA:

Senzorii (digitali sau analogici) și releele de comandă care se interfațează direct cu procesul.

RTU-urile (Remote Terminal Units). Aceste echipamente inteligente sunt instalate pe teren pentru a prelua datele de la senzori pe de o parte și de a transmite comenzile la releele de comandă pe de altă parte.

Stația Master (Serverul SCADA) este o consolă care servește drept punct central al întregii aplicații. Stația Master beneficiază și de o interfață grafică prin care utilizatorul are acces la toate datele de proces și poate da comenzi pentru modificarea acestuia.

Infrastructura de comunicații care face conexiunea dintre stația Master și toate RTU-urile din teren

2.2.1 Achiziția de date

În viața reală o soluție SCADA poate monitoriza sute sau chiar mii de senzori, unii senzori măsurând intrări în proces iar alții ieșiri din proces. Senzorii digitali înregistrează evenimentele simple de tipul închis – deschis iar senzorii analogici înregistrează date mai complexe ce necesită măsurători.

Valoarea digitală a măsurătorii se preia de către un controller de teletransmisie (RTU) care evaluează rezultatul măsurătorii și pentru unele cazuri obținute inițiază efectuarea unor comenzi și comunică rezultatele măsurătorii către sistemul central de prelucrare.

Pentru factorii analogici se definește o zonă de normalitate, definind plafonul maxim și pe cel minim acceptabil (exemplu: temperature din camera serverelor trebuie menținută în intervalul 15-20 grade Celsius). Există și sisteme mai avansate care permit patru nivele de alarmare pentru evenimentele analogice: mult sub cota minimă, puțin sub cota minimă, puțin peste cota maximă, mult peste cota maximă.

2.2.2 Comunicarea datelor

Primele sisteme SCADA comunicau prin radio, modem sau linii seriale dedicate. Astăzi datele de cele mai multe ori se trimit prin Ethernet sau IP. Din motive ce țin de securitatea datelorse recomandă ca acestea să fie tranzitate prin LAN/WAN fără a le expune pe Internet. Sistemele SCADA reale nu comunică prin simple impulsuri electrice, datele fiind împachetate în format protocol.

Componentele de comunicații oferă mijloacele fizice de legături dintre componente. Între diferitele elemente pot exista foarte multe mijloace de comunicații, de exemplu sistemul central de prelucrare va fi alcătuit din echipamente ce sunt conectate între ele prin LAN dar legătura dintre sistemul central de prelucrare și elemetele amplasate la distanță (componentele de măsurare, componentele de acționare și automatizare, echipamentele decizionale locale) se va face prin alte mijloace de comunicații: linii telefonice, mijloace de comunicații radio terestre, mijloace de comunicații prin sateliți. Pentru sistemul central de prelucrare se va folosi un sistem de operare în timp real care să poată oferi serviciile necesare pentru timp de răspuns rapid.

Opțiune LAN este justificată doar pentru comunicașii pe distanțe mici între echipamentele de conectat, modemurile se pot justifica pentru distanțe medii sau mari și în cazul în care este disponibil câte un capăt de linie telefonică pentru fiecare punct din care se dorește transmisie de date, stațile radio terestre sunt o opțiune pentru comunicarea cu puncte cu dispersie teritorială mare iar comunicațiile prin satelit pentru punctele la distanță foarte mare.

Senzorii și releele de control sunt echipamente electrice foarte simple care nu pot genera sau decodifica protocoale de comunicații. Aceste este rolul unui RTU pentru a le interfața cu Stația Master. RTU-ul decodează datele culese de la senzor in format protocol și de a le transmite în această formă către stația Master și invers, RTU primește comenzi codate de la stația Master și trimite comenzile decodate prin semnale electrice către releele de control aferente

2.2.3 Prezentarea datelor

Stația Master îndeplinește mai multe funcții:

Monitorizează permanent toate punctele critice și alarmează operatorul la depășirea pragurilor de alertă prestabilite

Prezintă o imagine de ansamblu a procesului monitorizat și detaliază informațiile la comandă

Procesează datele culese, păstrează liste de log-uri și sumarizează serii cronologice de date [4]

O interfață om – mașină (HMI = Human Machine Interface) este un dispozitiv de intrare – ieșire prin care operatorul uman controlează procesul și care prezintă datele de process la operatorul uman. Această interfață este legată de obicei la bazele de date ale sistemului SCADA.

Sistemul HMI prezintă informația personalului printr-o interfață grafică sub forma unei scheme sinoptice. Aceasta înseamnă că operatorul poate vedea o reprezentare schematică a întregului sistem. De exemplu, pentru un sistem care are în componență o conductă interfața HMI poate arăta operatorului cum funcționează pompa, parametrii de intrare, ieșire și poate variabilele și în timp real poate reprezenta cât de mult lichid este pompat prin coductă în acel moment.

Figura 2.2.3.1 – Exemplu Interfață HMI

2.2.4 Control

Datele culese de modulele de măsurare trebuie să ajungă elementele locale și centrale de prelucrare iar pe de altă parte și comenzile date de operatori sau procedurile inițiate de sistemul central de prelucrare sau de cele locale de decizie trebuie să ajungă la elementele de execuție din aceasta rezultând necesitatea serviciul de control și comandă la distanță.

Operatorii trebuie să poată urmări pe un panou sinoptic mare dispunerea rețelei cu afișarea celor mai importante știri. Acest panou trebuie să poată oferi o vedere de ansamblu a întregii rețele, cu informațiile esențiale de stare fără a fi supraîncărcat. Pe acele afișaje trebuie să fie disponibile operatorului anuimite comenzi ce pot iniția operații ale elementelor de execuție de la distanță. Afișarea datelor și a posibilelor elemente de comandă împreună cu programele ce deservesc aceste funcții asigură controlul sistemului.

Urmărirea și analiza tendințelor este esențială pentru a putea lua deciziile corecte. Acest serviciu presupune jurnalizarea datelor pe de o parte iar pe de altă parte analize predictive. Acestea amândouă sunt legate și de serviciile de afișare. Analizele de consum sunt utile pentru depistare vârfurilor de consum zilnice, săptămânale, lunare sau anuale iar pe baza acestor date se pot seta parametrii pentru analizele predictive, rezultatele acestora ușurând munca operatorilor.

Urmare a luării unor decizii, operatorii vor iniția anumite acțiuni iar acestea vor apela la serviciile de lansare a comenzilor la distanță. De asemenea este necesară urmărirea efectuării sau cel puțin a finalizării comenzilor date.

Un serviciu legat de achiziție de date și de control este verificarea datelor făcută de niște limite stabilite dinainte. Verificarea se face ca datele să fie valide, teletransmisia să funcționeze dacă există mod de test pentru RTU dacă valorile au fost extrase din baza de date locală sau dacă a apărut o eroare. Dacă a apărut una din condițiile excepționale se declanșează serviciul de alarmare.

Din sistemul de control al sistemelor SCADA un loc important este ocupat de serviciul de simulare. Acesta permite controlul avansat al rețelei permițând simularea rețelei, ceea ce oferă printre altele avantajul că se pot monta mai puține elemente de măsurare deoarece simularea va permite interpolarea valorilor și în unele puncte în care nu sunt montate asemenea instrumente.

Dispozitivul de intrare al operatorului este uzual o tastatură de calculator iar din ce în ce mai mult îi iau locul dispozitive precum touchscreen-ul sau mouse-ul. Pentru sisteme foarte simple un set de comutatoare electrice simple poate fi de-ajuns. Operatorul doar interfațează cu unitatea Master (MTU) care este controlerul sistemului. În unele industrii se utilizează termenul de “host computer” în loc de MTU. Altele utilzează termenul de “server”.

Unitatea Master în sistemele moderne se bazează întotdeauna pe un calculator. Poate monitoriza și controla procesul chiar dacă operatorul nu este prezent. Realizează aceasta prin intermediul unui secvențiator încorporat ce poate fi programat să ceară un updatede la fiecare unitate RTU. De exemplu poate sa ceară un update pentru fiecare unitate RTU la fiecare 3 minute. [5]

2.3 Unitățile RTU (Remote Terminal Unit)

Unitățile RTU realizează o legătură dublă cu MTU: retransmite către acesta informații culese de la instalație și executarea comenzilor primite. [6]

Figura 2.3.1 – Structura unui RTU

1. Intrări în RTU:

Comenzi discrete

Pulsuri pentru motoare

Comenzi de răspuns

Instrucțiuni analogice de setare

Alarmă binară (0/24V)

Stare instalație (0/24V)

Măsurare impulsuri

Interfețe seriale RS232

2. Ieșiri din RTU:

Semnale analogice

Alarme

Stare instalație

Mesaje echipamente

Pulsuri pentru motoare

Comenzi analogice

Tipuri de comenzi realizate de RTU:

Pentru conducerea rețelelor electrice există două tipuri de semnale de comandă care sunt utlizate de către sistemele SCADA:

Comenzi în impulsuri, cu durate de 0,5 ÷ 3 s, pentru comanda întreruptoarelor, comutatoarelor de ploturi, etc.

Comenzi permanete care sunt menținute până la o nouă comandă, cu semnificație contrară celei dintâi, cum ar fi comanda punerii în funcție respectiv a scoaterii din funcție a automatizărilor.

Comanda digitală: este reprezentată de aducerea la 1 a valorii biților coresepunzători echipamentelor respective. Toți regiștrii sunt citiți cicli, sincron cu semnalul de tact iar informația este transmisă într-un registru buffer care comandă driverele unor relee aflate pe o placă de ieșire. Releele asigură comanda elementelor de execuție (contactoare, bobine, electrovalve).

Comanda analogică: în acest caz se folosesc mai mulți biți pentru transmiterea comenzii: fiecare bit comandă p sursă de tensiune iar tensiunile de ieșire se însumează. Pentru transmiterea comenzii pe 8 biți, precizia este . Dacă este nevoie de o precizie mai bună se folosesc biții următorului octet.

Dacă este nevoie se pot folosi convertoare tensiune – curent și semnalul de ieșire poate fi transformat în semnal unificat 4 ÷ 20 mA. Transmiterea efectivă se face prin intermediul unor plăci de ieșire analogică.

Comanda în impulsuri: de obicei pentru realizarea acestui tip de comandă se folosește un registru de 16 biți astfel: primul bit arată sensul mișcării (1 – incrementare, 0 – decrementare) iar restul de 15 biți reprezintă numărul de pași care trebuie efectuat. Biții registrului nu sunt citiți simultan ci serial.

Comanda serială: din ce în ce mai multe elemente de execuție acceptă comanda numerică directă fiind prevăzute cu interfețe de comunicație serială. Pentru comanda acestora, RTU este prevăzut cu interfețe de tip RS 232. [6]

Cum trebuie ales un RTU ?

RTU-urile trebuie să comunice cu toate echipamentele din teren și să reziste la condiții grele de mediu. În continuare sunt câteva caracteristici ale unui RTU bine ales:

Constituțe robustă și rezistență la temperaturi extreme și umiditate. Este nevoie ca aplicația SCADA să fie permanent funcțională

Capacitate suficientă pentru a suporta echipamentele de teren dar nu mai mare decât este necesar. În fiecare punct critic este nevoie de un RTU care să poată face față creșterii estimate a numărului de senzori și relee de control

Surse de alimentare redundante. Fiind nevoie ca sistemul să fie funcțional 24/7, RTU-urile trebuie să suporte baterii și de preferat două alimentări

Memorie non – volatilă (NVRAM). Această memorie asigură salvarea datelor în cazul unei căderi de tensiune. Astfel update-urile software pentru RTU pot fi descărcate automat în teren fără a necesita deplasarea unei resurse umane

Control inteligent. RTU-urile au inclus opțiuni de automatizare pentru control local comandând diverse acțiuni pre – programate la anumite nivele înregisrtate de senzor fără intervenția stației Master

Sincronizarea orei

2.4 Unitățile MTU ( Maximum Transmission Unit)

Funcțiile unității MTU sau a serverului Master cum mai este cunoscut sunt următoarele:

Elaborarea comenzilor

Centralizarea datelor

Memorarea informațiilor

Comunicarea cu alte sisteme

Interfața cu operatorul

Pentru a putea realiza funcțiile specificate, unitatea MTU trebuie ca procesorul acesteia să cunoască foarte detaliat toți senzorii și elemntele de execuție conectați la sistem. Descrierea sistemului se face sub formă ierarhica ca în exemplul din figura 2.4.1.

Figura 2.4.1 – exemplu structura ierarhică a unui sistem SCADA local

Descrierea procesului pentru MTU se numește configurare și constă în completarea unor tabele de căutare pe care acesta le poate utiliza ori de câte ori are nevoie să actualizeze configurația procesului. Configurarea este similară cu configurarea unui calculator personal. După acesteă configurare MTU este capabil să utilizeze protocoalele corecte pentru fiecare caz.

Pentru configurarea legăturilor radio trebuie specificate mai mulți parametri: trebuie specificate numărul de RTU care intră în componența sistemului, identificarea acestora și echipamentele periferice conectate la fiecare dintre ele.

Legăturile dintre MTU și calculatoarele de nivel superior pot fi întrerupte accidental sau din cauza unor defecțiuni. În astfel de cazuri acestea se află în imposibilitatea să preia datele o perioadă. Capacitatea de memorare se dimensionează în funcție de timpul maxim estimat pentru eliminarea acestor defecțiuni.

În afară de aceste date care trebuie memorate pe durate relativ mici există date importante care trebuie memorate pe durate mai mari. Acestea sunt regimuri de funționare care la cererea operatorului sunt memorate în istoricul funcționării sau date care sunt necesare pentru a se putea face o reprezentare a evoluției sistemului pe durate mari. Prin integrarea MTU în sisteme rapide de calculatoare aceste date sunt transmise și memorate în baze de date centrale. Astfel memoria MTU rămâne disponibilă pentru informații vitale ale sistemului. [6]

Cum alegem stația Master (MTU) ?

Stația SCADA Master trebuie să prezinte datele în maniere cât mai utile pentru operator și să regularizeze inteligent procesul. Pentru a face posibilă aceasta trebuie îndeplinite următoarele caracteristici pentru MTU:

Răspuns programabil flexibil. O aplicație care oferă instrumente intuitive de programare a alertelor și a comenzii de control

Filtrarea alertelor. De obicei sunt foarte multe alerte, multe dintre ele simple alerte de log-uri de sistem, care acționează ca un motor spam și captează atenția operatorului de la problemele reale

Expandabilitate. O soluție SCADA este o investiție pe termen lung, de aceea trebuie să te asiguri că acceptă o dezvoltare ulterioară necesară.

Alertare 24/7 prin e-mail sau SMS

Suport pentru protocoale și echipamente multiple. Cu acest suport te asiguri că sistemul tău este protejat pe termen lung și sistemul SCADA implementat este flexibil [3]

3. Sisteme în timp real

„Sisteme în timp real” – este un un termen care a devenit de mare actualitate în ultimii ani, dar ce înseamnă cu adevărat acest termen este încă o întrebare de mare interes. La ora actuală se face confuzia foarte ușor confuzia între denumirile “sistem în timp real” și “sistem încorporat cu procesare în timp real”. Existența unei interacțiuni continue a acestuia cu mediul înconjurător presupune un sistem în timp real. Faptul că mediul extern se schimbă în timp real, acesta impune constrângeri timpului de procesare a informației în sistemul respectiv cu procesare în timp real.

“The Oxford Dictionary of Computing” explică faptul că un sistem în timp real este: “Orice sistem în care timpul la care se furnizează ieșirile este semnificativ. Aceasta se întâmplă deoarece intrările corespund unor modificări din lumea fizică și ieșirile trebuie să se raporteze la respectivele modificări. Întârzierea dintre timpul de intrare și timpul de ieșire trebuie să fie suficient de mică pentru ca promptitudinea să fie acceptabilă.” [GREH ‘98].

Sistemul în timp real este un sistem capabil să preia datele de intrare suficient de rapid pentru a garanta că nicio evoluție semnificativă nu este pierdută, să efectueze procesarea lor și să emită ieșirile în timp util pentru a avea certitudinea că se vor produce rezultate corespunzătoare. Sistemul în timp real poate de asemenea controla și reacționa simultan la diverse aspecte ale mediului.

Sistemele în timp real se disting de sistemele desktop prin cerințele de promptitudine. Promptitudinea unui raspuns întrun sistem desktop variază și nu este neapărat necesară pentru ca operația efectuată să fie corectă (de exemplu, dacă unui PC îi ia câteva secunde mai mult pentru a încărca un program în anumite condiții, întârzierea este acceptabilă). Promptitudinea răspunsului în sistemele în timp real este un ingredient predeterminat, inflexibil și necesar pentru ca operația efectuată sa fie corectă. Deci, putem afirma că promptitudinea într-un sistem desktop este importantă, în timp ce promptitudinea într-un sistem în timp real este critică.

Pentru obținerea unor rezultate coerente în raport cu timpul de execuție, timpul de procesare trebuie să fie suficient de mic, astfel încât funcționarea corectă a unui sistem în timp real este validată de corectitudinea rezultatului produs și de momentul de timp la care este generat acest rezultat. Generarea unui set complet de date pentru procesare este definită de un eveniment iar momentul la care trebuie livrat răspunsul este marcat de un deadline. [9]

Figura 3.1 – principiul de funcționare a unui sistem în timp real

3.1 Clasificare sisteme

În funcție de tipul deadline-ului, sistemele în timp real pot fi:

Sisteme în timp real de tip soft: întârzierea unui răspuns este importantă, dar nu este o problemă majoră. Frecvența acceptării încălcării unor deadline-uri este dictată de proiectare. Un sistem în timp real soft poate funcționa în cadrul toleranțelor, în cazul în care un deadline din fiecare cinci este pierdut. Acest tip de sistem presupune descreșterea utilității răspunsului în timp după expirarea deadline-ului, figura 3.1.1 c

Exemplei: sisteme din telecomunicații, multimedia

Sisteme în timp real de tip ferm: răspunsul își pierde utilitatea imediat după expirarea deadline-ului însă consecințele nu sunt grave, figura 3.1.1 b

Exemple: tranzacții într-o bază de date

Sisteme în timp real de tip hard: Un sistem este sistem în timp real hard în cazul în care incapacitatea de a răspunde la un eveniment într-un termen specificat este considerată un eșec complet al sistemului. Consecințele neîndeplinirii deadline-ului în cazul acestui tip de sisteme sunt imense, utilitatea răspunsului după expirarea deadline-ului fiind zero, figura 3.1.1. a

Exemple: sisteme de control al zborurilor

Figura 3.1.1 – Clasificarea sistemelor

3.2. Sisteme în timp real încorporate

Numim sistem în timp real încorporat un sistem în timp real înglobat într-un aparat, altfel spus caracterizat prin faptul că hardware-ul și , implicit și software-ul sunt încorporate în aparatul însuși. Exemple tipice de sisteme încorporate sunt cele care se referă la controlul TV – ului de la distanță, la cuptoare cu microunde, la telefoane mobile, avioane, mașini etc. Pentru a înțelege, în cazul acestora din urmă, nu avem un singur sistem încorporat, ci mai multe: unul controlează frânele (ABS), un altul monitorizează și controlează emisiile vehiculului, un al treilea afișează informații terțe pe tabloul de bord.

De asemenea, un calculator de uz general este, în sine, alcătuit din numeroase sisteme încorporate. De exemplu, avem un sistem încorporat la nivelul tastaturii, altul la nivelul plăcii video, apoi altele la nivelul modem-ului, hard disk-ului, plăcii de sunet, etc.

În unele cazuri, sistemele încorporate sunt conectate printrun fel de rețea de comunicații , dar aceasta nu este o cerință. Înainte de a termina acest capitol , un lucru trebuie clarificat: nu este suficient să spunem sisteme încorporate (embedded) , înțelegând că ele implicit sunt sisteme în timp real? Răspunsul este nu, pentru că nu toate sistemele încorporate sunt sisteme în timp real, așa cum nu toate sistemele în timp real sunt sisteme încorporate. Oricum, cursul nostru va avea în vedere sistemele în timp real încorporate.

3.3 Multitasking

Este deja foarte bine cunoscut faptul că o programare eficientă în domeniul sistemelor în timp real, în mod evident, vizând aici sistemele în timp real încorporate, este programarea multitasking.

Un task este un program sau o parte a unui program care reunește activități independente sau autonome, apte de a fi rulate simultan cu altele.

De exemplu, un program de procesare a textului și un program de calcul tabelar care rulează în același timp pe un sistem desktop sunt, fiecare dintre ele, task-uri. Acestea oferă posibilitatea de a face un calcul și de a edita un text simultan. Dar procesorul de text poate, de exemplu, să permită editarea unui document și tipărirea unui al doilea document, ambele acțiuni în același timp, posibil, al doilea în background. Deci, avem două tipuri de multitasking: multitasking noncooperativ, respectiv multitasking cooperativ.

Multitasking-ul non-cooperativ desemnează situația în care task-urile sunt programe de execuție separate. Task-urile care sunt programe de execuție separate, sunt numite procese [GREH'98] și, în acest caz, multitasking-ul non-cooperativ se numeste multiprocessing [GREH'98].

Multitasking-ul cooperativ desemnează situația în care task-urile sunt părți ale unui program sau, cu alte cuvinte, părți ale unui proces. Task-urile care sunt părți ale unui program sunt numite fire de execuție, iar în acest caz, pentru multitasking-ul cooperativ se folosește noțiunea de multithreading.

Evident, folosind această convenție a termenilor, putem spune că există următoarele noțiuni: multiprocessing, multithreading, și multiprocessing cu multithreading. În cele două cazuri de multitasking, nu doar denumirile sunt diferite, ci există și diferențe substanțiale – a se vedea următoarele paragrafe.

3.3.1 Multiprocessing

Un proces se materializează printr-o stare CPU curentă și o colecție de zone de memorie alocată de sistemul de operare. Această colecție constă în următoarele:

O zonă de cod care conține codul executabil al procesului

O zonă de stivă în care sunt implementate variabilele locale și argumentele funcțiilor și unde sunt făcute operațiile de salvare

O zonă de date unde sunt implementate variabilele globale

O zonă heap dedicată alocării dinamice

O zonă de sistem ce include informații cu privire la resursele alocate procesului respectiv cum ar fi structurile de date pentru deschiderea fișierelor

Un sistem de operare multiprocessing execută mai multe procese prin comutarea succesivă de la contextul unui proces la contextul altuia sau, altfel spus, prin comutarea de context.

Contextul unui proces constă în zonele sale de memorie și în starea CPU. Sistemul de operare comută între procese prin suspendarea execuției procesului curent, salvarea contextului său, încărcarea contextului noului proces și lansarea acestuia în execuție. Încărcarea contextului noului proces constă în a face accesibile zonele sale de memorie și în încărcarea regiștrilor CPU cu informațiile care au existat în ele când procesul a ieșit din rulare.

Sistemul de operare permite fiecărui proces să ruleze de la un moment de timp până la un timp maxim specific, numit o felie de timp. Când felia de timp a unui proces expiră, sistemul de operare selectează un alt proces, folosind un algoritm de dispecerizare și trece la contextul acelui proces. Deși la un moment dat de timp, un singur proces se execută, toate procesele fac progrese dacă sunt privite într-un interval de timp suficient de lung.

Deși toate procesele se află în memoria sistemului în același timp, doar zonele de memorie deținute de procesul curent sunt accesibile. În sistemele care dispun de o gestiune hardware a memoriei, sistemul de operare poate ușor să protejeze zonele de memorie ale proceselor inactive, astfel încât orice încercare de a le accesa să determine o eroare de protecție a memoriei. În sistemele care nu dispun de un manangement hardware al memoriei, o variabilă pointer cu valoare eronată poate conduce la citiri sau scrieri accidentale în zona de memorie a unui alt proces. Nu există însă, nicio modalitate de a citi sau scrie în mod intenționat în zona de memorie a unui alt proces, pentru că nu se pot obține informații cu privire la localizarea altor procese în memorie. Prin urmare, în cazul în care două procese trebuie să facă schimb de date, acest lucru este imposibil fără anumite mecanisme speciale, numite mecanisme de comunicare.

3.3.2 Multithreading

După cum am văzut, un fir de execuție este un flux autonom de execuție în cadrul unui proces. Într-un sistem de operare multithreading, un proces este format din unul sau mai multe fire de execuție. Toate firele de execuție dintr-un proces partajează aceleași zone de memorie de cod, de date, heap și de sistem ale procesului. Fiecare fir de execuție are o stare CPU separată și o zonă de stivă separată.

Pentru că toate firele de execuție ale unui proces partajează aceleași zone de memorie pentru date si heap, toate datele globale din proces pot fi accesate de către oricare din firele de execuție.

Pe de altă parte, dat fiind că fiecare fir de execuție are propria stivă, toate variabilele locale și argumentele funcțiilor sunt private unui fir specific.

Firele sunt legate mult mai puternic între ele decât procesele și tind să interacționeze mult mai mult decât o fac procesele deoarece firele de execuție partajează același cod și aceleași date globale. Din acest motiv, sincronizarea între taskuri se utilizează mai mult în aplicațiile de multithreading decât în aplicațiile de multiprocessing. Modalitățile prin care problemele de sincronizare și de comunicare sunt rezolvate la nivelul proceselor și la nivelul firelor de execuție, respectiv între procese și între fire sunt similare, aproape identice.

Deoarce firele de execuție partajează aceeași zonă de sistem, resursele pe care sistemul de operare le alocă pentru un proces sunt disponibile pentru toate firele de execuție din cadrul procesului, așa cum si toate datele globale sunt disponibile, de asemenea, pentru toate firele de execuție. Aceasta înseamnă că, de exemplu, dacă Thread #1 va deschide un fișier, Thread #2 va putea să acceseze acel fișier, fară să fie nevoit să îl mai deschidă.

În aplicațiile multithreading, datele globale sau statice sunt partajate de către toate firele de execuție, iar datele locale sau temporare sunt private pentru fiecare fir de execuție. Cele mai multe sisteme de operare multithreading implementeză un al treilea tip de date: date locale statice, care sunt private pentru un fir de execuție. Acest tip de date sunt adesea numite date specifice unui fir de execuție. Datele specifice unui fir de execuție sunt utile deoarece furnizează o cale pentru ca firul de execuție să aibă date private care sunt persistente și pot fi accesate de către orice funcție în cadrul procesului.

Comutarea de context între firele de execuție ale aceluiași proces implică pur și simplu salvarea stării CPU a firului de execuție curent și încărcarea stării CPU pentru noul fir. Deoarece regiștrii IP și SP sunt reîncărcați ca și parte a stării CPU, după comutarea contextului, procesorul va executa codul de la locația asociată noului fir de execuție în rulare și va utiliza stiva noului fir în rulare. [8]

3.4 Programarea concurentă

În dezvoltarea aplicațiilor software pentru sisteme în timp real exprimarea concurenței între activitățile din structura programului reprezintă o problemă destul de mare. Pentru a putea lucra la rezolvarea unei probleme, activitățile concurente trebuie să își coordoneze actiunile, coordonare care implică pattern-uri complexe de comunicare și sicronizare. Utilizarea incorectă a acestora poate genera condiții suplimentare de eroare:

Operații de tip hold and wait. Un proces deține resursele alocate în timp ce așteaptă primirea altor resurse

Nu este posibilă preemțiunea. Resursele nu pot fi dealocate forțat de la procesul care le deține

Interferența. Atunci când două sau mai multe activități concurente încearcă să actualizeze aceeași resursă, ale cărei date utilizate în comun pot fi corupte și devin inconsistente

Așteptarea circulară. Există un lanț închis de procese, astfel încât fiecare proces ține ocupată cel puțin o resursă așteptată de următorul proces în lanț

3.4.1 Mecanismul mutex-urilor

Denumirea de mutex provine de la faptul că acest mecanism asigură excluderea de către un task care are în derulare o secțiune critică cu referire la o anumită resursă, a posibilității altui task / altor task-uri de a-și iniția propria secțiune critică cu referire tot la acea resursă.

Sistemele de operare care dispun de mutex-uri, furnizează două funcții pentru manipularea acestora: o funcție (un apel) de așteptare și o funcție (un apel) de eliberare. Când un task dorește să-și însușească o resursă, el emite un apel de așteptare la mutex-ul cu care este asociată acea resursă.

Dacă mutex-ul este în starea “resursă disponibilă”, apelul de așteptare se întoarce imediat și task-ul apelant acaparează resursa.

Dacă mutex-ul este în starea “resursă ocupată”, apelul de așteptare nu se întoarce și task-ul apelant este blocat. Un task care așteaptă la un mutex revine în starea deblocat (apelul de așteptare se întoarce) când task-ul care a acaparat resursa – task despre care se spune că a devenit proprietarul mutex-ului emite un apel de eliberare la mutex-ul în cauză.

3.4.2 Blocări cu citire/scriere

Mecanismul de blocare cu citire/scriere se utilizează atunci când se dorește accesul la date printr-un număr de fire de execuție care citesc datele și cel puțin un fir de execuție care scrie datele. Acest mecanism de sincronizare este din punct de vedere al resurselor consumate mai puțin eficient decât mutex-ul.

Mecanismul de blocare citire/scriere permite tuturor firelor de execuție care solicită acces pentru citirea datelor să facă acest lucru posibil. Un fir de execuție cere accesul atunci când dorește să scrie date și este blocat până ce toate firele de execuție care realizează citirea datelor termină de executat operația de citire.

Dacă există mai multe fire de execuțoie care doresc să scrie date, acestea vor forma o coadă în ordinea prioprității pentru a aștepta momentul în care vor scrie în zona de date protejate. Toate firele de execuție aflate în coadă vor reuși să scrie înaintea altor fire de execuție indiferent de prioritățile acestora. [9]

4. Soluția Hardware

În acest capitol vă voi prezenta toate componentele hardware folosite în soluția mea de automatizare a procesului de conducere de la distanță al ansamblului de macarale. Pe lângă aceasta a fost implementată și monitorizarea și controlului de siguranță pentru cazul în care vârfurile brațelor macaralelor ajung în situția în care pot să se ciocnească. Prin urmare voi prezenta mai detaliat toate componentele enumerate în capitolul 1 – Introducere. Componentele care fac parte din soluția hardware sunt:

Motoarele macaralelor care sunt acționate de comenzi digitale ieșite de la automat

Două automate ControlLogix

Placuțe cu relee

Șasiu NI CompactDAQ 9172

Placă de achiziții NI 9474

Cameră web A4tech

4.1 Automatul programabil ControlLogix de la Rockwell

În această lucrare s-a utilizat pentru conducere proceselor neliniare automatul programabil de ultima generatie ControlLogix, produs de Allen Bradley, care acum este membru Rockwell Automation.

4.1.1 Specificații și structură

Automatul pe care l-am utilizat în lucrarea mea are o structură modulară care este cam astfel (figura 4.1.1.1):

Unitatea centrală: conține procesorul și memoriile

Modulele de intrare/ieșire: acestea se împart în două categorii și anume module care gestionează mărimile analogice și module care se ocupă cu mărimile digitale

Modulele de comunicație: în cazul nostru avem doar un singur modul Ethernet care gestionează comunicația cu calculatorul sau cu celelalte automate prin protocolul EthernetIP

Carcasa inteligentă: aceste tipuri de automate programabile dispun de carcase inteligente prevăzute cu sloturi în care se conectează fiecare modul în parte

Figura 4.1.1.1 – Automatul ControlLogix cu modulele aferente

Modulul de intrare Digital 1756 – IB16D/A

Modulul de ieșire Digital 1756 – IB16D/A

Controlerul ControlLogix 1756 – L55/A care dispune de modurile: RUN, REM, PROG. (RUN – modul de activare al intrărilor și ieșirilor automatului, PROG – modul în care programezi automatul, REM – modul Remote)

Modulul de intrare Analog 1756 IF16I/A

Modulul de ieșire Analog 1756 – OF6VI/A

Modulul de comunicație EthernetIP 1756 – ENBT/A

ControlLogix 1756 – L55/A este un automat oferit de Rockwell care are următoarele caracteristici:

Alimentare: 220V

Putere maximă disipată: 4.5W

Temperatură de operare:0-60º C

Greutate: 1.1 kg

Panoul de comandă al acestui automat cuprinde butoane și LED-uri de afișare legate la modulele de intrare și de ieșire digitale ale automatului programabil. În componența acestuia (figura 4.1.1.2) se află :

12 butoane de comandă fără reținere și 4 butoane de comandă de tip cheie; acestea sunt legate la modulul de intrări digitale

12 LED-uri (4 roșii, 4 verzi, 4 portocalii) legate la modulul de ieșiri digitale

Un afișor legat la modulul de ieșire analogică

Figura 4.1.1.2 – Panoul de comandă al automatului

Pentru atingerea scopului temei mele de licență, controlul de la distanță al ansamblului de macarale a fost înlocuit acest panou plin de butoane cu o interfață SCADA foarte prietenoasă.

Modulele de intrare preiau semnalele de la sistemul controlat prin intermediul senzorilor și le convertesc în semnale logice pentru a putea fi prelucrate de CPU.

Unitatea centrală de prelucrare (CPU) procesează semnalele primite pe baza instrucțiunilor unui program, ia decizii și emite semnale numerice pe modulele de ieșire în conformitate cu strategia de control.

Modulele de ieșire convertesc semnale de la CPU în semnale de comandă în scopul acționării diferitelor echipamente prin intermediul actuatorilor.

4.1.2 Principiile de funcționare

Funcționarea unui PLC se bazează pe scanarea programată a intrărilor și a ieșirilor sale. Procesul de scanare prezintă 3 etape de bază: [10]

Stadiul de testare al intrărilor. Pentru început PLC-ul scanează fiecare intrare cu scopul stabilirii stărilor ON sau OFF pe care acestea le pot prezenta. Altfel spus, se verifică dacă switch-urile (tag-urile) conectate în intrări sunt activate sau nu. Informația culeasă pe parcursul acestui pas se stochează în memorie urmând a fi utilizată în pasul următor.

Execuția programului. În acest pas, PLC-ul execută un program în mod secvențial (instrucțiune după instrucțiune). Ca rezultat, se poate activa una sau mai multe ieșiri sau se pot stoca informații în zone specifice în memorie, urmând ca acestea să fie utilizate în pasul următor.

Verificarea și setarea ieșirilor. În final, PLC-ul verifică stările ieșirilor și le modifică dacă este cazul. Modificările se bazează pe stările intrărilor citite pe durata primului pas și pe rezultatele execuției programului din pasul doi. După execuția pasului 3, PLC-ul reia ciclul celor 2 pași.

Figura 4.1.2.1 – Schemă PLC – PC

Logica circuitului este stabilită în interiorul PLC-ului prin intermediul unui program software. Acest program decide care ieșiri sunt energizate și sub ce condiții de intrare.

Pe lângă portul de comunicație serială (RS 232), situat pe modulul unității centrale, mai există și module separate pentru stabilirea unei comunicații a automatului programabil cu alte aparate. Aceste module se conectează direct într-un slot al carcasei inteligente.

Având în vedere că protocolul Ethernet este foarte utilizat pentru proiectarea unei rețele obișnuite, tehnologia lui s-a implementat și în cazul echipamentelor industriale. Astfel au fost proiectate module de comunicații între echipamentele industriale care utilizează un astfel de protocol.

După ce s-a instalat fizic în unul din sloturile carcasei, modulului de EthernetIP i se atribuie o adresă statică prin care se poate identifica pe o rețea. Această adresă nu este altceva decât un IP (set de 4 numere cuprinse între 0 și 255). Acest IP va deveni de fapt adresa de identificare a automatului în care se află situat modulul.

4.2 Plăcuța cu relee

Figura 4.2.1 – Placuta cu 6 relee

Soluția harware a proiectului meu are în componența ei 2 plăcuțe cu relee:

O plăcuță cu 6 relee care face conexiunea între ieșirile digitale ale unui automat și intrările motorului macaralei A (figura 1.2.1) care asigură comenzile pentru toate cele 6 mișcări: sus –jos coș, stânga – dreapta braț, înainte – înapoi suport coș pe brațul macaralei

O plăcuță cu 4 relee care face conexiunea între ieșirile digitale ale celui de-al doilea automat și intrările macaralei B (figura 1.2.1) care asigură comenzile pentru cele 4 mișcări posibile: sus – jos coș, stânga – dreapta braț

Plăcuța cu relee care comandă cele 3 motoare ale macaralei A este compusă din:

6 relee OMRON G5SB – 14 acționate pe 24V prin intermediul modului digital de ieșire al automatului. Suportă un current maxim de 5A la 30V curent continuu

6 diode 1N4007

Rolul diodei montate în sens invers, în paralel cu bobina releului este acela de a elimina efectul supratensiunii apărute datorită inductanței bobinei. Dacă nu s-ar folosi atunci există riscul ca după prima acționare a releului acesta să fie distrus.

Figura 4.2.2 – Schemă conexiune releu – diodă

Releele folosite sunte relee electromagnetice cu contact normal închis/deschis. Curentul maxim admis pe contacte este de aproximativ 5A. Atunci când releul este aclanșat (tensiunea de comandă este 24V) motorul este alimentat cu polaritatea corespunzătoare și macaraua funcționează.

Așadar pentru acționarea macaralei sunt necesare 6 ieșiri digitale din modulul respectiv al automatului.

Similar este construită și cealaltă placuță cu 4 relee folosită doar pentru 4 mișcări. Aceste plăcuțe au un rol important în proiectul meu deoarece asigură comunicația dintre motoarele care acționează și automatele care comandă.

4.3 Șasiu NI Compact DAQ 9172

NI Compact DAQ – 9172 (cDAQ) este un șasiu USB cu 8 sloturi proiectat să funcționeze pentru orice orice placă de achiziție C –Series de la National Instruments cu module de intrare/ieșire. Șasiul NI cDAQ este capabil să măsoare o gamă variată de mărimi digitale și analogice de intrare/ieșire și senzori folosind o conexiune de înaltă viteză USB 2.0.

Figura 4.3.1 – Șasiu NI CompactDAQ 9172

Pentru integrarea diverselor module de achiziție ale semnalelor această platformă portabilă de la National Instruments este cea mai fiabilă.

Software-ul recomandat de producător este LabView dar în această lucrare șasiul NI DAQ 9172 și modulul NI 9474 au fost utilizate cu mediul de dezvoltare Matlab, de la MathWorks. Pentru a face această conexiune posibilă a fost neceasară instalarea unor drivere speciale dar voi vorbi despre acestea mai pe larg in capitolul următor – Soluția Software.

Conexiunea dintre acest șasiu și celelalte periferice, de exemplu laptopul personal în cazul meu s-a asigurat prin intermediul unui cablu USB ceea ce a ușurat mecanismul de detecție substanțial.

După ce am conectat șasiul la laptop prin intermediul USB, cu driverele instalate pe PC, acesta este recunoscut automat de Windows fără a fi nevoie de configurații suplimentare.

Datorită robusteții sale, acest șasiu poate fi folosit în orice mediu, deși el a fost mai mult construit pentru a fi utilizat în laboratoare. Astfel nu mai e nevoie de achiziționarea altor echipamente pentru fiecare laborator sau instalație. Pe lângă acest mare avantaj, aceste module sunt construite să reziste la temperaturi de funționare cuprinse între -20 º C și 50 º C, materialul folsit la fabricarea lui fiind aluminiul.

Pachetul software ce este livrat împreună cu acest șasiu include următoarele:

NI Measurment & Automation Explorer

API for LabView, C#, ANSI C/C++ și Visual Basic NET

DAQ Assistant care generează cod pentru LabWindows CVI

LabView SignalExpress LE

Figura 4.3.2 – Schema de funcționare a șasiului

Compact DAQ are integrate multiple motoare de sincronizare ceea ce face posibilă achiziția a mai multor infornații de la modulele de intrare/ieșire dar la rate diferite. Pentru a măsura perioadele și frecvențele unui semnal dar și pentru a efectua măsurători de poziție, acest șasiu are încorporat și două countere de uz general pe 32 de biți.

Pentru a avea acces la utiliziarea celor două countere, modulele de intrare/ieșire pentru semnale digitale/analogice trebuie pozițonate în sloturile 5 sau 6 ale șasiului Compact DAQ 9172.

Specificații pentru Șasiul NI:

Tip: cDAQ – 9172

Număr sloturi: 8

Conectivitate PC: Hi-Speed USB

Număr de canale/șasiu: – 32 ieșiri analogice

256 intrări analogice

64 intrări/ieșiri digitale

Acest șasiu împreună cu modulul de ieșiri digitale 9474 mi-au de un real ajutor pentru că doar prin intermediul acestor dispositive hardware am putut face posibilă comunicația dintre interpretarea de imagine din Matlab care era pe calculatorul meu personal și automatele programabile care controlau macaralele. [11]

4.4 Placă de achiziții NI 9474

Pentru achiziția datelor din Matlab am folosit modulul de ieșire digitala de la National Instruments – 9474 care prezintă urmatoarele caracteristici:

8 canale

Ieșire digitală de 1 µs

Amplitudine 5V-30V, ieșire digitală

Compatibile cu counterele NI CompactDAQ

Temperaturi de funcționare cuprinse intre -40 º C și 70 º C

Figura 4.4.1 – Modulul NI 9474

După cum se poate observa și în imagine acest modul de ieșiri digitale este prevăzut cu niște LED-uri numerotate de la 0 pana la 7, fiind atribuite fiecărei ieșiri în parte. Atunci când o ieșire este activată, adică pe starea 1 LED-ul corespunzător portului este aprins.

NI 9474 se poate conecta în mod direct la o varietate de echipamente, cum ar fi: motoare, relee, elemente de execuție.

Sunt două opțiuni de conectare pentru NI 9474:

Un conector cu un terminal de poziție

Un conector D-Sub

Acest tip de hardware face parte din clasa de tip Serie C, clasă ce caracterizează mai mult de 50 de module de măsurare și mai multe carcase pentru punerea lor în funcțiune.

Specificații pentru modulul de ieșiri digitale NI 9474

Numătul de canale: 8 canale digitale

Tipul de ieșire: sursa de alimentare

Sursă externă de alimentare: 6 – 30 VDC

Impedanța normală de ieșire: 0.7 Ω

Impedanța maximă de ieșire: 0.13 Ω

Curentul maxim pe canal: 0.75 A

[12]

4.5 Camera web A4tech

Figura 4.5.1 – camera A4tech

Camera utilizată în proiectul meu pentru achiziționarea imaginilor este camera web A4tech PK – 333E. Este o cameră de tip clip – on, care nu are performanțe foarte ridicate. Suportul camerei de prindere pe diferite suprafețe m-a avantajat foarte mult ținând cont că aveam nevoie de o posibilitate de suspendare a acesteia de un cadru undeva desupra ansamblului macaralei.

După montarea camerei la locul potrivit de un poate achiziționa imaginile potrivite, interfațarea cu laptopul se realizează prin intermediul USB-ului existent pe cameră.

Rezoluția camerei este suficient de bună pentru achiziția de imagini în Matlab. Camera dispune de o rezoluție de până la 5 Mega pixeli pentru o dimensionare a pozelor de 2560×2048. Pentru aplicația mea am folosit o dimensionare de 640×480, maximul admis de Matlab.

Caracteristi:

Rezoluție senzor (pixeli): 0.3 MP

Rezoluție foto (pixeli): 5 MP

Rezoluție video (pixeli): 2560×2048

Interfața: USB

Buton de achiziție a unui cadru instantaneu

Leduri de iluminat care păstrează imaginea clară și în condiții de iluminare slabă

Suport ce oferă posibilitatea rotirii camerei la 360º

5. Soluția Software

Pentru implementarea acestei soluții dorite am integrat foarte multe echipamente hardware dar toate aceste echipamente trebuiau controlate de niște programe. Pentru aceasta în cadrul soluției software am avut de lucrat cu următoarele medii de dezvoltare:

RSLinx Clasic

RSLogix 5000

RSView Studio

Matlab

Toate aceste medii m-au ajutat ca să obținut rezultatul dorit. Prin intermediul RSLinx Classic am stabilit conexiunea dintre automatele programabile și calculatoarele pe care aveam programele ce urmau puse pe automat.

Apoi prin intermediul lui RSLogix am creat programbele ce conțineau un set de instrucțiuni pentru automat. Limbajul de programare folosit pentru a face programele a fost unul relativ simplu, ladder diagram.

RSView-ul mi-a permis la rândul lui controlul de la distanță al automatelor prin intermediul unei interfețe SCADA. Aici am configurat o interfață foarte intuitivă cu butoane pentru fiecare mișcare a macaralelor.

În cele din urmă, Matlab-ul a fost folosit pentru a realiza achiziția de imagini de la camera web și pentru a realiza prelucrarea de imagine. Am ales programul Matlab deoarece are și un pachet suplimentar pentru achiziiții de date speciale pentru echipamentele de la National Instruments așadar am putut genera o comandă digitală către automatele programabile prin intermediul unei plăcuțe de achiziție cu ajutorul acestui program.

5.1 RSLinx Clasic

Figura 5.1.1 – RSLinx Clasic

Această resursă software este folosită pentru:

A stabili dispozitivele între care se face comunicația

A stabili tipul de comunicație între dispozite

A configura mediul de comunicație între dispozitive

Se va realiza o conexiune între cele două automate programabile care sunt conectate în rețea și un calculator pe care este programul RSLinx 5000 în care avem realizat programele prin intermediul Ethernet.

RSLinx Clasic de la Rockwell Automation este o soluție cuprinzătoare de comunicație pentru toate automatele industriale produse de Rockwell care trebuie să aibă acces la un mediu de dezvoltare oferit tot de Rockwell Software și Allen – Bradley.

Această gamă de la medii de dezvoltare și configurare de aplicații, cum ar fi RSLogix și RSNetWorx până la HMI (interfață om – mașină) aplicații cum ar fi RSView32, FactoryTalk View SE (Site Edition) și FactoryTalk View ME (Machine Edition sau chiar propriile aplicații de achiziție de date folosind MicrosoftOffice, pagini Web sau Visual Basic, RSLinx Classic include de asemenea tehnici avansate de optimizare a datelor și conține un set de diagnosticare.

Figura 5.1.2 – Setarea conexiunii între PC și automate

În figura 5.1.1 este exemplificat cum am creat o nouă conexiune Ethernet unde sunt recunoscute adresele IP ale celor două automate programabile. Pentru fiecare program în parte selectăm adresa automatului si apăsăm pe butonul “Set Project Path”.

5.2 RSLogix 5000

Figura 5.2.1 – RSLogix5000

Acestă resursă software este folosită pentru:

A configure modulele de intrare/ieșire

A realiza diagrama logică ce va modela procesul (ladder diagram)

A defini ieșirile asignate fiecărei intrări a procesului

A defini tag-urile corespunzătoare fiecărei intrări și ieșiri in diagramă

Am folosit aceste produse deoarece Rockwell întrunește majoritatea cerințelor impuse de standardul IEC 1131 în privința programării automatelor. Acest mediu de programare permite utilizatorului să poată scrie procedurile în diferite limbaje cum ar fi Ladder Diagram, Function Block Diagram, Sequential Function Chart. De asemenea este implementat și un limbaj literal cum este Structured Text.

Un proiect implementat în RSLogix este împărțit în mai multe structuri ierarhice. Astfel proiectul poate conține, în cazul automatului programabil ControlLogix 5555 până la 32 de task-uri. Fiecare task este împărțit în programe iar fiecare program conține una sau mai multe rutine, în funcție de memoria de care dispune automatul.

Rutina este cea mai mică unitate în care se poate împărți un proiect implementat în RSLogix. Fiecare rutină poate fi implementată în unul din cele patru limbaje de programare pe care acest mediu le pune la dispoziție. Rutinele care sunt proiectate pentru scop comun se grupează într-un program chiar dacă ele sunt implementate în limbaje diferite. Fiecare rutină ce aparține unui program are acces doar la variabilele ce au fost definite în cadrul acelui program.

În RSLogix aceste variabile se numesc Tag-uri. De asemenea orice rutină din cadru aceluiași program poate cere execuția altei rutine, aflate în același program chiar dacă rutina chemată în execuție este scrisă într-un limbaj diferit.

Figura 5.2.2 – Rutina principală

Programul reprezintă următoarea treaptă ierarhică în care se poate diviza un proiect. Programele sunt organizate în nivele superioare si anume în task-uri. Într-un singur task se pot găsi până la 32 de programe, fiecare din programe putând conține una sau mai multe rutine.

Figura 5.2.3 – Ordinea de executare a programelor din cadrul unui task

Task-urile reprezintă ultimul nivel ierarhic. Task – urile sunt folosite pentru a putea „programa” execuția programelor ce se află în componența lui. Task – urile pot fi de doua tipuri:

Continue: task – urile care se execută continuu până când este întrerupt de un task periodic

Periodice: task – urile care se execută în funcție de timp

Figura 5.2.3 – Task continuu și task periodic

În continuare proiectul realizat în RSLogix 5000 a constat în parcurgerea următorilor pași principali:

1. Crearea unui proiect nou:

În cadrul acestei etape am introdus numele proiectului, am creat un folder în care să fie salvat, am selectat tipul controllerului, am selectat slotul din rack-ul automatului unde se află acesta și am selectat revizia efectuată.

Pentru tipul automatului am ales opțiune “1756 – L55 ControlLogix 5555 Controller”. Pentru slotul automatului, în cazul de față am ales slotul numărul 2 deoarece numerotarea acestora începe de la 0 de la stânga la dreapta. (Figura 4.1.1.1)

Figura 5.2.4 – Configurarea Controllerului

2. Configurarea modulelor intrare/ieșire:

În cadrul acestui pas am definit și am configurat modulele de intrare/ieșire digitale. După cum a fost proiectată aplicația nu avem nevoie de modulele analogice. Pentru aceasta trebuie selectat tipul modului, tipul reviziei, respectiv slotul din cadrul rack-ului și specificat un nume pentru modulul respectiv.

Figura 5.2.5 – Configurarea modulelor intrare/ieșire

Pentru ambele automate am selectat ca și modul de intrare digitala, modulul 1756 – IB16D ce se află situat în slotul 0 al automatului. Pentru modulul de ieșiri digitale am selectat modelul 1756 – OB16D ce se află în slotul 1.

3. Realizarea conexiunii cu automatul:

Pentru stabilirea conexiunii cu automatul se va selecta acea conexiune realizată și configurată în RSLinx. După selectare se va accesa „Download ” pentru programul să fie încărcat în automat.

Pentru ca această comandă să poată fi inițiată trebuie ca automatul sa fie trecut in modul de programare. Acest lucru se face învârtind cheița automatului până în direcția indicației „PROG”.

4. Crearea unei noi rutine

În cadrul acestui pas am declarat o nouă rutină (denumită “Macara_inceput”). Această rutină va fi creată în cadrul “Main Program” care la rândul său este declarat în cadrul “Main Task”. Limbajul de programare pe care l-am folosit și care este implicit atunci când inițiem o rutină este Ladder Diagram.

Pentru realizarea digramei Ladder se setează din meniu Tasks -> Main Tasks -> Main Program -> Main Routine.

Figura 5.2.6 – Configurarea unei noi rutine

5. Crearea tag – urilor:

În această etapă se vor adăuga tag – urile, sau etichetele programului cum mai sunt cunoscute, care vor fi definite atât pentru intrări cât și pentru ieșiri. Aceste tag – uri vor fi folosite pentru partea de comandă grafică. Fiind atribuite intrărilor și ieșirilor, în cadrul programului vom selecta direct tag – ul astfel ușurându-mi munca.

Tag-urile le-am adăugat din Tasks -> Main Tasks -> Main Program -> Program Tasks.

Figura 5.2.6 – Configurarea tag-urilor

În figura 5.2.6 este exemplificat destul de clar cum este făcută această configurare. La Name pui numele tag-ului și în dreptul Alias-ului alegi portul pentru care vrei să fie creată eticheta. Apoi în cadrul programului Ladder cand vrei sa activezi/dezactivezi un port pur și simplu alegi acțiunea și pentru respectiva acțiune selectezi tag-ul corespunzător.

6. Definirea logicii de comandă:

Acest pas este foarte important pentru aplicația mea. Practic, cum este gândit scenariul de funcționare al macaralelor este transpus în limbaj Ladder Diagram. În cadrul realizării acestui program ne vom ajuta de tag – urile realizate la punctul anterior.

În cadrul programului RSLogix o diagramă Ladder se realizează foarte ușor utilizând comenzile din cadrul meniul, fiind listate cele mai des utilizate: latch, unlatch, linie noua. Cu ajutorul acestor comenzi am realizat programele care au fost încărcate pe automate și care mi-au permis comandarea celor două macarale.

Principiul de funcționare al aplicației este următorul: dacă se îndeplinesc condițiile asupra intrărilor care sunt etichetate se energizează ieșirile corespunzatoare acestora și astfel macaraua preia comanda selectată de operatorul uman.

Programul pentru macaraua A (Figura 1.2.1) este gândit astfel: odată ce este apăsat o singură dată butonul corespunzător mișcării spre stânga, macaraua execută această mișcare până când este apăsat butonul corespunzător mișcării spre dreapta și își schimbă sensul de rotație al brațului sau până când este apăsat butonul de STOP care dezactivează orice ieșire a automatului.

Pentru mișcările coșului înainte – înapoi de-a lungul brațului macaralei cât și pentru mișcările acestuia sus – jos, comanda este activă atâta timp cât butonul corespunzător acestor mișcări este ținut apăsat.

Ca o măsură preventivă în capetele brațelor sunt două butoane care sunt legate ca intrări digitale și sunt activate atunci când suportul coșului se află la maximul cursei, înainte sau înapoi. Atunci când coșul se află maxim în față, activează această intrare care este programată să oprească înaintarea acestuia. În mod similar este proiectat și butonul pentru maximul cursei în spate.

Pentru macaraua B (Figura 1.2.1) programul este mai simplu deoarece are doar mișcări de rotire ale brațului stânga – dreapta și mișcări ale coșului sus – jos. Principiul de funcționare este similar cu cel al macaralei A.

Brațul se rotește într-o singură direcție la o simplă apăsare a butonului care activează ieșirea corespunzătoare până primește comandă să-și schimbe sensul de rotație sau până la apăsarea butonului de STOP iar coșul se ridică și coboară atâta timp cât butonul corespunzător ieșirii este ținut apăsat.

Programele ambelor macarale sunt gândite astfel încât orice macara poate face mai multe mișcări în același timp. De exemplu, macaraua A poate să se rotească în stânga în timp ce coșul se mișcă înainte pe braț și coboară spre sol.

Figura 5.2.7 – Fragment din codul programului macaralei A

Programele sunt atașate în întregime în anexa lucrării.

7. Descarcarea aplicatiei in automat si trecerea in modul online

După realizarea diagramei Ladder se va descărca selectând „Download” aplicația în automat pentru a putea fi testată.

A nu se uita ca înainte de descărcare automatul să fie trecut în modul de programare (PROG). Pentru testarea programului se va trece automatul în starea RUN.

Figura 5.2.8 – Go Online, încărcarea programului în automat

Testarea se va face apăsând butoanele automatului care au fost setate drept intrări în digrama Ladder.

5.3 RSView 32

Figura 5.3.1 – RSView32

Această resursă software este folosită pentru a stabili comunicația utilizatorului cu automatele. Cu ajutorul acestui software distribuit de Rockwell Automation am putut realiza interfața SCADA prin intermediul căreia controlez macaralele de la distanță.

De altfel, în cadrul acestui software se pot realiza interfețe prin care persoane pot vizualiza evoluția unor parametri, pot da comenzi către automat și pot vedea rezultatele comenzilor.

Pentru realizarea unei astfel de interfețe sunt necesari următorii pași:

1. Deschiderea unui nou proiect:

La deschiderea soft-ului RSView selectăm variant Machine Edition pentru că ne permite comunicarea în timp real dintre automate care sunt conectatea în rețea și calculatorul pe care am stabilit să realizăm panoul de control.

Figura 5.3.2 – RSView32, Machine Edition

2. Realizarea conexiunii

În acest pas realizăm conexiunea dintre automate și programul RSView32. Pentru aceasta am conectat ambele automate în reațea cu câte un cablu Ethernet, la fel ca și calculatorul pe care mi-am dorit să fie interfața grafică pentru controlul de la distanță al macaralelor.

Pentru a se realiza conexiunea cu RSLogix din meniul principal se selectează RSLinx Enterprise Edition iar apoi Communication Setup.

Din fereastra care apare se realizează o scurtătură către configurația realizată în RSLinx. Avem în partea stângă numele scurtăturilor realizate, în cazult nostru fiind „MacaraMare” pentru macaraua A și „MacaraMică” pentru macaraua B. În aceste “Device Shortcut – uri” vom importa tag-urile programelor care sunt încărcate pe automate.

În cazul meu pentru că am două automate creez două scurtături ce conțin etichetele programelor astfel:

Selectăm denumirea scurtăturii

Selectăm modului automatului de pe care vrem să preluam tag-urile din conexiunea respectivă

Apăsăm “Apply” pentru salvarea configurărilor făcute

În figura următoare, Figura 5.3.3 este reprezentat foarte bine cum trebuie procedat în această etapă, ordinea pașilor ce ar trebui urmată fiind numerotată de la 1 la 3.

Figura 5.3.3 – Ordinea pașilor pentru a importa tag-urile de pe automate

3. Configurarea butoanelor:

Pentru adăugarea unor butoane se selectează mai întâi calea Objects -> Buttons. Aici găsim o varietate de butoane și îl selectăm pe cel dorit. Eu am ales să folosesc “Momentary Push Button” pentru fiecare buton din interfață. Click dreapta și Properties pe buton și poți face setări suplimentare pentru aspectul butonului.

Se poate seta ca pentru fiecare stare (on/off) a butonului, acesta să aibă diferite înfățisări și culori. În cazul aplicației mele am setat ca în starea OFF butoanele să aibă culoarea albastră, iar în starea ON acestea să aibă culoara roșie. În plus, fiecare buton este foarte intuitiv, fiecare fiind înfățișat sub forma unei săgeți ce sugerează direcției de mișcare a brațului macaralei, a scripetelui sau a găleții.

Ca să și funcționeze sistemul la apăsarea butoanelor din interfață trebuie creată conexiunea pe fiecare buton. Fiecărui buton îi atribuim un tag de intrare din programele încărcate pe automate.

Pentru a realiza acest lucru se selectează meniul “Connections” din proprietățile butonului. Aici importăm tag-ul dorit pentru fiecare buton în parte.

Figura 5.3.4 – Configurarea unui buton în RSView

4. Interfața SCADA:

În Figura 5.3.5 este reprezentată interfața SCADA al ansamblului meu format din două macarale. Interfața este una intuitivă și îți poți da seama ușor, fără instruire specializată în prealabil cum funcționează.

În figură sunt reprezentate cele două macarale, în dreptul fiecărei macarale fiind butoanele pentru mișcările posibile ale acestora. Pe lângă acele butoane de setare a direcției coșului sau brațului se află și câte un buton roșu mic, acela fiind pentru STOP pentru fiecare din direcțiile: sus –jos, față – spate, stânga – dreapta.

În cazul de panică, se vor apăsa cele două butoane roșii mai mari pe care scrie STOP. Acestea dezactivează orice ieșire posibilă a automatului și nu mai dă voie macaralelor să execute nicio mișcare.

Pentru ca operatorul uman să respecte mereu programul de lucru și pentru ca acesta să aibă mereu coordonatele temporare, am atașat și un afișaj care să-i arate mereu data și ora în formatul hh:mm:ss.

Figura 5.3.5 – Intefața SCADA

5.4 Matlab R2013a

Pentru implementarea software a programului care asigură controlul macaralelor în condiții de siguranță am ales mediul de dezvoltare Matlab, de la MathWorks. Acest mediu a fost ales pentru achiziția de imagini, pentru prelucrarea imaginilor achiziționate pentru comanda către automate atunci când este nevoie.

Am ales Matlab – ul în implementarea soluției mele deoarece este foarte ofertant în materie de funcții specializate pentru achiziția de imagini și prelucrarea lor. Pe lângă aceste facilități Matlab are toolbox pentru achiziții de date care se afla în pachetul de instalare al driverului NI – DAQmx.

La acest capitol de instalare al driverelor am întampinat și o problemă de compatibilitate. Pe calcultorul personal aveam instalat înițial Matlab R2012a iar după instalarea driverului celor de la National Instruments acesta nu recunoștea nicio componentă NI. Nu recunoștea șasiul NI și implicit nici placa de achiziții NI 9474. În cele din urmă am găsit combinația de versiuni care să îmi permită avansarea lucrării de licență, așadar am folosit următoarele versiuni:

Matlab – R2013a

Driverul de la National Instruments NI – DAQmx 9.6.0

Figura 5.4.1 – Compatibilitate Matlab și Driverul NI – DAQmx

5.4.1 Achiziția de imagini

Achiziția de imagini s-a realizat prin intermdiul camerei A4Tech. După cum am menționat, aceasta nu este una performanată, așadar pe parcusul dezvoltării lucrării am întâmpinat diverse probleme.

În această etapă de achiziție a imaginilor este foarte importantă și poziționarea camerei. În cadrul instalației am două automate programabile destul de mari, așadar am fost nevoit să găsesc o soluție de amplasare a camerei web în preajma acestora pentru a nu fi nevoit să le modific poziția acestora.

Soluția a fost gândită pentru cazul când vârfurile macaralelor riscă să se ciocnească, așadar am nevoie de o imagine de ansamblu al acestora. Camera trebuie să încadreze ambele macarale, atâta timp cât nu sunt în mișcare cât și atunci când întregul ansamblu funcționează.

Pentru aceasta am amplasat camera web pe un suport improvizat din plastic care la rândul lui a fost așezat pe niște scaune pentru a putea încadra ambele macarale în imagine. Spațiul dintre birouri nu este destul de mare, așadar nu mi-a permis testarea instalației și pentru o rotire completă, deoarece rotirea completă este limitată de marginea biroului.

Orbirea camerei a fost și încă este o altă problemă întâmpinată. Instalația fiind în laboratorul facultății și geamurile acestuia fiind destul de mari, permit trecerea luminii foarte puternice chiar prin jaluzele verticale. Această intesitate luminoasă variabilă duce la orbirea camerei așadar aceasta nu poate achiziționa imaginile în culorile lor adevărate.

Această problemă mă încurcă foarte mult mai departe la prelucrarea imaginilor, când vreau să identific orice nuanță de roșu. Din cauza luminii panourile roșii lucesc și nu mai sunt recunoscute.

Pentru realizarea acestei facilități, de asigurarea siguranței în controlul macaralelor, au fost făcute multe teste seara, când intesitatea luminoasă din laborator este constantă și în zilele în care nu au fost fluctuații prea mari de lumină.

Figura 5.4.1.1 – Suportul camerei web pentru achiziția de imagini

5.4.2 Procesarea imaginilor

Procesarea imaginilor este realizată ca și achiziția de imagini tot cu ajutorul mediului de dezvoltare Matlab. Acesta dispune de funcții specializate care transformă imaginile în diferite formate, cum ar fi grayscale sau în black&white sau sub formă de matrice, ceea ce mă ajută foarte mult.

Imaginile achiziționate sunt în formatul RGB ( Rosu Verde Albastru). În acest format o imagine alb negru este din trei matrici, câte una pentru fiecare culoare. Eu am ales ca pe vârful brațelor macaralelor să amplasez câte un dreptunghi de culoare roșie care să fie identificat tot timpul. Așadar, programul va urmări mereu două puncte roșii și va afișa mereu distanța dintre ele.

Atunci când distanța dintre puncte atinge un minim setat de către programator, minim identificat după numeroase măsurători, programul transmite câte un semnal fiecărui automat prin intermediul plăcii NI 9474 cu ieșiri digitale.

Pentru identificare obiectelor de culoare roșie, avem mai întâi frame-ul achiziționat în format RGB. Pentru fiecare pixel avem câte 3 valori. Prima valoare este pentru roșu, a 2-a valoare este pentru verde și a 3-a valoare este pentru albastru.

Am creat ulterior o matrice cu două dimensiuni pentru imaginea achiziționată. Aceste dimensiuni reprezintă lungimea și lățimea imaginii. Fiecare poziție din matrice are câte 3 valori reprezentând cele 3 culori (RGB).

Apoi am transformat imaginea RGB în format grayscale cu ajutorul unei funcții specializate “rgb2gray(img)” unde “img” este imaginea în format RGB. Ca să identific culoarea roșie am decis să fac această transformare în grayscale după culoarea roșie, adică am scăzut din fiecare pixel al imaginii valoare corespunzătoare pentru roșu. (linia de cod 5.4.2.1 – unde (data) este imaginea in format RGB)

(5.4.2.1)

După ce am identificat culoarea roșie și am obținut matricea corespunzătoare imaginii îi aplicăm acesteia un filtru de mediere a valorilor eliminând astfel perturbațiile.

După această operație, transformăm imaginea din format grayscale în format black & white (alb – negru). Aceasta este posibilă prin intermediul funcției din Matlab „im2bw”. ( linia de cod 5.4.2.2)

(5.4.2.2)

Această funcție are ca parametri imaginea în format grayscale (diff_im în cazul nostru și nivelul de conversie, 0.18 în cazul nostru). Această funcție convertește imaginea gray într-una binară. Această funcție are ca ieșire o matrice a imaginii în care toate valorile pixelilor sunt înlocuite cu 1 (alb) dacă acestea sunt mai mari decât nivelul de 0.18 și cu 0 (negru) în caz contrar. Așadar toate obiectele de culoare roșie din imaginea mea vor apărea albe în imaginea binară. (Figura 5.4.2.1)

Am făcut această transformare în imagine binară ca să putem identifica mai ușor punctele albe conectate între ele din imaginea alb negru pe care le vede ca un întreg și să putem calcula centrul de greutate al fiecărei astfel de regiuni.

(5.4.2.3)

Funcția care face posibilă această identificare se numește “regionprops”. (linia de cod 5.4.2.3.)

Parametri acestei funcții sunt:

bw – matricea care conține valorile binare conectate, pe regiuni

‘BoundingBox’ – îmi încadrează într-un chenar aceste regiuni pe care le identifică

‘Centroid’ – calculează centrul de greutate (coordonatele: x,y) pentru fiecare regiune pe care o recunoaște

Mai departe, având coordonatele centrelor de greutate ale celor două regiuni, nu mi-a mai rămas decât să calculez distanța dintre acestea, după formula:

(5.4.2.4)

Unde – centrele de greutate ale obiectelor roșii detectate.

Figura 5.4.2.1 – Imaginea în format Black & White

5.4.3 Comanda către automate

După ce am făcut achiziția de imagine, am făcut și prelucrarea imaginelor și am aflat distanța dintre două puncte. Următorul pas este să dau comandă la automate să se oprească atunci când distanța dintre puncte atinge un minim stabilit. La mine în lucrare minimul este de 65 de unități. Dacă este mai mic de atât este riscul să se ciocnească cele două macarale.

În primă fază m-am gândit ca Matlab – ul să scrie într-un fișier datele obțiunute iar programul RSView să importe tag-uri din acest fișier ca ar fi fost în rețea. După îndelungi căutări mi-am dat seama că nu se poate și am apelat la placa de achiziții NI 9474.

Această placă are ieșiri digitale ce pot fi activate (setate pe 1) tot dintr-un cod Matlab. Ieșirile portului 0 pe liniile 0 și 1 au fost conectate la intrările digitale ale automatelor corespunzătoare macaralei A respectiv macaralei B.

Ca să facem aceasta posibilă trebuie am creat în cadrul programului Matlab o sesiune de achiziție de date și am configurat două canale. (Figura 5.4.3.1)

Figura 5.4.3.1 – Configurarea canalelor de ieșire

Pentru activara acestor canale va fi folosită următoare comandă :

(5.4.3.1)

Această comandă este amplasată în interiorul buclei în care se calculează distanța dintre macarale în timp real. Atunci când distanța atinge minimul de 65 de unități cele două ieșiri digitale sunt activate, care la rândul lor vor fi intrări digitale pentru automate.

Intrările digitale activate pe automate au în programul din RSLogix ca și ieșiri comenzile care opresc întreaga funcționare a fiecărei macarale în parte. Astfel, pot controla în condiții de siguranță macaralele.

6. Concluzii

Prin intermediul acestei lucrări am încercat să prezint o modalitate de integrare a componentelor hardware cu programele software și să rezulte o soluție pentru eliminarea operatorului uman din zonele periculoase permițând desfășurarea activității în incinta șantierelor în condiții de siguranță sporită.

Am reușit în cadrul acestui proiect să asigur controlul de la distanță al macaralelor prin intermediul unei interfețe SCADA care comunică cu cele două automate ce dau comezi motoarelor. Mișcările macaralelor respectă scenariul realizat inițial: pot funcționa ambele macarale simultan, fiecare macara poate realiza mai multe acțiuni în același timp iar dacă vârfurile brațelor celor două macarale riscă să se ciocnească ambele macarale se opresc din funcționare.

Aplicația a fost dezvoltată pentru a putea fi utilizată într-un mediu experimental, de simulare. De aceea în timpul dezvoltării acesteia nu am luat în calcul câteva problemele de siguranță care apar în timpul folosirii acesteia atât într-un mediu de simulare cât și într-un mediu real. Pot identifica următoarele elemente de siguranță care nu au fost implementate:

Domeniul de libertate al mișcării verticale ale macaralelor nu este controlat. Pot apărea probleme atunci când sarcina macaralei ajunge la limita superioă sau inferioară pentru deplasare

Oprirea automată a comenzilor în cazul unei defecțiuni

O îmbunătățire ar putea veni odată cu schimbarea macaralelor folosite cu unele macarale care să permită setarea manuală a vitezei de rotație pentru motoare, astfel încât să se poată implementa și un algoritm de reglare mai inteligent. În cazul meu ar fi foarte util deoarece atunci când observ că brațele macaralelor se apropie din ce în ce mai mult unele spre altele să pot controla viteza de rotație mai întâi. Ar fi fost ideal ca cele două macarale să se oprească treptat. In primă fază să încetinească iar dacă distanța dintre macarale e in continuă scădere să se oprească.

O altă îmbunătățire ar fi înlocuirea camerei web A4tech cu o cameră mult mai performantă care să nu fie atât de influențată de intensitatea luminoasă ridicată și mai ales de variațiile ei. Algoritmul care asigură funționarea macaralelor fără să se ciocnească ar avea un randament mai mare, macaralele putând fi recunoscute în orice condiții.

Pentru aplicabilitatea acestei soluții în mediul real trebuie găsită în primul rând o soluție pentru realizarea achiziției de imagini deoarece macaralele reale sunt foarte înalte. O soluție ar putea fi montarea unei camere performante pe o dronă care să survoleze zona șantierului, dar odată cu această soluție trebuie luate în calcul și perturbațiile din mediul real care ar putea fi: ploaie, ninsoare, ceață, etc.

Subiectul pe care l-am abordat în această lucrare poate fi dezvoltat în lucrări ulterioare. Una dintre dezvoltările care ar putea fi implementate este evitarea coliziunilor dintre vârfurile brațelor și picioarele de susținere ale macaralelor deoarece într-un mediu real este interzisă montarea a cel puțin două macarale la aceeași înălțime.

Bibliografie

[1] – https://www.scribd.com/doc/57845952/Clasificarea-Macaralelor

[2] – https://www.scribd.com/doc/50454924/Scada-curs

[3] – https://www.bluemonitor.ro/files4download_ro/Ghid_SCADA.pdf

[4 ] – Material de curs “Sisteme integrate de conducere” , Conf.dr.ing. Ciprian Lupu

[5] – https://en.wikipedia.org/wiki/SCADA

[6] – http://www.byte.ro/byte98-08/scada.htm

[7] – http://retele.elth.ucv.ro/Ciontu%20Marian/Sisteme%20de%20monitorizare%20(Master)/SCADA.pdf

[8] – http://www.aut.upt.ro/~andreea.robu/CursSPTRPart1.pdf

[9] – Monica Dragoicea, Programarea Aplicațiilor în Timp Real Teorie și Practică. Editura UNIVERSITARA, București, 2009

[10] – http://www.robotics.ucv.ro/flexform/aplicatii/ite/Popescu%20Cristiana%20-%20Evidenta%20automata%20a%20locurilor%20intr-o%20parcare/programarea%20PLC.html

[11] – http://www.ni.com/pdf/manuals/371747f.pdf

[12] – http://sine.ni.com/nips/cds/view/p/lang/ro/nid/208823

Anexa A

Codul RSLogix pentru programarea automatului care conduce macaraua A

Anexa B

Codul RSLogix pentru programarea automatului care conduce macaraua B

Anexa C

Codul Matlab pentru achiziția de imagini, prelucrarea imaginilor si generarea comenzii către automat

Similar Posts