utilizarea terminalelor inteligente mobile la controlul aplicatiilor
Transcription
utilizarea terminalelor inteligente mobile la controlul aplicatiilor
UNIVERSITATEA TRANSILVANIA DIN BRAŞOV Facultatea de Inginerie Electrică şi Ştiinţa Calculatoarelor UTILIZAREA TERMINALELOR INTELIGENTE MOBILE LA CONTROLUL APLICATIILOR INDUSTRIALE TEZĂ DE DOCTORAT SMART MOBILE TERMINALS USED IN THE INDUSTRIAL APPLICATIONS CONTROL ABSTRACT OF THE Ph.D. THESIS CONDUCĂTOR ŞTIINŢIFIC: Prof.dr.ing. Ioan MĂRGINEANU Ing. Daniel SORA Braşov, 2011 MINISTERUL EDUCAŢIEI, CERCETĂRII, TINERETULUI ŞI SPORTULUI UNIVERSITATEA „TRANSILVANIA” DIN BRAŞOV BRAŞOV, B-DUL EROILOR NR.29, 50036, TEL. 0040-268-413000, FAX 0040-268-41025 RECTORAT COMPONENŢA comisiei de doctorat numită prin Ordinul Rectorului Universităţii „Transilvania” din Braşov nr. 4806 din 27.09.2011 PREŞEDINTE: CONDUCĂTOR ŞTIINŢIFIC: REFERENŢI: Prof. univ. dr. ing. Sorin Aurel MORARU DECAN – Facultatea de Inginerie Electrică şi Ştiinţa Calculatoarelor Universitatea „Transilvania” din Braşov Prof. univ. dr. ing. Ioan MĂRGINEANU Universitatea „Transilvania” din Braşov Prof. univ. dr. ing. Theodor BORANGIU Universitatea POLITEHNICA din Bucureşti Prof. univ. dr. ing. Radu DOBRESCU Universitatea POLITEHNICA din Bucureşti Prof. univ. dr. ing. Florin MOLDOVEANU Universitatea „Transilvania” din Braşov În conformitate cu instrucţiunile privind conferirea titlurilor ştiinţifice în România, vă trimitem rezumatul tezei cu rugămintea ca să transmiteţi eventualele dumneavoastră aprecieri sau observaţii în scris pe adresa Universităţii „Transilvania” din Braşov, până la data de 25.11.2011. Data, ora şi locul susţinerii publice a tezei de doctorat: Vineri, 25.11.2011, ora 1100, Catedra de Automatică, sala V III 9, Str. Mihai Viteazu nr.5, Corp V, et III, Braşov. 2 CUPRINS INTRODUCERE ___________________________________________ 5 1. TERMINALE INTELIGENTE MOBILE – PDA ŞI TELEFOANE INTELIGENTE (SMARTPHONES) ______________ 7 1.1 Istoria PDA-urilor_______________________________________ 7 1.2 Tipurile principale de terminale inteligente mobile _____________ 8 PDA-urile Palm__________________________________________ 8 Pocket PC-urile __________________________________________ 9 Telefoanele inteligente (Smartphones) ________________________ 9 1.3 Funcţiile de bază ale PDA-urilor __________________________ 10 Funcţiile PIM Standard ___________________________________ 10 Sincronizarea cu PC-urile _________________________________ 11 1.4 Structura unui PDA ____________________________________ 12 Microprocesorul şi memoria _______________________________ 12 Bateriile_______________________________________________ 12 Afişajul LCD___________________________________________ 13 Metode de introducere a datelor ____________________________ 13 1.5 Sistemul de operare ____________________________________ 14 1.6 Instrumente de dezvoltare ale sistemelor de operare pentru PDA _ 17 Windows Mobile________________________________________ 17 Palm OS ______________________________________________ 17 Symbian OS ___________________________________________ 18 1.7 Concluzii ____________________________________________ 18 2. UTILIZAREA TEHNOLOGIEI OPC ÎN CONTROLUL APLICAŢIILOR INDUSTRIALE ____________________________ 2.1 Noţiuni introductive despre OPC __________________________ Arhitectura clasică a aplicaţiilor client _______________________ Arhitecturile aplicaţiilor particularizate ______________________ 2.2 Standardul OPC _______________________________________ Avantajele utilizării serverelor OPC _________________________ Starea actuală a standardului menţinut de Fundaţia OPC şi a produselor OPC_________________________________________ Arhitectura generală şi componentele OPC ___________________ Tehnologia înglobată în standardul OPC _____________________ COM/ActiveX__________________________________________ 2.3 Implementarea OPC ____________________________________ Obiecte şi interfeţe OPC __________________________________ Manipularea alarmelor şi evenimentelor OPC _________________ 3 20 20 22 23 23 24 25 26 26 28 28 28 30 Accesul la datele istorice__________________________________ OPC – ideal pentru aplicaţiile cu mare capacitate de numărare ____ 2.4 Sisteme OPC locale şi la distanţă __________________________ Sisteme OPC locale______________________________________ Sistemele OPC la distanţă _________________________________ 2.5 Perspectivele OPC _____________________________________ Arhitectura OPC unificată (OPC UA)________________________ Modelele şi serviciile integrate _____________________________ Concepte noi utilizate în arhitectura OPC UA _________________ Aplicaţiile client OPC UA ________________________________ Aplicaţiile server OPC UA ________________________________ Interacţiunile server – server _______________________________ Seturi de servicii ________________________________________ 2.6 Dezvoltarea de aplicaţii client OPC în LabVIEW _____________ LabVIEW DataSocket____________________________________ Modulul LabVIEW DSC__________________________________ 2.7 Concluzii ____________________________________________ 30 31 32 32 33 33 33 35 37 37 37 38 38 38 39 39 40 3. CLIENŢI OPC PENTRU TERMINALE MOBILE _____________42 3.1 Noţiuni introductive ____________________________________ 42 3.2 Metode de comunicaţii în reţea în LabVIEW _________________ 42 3.3 Aplicaţii de reţea de tip Client – Server în LabVIEW __________ 43 3.4 Utilizarea în comun a datelor în timp real prin mecanismul Shared Variables__________________________________________ 44 3.5 Utilizarea variabilelor distribuite în cadrul instrumentelor virtuale pentru dispozitive portabile de tip PDA ________________________ 48 3.6 Crearea aplicaţiilor wireless pentru dispozitivele portabile de tip PDA ___________________________________________________ 48 Aplicaţia de control local al experimentului ___________________ 54 Aplicaţia de control de la distanţă a experimentului _____________ 64 Mecanisme de protecţie oferite de sistemul variabilelor distribuite _ 68 3.7 Concluzii ____________________________________________ 69 4. CONCLUZII FINALE ____________________________________70 Contribuţii originale _______________________________________ 70 ACRONIME UTILIZATE ÎN TEXT___________________________72 BIBLIOGRAFIE ___________________________________________73 4 INTRODUCERE O caracteristică a tendinţelor actuale de evoluţie a echipamentelor de tehnologia informaţiei este convergenţa tehnologiilor. Nevoile de mobilitate şi de conectivitate au determinat pe de o parte reducerea dimensiunilor calculatoarelor portabile simultan cu creşterea duratei de utilizare prin alimentarea de la acumulatorul intern, pe de altă parte creşterea vitezei de conectare la internet prin infrastructura reţelelor de telefonie mobilă. Astfel au apărut noile tipuri de calculatoare portabile numite „netbook”, cu ecrane de dimensiuni mai mici, fără unitate de CD/DVD, dar cu conectivitate atât clasică cu sau fără fir, dar şi cu modem 3G inclus, la care se poate ataşa o cartelă SIM de la un furnizor de telefonie şi internet mobil. Mai mult, o altă categorie de calculatoare portabile o constituie calculatoarele ultra mobile (Ultra-Mobile PC sau tablet PC), cu dimensiuni şi mai reduse decât ale celor de tip netbook, dotate cu ecran tactil şi care rulează aceleaşi sisteme de operare ca şi calculatoarele obişnuite (figura 1). Figura 1 Calculatorul ultra mobil OQO Model 02 În domeniul PDA-urilor şi al telefoanelor inteligente putem observa aceeaşi tendinţă de convergenţă, mergând chiar până la contopire. Deja nu mai sunt diferenţe semnificative între aceste categorii de echipamente mobile de vreme ce telefoanele au înglobat aproape toate funcţiile specifice PDAurilor (doar conexiunea fără fir tip Wi-Fi lipseşte de la multe din modelele existente în prezent), iar tot mai multe PDA-uri au fost dotate cu conectivitate prin infrastructura reţelelor de comunicaţii mobile, căpătând astfel şi funcţia de telefonie mobilă. În plus, majoritatea sistemelor de operare actuale sunt instalate atât pe telefoanele inteligente cât şi pe PDA-uri, fiind foarte greu de stabilit din care categorie fac parte noile dispozitive. 5 Puterea de calcul a terminalelor mobile de tip PDA sau telefon inteligent a crescut foarte mult, frecvenţa procesoarelor depăşind pragul de 1GHz, iar din punct de vedere al memoriei, 512 MB pentru RAM şi 32 GB ca şi capacitate de stocare sunt deja valori obişnuite pentru dispozitivele existente pe piaţă, din acest punct de vedere fiind comparabile cu calculatoarele din urmă cu doar câţiva ani. De asemenea, rezoluţiile ecranelor de 800x480 puncte compensează dezavantajul dimensiunilor reduse ale acestora. Ca urmare, aceste tipuri de terminale au devenit tot mai utile fiind tot mai folosite pentru navigare pe internet, pentru serviciile de poştă electronică şi chiar pentru editare de documente. Un pas important în direcţia apropierii dintre calculatoarele portabile care devin tot mai mici şi terminalele mobile care devin tot mai puternice, deşi din punct de vedere al dimensiunii se străduiesc să se limiteze la a încăpea într-un buzunar (poate unul mai încăpător), a fost constituit de lansarea de către firma Apple la începutul anului 2010 a unui calculator ultraportabil care rulează un sistem de operare de PDA, denumit iPad. Terminalele mobile pot fi utilizate pentru o gamă largă de aplicaţii, dintre care enumerăm următoarele: dispozitive de calcul mobile: o dispozitive mobile pentru internet; o asistent digital personal (PDA)/asistent digital profesional (enterprise digital assistant - EDA); o calculatoare portabile; o console portabile pentru jocuri; o dispozitive portabile de redare a conţinutului multimedia; camere foto digitale; camere video digitale; telefoane mobile; pagere; dispozitive de navigare (GPS). Compania suedeză People of Lava a scos la vânzare în luna noiembrie 2010 primul televizor care rulează sistemul de operare Google Android şi permite utilizatorilor să vizioneze pagini internet pe un ecran de 140 cm. 6 1. TERMINALE INTELIGENTE MOBILE – PDA ŞI TELEFOANE INTELIGENTE (SMARTPHONES) Destinaţia principală a unui PDA (personal digital assistant – denumit şi handheld sau palmtop) este acea de a fi o agendă sau un organizator electronic portabil, uşor de folosit şi capabil de a schimba informaţii cu PC-ul (figura 1.1). Este o extensie a PC-ului, nu un înlocuitor. PDA-urile au evoluat mult în ultimii ani. Nu pot numai să memoreze informaţii personale cum sunt adresele, întâlnirile şi listele de sarcini, dar pot să se şi conecteze la internet, să funcţioneze ca şi dispozitive GPS, telefoane mobile, sau să ruleze aplicaţii multimedia, iar capabilităţile acestora continuă să crească. Figura 1.1 Un PDA tipic: Hewlett Packard iPAQ Pocket PC 1.1 Istoria PDA-urilor Termenul PDA a fost utilizat pentru prima dată în 7 ianuarie 1992 de către managerul firmei Apple Computer - John Sculley la Consumer Electronics Show în Las Vegas, Nevada, când a fost lansat Apple Newton. În 1996, Nokia a introdus primul telefon mobil cu funcţionalitate completă de PDA, Communicator, care urma să devină cel mai bine vândut PDA din lume. Communicator a introdus o nouă categorie de telefoane mobile: telefoanele inteligente (smartphone). Acum marea majoritate a PDA-urilor vândute sunt de fapt telefoane inteligente: peste 150 milioane de unităţi pe an, în timp ce PDA-urile clasice, fără funcţie de telefon, se vând aproximativ 3 milioane de unităţi pe an. Printre predecesoarele PDA-urilor moderne se numără Psion Organiser şi Sharp Wizard, apărute în a doua jumătate a anilor 1980. Acestea aveau mici tastaturi ca dispozitiv de intrare, un mic afişaj şi funcţii principale ca ceas deşteptător, calendar, agendă de telefon şi calculator. Includeau de asemenea 7 şi suport pentru aplicaţii specializate cum ar fi jocurile şi foile de calcul. Psion Organiser II, lansat în 1986, a fost deosebit de popular şi s-a vândut în mai mult de o jumătate de milion de exemplare. În 1993, Apple a lansat Newton MessagePad la preţul de 700 dolari SUA, oferind utilizatorilor aplicaţii cum sunt agenda electronică, listă de sarcini, calendar, jurnal telefonic şi carneţel pentru notiţe. Unele dintre inovaţiile incluse în Newton MessagePad au devenit caracteristici standard ale PDA-urilor, incluzând afişajul tactil şi creionul, recunoaşterea scrierii de mână, portul pentru infraroşu şi portul pentru extindere. În schimb, Newton MessagePad a fost prea mare, scump şi complicat, iar programul de recunoaştere a scrierii de mână prea slab, iar Apple a încetat să-l mai producă în 1998. Primul PalmPilot a fost lansat în martie 1996 de Palm Computing (proprietatea U.S. Robotics în acel timp). Costa mai puţin de 300 de dolari, rula propriul său sistem de operare Palm, încăpea într-un buzunar de cămaşă şi se putea sincroniza cu PC-ul. PalmPilot putea funcţiona câteva săptămâni cu baterii AAA, era uşor de folosit, şi putea memora mii de contacte, întâlniri şi notiţe. Parţial, dimensiunea redusă se datora lipsei tastaturii. Pentru introducerea datelor se utiliza un creion şi limbajul Graffiti. Pentru a ţine pasul, Microsoft a încercat diferite forme de calculatoare portabile, ca PenWindows şi TabletPC. În Noiembrie 1996, Microsoft a lansat Windows CE, primul său sistem de operare pentru dispozitive mobile. A fost adoptat de un număr de fabricanţi ca HP, Compaq sau Casio, şi a fost dublat de Handheld PC – primul competitor pentru PalmPilot bazat pe Windows. Creşterea importanţei dispozitivelor mobile a determinat o competiţie intensă între giganţi ai tehnologiei cum sunt Google, Microsoft, Apple, şi Nokia în încercarea de a acapara o parte cât mai mare din piaţă. Palm, Research In Motion şi Ericsson sunt alte firme semnificative în sectorul platformelor mobile. 1.2 Tipurile principale de terminale inteligente mobile PDA-urile tradiţionale actuale sunt descendente ale dispozitivelor originale PalmPilot şi Microsoft Handheld PC. Dispozitivele Palm rulează sistemul de operare Palm OS, iar dispozitivele Microsoft Pocket PC rulează Windows Mobile. Diferenţele dintre cele două sisteme sunt mai puţine decât în trecut. PDA-urile Palm Compania Palm Computing a fost înfiinţată în 1992 cu scopul de a crea dispozitive mobile tip PDA pentru consumatorii individuali. Primul PDA s-a numit Zoomer şi a fost lansat în 1993. Deşi nu a avut succes comercial, a contribuit la dezvoltarea modelului Palm Pilot. Palm Computing a fost achiziţionată de U.S. Robotics în 1995. Din 1997, odată cu preluarea U.S. 8 Robotics de către compania 3Com, Palm Computing devine parte a acestei companii. Recunoscute pentru uşurinţa în utilizare, PDA-urile Palm OS au: O vastă bibliotecă de aplicaţii „third-party” care pot fi adăugate sistemului (majoritatea dispozitivelor se vând împreună cu software pentru e-mail, multimedia, etc.) O versiune îmbunătăţită a aplicaţiei de recunoaştere a scrierii de mână Graffiti. Sincronizare cu ambele tipuri de computere Windows şi Macintosh folosind Palm Desktop. Afişaje mai mici decât ale dispozitivelor Pocket PC pentru a rezerva o suprafaţă specială pentru Graffiti (unele dispozitive Palm evoluate încorporează o suprafaţă virtuală Graffiti în display, rezultând o suprafaţă mai mare pentru display.) Pocket PC-urile Pocket PC este numele generic pentru PDA-urile Windows Mobile. Caracteristicile lor standard includ: Versiuni adaptate ale aplicaţiilor Microsoft cum sunt: Microsoft Word, Excel, sau Outlook (de menţionat că unele formatări se pierd între versiunile PDA şi standard ale documentelor). Sincronizare cu Microsoft Outlook de pe un PC Windows (sincronizarea cu aplicaţii de e-mail altele decât Outlook, sau cu calculatoarele Macintosh necesită software adiţional). Trei aplicaţii de recunoaştere a scrierii de mână: Transcriber, Letter Recognizer (similar cu noua versiune de Graffiti), şi Block Recognizer (similar cu originalul Graffiti). O suprafaţă virtuală de scriere, care maximizează dimensiunea displayului. Windows Media Player pentru fişiere multimedia. Telefoanele inteligente (Smartphones) Un smartphone este fie un telefon mobil cu funcţii PDA, fie un PDA tradiţional cu funcţii de telefon mobil, depinzând de factorul de formă (stilul) şi de producător (figura 1.3). Caracteristicile acestor dispozitive includ: Un furnizor de servicii de telefonie pentru funcţia de telefon mobil (ca şi la telefoanele mobile, de obicei se achiziţionează un abonament de telefonie împreună cu telefonul inteligent de la furnizorul de servicii.) Acces la Internet prin intermediul reţelelor celulare de date. Diferite combinaţii de funcţii specifice telefoanelor mobile şi PDAurilor, (de exemplu, nu toate telefoanele inteligente oferă funcţii de recunoaştere a scrierii de mână) 9 Unul dintre multiplele sisteme de operare, incluzând Windows Mobile Pocket PC Phone Edition, Palm OS, Blackberry OS pentru telefoanele inteligente Blackberry, şi Symbian OS pentru telefoanele inteligente Panasonic, Nokia, Samsung şi altele. Există şi alte dispozitive înrudite, cum sunt calculatoarele ultraportabile, ceasuri inteligente sau playere multimedia. Calculatoarele ultraportabile au o greutate cuprinsă intre 0,5 - 1,5 Kg, rulează un sistem de operare desktop complet (de exemplu Windows XP), şi includ o mică tastatură. Ceasurile inteligente oferă unele funcţii specifice PDA-urilor într-o carcasă specifică ceasurilor de mână. De exemplu, ceasurile Microsoft SPOT (Smart Personal Objects Technology) pot recepţiona informaţii MSN ca prognoza meteo sau ştirile. De asemenea, pot recepţiona informaţii de tip calendar şi mesaje personale. Unele playere multimedia pot combina diferite funcţii specifice PDA-urilor cu capabilităţi multimedia, cum sunt o cameră digitală, un player MP3 şi un video player. 1.3 Funcţiile de bază ale PDA-urilor Cele mai simple PDA-uri au cel puţin funcţii standard de management al informaţiilor personale (PIM), de rulare de aplicaţii software şi de sincronizare cu PC-urile. Funcţiile PIM Standard Toate PDA-urile oferă funcţii standard de management al informaţiilor personale, realizate prin aplicaţii software cu următoarele obiective: Memorarea informaţiilor de contact (nume, adrese, numere de telefon, adrese de e-mail); Întocmirea listelor de sarcini zilnice; Memorarea notiţelor; Urmărirea evenimentelor programate (agendă, calendar); Anunţarea întâlnirilor (ceas, funcţii de alarmă); Realizează calcule matematice. Rularea aplicaţiilor software. PDA-urile pot rula aplicaţii software specializate, cum sunt: Dispozitivele Windows Mobile rulează versiuni adaptate de Word, Excel, Internet Explorer şi Outlook (incluzând funcţii de e-mail şi PIM), alături de Windows Media Player funcţii de reportofon. Majoritatea dispozitivelor Palm OS oferă aplicaţii cum sunt DataViz Documents to Go (compatibile cu Microsoft Word, Excel şi PowerPoint), palmOne Media (pentru fotografii şi imagini video), clientul de e-mail VersaMail, şi software pentru navigare pe internet. 10 Toate tipurile de PDA-uri pot rula şi alte tipuri de software pentru jocuri, multimedia, cheltuieli, diete şi exerciţii fizice, călătorii, medicale, plăţi şi informaţii. Sincronizarea cu PC-urile Pentru a sincroniza un PDA (funcţie denumită pe scurt sync), trebuiesc realizate următoarele operaţiuni: Conectarea PDA-ului cu PC-ul cu ajutorul unui cablu sau a unei combinaţii soclu/cablu, în mod normal prin porturile USB sau seriale de pe PDA şi PC. Unele dispozitive pot realiza sincronizarea şi transferul datelor prin conexiuni wireless sau Bluetooth. Apăsarea butonului sync (de pe dispozitiv sau de pe soclu) pentru pornirea procesului de sincronizare. Realizarea transferurilor de date după compararea fişierelor şi informaţiilor între PDA şi PC, prin copierea celor mai noi versiuni ale fişierelor de pe PDA pe PC sau invers. Aplicaţiile software pentru sincronizare de pe PDA conlucrează cu aplicaţiile similare instalate pe PC. Dispozitivele Microsoft Pocket PC folosesc ActiveSync, iar dispozitivele Palm OS folosesc HotSync. În plus, pe PC trebuie să ruleze o aplicaţie ca Microsoft Outlook sau Palm Desktop care memorează informaţiile PIM. Avantajul sincronizării este acela că întotdeauna există o copie de rezervă a datelor, foarte utilă dacă PDA-ul se defectează, este pierdut, furat sau i se epuizează bateriile. În plus faţă de funcţiile de bază, majoritatea PDA-urilor (nu neapărat toate), oferă şi alte funcţii wireless şi multimedia cu sunt: Conectivitate fără fir de rază scurtă prin tehnologii în infraroşu (IR) sau Bluetooth; porturile IR care se găsesc pe multe PDA-uri sunt folosite pentru sincronizarea cu laptopuri care au porturi IR; Bluetooth se foloseşte pentru conectarea cu alte dispozitive Bluetooth, cum sunt căştile sau imprimantele compatibile. Conectivitate la Internet sau Intranet prin puncte de acces Wi-Fi. Suport pentru Wireless WAN (Wide Area Networks) – reţele celulare de date care oferă conectarea la Internet a telefoanelor inteligente. Conector pentru card de memorie de tip CompactFlash, MultiMediaCard, sau Secure Digital, carduri utilizate ca spaţiu de stocare suplimentar pentru date şi programe. Suport audio pentru fişiere MP3, microfon, difuzor şi conector pentru căşti. Unele PDA-uri mai sofisticate oferă capabilităţi suplimentare multimedia, de securitate şi altele care nu se regăsesc pe dispozitivele mai ieftine: 11 Conector Secure Digital Input/Output (SDIO) pentru periferice suplimentare conţinute în cardurile SDIO, cum sunt adaptoare Bluetooth, Wi-Fi, sau GPS; Funcţii GPS încorporate; Cameră digitală încorporată pentru fotografii digitale sau scurte filme (calitatea poate să nu fie la fel de bună ca în cazul camerelor digitale specializate); Funcţii de securitate integrate cum sunt cititoarele biometrice de amprente. 1.4 Structura unui PDA Microprocesorul şi memoria Ca şi în cazul calculatoarelor standard desktop sau laptop, PDA-urile sunt controlate de microprocesoare. Spre deosebire de PC-urile desktop sau laptop, PDA-urile folosesc microprocesoare mai mici şi mai ieftine. Deşi aceste microprocesoare sunt mai lente decât cele folosite la PC-uri, ele sunt adecvate sarcinilor pe care le îndeplinesc PDA-urile. Avantajele dimensiunilor şi preţurilor mai mici compensează diferenţa de viteză. PDA-urile nu au hard disk. Programele de bază (agenda, calendarul, editoarele şi sistemul de operare) sunt stocate într-o memorie nevolatilă (ROM), care nu se şterge în lipsa tensiunii de alimentare. Datele personale şi alte programe adăugate de utilizator sunt stocate într-o memorie volatilă (RAM). Informaţiile din memoria RAM sunt păstrate în siguranţă, întrucât prin construcţia PDA-ului aceasta rămâne alimentată atunci când dispozitivul se închide. PDA-urile mai puţin performante au mai puţină memorie RAM. Întrucât multe aplicaţii necesită spaţiu semnificativ de memorie, multe modele dispun de mai multă memorie. Dispozitivele Pocket PC consumă în general mai multe resurse şi au mai multă memorie RAM. Pentru a putea beneficia de memorie adiţională, multe PDA-uri acceptă carduri de memorie flash. Acestea sunt foarte utile pentru memorarea fişierelor cu dimensiune mare, sau fişierelor mltimedia, cum sunt fotografiile digitale. Unele tipuri de PDA, cum este Palm Tungsten E2, folosesc memorie flash în loc de RAM. Memoriile flash sunt nevolatile, ceea ce înseamnă că îşi menţin datele chiar dacă bateria se descarcă complet. Bateriile PDA-urile sunt alimentate cu baterii. Unele modele folosesc baterii alcaline (AAA), iar altele folosesc acumulatori (litiu, nichel-cadmiu sau nichel-metal). Durata de viaţă a bateriilor depinde de tipul PDA-ului şi de modul în care este folosit. Câteva din motivele pentru care bateriile se consumă mai repede sunt: 12 Sistemul de operare (dispozitivele PocketPC consumă mai multă putere întrucât necesită mai multă memorie); Cantitatea de memorie; Conexiunile fără fir, cum sunt Wi-Fi şi Bluetooth; Sursa de lumină din spatele afişajului. Majoritatea PDA-urilor folosesc programe de management al consumului de energie pentru a extinde durata de viaţă a bateriilor. Chiar daca bateriile sunt atât de descărcate încât nu mai pot permite pornirea PDA-ului, de obicei mai au destulă putere ca să permită reîmprospătarea memoriei RAM. În plus, multe dispozitive au o baterie internă de siguranţă care asigură alimentarea de scurtă durată (de obicei nu mai mult de 30 de minute), în cazul în care bateriile se descarcă complet sau sunt îndepărtate pentru a fi înlocuite. Dacă toate sursele de energie sunt epuizate, PDA-urile pierd toate datele din memoria RAM. Acest lucru face procesul de sincronizare a PDA-ului extrem de important. În afară de alimentarea cu baterii, PDA-urile au adaptoare pentru alimentarea de la reţea, iar adaptoarele auto sunt în general disponibile ca accesoriu opţional. Afişajul LCD PDA-urile folosesc afişaje LCD (liquid-crystal display). Spre deosebire de afişajele LCD ale calculatoarelor desktop sau laptop, care sunt folosite numai ca dispozitive de ieşire, ecranele PDA-urilor sunt folosite atât ca dispozitiv de ieşire, cât şi de intrare. Ecranele LCD ale PDA-urilor sunt mai mici decât ecranele laptop-urilor, având dimensiuni diferite, marea majoritate color. Afişajele PDA-urilor au următoarele caracteristici: Transflective TFT (thin-film transistor) LCD pentru utilizare în interior cât şi afară; Diferite rezoluţii, calitatea crescând cu numărul de pixeli; Ecran color; Iluminare suplimentară din spate pentru utilizarea în caz de lumină scăzută. Metode de introducere a datelor Există mai multe moduri de a introduce date şi comenzi utilizate de PDA-uri. Unele dispozitive folosesc exclusiv creionul şi ecranul tactil în combinaţie cu un program de recunoaştere a scrierii de mână. Cu ajutorul unui creion de plastic, se scrie pe afişajul dispozitivului sau pe suprafaţa dedicată pentru scriere. Programul specializat care rulează în PDA converteşte caracterele în litere şi cifre. În cazul dispozitivelor Palm, programul care recunoaşte scrierea de mână se numeşte Graffiti. Graffiti necesită ca fiecare literă să fie scrisă într-un fel specific, folosind un alfabet specializat. De 13 exemplu, pentru a scrie litera „A”, se trasează un „V” răsturnat. Litera „F” arată ca un „L” răsturnat. Pentru a ajuta Graffiti să recunoască cu acurateţe mai mare, literele trebuiesc scrise într-o parte a ecranului, iar cifrele în cealaltă parte. PDA-urile Pocket PC oferă trei aplicaţii de recunoaştere a scrierii de mână: Transcriber, Letter Recognizer şi Block Recognizer. Letter Recognizer şi Block Recognizer sunt asemănătoare cu Graffiti şi necesită alfabet specializat. În schimb, Transcriber recunoaşte scrierea de mână „obişnuită”, cu condiţia să fie lizibilă. În afară de recunoaşterea scrierii de mână, se poate folosi o tastatură miniaturală care apare pe ecran. Aceasta arată ca şi o tastatură obişnuită, doar că Simbolurile trebuie atinse cu creionul de plastic. În plus, multe dispozitive includ şi o mică (şi de obicei cam înghesuită) tastatură QWERTY. Mai există şi posibilitatea de a conecta o tastatură de dimensiune normală cu ajutorul Bluetooth sau a portului USB. Fiecare model posedă câteva butoane şi taste de navigare pentru comutarea între aplicaţii şi pentru defilare în cadrul fişierelor. 1.5 Sistemul de operare Sistemul de operare conţine instrucţiuni pre-programate care îi spun microprocesorului ce are de făcut. Sistemele de operare folosite de PDA-uri nu sunt atât de complexe ce cele ale calculatoarelor PC, deoarece au mai puţine instrucţiuni, ceea ce necesită mai puţină memorie. Caracteristicile generale ale acestora sunt: proces rapid de iniţializare (bootstrap); răspuns imediat la comutarea de la o aplicaţie la alta; operaţii eficiente de back-up/sincronizare. Sistemele de operare în timp real (RTOS) oferă mijloacele de răspuns rapid şi eficient necesare funcţionării PDA-urilor, prezentând, în general, următoarele funcţii: multitasking; procese şi subprocese bazate pe priorităţi; un număr suficient de niveluri de întrerupere. În continuare sunt prezentate pe scurt sistemele de operare disponibile în prezent pentru telefoanele inteligente: Symbian OS (Nokia), iOS (Apple), BlackBerry OS (RIM), Windows Phone OS (Microsoft), WebOS (Palm, achiziţionat recent de HP), Android (Google), Bada (Samsung) şi Maemo (Nokia), urmate de o prezentare detaliată a celor mai importante sisteme de operare disponibile pe piaţa actuală (figura 1.6). 14 Figura 1.6 Distribuţia vânzărilor de telefoane inteligente în trimestrul 4 al anului 2010 în funcţie de sistemul de operare. Symbian OS deţine cea mai mare parte a pieţei mondiale (cu excepţia celei nord-americane), ca efect al succesului celui mai important client şi deţinător de acţiuni – Nokia. Acest sistem de operare a fost utilizat de multe dintre companiile importante producătoare de telefoane mobile cum sunt: BenQ, Fujitsu, LG, Mitsubishi, Motorola, Nokia, Samsung, Sharp, sau Sony Ericsson. În prezent, dispozitive mobile bazate pe Symbian sunt produse de Fujitsu, Nokia, Samsung, Sharp şi Sony Ericsson. Până în 2009 Symbian a suportat multiple interfeţe utilizator, cum sunt UIQ (UIQ Technologies), S60 (Nokia), sau MOAP (NTT DOCOMO). Ca urmare a unificării platformelor Symbian în anul 2009, aceste trei interfeţe utilizator au fost contopite într-una singură, care nu mai este în totalitate open source. BlackBerry OS este un sistem de operare creat iniţial pentru oamenii de afaceri, a cărui principală caracteristică era uşurinţa utilizării. Îmbunătăţirile recente au constat în acceptarea unui număr crescut de aplicaţii suplimentare, ca şi oferirea suportului complet pentru fişiere multimedia. În prezent, pe site-ul dedicat, App World, se pot descărca peste 6000 de aplicaţii. Android a fost creat iniţial de o mică companie achiziţionată ulterior de Google Inc., care continuă dezvoltarea acestui sistem de operare. Android este o platformă derivată din sistemul de operare Linux, la realizarea căreia, alături de Google au contribuit un grup de companii importante din domeniul hardware şi software (dintre care Intel, HTC, ARM, Samsung, Motorola şi eBay), care formează Open Handset Alliance. Acest sistem de operare relativ 15 nou, a avut deja lansate şapte versiuni: Android 1.0, 1.5, 1.6, 2.0, 2.1, 2.2 şi 2.3 . iOS este sistemul de operare derivat din Mac OS X creat de firma Apple pentru dispozitivele iPhone, iPod Touch şi iPad. Aplicaţiile altor producători nu au fost oficial acceptate până la lansarea versiunii iOS 2.0 pe 11 iulie 2008. Windows Mobile, apărut iniţial sub numele de Windows CE, este foarte răspândit în special în Asia. Varianta îmbunătăţită – Windows Mobile 6 Professional (pentru PDA şi dispozitive cu ecran tactil) a fost anunţată în Februarie 2007, dezvoltată ulterior până la versiunea 6.5. A fost criticat în special pentru interfaţa utilizator neoptimizată pentru controlul ecranului tactil cu ajutorul degetelor. Cota de piaţă a dispozitivelor Windows Mobile a scăzut vertiginos în ultimii ani, ajungând la doar 3% în trimestrul al patrulea al anului 2010, compania Microsoft fiind concentrată pe lansarea noii sale platforme, Windows Phone. Windows Phone a fost anunţat de Microsoft pe 15 februarie 2010 ca fiind noua generaţie de sisteme de operare pentru terminale mobile, sub numele de Windows Phone 7. Noul sistem de operare se caracterizează printro orientare complet diferită a interfeţei utilizator inspirată de limbajul "Metro Design Language", ce oferă o integrare completă a serviciilor Microsoft cum sunt Windows Live, Zune, Xbox Live şi Bing, dar şi a unor servicii nonMicrosoft cum sunt Facebook sau conturile Google. Deoarece Windows Phone 7 este o platformă complet nouă, nu oferă compatibilitate cu aplicaţiile create pentru Windows Mobile, iar unele caracteristici importante ale sistemului de operare Windows Mobile nu se regăsesc până la următoarele actualizări. Linux deţine cea mai mare cotă de piaţă în China unde este utilizat de Motorola şi în Japonia, utilizat de DoCoMo. Linux nu este foarte utilizat ca platformă distinctă, ci mai curând reprezintă baza pentru un număr mare de platforme diferite cum sunt Android, LiMo, Maemo, Openmoko sau Qt Extended, care sunt destul de incompatibile între ele. PalmSource (în prezent Access) se dezvoltă către o interfaţă bazată pe Linux. Alte platforme bazate pe Linux sunt în curs de dezvoltare de către Motorola, NEC, NTT DoCoMo, Panasonic, Samsung, sau Vodafone. webOS reprezintă cea mai recentă generaţie de sisteme de operare Palm. PalmSource utilizează propria platformă dezvoltată iniţial de Palm Inc. – Access Linux Platform (ALP), ca o îmbunătăţire care a fost lansată în prima parte a anului 2007, folosind specificaţiile tehnice ale Linux Phone Standards Forum. Această platformă include un emulator care suportă aplicaţiile create pentru dispozitivele Palm. HP a cumpărat compania Palm în 2010. bada este un sistem de operare pentru telefoane inteligente creat de Samsung Electronics. Samsung pretinde că bada va înlocui rapid platformele telefoanelor mobile proprii, transformând telefoanele mobile în telefoane 16 inteligente. Numele „bada” este derivat din cuvântul Coreean care înseamnă ocean sau mare. Primul dispozitiv care a rulează sistemul de operare bada se numeşte „Wave” şi a fost anunţat public la Mobile World Congress 2010. Wave este un telefon bazat în totalitate pe ecranul tactil, împreună cu care Samsung a lansat propriul magazin virtual pentru aplicaţii, Samsung Apps, care oferă în prezent peste 300 de aplicaţii mobile. Deşi Samsung intenţionează să instaleze bada pe multe dintre telefoanele construite, compania dezvoltă şi o gamă largă de telefoane bazate pe Android. MeeGo este un sistem de operare lansat în anul 2010 la Mobile World Congress în Barcelona de companiile Nokia şi Intel care combină cele mai bune caracteristici ale sistemelor de operare Moblin şi Maemo pentru a crea o adevărată experienţă open-source pentru utilizatorii oricăror dispozitive mobile. Maemo este o platformă software dezvoltată de Nokia pentru telefoane inteligente şi Tablete Internet, bazată pe sistemul de operare Debian, în colaborare cu alte proiecte open source ca Linux kernel, sau GNOME. 1.6 Instrumente de dezvoltare ale sistemelor de operare pentru PDA Windows Mobile Windows Mobile oferă dezvoltatorilor mediul de programare familiar al interfeţei de programare a aplicaţiilor (API) Microsoft Win32, controale ActiveX, şiruri de mesaje (MSMQ) şi Component Object Model (COM), Active Template Library (ATL), şi Microsoft Foundation Classes (MFC) Library. ActiveSync facilitează conectivitatea simplă între calculatorul desktop şi dispozitivul înglobat, prin conexiune serială, portul infraroşu, sau prin cablul de reţea. Windows Mobile conţine suport pentru multimedia (inclusiv DirectX), comunicaţi (TCP/IP, SNMP, TAPI, şi altele), şi securitate. O gamă largă de aplicaţii integrate, incluzând Pocket Internet Explorer, Pocket Outlook, şi Pocket Word furnizează obiecte care permit dezvoltatorilor să extindă şi să personalizeze sistemul existent, dar şi să extindă funcţionalitatea aplicaţiilor create. Palm OS Palm OS Software Development Kit (SDK) conţine interfeţele de programare a aplicaţiilor (API) pentru dezvoltarea de programe Palm OS, incluzând funcţii pentru interfeţele utilizator, management de sistem şi comunicaţii. Conduit Development Kit (CDK) permite implementarea de canale de comunicaţie, care facilitează schimbul şi sincronizarea datelor între o aplicaţie desktop şi o aplicaţie care rulează pe dispozitivul mobil. CDK este disponibil în variantele pentru Windows, Mac şi Solaris. 17 Fiecare aplicaţie Palm trebuie să aibă asignat un identificator unic, numit CreatorID, care poate fi obţinut de la Palm. în afară de aceste kituri de dezvoltare, programarea este susţinută de câteva medii şi instrumente de dezvoltare. Symbian OS Symbian furnizează kituri de dezvoltare pentru C++, pentru OPL şi pentru Java. Programatorii scriu aplicaţiile pe un PC şi folosesc un emulator pentru a le testa. Spre deosebire de alte sisteme de operare, Symbian OS implementează multitaskingul mai mult prin mesageria bazată pe evenimente decât prin multithreading. Multithreadingul este complex, predispus la erori şi consumator de memorie; Symbian OS este mult mai eficient - pentru a crea alt obiect într-un sistem de operare condus de evenimente nu este nevoie de nicio comutare de context. Symbian OS include un nucleu multitasking, mijloace de comunicaţie, management de date şi grafică, nivelul de jos al cadrului interfeţei grafice cu utilizatorul (GUI), şi motoarele aplicaţiilor. Similar cu Palm OS, aplicaţiile Symbian OS trebuie să aibă un UID unic pentru identificarea şi asocierea fişierelor. UID trebuie cerut de la Symbian. 1.7 Concluzii Piaţa dispozitivelor mobile de tip PDA, telefoane inteligente sau tablete va fi în creştere în 2011 conform previziunilor şi tendinţelor remarcate la Consumers Electronics Show desfăşurat în ianuarie 2011 în Las Vegas şi Mobile World Congress desfăşurat în februarie la Barcelona. Producătorii de astfel de dispozitive se străduiesc să ofere noi facilităţi pentru a atrage noi clienţi. Câteva din noile facilităţi care vor fi oferite de dispozitivele care se aşteaptă a fi lansate în 2011 sunt: Procesoare dual-core: după ce în anul 2010 depăşirea pragului de 1GHz pentru frecvenţa procesoarelor utilizate de terminalele inteligente mobile a produs senzaţie, interesul pentru îmbunătăţirea performanţelor procesoarelor va continua cu introducerea tehnologiei dual-core, pentru a oferi performanţe video îmbunătăţite, viteză şi uşurinţă în navigarea pe internet şi în rularea aplicaţiilor. În decembrie 2010, LG Electronics a anunţat lansarea modelului Optimus 2X, un telefon inteligent dotat cu sistemul de operare Android şi procesor Nvidia dual-core Tegra2. În afară de Nvidia, Qualcomm, Samsung şi Texas Instruments pregătesc noi procesoare dual-core pentru terminale mobile, deci lansarea de noi modele dotate cu astfel de procesoare este tot mai probabilă. 18 Afişaje 3D: succesul obţinut de tehnologia 3D în cinematografe a produs un efect considerabil în întreaga industrie de electronice de larg consum. Televizoare, console de jocuri, calculatoare şi telefoane inteligente, toate se pregătesc să adopte această tehnologie. În Japonia, compania Sharp deja a anunţat lansarea a două telefoane inteligente dotate cu sistemul de operare Android cu care utilizatorii vor putea juca jocuri şi viziona filme 3D fără ajutorul ochelarilor speciali. Dual SIM: în decembrie 2010, compania Broadcom a anunţat producerea unui nou cip pentru telefoanele inteligente, care ar putea fi utilizat de producătorii de terminale ieftine, dotate cu sistemul de operare Android şi care permite utilizarea a două cartele SIM simultan. Aceasta ar permite utilizatorilor să reducă costurile convorbirilor, oferind totodată o mai mare flexibilitate în timpul călătoriilor în străinătate. Video: o altă tendinţă majoră a anului 2010 a fost înregistrarea video de înaltă rezoluţie, la 720 pixeli pe linie, devenind o caracteristică populară în cazul telefoanelor inteligente mai pretenţioase, între care iPhone 4 şi Samsung Galaxy S. Această evoluţie va continua în 2011, trecând de la 720p la 1080p. LG Optimus 2X oferă deja redare şi înregistrare video la 1080p şi se poate conecta la un afişaj extern prin HDMI, ceea ce se aşteaptă să devină o caracteristică obişnuită în anul 2011. Trecerea la rezoluţia de 1080p este strâns legată de introducerea procesoarelor dual-core; puterea de procesare adusă de cel de-al doilea nucleu permite telefoanelor inteligente să facă faţă fluxului de date cerut de rezoluţia mai înaltă. Combinaţia dintre conexiunea HDMI, suport pentru rezoluţia de 1080p şi viteze crescute de download în reţelele mobile va permite operatorilor să ofere mai multe servicii video. Concretizarea tendinţelor prezentate, ca şi interesul tot mai mare arătat de utilizatori pentru noile terminale inteligente mobile – inclusiv recent apărutele tablete electronice – justifică încă odată ideea utilizării acestor dispozitive în monitorizarea şi controlul aplicaţiilor industriale. Capacităţile de calcul, memorare şi de comunicare ale dispozitivelor actuale permit rularea în siguranţă a programelor special concepute în acest scop. Estimăm că nu numai performanţele hardware, dar şi suportul şi platformele pentru dezvoltarea de aplicaţii specifice vor evolua pentru a ţine pasul cu aceste tendinţe. 19 2. UTILIZAREA TEHNOLOGIEI OPC ÎN CONTROLUL APLICAŢIILOR INDUSTRIALE 2.1 Noţiuni introductive despre OPC OPC (OLE1 for Process Control) este un standard industrial creat prin colaborarea unui grup de furnizori importanţi pe plan mondial de software şi hardware de automatizare cu compania Microsoft. Standardul defineşte metodele de comunicaţii de date între sistemele de automatizare în timp real şi aplicaţiile de tip client care rulează pe calculatoare cu sisteme se operare Microsoft. Organizaţia care controlează acest standard se numeşte Fundaţia OPC (OPC Foundation). Specificaţiile OPC sunt specificaţii tehnice non-proprietar care definesc un set de interfeţe standard bazate pe platforma Microsoft OLE/COM2/DCOM3 şi pe tehnologia .NET4. Utilizarea interfeţelor standard OPC face posibilă interoperabilitatea între aplicaţiile de automatizare/control, dispozitivele/ sistemele industriale şi aplicaţiile economice/de birou. În mod tradiţional, fiecare producător de software sau aplicaţii trebuia să programeze o interfaţă particulară, un server sau un driver pentru a realiza schimbul de date cu dispozitivul corespunzător. Standardul OPC elimină această necesitate prin definirea unei interfeţe generale, de mare performanţă, care permite ca această muncă să fie făcută o singură dată, iar apoi să fie reutilizată cu uşurinţă de aplicaţii de tip HMI5, SCADA6, de control sau particularizate. OPC reprezintă o interfaţă standard între numeroase tipuri de surse de date, cum sunt echipamentele de automatizare, echipamentele de laborator, sistemele de testare sau bazele de date din sistemele de control. Pentru a elimina dublarea eforturilor în dezvoltarea driverelor de echipamente, inconsistenţele dintre drivere, pentru a permite schimbarea caracteristicilor echipamentelor şi pentru evitarea conflictelor de acces în sistemele de control industrial, Fundaţia OPC a definit un set de interfeţe standard care permit oricărui client să acceseze orice dispozitive compatibile OPC. Majoritatea 1 OLE – Object Linking and Embedding – tehnologie dezvoltată de compania Microsoft care permite conectarea şi înglobarea documentelor şi a altor obiecte 2 COM – Component Object Model – este o interfaţă binară standard pentru componentele software introdusă de Microsoft în 1993, pentru a permite comunicarea între procese şi crearea de obiecte dinamice într-o gamă largă de limbaje de programare 3 DCOM – Distributed Component Object Model reprezintă extensia tehnologiei COM de la Microsoft pentru comunicaţia între componentele software distribuite pe diverse calculatoare într-o reţea 4 .NET este un mediu software care conţine o bibliotecă de funcţii şi o maşină virtuală care controlează execuţia programelor scrise pentru acest mediu 5 HMI – Human-Machine Interface – interfaţa om-maşină reprezintă mijlocul (de obicei o componentă a unei aplicaţii software) prin care utilizatorul interacţionează cu sistemul – un anumit dispozitiv, un program de calculator sau un alt instrument complex 6 SCADA – Supervisory Control and Data Acquisition – se referă la un sistem de control industrial, compus dintr-un sistem de calculatoare care monitorizează şi controlează un proces 20 furnizorilor de echipamente de achiziţii de date şi de control se conformează standardului Fundaţiei OPC. OPC permite serverelor de dispozitiv şi aplicaţiilor software – două procese separate – să comunice între ele printr-o interfaţă standard Microsoft COM, fiind proiectat să fie un nivel de separare între diferite dispozitive şi programele care trebuie să le acceseze informaţiile sau să le controleze. Standardul OPC precizează comportamentul pe care interfeţele trebuie să le ofere clienţilor care le folosesc, şi care primesc date de la interfeţe folosind funcţii şi metode standard. Prin urmare, orice program de analiză computerizată sau de achiziţie de date poate să comunice cu orice dispozitiv industrial cât timp acel program utilizează protocolul client OPC, iar driverul dispozitivului are asociată o interfaţă OPC. În unele documentaţii, în locul termenului de Server OPC se utilizează termenul de Driver OPC. Cei doi termeni sunt sinonimi. OPC a apărut din necesitatea unui mecanism standard de comunicare între numeroasele surse de date, fie dispozitive de automatizare de la nivelul liniei de producţie, fie bazele de date din camerele de control. Figura 2.1 Arhitectura informaţională a controlului proceselor la nivelul organizaţiei În arhitectura informaţională a unui proces industrial prezentată în figura 2.1 se disting următoarele niveluri: 1. Managementul liniei de producţie (Field Management) – odată cu răspândirea accentuată a dispozitivelor de automatizare „inteligente”, 21 cantitatea de informaţii disponibile referitoare la starea de funcţionare, parametrii de configurare, etc. a crescut substanţial, apărând astfel necesitatea publicării şi utilizării acestora de către utilizatori sau aplicaţii software într-o manieră unitară. 2. Managementul procesului (Process Management) – instalarea sistemelor de control distribuite (DCS7) şi SCADA pentru controlul şi monitorizarea procesului de producţie a uşurat şi colectarea centralizată a informaţiilor în format electronic, operaţie care înainte se efectua manual. 3. Managementul organizaţiei (Business Management) – prin instalarea sistemelor de control se pot obţine beneficii la nivelul organizaţiei prin integrarea informaţiilor colectate de la diferitele procese în sistemele de management al organizaţiei, pentru corelarea acestora cu aspectele financiare ale procesului de producţie. Furnizarea acestor informaţii aplicaţiilor client într-o manieră unitară minimizează eforturile necesare acestei integrări. Pentru a realiza toate aceste sarcini în mod eficient, managerii au nevoie să acceseze datele de la nivelul liniei de producţie şi să le integreze în sistemele existente de management al organizaţiei, fiind capabili să utilizeze instrumentele disponibile (pachete SCADA, baze de date, foi de calcul, etc.) pentru a asambla un sistem potrivit nevoilor lor. Cheia succesului o reprezintă o arhitectură de comunicaţie deschisă şi eficientă concentrată pe accesul la date şi nu pe tipul acestor date, capabilă să ofere o metodă comună de acces la orice sursă de date, fie dispozitiv sau bază de date. Arhitectura clasică a aplicaţiilor client Foarte multe dintre aplicaţiile client realizate accesează datele necesare de la surse utilizând „drivere” independente incluse în pachetele software proprii. Această abordare conduce la probleme cum sunt: Duplicarea eforturilor – fiecare dezvoltator de aplicaţii trebuie să scrie un driver pentru fiecare echipament hardware utilizat; Inconsistenţe între driverele diferiţilor producători – unele caracteristici hardware pot să nu fie suportate de toţi dezvoltatorii de drivere; Lipsa suportului pentru schimbarea caracteristicilor hardware – unele schimbări ale caracteristicilor hardware pot face inutile anumite drivere; Conflicte de acces – pachete diferite nu pot accesa simultan acelaşi dispozitiv, deoarece fiecare conţine un driver independent. Producătorii de hardware au încercat să rezolve aceste probleme prin furnizarea de drivere pentru echipamentele proprii, dar s-au confruntat cu diferitele protocoale ale aplicaţiilor client. 7 DCS – Distributed Control System – sisteme de control distribuite 22 OPC îşi propune să facă legătura între producătorii de hardware şi dezvoltatorii de software, oferind un mecanism prin care să se poată prelua informaţiile de la orice sursă de date şi să fie comunicate oricărei aplicaţii client într-un mod standardizat. Se pot astfel produce servere reutilizabile, optimizate pentru a comunica cu sursele de date şi pentru a menţine mecanismul de accesare a datelor în mod eficient de către aplicaţiile client. Includerea în server a unei interfeţe standard OPC permite oricărei aplicaţii client să acceseze dispozitivele necesare. Arhitecturile aplicaţiilor particularizate Un număr tot mai mare de aplicaţii particularizate se realizează în medii de programare cum sunt Visual Basic, Delphi, Power Builder, etc., iar standardul OPC trebuie să ţină cont de acest curent. Microsoft a înţeles acest lucru şi a creat OLE/COM pentru a permite componentelor (scrise în C sau C++ de experţi în anumite domenii) să fie utilizate de programe particularizate (scrise în Visual Basic sau Delphi pentru un cu totul alt domeniu de activitate). Programatorii vor scrie astfel componente software în C sau C++ care încapsulează problemele complexe ale accesării datelor din dispozitiv, iar programatorii aplicaţiilor de management de la nivelul organizaţiei pot scrie codul în Visual Basic pentru accesarea şi utilizarea datelor de la nivelul liniei de producţie. Arhitectura şi designul interfeţelor trebuie de asemenea să suporte dezvoltarea de servere OPC scrise în alte limbaje. 2.2 Standardul OPC Standardul OPC a fost creat pentru a permite aplicaţiilor client accesul la datele de automatizare într-un mod unitar. O acceptare pe scară largă în industrie poate aduce multe beneficii cum sunt: Producătorii de hardware vor trebui să scrie un singur set de componente software pentru produsele lor, pe care clienţii să le folosească în aplicaţiile lor. Producătorii de software nu vor mai fi nevoiţi să rescrie driverele ca urmare a modificărilor sau adăugirilor din noile versiuni hardware. Clienţii vor avea o gamă mai largă de opţiuni pentru a realiza sisteme de producţie integrate de înaltă calitate, într-un mediu informatic eterogen. La început, scopul principal al fundaţiei OPC a fost de a furniza specificaţiile mediului industrial într-un timp cât mai scurt, astfel că primele documente s-au limitat la domenii comune tuturor producătorilor, urmând ca funcţionalităţi suplimentare să fie adăugate ulterior: Accesul on-line la date – modul flexibil şi eficient de a scrie şi citi date între o aplicaţie şi procesul controlat; 23 Manipularea alarmelor şi evenimentelor – mecanismele prin care clienţii OPC să fie notificaţi cu privire la apariţia anumitor evenimente şi condiţii de alarmă; Accesul la datele istorice – accesul, procesarea şi editarea datelor stocate anterior. Alte funcţionalităţi cum sunt măsurile de securitate, grupuri de comenzi sau accesul la informaţiile istorice despre alarme şi evenimente au fost adăugate prin versiunile ulterioare ale specificaţiilor. Arhitectura OPC beneficiază de avantajele interfeţelor COM, care oferă un mecanism convenabil de extindere a funcţionalităţii OPC. Alte scopuri iniţiale ale proiectării standardului OPC au fost: Să fie simplu de implementat; Flexibilitate în satisfacerea nevoilor diferiţilor producători de hardware; Să ofere un înalt nivel de funcţionalitate; Să permită o funcţionare eficientă. Primul set de specificaţii a inclus un set de interfeţe COM care să fie utilizate de programatorii de aplicaţii client şi server şi referinţe la un set de interfeţe de automatizare OLE care să suporte aplicaţii client scrise pentru aplicaţii de nivel mai înalt cum sunt Excel, Visual Basic, etc. De asemenea, sa propus ca arhitectura să folosească tehnologia distribuită Microsoft OLE (DCOM) pentru a facilita interfaţarea clienţilor cu servere la distanţă. Avantajele utilizării serverelor OPC Un server OPC este o aplicaţie care se comportă ca o interfaţă de programare de aplicaţii (API - Application Programming Interface) sau convertor de protocol. Serverul OPC se conectează la dispozitive cum sunt PLC8, DCS, RTU9, sau la surse de date cum sunt bazele de date sau interfeţele utilizator şi converteşte datele într-un format standard OPC. Aplicaţiile compatibile OPC se pot conecta la serverul OPC pe care îl folosesc pentru a citi şi scrie datele din/în dispozitivul corespunzător. Astfel, serverul OPC este similar unui driver care permite calculatorului să comunice cu imprimanta. Serverele OPC se bazează pe arhitectura Client/Server. Serverele OPC au apărut din necesitatea presantă de a face ca sistemele informatice de producţie şi cele economice să comunice între ele. De multe ori existau bariere din cauza incompatibilităţilor dintre interfeţele particularizate de comunicaţie şi hardware-ul şi software-ul de automatizare provenit de la diferiţi furnizori. Standardul OPC oferă aplicaţiilor de producţie şi celor economice acces la informaţiile din teren în timp real şi într-o manieră consistentă, făcând posibilă interoperabilitatea între diferitele echipamente şi 8 PLC - Programmable Logic Controller – este un calculator specializat utilizat în automatizarea proceselor electromecanice 9 RTU - Remote Terminal Unit – un dispozitiv electronic controlat de microprocesor 24 conectivitatea tip „plug and play”, dar şi o mai mare flexibilitate, costuri de integrare, dezvoltare şi instalare mai reduse pentru sistemele de automatizare sau de control al proceselor. Deşi OPC este proiectat în special pentru accesarea datelor dintr-un server de reţea, interfeţele OPC pot fi utilizate în multe feluri în aplicaţii. La cel mai scăzut nivel ele pot transfera date brute din dispozitivele fizice în sistemele SCADA sau DCS, sau din SCADA sau DCS spre aplicaţii. Arhitectura şi designul lor face posibilă construirea de servere OPC care permit aplicaţiilor client să acceseze date de la mai multe servere OPC de la diferiţi furnizori care rulează pe noduri diferite printr-un singur obiect. Starea actuală a standardului menţinut de Fundaţia OPC şi a produselor OPC Fundaţia OPC are ca membri peste 430 de companii din toată lumea, căpătând o recunoaştere şi acceptare mondială, cu o foarte puternică reprezentare în America de Nord, Europa şi Asia-Pacific. Lista în continuă creştere a produselor compatibile OPC poate fi consultată în secţiunea Products a paginii de internet a fundaţiei, http://www.opcfoundation.org. Între acestea se regăsesc multe dintre produsele National Instruments care înglobează suportul OPC, inclusiv LabVIEW cu modulele OPC client şi Datalogging and Supervisory Control, FieldPoint şi interfeţele FOUNDATION Fieldbus cu servere OPC10. Trebuie precizat că LabVIEW suportă numai specificaţiile OC Data Access, prin care se pot conecta clienţi OPC de la alţi furnizori la servere OPC LabVIEW, sau clienţi OPC LabVIEW la alte tipuri de servere OPC. LabVIEW suportă acum următoarele versiuni ale specificaţiilor OPC DA: Versiunea 1.0 – DataSocket Client; Versiunea 2.0 – DataSocket Client, Variable Engine OPC Server, (DCS Module) DSC OPC Client; Versiunea 3.0 – Variable engine OPC Server, (DSC Module) DCS OPC Client. 10 LabVIEW -- Industry standard graphical programming - http://www.ni.com/labview/ LabVIEW Datalogging and Supervisory Control Module - Add-on tool for LabVIEW that contains an OPC server - http://sine.ni.com/nips/cds/view/p/lang/en/nid/10418 Lookout -- Powerful, easy-to-use HMI/SCADA software - http://www.ni.com/lookout/ FieldPoint -- Modular, distributed I/O - http://www.ni.com/fieldpoint/ Data Acquisition -- Widest variety of solutions for PCI, CompactPCI, ISA, PCMCIA, and USB http://www.ni.com/dataacquisition/ FOUNDATION Fieldbus - Industrial network for distributed process control applications http://sine.ni.com/nips/cds/view/p/lang/en/nid/1318 25 Arhitectura generală şi componentele OPC Specificaţiile OPC conţin întotdeauna două seturi de interfeţe: interfeţele particularizate şi interfeţele de automatizare, şi tipul acestora (COM), dar nu şi modul de implementare. În schimb este descris comportamentul la care aplicaţiile client se aşteaptă de la aceste interfeţe. La fel ca toate implementările COM, arhitectura OPC este de tip clientserver în care componenta server OPC furnizează o interfaţă către obiectele OPC pe care le controlează. Există câteva consideraţii unice în implementarea serverelor OPC. Principala problemă este frecvenţa transferului de date pe căile de comunicaţie care nu sunt puse la dispoziţia clienţilor cum sunt cele către dispozitivele fizice sau bazele de date. Tehnologia înglobată în standardul OPC OPC se bazează pe Component Object Model (COM) care este parte a .NET Framework de la Microsoft pentru a oferi conectivitate plug-and-play şi interoperabilitate între diferite dispozitive, sisteme şi software de automatizare. Specificaţiile Microsoft COM furnizează infrastructura software necesară care defineşte modul cum se realizează schimbul de date între aplicaţiile care rulează sub sistemele de operare Microsoft. Specificaţiile OPC definesc un set standard de obiecte, metode şi proprietăţi COM care se adresează în special cerinţelor pentru aplicaţiile de automatizare sau de control al proceselor în timp real. Serverele OPC furnizează interfaţa standard către obiectele OPC COM, permiţând aplicaţiilor client OPC să schimbe date şi comenzi de control într-un mod generic. Aplicaţiile client OPC pot comunica cu unul sau mai multe servere OPC de la diferiţi producători, accesând datele în acelaşi fel indiferent dacă datele provin de la un server OPC conectat la un automat programabil, la reţele industriale cum sunt Fieldbus, Profibus sau DeviceNet, la un sistem SCADA, LIMS (Laboratory Information Management Systems) sau la un sistem de management al producţiei. Standardul OPC a fost proiectat să se dezvolte. Încă de la început, din 1996, Fundaţia a stabilit diferite comitete tehnice pentru a extinde scopul şi funcţionalitatea specificaţiilor OPC pentru a adresa o gamă tot mai largă de probleme de conectivitate şi interoperabilitate. Setul Fundaţiei OPC include acum 10 specificaţii actuale şi în dezvoltare: OPC Data Access 3.0, OPC Alarms & Events, OPC Batch, OPC Data eXchange (DX), OPC Historical Data Access, OPC Security, OPC XML-DA, OPC Complex Data, OPC Commands, şi OPC Unified Architecture. OPC Data Access 3.0 este standardul utilizat pentru transferul datelor în timp real între automatele programabile, sistemele de control distribuite şi interfeţele om-maşină sau clienţi de afişare a datelor. 26 OPC Alarms & Events furnizează alarme şi notificări de evenimente la cerere (spre deosebire de fluxul de date continuu prin Data Acces), incluzând alarme de proces, acţiuni operator, mesaje informative şi de urmărire /control. OPC Batch suportă întreaga filozofie OPC pentru grupuri de procese (batch), oferind interfaţa pentru schimbarea capabilităţilor echipamentelor (corespunzător modelului fizic S88.01) şi a condiţiilor curente de operare. OPC DX oferă interoperabilitatea aplicaţiilor pe diferite magistrale sau între dispozitive conectate la reţele Ethernet utilizând diferite protocoale cum sunt Ethernet-IP, PROFINet sau Foundation Fieldbus High Speed Ethernet. De asemenea adaugă servicii de configurare, diagnosticare şi monitorizare/management de la distanţă. OPC Historical Data Access facilitează accesul la datele stocate anterior, indiferent dacă este cazul unui sistem simplu de înregistrare de date sau un sistem SCADA complex. OPC Security reglementează controlul accesului clienţilor la informaţiile sensibile ale companiei, care dacă ar fi incorect modificate ar putea avea consecinţe semnificative asupra întregului proces. Specificaţiile OPC XML-DA utilizează tehnologiile Internet cum sunt XML, HTTP şi SOAP pentru a oferi o legătură de comunicaţie pe verticală între aplicaţiile de automatizare şi aplicaţiile economice şi de management de la nivelul organizaţiei. În plus, OPC XML-DA furnizează şi câteva beneficii adiţionale cum sunt: Posibilitatea publicării datelor de la nivelul echipamentelor de automatizare la nivelul organizaţiei folosind Internetul; Capabilitatea de a folosi tehnologiile XML, HTTP, SOAP şi Internet pentru a programa aplicaţii client sau server OPC XML-DA pe platforme non-Microsoft; Capabilitatea de a publica datele de automatizare în formate care pot fi folosite cu uşurinţă de aplicaţiile de la nivelul organizaţiei cum sunt cele de planificare, programare, sau managementul calităţii şi echipamentelor. OPC Complex Data reprezintă o completare a specificaţiilor Data Access şi XML-DA pentru a permite serverelor să descrie şi să utilizeze tipuri de date mai complicate cum sunt structurile binare şi documentele XML. OPC Commands este un nou set de interfeţe în dezvoltare care permit clienţilor şi serverelor să identifice, să trimită şi să monitorizeze comenzi de control care să se execute pe un anumit dispozitiv. OPC Unified Architecture este un set nou de specificaţii care nu se bazează pe Microsoft COM şi care va permite interoperabilitatea între diferite tipuri de platforme. 27 COM/ActiveX Nivelul de bază al specificaţiilor OPC se bazează pe tehnologia Microsoft COM/DCOM, care mai este cunoscută ca OLE (Object Linking and Embedding) sau mai răspândit ca ActiveX. COM (Component Object Model) şi DCOM (Distributed COM) funcţionează ca interfeţe între client şi alte componente ale sistemului. În sistemele de operare moderne, procesele sunt protejate între ele, iar un client care trebuie să comunice cu o componentă a altui proces nu o poate face în mod direct. COM furnizează un nivel de interfaţă de comunicare care permite procedurile de apel locale şi la distanţă între procese. DCOM reprezintă extensia naturală a suportului COM pentru comunicaţii între obiectele de pe diferite calculatoare conectate prin reţele LAN, WAN sau prin Internet. COM este denumit OLE atunci când aplicaţia este utilizată pentru a îngloba documente de un tip în interiorul unui document de alt tip. Un exemplu de implementare COM este posibilitatea de a crea şi edita foi de calcul Excel într-un document Word. Numele de ActiveX este utilizat atunci când se face referire la capabilităţile Internet ale COM. Un exemplu de capabilitate ActiveX este înglobarea de playere multimedia în paginile Web. OPC utilizează termenul OLE pentru că era termenul cel mai utilizat atunci când au fost definite specificaţiile OLE. Comunicarea între procese în COM suportă trei tipuri principale de interacţiuni: Proprietăţi – setări individuale pentru un control; Metode – funcţii apelate de un control pentru a îndeplini o anumită acţiune; Evenimente – mesaje create de un control pentru a alerta lumea exterioară despre ce se întâmplă în interiorul procesului. 2.3 Implementarea OPC Specificaţiile OPC definesc o interfaţă standard COM care să fie utilizată în aplicaţiile industriale de achiziţii de date şi de control. Specificaţiile includ un protocol pentru definirea obiectelor, pentru stabilirea proprietăţilor acestora şi pentru standardizarea apelurilor de funcţii şi a evenimentelor. Pentru asta, OPC reuneşte o varietate largă de surse de date. Dispozitivele de intrare-ieşire includ dispozitive de achiziţii de date, actuatoare, magistrale de comunicaţii şi automate programabile (PLC). De asemenea, specificaţiile includ protocolul de lucru cu sistemele de control al datelor (DCS) şi cu aplicaţiile de baze de date ca şi pentru accesul la datele on-line, manipularea alarmelor şi evenimentelor şi accesul la datele istorice pentru toate aceste surse de date. Obiecte şi interfeţe OPC La o vedere de ansamblu, un server OPC de acces la date se compune din câteva tipuri de obiecte: server, grup şi item. 28 Server – menţine informaţii despre el însuşi şi funcţionează ca şi depozit pentru obiectele grup; Grup – menţine informaţiile despre el însuşi şi oferă mecanismul de păstrare şi organizare logică a itemilor (elementelor) OPC; Item – conţine un identificator unic în cadrul grupului care reprezintă referinţa sursei de date, ca şi informaţii despre valoare, calitate şi timp. Valoarea este data de la sursă, calitatea reprezintă informaţii despre dispozitiv, iar timpul reprezintă momentul când au fost preluate datele. Grupul OPC oferă clienţilor o metodă de organizare a datelor. De exemplu, un grup poate cuprinde itemii corespunzători unui anumit terminal operator, sau ai unui raport. Datele pot fi citite şi scrise. Se pot crea conexiuni bazate pe excepţii între client şi itemii din cadrul grupului care pot fi activate sau dezactivate după necesităţi. Un client OPC poate configura frecvenţa cu care serverul OPC să-i furnizeze informaţii despre modificări ale datelor. Există două tipuri de grupuri: publice şi locale (private). Cele publice se folosesc în comun de clienţi multiplii, iar cele locale se folosesc de către un singur client. În cadrul fiecărui grup se pot defini unul sau mai mulţi itemi OPC. Fiecărui item i se asociază câte o etichetă pentru valoare, calitate şi timp. Itemul OPC reprezintă în cadrul serverului conexiuni cu surse de date. Din perspectiva interfeţei cu clientul, un item nu este accesibil ca şi obiect de către un client OPC, astfel că nu există o interfaţă externă definită pentru obiectul item. Toate accesurile către itemi OPC se fac prin intermediul obiectului OPC grup, care conţine sau în care este definit itemul. De remarcat că itemii nu reprezintă surse de date, ci doar conexiuni către acestea. Itemul OPC trebuie interpretat ca şi o adresă a datelor, nu ca şi sursa fizică a acestora. O aplicaţie OPC accesează mai curând toţi itemii dintr-un grup decât itemul de care are nevoie, deoarece grupul conţine frecvenţa de actualizare, care informează serverul despre frecvenţa cu care schimbările datelor devin disponibile clienţilor OPC. O bandă moartă definită pentru fiecare grup informează serverul să respingă valorile care s-au schimbat cu mai puţin decât procentajul benzii moarte. Serverul OPC oferă clienţilor alarme şi controlul evenimentelor. Pentru server, o alarmă este o situaţie anormală cu semnificaţie specială pentru client – o condiţie asociată cu o anumită stare a serverului, a grupului sau a unui item în interiorul serverului. De exemplu, dacă valoarea unei surse de date care reprezintă temperatura reală a unui mixer scade sub o anumită limită, atunci aplicaţiei i se poate trimite o alarmă astfel încât aceasta să poată trata corect temperatura scăzută. Evenimentele sunt apariţii detectabile care au o importanţă pentru server şi pentru client, cum sunt erorile de sistem, schimbările de configuraţie, sau acţiunile operatorului. 29 OPC încorporează de asemenea standarde pentru accesul datelor istorice, reprezentând o metodă de accesare a datelor memorate de sistemele de stocare, incluzând serverele de stocare a datelor brute, ca şi serverele de stocare a datelor complexe sau de analiză. Această caracteristică a OPC permite interoperabilitatea sistemelor de baze de date proprietar. Manipularea alarmelor şi evenimentelor OPC Interfeţele oferă clienţilor OPC mecanismele prin care să fie notificaţi despre apariţia evenimentelor şi condiţiilor de alarma specificate, dar şi servicii care să permită clienţilor OPC să determine tipurile de evenimente şi condiţii suportate de server şi prin care să obţină starea curentă a acestora. În standardul OPC, o alarmă este o condiţie anormală, reprezentată de o anumită stare a serverului de evenimente OPC, sau a unuia dintre obiectele conţinute de acesta, care reprezintă interes pentru clienţii săi. Pe de altă parte, un eveniment este reprezentat de apariţia detectabilă a unei valori cu semnificaţie pentru serverul OPC, sau pentru clienţii săi OPC. Un eveniment poate să fie sau să nu fie asociat cu o condiţie. De exemplu, acţiunile operatorilor, sau schimbările de configuraţie ale sistemului sunt evenimente care nu sunt asociate cu condiţii specifice. Clienţii OPC pot subscrie să fie notificaţi despre apariţia unor anumite evenimente. Interfaţa serverului de evenimente OPC oferă metode care permit clienţilor OPC să: Determine tipurile de evenimente suportate de server; Stabilească subscripţii pentru anumite evenimente, astfel încât clientul să primească notificaţii ale apariţiei acestora. Se pot utiliza filtre pentru a defini un subset de evenimente dorite; Acceseze şi să manipuleze condiţiile implementate pe serverul OPC. În afara acestei interfeţe standard, un server de evenimente OPC poate suporta interfeţe opţionale pentru răsfoirea condiţiilor implementate pe server şi pentru managementul grupurilor de condiţii publice. Accesul la datele istorice Motoarele actuale de înregistrare a datelor istorice produc surse adiţionale de informaţii care trebuie distribuite utilizatorilor şi clienţilor software interesaţi de aceste informaţii. Multe dintre acestea folosesc propriile lor interfeţe particularizate pentru diseminarea datelor, care nu oferă capabilitatea de a combina sau utiliza soluţiile de înregistrare împreună cu alte capabilităţi într-un mediu de tip „plug-and-play”. Aceasta impune programatorului să recreeze aceeaşi infrastructură pentru produsele proprii aşa 30 cum şi ceilalţi producători au produs în mod independent, fără a fi interoperabile cu alte sisteme. Din dorinţa de integrare a datelor la nivelul organizaţiei, datele istorice trebuie considerate ca orice altă sursă de date. Există în prezent câteva tipuri de servere de date istorice. Printre tipurile suportate de specificaţiile OPC sunt: Servere de date simple – oferă o simplă stocare de date brute, care trebuie să fie dintre tipurile de date disponibile pe un server de acces la date OPC, de obicei prezentate sub forma setului timp/valoare/calitate. Serverele complexe de compresie şi analiză de date – oferă şi compresie pe lângă stocarea datelor brute, fiind capabile să ofere rezumate sau funcţii de analiză a datelor ca valori medii, minime, maxime, etc. De asemenea pot suporta actualizări ale datelor şi istoricul acestor actualizări. OPC – ideal pentru aplicaţiile cu mare capacitate de numărare Designul, scopurile şi motivaţia declarate de Fundaţia OPC pentru standardizarea industriei sistemelor de control a permis implementarea sistemelor cu mare capacitate de numărare care sunt eficiente şi uşor de utilizat. Dezvoltatorii de software client şi utilizatorii acestor aplicaţii au o mare flexibilitate în implementarea unei soluţii adaptate cerinţelor pentru că datele sunt organizate în grupuri, iar numirea sau etichetarea acestora este determinată de software-ul client. Gruparea este benefică atunci când se lucrează cu seturi mari de surse de date pentru că oferă o mai bună organizare a datelor, dar şi o mai uşoară accesare a seturilor similare de date. Într-o aplicaţie OPC, o etichetă reprezintă un mod unic de identificare a unui punct de intrare/ieşire. Specificaţiile OPC lasă responsabilitatea denumirii etichetelor pe seama software-ului client, care fie poate denumi etichetele prin program, fie poate transfera sarcina utilizatorului. În sistemele mari, numele semnificative alocate surselor de date uşurează sarcina operatorilor, permiţând acestora să aleagă nume uşor de memorat pentru sursele de date. Această flexibilitate reprezintă un factor important în abilitatea software-ului client de a furniza soluţii adaptate aplicaţiilor cu mare cu mare capacitate de numărare. Software-ul client stabileşte de asemenea frecvenţa cu care serverul furnizează noi date clientului. Serverul este responsabil pentru publicarea datelor, iar clientul devine condus de evenimente şi poate prelucra seturi mari de date mai eficient pentru că nu se ocupă şi cu interogarea surselor pentru a obţine noi date, ci este reactiv, aşteptând sosirea noilor date, astfel având mai mult timp pentru înregistrarea şi analiza datelor. 31 Clientul stabileşte şi transmite serverului şi valoarea în procente a benzii moarte, care permite selectarea datelor importante şi ignorarea celor nesemnificative. Astfel se pot ignora valorile care nu se schimbă cu mai mult decât un anumit procent din valoarea înregistrată anterior. Prin stabilirea unei valori moderate a benzii moarte, se pot monitoriza un număr mai mare de canale pentru că aplicaţia client primeşte numai informaţiile pe care le consideră esenţiale, fără a fi inundat de informaţii de prisos. Întrucât OPC este acum un standard industrial, aplicaţiile client se pot conecta la aproape toate dispozitivele disponibile, de la orice producător care respectă acest standard. Acestea sunt câteva dintre caracteristicile OPC care oferă dezvoltatorilor de software un imens avantaj atunci când folosesc conectivitatea OPC pentru a implementa aplicaţii software cu mare capacitate de numărare. reţele: 2.4 Sisteme OPC locale şi la distanţă Producătorii de servere OPC pot alege una dintre următoarele tipuri de 1. Server local - Clientul se conectează întotdeauna la un server OPC local, care se conectează la sursele de date printr-o schemă de reţea proprietară. Această variantă este aleasă de obicei de producătorii care adaugă capabilităţi OPC unui produs deja existent pe piaţă. 2. Server la distanţă - Clientul se conectează la serverul dorit de pe nodul ţintă şi foloseşte tehnologia DCOM pentru a comunica în reţea. Sisteme OPC locale În cazul sistemelor OPC locale, atât serverul OPC cât şi clientul OPC sunt instalate pe acelaşi calculator. După cum este prezentat în figura 2.5, o instalaţie industrială conţine o reţea de dispozitive de control care comunică cu serverul OPC folosind un protocol industrial specific. Figura 2.5 Un sistem OPC local 32 Când serverul OPC primeşte date de la reţeaua industrială, le converteşte într-un format OPC standard şi le pune la dispoziţia clienţilor OPC. Clienţii pot citi datele sau pot transmite noi date spre dispozitivele de control prin intermediul serverului OPC. Serverul organizează datele în grupuri şi itemi pe care le expune într-o interfaţă standard. Grupurile permit clientului OPC să organizeze datele şi să emită cereri de nivel grup pentru notificări de actualizare. Itemii conţin informaţii despre datele publicate de serverul OPC. Atunci când un client OPC se conectează la un server OPC, clientul specifică la ce itemi de date subscrie şi cât de des trebuie să primească actualizări. Sistemele OPC la distanţă În cazul sistemelor OPC la distanţă, serverul OPC şi clientul OPC se instalează pe calculatoare diferite. Ambele calculatoare trebuie să ruleze sisteme de operare Windows (deoarece tehnologia OPC se bazează pe Microsoft COM), şi trebuie să fie conectate între ele printr-o reţea Ethernet. Pentru a face sistemul client/server să funcţioneze, trebuie configurate corect setările DCOM ale serverului OPC. DCOM restricţionează accesul la anumite calculatoare dintr-un domeniu, iar setările de securitate pot împiedica clienţii OPC să comunice cu serverele la distanţă. Din această cauză este mai uşor de configurat un sistem OPC local decât unul la distanţă. De asemenea trebuie configurate mai multe setări Windows, cum sunt cele de securitate, firewall-urile, ca şi software-urile OPC client şi server. Pentru o funcţionare corectă, ordinea de configurare trebuie să fie următoarea: Setările de securitate Windows, incluzând utilizatori, grupuri şi drepturile de acces corespunzătoare acestora; DCOM; Firewall-urile; Serverul OPC; Clientul OPC. 2.5 Perspectivele OPC Arhitectura OPC unificată (OPC UA) Pe data de 5 februarie 2009, Fundaţia OPC a publicat primele specificaţii pentru arhitectura OPC unificată prin care se propune un standard independent de platformă prin care diferite sisteme şi dispozitive pot comunica prin mesaje între clienţi şi servere de pe diferite tipuri de reţele, permiţând comunicaţii robuste şi sigure care să asigure identitatea clienţilor şi a serverelor şi care să reziste atacurilor. 33 OPC UA defineşte un set de servicii care pot fi oferite de servere, informaţiile sunt transmise folosind tipuri de date definite de standardul OPC UA şi de producători, iar serverele definesc modelele obiectelor pe care clienţii le pot descoperi în mod dinamic. Serverele pot oferi acces atât la datele curente cât şi la cele istorice, ca şi la alarme şi evenimente pentru a notifica clienţii despre schimbările importante. OPC UA defineşte un model de infrastuctură comun pentru a facilita schimbul de informaţii, astfel: Modelul informaţiilor care reprezintă structura, comportamentul şi semantica acestora; Modelul mesajelor pentru interacţiunile dintre aplicaţii; Modelul comunicaţiilor pentru a transfera datele între diferitele puncte; Modelul de conformitate pentru a garanta interoperabilitatea între sisteme. OPC UA poate fi implementat pe o varietate de protocoale de comunicaţie, iar datele pot fi codate în diferite moduri pentru a realiza compromisul între portabilitate şi eficienţă. OPC UA furnizează spaţiu de adrese şi model de servicii integrate, ceea ce permite ca un singur server OPC UA să integreze datele în timp real, alarmele, evenimentele şi datele istorice şi oferă acces la ele folosind un set de servicii integrat. Aceste servicii cuprind de asemenea şi un model de securitate integrat. OPC UA permite serverelor să ofere clienţilor definiţiile tipurilor obiectelor accesate în spaţiul de adrese, utilizând modelul informaţiilor pentru a descrie conţinutul spaţiului de adrese. Datele pot fi prezentate în diferite formate, inclusiv structuri binare şi documente XML. Prin spaţiul de adrese, clienţii pot cere serverului metadate care conţin descrierea formatului datelor. Astfel, clienţii care nu au pre-programate informaţii despre formatul datelor vor fi capabile să determine formatul şi să utilizeze datele în mod corect. Prin OPC UA se adaugă multe tipuri de relaţii între noduri în loc să se limiteze la o singură ierarhie, ceea ce permite serverelor OPC UA să prezinte datele într-o varietate de ierarhii adaptate modului în care setul de clienţi preferă să le acceseze. Această flexibilitate, combinată cu suportul pentru definiţii de tipuri de date recomandă OPC UA unei arii largi de domenii de probleme. Aşa cum este ilustrat în figura 6, OPC UA nu este destinat numai interfeţelor cu sistemele SCADA, PLC şi DCS, dar şi interoperabilităţii dintre funcţiile de nivel mai înalt. Specificaţiile OPC UA sunt organizate pe niveluri pentru a izola nucleul proiectului de tehnologia informatică şi de reţelele de transport, ceea ce-i permite să se adapteze viitoarelor tehnologii fără să fie nevoie să fie reproiectat. 34 Aplicaţiile client şi server care suportă multiple metode de transport şi de codificare a datelor permit utilizatorilor să ia decizii în legătură cu compromisul dintre performanţă şi compatibilitatea serviciilor Web la momentul instalării, în loc ca aceste compromisuri să fie decise de producător la momentul proiectării. Modelele şi serviciile integrate Modelul de securitate Securitatea OPC UA se ocupă cu autentificarea clienţilor şi serverelor, a utilizatorilor, integritatea şi confidenţialitatea comunicaţiilor, dar nu sunt precizate circumstanţele în care sunt necesare diferitele mecanisme de securitate. În schimb, este descris un model de securitate care conţine mecanisme de securitate şi parametrii acestora, prin care măsurile de securitate pot fi selectate şi configurate pentru a corespunde cerinţelor specifice instalaţiilor. În unele cazuri este definit mecanismul de modificare a parametrilor de securitate, dar nu şi modul cum aplicaţiile pot utiliza aceşti parametri. De asemenea este definit şi un set minim de profile de securitate care trebuie suportate de toate serverele UA, chiar dacă nu vor fi folosite în totalitate în toate instalările. Securitatea la nivel de aplicaţie se bazează pe canale de comunicaţie securizate care sunt active pe durate sesiunii de aplicaţie şi asigură integritatea tuturor mesajelor transmise. Aceasta înseamnă că autentificarea utilizatorilor se face o singură dată, la iniţierea sesiunii de aplicaţie. Atunci când se stabileşte o sesiune, aplicaţiile client şi server negociază un canal securizat de comunicaţie şi schimbă certificatele software care identifică serverul şi clientul, ca şi capabilităţile puse la dispoziţie. Certificatele software generate de o autoritate de certificare11 indică profilele OPC UA pe care aplicaţia le implementează şi nivelul de certificare atins de fiecare profil. Apoi, serverul autentifică utilizatorii şi autorizează cererile ulterioare de acces la obiectele conţinute de server. Mecanismele de autorizare cum sunt listele de control al accesului nu sunt descrise de specificaţiile OPC UA, ci sunt specifice fiecărei aplicaţii sau sistem. OPC UA include şi suport pentru mecanismele de audit şi pentru interogările reciproce ale înregistrărilor de audit ale clienţilor şi serverelor. Dacă un server identifică o posibilă problemă de securitate, părţile asociate acesteia din înregistrările de audit ale clienţilor pot fi localizate şi accesate. În plus, serverele vor fi capabile să genereze notificări de evenimente auditabile pe care clienţii să le proceseze şi să le înregistreze. Sunt definiţi de asemenea 11 Fundaţia OPC este una dintre autorităţile de certificare OPC UA 35 şi parametrii de audit de securitate care pot fi incluşi în înregistrările de audit şi în notificările de evenimente de securitate. Securitatea de la nivelul de transport poate fi folosită pentru a cripta şi semna mesajele, protejându-le împotriva interceptărilor şi protejând integritatea acestora. Capabilităţile de criptare vor fi oferite de tehnologiile de comunicaţie utilizate pentru schimbul de mesaje între aplicaţiile OPC UA. Modelul integrat al spaţiului de adrese Setul de obiecte şi informaţiile asociate acestora pe care serverul OPC UA le pune la dispoziţia clienţilor formează spaţiul de adrese, compus dintrun set de noduri conectate prin referinţe. Caracteristicile primare ale nodurilor sunt descrise de atribute, singurele elemente ale unui server dare au valori pentru date. Tipurile de date care definesc valorile atributelor pot fi simple sau complexe. Nodurile din spaţiul de adrese sunt clasificate după utilizare şi după semnificaţie. Clasele de noduri formează metadate pentru spaţiul de adrese. Clasa de noduri de bază defineşte atributele comune tuturor nodurilor, permiţând identificarea, clasificarea şi denumirea acestora. Fiecare clasă de noduri moşteneşte aceste atribute şi poate defini suplimentar propriile atribute. Pentru a uşura interoperabilitatea între clienţi şi servere, spaţiul de adrese OPC UA este structurat ierarhic având acelaşi nivel superior pentru toate serverele. Deşi nodurile din spaţiul de adrese sunt în mod normal accesibile in mod ierarhic, ele pot conţine referinţe între ele, făcând din spaţiul de adrese o reţea interconectată de noduri. Modelul integrat de obiecte Modelul de obiecte OPC UA oferă u set integrat de clase de noduri pentru reprezentarea obiectelor în spaţiul de adrese. Acest model reprezintă obiectele prin variabile, evenimente şi metode, ca şi prin relaţia lor cu alte obiecte, ceea ce permite datelor, evenimentelor şi înregistrărilor istorice ale acestora să fie integrate într-un singur server OPC UA. De exemplu, serverele OPC UA pot reprezenta un transmiţător de temperatură ca un obiect compus din valoarea temperaturii, un set de parametrii de alarmă şi setul corespunzător de limite de alarmă. Serviciile integrate Interfaţa dintre clienţii şi serverele OPC UA este definită ca un set de servicii organizate în grupuri logice numite seturi de servicii. Serviciile OPC UA oferă clienţilor două capabilităţi: permit clienţilor să emită cereri către servere şi să primească răspunsuri la acestea, şi permit clienţilor să subscrie la servere pentru notificări. Notificările sunt utilizate de servere pentru a anunţa apariţia alarmelor, a evenimentelor, a schimbărilor valorilor datelor şi a rezultatelor execuţiei programelor. 36 Mesajele OPC UA pot fi codate ca text XML sau în format binar pentru motive de eficienţă. Ele pot fi transferate folosind multiple mijloace de transport, cum sunt TCP sau serviciile Web prin HTTP. Sesiuni Sesiunile sunt definite ca şi conexiuni între clienţi şi servere. Serverele pot limita numărul de sesiuni simultane pe baza resurselor disponibile, a restricţiilor de licenţiere sau a altor constrângeri. Fiecare sesiune este independentă de protocoalele de comunicaţie folosite. Erorile acestor protocoale nu cauzează în mod automat încheierea sesiunii. Sesiunile se încheie pe baza cererilor clientului sau serverului, sau pe baza inactivităţii clientului. Intervalul de timp de inactivitate se negociază la momentul stabilirii sesiunii. Concepte noi utilizate în arhitectura OPC UA Arhitectura sistemelor OPC UA modelează clienţii şi serverele ca şi parteneri care interacţionează. Fiecare sistem poate conţine multipli clienţi şi servere. Fiecare client poate interacţiona cu unul sau mai multe servere, iar fiecare server poate interacţiona cu unul sau mai mulţi clienţi. O aplicaţie poate combina caracteristicile de client şi server pentru a putea interacţiona cu alte aplicaţii server sau client. Aplicaţiile client OPC UA O aplicaţie client este partea de cod care implementează funcţiile specifice clientului în interacţiunea client – server. Aceasta foloseşte interfaţa (API) OPC UA pentru a transmite şi recepţiona cereri şi răspunsuri pentru servicii OPC UA la/de la server. OPC UA API este o interfaţă internă care izolează codul aplicaţiei client de stiva de comunicaţii OPC UA (OPC UA Communication Stack). Stiva de comunicaţii converteşte apelurile clientului în mesaje pe care le transmite serverului utilizând infrastructura de comunicaţii existentă, la cererea aplicaţiei client. De asemenea, primeşte răspunsurile şi mesajele de notificare de la server şi le livrează clientului prin intermediul interfeţei OPC UA Client API. Aplicaţiile server OPC UA O aplicaţie server este partea de cod care implementează funcţiile specifice serverului, care foloseşte interfaţa OPC UA Server API pentru a transmite şi recepţiona mesaje la/de la clienţii OPC UA. Obiectele reale sunt obiecte fizice sau software accesibile aplicaţiei server OPC UA sau menţinute intern de aceasta. 37 Spaţiul de adrese este modelat ca un set de noduri accesibile clienţilor prin utilizarea serviciilor (interfeţe şi metode). Nodurile din spaţiul de adrese reprezintă obiecte reale, definiţiile lor şi referinţele între ele). Utilizarea referinţelor dintre noduri permite serverelor să organizeze spaţiul de adrese în structuri ierarhice, în reţele complet interconectate de noduri, sau orice combinaţie posibilă între acestea. Interacţiunile server – server Interacţiunile server – server sunt acele interacţiuni în care un server acţionează ca şi client al altui server, în următoarele situaţii: Schimburi de informaţii între servere în forma punct-la-punct în cazul serverelor redundante sau al serverelor la distanţă care menţin sisteme de definiţii de tipuri de date; Lanţuri de servere într-o arhitectură pe niveluri, pentru agregarea datelor de la serverele de la nivelurile inferioare şi construcţii de date de nivel superior necesare pentru a oferi clienţilor un singur punct de acces la o reţea de servere multiple. Seturi de servicii Serviciile OPC UA sunt împărţite în seturi de servicii, fiecare set definit ca un grup logic de servicii folosite pentru a accesa un anumit aspect al serverului. În specificaţiile OPC UA sunt definite următoarele seturi de servicii: Setul de servicii de descoperire; Setul de servicii pentru canale securizate; Setul de servicii de sesiune; Setul de servicii de management al nodurilor; Setul de servicii de vizionare; Setul de servicii de interogare; Setul de servicii de atribute; Setul de servicii pentru metode; Setul de servicii pentru itemi monitorizaţi; Setul de servicii de subscrieri. 2.6 Dezvoltarea de aplicaţii client OPC în LabVIEW12 Compania National Instruments oferă o gamă largă de servere şi drivere pentru a realiza interfaţa aplicaţiilor cu dispozitivele industriale cum sunt controlerele logice programabile (PLC), disponibile în pachetele sistemelor de dezvoltare NI Industrial Automation OPC Servers, NI Developer Suite Control Editions şi NI Lookout, care conţin un server OPC conceput să funcţioneze împreună cu aplicaţiile realizate în mediile NI LabVIEW, LabVIEW Datalogging and Supervisory Control Module, NI 12 NI LabVIEW 8.6 Help - http://zone.ni.com/reference/en-XX/help/371361E-01/ 38 LabWindows/CVI, şi NI Measurement Studio for Visual Basic and Visual C++. Utilizând Serverele OPC National Instruments se reduce substanţial timpul şi costurile necesare dezvoltării şi integrării sistemelor prin eliminarea necesităţii programării interfeţelor de comunicaţie cu dispozitivele de automatizare industrială. LabVIEW, prin modulele LabVIEW Datalogging and Supervisory Control şi Lookout furnizează module client OPC capabile să comunice cu orice sever OPC disponibil pe piaţă. Serverele OPC National Instruments sunt compatibile cu o gamă largă de dispozitive şi protocoale de automatizare industrială, fiind capabile să se conecteze la sistemele şi dispozitivele deja existente. Există două opţiuni pentru dezvoltarea de clienţi OPC în LabVIEW: LabVIEW DataSocket, disponibil în pachetul LabVIEW Development System, sau modulul LabVIEW Datalogging and Supervisory Control (DSC). LabVIEW DataSocket DataSocket poate fi utilizat pentru a deschide o conexiune către un item de date publicat pe un server OPC folosind protocolul OPC. Această opţiune funcţionează şi în cazul aplicaţiilor, în următoarele condiţii: Nu sunt necesare înregistrări automate ale datelor, alarme, scalare sau securitate; Aplicaţia este mică, având conexiune cu unul sau doi itemi de date; Nu sunt necesare setări de configuraţie cum sunt frecvenţa de actualizare sau banda moartă; Aplicaţia trebuie să se conecteze la un server OPC care suportă versiunile OPC 1.0 sau 2.x. În cazul versiunii OPC 3.0, trebuie utilizat modulul DSC. Modulul LabVIEW DSC13 Modulul DSC extinde mediul de dezvoltare grafică al LabVIEW cu funcţii suplimentare pentru dezvoltarea rapidă a aplicaţiilor de măsurare distribuită, control şi celor cu mare capacitate de numărare. De asemenea, modulul DSC extinde partea de servicii de date a variabilelor distribuite LabVIEW, care pot fi ataşate la itemii de date publicaţi pe un server OPC. Modulul DSC este ideal pentru aplicaţii, în următoarele condiţii: Sunt necesare înregistrări automate ale datelor, sau activarea alarmelor, scalare şi securitate; 13 LabVIEW 8.6 Datalogging and Supervisory Control Module Help - http://zone.ni.com/reference/enXX/help/371618D-01/ 39 Se lucrează cu mulţi itemi de date OPC. Modulul OPC poate localiza toate serverele OPC instalate pe un calculator sau într-o reţea şi să citească informaţiile disponibile despre capabilităţile serverelor şi itemii de date direct de la serverele OPC. De asemenea se pot răsfoi itemii de date şi se pot stabili setări cum sunt frecvenţa de actualizare sau banda moartă; Trebuie accesaţi itemi OPC din variabile distribuite; Aplicaţia trebuie să se conecteze la un server OPC care suportă versiunea OPC 3.0. Modulul DSC poate fi folosit ca şi client OPC pentru a accesa servere OPC diferite, inclusiv serverul NI OPC furnizat de modulul DSC. Serverul NI OPC poate fi utilizat pentru transferul datelor de la dispozitive şi sisteme industriale spre aplicaţiile client care rulează pe o maşină gazdă, facilitând schimbul de date între o gamă largă de aplicaţii, cum sunt interfeţele ommaşină, aplicaţiile de managementul execuţiei sau de planificare a resurselor. 2.7 Concluzii Serverele OPC sunt drivere hardware scrise conform standardului OPC (OLE for Process Control). Acest standard acoperă diferenţele de comunicaţie între aplicaţiile software şi dispozitive provenite de la diferiţi producători. Programe conforme standardului OPC (Clienţi OPC) pentru HMI, SCADA, DAS, etc. sunt oferite de firmele NEWPORT, OMEGA, Wonderware, Iconics, Intellution, Rockwell Automation, National Instruments şi altele. Astăzi, OPC a fost adoptat de aproape toate domeniile din industrie. La zece ani de la lansare, OPC este unul dintre cele mai de succes standarde din industrie, având câteva mii de aplicaţii şi milioane de instalări în toată lumea. Toate sistemele disponibile comercial SCADA (Supervisory Control and Data Acquisition), sistemele de control de proces şi controlerele bazate pe PC oferă acum o interfaţă client OPC gratuită pentru acces la orice server OPC. Datele sunt transferate înspre şi dinspre mediul procesului (dispozitive I/O, dispozitive de măsurare, controlere cum sunt Simatic S7 sau S5) prin servere OPC. Marele succes al standardului OPC în automatizare este demonstrat de faptul că există mai mult de zece servere OPC pe piaţă, de la diferiţi producători, pentru aceeaşi funcţie: accesarea automatelor programabile Simatic. Având ca bază tehnologică DCOM (Distributed Component Object Model), standardul OPC este restricţionat în folosire împreună cu sistemul de operare Windows, în acelaşi timp, DCOM a contribuit la succesul OPC. Pe de o parte, acceptarea rapidă a calculatoarelor Windows ca şi componente de automatizare a permis tehnologiei OPC să se impună pe glob în doar câţiva ani, iar pe de altă parte, utilizarea tot mai intensă a OPC, noile domenii de aplicaţii care se deschid şi stabilesc orientarea generală spre tehnologiile Web, impun cerinţe noi standardului OPC. 40 Serviciile Web, XML (Extensible Markup Language) şi HTTP deschid noi posibilităţi standardului OPC. Prin specificaţiile OPC XML DA, Fundaţia OPC foloseşte serviciile Web si XML ca noua bază tehnologică pentru comunicaţiile OPC deschise între aplicaţii de la diferiţi producători care utilizează diferite protocoale pe diferite platforme. Serviciile Web pot fi create pe orice platforma utilizând orice instrumente de programare. XML este un limbaj foarte răspândit, flexibil si extensibil care – ca si protocolul de transport HTTP – este suportat practic de toate platformele. Aplicaţiile client şi server OPC XML DA pot fi astfel utilizate pe Windows, Unix sau Linux, ca şi pe orice altă platformă care permite implementarea serviciilor Web. Comunicaţiile OPC se pot desfăşura ca schimb de mesaje XML prin SOAP (Simple Object Access Protocol) într-o reţea intranet, sau chiar dincolo de firewall în Internet. Independenţa de platformă şi posibilitatea de a accesa componentele OPC dincolo de firewall au devenit astfel o realitate. A început o noua eră în care mii de servere OPC DA vor migra gradual către servere OPC XML DA pentru a permite interoperabilitatea între platforme. OPC va fi implementat pe un tip nou de dispozitive pe care nu rulează neapărat sistemul de operare Windows. Produsele OPC vor fi disponibile pentru dispozitivele înglobate, pentru aplicaţii industriale, senzori, terminale inteligente mobile si dispozitive de intrare/ieşire, controlere, etc. Un exemplu de server OPC care suporta atât DCOM (Data Access) cât şi servicii Web (XML DA) este serverul OPC S7/S5 produs de firma Softing AG. Serverul OPC S7/S5 permite oricărei aplicaţii client OPC acces rapid şi uşor la datele din controlerele seriilor Simatic S7 si S5. Controlerele pot fi accesate prin comunicaţii Ethernet, Profibus sau seriale, cu sau fără modem. Serverul OPC poate comunica cu maximum 16 controlere în acelaşi timp printr-o placă standard Ethernet. Principalul avantaj oferit de interfaţa OPC este independenţa faţă de un anumit producător, produs sau hardware. Tehnologia permite o distincţie clara între aplicaţiile client şi server, încapsulează caracteristicile specifice produselor şi face posibilă actualizarea cu uşurinţă la o noua versiune sau trecerea la un produs diferit. Independenţa de platformă deschide şi posibilitatea comunicaţiilor OPC între componente care rulează diferite sisteme de operare şi prin Internet. 41 3. CLIENŢI OPC PENTRU TERMINALE MOBILE 3.1 Noţiuni introductive Dezvoltarea rapidă a comunicaţiilor fără fir din ultimii ani a permis utilizatorilor să se conecteze la internet aproape de oriunde, fie prin intermediul punctelor de acces (gratuite sau nu), fie prin infrastructura companiilor de telefonie mobilă care oferă viteze de conectare tot mai mari, la preţuri accesibile. Integrarea conceptelor de PDA (iniţial creat pentru a fi un fel de agendă electronică) şi de telefon inteligent (smartphone) a creat posibilitatea de a avea la îndemână un mic computer care poate să ofere acum mult mai multe funcţii decât ne puteam aştepta în urmă cu câţiva ani. Acestea au devenit la fel de puternice ca şi PC-urile de la începutul acestui deceniu, având însă progrese semnificative în ceea ce priveşte flexibilitatea, interfaţa cu utilizatorul sau programele disponibile, şi capabilităţile acestora continuă să crească. Popularitatea în creştere a dispozitivelor mobile, dar şi instrumentele de dezvoltare puse la dispoziţie de producătorii de sisteme de operare mobile sau de producătorii de medii de dezvoltare profesionale (cum este National Instruments) au permis crearea de programe pentru PDA-uri şi telefoane inteligente capabile să transmită şi să recepţioneze informaţii la / de la un server de date, rezultând soluţii portabile pentru o gamă largă de aplicaţii cum sunt sistemele de testare portabile, cele de monitorizare şi / sau control, sau sistemele portabile de achiziţii de date. Modulul PDA (sau Mobile cum se numeşte în cea mai recentă versiune) din pachetul LabVIEW produs de National Instruments extinde mediul grafic de dezvoltare LabVIEW pentru a permite crearea de programe pentru dispozitive portabile care rulează sistemul de operare Windows Mobile. LabVIEW utilizează modelul Open System Interconnection (OSI), astfel că implementarea reţelelor de comunicaţii fără fir este la fel de simplă ca şi în cazul reţelelor clasice cu fir. Suportul pentru comunicaţiile Bluetooth oferit începând cu versiunea LabVIEW 7.1 extinde opţiunile disponibile pentru crearea de aplicaţii fără fir pentru PDA. 3.2 Metode de comunicaţii în reţea în LabVIEW Instrumentele virtuale (VI) – elementele de bază ale mediului de programare grafică LabVIEW – pot comunica în reţea cu alte procese, inclusiv cele care rulează în alte aplicaţii sau pe alte calculatoare, pentru a îndeplini următoarele tipuri de sarcini: Schimburi de date în timp real cu alte instrumente virtuale din reţea utilizând mecanismul variabilelor distribuite (shared variables); Publicarea pe internet a imaginilor panourilor de control şi a documentaţiei instrumentelor virtuale; Transmiterea de date ale instrumentelor virtuale prin e-mail sau SMS; 42 Construirea de instrumente virtuale care comunică cu alte aplicaţii sau instrumente virtuale prin protocoale de nivel scăzut, cum sunt TCP sau UDP. Fiecare facilitate de comunicare în reţea din LabVIEW corespunde unor nevoi ale diferitelor aplicaţii, astfel: Shared Variable – pentru utilizarea în comun a datelor în timp real cu alte instrumente virtuale de pe acelaşi calculator, de pe un alt calculator din reţea, sau cu un server; DataSocket cu protocolul PSP sau DSTP – pentru utilizarea în comun a datelor în timp real cu alte instrumente virtuale de pe acelaşi calculator, de pe un alt calculator din reţea, sau cu un server (necesită programare suplimentară faţă de mecanismul shared variable); DataSocket cu protocolul OPC – pentru citirea datelor dintr-o reţea industrială cu utilizarea DataSocket ca şi client OPC; Funcţiile TCP – pentru comunicarea cu un instrument care utilizează un protocol bazat pe TCP; Funcţiile UDP – pentru comunicarea cu un pachet software care utilizează un protocol bazat pe UDP; Funcţiile IrDA – stabilesc o conexiune fără fir în infraroşu cu un alt calculator; Funcţiile Bluetooth – stabilesc o conexiune fără fir cu un dispozitiv Bluetooth. Pe lângă aceste facilităţi de comunicare în reţea, se pot pune la dispoziţie şi accesa date în LabVIEW prin următoarele metode: Funcţiile File I/O – pentru crearea de fişiere care conţin date care pot fi citite de alte aplicaţii sau instrumente virtuale; VI Server – pentru controlul altor instrumente virtuale sau aplicaţii LabVIEW de pe calculatorul local sau de pe alte calculatoare din reţea; Funcţiile ActiveX – pentru accesarea facilităţilor multora dintre aplicaţiile Microsoft (de exemplu pentru inserarea reprezentărilor grafice ale formelor de undă în foile de calcul Excel). 3.3 Aplicaţii de reţea de tip Client – Server în LabVIEW În LabVIEW se pot crea aplicaţii de tip client pentru a subscrie la date şi a folosi facilităţi ale altor aplicaţii sau de tip server pentru a pune la dispoziţie datele sau facilităţile LabVIEW altor aplicaţii. Pentru a putea accesa date sau proprietăţi şi a invoca metode ale altei aplicaţii, trebuie stabilit protocolul de reţea corespunzător. De exemplu, protocolul HTTP este ideal pentru publicarea pe internet a panourilor de control ale instrumentelor virtuale, dar pentru crearea de instrumente virtuale care utilizează date create de alte instrumente virtuale trebuie utilizat protocolul TCP/IP. De asemenea se pot utiliza tehnologiile ActiveX în LabVIEW pentru a crea aplicaţii server sau client ActiveX. 43 Protocolul TCP în reţelele fără fir, ca şi în cele cu fir, asigură transmisiile în reţea şi livrarea datelor în ordinea corectă, fără erori, pierderi dau duplicări. Conexiunea TCP retransmite automat datagrama care conţine datele împreună cu un antet care indică adresele sursă şi destinaţie, până când primeşte confirmarea transmisiei. În LabVIEW, stabilirea unei comunicaţii TCP este similară cu stabilirea unui proces de citire/scriere de fişiere sau a unei comunicaţii de intrare/ieşire cu un instrument, presupunând: deschiderea conexiunii, citirea/scrierea datelor, închiderea conexiunii. Se poate folosi un PDA ca şi gazdă a unei aplicaţii de tip client sau server. 3.4 Utilizarea în comun a datelor în timp real prin mecanismul Shared Variables Variabilele distribuite (Shared variables) sunt elemente software preconfigurate care permit transmiterea datelor între instrumentele virtuale, reprezentând valori sau puncte I/O. Acestea pot fi create numai pe calculatoare care rulează versiuni ale sistemelor de operare Windows sau pe sisteme în timp real cu utilizarea modulului LabVIEW Real Time. Pentru citirea sau scrierea variabilelor de pe alte platforme se utilizează funcţiile DataSocket. Opţiunile de configurare ale variabilelor distribuite sunt disponibile prin intermediul casetei de dialog Shared Variable Properties. Aici, în cadrul meniului Variable Type se poate opta între valorile Network-Published în cazul în care se doreşte ca variabilele să poată fi citite sau scrise de pe calculatoare diferite conectate la reţea, sau Single-Process dacă variabilele vor fi disponibile doar pe calculatorul pe care au fost create. Datele de configurare ale variabilelor create sunt salvate de LabVIEW într-un fişier cu extensia .lvlib, care conţine informaţii despre toate variabilele din biblioteca asociată proiectului. Mecanismul Shared Variable Engine (SVE) utilizează protocolul NI Publish-Subscribe Protocol (NI-PSP) pentru transferul datelor corespunzătoare variabilelor distribuite în reţea. LabVIEW identifică variabilele distribuite prin intermediul unei căi de reţea care conţine numele calculatorului, numele bibliotecii proiectului şi numele variabilei respective. Aceste biblioteci se numesc procese, şi de altfel rulează ca procese în cadrul sistemului de operare. Când aplicaţia rulează, SVE controlează procesul şi transferul datelor variabilelor distribuite. Pe calculatoarele care rulează sistemul de operare Windows, se poate integra un server OPC prin mecanismul SVE. Orice aplicaţie client OPC poate citi sau scrie date prin SVE. Astfel, Shared Variable Engine poate fi considerat un server OPC implicit al mediului de programare LabVIEW. Singura deosebire este aceea că instrumentul virtual care creează biblioteca de 44 variabile distribuite poate avea şi funcţii de achiziţii de date sau de control al procesului. Pentru a putea transmite datele corespunzătoare variabilelor distribuite prin firewall-uri sau routere, acestea trebuie configurate. Astfel, pentru calculatoarele care rulează sistemul de operare Windows XP sau o versiune mai nouă, în lista de excepţii a firewall-ului trebuie introduse următoarele fişiere: C:\Windows\system32\lkads.exe C:\Windows\system32\lktsrv.exe C:\Program Files\National Instruments\Shared\Tagger\tagsrv.exe C:\Windows\system32\nicitdl5.exe (dacă se utilizează LabVIEW DSC) C:\Program Files\National Instruments\DataSocket\cwdss.exe (dacă se utilizează LabVIEW DataSocket) Mecanismul de publicare în reţea a variabilelor distribuite utilizează portul UDP 2343 şi o gamă de porturi UDP începând cu portul 6000. Numărul de porturi utilizate în această gamă depinde de numărul de servere care rulează simultan pe computer. Aplicaţiile client care utilizează variabile distribuite în reţea folosesc o gamă de porturi UDP începând cu portul 5000, numărul de porturi utilizate depinzând de asemenea de numărul de aplicaţii client care rulează simultan pe acelaşi computer. În afara acestor porturi UDP, mai trebuie deschise şi porturi TCP. Protocolul NI-PSP care publică în reţea variabilele distribuite caută porturi TCP disponibile începând cu portul 59110. Fiecare aplicaţie care rulează foloseşte un port TCP, deci numărul de porturi care trebuie configurate depinde de numărul de aplicaţii care trebuie să ruleze simultan. Pentru a permite aplicaţiilor client care rulează pe un computer din afara firewall-ului să se conecteze la un server protejat de firewall, trebuie îndeplinite următoarele condiţii: 1. Se deschide portul 2343 pentru pachetele primite; 2. Se deschide gama de porturi UDP de la 6000 la 6010 pentru pachetele primite; 3. Se deschide câte un port TCP pentru fiecare aplicaţie rulată, începând cu portul 59110. Paşii exacţi necesari pentru a face aceste configurări, depind de tipul de firewall utilizat. În acelaşi mod se pot configura aplicaţiile client protejate de firewall să se conecteze la servere aflate în afara firewall-ului, deschizând gama de porturi UDP de la portul 5000 la 5010 pentru pachetele primite. Unele tipuri de firewall transmit pachetele primite fără a fi necesară nici o configurare suplimentară. În cazul routerelor, trebuie configurată tabela de conversie Network Address Translating (NAT) pentru a realiza corespondenţa dintre adresele IP locale şi adresele IP publice. 45 Pentru a permite aplicaţiilor client care rulează pe un computer din afara unui router care utilizează tabela de conversia a dreselor NAT să se conecteze la un server din reţeaua internă routerului, trebuie îndeplinite următoarele condiţii: 1. Se transferă portul UDP 2343 către calculatorul pe care rulează serverul. 2. Se transferă porturile UDP 6000 - 6010 către calculatorul pe care rulează serverul. 3. Începând cu portul TCP 59110, se transferă câte un port TCP pentru fiecare aplicaţie rulată. În cazul aplicaţiilor client care rulează pe calculatoare aflate în reţeaua internă a routerului, se transferă porturile UDP din gama 5000 – 5010 către calculatorul pe care rulează aplicaţia client. Sursele posibile de date pentru variabilele distribuite sunt: Canalele de intrare/ieşire ale plăcilor de achiziţie de date; Variabile din cadrul instrumentelor virtuale; Variabile ale protocolului NI-PSP, de exemplu variabile distribuite ale altei aplicaţii; Variabile ale serverelor de intrare/ieşire definite în afara proiectului activ. Configurarea sursei de date a variabilelor distribuite se face prin bifarea căsuţei Bind to Source de pe subpagina Variable din caseta de dialog Shared Variable Properties (figura 3.3). În cazul configurării sursei de date pe o altă maşină ţintă din reţea, LabVIEW nu transmite în mod automat toate schimbările de configuraţie de la sursa de date. Astfel, reconfigurările sursei de date pot conduce la întreruperea conexiunii variabilei distribuite. Figura 3.3 Caseta de dialog Shared Variable Properties 46 Pentru a adăuga o variabilă distribuită într-un proiect, se face click dreapta pe o ţintă, pe o bibliotecă a proiectului sau pe un folder din biblioteca proiectului din fereastra Project Explorer (figura 3.4) şi se selectează New»Variable din meniul contextual pentru a accesa caseta de dialog Shared Variable Properties. Aici se setează opţiunile de configurare dorite, apoi se apasă butonul OK. Variabilele create se vor găsi într-o bibliotecă a proiectului. Dacă se creează o variabilă pe o ţintă sau pe un folder care nu se găseşte într-o bibliotecă a proiectului, LabVIEW creează o nouă bibliotecă şi plasează noua variabilă creată în interiorul acesteia. Figura 3.4 Crearea unei noi variabile în fereastra Project Explorer Fiecare variabilă distribuită de pe o maşină ţintă are o adresă pe care protocolul NI-PSP o foloseşte pentru identificare. Înainte de a putea accesa o variabilă distribuită din alte aplicaţii cum sunt panouri de control, noduri de variabile distribuite din cadrul diagramelor bloc, sau alte variabile distribuite, biblioteca de variabile distribuite a proiectului trebuie publicată în reţea. Pentru aceasta, se face click dreapta pe biblioteca respectivă şi se selectează Deploy din meniul contextual. În cazul folosirii modulului în timp real (RT Module), în meniul contextual apare opţiunea Deploy All care publică în reţea toate bibliotecile conţinând variabile distribuite de pe maşina ţintă, dar şi toate instrumentele virtuale care conţin variabile distribuite de pe maşina respectivă. Se poate utiliza şi meniul dialog Variable Manager pentru a edita, crea şi monitoriza variabile distribuite în afara mediului proiectului. Trebuie avut în vedere faptul că dacă se adaugă noi variabile distribuite unei biblioteci prin acest meniu, noile variabile vor putea exista numai până când biblioteca originală a proiectului va fi publicată din nou. Configurarea sau reconfigurarea variabilelor distribuite se poate face prin efectuarea unui click dreapta pe variabila respectivă şi selectarea opţiunii Properties din meniul contextual, care afişează caseta de dialog Shared Variable Properties. Ca setare implicită, o variabilă poate fi accesată pentru scriere de multiple aplicaţii. Prin bifarea opţiunii Single Writer se stabileşte ca o singură aplicaţie la un moment dat să poată scrie date în variabila respectivă, protejând astfel operaţia de scriere să fie afectată de o altă aplicaţie care accesează variabila în acelaşi timp. Mecanismul variabilelor distribuite 47 restricţionează operaţia de scriere a datelor la o singură aplicaţie de pe aceeaşi maşină, astfel că prima aplicaţie care se conectează la variabila respectivă poate efectua scrierea, iar celelalte primesc o notificare sub forma unui mesaj de eroare. După efectuarea oricărei modificări de configuraţie a unei variabile distribuite, biblioteca în care este conţinută aceasta trebuie republicată în reţea. De asemenea se poate utiliza proprietatea Variable Reference pentru a modifica configurările din interiorul unui instrument virtual, prin programare. 3.5 Utilizarea variabilelor distribuite în cadrul instrumentelor virtuale pentru dispozitive portabile de tip PDA Variabilele distribuite pot fi utilizate pentru a accesa în comun datele de către instrumente virtuale care rulează pe aceeaşi maşină sau pe maşini diferite conectate în reţea. Modulul PDA nu suportă protocolul DataSocket Transport Protocol (DSTP) sau găzduirea de variabile distribuite în reţea, ceea ce înseamnă că pe aceste dispozitive se pot crea numai aplicaţii client, care pot accesa pentru citire/scriere variabilele distribuite puse la dispoziţie de aplicaţii server care rulează pe alte tipuri de echipamente. Mecanismul Shared Variable Engine (SVE) nu rulează pe maşini de tip PDA, iar înainte de a încerca să se ruleze aplicaţii care accesează variabile publicate în reţea trebuie instalat suportul LabVIEW pentru variabile distribuite, altfel se va primi un mesaj de eroare. Pentru instalare, având PDAul conectat la calculator şi sincronizat prin aplicaţia ActiveSync se rulează programul de instalare aflat în locaţia labview\PDA\Utilities\Variables\Setup.exe, sau prin click dreapta pe ţinta PDA sau Touch Panel din fereastra Project Explorer de unde se selectează Install»Support for Shared Variables. 3.6 Crearea aplicaţiilor wireless pentru dispozitivele portabile de tip PDA Aplicaţiile wireless pentru PDA se constituie dintr-un client şi un serviciu. Clientul este aplicaţia PDA care monitorizează şi/sau controlează servicii la distanţă prin reţea şi care comunică direct cu un serviciu de pe un server sau de pe un alt dispozitiv. Serviciile sunt instrumente virtuale sau alte aplicaţii care realizează procese pe care le accesează clienţii. Pentru exemplificare, am realizat un experiment în care se urmăreşte analiza parametrilor unor circuite electronice cu ajutorul unui generator de semnale, a unui osciloscop şi a unei incinte termostabilizate (figura 3.5). 48 Circuit de analizat (filtru) Generator de semnale Osciloscop Incintă termostabilizată Figura 3.5 Schema simplificată a experimentului Instalaţia de automatizare este compusă dintr-un laptop conectat la două plăci de achiziţii: NI USB-6251 şi NI USB-6009 prin care se realizează elementele componente ale experimentului, inclusiv circuitul de analizat, respectiv un filtru digital ai cărui parametrii pot fi stabiliţi cu ajutorul elementelor de pe panoul frontal al aplicaţiei. Laptop-ul este conectat la reţea prin intermediul unui router wireless, prin care se conectează şi PDA-ul utilizat pentru monitorizare sau comandă de la distanţă (figura 3.6). NI USB-6251 NI BNC-2120 •Generator de semnale •Filtru •Osciloscop NI USB-6009 Incinta termostabilizată Figura 3.6 Elementele componente ale experimentului 49 Figura 3.7 Dispunerea experimentului în laborator Pe laptop rulează aplicaţia de control local al experimentului, ca şi aplicaţia server pentru variabile distribuite. Fereastra Project Explorer corespunzătoare experimentului este prezentată în figura 3.8, în care se observă biblioteca proiectului PDA Remote Library.lvlib şi aplicaţia Teza final PC.vi aflate pe My Computer, iar aplicaţia Teza final PDA.vi rulează pe PDA (Windows Mobile 6 Device). Figura 3.8 Fereastra Project Explorer a experimentului 50 Figura 3.9.a Panoul frontal al aplicaţiei de control 51 52 Figura 3.9.b Panoul frontal al aplicaţiei de control local al experimentului 53 Figura 3.10 Diagrama bloc a aplicaţiei de control local al experimentului Aplicaţia de control local al experimentului Panoul frontal al aplicaţiei de control local al experimentului este prezentat în figura 3.9, iar diagrama bloc a acesteia în figura 3.10. Se observă pe panoul frontal zone distincte pentru generatorul de semnale (inclusiv un afişaj al semnalelor generate), filtrul care simulează circuitul analizat, afişajul semnalelor filtrate şi sistemul de control al temperaturii incintei în care se plasează circuitul analizat. Corespunzător acestora, în diagrama bloc se găsesc elementele grafice de programare în LabVIEW care realizează aceste funcţii, şi care vor fi analizate separat în continuare. Pentru furnizarea semnalelor de la ieşirea generatorului şi a filtrului, am utilizat două ieşiri analogice ale plăcii NI USB-6251 programate aşa cum rezultă din extrasul din diagrama bloc a aplicaţiei de control local, prezentată în figura 3.11. Figura 3.11 Programarea canalelor de ieşire analogică Elementele numerotate cu [1] în figura 3.11 reprezintă constante cu ajutorul cărora se precizează dispozitivul şi ieşirile care vor fi utilizate (în acest caz, dispozitivul Dev3 este placa NI USB-6251 de la care se selectează ieşirile ao0, respectiv ao1. Aceste constante se concatenează ca elemente ale unui vector cu ajutorul funcţiei „Build Array” [2]. Funcţia [3] „DAQmx Flatten Channel String” converteşte acest vector într-o listă delimitată prin virgulă care conţine numele canalelor de date, furnizată funcţiei [4] „DAQmx Create Virtual Channel” care creează un set de două 54 canale virtuale de ieşire analogică denumite „AO Voltage” ale căror limite sunt stabilite la ±10V cu ajutorul celor două constante. Funcţia [5] „Property Node” adaugă acestei liste proprietatea de a nu repeta aceeaşi secvenţă de date („Do Not Allow Regeneration”), furnizând astfel informaţia necesară funcţiei [6] („DAQmx Timing”) care creează o sarcină („task”) de generare şi setează parametrii de sincronizare ai canalelor de date: frecvenţa de generare („Sample Clock Rate”) stabilită în acest caz la 4000 de eşantioane pe secundă pe canal, respectiv metoda de generare, în acest caz continuă („Continous Samples”) ceea ce înseamnă că se vor genera eşantioane până la activarea funcţiei [15] „DAQmx Clear Task”. Funcţia [7] „Property Node” extrage din matricea generată de funcţia [6] „DAQmx Timing” frecvenţa de eşantionare, necesară funcţiei [8] „Bundle By Name” care creează un set de date (1) conţinând dimensiunea eşantionului şi frecvenţa de eşantionare care vor fi transmise generatorului de funcţii [9] inclus în bucla principală a programului. Secvenţa de program descrisă mai sus, ca şi cea corespunzătoare iniţializării canalelor de intrare analogică se execută o singură dată la pornirea programului, nefiind incluse în bucla principală de tip „While”. Această metodă de programare, care poate părea mai complicată, este în schimb mai rapidă decât în cazul folosirii funcţiilor Express.vi care sunt mai simplu de utilizat, dar care, fiind incluse în bucla programului repetă iniţializarea canalului la fiecare iteraţie. În plus, construcţia funcţiilor de tip Express.vi nu permite utilizarea lor in cazul mai multor canale ale aceleiaşi plăci de achiziţii într-o buclă repetitivă. Generatorul de funcţii [9], a cărui funcţionare va fi descrisă în paragraful următor, furnizează semnalul de ieşire atât elementului grafic de afişare [13], cât şi funcţiei [10] („Build Array”) care concatenează cele două şiruri de date reprezentând semnalul generat şi cel de la ieşirea filtrului pentru a crea informaţia transmisă împreună cu descrierea sarcinii (2) funcţiei [11] („DAQmx Write”) care converteşte această informaţie în semnale analogice transmise la ieşirile specificate anterior. Pentru a iniţializa conversia, la prima iteraţie a buclei se execută o singură dată funcţia [12] („DAQmx Start Task”) inclusă într-o structură de tip „Case” a cărei condiţie este stabilită de variabila „First Call” aparţinând buclei principale de tip „While”. După ieşirea din bucla principală ca urmare a apăsării butonului STOP de pe panoul de control sau ca urmare a apariţiei unei erori, şirul conţinând numele şi descrierea sarcinii create în zona de iniţializare se transmite funcţiei [15] („DAQmx Clear Task”) care are rolul de a opri şi a şterge din memorie sarcina dar şi de a elibera resursele utilizate de aceasta. Linia punctată galbenă care se transmite între toate funcţiile prezentate mai sus are rolul de a transmite o structură de date cu trei elemente conţinând informaţiile despre eventualele erori apărute în 55 funcţionarea programului (3). Cele trei elemente sunt: o variabilă binară reprezentând starea erorii (0 – Fals, 1 – Adevărat), un număr real reprezentat pe 32 de biţi reprezentând codul erorii şi un şir alfanumeric reprezentând sursa erorii. Din acestea, starea erorii este extrasă [14] înaintea ieşirii din bucla principală şi poate determina terminarea buclei în cazul apariţiei unei erori, iar informaţiile reprezentând natura şi sursa erorii sunt afişate într-o fereastră de dialog de către funcţia [16] („Simple Error Handler”), numai dacă este cazul. În figura 3.12 este extrasă zona din diagrama bloc a aplicaţiei de control local al experimentului care reprezintă generatorul de funcţii, în situaţia în care comanda aplicaţiei se realizează de la distanţă, prin aplicaţia client care rulează pe PDA, iar în figura 3.13 situaţia în care comanda este locală, prin elementele panoului de control al aplicaţiei care rulează pe PC. Figura 3.12 Programarea generatorului de funcţii pentru comanda de la distanţă 56 Figura 3.13 Programarea generatorului de funcţii pentru comanda locală Se observă că cele două situaţii diferă prin conţinutul structurii de tip „Case”, controlată de semnalul (0) – „Control local”. În situaţia comenzii de la distanţă, parametrii semnalului generat de către generatorul de funcţii [9] („Basic Function Generator”) sunt stabiliţi prin citirea valorilor variabilelor distribuite: Ch1 Offset, Ch1 Type, Ch1 Freq şi Ch1 Amplitude, ale căror valori sunt scrise în acest caz de aplicaţia client care rulează pe PDA. În situaţia comenzii locale (figura 3.12), în interiorul structurii „Case” se observă elementele de control a parametrilor respectivi de la aplicaţia locală, ca şi comanda de scriere a valorilor acestora în variabilele distribuite respective. Valorile curente ale frecvenţei, amplitudinii şi componentei continue ale semnalului generat sunt afişate pe elementele corespunzătoare ale panoului frontal, iar pentru tipul formei de undă s-a optat pentru a nu fi afişată, aceasta fiind reprezentată grafic. Cu aceşti parametri, împreună cu setul de date (1) conţinând dimensiunea eşantionului şi frecvenţa de eşantionare, funcţia [9] („Basic Function Generator”) creează şirul de date reprezentând succesiunea eşantioanelor semnalului generat, utilizat atât pentru elementul de afişare grafică de pe panoul frontal al aplicaţiei locale, cât şi de funcţia [10] („Build Array”) descrisă anterior, care îl concatenează cu şirul reprezentând semnalul de la ieşirea filtrului. Programarea canalelor de intrare analogică necesare transmiterii semnalelor la intrarea filtrului şi respectiv achiziţionării semnalelor filtrate în vederea afişării este realizată conform extrasului din diagrama bloc reprezentată în figura 3.14. Figura 3.14 Programarea canalelor de intrare analogică Această porţiune de program conţine ca şi în cazul programării canalelor de ieşire analogică o parte de iniţializare aflată în afara buclei principale a programului (funcţiile [17] … [22]) şi o parte repetitivă inclusă în bucla principală (funcţiile [23] şi [24]). Funcţiile [17] … [21] sunt similare celor utilizate la iniţializarea canalelor de ieşire analogică, cu deosebirea că în acest caz sunt selectate canalele fizice de intrare Dev3/ai2, respectiv Dev3/ai4, iar setul de două canale virtuale de intrare analogică este denumit „AI Voltage”. Frecvenţa 57 de eşantionare utilizată este şi în acest caz 4000 de eşantioane pe secundă pe fiecare canal de intrare. Funcţia [22] „DAQmx Start Task” porneşte sarcina creată, ceea ce determină alocarea resurselor necesare şi începerea măsurării. Utilizarea acestei funcţii ca şi a uneia din funcţiile „DAQmx Stop Task” sau „DAQmx Clear Task” în afara buclei duce la reducerea timpului de rulare, în acest caz iniţializarea şi încheierea măsurării făcându-se o singură dată. În lipsa acestor funcţii, funcţiile „DAQmx Read” şi „DAQmx Write” care se plasează de obicei în interiorul buclei detectează automat situaţia şi pornesc, respectiv opresc măsurarea la fiecare rulare a buclei, scăzând performanţele programului. Funcţia [23] „DAQmx Read” citeşte la fiecare iteraţie 1000 de eşantioane de la fiecare canal de intrare precizat în sarcina creată, datele rezultate fiind transmise funcţiei [24] „Split 1D Array” care separă cele două şiruri de date pe canale, primul şir (5) corespunzător intrării Dev3/ai2 fiind transmis la intrarea filtrului, iar cel de-al doilea (7), corespunzător intrării Dev3/ai2, fiind transmis elementului grafic de afişare de pe panoul frontal, reprezentând semnalul filtrat. Semnalele (6) şi (3) reprezentând descrierea sarcinii create pentru intrările analogice, respectiv informaţiile despre eventualele erori apărute sunt transmise în afara buclei principale, intr-un mod identic celui utilizat la programarea canalelor de ieşire analogică funcţiilor „DAQmx Clear Task” şi „Simple Error Handler” pentru închiderea sarcinii, eliberarea resurselor şi afişarea eventualelor erori. Programarea filtrului în situaţia comenzii locale este extrasă în figura 3.15, iar pentru situaţia comenzii de la distanţă în figura 3.16. Figura 3.15 Programarea filtrului pentru comanda de la distanţă 58 Figura 3.16 Programarea filtrului pentru comanda locală Diferenţele dintre cele două situaţii sunt reprezentate de conţinutul structurii de tip „Case” [25] controlate de variabila „Control local” (0). În situaţia comenzii locale, parametrii filtrului, respectiv: lărgimea de bandă, frecvenţa de tăiere şi tipul filtrului sunt stabilite cu ajutorul elementelor de control de pe panoul frontal al aplicaţiei locale, iar valorile acestora sunt transmise variabilelor distribuite corespunzătoare, pentru a fi transmise prin reţea aplicaţiei client de pe PDA. În cazul comenzii de la distanţă, valorile conţinute de variabilele distribuite actualizate de aplicaţia de pe PDA sunt citite şi utilizate ca şi parametri de funcţionare ai filtrului. Valorile acestor parametri sunt afişate pe panoul frontal al aplicaţiei locale, deoarece în cazul comenzii de la distanţă indicaţiile pot diferi de cele ale elementelor de control local. Variabila corespunzătoare tipului filtrului este o variabilă tip enumerare cu patru elemente, corespunzătoare celor patru tipuri de filtre care pot fi realizate de programul prezentat: trece-jos, trece-sus, trecebandă, respectiv opreşte-bandă. Această variabilă controlează structura de tip „Case” [26] în interiorul căreia este programat câte un tip de filtru, prin intermediul câte unei funcţii tip „Express.vi”. Valoarea lărgimii de bandă este utilizată în cazul filtrelor de tip trece-bandă şi opreşte-bandă pentru calcularea frecvenţei superioare a benzii, prin însumarea acesteia cu frecvenţa de tăiere (în aceste cazuri, frecvenţa inferioară a benzii). Funcţiile de tip „Express.vi” utilizate pentru realizarea filtrelor sunt configurate pentru a realiza fiecare câte un filtru de tip Butterworth de ordinul 3, corespunzător tipului ales. La intrarea fiecărui filtru se aplică semnalul (5) preluat de la intrarea analogică Dev3/ai2, iar semnalul de ieşire se transmite funcţiei [10] („Build Array”) care aceste date cu cele reprezentând semnalul generat, pentru a fi transmis ieşirii analogice Dev3/ao1 aşa cum a fost descris anterior. 59 Utilizarea acestor intrări – ieşiri analogice ale plăcii NI USB-6251 permite ca montajul realizat să poată fi utilizat pentru măsurarea şi vizualizarea atât a efectelor filtrelor digitale realizate prin program, cât şi a unor filtre analogice plasate în incinta termo-stabilizată, pentru a determina efectul temperaturii asupra parametrilor acestora. În figura 3.17 este extrasă programarea incintei termostabilizate pentru comanda locală, iar în figura 3.18 programarea incintei termostabilizate pentru comanda de la distanţă. Figura 3.17 Programarea incintei termostabilizate pentru comanda locală Figura 3.18 Programarea incintei termostabilizate pentru comanda de la distanţă Ca şi în cazurile prezentate anterior, diferenţele dintre cele două situaţii sunt reprezentate de conţinutul structurii de tip „Case” [27] controlate de variabila „Control local” (0). Variabilele „Max T” şi „Min T” sunt actualizate în cazul comenzii locale cu ajutorul elementelor de pe panoul frontal al aplicaţiei locale şi transmise aplicaţiei client de pe PDA prin intermediul conţinutului variabilelor distribuite, iar în cazul comenzii 60 de la distanţă situaţia se inversează. Valorile curente ale limitelor minime şi maxime sunt afişate pe panoul frontal al aplicaţiei locale. Citirea temperaturii din incinta termostabilizată este realizată cu ajutorul plăcii NI USB-6009 la intrarea analogică Ai1 a căreia este conectat senzorul de temperatură integrat de tip TMP36 care furnizează o tensiune de ieşire proporţională liniar cu temperatura în grade Celsius a capsulei. Domeniul de măsură al senzorului este cuprins între -40 – 125 oC, având un factor de scală de 10 mV/oC. La temperatura de 25oC, valoarea tensiunii de ieşire este de 750 mV, ceea ce determină o formulă de conversie a tensiunii de ieşire în temperatură conform relaţiei (3.1). (3.1) y 100 * x 50 Figura 3.19 Programarea conversiei tensiunii de ieşire a senzorului în grade Celsius Conversia temperaturii s-a realizat cu ajutorul unei funcţii de tip „Express.vi” [29], care citeşte tensiunea de la intrarea analogică ai0 a plăcii de achiziţie, iar formula este implementată prin setarea parametrilor ferestrei de dialog NI-DAQmx Scale aşa cum este prezentat în figura 3.19. Conform acestei formule, datele de la ieşirea funcţiei „Express.vi” [29] 61 reprezintă valoarea temperaturii în grade Celsius a incintei în care este plasat senzorul. Temperatura astfel obţinută se afişează într-o formă grafică specifică pe panoul frontal al aplicaţiei de pe PC, se transferă în variabila distribuită „Temp” pentru a fi utilizată de aplicaţia client de pe PDA şi totodată se transmite secvenţei logice de control a încălzirii incintei termostabilizate [28]. Deoarece am optat pentru un reglaj al temperaturii de tip histerezis, care să menţină temperatura între limite prestabilite, programarea acestuia necesita memorarea stării din iteraţia anterioară. Aceasta se programează de obicei prin funcţii de tip bistabil, care în LabVIEW sunt disponibile numai pentru modulele în timp real. În cazul utilizării modulului pentru dispozitivele mobile de tip PDA, am ales soluţia utilizării unei structuri de tip „Case” [28] controlată de starea circuitului de încălzire din iteraţia anterioară, memorată de funcţia „Feedback Node” [30]. Astfel, dacă in iteraţia anterioară circuitul de încălzire a fost oprit, şi în iteraţia curentă valoarea temperaturii incintei termostabilizate devine mai mică decât limita minimă (în fereastra False a structurii „Case” – figura 3.17, se testează dacă temperatura măsurată este mai mică decât temperatura minimă), circuitul NI USB-6009 P0.0 OAC 5A ~ 220 V de încălzire se porneşte. Dacă în iteraţia anterioară circuitul de încălzire a fost pornit, şi în iteraţia curentă valoarea temperaturii incintei termostabilizate devine mai mare decât limita maximă, circuitul de încălzire se opreşte (în fereastra True a structurii „Case” – figura 3.18, se testează dacă temperatura măsurată este mai mică decât temperatura maximă). Rezultatul se obţine sub forma de date dinamice, care trebuie convertite în forma unei matrici unidirecţionale de valori booleene pentru a fi transmise funcţiei de tip „Express.vi” de ieşire [31]. Aceasta transmite valoarea variabilei „Încălzire” (afişată şi pe panoul frontal al aplicaţiei locale) la ieşirea digitală P0.0 a plăcii NI USB-6009 la care este conectat modulul de ieşire de putere de tip OAC5A (figura 3.20). Acest modul furnizează o interfaţă de conectare lipsită de zgomote, izolată optic, a unor actuatori alimentaţi în curent alternativ la ieşiri de comandă de tip logic. 62 Figura 3.20 Conectarea modulului de ieşire de putere la placa NI USB-6009 În partea dreaptă a figurilor 3.17 şi 3.18 se observă cum, din semnalele de eroare culese de la diferitele funcţii din diagrama bloc, se extrage valoarea binară reprezentând starea erorii şi se însumează logic succesiv inclusiv cu starea butonului „Stop” [32], pentru a determina ieşirea din bucla principală a programului dacă se apasă butonul „Stop” de pe panoul frontal sau dacă apare vre-o eroare în interiorul buclei. Figura 3.21 Programarea comutării comenzii locale şi de la distanţă 63 În figura 3.21 se prezintă extrasul din diagrama bloc a circuitului de comutare a comenzii locale sau de la distanţă. Se observă utilizarea a două variabile distribuite: „Local control” care reprezintă starea actuală a circuitului de comandă (1 – local, 0 – la distanţă), respectiv „Remote control” care reprezintă starea cererii de comandă de la distanţă emisă de aplicaţia client de pe PDA. De asemenea se utilizează o structură tip „Case” controlată de valoarea variabilei „Local control” de la iteraţia anterioară, memorată de funcţia „Feedback node”. Astfel, dacă în iteraţia anterioară comanda era locală („Local control” = 1), existenţa unei cereri de comandă de la distanţă de la aplicaţia client („Remote control” = 1), inversată logic, determină comutarea în modul comandă de la distanţă („Local control” = 0), situaţie reprezentată în figura 3.21.(a). Dacă în iteraţia anterioară comanda se făcea de la distanţă, apăsarea butonului „Local” de pe panoul frontal al aplicaţiei locale determină comutarea în regimul de comandă locală (figura 3.21.(b)). Aplicaţia de control de la distanţă a experimentului Panoul frontal al aplicaţiei de control de la distanţă a experimentului este prezentat în figura 3.22, iar diagrama bloc a acesteia în figura 3.23. Deoarece afişajele dispozitivelor tip PDA sau ale telefoanelor inteligente au în general dimensiuni reduse, s-a optat pentru utilizarea ferestrelor tip TAB, prin care s-au împărţit elementele de comandă şi afişare în trei zone: a generatorului de semnale, a filtrului şi a afişării semnalelor filtrate şi a incintei termostabilizate. În acest fel s-au obţinut dimensiuni ale elementelor de comandă şi afişare accesibile metodelor de introducere a datelor specifice ecranelor tactile. Comutarea între aceste TAB-uri se face în mod clasic, prin atingerea zonelor corespunzătoare din partea de sus a ecranului. Zona de jos a ecranului este comună celor trei TAB-uri, conţinând butonul „CTRL” prin care se lansează cererea de comandă de la distanţă atunci când aplicaţia de pe PC este în modul de comandă locală, indicatorul stării actuale a comenzii (roşu în modul Local şi verde în modul Distanţă), butonul „Stop” care determină ieşirea din bucla principală a programului, ca şi cele două butoane generate automat pentru orice aplicaţie pentru PDA – „Run” care porneşte execuţia programului, respectiv „Exit” care încheie execuţia programului şi eliberează resursele utilizate. 64 65 Figura 3.22 Panoul frontal al aplicaţiei de comandă de la distanţă (PDA) Alături de elementele de comandă de la distanţă a parametrilor s-au plasat indicatoare ale stării actuale a acestora în cadrul aplicaţiei de pe PC, care pot indica valori diferite în modul de control local faţă de valorile stabilite de pe PDA. Odată cu apăsarea butonului „CTRL” şi comutarea în modul de control de la distanţă, aplicaţia de pe PC primeşte valorile comandate de aplicaţia client de pe PDA, iar noile valori curente ale parametrilor vor fi identice cu cele comandate de la distanţă. Din diagrama bloc a aplicaţiei se observă că aceasta este mai simplă faţă de aplicaţia de control local de pe PC, ceea ce permite rularea acesteia în condiţiile resurselor limitate ale dispozitivelor mobile tip PDA sau telefoanelor inteligente. Variabila „Local control”, actualizată întotdeauna numai de aplicaţia de pe PC, controlează modul de lucru al buclei de tip „Case” inclusă în bucla principală a programului. În figura 3.23 este prezentată diagrama bloc în modul comandă de la distanţă, în care, cu ajutorul elementelor de control de pe panoul frontal al aplicaţiei de pe PDA se stabilesc parametrii de funcţionare ai aplicaţiei de pe PC, prin actualizarea valorilor variabilelor distribuite corespunzătoare. Indiferent de modul de lucru, valorile acestor variabile distribuite reprezintă valorile curente utilizate de aplicaţia care rulează pe PC şi sunt afişate pe elementele de afişare de pe panoul frontal, iar pentru o mai clară imagine a stării aplicaţiei monitorizate, aplicaţia generează un semnal cu parametrii identici cu cei generaţi de aplicaţia de pe PC în scopul afişării pe aplicaţia de monitorizare. De asemenea, este realizat un filtru utilizând aceiaşi parametri care prelucrează semnalul generat, imaginea semnalului filtrat fiind afişată în TAB-ul corespunzător filtrului pe panoul frontal al aplicaţiei de pe PDA. 66 67 Figura 3.23 Diagrama bloc a aplicaţiei de comandă de la distanţă (PDA) Mecanisme de protecţie oferite de sistemul variabilelor distribuite Comunicarea prin mecanismul variabilelor distribuite între diferitele aplicaţii realizate în LabVIEW utilizând reţele fără fir se realizează conform protocolului IEEE 802.11. Deoarece în acest caz se utilizează semnale radio transmise prin aer ca mediu fizic de transmitere, asigurarea securităţii comunicaţiilor de date reprezintă o provocare suplimentară faţă de reţelele cu fir. Este evident că în cazul aplicaţiilor industriale, principiile securităţii informaţionale (confidenţialitate, integritate şi disponibilitate) sunt foarte importante, iar echilibrul corect între acestea depinde de specificul fiecărei aplicaţii. În completarea metodelor generale utilizate pentru securizarea reţelelor IEEE 802.11, mediul de programare LabVIEW oferă unele instrumente specifice care pot preveni accesul neautorizat la aplicaţiile industriale. Modulul LabVIEW PDA include un set de instrumente care facilitează implementarea mecanismelor de securitate pentru resursele specifice cum sunt bibliotecile proiectelor, variabilele distribuite şi obiectele conţinute de panourile frontale ale aplicaţiilor. Bibliotecile proiectelor pot fi utilizate pentru a atribui drepturi de acces multiplelor variabile distribuite conţinute. Deşi variabilele distribuite moştenesc drepturile de acces ale bibliotecii în care sunt conţinute, fiecărei variabile i se pot atribui drepturi sau restricţii suplimentare în mod independent. Proprietăţile unei biblioteci de variabile distribuite, accesibile prin categoria „Protection” a meniului contextual, permit următoarele moduri de acces la întreaga bibliotecă: Unlocked (no password) – orice utilizator poate vizualiza şi edita biblioteca şi conţinutul acesteia. Locked (no password) – utilizatorul trebuie să deblocheze biblioteca utilizând acest meniu pentru a edita conţinutul acesteia. Elementele declarate ca private sunt ascunse în structura ferestrei „Project Explorer” a proiectului. Password-protected – utilizatorul nu poate edita conţinutul bibliotecii fără a introduce parola corectă. Elementele declarate ca private sunt de asemenea ascunse în structura ferestrei „Project Explorer” a proiectului. În categoria „Item Settings” se poate seta modul de acces (Access Scope) pentru fiecare variabilă ca fiind: Public, Community, sau Private. În categoria „Friends” se pot specifica aplicaţiile (VI) sau alte biblioteci care pot accesa variabilele conţinute de respectiva bibliotecă. Pentru fiecare variabilă din bibliotecă, în categoria „Security” a proprietăţilor, se poate defini o listă de utilizatori/grupuri/calculatoare pentru care se pot atribui drepturi sau restricţii pentru citire şi de scriere. 68 De asemenea se poate utiliza managerul de conturi de domeniu inclus în mediul de programare LabVIEW (Domain Account Manager) pentru crearea şi distrugerea de domenii locale, adăugarea sau eliminarea domeniilor de reţea existente, respectiv pentru managementul utilizatorilor şi grupurilor din domeniu. Managerul de conturi de domeniu utilizează protocolul de reţea NI Publish-Subscribe Protocol (NI-PSP) pentru a detecta toate domeniile de reţea existente, utilizând mecanisme de criptare încorporate pentru a securiza protocoalele de autentificare. Acesta necesită ca două servicii Windows să ruleze în plus faţă de aplicaţiile LabVIEW: National Instruments PSP Server Locator, care permite managerului de conturi de domeniu să detecteze domeniile de reţea existente, respectiv National Instruments Domain Service, care îi permite managementul domeniilor locale. În Windows 2000/XP, aceste servicii apar sub numele lkads.exe şi nidmsrv.exe. 3.7 Concluzii Prin experimentul prezentat am exemplificat o aplicaţie simplă de comandă/monitorizare a unei instalaţii de automatizare industrială în care se poate utiliza un PDA (sau un Smartphone) conectat prin reţeaua fără fir locală sau prin Internet la echipamente mai complexe, compuse din multiple instalaţii de automatizare controlate de calculatoare locale. Dimensiunile reduse ale PDA-urilor sau prezenţa permanentă a unui telefon inteligent asupra personalului de deservire justifică această abordare prin care se evită utilizarea unui laptop ca şi echipament mobil de monitorizare şi/sau comandă de la distanţă în cadrul procesului de producţie, permiţând astfel reducerea costurilor echipamentelor, dar şi îmbunătăţirea ergonomiei proceselor. Aplicaţiile pentru PDA se pretează pentru monitorizarea aplicaţiilor industriale, oricât de complexe ar fi acestea, cu condiţia utilizării unor dispozitive mobile cu rezoluţie a afişajului cel puţin de 480/640 puncte pentru a putea distinge toate detaliile elementelor afişate pe panoul frontal. Pentru comanda de la distanţă a aplicaţiilor industriale trebuie asigurată o fiabilitate ridicată a conexiunii fără fir, concomitent cu aplicarea unor măsuri de protecţie în cazul întreruperilor (de exemplu trecerea automată în modul comandă locală). Astfel de aplicaţii nu se recomandă pentru controlul aplicaţiilor rapide în timp real, din cauza sistemelor de operare bazate pe întreruperi instalate pe dispozitivele mobile actuale. 69 4. CONCLUZII FINALE Având în vedere evoluţia tehnologică accelerată a dispozitivelor mobile actuale determinată de nevoile sporite de mobilitate a utilizatorilor dar şi de entuziasmul care nu poate fi neglijat al tinerei generaţii pentru utlizarea acestora, consider că dispozitivele mobile trebuie luate în considerare ca şi părţi importante ale sistemelor de automatizare moderne. Cu puterea de calcul tot mai apropiată de cea a calculatoarelor clasice şi cu viteza de comunicare în reţelele mobile tot mai crescută, acestea reuşesc să devină componente viabile ale sistemelor de automatizare, în special în ce priveşte monitorizarea proceselor şi managementul liniilor de producţie, care presupune de exemplu comanda de la distanţă a regimurilor de funcţionare. Evoluţia explozivă a pieţei terminalelor inteligente mobile din ultimii ani a fost caracterizată de schimbări importante în tehnologiile înglobate, dar şi de o serie de noi apariţii în rândul sistemelor de operare pentru acestea. Pe măsură ce aceste noi sisteme de operare vor ajunge la un anumit nivel de maturitate, ele vor fi cu siguranţă utilizate în sistemele de automatizare, ca şi cele deja consacrate. Apreciez că în viitorul apropiat vom putea beneficia de avantajele mediilor de dezvoltare specializate cum este LabVIEW pentru a crea aplicaţii şi pentru sisteme de operare cum sunt Android sau iOS, ceea ce reprezintă şi una dintre preocupările mele pentru dezvoltarea ulterioară a cercetării în acest domeniu. În realizarea aplicaţiilor de monitorizare/comandă realizate pentru terminalele mobile inteligente nu trebuie omisă configurarea corespunzătoare a setărilor de securitate atât a aplicaţiei cât şi a reţelei, astfel încât să se respecte principiile acesteia: Confidenţialitate – Integritate – Disponibilitate, în scopul asigurării calităţii comunicaţiilor în reţea, incluzând elementele de autentificare-autorizare a potenţialilor utilizatori în conformitate cu nivelul de acces necesar îndeplinirii atribuţiilor acestora. Contribuţii originale În cadrul cercetărilor întreprinse pentru realizarea acestei teze de doctorat au fost aduse o serie de contribuţii personale cum sunt: Prezentarea sistematizată şi unitară a principalelor tipuri de dispozitive mobile (PDA şi telefoane inteligente) existente în prezent, inclusiv evoluţia tendinţelor din domeniu pe o piaţă foarte dinamică în perioada efectuării cercetării; Prezentarea sistematizată a instrumentelor de dezvoltare pentru PDA disponibile pentru cele mai cunoscute platforme; Descrierea detaliată a tehnologiei OPC şi a modului în care poate fi utilizată în controlul aplicaţiilor industriale astfel încât acestea să poată respecta standardele internaţionale acceptate; 70 Prezentarea modului în care se pot realiza aplicaţii client OPC în LabVIEW; Realizarea unui algoritm pentru elaborarea de aplicaţii de monitorizare/control pentru PDA utilizând mediul de programare LabVIEW, şi exemplificarea aplicării acestuia în realizarea unei aplicaţii industriale care poate fi utilizată în laborator pentru instruirea viitorilor studenţi; Adoptarea unor soluţii originale în cadrul programului prezentat cum sunt cele referitoare la comutarea modurilor de comandă locală / de la distanţă, sau la controlul temperaturii din incinta termostabilizată; Prezentarea detaliată a metodelor de protecţie a datelor din aplicaţiile industriale realizate în LabVIEW, precum şi a importanţei aplicării acestora pentru fiabilitatea şi siguranţa în funcţionare a sistemelor de automatizare. Consider că această lucrare demonstrează viabilitatea ideii propuse de utilizare a terminalelor inteligente de tip PDA sau telefoane inteligente în monitorizarea/controlul aplicaţiilor industriale, care poate conduce la scăderea costului echipamentelor şi la îmbunătăţirea ergonomiei proceselor industriale. 71 ACRONIME UTILIZATE ÎN TEXT A&E – Alarms and Events API – Application Programming Interface COM – Component Object Model DA – Data Access DCS – Distributed Control System DOM – Document Object Model DX – Data Exchange HDA – Historical Data Access HMI – Human-Machine Interface HTTP – Hyper Text Transfer Protocol LDAP – Lightweight Directory Access Protocol OLE – Object Linking and Embedding OPC – OLE for Process Control PLC – Programmable Logic Controller SAX – Simple API for XML SOAP – Simple Object Access Protocol UDDI – Universal Description, Discovery and Integration WSDL – Web Services Definition Language XML – Extensible Markup Language XSL – Extensible Style sheet Language XSD – XML Schema Definition 72 BIBLIOGRAFIE [1] Hansmann, U., Merk, L., Nicklous, M., and Stober, T. 2001. Pervasive Computing Handbook. Springer Verlag. Pp. 133 – 162. [2] "Gartner Says Worldwide Mobile Device Sales Grew 13.8 Percent in Second Quarter of 2010, But Competition Drove Prices Down". Press release. 12 August 2010. http://www.gartner.com/it/page.jsp?id=1421013 accesat la 16 octombrie 2010. [3] "Canalys: iPhone outsold all Windows Mobile phones in Q2 2009". AppleInsider. 21 August 2009. http://www.appleinsider.com/articles/09/08/21/canalys_iphone_outsol d_all_windows_mobile_phones_in_q2_2009.html accesat la 21 septembrie 2009. [4] http://www.openhandsetalliance.com/oha_members.html [5] http://www.pcworld.com/businesscenter/article/146450/developers_pr aise_android_at_google_io.html?tk=rl_noinform [6] "CEO Ballmer Reportedly Says Microsoft 'Screwed Up' with Windows Mobile". eWeek. 28 September 2010. http://www.eweek.com/c/a/Windows/Microsoft-CEO-Steve-BallmerSays-Company-Screwed-Up-Windows-Mobile-241614/ [7] Ducrohet, Xavier (20 May 2010). "Android 2.2 and developers goodies.". Android Developers Blog. Google. http://androiddevelopers.blogspot.com/2010/05/android-22-and-developersgoodies.html accesat la 20 mai 2010. [8] "Licenses". Android Open Source Project. Open Handset Alliance. http://source.android.com/source/licenses.html accesat la 10 iunie 2010-06. [9] "About the Android Open Source Project". http://source.android.com/about/index.html. Retrieved 2010-11-15 [10] "Android hits top spot in U.S. smartphone market". 2010-08-04. http://news.cnet.com/8301-1035_3-20012627-94.html accesat la 04 august 2010. [11] "Apple Introduces New iPod touch". Apple Press Release. 2010-0901. http://www.apple.com/pr/library/2010/09/01ipodtouch.html accesat la 04 septembrie 2010. [12] Honan, Matthew (2007-01-09). "Apple unveils iPhone". Macworld. http://www.macworld.com/article/54769/2007/01/iphone.html accesat la 16 ianuarie 2010. [13] "Apple - iPhone - Features - OS X". Archived from the original on 2008-01-11. http://web.archive.org/web/20080111051348/http://www.apple.com/i phone/features/index.html#macosx accesat la 15 iunie 2010. 73 [14] Gonsalves, Antone (2007-10-11). "Apple Launches iPhone Web Apps Directory". InformationWeek. http://www.informationweek.com/news/hardware/mac/showArticle.jh tml?articleID=202401732 accesat la 16 februarie 2010. [15] Ziegler, Chris (2007-06-11). "Apple announces third-party software details for iPhone". http://www.engadget.com/2007/06/11/appleannounces-third-party-software-details-for-iphone/ accesat la 09 iunie 2010. [16] "Mobile World Congress 2010 – day one overview". 2010-02-15. http://www.techcentral.co.za/mobile-world-congress-2010-day-oneoverview/12826/ accesat la 03 iunie 2010. [17] Terry Myerson (2010-09-01). "Windows Phone 7 – Released To Manufacturing". http://windowsteamblog.com/windows_phone/b/windowsphone/archi ve/2010/09/01/windows-phone-7-released-to-manufacturing.aspx accesat la 29 septembrie 2010. [18] "What Windows Phone 7 Could Have Been". 2010-02-25. http://gizmodo.com/5480387/what-windows-phone-7-could-havebeen accesat la 05 iunie 2010. [19] "Thoughts on Windows Phone 7 Series (BTW: Photon is Dead)". 2010-02-17. http://pocketnow.com/thought/thoughts-on-windowsphone-7-series-btw-photon-is-dead accesat la 05 iunie 2010. [20] "Overview of webOS". Palm, Inc.. http://developer.palm.com/index.php?option=com_content&view=arti cle&id=1761&Itemid=42 accesat la 25 august 2010. [21] Pearce, James (2009-01-08). "Palm Announces Palm WebOS At CES, Also Palm Pre". http://www.washingtonpost.com/wpdyn/content/article/2009/01/08/AR2009010802664.html accesat la 09 ianuarie 2009. [22] Richtel, Matt (2009-01-08). "For a Palm Rebound, the Phone Is Not Enough". New York Times. http://bits.blogs.nytimes.com/2009/01/08/for-a-palm-rebound-thephone-is-not-enough/?scp=2&sq=palm%20pre&st=cse accesat la 14 ianuarie 2009. [23] Lextrait, Vincent (January 2010). "The Programming Languages Beacon, v10.0". http://www.lextrait.com/Vincent/implementations.html accesat la 4 ianuarie 2010. [24] "Official BlackBerry 6 Preview Video from WES 2010". April 2010. http://crackberry.com/blackberry-6-sneak-peek-video-wes-2010 accesat la 27 aprilie 2010. [25] ” RIM Unveils The BlackBerry PlayBook”, official press release, September 27, 2010 74 [26] King, Chris (December 16, 2009). Advanced BlackBerry Development (1st ed.). Apress. pp. 350. ISBN 1430226560. http://apress.com/book/view/1430226560 [27] Rizk, Anthony (November 4, 2009). Beginning BlackBerry Development (1st ed.). Apress. pp. 264. ISBN 1430272252. http://apress.com/book/view/1430272252 [28] http://www.opcfoundation.org [29] OPC Overview, Versiunea 1.0, 27 October 1998, descărcat de pe siteul fundaţiei OPC http://www.opcfoundation.org [30] OPC Unified Architecture Specification Part 1: Overview and Concepts Release 1.01, 5 Februarie 2009, descărcat de pe site-ul fundaţiei OPC http://www.opcfoundation.org [31] Sora, Daniel, (2010), „Monitoring and controlling automation systems using smartphones / PDA”, Journal of Defense Resources Management, ISSN 2068 – 9403 [32] Sora, Daniel, (2010), „Enhanced system security with the LabView Datalogging and Supervisory Control Module”, „Information security management – trends and opportunities”, Workshop unfolded during the postgraduate course in Information Security Management, 2010, Brasov, ISBN: 978-973-663-831-2 [33] Sora, Daniel, (2010), „Wireless security for data acquisition”, 2010, „Information security management – trends and opportunities”, Workshop unfolded during the postgraduate course in Information Security Management, Brasov, ISBN: 978-973-663-831-2 [34] Sora, Daniel, (2010), „Actualitatea şi tendinţele anului 2010 în domeniul terminalelor mobile”, „Managementul resurselor de apărare în secolul XXI”, A 5-a Conferinţă Ştiinţifică anuală cu participare internaţională a Departamentului Regional de Studii pentru Managementul Resurselor de Apărare, ISSN: 2069 - 3222 [35] Sora, Daniel, (15.12.2006), „Managementul securităţii informatice în reţelele fără fir”, Sesiune de comunicări ştiinţifice a DRESMARA pag. 249–256, ISBN 978-973-663-470-3 [36] Sora, Daniel, (20.11.2009), „Utilizarea tehnologiei OPC în controlul sistemelor de automatizare”, A 4-a Sesiune Anuală de Comunicări Ştiinţifice cu participare internaţională a Departamentului Regional de Studii pentru Managementul Resurselor de Apărare, ISBN 978-973663-803-9 [37] Sora, Daniel, (20.11.2009), „Controlul sistemelor de automatizare prin intermediul dispozitivelor portabile”, A 4-a Sesiune Anuală de Comunicări Ştiinţifice cu participare internaţională a Departamentului Regional de Studii pentru Managementul Resurselor de Apărare, ISBN 978-973-663-803-9 75 [38] Sora, Daniel, (2010) „Security Issues in Wireless Sensor Networks”, International Journal of Online Engineering (iJOE). ISSN: 1861-2121 [39] Sora, Daniel, (June 28 - July 1, 2011) „Smartphone / PDA application for remote monitoring and controlling industrial automations”, 8th International Conference on Remote Engineering and Virtual Instrumentation, Transylvania University, Brasov, Romania [40] Sora, Daniel, (2011) „Trends in the convergence of wireless networks”, Journal of Defense Resources Management, nr. 1(2)/2011, ISSN: 2068-9403, eISSN: 2247-6466, ISSN-L: 2247-6466 [41] http://www.ni.com/labview/ [42] NI LabVIEW 8.6 Help - http://zone.ni.com/reference/enXX/help/371361E-01/ [43] LabVIEW 8.6 Datalogging and Supervisory Control Module Help http://zone.ni.com/reference/en-XX/help/371618D-01/ [44] http://sine.ni.com/nips/cds/view/p/lang/en/nid/10418 [45] http://www.ni.com/lookout/ [46] http://www.ni.com/fieldpoint/ [47] http://www.ni.com/dataacquisition/ [48] http://sine.ni.com/nips/cds/view/p/lang/en/nid/1318 [49] http://www.wikipedia.org [50] http://www.opcfoundation.org accesat la data de 02.11.2009 [51] http://www.ni.com/labview/ accesat la data de 05.11.2009 [52] NI LabVIEW 8.6 Help - http://zone.ni.com/reference/enXX/help/371361E-01/ accesat la data de 05.11.2009 [53] LabVIEW 8.6 Datalogging and Supervisory Control Module Help http://zone.ni.com/reference/en-XX/help/371618D-01/ accesat la data de 05.11.2009 [54] http://sine.ni.com/nips/cds/view/p/lang/en/nid/10418 accesat la data de 05.11.2009 [55] http://www.ni.com/lookout/ accesat la data de 05.11.2009 [56] http://www.ni.com/fieldpoint/ accesat la data de 05.11.2009 [57] http://www.ni.com/dataacquisition/ accesat la data de 05.11.2009 [58] http://sine.ni.com/nips/cds/view/p/lang/en/nid/1318 accesat la data de 05.11.2009 [59] http://www.wikipedia.org accesat la data de 12.11.2009 [60] Mark, D., LaMarche, J., „Beginning iPhone development: exploring the iPhone SDK”, 2009, Apress, ISBN-10: 1-4302-1626-3, ISBN-13: 978-1-4302-1626-1 [61] Wei-Meng Lee, „Beginning Android™ ApplicAtion development” , 2011, Wiley Publishing, Inc., ISBN: 978-1-118-01711-1 [62] Morrison, M., „BlackBerry® in a Snap”, 2005, Sams Publishing, 2005, ISBN: 0672-32-670-1 76 [63] Marks, E. A., Lozano B., „Executive’s Guide to Cloud Computing”, 2010, John Wiley & Sons, Inc., ISBN 978-0-470-52172-4 [64] Tanenbaum, A. S., „Computer Networks, Fourth Edition”, Prentice Hall, 2003, ISBN : 0-13-066102-3 [65] O’Leary, T. J., O’Leary, L. I., „Computing Essentials 2012 Complete Edition: Making It Work For You”, 2011, McGraw-Hill, ISBN 978-007-351680-6 [66] Bobak, A. F., „Electronic Business With Mobile Personal Digital Assistants (PDAs)”, 2001, Master Thesis in Computer Science, University of Zurich, Department of Information Technology [67] Taniar, D., „Encyclopedia of Mobile Computing and Commerce”, 2007, Information Science Reference (an imprint of Idea Group Inc.), ISBN 978-1-59904-003-5 [68] Sommerville, I., „Software engineering - 9th ed”, 2011, Pearson Education, Inc., ISBN-13: 978-0-13-703515-1, ISBN-10: 0-13703515-2 [69] Seurre, E., Savelli, P., Pietri, J.-P. „GPRS for Mobile Internet”, 2003, Artech House, ISBN:1 5805 3600 X [70] Stevenson, N., „Tablet PCs for Dummies”, 2003, Hungry Minds, ISBN: 0 7645 2647 2 [71] Hugh, J., „Integration and Automation of Manufacturing Systems (Robots, PLC, CNC)”, 2001, Hugh Jack [72] Crisp, J., „Microprocessors and Microcontrollers, Second edition”, 2004, Linacre House, Jordan Hill, Oxford, ISBN 0 7506 5989 0 [73] Els van de Kar, Verbraeck, A., „Designing Mobile Service Systems”, 2007, IOS Press, ISBN 978-1-58603-778-9 [74] Underdahl, B., „iPAQ™ For Dummies”, 2004, Wiley Publishing, Inc., ISBN: 0-7645-6769-1 [75] Baig, E. C., LeVitus, B., „iPhone™ For Dummies”, 2007, Wiley Publishing, Inc., ISBN: 978-0-470-17469-2 [76] Pogue, D., „iPhone: The Missing Manual”, 2008, O’Reilly Media, Inc., ISBN-13: 978-0-596-52167-7 [77] Mehta, N., „Mobile Web Development”, 2008, Packt Publishing, ISBN 978-1-847193-43-8 [78] Labrosse, J., Ganssle, J., „Embedded Software”, 2008, Elsevier Inc., ISBN: 978-0-7506-8583-2 [79] Kim, S., „Exploring Factors Influencing Personal Digital Assistant (PDA) Adoption”, 2003, University of Florida [80] Mace, M., „Segmenting Mobile Data: The Myth of the Smartphone Market”, 2007, Rubicon Consulting, Inc. [81] Chuanxiong Guo, Wang, H. J.,Wenwu Zhu „Smart-Phone Attacks and Defenses”, 2004, Microsoft Research 77 [82] Stevenson, N., „Tablet PCs for Dummies”, 2003, Hungry Minds, ISBN:0 7645 2647 2 [83] Sadun, E., „Taking Your iPhone to the Max”, 2008, Apress, ISBN-13: 978-1-4302-0516-6, ISBN-10: 1-4302-0516-4 [84] Klaus, D., „Technologies for the Wireless Future”, 2008, Wireless World Research Forum (WWRF), ISBN 978-0-470-99387-3 [85] G. Giannattasio, J. Erfanian, „A Guide to the Wireless Engineering Body of Knowledge (WEBOK)”, 2009, Institute of Electrical and Electronics Engineers, Inc., ISBN 978-0470-43366-9 [86] Rackley, S., „Wireless Networking Technology From Principles to Successful Implementation”, 2007, Linacre House, Jordan Hill, Oxford, ISBN 13: 978-0-7506-6788-3, ISBN 10: 0-7506-6788-5 [87] „Windows Mobile® 6 Professional New Features Guide”, 2007, Microsoft [88] „Choosing an Enterprise-Class Wireless Operating System: A Comparison of BlackBerry, iPhone and Windows Mobile ”, A J.Gold Associates White Paper, 2009, www.jgoldassociates.com [89] „Creating and Using Shared Variables in the LabVIEW PDA Module”, Developer Zone, National Instruments, www.ni.com [90] „Developing Wireless PDA Applications in LabVIEW”, Developer Zone, National Instruments, www.ni.com [91] „Performing Handheld Measurements using LabVIEW Mobile and NI USB Data Acquisition Devices”, Developer Zone, National Instruments, www.ni.com [92] „Implementation of the OPC UA Information Mode for Analyzers”, Version 1.00, 2009, descărcat de pe site-ul fundaţiei OPC http://www.opcfoundation.org 78 CURRICULUM VITAE DATE PERSONALE: Numele: SORA DANIEL Data şi locul naşterii: 10.07.1968, CURTEA DE ARGEŞ Starea civilă: căsătorit Adresa locului de muncă: BRAŞOV, str. Mihai Viteazul nr. 160 Adresa de domiciliu: BRAŞOV, str. Carpatilor nr. 21, Bl. 4, sc. A, Ap. 3 STUDII: 1986 –1989 Şcoala Militară de Ofiţeri Activi de Artilerie Antiaeriană şi Radiolocaţie “Leontin Sălăjan” Braşov 1992 – 1998 Universitatea „Transilvania” din Braşov, Facultatea de Electrotehnică, specializarea Electrotehnică Generală 1998 – 1999 Universitatea „Transilvania” din Braşov, Facultatea de Electrotehnică, Sisteme Informatizate Pentru Controlul Proceselor, Studii Aprofundate 2002 Centrul de Consultanţă şi Proiectare pentru Informatică Bucureşti Securitatea Retelelor de Calculatoare, Curs de specializare 2003 School for Peace Operations, Amersfoort, Netherlands - Observator militar ONU, Curs de specializare 2005 Centrul Regional de Management al Resurselor de Apărare, Braşov Managementul resurselor de apărare pentru specialişti, Curs postuniversitar de specializare 2006 Military Academy Vyskov, Czech Republic – British Military Advisory and Training Team - Managementul instruirii, Curs postuniversitar de specializare 2007 National Defense University Washington DC, SUA - Program avansat de management informaţional, Curs postuniversitar de specializare 2011 Departamentul Regional de Studii pentru Managementul Resurselor de Apărare, Braşov - Managementul resurselor de apărare pentru personalul de conducere, Curs postuniversitar de conducere ACTIVITATEA PROFESIONALĂ: 1989-1990 - Comandant pluton militari cu termen redus - Braşov 1990-1991 - Şef echipaj complex de rachete antiaeriene în Catedra de artilerie şi rachete antiaeriene - Braşov 1991-2005 - asistent universitar, instructor, instructor şef în catedra de Forţe Aeriene - Academia Forţelor Aeriene „Henri Coandă”, Braşov 2005-prezent – instructor şef, instructor superior, lector universitar, profesor militar, Departamentul Regional de Studii pentru Managementul Resurselor de Apărare, Braşov ACTIVITATEA ŞTIINŢIFICĂ: Articole publicate: 25 Alte lucrări: 2 Proiecte de cercetare: 2 LIMBI STRĂINE CUNOSCUTE: Engleza 79 CONTENT INTRODUCTION __________________________________________ 5 1. SMART MOBILE TERMINALS – PDAs AND SMARTPHONES___________________________________________ 7 1.1 PDA History ___________________________________________ 7 1.2 The main types of smart mobile terminals ____________________ 8 Palm PDAs _____________________________________________ 8 Pocket PCs _____________________________________________ 9 Smartphones ____________________________________________ 9 1.3 The main functions of the PDAs __________________________ 10 Standard PIM Functions __________________________________ 10 Syncronization with PCs __________________________________ 11 1.4 PDA structure _________________________________________ 12 The Microprocessor and the memory ________________________ 12 The Bateries ___________________________________________ 12 The LCD display________________________________________ 13 Data input methods ______________________________________ 13 1.5 The operating system ___________________________________ 14 1.6 Developing tools of the PDA operating systems ______________ 17 Windows Mobile________________________________________ 17 Palm OS ______________________________________________ 17 Symbian OS ___________________________________________ 18 1.7 Conclusions __________________________________________ 18 2. SMART MOBILE TERMINALS USED IN THE INDUSTRIAL APPLICATIONS CONTROL __________________ 2.1 Introduction to OPC ____________________________________ The classic architecture of the client applications _______________ The particular applications architecture ______________________ 2.2 The OPC Standard _____________________________________ The advantage of the OPC servers __________________________ The current status of the OPC Foundation standard and the OPC products ______________________________________________ OPC general architecture and components ____________________ The technology embedded in the OPC standard ________________ COM/ActiveX__________________________________________ 2.3 OPC Implementation ___________________________________ OPC Objects and interfaces________________________________ OPC events and alarms handling ___________________________ The access to the historical DATA __________________________ OPC – ideal for the high counting capacity applications _________ 80 20 20 22 23 23 24 25 26 26 28 28 28 30 30 31 2.4 OPC local and remote systems ____________________________ OPC local systems ______________________________________ OPC remote systems _____________________________________ 2.5 OPC perspectives ______________________________________ OPC united architecture (OPC UA) _________________________ Integrated models and services _____________________________ New concepts in OPC United Architecture____________________ OPC UA client applications _______________________________ OPC UA server applications ______________________________ Server – server interactions ________________________________ Sets of services _________________________________________ 2.6 Development of client OPC applications in LabVIEW _________ LabVIEW DataSocket____________________________________ LabVIEW DSC Module __________________________________ 2.7 Conclusions __________________________________________ 32 32 33 33 33 35 37 37 37 38 38 38 39 39 40 3. OPC CLIENTS FOR MOBILE TERMINALS_________________42 3.1 Introductions__________________________________________ 42 3.2 Network communication methods in LabVIEW ______________ 42 3.3 Client – Server network applications in LabVIEW ____________ 43 3.4 Real time data sharing using the Shared Variables_____________ 44 3.5 Shared variables used in the PDA virtual instruments __________ 48 3.6 Wireless PDA applications _______________________________ 48 The local control application of the experiment ________________ 54 The remote control application of the experiment_______________ 64 Protection mechanisms offered by the shared variables system ____ 68 3.7 Conclusions __________________________________________ 69 4. FINAL CONCLUSIONS ___________________________________70 Original contributions______________________________________ 70 ACRONYMS USED IN TEXT ________________________________72 REFERENCES_____________________________________________73 81 CURRICULUM VITAE PERSONAL DATA: Name: SORA DANIEL Birth date and place: 10.07.1968, CURTEA DE ARGEŞ Civil status: married Office address: BRAŞOV, str. Mihai Viteazul nr. 160 Home address: BRAŞOV, str. Carpatilor nr. 21, Bl. 4, sc. A, Ap. 3 STUDIES: 1986–1989 Missile and Anti-aircraft Military School “Leontin Sălăjan”, Braşov 1992–1998 Transilvania University of Braşov, Faculty of Electrical Engineering and Computer Science, General Electrotehnics Section 1998–1999 Transilvania University of Braşov, Faculty of Electrical Engineering and Computer Science, Information Systems for Process Control, Advanced Studies 2002 Projects and Consultancy Center for Informatics Bucureşti – Computer Networks Security, postgraduate course for experts 2003 School for Peace Operations, Amersfoort, Netherlands – UN Military Observer, postgraduate course 2005 Regional Centre for Defence Resources Management, Braşov - Defence Resources Management Course for experts, postgraduate course 2006 Military Academy Vyskov, Czech Republic – British Military Advisory and Training Team – Management of training, postgraduate course 2007 National Defense University Washington DC, SUA - Advanced Management Program, postgraduate course for experts 2011 Regional Department of Defense Resources Management Studies, Braşov Defense Resources Management Course for Senior Officials, postgraduate course PROFESSIONAL ACTIVITY: 1989-1990 – Anti-aircraft Artillery Platoon leader - Braşov 1990-1991 – Chief of crew anti-aircraft missiles, Antiaircraft Artillery and Missiles Faculty - Braşov 1991-2005 – Junior lecturer, instructor, chief instructor, Air Force Faculty - Air Force Academy „Henri Coandă”, Braşov from 2005 – chief instructor, superior instructor, lecturer, military professor, Regional Department of Defense Resources Management Studies, Braşov SCIENTIFIC ACTIVITY: Published scientific works: 25 Other works: 2 Research projects: 2 FOREIGN LANGUAGES: English 82