Upload
lgold
View
518
Download
4
Embed Size (px)
Citation preview
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
1Introducere
Tema proiectului de diplomă reprezintă dezvoltarea unei reţele de senzori icircn cadrul
unei aplicaţii de telemetrie Această reţea de senzori permite măsurarea unor mărimi prin
intermediul unor senzori şi comunicarea prin GPRS a acestor mărimi la distanţă către un
calculator central Icircn calculatorul central se prelucrează informaţiile recepţionate şi se afişează
icircntr-o interfaţă grafică prietenoasă
Dezvoltarea de sisteme de monitorizare si control automate este un segment in
continuă dezvoltare unde atat beneficiarii cacirct şi dezvoltatorii conlucrează pentru a obţine
rezultate notabile Rezultatele sunt obţinute datorită dezvoltarii semnificative a entităţilor
utilizate icircn cazul unor astfel se sisteme cum ar fi RTU-ul (Remote Terminal Unit) Acestă
componentă are un rol important el practic gestionanacircnd fluxul informaţional care se
vehiculează intre entităţile sistemului Pe fondul unui raport preţ-calitate scăzut funcţiile unui
RTU pot fi preluate cu usurinţă de modemuri inteligente care satisfac necesităţiile unui sistem
complex de monitorizare şi control extinzacircnd totdata arealul achiziţiei de date dincolo de
ceea ce era posibil prin conectarea folosind cabluri Uşurinta cu care acestea pot fi instalate
programate si intreţinute fac ca acestea să fi o soluţie viabilă pentru orice tip de sistem
mărind semnficativ aria de aplicabilitate
Datorită dezvoltarii tehnologice alerte sistemele industriale necesită imbunătăţiri
permanante şi la standarde ridicate pentru a satisface necesităţile unui sistem complex
Datorită complexităţii sistemelor funcţionalitatea acestora trebuie realizată pe toate nivelele
de funcţionare De aceea RTU-ul reprezintă una dintre cele mai importante componente ale
unui sistem automatizat de orice dimensiune RTU-ul este un dispozitiv instalat intr-o anumită
locaţie care permite colectarea codificarea intr-un format transmisibil a datelor achiziţionate
şi transmisia acestora la centru de dispecerizare Totodată acesta permite şi acţionarea unor
elemente de execuţie pe baza unor comenzi primite de la centrul de dispecerizare Acesta ca şi
componentă s-a dezvoltat permanent evoluand din punct de vedere al funcţionalităţii de la
simpla achiziţie de date la un produs elaborat care mai permite procesare de date respectiv
facilitatea de conectivitate intr-o reţea de senzori
Datorită caracteristilor avansate ale RTU-urilor se dezvolă tot mai mult sisteme
configurabile independente de locaţie şi integrabile icircn structuri complexe ceea ce permite
dezvoltarea unor sisteme ldquola cheierdquo Astfel soluţia existent la ora actuala satisface cerinţele
4
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
dezvoltatorilor de sisteme automatizate reducacircnd timpul de dezvoltare şi costurile necesare
Acesta soluţe se intregrează ideal icircn necesităţile actuale dorindu-se realizarea unor sisteme
simple si riguroase din punct de vedere hardware Fiind dotate cu tehnologie de ultimă
generaţie acestea permit integrarea icircn reţele de senzori bazate pe tehnologii radio (wireless)
de comunicaţie respectiv tehnologii clasice bazate pe interfeţe seriale prin fir (RS-232485)
11 Contextul temei
RTU-ul este utilizat cel mai des in sisteme de tip SCADA (Supervisory Control and
Data Acquisition) Aceste sisteme permit operatorilor facilităţi de monitorizare şi control a
diferite tipuri de proces Una dintre cele mai mari probleme icircn realizarea unor astfel de
sisteme constă icircn identificarea celor mai bune soluţii de preluare a datelor caracteristice unui
proces Sistemele per ansamblu sunt ample implicacircnd funcţionalităţi in cascada cu un grad
inalt de interdependenţă Tocmai din acestă cauză entităţile care fac legatura dintre
senzoristica din instalaţia de proces şi unitatea programabila (Microcontroler Automat PC)
care se ocupă cu procesarea datelor achiziţionate sunt foarte importante
Pentru a sigura acestă facilitate se utilizeaza RTU-uri in functie de necesităţile sistemului si
cerintele beneficiarului RTU-ul actual este utilizat pentru interfaţarea unităţilor programabile
cu senzoristica de la nivelul instalaţiei de proces Comunicaţia dintre aceste entităţi se
realizează cu ajutorul diferitelor tipuri de protocoale de comunicaţie icircn funcţie de
specificaţiile tehnice ale acestora Caracteristile unei unităţi RTU sunt date de tipul unităţii de
procesare şi de tipul de comunicaţie suportat de către modem Configurarea reţelei hard a
instalaţiei de proces este dată icircn special de caracteristile modemului corespunzator RTU-ului
utilizat Icircn cadrul acestor sisteme de control si monitorizare RTU-ul actual asigură
urmatoarele functionalitati
achizitioneaza date de la senzorii din instalaţia de proces
stocheaza temporar şi periodic datele achiziţionate
converteşte valorile achiziţionate intr-un format specific
transmite către nivelele superioare datele stocate icircn functie de cerere şi
actionează stările diferitelor elemente de execuţie icircn funcţie de necestăţtile
instalaţiei proces
Caracteristicile RTU-ului sunt determinante icircn ceea ce priveşte numărul de senzori
interfaţaţi sau tipul lor Schema unui astfel de modul este prezentată in figura de mai jos
5
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 11 Structura hardware a unui RTU actual
Entitatea de tip RTU este un sistem de sine statator care trebuie sa funcţioneze
permanent cat mai eficient fară un consum mare de resurse de aceea există mai multe tipuri
cum ar fi sisteme autonome minimale mici medii si mari Acestea diferă prin modul de
gestionare a resurselor proprii Strategiile de utilizare a resurselor proprii eficient şi economic
fac ca aceste sisteme de sine stătătoare să fie limitate la funcţiile de bază caracteristice unui
RTU
Odata cu dezvoltarea sistemelor intregate şi microelectronicii necesităţile de
imbunătăţire a funcţionalităţii RTU-urilor a devenit tot mai stringentă din punctul de vedere al
dezvoltatorilor de sisteme de achizitie monitorizare şi control Acestă dezvoltare se reflecta
icircn special pe partea de funcţionalitate obţinacircndu-se un comportament independent de sine
stătător care permite procesări multiple respectiv analize de date achiziţionate fară a influenţa
funcţiile de bază ale unui RTU Datorită dezvoltării modulelor specifice unui RTU s-a
cacircştigat atat din punct de vedere hardware cacirct şi software La nivel software tot mai multe
RTU-uri pot fi programate icircn diferite medii de programare cum ar fi CC++ Pyton Step 7
sa ceea ce face ca aceste sisteme sa fie deschise flexibile si reprogramabile devenind
accesibile oricarui tip de utilizator Din punct de vedere hardware prin diversificarea
modurilor de interfaţare cu diferiţi senzori şi actuatori sau unităţi programabile şi prin
imbunătăţirea unităţilor de procesare se obţine o eficientizare a structurii hard a oricarui tip de
sistem automat Totodată aceasta aduce imbunătăţiri a functionalităţii sistemului reuşind sa
se ajungă la o modularizare a functionalităţii o creştere a randamentului de funcţionare a
instalaţiei de proces şi obţinerea unei aplicaţii SCADA modernă scalabilă si interactivă
6
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
12 Soluţia propusă
Modemul inteligent (figura12) prin caracteristicile sale avansate (memorie si procesor
propriu) poate devenii in orice moment un RTU Acest lucru duce la imbunatatirea structurii
hardware a unui sistem automatizat reducand semnificativ costurile si dimensiunile
corespunzatoare ale unui astfel de sistem
Figura 12 Modem inteligent
In funcţie de modul de comunicaţie şi de structura respectiv accesbilitatea sistemului
care se doreşte a fi monitorizat şi controlat la ora actuală pe piaţă se gasec mai multe soluţii
Icircn funcţie de specificaţii de sistem se pot alege mai multe solutii de aceea etapa de proiectare
trebuie analizata cu atentie şi gasită o soluţie optimă
La ora actuală telefonia mobilă joacă un rol important in transmisia de date oferind un
suport avantajos pentru dezvoltarea unor sisteme automate De aceea multe modemuri
existente au suport GSM prin care se permite interacţiunea cu entităţile existente icircn cadrul
unei instalatii de proces
Folosind aceste informaţii imi propun realizarea unei aplicaţii de telemetrie care sa
poată prelua informaţii de la diferiţi senzori prin intermediul unor medemuri inteligente ( de
genul celor descrieşi mai sus ) să le transmită prin intermediul reţelei de GPRS catre un
calculator central ( dispecer ) şi aici o iterfaţă grafică implementată in LabWindowsCVI să
permită vizualizarea informaţiilor recepţionate O schemă general a aplicaţiei este
următoarea
7
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 13
8
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
2Fundamentare teoretică
21 Noţiuni de teoria măsurătorilor
Metrologia este un domeniu al tehnicii cu rădăcini icircn spaţiul Fizicii si ramificaţii icircn
toate sectoarele activităţii practice omeneşti (printre care şi cel al Electronicii) care se ocupa
cu tehnica masurărilor adică cu mijloacele şi metodele pentru determinarea cantitativă ndash
valorică a marimilor fizice Metrologia ndash ca disciplină de sine stătătoare ndash se referă la icircntregul
ansamblu al fenomenelor fizice pe care le studiaza dintr-un punct de vedere propriu şi anume
acela al masurării care este ndash icircn esenţă ndash o comparare experimentală de mărimi ea
stabilind standardele unităţilor de masură şi ale etaloanelor de referinţă pentru aceste unităţi
procedeele de comparare a mărimilor cu etaloanele şi caracteristicile de performanţă (ca
interval game rezoluţie sensibilitate fidelitate dinamică mobilitate precizie etc care ndash icircn
general ndash se numesc caracteristici metrologice) Aplicaţiile metrologiei adică efectuarea
practica a masurării diverselor specii de mărimi caracteristice unor anume domenii constituie
ramuri ale disciplinei acelor domenii aşa sunt măsurările electrice măsurarile electronice
măsurările acustice controlul dimensional fotometria sistemele pentru măsurări automate
măsurările geometrice măsurările hidraulice si multe altele
211 Conceptul de măsurare
Măsurarea este o activitate experimentală de tip informatic al carui scop este
obţinerea unor date cantitative cu privire la proprietăţile unui obiect sau ndash mai general ndash ale
unui sistem şi redarea lor icircntr-o forma potrivită pentru observator (utilizator) Semnificaţia
(interpretarea) pe care observatorul-utilizator o atribuie acestor date cantitative prin
intermediul convenţiilor folosite pentru reprezentarea lor constituie informaţia care este
necesară icircn procesul continuu de cunoaştere comunicare şi conducere (decizie) Prin
identificarea proceselor şi modelarea lor (adică prin reprezentarea matematică a relaţiilor din
sistemul analizat) se stabilesc anumite proprietăţi (elemente specifice) diferite calitativ pe
care le putem denumi mărimi (sau specii de mărimi ndash pentru a le preciza natura lor diferită) si
anumite corelaţii icircntre ele descrise matematic prin legi ndash dacă sunt deduse experimental sau
9
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
prin teoreme formule etc ndash daca sunt stabilite deductiv din legi Icircn acest sens după cum se
ştie mărimile (speciile de mărimi) se diferenţiază (clasifică) icircn mărimi primitive şi mărimi
derivate Cunoaşterea sistemului (stărilor sistemului icircn evoluţia lui) icircn vederea elaborarii
deciziilor de conducere a sistemului pe o traiectorie optima sau una anume necesară implică
evaluarea cantitativă a mărimilor specifice sistemului şi interpretarea lor informaţionala
Acest lucru nu se poate realiza decacirct experimental (ldquope viurdquo si icircn ldquotimp realrdquo) prin măsurări
ceea ce explică rolul cognitiv de comunicare si decizional (mai cuprinzator informaţional) al
măsurărilor
Icircn acest context mai trebuie precizat ca utilizatorul (observatorul) ndash adică
ldquobeneficiarulrdquo icircn activitatea de măsurare ndash poate fi uman sau de tip maşină (icircn cazul
sistemelor automate) Determinarea cantitativă prin măsurare a speciilor de mărimi diferite
calitativ nu se poate realiza decacirct icircn raport cu mărimi de aceeaşi specie (aceeaşi natura fizica)
alese ca unităţi cantitative numite unităţi de măsură fixate icircn mod convenţional dar icircn cadrul
unui sistem de unitaţi de măsură coerent
Se poate acum defini mai bine conceptul de masurare Astfel din punctul de vedere
metrologic măsurarea ldquoeste operaţia prin care se stabileşte pe cale experimentală raportul
numeric icircntre mărimea de măsurat si o valoare (ldquocantitaterdquo) oarecare a acesteia luată ca
unitate de măsurărdquo
Din punctul de vedere tehnic ldquomăsurarea este operaţia experimentală prin care se
determină cu ajutorul unor mijloace de măsurat valoarea numerică a unei mărimi (numită
masurand) icircn raport cu o unitate de măsură datărdquo din aceeasi specie cu masurandul
Din punctul de vedere al modelării masurarea este o operaţie prin care se stabileşte o
aplicaţie de la o specie de mărimi X la mulţimea numerelor reale R sau ndash mai rar ndash R2 (altfel
spus se stabileşte o relaţie icircntre valoarea unei marimi X si un numar real Xm R)
212 Procesul de masurare
Ansamblul operaţiilor experimentale care se execută icircn scopul obţinerii rezultatului
măsurării sub forma unei percepţii realizată de observatorul-utilizator (operatorul ce
efectuează măsurarea) constituie procesul de măsurare Orice proces de măsurare are
urmatoarele componente principale
- mărimea de măsurat (măsurandul)
- metoda de măsurare
- mijlocul (aparatul) de măsurat
10
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
- măsura (etalonul)
- operatorul (observatorul) şi
- prelucrarea ndash tratarea datelor
care ndash icircn funcţie de domeniul precizia şi scopul măsurării ndash au o pondere şi o importanţă
relativă diferită Această structură a procesului de măsurare diversitatea mărimilor de
masurat multitudinea tehnicilor pentru măsurare (mijloace şi metode) care să satisfacă
exigenţele operatorului ndash beneficiar al măsurarii (exigenţe destul de nuanţate icircn funcţie de
scopul măsurării viteza de măsurare costul măsurarii condiţiile ambientale etc) conduc la o
mare varietate a măsurărilor icircn general
Un exemplu particular al acestei mari varietaţi o constituie icircnseşi măsurarile
electronice (care au ca măsurand specii diverse cum sunt mărimile de stare ale cacircmpului
electric şi magnetic mărimile electrice de circuit parametrii de circuit caracteristici de
transfer frecvenţe timp defazaje forme de undă neliniarităţi distorsiuni zgomote cu
regimuri şi o dinamică ample cu influenţe de mediu şi cuplaje adeseori aleatorii etc)
213 Erori de măsurare
Icircn practică se constată că rezultatul unei măsurări nu depinde numai de valoarea
măsurandului el putacircnd fi influenţat de o serie de factori de natura obiectivă (mijloc de
măsurare metoda de măsurare factori exteriori procesului de măsurare etc) sau de natura
subiectivă Pentru caracterizarea rezultatelor obtinuţe icircn procesul de măsurare se definesc
urmatoarele valori
Valoarea adevarată (reala) Xa a unei mărimi este valoarea exacta a mărimii
respective icircn condiţiile existenţe la un moment dat De obicei valoarea adevarată a unei
mărimi nu poate fi determinată experimental ea icircnlocuindu-se cu o valoare convenţional
adevarată X care se obţine cu ajutorul unor mijloace de măsurare deosebit de precise practic
se consideră ca diferenţa dintre valoarea adevarată si valoarea convenţional adevarată este
neglijabilă şi deci cele două noţiuni sunt echivalente
Rezultatul unei măsurări individuale x care se obţine cu ajutorul unor mijloace de
măsurare obisnuite reprezintă valoarea măsurată Abaterea valorii măsurate faţă de valoarea
adevarată a măsurandului constituie eroarea de măsurare
Intervalul icircn care se estimează cu o anumita probabilitate numită nivel de icircncredere
ca se afla valoarea adevarată a măsurandului se numeste incertitudine de măsurare
11
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
incertitudinea de măsurare estimează limitele erorilor de măsurare Pentru o estimare
obiectivă este necesar ca icircmpreună cu rezultatul măsurarii să se specifice atacirct erorile cacirct şi
incertitudinea de măsurare Icircn figura 21 sunt reprezentate schematic noţiunile prezentate
anterior
Figura 21
Fig 11 Explicativă privind valoarea adevarată valoarea măsurată
valoarea convenţional adevarată eroarea de măsurare şi incertitudinea
de măsurare
214Clasificarea erorilor de măsură
Deoarece cauzele erorilor de măsurare sunt numeroase există şi multe criteri de
clasificare a lor Dupa caracterul lor erorile de măsurare pot fi grupate conform schemei
următoare
Figura 22
12
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
215 Etaloane
Etalonul este un sistem fizic care constituie un mijloc de măsurare (măsura instrument
sau aparat de măsurat) ce serveste la păstrarea şi reproducerea unităţilor de măsura cu
precizia metrologică corespunzatoare stadiului la care s-au dezvoltat tehnicile de măsurare Icircn
afara acestor două roluri prin care se ldquodefineşterdquo o unitate de măsura etaloanele mai sunt
utilizate icircn operaţiile de calibrare şi icircn icircnsuşi procesul de măsurare (de icircnaltă precizie) ca
elemente de referinţă precum şi icircn construcţia unor aparate (dispozitive) utilizate icircn alte
scopuri decacirct mşsurarea propriu-zisa (ca de exemplu dispozitive de automatizare
stabilizatoare electronice generatoare de semnal etc)
Calibrarea icircnseamnă ndash icircn metrologie ndash compararea unui aparat de măsurat cu un
etalon icircn scopul gradării sau ajustării verificării sau etalonării aparatului de masurat
Elementul de referinţă este un etalon care asigură (ldquofurnizeazardquo) o mărime fizică anume cu
o valoare bine cunoscută (cu o precizie metrologică corespunzatoare scopului urmarit)
Un etalon trebuie să fie invariabil icircn timp şi icircn spaţiu să poata fi folosit usor icircn tehnică
şi să poată fi reconstituit oricacircnd Unicitatea şi conformitatea măsurărilor icircn orice loc şi la
orice moment impun realizarea unui sistem de etaloane care să
asigure
- generarea principalelor unităti de măsură icircn conformitate cu definiţiile lor din SI
(adică ldquomaterializarea ldquo definiţiilor prin experimente adecvate)
- menţinerea (conservarea) acestor unităţi de măsură constante icircn timp icircn toate
laboratoarele metrologice pe plan mondial
- corelarea icircntre ele a unităţilor de măsură trecerea la alte unitati derivate (etaloane de
derivare) şi extinderea limitelor de măsurare cu precizia necesară cum ar fi trecerea la
multipli şi submultipli ai unităţilor de măsură (etaloane de raport)
Aceste trei operaţii fundamentale icircn activitatea metrologică se efectuează icircn
mod corespunzator cu urmatoarele trei categorii de etaloane
- etaloane de definiţie (adica etaloanele prin care se generează principalele unităţi de
măsură şi icircn principal cele fundamentale aşa cum este ndash de exemplu ndash determinarea absolută
a amperului cu ajutorul balanţei de curent)
- etaloane de conservare (adică etaloanele de menţinere a unităţii de măsură cu o mare
stabilitate icircn timp şi faţă de influenţele exterioare de mediu)
- etaloanele de transfer (adica cele care asigura etalonarea tuturor tipurilor
13
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
de aparate de masurat icircn intervale largi de valori ale masurandului pentru marimi constante
sau variabile icircn timp) asa cum sunt etaloanele de raport etaloanele de derivare si etaloanele
de transfer (curent continuu ndash curent alternativ) prin compararea efectelor (termice
electrodinamice etc) ale semnalelor de curent sau tensiune produse asupra unui acelaşi
element sensibil
22 Conceptul de M2M
M2M este o abreviere de la Machine-to-Machine deşi tot mai des se foloseşte şi
pentru identificarea tehnologiilor Man-to-Machine Machine-to-Man Machine-to-Mobile sau
Mobile-to-Machine Pe scurt este vorba de un serviciu ce permite comunicarea dintre
echipamentele aflate la distanţă şi aplicaţiile la care sunt conectate De fapt M2M este o
evoluţie comercială a tradiţionalelor sisteme de control al echipamentelor din domeniul
industrial soluţie aplicată cu succes pentru prima dată de NASA Adaptată nevoilor
companiilor (un rol important l-a jucat compania France Telecom) M2M permite companiilor
sa administreze mai uşor echipamentele aflate la distanţă si să le integreze cu procesele
interne
Zona soluţiilor M2M este cotată ca fiind una dintre cele mai promiţătoare in
următorii ani ca urmare a creşterii nevoii de automatizare a proceselor şi a posibilităţii de a
lua decizii intr-un timp cat mai scurt posibil ceea ce va genera proiecte majore Aplicaţiile
M2M permit prin monitorizarea si controlul maşinilor şi proceselor de la distanţă reducerea
costurilor optimizarea proceselor si imbunătăţirea nivelului serviciilor oferite clienţilor
permitand economii de timp şi de personal
14
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
23 Limbajul Python
Icircn cadrul unei instalaţii de telemetrie modemurile deţin memorie şi processor propriu
motiv pentru care se numesc ldquointeligenterdquo Pe lacircngă memorie şi processor aceste modemuri
inteligente au şi un interpretor al unui limbaj de programare de nivel icircnalt Icircn cazul
medemurilor alese de mine acest limbaj este Python
Python este un limbaj de programare dinamic orientat pe obiect care poate fi folosit
pentru mai multe tipuri de dezvoltarea software Oferă un puternic suport pentru integrarea cu
diferite instrumente folosind librării standard de extensie şi poate fi invăţat in cacircteva zile
231 Tipuri de date
Sunt 3 grupuri de tipuri de date in Python
Scalari ndash care au sutipurile intreg intreg lung si sir de caractere
i = 1 li = 9999999999L s = Hello
Secvenţe care conţin un anumit număr de obiecte arbitrare intr-o ordine definită
L = [1 5 3 9 14]
Liste asociative care permit accesul la valori bazate pe chei Aceste chei pot fi arbitrare
dar sunt obiecte permanente De exemplu
D = b Python a 5 print D[a]
Afisează 5
Spre deosebire de Pascal C C++ sau Java Python este un limbaj tastat dinamic Astfel
următoarea secvenţă de cod este perfect valabilă icircn Python
a = 7 7 (integer)
a = str(2a) + bytes 7 bytes (string)
15
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Icircn Python variabilele nu sunt declarate icircn script ele apar doar atunci cand sunt folosite
232 Operatori
Icircn Python există următorii operatori
Operatori aritmetici
+ - ~ ltlt gtgt amp ^ |
Operatori relaţionali şi logici
is in lt lt= gt gt= == = not and or
Operatori de asignare
= += -= = = = = ltlt= gtgt= amp= ^= |=
Alţi operatori
( ) [ ] [] `` lambda
233 Comenzi compuse
Comenzile care aparţin aceluiaşi grup logic sunt deplasate spre dreapta cu acelaş
număr de spaţii albe
if a gt 0
b = 1
c = 2
De obicei fiecare comandă icircncepe pe o linie nouă
16
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
O instrucţiune se poate continua pe racircndul următor prin plasarea caracterului backslash
la sfacircrsitul randului Acest lucru nu este necesar dacă există paranteze deschise
my_list = [1
[abc 2]
-3+6j]
print my_list
234 Execuţii condiţionale
Python foloseşte if elif (nu elsif sau elseif) si else pentru a indica execuţia condiţională a
unei instrucţiuni
De exemplu
if a gt b
print a is greater than b
elif a lt b
print a is lower than b
else
print a equals b
Se poate folosi si interval prescurtate de testare
if 2 lt= a lt= 7
print a is in the interval [2 7]
235 Bucle
Buclele in Python sunt definite prin cuvintele cheie for şi while
Următorul exemplu foloseşte o buclă while pentru a colecta toate numerele intregi
cuprinse intre 0 si 99 intr-o listăacirc
numbers = [ ]
i = 0
while i lt 100
17
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
numbersappend(i)
i = i + 1
O buclă similar for arată in felul următor
numbers = [ ]
for i in range(100)
numbersappend(i)
Icircn loc de buclele explicite prezentate mai sus se poate folosi şi bucle implicite după
cum urmează
numbers = range(100)
range(100) generează o listă cu toate numerele intregi de la 0 la 100
24 General packet radio service(GPRS)
Comunicaţia intre modemuri ( RTU-uri ) şi dispecer se poate face prin mai mlte
mediu de transmisie
- Cablu telephonic
- Radio
- GSMGPRS
- Fibră Optică
Opţiunea pentru care am optat icircn partea de comunicaţie este GSMGPRS deoarece
asigură o cumunicaţie sigură şi oferă simplitate pentru priectant
GPRS introduce servicii de transport cu comutaţie de pachete pentru debite de la 14
kbps la maximum 170 kbps Practic GPRS este o reţea cu comutaţie de pachete de sine
stătătoare care se daugă la reţeaua GSM GPRS interoperează cu infrastructura GSM la
nivelul subsistemului staţiilor de bază BSS şi al bazelor de date din subsistemul reţea NSS
(HLR VLR AUC) GPRS preia traficul de date iar GSM traficul de voce care rămacircne
comutat prin MSC
Datele sunt transmise prin GPRS icircn pachete de lungimi fixe Fiecare pachet conţine
adresa destinaţie pentru a putea fi rutat de nodurile GPRS Modificarea pe interfaţa radio e
18
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
dată de introducerea codării adaptive a canalului Aceasta icircnseamnă că protecţia datelor
variază icircn timp icircn funcţie de starea canalului radio GPRS poate utiliza pentru o conexiune
de date de la fracţiuni de canale de trafic pacircnă la maximum 8 sloturi temporale (adică tot
cadrul TDMA) icircn funcţie de resursele disponibile
Capacitatea alocată unei conexiuni va varia icircn funcţie de icircncărcarea cu trafic de pe
frecvenţa respectivă precum şi de tipul traficului (vocedate) Este important că utilizacircnd
comutaţia de pachete o transmisie de date nu ocupă resursele reţelei decacirct atunci cacircnd sunt
date de transmis Cacircnd nu există pachete de transmis resursele de pe interfaţa radio pot fi
utilizate pentru alte transmisii de date sau pentru trafic cu comutaţie de circuite
GPRS are o reţea nucleu proprie formată prin interconectarea serverelor care
gestionează transmisia de pachete numite noduri suport GPRS (GSN- GPRS Suport Node)
Aceasta reţea operează icircn paralel cu subsistemul reţea şi comutaţie (NSS) al GSM care va
gestiona icircn continuare transmisia cu comutaţie de circuite
241 Caracteristicile sistemului GPRS
GPRS este un serviciu specificat icircn faza 2+ de standardizare a GSM El este oferit prin
intermediul unei infrastructuri numită şi sistem sau reţea GPRS ce interoperează cu
infrastructura bdquoclasicărdquo GSM
GPRS se icircncadrează icircn orientarea generală a ETSI de a asigura prin aza 2+ o platformă
ce va putea fi utilizată ulterior icircn reţele de generaţia a treia Astfel el este onsiderat
actualmente soluţia de bază pentru transmiterea de date icircn UMTS Fiind un standard SM
GPRS păstrează evident şi compatibilitatea cu sistemul părinte fiind practic o extensie a
acestuia pentru transmisii de date la debite mai mari GPRS reprezintă la ora actuală cel mai
reprezentativ sistem de generaţie intermediară (25G)
Dacă HSCSD ar putea fi considerat o ajustare fină a GSM GPRS reprezintă cu
siguranţă un salt tehnologic semnificativ deoarece marchează trecerea de la comutaţia de
circuite la cea de pachete Schimbarea tipului de comutaţie se referă icircn acest moment (atacirct la
25G cacirct şi icircn 3G) doar la transmiterea datelor vocea rămacircnacircnd icircn continuare comutată prin
MSC Datorită eternei insuficienţe a resurselor radio este probabil ca icircntr-o fază nu prea
icircndepărtată de dezvoltare a UMTS şi de ce nu chiar a GPRS să fie utilizată comutaţia de
pachete şi pentru serviciile de timp real vocale sau non-vocale
Icircn concluzie GPRS reprezintă o infrastructura ce permite transmiterea datelor pe baza
comutaţiei de pachete icircntr-o reţea GSM
19
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Pentru a putea oferi debite de date mai ridicate icircn GPRS se urmăreşte utilizarea cacirct
mai eficientă a resurselor radio Pentru aceasta se preia de la HSCSD ideea operării multislot
posibilitatea de a proteja mai puţin informaţia utilă pe interfaţa radio şi alocarea asimetrică
uplink downlink Icircn ciuda acestor asemănări icircnlocuirea comutaţiei de circuite cu cea de
pachete face din GPRS un sistem complet diferit de HSCSD Aceasta atacirct din punct de vedere
al utilizatorului care constată un timp de conectare practic nul şi rate de transfer mai bune
dar şi din punct de vedere al operatorului care efectuează o investiţie incomparabil mai mare
răsplătită printr-o mai eficientă utilizare a interfeţei radio cu tot ceea ce rezultă de aici (mai
mulţi clienţi mai multe servicii aplicaţii diverse)
Rezumacircnd icircn GPRS este implementat un set de soluţii tehnologice ce au ca scop
principal creşterea eficienţei utilizării interfeţei radio Aceasta derivă atacirct din experienţa
sistemelor anterioare cacirct şi mai ales din operarea icircn modul pachet a datelor ce se transmit
Soluţiile utilizate sunt
creşterea ratei de transmisie a datelor prin reducerea codării canalului (sunt definite
şi pot
fi utilizate 4 scheme de codare 905kbps 134 kbps 156 kbps 214kbps)
creşterea ratei de transmisie prin operare multislot ( pacircnă la 8 sloturi temporale per
utilizator)
creşterea eficienţei utilizării resurselor radio prin multiplexarea mai multor
utilizatori pe acelaşi canal fizic (posibila datorită transmisiei de pachete maximum 8
utilizatori pe slot temporal)
creşterea eficienţei utilizării resurselor radio prin alocare asimetrică uplinkdownlink
creşterea eficienţei utilizării resurselor radio prin alocarea dinamică a canalelor icircntre
servicii comutate icircn mod circuit respectiv pachet
Cacircnd un icircntreg cadru TDMA este alocat unui utilizator cu schema de protecţie minimă
(practic fără corecţie de erori) rezultă rata utilă instantanee maximă posibilă icircn GPRS
(8x214 kbps=1712 kbps)
242 Comutaţie de circuite şi comutaţie de pachete
20
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comutaţia este o tehnică esenţială icircn reţelele de comunicaţii Fără ea fiecare
echipament terminal ar trebui conectat printr-o cale directă cu fir sau fără la toate celelalte
echipamente terminale din reţea Principalele metode de comutaţie sunt
comutaţia de circuite
comutaţia de mesaje
comutaţia de pachete
Comutaţia de circuite
Aceasta presupune realizarea icircntre emiţător şi receptor a unei căi fizice de comutaţie
dedicate numită circuit Icircntreaga comunicaţie se desfăşoară icircn trei etape
stabilirea conexiunii (sau deschiderea circuitului)
transferul de informaţii
eliberarea conexiunii (circuitului)
Este de remarcat faptul că stabilitatea fizică a caii de comunicaţie are loc icircnainte de
icircnceperea transmisiunii propriu-zise Aceasta poate conduce la durate semnificative ale
timpului de conectare
Un dezavantaj notoriu al acestei tehnici este alocarea fixă a resurselor de comunicaţie
necesare pe durata conexiunii indiferent dacă la un moment sau altul mediul de transmisie
este folosit total parţial sau deloc
Pe de altă parte avantajele comutaţiei de circuite provin tocmai din această alocare fixă de
resurse care permite
asigurarea unei icircntacircrzieri constante şi minime
garantarea unui debit util corespunzător mediului de comunicaţie şi serviciului utilizat
Toate acestea facilitează oferirea serviciilor de timp real (telefonie videofonie alte
transmisiuni video) Exemplul tipic de reţea cu comutaţie de circuite este reţea telefonică
publică comutată (PSTN) Reţeaua GSM este de asemenea o reţea cu comutaţie de circuite
Referindu-ne strict la interfaţa radio a reţelelor fără fir etapa de stabilire a conexiunii
presupune alocarea unui canal radio (sau a mai multora icircn cazul HSCSD) unei staţii mobile
(MS) Acest canal rămacircne icircn posesia terminalului mobil pe toata durata conexiunii chiar dacă
transferul de date este discontinuu (icircn rafale) sau chiar icircncetează cu desăvacircrşire (de exemplu
21
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cacircnd utilizatorul citeşte cu atenţie cinci minute o pagină WEB după care lămurit pe deplin
icircntrerupe legătura) Ca o particularizare binecunoscută a reţelelor cu comutaţie de circuite
trebuie menţionat că utilizatorul trebuie să plătească pentru icircntreaga durată a conexiunii chiar
dacă a fost risipitor şi nu a folosit resursa ce i-a fost alocată
Comutaţia de mesaje
Este o tehnică ce nu stabileşte apriori o cale de transmisiune icircntre emiţător şi receptor
Informaţia ce urmează a fi transmisă formează o entitate bine precizată numita mesaj
Mesajele sunt complet independente unele faţă de altele şi pot avea lungimi variabile deşi
structura (formatul) lor poate fi prestabilit Emiţătorul trebuie sa ataşeze mesajului adresa
destinatarului decizia cu privire la ruta pe care o va urma mesajul fiind de competenţa
fiecărui comutator (router) prin care trece Fiecare comutator va memora mesajul după care icircl
va transmite pe ieşirea selectată de el Principala problemă a comutaţiei de mesaje este dată de
dimensiunea mare a mesajelor Din această cauză comutatoarele de mesaje au nevoie de o
capacitate de stocare uriaşă iar icircntacircrzierea icircn noduri poate deveni inacceptabilă din cauza
monopolizării ieşirilor de către mesajele lungi Exemplul tipic de reţea cu comutaţie de
mesaje este reţeaua telex
Comutaţia de pachete
Rezolvă o mare parte din dezavantajele comutaţiei de mesaje stabilind o lungime
maximă a entităţii informaţionale care circulă prin reţea numită pachet Pachetele sunt icircn
general rezultatul divizării mesajelor icircn blocuri de lungime mică Datorită acestui fapt spre
deosebire de mesaje pachetele nu sunt independente O recepţie corespunzătoare implică
refacerea mesajului prin ordonarea pachetelor după logica folosită la emisie Pentru aceasta
exista două posibilităţi apropiate conceptual de comutaţia de mesaje respectiv de comutaţia
de circuite
A Comutaţia de pachete fără conexiune (sau neorientată pe conexiune)
Icircn cazul comutaţiei de pachete fără conexiune pachetele (numite şi datagrame) se transmit
independent icircn cel mai pur spirit al comutaţiei de mesaje urmacircnd rute posibil diferite
Sosirea lor la destinaţie poate avea loc icircntr-o ordine aleatoare ceea ce necesită reordonarea lor
de către receptor Refacerea succesiunii corecte a pachetelor se bazează pe informaţia
22
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
suplimentară din fiecare pachet privitoare la mesajul din care face parte şi locul pe care icircl
ocupa icircn el Exemplul tipic de reţea care utilizează comutaţia de pachete este internetul
BComutaţia de pachete orientată pe conexiune (sau circuit virtual)
Icircn cazul comutaţiei de pachete orientată pe conexiune (sau circuit virtual) comunicarea
icircntre terminale presupune stabilirea unei căi anume pe care va circula fluxul informaţional
dintre acestea similar cu comutaţia de circuite Spre deosebire de aceasta nu este vorba de
dedicarea unui circuit fizic comunicării respective ci de configurarea unui circuit logic
numit circuit virtual Aceasta icircnseamnă că toate pachetele vor urma aceeaşi cale prin reţea
fără a dedica suportul fizic comunicaţiei respective Pachetele altor utilizatori vor putea folosi
foarte bine segmente din calea respectivă sau chiar icircntreaga cale La stabilirea circuitului
virtual fiecare comutator (router) trebuie să memoreze icircn tabela de dirijare care este
succesorul său icircn respectivul circuit virtual Astfel spre deosebire de comutaţia de pachete
fără conexiune după stabilirea circuitului virtual comutatorul nu mai trebuie să decidă calea
fiecărui pachet Avacircnd memorat nodul succesor icircn fiecare dintre circuitele virtuale icircn care este
implicat comutatorul va identifica circuitul asociat pachetului şi icircl va transmite pe acesta pe
linia de ieşire corespunzătoare Tehnica circuitului virtual garantează livrarea icircn ordine a
pachetelor la destinaţie Exemple marcante de reţele ce utilizează comutaţia de pachete de tip
circuit virtual sunt X25 şi ATM
Marele avantaj al comutaţiei de pachete este utilizarea eficientă a resurselor de
transmisiune Deoarece acestea nu sunt dedicate ele pot fi folosite după necesităţi pentru a
transmite pachete provenind de la utilizatori diferiţi Din acest motiv comutaţia de pachete
este extrem de avantajoasă icircn cazul unei infrastructuri cu resurse de transmisiune limitate
cum este şi cazul reţelelor fără fir
Un dezavantaj important al comutaţiei de pachete este dat de gestionarea comutatoarelor
(routerelor) icircn cazul unui trafic crescut la intrare Pierderea pachetelor garantarea unei
icircntacircrzieri maxime şi a unui debit utilizator constant sunt problemele spinoase ale comutaţiei
de pachete Ele reprezintă obstacole icircn special icircn calea oferirii serviciilor de timp real cum ar
fi telefonia
Icircn schimb icircn cazul transmisiilor de date avantajul bunei administrări a resurselor
prevalează De exemplu icircn cazul particular al interfeţei radio GSM cacircnd o staţie mobilă (MS)
generează un pachet de date reţeaua icircl va transmite pe un canal radio disponibil icircn acel
moment Următorul pachet de pe acel canal poate să aparţină aceleiaşi MS dacă are ceva de
23
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
transmis sau dacă nu alteia Icircn acest mod atacircta timp cacirct cineva are ceva de transmis
canalele radio nu sunt blocate inutil Lucrul icircn mod pachet are o eficienţă cu totul deosebită icircn
cazul unui trafic de date icircn rafale (data bursts)
Aşadar pentru un sistem GSM bazat esenţialmente pe comutaţia de circuite este
extrem de utilă alocarea resurselor neutilizate de către serviciile vocale pentru servicii mai
puţin prioritare Atacirct HSCSD cacirct şi GPRS icircşi propun acest lucru Serviciile cele mai potrivite
pentru valorificarea resurselor rămase (preferabil printr-un mecanism de alocare dinamică)
sunt tocmai cele care implică un trafic de date icircn rafale fără pretenţii de timp real Diferenţa
fundamentală icircntre HSCSD şi GPRS este că acesta din urmă valorifică aceste resurse icircntr-un
mod mult mai eficient deoarece utilizează comutaţia de pachete Icircn plus costul serviciilor
oferite este mai atractiv deoarece utilizatorul plăteşte volumul de date transferat Practic dacă
doreşte utilizatorul poate fi sbquoconectatrsquo la reţeaua de date icircn permanenţă fiind taxat doar
pentru timpul icircn care efectiv utilizează resursele reţelei adică pentru pachetele de date
recepţionate respectiv transmise
243 Servicii GPRS
Dintre aplicaţiile cele mai potrivite pentru GPRS se pot aminti mesageria de orice tip
difuzare şi distribuţie multiplă telemetrie jocuri navigare de mică anvergură pe reţeaua
internet Icircn general orice tip de aplicaţii ce necesită comunicaţii maşină - maşină la debite
mici şi medii sunt adecvate dezvoltării icircn mediul GPRS
Ca şi icircn reţeaua GSM reţelele GPRS pot oferi două categorii de servicii de
telecomunicaţii
servicii de bază
servicii suplimentare
Serviciile de bază GPRS
Acestea sunt icircn principal servicii suport (bearer services) de transport care realizează
transmiterea datelor cu comutaţie de pachete icircntre două interfeţe şi din teleservicii Similar
situaţiei din GSM aceste interfeţe sunt
interfaţa dintre echipamentul terminal de date (de exemplu calculator) şi terminalul
mobil GPRS
24
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
interfaţa dintre reţeaua GPRS şi reţeaua de date sau echipamentul terminal cu care
comunică Aceasta interfaţă este situată icircntr-un nod poartă (gateway) GPRS similar
situaţiei din GSM unde locul ei este GMSC
Teleserviciul fundamental oferit de GPRS este cel de transport de date şi este detaliat
mai jos Un alt teleserviciu oferit de GPRS este transmisia şi recepţia de mesaje scurte (SMS)
Astfel pe de o parte capacitatea de transmisie a mesajelor scurte va creşte iar pe de alta
parte reţeaua de semnalizări pe care se transmit icircn GSM aceste mesaje nu va mai fi icircncărcată
şi cu mesaje scurte ce vin sau pleacă de la la terminalele mobile GPRS
Servicii GPRS de transport
Sunt definite doua categorii de teleservicii de transport
servicii punct-la-punct (PTP ndashPoint-to-Point)
servicii punct la multipunct (PTM-Point-to-Multipoint)
A Serviciul PTP
Serviciul punct la punct (PTP) [GSM 0260] permite transmiterea de pachete de date
icircntre doi utilizatori Este implementat icircn GPRS faza 1 Abonatul care a iniţiat serviciul se
numeşte solicitant (service requester) Partenerul său se numeşte receptor al serviciului
(service receiver)
Serviciul PTP poate fi solicitat fie de la terminalul mobil GPRS fie de la un
echipament situat icircntr-o reţea de date fixă (IP X25) Serviciul PTP poate fi oferit de
asemenea icircntre doi utilizatori mobili GPRS
Serviciul punct-la punct poate fi la racircndul sau de două tipuri
PTP fără conexiune (PTP-CLNS ndash PTP Connectinnless Network Service)
PTP orientat pe conexiune (PTP-CONS ndashPTP Connection Orientated Network
Network Service)
PTP-CLNS este un serviciu de tip datagramă ce utilizează comutaţia de pachete fără
conexiune Este util icircn cazul aplicaţiilor ce generează trafic icircn rafale şi are că scop asigurarea
interoperării cu reţele IP
PTP-CONS este un serviciu de tip circuit virtual ce utilizează comutaţia de pachete
orientata pe conexiune Icircntre cei doi utilizatori se stabileşte un circuit virtual pentru o perioadă
25
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ce poate varia de la cacircteva secunde la ore Este util atacirct pentru aplicaţii ce generează trafic icircn
rafale cacirct şi pentru aplicaţiile interactive Are că scop asigurarea interoperării cu reţele X25 şi
derularea peste GPRS a aplicaţiilor bazate pe protocolul OSI CONS(Connection Orientated
Network Protocol)
O reţea GPRS trebuie să asigure menţinerea circuitului virtual la trecerea dintr-o
celulă icircn alta dar numai icircn interiorul aceleiaşi reţele GPRS-PLMN La trecerea terminalului
mobil icircntr-o altă reţea sau icircn cazul căderii legăturii radio circuitul virtual va fi eliberat Pentru
ambele tipuri de servicii pe interfaţa radio se poate opera fie cu confirmare fie fără
confirmare a transportului de date
B Serviciul PTM
Serviciul punct la multipunct (PTM) permite transmiterea de pachete de date de la un
utilizator către mai mulţi utilizatori El este implementat icircn faza a doua a GPRS O
comunicaţie PTM se stabileşte icircntre un furnizor de servicii (ce poate fi situat icircn afară reţelei
GSM) şi un grup de terminale GPRS Şi serviciul PTM este un serviciu ce se prezintă icircn două
variante
PTMndash multidistribuţie (PTM Multicast)
PTM- grup (PTM-G--PTMGroup)
Serviciul de transport PTM-M permite transmiterea pachetelor de date icircntr-o arie
geografică dată (celulă grup de celule) fără confirmare Receptorii serviciului sunt fie toţi
abonaţii care se găsesc icircn acea zonă fie un grup icircnchis de utilizatori
Icircn cazul PTM-G receptorul serviciului este un grup predefinit de utilizatori Pachetele de
date vor fi trimise către toţi membrii grupului indiferent de aria geografică unde se găsesc
aceştia Este posibilă şi transmiterea doar către acei membri care se găsesc icircn anumite zone
geografice Transmisia poate fi şi cu confirmare
Serviciile suplimentare
Printre serviciile suplimentare avute icircn vedere icircntr-un prim stadiu se numără
redirecţionarea necondiţionată a apelurilor redirecţionarea cacircnd abonatul nu este accesibil şi
definirea de grupuri icircnchise de utilizatori In afară de aceste servicii recomandarea GSM
0260 descrie posibilitatea oferirii de servicii adiţionale cum sunt accesarea bazelor de date
servicii de mesagerie validări de cărţi de credit servicii de monitorizare electronică tranzacţii
electronice etc
26
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
244 Arhitectura GPRS
GPRS este o soluţie pentru operatori deoarece nu necesită modificări substanţiale icircn
reţeaua GSM Aşa cum se observă icircn figura 72 reţeaua nucleu a GPRS operează icircn paralel
cu GSM-NSS
Figura 23 Arhitectura reţelei GPRS
25 LabWindowsCVI
La dipecer am considerat un calculator desktop sau laptop pe care va rula o aplicaţie
de monitorizare a datelor măsurate implementată icircn LabWindowsCVI
LabWindowsCVI este o platformă pentru dezvoltare de software cu orientare pe
aplicaţii de instrumentaţie După cum se deduce din denumirea sa (CVI ndash C for Virtual
Instrumentation) limbajul acceptat este ANSI C cu extensii specifice CVI ne pune la
dispoziţie un mediu interactiv de dezvoltare a unor aplicaţii pentru sistemul de operare
Windows Icircmbină deci avantajele programării de tip vizual cu avantajele simplităţii şi
flexibilităţii limbajului C Deşi a fost creat special pentru aplicaţii de instrumentaţie şi control
27
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
multiplele lui facilităţi icircl fac capabil să suporte şi dezvoltarea unor aplicaţii de mărime medie
care să fie de altă factură Fiecare funcţie de bibliotecă din cadrul acestui mediu are o interfaţă
specializată numită panoul funcţiei (function panel) care permite
bull Help on-line
bull Selectare şi declarare de variabile sau constante necesare
bull Execuţie interactivă
bull Inserarea funcţiei editate icircntr-un text sursă
Mediul este extrem de flexibil permiţacircnd interfaţarea bidirecţională cu alte compilatoare de
C sau C++ De asemenea se pot folosi şi DLL-uri
Puterea mediului LabWindowsCVI este dată de bibliotecile puse la dispoziţia
programatorului acestea conţinacircnd funcţii pentru implementarea diverselor faze care conduc
la o aplicaţie din domeniul achiziţiei de date sau a controlului automat
Pentru achiziţia de date există următoarele biblioteci specializate
bull de instrumente
bull pentru interfaţa GPIBGPIB 4882 (General Purpose Interface Bus)
bull pentru achiziţie de date
bull pentru operaţii IO icircn cazul achiziţiei de date
bull pentru interfaţa serială RS232
bull pentru sistemul VXI
Biblioteci specializate pentru analiza datelor
bull pentru IO
bull pentru formatarea specială
bull pentru analiză
bull pentru analiză avansată
Biblioteci specializate pentru vizualizare date
bull pentru crearea unei interfeţe utilizator de tip vizual
Biblioteci specializate pentru lucrul icircn reţea şi comunicarea icircntre diverse aplicaţii
bull pentru DDE (Dynamic Data Exchange)
bull pentru TCP (Transmision Control Protocol)
bull pentru sistemul X de sub Unix
Icircn afară de acestea mai există o bibliotecă specială numită biblioteca de instrumente
care conţine drivere şi sursele lor pentru osciloscoape multimetre şi generatoare de funcţii
De asemenea există posibilitatea creării unui instrument propriu Biblioteca pentru interfaţa
28
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cu utilizatorul conţine funcţiile necesare creării unui GUI (Graphical User Interface =
Interfaţă grafică cu utilizatorul) după necesităţi
Structura generică a unei aplicaţii dezvoltate sub CVI
Un proiect complet pentru una din clasele de aplicaţii specifice mediului CVI are
următoarele componente generice
bull interfaţa cu utilizatorul
bull partea de control a aplicaţiei
bull partea specializată pentru achiziţia datelor
bull partea specializată icircn analiza respectivelor date
Mai jos prezentăm o schemă generică a aplicaţiilor CVI
Figura 24
Tipuri de fişiere folosite icircn cadrul CVI
PRJ se referă la fişiere de tip proiect
UIR se referă la fişiere care conţin descrierea unei interfeţe grafice cu utilizatorul
C fişiere sursă
H fişiere header
FP fişiere care reţin descrierea unui instrument
LIB fişiere bibliotecă
DLL fişiere link-editate pentru apel dinamic
OBJ fişiere obiect
29
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a unora dintre meniurile şi ferestrele mediului de dezvoltare CVI
Fereastra proiect
Prezentăm mai jos doar informaţiile suplimentare faţă de o fereastră proiect standard
Pe lacircngă datele curente despre fiecare fişier inclus icircn proiect acesta mai are precizat şi unul
sau mai mulţi din următorii indici
- I indică faptul că respectivul fişier conţine descrierea unui driver de instrument
- S faptul că s-au făcut modificări icircn fişierul respectiv şi deci trebuie salvat
- C indică obligativitatea compilării respectivului fişier icircnainte de rularea aplicaţiei
- indică faptul că fişierul este deschis icircntr-o fereastră de editare
- indică ca acest fişier nu este deschis
Aplicaţii consolă
Pentru aplicaţiile tip consolă clasice C unde se folosesc pentru IO funcţiile scanf şi
printf vizualizarea ieşirii icircn mod text a acestora se va face icircntr-o fereastră specială numită
ldquoStandard InputOutput Windowrdquo
Observaţie Dacă se va programa icircn acest mod trebuie activată opţiunea ldquoBring Standard
InputOtput to front whenever modifyrdquo din Environment ce aparţine meniului Options
Generatorul interactiv de aplicaţii
Butoanele directe ale editorului de interfeţe cu utilizatorul
folosit la selectare mutare şi dimensionare obiecte
utilizat pentru a modifica textul asociat cu obiectele din UIR folosind facilităţile de
etichetare
folosit pentru colorarea obiectelor Este suficientă o apăsare pe butonul din dreapta a
mouse-ului şi va colora automat obiectul selectat cu culoarea curentă
oferă facilităţi de operare Atunci cacircnd este activat evenimentele vor fi afişate icircn partea
dreaptă a barei de facilităţi
30
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a cacirctorva din meniurile mai importante ale generatorului
Menu Bars activează cutia de dialog care ne prezintă toate barele de meniu definite deja de
programator
Figura 25
Create apelează fereastra Edit Menu Bar pentru a crea o nouă bară de meniuri
Edit apelează fereastra Edit Menu Bar pentru a modifica o bară de meniuri existentă
Fereastra Edit Menu Bar(fig26) permite specificarea sau modificarea caracteristicilor
unei bare de meniuri icircn curs de creare sau care există deja
31
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 26
Menu Bar Constant Prefix este identificatorul intern al respectivei bare de meniuri Acesta
va fi folosit de funcţia LoadMenuBar pentru icircncărcarea icircn memorie a parametrilor care conţin
această bară Va fi definit automat icircn fişierul header din scheletul de aplicaţie
Item se referă la numele meniului curentsubmeniucomandă de meniu Dacă icircn faţa primei
litere a unui element din meniu se adaugă 2 ldquounderscorerdquo la execuţie acesta va putea fi
selectat prin combinaţia Alt+prima literă
Constant name este alipit la Menu Bar Constant Prefix pentru a se genera identificatorul
elementului curent Este folosit de funcţii ca GetMenuBarAttribute sau SetMenuBarAttribute
De asemenea acest identificator este returnat de GetUserEvent atunci cacircnd apare un
eveniment generat de o comandă a meniului
Callback Function Permite specificarea numelui unei funcţii de răspuns care va fi apelată
automat la activarea respectivului element Folosirea ei este opţională
32
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ModifierKeyShortcutKey se combină pentru a ataşa o cheie ldquohotrdquo pentru elementul
curent
buton ce permite coboracircrea icircn interiorul unei ierarhii de meniuri
buton ce permite urcarea icircn interiorul unei ierarhii de meniuri
Panouri
După cum am spus sunt echivalentul ferestrelor din programarea Windows Pentru a le crea
Create1048774Panel ne pune la dispoziţie un nou panou icircn cadrul UIR-ului curent Prin dublu
ldquoclickrdquo pe acesta se va intra in fereastra de editare a caracteristicilor panoului Această
fereastră este prezentată mai jos
Figura 27
La partea de Menu Bar se poate specifica o bară din cele deja create icircn cazul dezvoltării
respectivei interfeţe
Restul parametrilor au fost discutaţi anterior sau sunt cunoscuţi din programarea Windows
33
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Crearea controalelor
Exceptacircnd diferenţele care apar funcţie de destinaţia acestora există o serie de parametri
comuni fiecărui control pe care icircl creăm Mai jos prezentăm fereastra care apare de exemplu
la crearea unui control de tip numeric şi anume un buton
Figura 28
Se observă că identificatorul intern şi posibilitatea de ataşare a unei funcţii de răspuns
rămacircne De asemenea o serie de informaţii specifice părţii de etichetare Icircn plus apar
specificaţii privind modul de afişare a datelor şi limitele icircntre care acestea pot fi variate prin
intermediul acestui control
34
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
TAB ORDER
Fiecare control de pe un panou activ are o poziţie icircn ordinea de salt prin intermediul
unui tab Această ordine precizează care va fi următorul control ce va fi activat icircn cazul icircn
care utilizatorul apasă Tab sau Shift+Tab Implicit acestea sunt adăugate exact icircn ordinea
creării lor de către programator Numai că nu icircntotdeauna aceasta este ordinea de salt dorită a
fi activă la terminarea aplicaţiei Icircn aceste condiţii secvenţa Edit1048774Tab Order ne va activa un
panou specializat pentru aceasta
Figura 29
noua formă de cursor activă icircn interiorul ferestrei Prin apăsarea pe un control oarecare i
se
poate modifica ordinea de activare
specifică faptul că se acceptă noua ordine de apelare
se iese cu păstrarea vechii ordini
Find UIR Objects
O altă facilitate a editorului este Find UIR Objects care aparţine meniului View Icircn
cadrul unor proiecte mari se dovedeşte a fi extrem de utilă
35
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 210
După cum se observă ne permite căutarea după dorinţă a unui nume icircn diverse categorii de
obiecte ale interfeţei cu utilizatorul
GENERATE
Este meniul folosit pentru generarea fie a icircntregului cod schelet fie numai a codului
corespunzător unui obiect proaspăt introdus icircntr-un UIR
Secvenţa Code1048774Generate1048774AllCode va genera codul schelet pentru aplicaţie Acesta va
conţine şi un ldquoswitchrdquo pentru tratarea evenimentelor Alegerea evenimentelor care vor fi
automat introduse se face din Code1048774Preferences
MENIUL ARRANGE
Icircncă de la primele aplicaţii vom observa că una din operaţiile mari consumatoare de
timp este aranjarea controalelor icircn panou după specificarea caracteristicilor acestora Pentru a
evita acest lucru CVI a fost prevăzut cu o serie de facilităţi de aranjare automată pe care le
vom prezenta mai jos
Figura 211
Top Edges asigură spaţiere verticală icircntre partea superioară a controalelor Cel mai de
sus şi cel mai de jos control sunt considerate puncte de referinţă
36
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Vertical Centers asigură spaţiere verticală icircntre centrele controalelor Cel mai de sus
şi cel mai de jos control sunt considerate puncte de referinţă
Bottom Edges asigură spaţiere verticală icircntre partea inferioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Vertical Gap asigură spaţiere verticală icircntre partea superioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Left Edges setează spaţii orizontale egale icircntre marginile din stacircnga ale controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Centers setează spaţii orizontale egale icircntre centrele controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Right Edges setează spaţii orizontale egale icircntre marginile din dreapta ale
controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Gap spaţiere orizontală icircntre controale Cel mai de sus şi cel mai de jos
control sunt considerate puncte de referinţă
Horizontal Compress minimizează spaţiile pe orizontală dintre controale şi elimină
orice spaţiu dintre ele
Distribute Vertical Centers
Comanda Distribute realizează la apel ultima opţiune selectată din lista prezentată
mai sus
37
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
dezvoltatorilor de sisteme automatizate reducacircnd timpul de dezvoltare şi costurile necesare
Acesta soluţe se intregrează ideal icircn necesităţile actuale dorindu-se realizarea unor sisteme
simple si riguroase din punct de vedere hardware Fiind dotate cu tehnologie de ultimă
generaţie acestea permit integrarea icircn reţele de senzori bazate pe tehnologii radio (wireless)
de comunicaţie respectiv tehnologii clasice bazate pe interfeţe seriale prin fir (RS-232485)
11 Contextul temei
RTU-ul este utilizat cel mai des in sisteme de tip SCADA (Supervisory Control and
Data Acquisition) Aceste sisteme permit operatorilor facilităţi de monitorizare şi control a
diferite tipuri de proces Una dintre cele mai mari probleme icircn realizarea unor astfel de
sisteme constă icircn identificarea celor mai bune soluţii de preluare a datelor caracteristice unui
proces Sistemele per ansamblu sunt ample implicacircnd funcţionalităţi in cascada cu un grad
inalt de interdependenţă Tocmai din acestă cauză entităţile care fac legatura dintre
senzoristica din instalaţia de proces şi unitatea programabila (Microcontroler Automat PC)
care se ocupă cu procesarea datelor achiziţionate sunt foarte importante
Pentru a sigura acestă facilitate se utilizeaza RTU-uri in functie de necesităţile sistemului si
cerintele beneficiarului RTU-ul actual este utilizat pentru interfaţarea unităţilor programabile
cu senzoristica de la nivelul instalaţiei de proces Comunicaţia dintre aceste entităţi se
realizează cu ajutorul diferitelor tipuri de protocoale de comunicaţie icircn funcţie de
specificaţiile tehnice ale acestora Caracteristile unei unităţi RTU sunt date de tipul unităţii de
procesare şi de tipul de comunicaţie suportat de către modem Configurarea reţelei hard a
instalaţiei de proces este dată icircn special de caracteristile modemului corespunzator RTU-ului
utilizat Icircn cadrul acestor sisteme de control si monitorizare RTU-ul actual asigură
urmatoarele functionalitati
achizitioneaza date de la senzorii din instalaţia de proces
stocheaza temporar şi periodic datele achiziţionate
converteşte valorile achiziţionate intr-un format specific
transmite către nivelele superioare datele stocate icircn functie de cerere şi
actionează stările diferitelor elemente de execuţie icircn funcţie de necestăţtile
instalaţiei proces
Caracteristicile RTU-ului sunt determinante icircn ceea ce priveşte numărul de senzori
interfaţaţi sau tipul lor Schema unui astfel de modul este prezentată in figura de mai jos
5
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 11 Structura hardware a unui RTU actual
Entitatea de tip RTU este un sistem de sine statator care trebuie sa funcţioneze
permanent cat mai eficient fară un consum mare de resurse de aceea există mai multe tipuri
cum ar fi sisteme autonome minimale mici medii si mari Acestea diferă prin modul de
gestionare a resurselor proprii Strategiile de utilizare a resurselor proprii eficient şi economic
fac ca aceste sisteme de sine stătătoare să fie limitate la funcţiile de bază caracteristice unui
RTU
Odata cu dezvoltarea sistemelor intregate şi microelectronicii necesităţile de
imbunătăţire a funcţionalităţii RTU-urilor a devenit tot mai stringentă din punctul de vedere al
dezvoltatorilor de sisteme de achizitie monitorizare şi control Acestă dezvoltare se reflecta
icircn special pe partea de funcţionalitate obţinacircndu-se un comportament independent de sine
stătător care permite procesări multiple respectiv analize de date achiziţionate fară a influenţa
funcţiile de bază ale unui RTU Datorită dezvoltării modulelor specifice unui RTU s-a
cacircştigat atat din punct de vedere hardware cacirct şi software La nivel software tot mai multe
RTU-uri pot fi programate icircn diferite medii de programare cum ar fi CC++ Pyton Step 7
sa ceea ce face ca aceste sisteme sa fie deschise flexibile si reprogramabile devenind
accesibile oricarui tip de utilizator Din punct de vedere hardware prin diversificarea
modurilor de interfaţare cu diferiţi senzori şi actuatori sau unităţi programabile şi prin
imbunătăţirea unităţilor de procesare se obţine o eficientizare a structurii hard a oricarui tip de
sistem automat Totodată aceasta aduce imbunătăţiri a functionalităţii sistemului reuşind sa
se ajungă la o modularizare a functionalităţii o creştere a randamentului de funcţionare a
instalaţiei de proces şi obţinerea unei aplicaţii SCADA modernă scalabilă si interactivă
6
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
12 Soluţia propusă
Modemul inteligent (figura12) prin caracteristicile sale avansate (memorie si procesor
propriu) poate devenii in orice moment un RTU Acest lucru duce la imbunatatirea structurii
hardware a unui sistem automatizat reducand semnificativ costurile si dimensiunile
corespunzatoare ale unui astfel de sistem
Figura 12 Modem inteligent
In funcţie de modul de comunicaţie şi de structura respectiv accesbilitatea sistemului
care se doreşte a fi monitorizat şi controlat la ora actuală pe piaţă se gasec mai multe soluţii
Icircn funcţie de specificaţii de sistem se pot alege mai multe solutii de aceea etapa de proiectare
trebuie analizata cu atentie şi gasită o soluţie optimă
La ora actuală telefonia mobilă joacă un rol important in transmisia de date oferind un
suport avantajos pentru dezvoltarea unor sisteme automate De aceea multe modemuri
existente au suport GSM prin care se permite interacţiunea cu entităţile existente icircn cadrul
unei instalatii de proces
Folosind aceste informaţii imi propun realizarea unei aplicaţii de telemetrie care sa
poată prelua informaţii de la diferiţi senzori prin intermediul unor medemuri inteligente ( de
genul celor descrieşi mai sus ) să le transmită prin intermediul reţelei de GPRS catre un
calculator central ( dispecer ) şi aici o iterfaţă grafică implementată in LabWindowsCVI să
permită vizualizarea informaţiilor recepţionate O schemă general a aplicaţiei este
următoarea
7
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 13
8
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
2Fundamentare teoretică
21 Noţiuni de teoria măsurătorilor
Metrologia este un domeniu al tehnicii cu rădăcini icircn spaţiul Fizicii si ramificaţii icircn
toate sectoarele activităţii practice omeneşti (printre care şi cel al Electronicii) care se ocupa
cu tehnica masurărilor adică cu mijloacele şi metodele pentru determinarea cantitativă ndash
valorică a marimilor fizice Metrologia ndash ca disciplină de sine stătătoare ndash se referă la icircntregul
ansamblu al fenomenelor fizice pe care le studiaza dintr-un punct de vedere propriu şi anume
acela al masurării care este ndash icircn esenţă ndash o comparare experimentală de mărimi ea
stabilind standardele unităţilor de masură şi ale etaloanelor de referinţă pentru aceste unităţi
procedeele de comparare a mărimilor cu etaloanele şi caracteristicile de performanţă (ca
interval game rezoluţie sensibilitate fidelitate dinamică mobilitate precizie etc care ndash icircn
general ndash se numesc caracteristici metrologice) Aplicaţiile metrologiei adică efectuarea
practica a masurării diverselor specii de mărimi caracteristice unor anume domenii constituie
ramuri ale disciplinei acelor domenii aşa sunt măsurările electrice măsurarile electronice
măsurările acustice controlul dimensional fotometria sistemele pentru măsurări automate
măsurările geometrice măsurările hidraulice si multe altele
211 Conceptul de măsurare
Măsurarea este o activitate experimentală de tip informatic al carui scop este
obţinerea unor date cantitative cu privire la proprietăţile unui obiect sau ndash mai general ndash ale
unui sistem şi redarea lor icircntr-o forma potrivită pentru observator (utilizator) Semnificaţia
(interpretarea) pe care observatorul-utilizator o atribuie acestor date cantitative prin
intermediul convenţiilor folosite pentru reprezentarea lor constituie informaţia care este
necesară icircn procesul continuu de cunoaştere comunicare şi conducere (decizie) Prin
identificarea proceselor şi modelarea lor (adică prin reprezentarea matematică a relaţiilor din
sistemul analizat) se stabilesc anumite proprietăţi (elemente specifice) diferite calitativ pe
care le putem denumi mărimi (sau specii de mărimi ndash pentru a le preciza natura lor diferită) si
anumite corelaţii icircntre ele descrise matematic prin legi ndash dacă sunt deduse experimental sau
9
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
prin teoreme formule etc ndash daca sunt stabilite deductiv din legi Icircn acest sens după cum se
ştie mărimile (speciile de mărimi) se diferenţiază (clasifică) icircn mărimi primitive şi mărimi
derivate Cunoaşterea sistemului (stărilor sistemului icircn evoluţia lui) icircn vederea elaborarii
deciziilor de conducere a sistemului pe o traiectorie optima sau una anume necesară implică
evaluarea cantitativă a mărimilor specifice sistemului şi interpretarea lor informaţionala
Acest lucru nu se poate realiza decacirct experimental (ldquope viurdquo si icircn ldquotimp realrdquo) prin măsurări
ceea ce explică rolul cognitiv de comunicare si decizional (mai cuprinzator informaţional) al
măsurărilor
Icircn acest context mai trebuie precizat ca utilizatorul (observatorul) ndash adică
ldquobeneficiarulrdquo icircn activitatea de măsurare ndash poate fi uman sau de tip maşină (icircn cazul
sistemelor automate) Determinarea cantitativă prin măsurare a speciilor de mărimi diferite
calitativ nu se poate realiza decacirct icircn raport cu mărimi de aceeaşi specie (aceeaşi natura fizica)
alese ca unităţi cantitative numite unităţi de măsură fixate icircn mod convenţional dar icircn cadrul
unui sistem de unitaţi de măsură coerent
Se poate acum defini mai bine conceptul de masurare Astfel din punctul de vedere
metrologic măsurarea ldquoeste operaţia prin care se stabileşte pe cale experimentală raportul
numeric icircntre mărimea de măsurat si o valoare (ldquocantitaterdquo) oarecare a acesteia luată ca
unitate de măsurărdquo
Din punctul de vedere tehnic ldquomăsurarea este operaţia experimentală prin care se
determină cu ajutorul unor mijloace de măsurat valoarea numerică a unei mărimi (numită
masurand) icircn raport cu o unitate de măsură datărdquo din aceeasi specie cu masurandul
Din punctul de vedere al modelării masurarea este o operaţie prin care se stabileşte o
aplicaţie de la o specie de mărimi X la mulţimea numerelor reale R sau ndash mai rar ndash R2 (altfel
spus se stabileşte o relaţie icircntre valoarea unei marimi X si un numar real Xm R)
212 Procesul de masurare
Ansamblul operaţiilor experimentale care se execută icircn scopul obţinerii rezultatului
măsurării sub forma unei percepţii realizată de observatorul-utilizator (operatorul ce
efectuează măsurarea) constituie procesul de măsurare Orice proces de măsurare are
urmatoarele componente principale
- mărimea de măsurat (măsurandul)
- metoda de măsurare
- mijlocul (aparatul) de măsurat
10
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
- măsura (etalonul)
- operatorul (observatorul) şi
- prelucrarea ndash tratarea datelor
care ndash icircn funcţie de domeniul precizia şi scopul măsurării ndash au o pondere şi o importanţă
relativă diferită Această structură a procesului de măsurare diversitatea mărimilor de
masurat multitudinea tehnicilor pentru măsurare (mijloace şi metode) care să satisfacă
exigenţele operatorului ndash beneficiar al măsurarii (exigenţe destul de nuanţate icircn funcţie de
scopul măsurării viteza de măsurare costul măsurarii condiţiile ambientale etc) conduc la o
mare varietate a măsurărilor icircn general
Un exemplu particular al acestei mari varietaţi o constituie icircnseşi măsurarile
electronice (care au ca măsurand specii diverse cum sunt mărimile de stare ale cacircmpului
electric şi magnetic mărimile electrice de circuit parametrii de circuit caracteristici de
transfer frecvenţe timp defazaje forme de undă neliniarităţi distorsiuni zgomote cu
regimuri şi o dinamică ample cu influenţe de mediu şi cuplaje adeseori aleatorii etc)
213 Erori de măsurare
Icircn practică se constată că rezultatul unei măsurări nu depinde numai de valoarea
măsurandului el putacircnd fi influenţat de o serie de factori de natura obiectivă (mijloc de
măsurare metoda de măsurare factori exteriori procesului de măsurare etc) sau de natura
subiectivă Pentru caracterizarea rezultatelor obtinuţe icircn procesul de măsurare se definesc
urmatoarele valori
Valoarea adevarată (reala) Xa a unei mărimi este valoarea exacta a mărimii
respective icircn condiţiile existenţe la un moment dat De obicei valoarea adevarată a unei
mărimi nu poate fi determinată experimental ea icircnlocuindu-se cu o valoare convenţional
adevarată X care se obţine cu ajutorul unor mijloace de măsurare deosebit de precise practic
se consideră ca diferenţa dintre valoarea adevarată si valoarea convenţional adevarată este
neglijabilă şi deci cele două noţiuni sunt echivalente
Rezultatul unei măsurări individuale x care se obţine cu ajutorul unor mijloace de
măsurare obisnuite reprezintă valoarea măsurată Abaterea valorii măsurate faţă de valoarea
adevarată a măsurandului constituie eroarea de măsurare
Intervalul icircn care se estimează cu o anumita probabilitate numită nivel de icircncredere
ca se afla valoarea adevarată a măsurandului se numeste incertitudine de măsurare
11
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
incertitudinea de măsurare estimează limitele erorilor de măsurare Pentru o estimare
obiectivă este necesar ca icircmpreună cu rezultatul măsurarii să se specifice atacirct erorile cacirct şi
incertitudinea de măsurare Icircn figura 21 sunt reprezentate schematic noţiunile prezentate
anterior
Figura 21
Fig 11 Explicativă privind valoarea adevarată valoarea măsurată
valoarea convenţional adevarată eroarea de măsurare şi incertitudinea
de măsurare
214Clasificarea erorilor de măsură
Deoarece cauzele erorilor de măsurare sunt numeroase există şi multe criteri de
clasificare a lor Dupa caracterul lor erorile de măsurare pot fi grupate conform schemei
următoare
Figura 22
12
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
215 Etaloane
Etalonul este un sistem fizic care constituie un mijloc de măsurare (măsura instrument
sau aparat de măsurat) ce serveste la păstrarea şi reproducerea unităţilor de măsura cu
precizia metrologică corespunzatoare stadiului la care s-au dezvoltat tehnicile de măsurare Icircn
afara acestor două roluri prin care se ldquodefineşterdquo o unitate de măsura etaloanele mai sunt
utilizate icircn operaţiile de calibrare şi icircn icircnsuşi procesul de măsurare (de icircnaltă precizie) ca
elemente de referinţă precum şi icircn construcţia unor aparate (dispozitive) utilizate icircn alte
scopuri decacirct mşsurarea propriu-zisa (ca de exemplu dispozitive de automatizare
stabilizatoare electronice generatoare de semnal etc)
Calibrarea icircnseamnă ndash icircn metrologie ndash compararea unui aparat de măsurat cu un
etalon icircn scopul gradării sau ajustării verificării sau etalonării aparatului de masurat
Elementul de referinţă este un etalon care asigură (ldquofurnizeazardquo) o mărime fizică anume cu
o valoare bine cunoscută (cu o precizie metrologică corespunzatoare scopului urmarit)
Un etalon trebuie să fie invariabil icircn timp şi icircn spaţiu să poata fi folosit usor icircn tehnică
şi să poată fi reconstituit oricacircnd Unicitatea şi conformitatea măsurărilor icircn orice loc şi la
orice moment impun realizarea unui sistem de etaloane care să
asigure
- generarea principalelor unităti de măsură icircn conformitate cu definiţiile lor din SI
(adică ldquomaterializarea ldquo definiţiilor prin experimente adecvate)
- menţinerea (conservarea) acestor unităţi de măsură constante icircn timp icircn toate
laboratoarele metrologice pe plan mondial
- corelarea icircntre ele a unităţilor de măsură trecerea la alte unitati derivate (etaloane de
derivare) şi extinderea limitelor de măsurare cu precizia necesară cum ar fi trecerea la
multipli şi submultipli ai unităţilor de măsură (etaloane de raport)
Aceste trei operaţii fundamentale icircn activitatea metrologică se efectuează icircn
mod corespunzator cu urmatoarele trei categorii de etaloane
- etaloane de definiţie (adica etaloanele prin care se generează principalele unităţi de
măsură şi icircn principal cele fundamentale aşa cum este ndash de exemplu ndash determinarea absolută
a amperului cu ajutorul balanţei de curent)
- etaloane de conservare (adică etaloanele de menţinere a unităţii de măsură cu o mare
stabilitate icircn timp şi faţă de influenţele exterioare de mediu)
- etaloanele de transfer (adica cele care asigura etalonarea tuturor tipurilor
13
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
de aparate de masurat icircn intervale largi de valori ale masurandului pentru marimi constante
sau variabile icircn timp) asa cum sunt etaloanele de raport etaloanele de derivare si etaloanele
de transfer (curent continuu ndash curent alternativ) prin compararea efectelor (termice
electrodinamice etc) ale semnalelor de curent sau tensiune produse asupra unui acelaşi
element sensibil
22 Conceptul de M2M
M2M este o abreviere de la Machine-to-Machine deşi tot mai des se foloseşte şi
pentru identificarea tehnologiilor Man-to-Machine Machine-to-Man Machine-to-Mobile sau
Mobile-to-Machine Pe scurt este vorba de un serviciu ce permite comunicarea dintre
echipamentele aflate la distanţă şi aplicaţiile la care sunt conectate De fapt M2M este o
evoluţie comercială a tradiţionalelor sisteme de control al echipamentelor din domeniul
industrial soluţie aplicată cu succes pentru prima dată de NASA Adaptată nevoilor
companiilor (un rol important l-a jucat compania France Telecom) M2M permite companiilor
sa administreze mai uşor echipamentele aflate la distanţă si să le integreze cu procesele
interne
Zona soluţiilor M2M este cotată ca fiind una dintre cele mai promiţătoare in
următorii ani ca urmare a creşterii nevoii de automatizare a proceselor şi a posibilităţii de a
lua decizii intr-un timp cat mai scurt posibil ceea ce va genera proiecte majore Aplicaţiile
M2M permit prin monitorizarea si controlul maşinilor şi proceselor de la distanţă reducerea
costurilor optimizarea proceselor si imbunătăţirea nivelului serviciilor oferite clienţilor
permitand economii de timp şi de personal
14
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
23 Limbajul Python
Icircn cadrul unei instalaţii de telemetrie modemurile deţin memorie şi processor propriu
motiv pentru care se numesc ldquointeligenterdquo Pe lacircngă memorie şi processor aceste modemuri
inteligente au şi un interpretor al unui limbaj de programare de nivel icircnalt Icircn cazul
medemurilor alese de mine acest limbaj este Python
Python este un limbaj de programare dinamic orientat pe obiect care poate fi folosit
pentru mai multe tipuri de dezvoltarea software Oferă un puternic suport pentru integrarea cu
diferite instrumente folosind librării standard de extensie şi poate fi invăţat in cacircteva zile
231 Tipuri de date
Sunt 3 grupuri de tipuri de date in Python
Scalari ndash care au sutipurile intreg intreg lung si sir de caractere
i = 1 li = 9999999999L s = Hello
Secvenţe care conţin un anumit număr de obiecte arbitrare intr-o ordine definită
L = [1 5 3 9 14]
Liste asociative care permit accesul la valori bazate pe chei Aceste chei pot fi arbitrare
dar sunt obiecte permanente De exemplu
D = b Python a 5 print D[a]
Afisează 5
Spre deosebire de Pascal C C++ sau Java Python este un limbaj tastat dinamic Astfel
următoarea secvenţă de cod este perfect valabilă icircn Python
a = 7 7 (integer)
a = str(2a) + bytes 7 bytes (string)
15
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Icircn Python variabilele nu sunt declarate icircn script ele apar doar atunci cand sunt folosite
232 Operatori
Icircn Python există următorii operatori
Operatori aritmetici
+ - ~ ltlt gtgt amp ^ |
Operatori relaţionali şi logici
is in lt lt= gt gt= == = not and or
Operatori de asignare
= += -= = = = = ltlt= gtgt= amp= ^= |=
Alţi operatori
( ) [ ] [] `` lambda
233 Comenzi compuse
Comenzile care aparţin aceluiaşi grup logic sunt deplasate spre dreapta cu acelaş
număr de spaţii albe
if a gt 0
b = 1
c = 2
De obicei fiecare comandă icircncepe pe o linie nouă
16
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
O instrucţiune se poate continua pe racircndul următor prin plasarea caracterului backslash
la sfacircrsitul randului Acest lucru nu este necesar dacă există paranteze deschise
my_list = [1
[abc 2]
-3+6j]
print my_list
234 Execuţii condiţionale
Python foloseşte if elif (nu elsif sau elseif) si else pentru a indica execuţia condiţională a
unei instrucţiuni
De exemplu
if a gt b
print a is greater than b
elif a lt b
print a is lower than b
else
print a equals b
Se poate folosi si interval prescurtate de testare
if 2 lt= a lt= 7
print a is in the interval [2 7]
235 Bucle
Buclele in Python sunt definite prin cuvintele cheie for şi while
Următorul exemplu foloseşte o buclă while pentru a colecta toate numerele intregi
cuprinse intre 0 si 99 intr-o listăacirc
numbers = [ ]
i = 0
while i lt 100
17
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
numbersappend(i)
i = i + 1
O buclă similar for arată in felul următor
numbers = [ ]
for i in range(100)
numbersappend(i)
Icircn loc de buclele explicite prezentate mai sus se poate folosi şi bucle implicite după
cum urmează
numbers = range(100)
range(100) generează o listă cu toate numerele intregi de la 0 la 100
24 General packet radio service(GPRS)
Comunicaţia intre modemuri ( RTU-uri ) şi dispecer se poate face prin mai mlte
mediu de transmisie
- Cablu telephonic
- Radio
- GSMGPRS
- Fibră Optică
Opţiunea pentru care am optat icircn partea de comunicaţie este GSMGPRS deoarece
asigură o cumunicaţie sigură şi oferă simplitate pentru priectant
GPRS introduce servicii de transport cu comutaţie de pachete pentru debite de la 14
kbps la maximum 170 kbps Practic GPRS este o reţea cu comutaţie de pachete de sine
stătătoare care se daugă la reţeaua GSM GPRS interoperează cu infrastructura GSM la
nivelul subsistemului staţiilor de bază BSS şi al bazelor de date din subsistemul reţea NSS
(HLR VLR AUC) GPRS preia traficul de date iar GSM traficul de voce care rămacircne
comutat prin MSC
Datele sunt transmise prin GPRS icircn pachete de lungimi fixe Fiecare pachet conţine
adresa destinaţie pentru a putea fi rutat de nodurile GPRS Modificarea pe interfaţa radio e
18
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
dată de introducerea codării adaptive a canalului Aceasta icircnseamnă că protecţia datelor
variază icircn timp icircn funcţie de starea canalului radio GPRS poate utiliza pentru o conexiune
de date de la fracţiuni de canale de trafic pacircnă la maximum 8 sloturi temporale (adică tot
cadrul TDMA) icircn funcţie de resursele disponibile
Capacitatea alocată unei conexiuni va varia icircn funcţie de icircncărcarea cu trafic de pe
frecvenţa respectivă precum şi de tipul traficului (vocedate) Este important că utilizacircnd
comutaţia de pachete o transmisie de date nu ocupă resursele reţelei decacirct atunci cacircnd sunt
date de transmis Cacircnd nu există pachete de transmis resursele de pe interfaţa radio pot fi
utilizate pentru alte transmisii de date sau pentru trafic cu comutaţie de circuite
GPRS are o reţea nucleu proprie formată prin interconectarea serverelor care
gestionează transmisia de pachete numite noduri suport GPRS (GSN- GPRS Suport Node)
Aceasta reţea operează icircn paralel cu subsistemul reţea şi comutaţie (NSS) al GSM care va
gestiona icircn continuare transmisia cu comutaţie de circuite
241 Caracteristicile sistemului GPRS
GPRS este un serviciu specificat icircn faza 2+ de standardizare a GSM El este oferit prin
intermediul unei infrastructuri numită şi sistem sau reţea GPRS ce interoperează cu
infrastructura bdquoclasicărdquo GSM
GPRS se icircncadrează icircn orientarea generală a ETSI de a asigura prin aza 2+ o platformă
ce va putea fi utilizată ulterior icircn reţele de generaţia a treia Astfel el este onsiderat
actualmente soluţia de bază pentru transmiterea de date icircn UMTS Fiind un standard SM
GPRS păstrează evident şi compatibilitatea cu sistemul părinte fiind practic o extensie a
acestuia pentru transmisii de date la debite mai mari GPRS reprezintă la ora actuală cel mai
reprezentativ sistem de generaţie intermediară (25G)
Dacă HSCSD ar putea fi considerat o ajustare fină a GSM GPRS reprezintă cu
siguranţă un salt tehnologic semnificativ deoarece marchează trecerea de la comutaţia de
circuite la cea de pachete Schimbarea tipului de comutaţie se referă icircn acest moment (atacirct la
25G cacirct şi icircn 3G) doar la transmiterea datelor vocea rămacircnacircnd icircn continuare comutată prin
MSC Datorită eternei insuficienţe a resurselor radio este probabil ca icircntr-o fază nu prea
icircndepărtată de dezvoltare a UMTS şi de ce nu chiar a GPRS să fie utilizată comutaţia de
pachete şi pentru serviciile de timp real vocale sau non-vocale
Icircn concluzie GPRS reprezintă o infrastructura ce permite transmiterea datelor pe baza
comutaţiei de pachete icircntr-o reţea GSM
19
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Pentru a putea oferi debite de date mai ridicate icircn GPRS se urmăreşte utilizarea cacirct
mai eficientă a resurselor radio Pentru aceasta se preia de la HSCSD ideea operării multislot
posibilitatea de a proteja mai puţin informaţia utilă pe interfaţa radio şi alocarea asimetrică
uplink downlink Icircn ciuda acestor asemănări icircnlocuirea comutaţiei de circuite cu cea de
pachete face din GPRS un sistem complet diferit de HSCSD Aceasta atacirct din punct de vedere
al utilizatorului care constată un timp de conectare practic nul şi rate de transfer mai bune
dar şi din punct de vedere al operatorului care efectuează o investiţie incomparabil mai mare
răsplătită printr-o mai eficientă utilizare a interfeţei radio cu tot ceea ce rezultă de aici (mai
mulţi clienţi mai multe servicii aplicaţii diverse)
Rezumacircnd icircn GPRS este implementat un set de soluţii tehnologice ce au ca scop
principal creşterea eficienţei utilizării interfeţei radio Aceasta derivă atacirct din experienţa
sistemelor anterioare cacirct şi mai ales din operarea icircn modul pachet a datelor ce se transmit
Soluţiile utilizate sunt
creşterea ratei de transmisie a datelor prin reducerea codării canalului (sunt definite
şi pot
fi utilizate 4 scheme de codare 905kbps 134 kbps 156 kbps 214kbps)
creşterea ratei de transmisie prin operare multislot ( pacircnă la 8 sloturi temporale per
utilizator)
creşterea eficienţei utilizării resurselor radio prin multiplexarea mai multor
utilizatori pe acelaşi canal fizic (posibila datorită transmisiei de pachete maximum 8
utilizatori pe slot temporal)
creşterea eficienţei utilizării resurselor radio prin alocare asimetrică uplinkdownlink
creşterea eficienţei utilizării resurselor radio prin alocarea dinamică a canalelor icircntre
servicii comutate icircn mod circuit respectiv pachet
Cacircnd un icircntreg cadru TDMA este alocat unui utilizator cu schema de protecţie minimă
(practic fără corecţie de erori) rezultă rata utilă instantanee maximă posibilă icircn GPRS
(8x214 kbps=1712 kbps)
242 Comutaţie de circuite şi comutaţie de pachete
20
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comutaţia este o tehnică esenţială icircn reţelele de comunicaţii Fără ea fiecare
echipament terminal ar trebui conectat printr-o cale directă cu fir sau fără la toate celelalte
echipamente terminale din reţea Principalele metode de comutaţie sunt
comutaţia de circuite
comutaţia de mesaje
comutaţia de pachete
Comutaţia de circuite
Aceasta presupune realizarea icircntre emiţător şi receptor a unei căi fizice de comutaţie
dedicate numită circuit Icircntreaga comunicaţie se desfăşoară icircn trei etape
stabilirea conexiunii (sau deschiderea circuitului)
transferul de informaţii
eliberarea conexiunii (circuitului)
Este de remarcat faptul că stabilitatea fizică a caii de comunicaţie are loc icircnainte de
icircnceperea transmisiunii propriu-zise Aceasta poate conduce la durate semnificative ale
timpului de conectare
Un dezavantaj notoriu al acestei tehnici este alocarea fixă a resurselor de comunicaţie
necesare pe durata conexiunii indiferent dacă la un moment sau altul mediul de transmisie
este folosit total parţial sau deloc
Pe de altă parte avantajele comutaţiei de circuite provin tocmai din această alocare fixă de
resurse care permite
asigurarea unei icircntacircrzieri constante şi minime
garantarea unui debit util corespunzător mediului de comunicaţie şi serviciului utilizat
Toate acestea facilitează oferirea serviciilor de timp real (telefonie videofonie alte
transmisiuni video) Exemplul tipic de reţea cu comutaţie de circuite este reţea telefonică
publică comutată (PSTN) Reţeaua GSM este de asemenea o reţea cu comutaţie de circuite
Referindu-ne strict la interfaţa radio a reţelelor fără fir etapa de stabilire a conexiunii
presupune alocarea unui canal radio (sau a mai multora icircn cazul HSCSD) unei staţii mobile
(MS) Acest canal rămacircne icircn posesia terminalului mobil pe toata durata conexiunii chiar dacă
transferul de date este discontinuu (icircn rafale) sau chiar icircncetează cu desăvacircrşire (de exemplu
21
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cacircnd utilizatorul citeşte cu atenţie cinci minute o pagină WEB după care lămurit pe deplin
icircntrerupe legătura) Ca o particularizare binecunoscută a reţelelor cu comutaţie de circuite
trebuie menţionat că utilizatorul trebuie să plătească pentru icircntreaga durată a conexiunii chiar
dacă a fost risipitor şi nu a folosit resursa ce i-a fost alocată
Comutaţia de mesaje
Este o tehnică ce nu stabileşte apriori o cale de transmisiune icircntre emiţător şi receptor
Informaţia ce urmează a fi transmisă formează o entitate bine precizată numita mesaj
Mesajele sunt complet independente unele faţă de altele şi pot avea lungimi variabile deşi
structura (formatul) lor poate fi prestabilit Emiţătorul trebuie sa ataşeze mesajului adresa
destinatarului decizia cu privire la ruta pe care o va urma mesajul fiind de competenţa
fiecărui comutator (router) prin care trece Fiecare comutator va memora mesajul după care icircl
va transmite pe ieşirea selectată de el Principala problemă a comutaţiei de mesaje este dată de
dimensiunea mare a mesajelor Din această cauză comutatoarele de mesaje au nevoie de o
capacitate de stocare uriaşă iar icircntacircrzierea icircn noduri poate deveni inacceptabilă din cauza
monopolizării ieşirilor de către mesajele lungi Exemplul tipic de reţea cu comutaţie de
mesaje este reţeaua telex
Comutaţia de pachete
Rezolvă o mare parte din dezavantajele comutaţiei de mesaje stabilind o lungime
maximă a entităţii informaţionale care circulă prin reţea numită pachet Pachetele sunt icircn
general rezultatul divizării mesajelor icircn blocuri de lungime mică Datorită acestui fapt spre
deosebire de mesaje pachetele nu sunt independente O recepţie corespunzătoare implică
refacerea mesajului prin ordonarea pachetelor după logica folosită la emisie Pentru aceasta
exista două posibilităţi apropiate conceptual de comutaţia de mesaje respectiv de comutaţia
de circuite
A Comutaţia de pachete fără conexiune (sau neorientată pe conexiune)
Icircn cazul comutaţiei de pachete fără conexiune pachetele (numite şi datagrame) se transmit
independent icircn cel mai pur spirit al comutaţiei de mesaje urmacircnd rute posibil diferite
Sosirea lor la destinaţie poate avea loc icircntr-o ordine aleatoare ceea ce necesită reordonarea lor
de către receptor Refacerea succesiunii corecte a pachetelor se bazează pe informaţia
22
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
suplimentară din fiecare pachet privitoare la mesajul din care face parte şi locul pe care icircl
ocupa icircn el Exemplul tipic de reţea care utilizează comutaţia de pachete este internetul
BComutaţia de pachete orientată pe conexiune (sau circuit virtual)
Icircn cazul comutaţiei de pachete orientată pe conexiune (sau circuit virtual) comunicarea
icircntre terminale presupune stabilirea unei căi anume pe care va circula fluxul informaţional
dintre acestea similar cu comutaţia de circuite Spre deosebire de aceasta nu este vorba de
dedicarea unui circuit fizic comunicării respective ci de configurarea unui circuit logic
numit circuit virtual Aceasta icircnseamnă că toate pachetele vor urma aceeaşi cale prin reţea
fără a dedica suportul fizic comunicaţiei respective Pachetele altor utilizatori vor putea folosi
foarte bine segmente din calea respectivă sau chiar icircntreaga cale La stabilirea circuitului
virtual fiecare comutator (router) trebuie să memoreze icircn tabela de dirijare care este
succesorul său icircn respectivul circuit virtual Astfel spre deosebire de comutaţia de pachete
fără conexiune după stabilirea circuitului virtual comutatorul nu mai trebuie să decidă calea
fiecărui pachet Avacircnd memorat nodul succesor icircn fiecare dintre circuitele virtuale icircn care este
implicat comutatorul va identifica circuitul asociat pachetului şi icircl va transmite pe acesta pe
linia de ieşire corespunzătoare Tehnica circuitului virtual garantează livrarea icircn ordine a
pachetelor la destinaţie Exemple marcante de reţele ce utilizează comutaţia de pachete de tip
circuit virtual sunt X25 şi ATM
Marele avantaj al comutaţiei de pachete este utilizarea eficientă a resurselor de
transmisiune Deoarece acestea nu sunt dedicate ele pot fi folosite după necesităţi pentru a
transmite pachete provenind de la utilizatori diferiţi Din acest motiv comutaţia de pachete
este extrem de avantajoasă icircn cazul unei infrastructuri cu resurse de transmisiune limitate
cum este şi cazul reţelelor fără fir
Un dezavantaj important al comutaţiei de pachete este dat de gestionarea comutatoarelor
(routerelor) icircn cazul unui trafic crescut la intrare Pierderea pachetelor garantarea unei
icircntacircrzieri maxime şi a unui debit utilizator constant sunt problemele spinoase ale comutaţiei
de pachete Ele reprezintă obstacole icircn special icircn calea oferirii serviciilor de timp real cum ar
fi telefonia
Icircn schimb icircn cazul transmisiilor de date avantajul bunei administrări a resurselor
prevalează De exemplu icircn cazul particular al interfeţei radio GSM cacircnd o staţie mobilă (MS)
generează un pachet de date reţeaua icircl va transmite pe un canal radio disponibil icircn acel
moment Următorul pachet de pe acel canal poate să aparţină aceleiaşi MS dacă are ceva de
23
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
transmis sau dacă nu alteia Icircn acest mod atacircta timp cacirct cineva are ceva de transmis
canalele radio nu sunt blocate inutil Lucrul icircn mod pachet are o eficienţă cu totul deosebită icircn
cazul unui trafic de date icircn rafale (data bursts)
Aşadar pentru un sistem GSM bazat esenţialmente pe comutaţia de circuite este
extrem de utilă alocarea resurselor neutilizate de către serviciile vocale pentru servicii mai
puţin prioritare Atacirct HSCSD cacirct şi GPRS icircşi propun acest lucru Serviciile cele mai potrivite
pentru valorificarea resurselor rămase (preferabil printr-un mecanism de alocare dinamică)
sunt tocmai cele care implică un trafic de date icircn rafale fără pretenţii de timp real Diferenţa
fundamentală icircntre HSCSD şi GPRS este că acesta din urmă valorifică aceste resurse icircntr-un
mod mult mai eficient deoarece utilizează comutaţia de pachete Icircn plus costul serviciilor
oferite este mai atractiv deoarece utilizatorul plăteşte volumul de date transferat Practic dacă
doreşte utilizatorul poate fi sbquoconectatrsquo la reţeaua de date icircn permanenţă fiind taxat doar
pentru timpul icircn care efectiv utilizează resursele reţelei adică pentru pachetele de date
recepţionate respectiv transmise
243 Servicii GPRS
Dintre aplicaţiile cele mai potrivite pentru GPRS se pot aminti mesageria de orice tip
difuzare şi distribuţie multiplă telemetrie jocuri navigare de mică anvergură pe reţeaua
internet Icircn general orice tip de aplicaţii ce necesită comunicaţii maşină - maşină la debite
mici şi medii sunt adecvate dezvoltării icircn mediul GPRS
Ca şi icircn reţeaua GSM reţelele GPRS pot oferi două categorii de servicii de
telecomunicaţii
servicii de bază
servicii suplimentare
Serviciile de bază GPRS
Acestea sunt icircn principal servicii suport (bearer services) de transport care realizează
transmiterea datelor cu comutaţie de pachete icircntre două interfeţe şi din teleservicii Similar
situaţiei din GSM aceste interfeţe sunt
interfaţa dintre echipamentul terminal de date (de exemplu calculator) şi terminalul
mobil GPRS
24
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
interfaţa dintre reţeaua GPRS şi reţeaua de date sau echipamentul terminal cu care
comunică Aceasta interfaţă este situată icircntr-un nod poartă (gateway) GPRS similar
situaţiei din GSM unde locul ei este GMSC
Teleserviciul fundamental oferit de GPRS este cel de transport de date şi este detaliat
mai jos Un alt teleserviciu oferit de GPRS este transmisia şi recepţia de mesaje scurte (SMS)
Astfel pe de o parte capacitatea de transmisie a mesajelor scurte va creşte iar pe de alta
parte reţeaua de semnalizări pe care se transmit icircn GSM aceste mesaje nu va mai fi icircncărcată
şi cu mesaje scurte ce vin sau pleacă de la la terminalele mobile GPRS
Servicii GPRS de transport
Sunt definite doua categorii de teleservicii de transport
servicii punct-la-punct (PTP ndashPoint-to-Point)
servicii punct la multipunct (PTM-Point-to-Multipoint)
A Serviciul PTP
Serviciul punct la punct (PTP) [GSM 0260] permite transmiterea de pachete de date
icircntre doi utilizatori Este implementat icircn GPRS faza 1 Abonatul care a iniţiat serviciul se
numeşte solicitant (service requester) Partenerul său se numeşte receptor al serviciului
(service receiver)
Serviciul PTP poate fi solicitat fie de la terminalul mobil GPRS fie de la un
echipament situat icircntr-o reţea de date fixă (IP X25) Serviciul PTP poate fi oferit de
asemenea icircntre doi utilizatori mobili GPRS
Serviciul punct-la punct poate fi la racircndul sau de două tipuri
PTP fără conexiune (PTP-CLNS ndash PTP Connectinnless Network Service)
PTP orientat pe conexiune (PTP-CONS ndashPTP Connection Orientated Network
Network Service)
PTP-CLNS este un serviciu de tip datagramă ce utilizează comutaţia de pachete fără
conexiune Este util icircn cazul aplicaţiilor ce generează trafic icircn rafale şi are că scop asigurarea
interoperării cu reţele IP
PTP-CONS este un serviciu de tip circuit virtual ce utilizează comutaţia de pachete
orientata pe conexiune Icircntre cei doi utilizatori se stabileşte un circuit virtual pentru o perioadă
25
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ce poate varia de la cacircteva secunde la ore Este util atacirct pentru aplicaţii ce generează trafic icircn
rafale cacirct şi pentru aplicaţiile interactive Are că scop asigurarea interoperării cu reţele X25 şi
derularea peste GPRS a aplicaţiilor bazate pe protocolul OSI CONS(Connection Orientated
Network Protocol)
O reţea GPRS trebuie să asigure menţinerea circuitului virtual la trecerea dintr-o
celulă icircn alta dar numai icircn interiorul aceleiaşi reţele GPRS-PLMN La trecerea terminalului
mobil icircntr-o altă reţea sau icircn cazul căderii legăturii radio circuitul virtual va fi eliberat Pentru
ambele tipuri de servicii pe interfaţa radio se poate opera fie cu confirmare fie fără
confirmare a transportului de date
B Serviciul PTM
Serviciul punct la multipunct (PTM) permite transmiterea de pachete de date de la un
utilizator către mai mulţi utilizatori El este implementat icircn faza a doua a GPRS O
comunicaţie PTM se stabileşte icircntre un furnizor de servicii (ce poate fi situat icircn afară reţelei
GSM) şi un grup de terminale GPRS Şi serviciul PTM este un serviciu ce se prezintă icircn două
variante
PTMndash multidistribuţie (PTM Multicast)
PTM- grup (PTM-G--PTMGroup)
Serviciul de transport PTM-M permite transmiterea pachetelor de date icircntr-o arie
geografică dată (celulă grup de celule) fără confirmare Receptorii serviciului sunt fie toţi
abonaţii care se găsesc icircn acea zonă fie un grup icircnchis de utilizatori
Icircn cazul PTM-G receptorul serviciului este un grup predefinit de utilizatori Pachetele de
date vor fi trimise către toţi membrii grupului indiferent de aria geografică unde se găsesc
aceştia Este posibilă şi transmiterea doar către acei membri care se găsesc icircn anumite zone
geografice Transmisia poate fi şi cu confirmare
Serviciile suplimentare
Printre serviciile suplimentare avute icircn vedere icircntr-un prim stadiu se numără
redirecţionarea necondiţionată a apelurilor redirecţionarea cacircnd abonatul nu este accesibil şi
definirea de grupuri icircnchise de utilizatori In afară de aceste servicii recomandarea GSM
0260 descrie posibilitatea oferirii de servicii adiţionale cum sunt accesarea bazelor de date
servicii de mesagerie validări de cărţi de credit servicii de monitorizare electronică tranzacţii
electronice etc
26
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
244 Arhitectura GPRS
GPRS este o soluţie pentru operatori deoarece nu necesită modificări substanţiale icircn
reţeaua GSM Aşa cum se observă icircn figura 72 reţeaua nucleu a GPRS operează icircn paralel
cu GSM-NSS
Figura 23 Arhitectura reţelei GPRS
25 LabWindowsCVI
La dipecer am considerat un calculator desktop sau laptop pe care va rula o aplicaţie
de monitorizare a datelor măsurate implementată icircn LabWindowsCVI
LabWindowsCVI este o platformă pentru dezvoltare de software cu orientare pe
aplicaţii de instrumentaţie După cum se deduce din denumirea sa (CVI ndash C for Virtual
Instrumentation) limbajul acceptat este ANSI C cu extensii specifice CVI ne pune la
dispoziţie un mediu interactiv de dezvoltare a unor aplicaţii pentru sistemul de operare
Windows Icircmbină deci avantajele programării de tip vizual cu avantajele simplităţii şi
flexibilităţii limbajului C Deşi a fost creat special pentru aplicaţii de instrumentaţie şi control
27
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
multiplele lui facilităţi icircl fac capabil să suporte şi dezvoltarea unor aplicaţii de mărime medie
care să fie de altă factură Fiecare funcţie de bibliotecă din cadrul acestui mediu are o interfaţă
specializată numită panoul funcţiei (function panel) care permite
bull Help on-line
bull Selectare şi declarare de variabile sau constante necesare
bull Execuţie interactivă
bull Inserarea funcţiei editate icircntr-un text sursă
Mediul este extrem de flexibil permiţacircnd interfaţarea bidirecţională cu alte compilatoare de
C sau C++ De asemenea se pot folosi şi DLL-uri
Puterea mediului LabWindowsCVI este dată de bibliotecile puse la dispoziţia
programatorului acestea conţinacircnd funcţii pentru implementarea diverselor faze care conduc
la o aplicaţie din domeniul achiziţiei de date sau a controlului automat
Pentru achiziţia de date există următoarele biblioteci specializate
bull de instrumente
bull pentru interfaţa GPIBGPIB 4882 (General Purpose Interface Bus)
bull pentru achiziţie de date
bull pentru operaţii IO icircn cazul achiziţiei de date
bull pentru interfaţa serială RS232
bull pentru sistemul VXI
Biblioteci specializate pentru analiza datelor
bull pentru IO
bull pentru formatarea specială
bull pentru analiză
bull pentru analiză avansată
Biblioteci specializate pentru vizualizare date
bull pentru crearea unei interfeţe utilizator de tip vizual
Biblioteci specializate pentru lucrul icircn reţea şi comunicarea icircntre diverse aplicaţii
bull pentru DDE (Dynamic Data Exchange)
bull pentru TCP (Transmision Control Protocol)
bull pentru sistemul X de sub Unix
Icircn afară de acestea mai există o bibliotecă specială numită biblioteca de instrumente
care conţine drivere şi sursele lor pentru osciloscoape multimetre şi generatoare de funcţii
De asemenea există posibilitatea creării unui instrument propriu Biblioteca pentru interfaţa
28
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cu utilizatorul conţine funcţiile necesare creării unui GUI (Graphical User Interface =
Interfaţă grafică cu utilizatorul) după necesităţi
Structura generică a unei aplicaţii dezvoltate sub CVI
Un proiect complet pentru una din clasele de aplicaţii specifice mediului CVI are
următoarele componente generice
bull interfaţa cu utilizatorul
bull partea de control a aplicaţiei
bull partea specializată pentru achiziţia datelor
bull partea specializată icircn analiza respectivelor date
Mai jos prezentăm o schemă generică a aplicaţiilor CVI
Figura 24
Tipuri de fişiere folosite icircn cadrul CVI
PRJ se referă la fişiere de tip proiect
UIR se referă la fişiere care conţin descrierea unei interfeţe grafice cu utilizatorul
C fişiere sursă
H fişiere header
FP fişiere care reţin descrierea unui instrument
LIB fişiere bibliotecă
DLL fişiere link-editate pentru apel dinamic
OBJ fişiere obiect
29
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a unora dintre meniurile şi ferestrele mediului de dezvoltare CVI
Fereastra proiect
Prezentăm mai jos doar informaţiile suplimentare faţă de o fereastră proiect standard
Pe lacircngă datele curente despre fiecare fişier inclus icircn proiect acesta mai are precizat şi unul
sau mai mulţi din următorii indici
- I indică faptul că respectivul fişier conţine descrierea unui driver de instrument
- S faptul că s-au făcut modificări icircn fişierul respectiv şi deci trebuie salvat
- C indică obligativitatea compilării respectivului fişier icircnainte de rularea aplicaţiei
- indică faptul că fişierul este deschis icircntr-o fereastră de editare
- indică ca acest fişier nu este deschis
Aplicaţii consolă
Pentru aplicaţiile tip consolă clasice C unde se folosesc pentru IO funcţiile scanf şi
printf vizualizarea ieşirii icircn mod text a acestora se va face icircntr-o fereastră specială numită
ldquoStandard InputOutput Windowrdquo
Observaţie Dacă se va programa icircn acest mod trebuie activată opţiunea ldquoBring Standard
InputOtput to front whenever modifyrdquo din Environment ce aparţine meniului Options
Generatorul interactiv de aplicaţii
Butoanele directe ale editorului de interfeţe cu utilizatorul
folosit la selectare mutare şi dimensionare obiecte
utilizat pentru a modifica textul asociat cu obiectele din UIR folosind facilităţile de
etichetare
folosit pentru colorarea obiectelor Este suficientă o apăsare pe butonul din dreapta a
mouse-ului şi va colora automat obiectul selectat cu culoarea curentă
oferă facilităţi de operare Atunci cacircnd este activat evenimentele vor fi afişate icircn partea
dreaptă a barei de facilităţi
30
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a cacirctorva din meniurile mai importante ale generatorului
Menu Bars activează cutia de dialog care ne prezintă toate barele de meniu definite deja de
programator
Figura 25
Create apelează fereastra Edit Menu Bar pentru a crea o nouă bară de meniuri
Edit apelează fereastra Edit Menu Bar pentru a modifica o bară de meniuri existentă
Fereastra Edit Menu Bar(fig26) permite specificarea sau modificarea caracteristicilor
unei bare de meniuri icircn curs de creare sau care există deja
31
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 26
Menu Bar Constant Prefix este identificatorul intern al respectivei bare de meniuri Acesta
va fi folosit de funcţia LoadMenuBar pentru icircncărcarea icircn memorie a parametrilor care conţin
această bară Va fi definit automat icircn fişierul header din scheletul de aplicaţie
Item se referă la numele meniului curentsubmeniucomandă de meniu Dacă icircn faţa primei
litere a unui element din meniu se adaugă 2 ldquounderscorerdquo la execuţie acesta va putea fi
selectat prin combinaţia Alt+prima literă
Constant name este alipit la Menu Bar Constant Prefix pentru a se genera identificatorul
elementului curent Este folosit de funcţii ca GetMenuBarAttribute sau SetMenuBarAttribute
De asemenea acest identificator este returnat de GetUserEvent atunci cacircnd apare un
eveniment generat de o comandă a meniului
Callback Function Permite specificarea numelui unei funcţii de răspuns care va fi apelată
automat la activarea respectivului element Folosirea ei este opţională
32
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ModifierKeyShortcutKey se combină pentru a ataşa o cheie ldquohotrdquo pentru elementul
curent
buton ce permite coboracircrea icircn interiorul unei ierarhii de meniuri
buton ce permite urcarea icircn interiorul unei ierarhii de meniuri
Panouri
După cum am spus sunt echivalentul ferestrelor din programarea Windows Pentru a le crea
Create1048774Panel ne pune la dispoziţie un nou panou icircn cadrul UIR-ului curent Prin dublu
ldquoclickrdquo pe acesta se va intra in fereastra de editare a caracteristicilor panoului Această
fereastră este prezentată mai jos
Figura 27
La partea de Menu Bar se poate specifica o bară din cele deja create icircn cazul dezvoltării
respectivei interfeţe
Restul parametrilor au fost discutaţi anterior sau sunt cunoscuţi din programarea Windows
33
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Crearea controalelor
Exceptacircnd diferenţele care apar funcţie de destinaţia acestora există o serie de parametri
comuni fiecărui control pe care icircl creăm Mai jos prezentăm fereastra care apare de exemplu
la crearea unui control de tip numeric şi anume un buton
Figura 28
Se observă că identificatorul intern şi posibilitatea de ataşare a unei funcţii de răspuns
rămacircne De asemenea o serie de informaţii specifice părţii de etichetare Icircn plus apar
specificaţii privind modul de afişare a datelor şi limitele icircntre care acestea pot fi variate prin
intermediul acestui control
34
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
TAB ORDER
Fiecare control de pe un panou activ are o poziţie icircn ordinea de salt prin intermediul
unui tab Această ordine precizează care va fi următorul control ce va fi activat icircn cazul icircn
care utilizatorul apasă Tab sau Shift+Tab Implicit acestea sunt adăugate exact icircn ordinea
creării lor de către programator Numai că nu icircntotdeauna aceasta este ordinea de salt dorită a
fi activă la terminarea aplicaţiei Icircn aceste condiţii secvenţa Edit1048774Tab Order ne va activa un
panou specializat pentru aceasta
Figura 29
noua formă de cursor activă icircn interiorul ferestrei Prin apăsarea pe un control oarecare i
se
poate modifica ordinea de activare
specifică faptul că se acceptă noua ordine de apelare
se iese cu păstrarea vechii ordini
Find UIR Objects
O altă facilitate a editorului este Find UIR Objects care aparţine meniului View Icircn
cadrul unor proiecte mari se dovedeşte a fi extrem de utilă
35
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 210
După cum se observă ne permite căutarea după dorinţă a unui nume icircn diverse categorii de
obiecte ale interfeţei cu utilizatorul
GENERATE
Este meniul folosit pentru generarea fie a icircntregului cod schelet fie numai a codului
corespunzător unui obiect proaspăt introdus icircntr-un UIR
Secvenţa Code1048774Generate1048774AllCode va genera codul schelet pentru aplicaţie Acesta va
conţine şi un ldquoswitchrdquo pentru tratarea evenimentelor Alegerea evenimentelor care vor fi
automat introduse se face din Code1048774Preferences
MENIUL ARRANGE
Icircncă de la primele aplicaţii vom observa că una din operaţiile mari consumatoare de
timp este aranjarea controalelor icircn panou după specificarea caracteristicilor acestora Pentru a
evita acest lucru CVI a fost prevăzut cu o serie de facilităţi de aranjare automată pe care le
vom prezenta mai jos
Figura 211
Top Edges asigură spaţiere verticală icircntre partea superioară a controalelor Cel mai de
sus şi cel mai de jos control sunt considerate puncte de referinţă
36
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Vertical Centers asigură spaţiere verticală icircntre centrele controalelor Cel mai de sus
şi cel mai de jos control sunt considerate puncte de referinţă
Bottom Edges asigură spaţiere verticală icircntre partea inferioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Vertical Gap asigură spaţiere verticală icircntre partea superioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Left Edges setează spaţii orizontale egale icircntre marginile din stacircnga ale controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Centers setează spaţii orizontale egale icircntre centrele controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Right Edges setează spaţii orizontale egale icircntre marginile din dreapta ale
controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Gap spaţiere orizontală icircntre controale Cel mai de sus şi cel mai de jos
control sunt considerate puncte de referinţă
Horizontal Compress minimizează spaţiile pe orizontală dintre controale şi elimină
orice spaţiu dintre ele
Distribute Vertical Centers
Comanda Distribute realizează la apel ultima opţiune selectată din lista prezentată
mai sus
37
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 11 Structura hardware a unui RTU actual
Entitatea de tip RTU este un sistem de sine statator care trebuie sa funcţioneze
permanent cat mai eficient fară un consum mare de resurse de aceea există mai multe tipuri
cum ar fi sisteme autonome minimale mici medii si mari Acestea diferă prin modul de
gestionare a resurselor proprii Strategiile de utilizare a resurselor proprii eficient şi economic
fac ca aceste sisteme de sine stătătoare să fie limitate la funcţiile de bază caracteristice unui
RTU
Odata cu dezvoltarea sistemelor intregate şi microelectronicii necesităţile de
imbunătăţire a funcţionalităţii RTU-urilor a devenit tot mai stringentă din punctul de vedere al
dezvoltatorilor de sisteme de achizitie monitorizare şi control Acestă dezvoltare se reflecta
icircn special pe partea de funcţionalitate obţinacircndu-se un comportament independent de sine
stătător care permite procesări multiple respectiv analize de date achiziţionate fară a influenţa
funcţiile de bază ale unui RTU Datorită dezvoltării modulelor specifice unui RTU s-a
cacircştigat atat din punct de vedere hardware cacirct şi software La nivel software tot mai multe
RTU-uri pot fi programate icircn diferite medii de programare cum ar fi CC++ Pyton Step 7
sa ceea ce face ca aceste sisteme sa fie deschise flexibile si reprogramabile devenind
accesibile oricarui tip de utilizator Din punct de vedere hardware prin diversificarea
modurilor de interfaţare cu diferiţi senzori şi actuatori sau unităţi programabile şi prin
imbunătăţirea unităţilor de procesare se obţine o eficientizare a structurii hard a oricarui tip de
sistem automat Totodată aceasta aduce imbunătăţiri a functionalităţii sistemului reuşind sa
se ajungă la o modularizare a functionalităţii o creştere a randamentului de funcţionare a
instalaţiei de proces şi obţinerea unei aplicaţii SCADA modernă scalabilă si interactivă
6
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
12 Soluţia propusă
Modemul inteligent (figura12) prin caracteristicile sale avansate (memorie si procesor
propriu) poate devenii in orice moment un RTU Acest lucru duce la imbunatatirea structurii
hardware a unui sistem automatizat reducand semnificativ costurile si dimensiunile
corespunzatoare ale unui astfel de sistem
Figura 12 Modem inteligent
In funcţie de modul de comunicaţie şi de structura respectiv accesbilitatea sistemului
care se doreşte a fi monitorizat şi controlat la ora actuală pe piaţă se gasec mai multe soluţii
Icircn funcţie de specificaţii de sistem se pot alege mai multe solutii de aceea etapa de proiectare
trebuie analizata cu atentie şi gasită o soluţie optimă
La ora actuală telefonia mobilă joacă un rol important in transmisia de date oferind un
suport avantajos pentru dezvoltarea unor sisteme automate De aceea multe modemuri
existente au suport GSM prin care se permite interacţiunea cu entităţile existente icircn cadrul
unei instalatii de proces
Folosind aceste informaţii imi propun realizarea unei aplicaţii de telemetrie care sa
poată prelua informaţii de la diferiţi senzori prin intermediul unor medemuri inteligente ( de
genul celor descrieşi mai sus ) să le transmită prin intermediul reţelei de GPRS catre un
calculator central ( dispecer ) şi aici o iterfaţă grafică implementată in LabWindowsCVI să
permită vizualizarea informaţiilor recepţionate O schemă general a aplicaţiei este
următoarea
7
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 13
8
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
2Fundamentare teoretică
21 Noţiuni de teoria măsurătorilor
Metrologia este un domeniu al tehnicii cu rădăcini icircn spaţiul Fizicii si ramificaţii icircn
toate sectoarele activităţii practice omeneşti (printre care şi cel al Electronicii) care se ocupa
cu tehnica masurărilor adică cu mijloacele şi metodele pentru determinarea cantitativă ndash
valorică a marimilor fizice Metrologia ndash ca disciplină de sine stătătoare ndash se referă la icircntregul
ansamblu al fenomenelor fizice pe care le studiaza dintr-un punct de vedere propriu şi anume
acela al masurării care este ndash icircn esenţă ndash o comparare experimentală de mărimi ea
stabilind standardele unităţilor de masură şi ale etaloanelor de referinţă pentru aceste unităţi
procedeele de comparare a mărimilor cu etaloanele şi caracteristicile de performanţă (ca
interval game rezoluţie sensibilitate fidelitate dinamică mobilitate precizie etc care ndash icircn
general ndash se numesc caracteristici metrologice) Aplicaţiile metrologiei adică efectuarea
practica a masurării diverselor specii de mărimi caracteristice unor anume domenii constituie
ramuri ale disciplinei acelor domenii aşa sunt măsurările electrice măsurarile electronice
măsurările acustice controlul dimensional fotometria sistemele pentru măsurări automate
măsurările geometrice măsurările hidraulice si multe altele
211 Conceptul de măsurare
Măsurarea este o activitate experimentală de tip informatic al carui scop este
obţinerea unor date cantitative cu privire la proprietăţile unui obiect sau ndash mai general ndash ale
unui sistem şi redarea lor icircntr-o forma potrivită pentru observator (utilizator) Semnificaţia
(interpretarea) pe care observatorul-utilizator o atribuie acestor date cantitative prin
intermediul convenţiilor folosite pentru reprezentarea lor constituie informaţia care este
necesară icircn procesul continuu de cunoaştere comunicare şi conducere (decizie) Prin
identificarea proceselor şi modelarea lor (adică prin reprezentarea matematică a relaţiilor din
sistemul analizat) se stabilesc anumite proprietăţi (elemente specifice) diferite calitativ pe
care le putem denumi mărimi (sau specii de mărimi ndash pentru a le preciza natura lor diferită) si
anumite corelaţii icircntre ele descrise matematic prin legi ndash dacă sunt deduse experimental sau
9
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
prin teoreme formule etc ndash daca sunt stabilite deductiv din legi Icircn acest sens după cum se
ştie mărimile (speciile de mărimi) se diferenţiază (clasifică) icircn mărimi primitive şi mărimi
derivate Cunoaşterea sistemului (stărilor sistemului icircn evoluţia lui) icircn vederea elaborarii
deciziilor de conducere a sistemului pe o traiectorie optima sau una anume necesară implică
evaluarea cantitativă a mărimilor specifice sistemului şi interpretarea lor informaţionala
Acest lucru nu se poate realiza decacirct experimental (ldquope viurdquo si icircn ldquotimp realrdquo) prin măsurări
ceea ce explică rolul cognitiv de comunicare si decizional (mai cuprinzator informaţional) al
măsurărilor
Icircn acest context mai trebuie precizat ca utilizatorul (observatorul) ndash adică
ldquobeneficiarulrdquo icircn activitatea de măsurare ndash poate fi uman sau de tip maşină (icircn cazul
sistemelor automate) Determinarea cantitativă prin măsurare a speciilor de mărimi diferite
calitativ nu se poate realiza decacirct icircn raport cu mărimi de aceeaşi specie (aceeaşi natura fizica)
alese ca unităţi cantitative numite unităţi de măsură fixate icircn mod convenţional dar icircn cadrul
unui sistem de unitaţi de măsură coerent
Se poate acum defini mai bine conceptul de masurare Astfel din punctul de vedere
metrologic măsurarea ldquoeste operaţia prin care se stabileşte pe cale experimentală raportul
numeric icircntre mărimea de măsurat si o valoare (ldquocantitaterdquo) oarecare a acesteia luată ca
unitate de măsurărdquo
Din punctul de vedere tehnic ldquomăsurarea este operaţia experimentală prin care se
determină cu ajutorul unor mijloace de măsurat valoarea numerică a unei mărimi (numită
masurand) icircn raport cu o unitate de măsură datărdquo din aceeasi specie cu masurandul
Din punctul de vedere al modelării masurarea este o operaţie prin care se stabileşte o
aplicaţie de la o specie de mărimi X la mulţimea numerelor reale R sau ndash mai rar ndash R2 (altfel
spus se stabileşte o relaţie icircntre valoarea unei marimi X si un numar real Xm R)
212 Procesul de masurare
Ansamblul operaţiilor experimentale care se execută icircn scopul obţinerii rezultatului
măsurării sub forma unei percepţii realizată de observatorul-utilizator (operatorul ce
efectuează măsurarea) constituie procesul de măsurare Orice proces de măsurare are
urmatoarele componente principale
- mărimea de măsurat (măsurandul)
- metoda de măsurare
- mijlocul (aparatul) de măsurat
10
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
- măsura (etalonul)
- operatorul (observatorul) şi
- prelucrarea ndash tratarea datelor
care ndash icircn funcţie de domeniul precizia şi scopul măsurării ndash au o pondere şi o importanţă
relativă diferită Această structură a procesului de măsurare diversitatea mărimilor de
masurat multitudinea tehnicilor pentru măsurare (mijloace şi metode) care să satisfacă
exigenţele operatorului ndash beneficiar al măsurarii (exigenţe destul de nuanţate icircn funcţie de
scopul măsurării viteza de măsurare costul măsurarii condiţiile ambientale etc) conduc la o
mare varietate a măsurărilor icircn general
Un exemplu particular al acestei mari varietaţi o constituie icircnseşi măsurarile
electronice (care au ca măsurand specii diverse cum sunt mărimile de stare ale cacircmpului
electric şi magnetic mărimile electrice de circuit parametrii de circuit caracteristici de
transfer frecvenţe timp defazaje forme de undă neliniarităţi distorsiuni zgomote cu
regimuri şi o dinamică ample cu influenţe de mediu şi cuplaje adeseori aleatorii etc)
213 Erori de măsurare
Icircn practică se constată că rezultatul unei măsurări nu depinde numai de valoarea
măsurandului el putacircnd fi influenţat de o serie de factori de natura obiectivă (mijloc de
măsurare metoda de măsurare factori exteriori procesului de măsurare etc) sau de natura
subiectivă Pentru caracterizarea rezultatelor obtinuţe icircn procesul de măsurare se definesc
urmatoarele valori
Valoarea adevarată (reala) Xa a unei mărimi este valoarea exacta a mărimii
respective icircn condiţiile existenţe la un moment dat De obicei valoarea adevarată a unei
mărimi nu poate fi determinată experimental ea icircnlocuindu-se cu o valoare convenţional
adevarată X care se obţine cu ajutorul unor mijloace de măsurare deosebit de precise practic
se consideră ca diferenţa dintre valoarea adevarată si valoarea convenţional adevarată este
neglijabilă şi deci cele două noţiuni sunt echivalente
Rezultatul unei măsurări individuale x care se obţine cu ajutorul unor mijloace de
măsurare obisnuite reprezintă valoarea măsurată Abaterea valorii măsurate faţă de valoarea
adevarată a măsurandului constituie eroarea de măsurare
Intervalul icircn care se estimează cu o anumita probabilitate numită nivel de icircncredere
ca se afla valoarea adevarată a măsurandului se numeste incertitudine de măsurare
11
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
incertitudinea de măsurare estimează limitele erorilor de măsurare Pentru o estimare
obiectivă este necesar ca icircmpreună cu rezultatul măsurarii să se specifice atacirct erorile cacirct şi
incertitudinea de măsurare Icircn figura 21 sunt reprezentate schematic noţiunile prezentate
anterior
Figura 21
Fig 11 Explicativă privind valoarea adevarată valoarea măsurată
valoarea convenţional adevarată eroarea de măsurare şi incertitudinea
de măsurare
214Clasificarea erorilor de măsură
Deoarece cauzele erorilor de măsurare sunt numeroase există şi multe criteri de
clasificare a lor Dupa caracterul lor erorile de măsurare pot fi grupate conform schemei
următoare
Figura 22
12
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
215 Etaloane
Etalonul este un sistem fizic care constituie un mijloc de măsurare (măsura instrument
sau aparat de măsurat) ce serveste la păstrarea şi reproducerea unităţilor de măsura cu
precizia metrologică corespunzatoare stadiului la care s-au dezvoltat tehnicile de măsurare Icircn
afara acestor două roluri prin care se ldquodefineşterdquo o unitate de măsura etaloanele mai sunt
utilizate icircn operaţiile de calibrare şi icircn icircnsuşi procesul de măsurare (de icircnaltă precizie) ca
elemente de referinţă precum şi icircn construcţia unor aparate (dispozitive) utilizate icircn alte
scopuri decacirct mşsurarea propriu-zisa (ca de exemplu dispozitive de automatizare
stabilizatoare electronice generatoare de semnal etc)
Calibrarea icircnseamnă ndash icircn metrologie ndash compararea unui aparat de măsurat cu un
etalon icircn scopul gradării sau ajustării verificării sau etalonării aparatului de masurat
Elementul de referinţă este un etalon care asigură (ldquofurnizeazardquo) o mărime fizică anume cu
o valoare bine cunoscută (cu o precizie metrologică corespunzatoare scopului urmarit)
Un etalon trebuie să fie invariabil icircn timp şi icircn spaţiu să poata fi folosit usor icircn tehnică
şi să poată fi reconstituit oricacircnd Unicitatea şi conformitatea măsurărilor icircn orice loc şi la
orice moment impun realizarea unui sistem de etaloane care să
asigure
- generarea principalelor unităti de măsură icircn conformitate cu definiţiile lor din SI
(adică ldquomaterializarea ldquo definiţiilor prin experimente adecvate)
- menţinerea (conservarea) acestor unităţi de măsură constante icircn timp icircn toate
laboratoarele metrologice pe plan mondial
- corelarea icircntre ele a unităţilor de măsură trecerea la alte unitati derivate (etaloane de
derivare) şi extinderea limitelor de măsurare cu precizia necesară cum ar fi trecerea la
multipli şi submultipli ai unităţilor de măsură (etaloane de raport)
Aceste trei operaţii fundamentale icircn activitatea metrologică se efectuează icircn
mod corespunzator cu urmatoarele trei categorii de etaloane
- etaloane de definiţie (adica etaloanele prin care se generează principalele unităţi de
măsură şi icircn principal cele fundamentale aşa cum este ndash de exemplu ndash determinarea absolută
a amperului cu ajutorul balanţei de curent)
- etaloane de conservare (adică etaloanele de menţinere a unităţii de măsură cu o mare
stabilitate icircn timp şi faţă de influenţele exterioare de mediu)
- etaloanele de transfer (adica cele care asigura etalonarea tuturor tipurilor
13
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
de aparate de masurat icircn intervale largi de valori ale masurandului pentru marimi constante
sau variabile icircn timp) asa cum sunt etaloanele de raport etaloanele de derivare si etaloanele
de transfer (curent continuu ndash curent alternativ) prin compararea efectelor (termice
electrodinamice etc) ale semnalelor de curent sau tensiune produse asupra unui acelaşi
element sensibil
22 Conceptul de M2M
M2M este o abreviere de la Machine-to-Machine deşi tot mai des se foloseşte şi
pentru identificarea tehnologiilor Man-to-Machine Machine-to-Man Machine-to-Mobile sau
Mobile-to-Machine Pe scurt este vorba de un serviciu ce permite comunicarea dintre
echipamentele aflate la distanţă şi aplicaţiile la care sunt conectate De fapt M2M este o
evoluţie comercială a tradiţionalelor sisteme de control al echipamentelor din domeniul
industrial soluţie aplicată cu succes pentru prima dată de NASA Adaptată nevoilor
companiilor (un rol important l-a jucat compania France Telecom) M2M permite companiilor
sa administreze mai uşor echipamentele aflate la distanţă si să le integreze cu procesele
interne
Zona soluţiilor M2M este cotată ca fiind una dintre cele mai promiţătoare in
următorii ani ca urmare a creşterii nevoii de automatizare a proceselor şi a posibilităţii de a
lua decizii intr-un timp cat mai scurt posibil ceea ce va genera proiecte majore Aplicaţiile
M2M permit prin monitorizarea si controlul maşinilor şi proceselor de la distanţă reducerea
costurilor optimizarea proceselor si imbunătăţirea nivelului serviciilor oferite clienţilor
permitand economii de timp şi de personal
14
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
23 Limbajul Python
Icircn cadrul unei instalaţii de telemetrie modemurile deţin memorie şi processor propriu
motiv pentru care se numesc ldquointeligenterdquo Pe lacircngă memorie şi processor aceste modemuri
inteligente au şi un interpretor al unui limbaj de programare de nivel icircnalt Icircn cazul
medemurilor alese de mine acest limbaj este Python
Python este un limbaj de programare dinamic orientat pe obiect care poate fi folosit
pentru mai multe tipuri de dezvoltarea software Oferă un puternic suport pentru integrarea cu
diferite instrumente folosind librării standard de extensie şi poate fi invăţat in cacircteva zile
231 Tipuri de date
Sunt 3 grupuri de tipuri de date in Python
Scalari ndash care au sutipurile intreg intreg lung si sir de caractere
i = 1 li = 9999999999L s = Hello
Secvenţe care conţin un anumit număr de obiecte arbitrare intr-o ordine definită
L = [1 5 3 9 14]
Liste asociative care permit accesul la valori bazate pe chei Aceste chei pot fi arbitrare
dar sunt obiecte permanente De exemplu
D = b Python a 5 print D[a]
Afisează 5
Spre deosebire de Pascal C C++ sau Java Python este un limbaj tastat dinamic Astfel
următoarea secvenţă de cod este perfect valabilă icircn Python
a = 7 7 (integer)
a = str(2a) + bytes 7 bytes (string)
15
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Icircn Python variabilele nu sunt declarate icircn script ele apar doar atunci cand sunt folosite
232 Operatori
Icircn Python există următorii operatori
Operatori aritmetici
+ - ~ ltlt gtgt amp ^ |
Operatori relaţionali şi logici
is in lt lt= gt gt= == = not and or
Operatori de asignare
= += -= = = = = ltlt= gtgt= amp= ^= |=
Alţi operatori
( ) [ ] [] `` lambda
233 Comenzi compuse
Comenzile care aparţin aceluiaşi grup logic sunt deplasate spre dreapta cu acelaş
număr de spaţii albe
if a gt 0
b = 1
c = 2
De obicei fiecare comandă icircncepe pe o linie nouă
16
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
O instrucţiune se poate continua pe racircndul următor prin plasarea caracterului backslash
la sfacircrsitul randului Acest lucru nu este necesar dacă există paranteze deschise
my_list = [1
[abc 2]
-3+6j]
print my_list
234 Execuţii condiţionale
Python foloseşte if elif (nu elsif sau elseif) si else pentru a indica execuţia condiţională a
unei instrucţiuni
De exemplu
if a gt b
print a is greater than b
elif a lt b
print a is lower than b
else
print a equals b
Se poate folosi si interval prescurtate de testare
if 2 lt= a lt= 7
print a is in the interval [2 7]
235 Bucle
Buclele in Python sunt definite prin cuvintele cheie for şi while
Următorul exemplu foloseşte o buclă while pentru a colecta toate numerele intregi
cuprinse intre 0 si 99 intr-o listăacirc
numbers = [ ]
i = 0
while i lt 100
17
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
numbersappend(i)
i = i + 1
O buclă similar for arată in felul următor
numbers = [ ]
for i in range(100)
numbersappend(i)
Icircn loc de buclele explicite prezentate mai sus se poate folosi şi bucle implicite după
cum urmează
numbers = range(100)
range(100) generează o listă cu toate numerele intregi de la 0 la 100
24 General packet radio service(GPRS)
Comunicaţia intre modemuri ( RTU-uri ) şi dispecer se poate face prin mai mlte
mediu de transmisie
- Cablu telephonic
- Radio
- GSMGPRS
- Fibră Optică
Opţiunea pentru care am optat icircn partea de comunicaţie este GSMGPRS deoarece
asigură o cumunicaţie sigură şi oferă simplitate pentru priectant
GPRS introduce servicii de transport cu comutaţie de pachete pentru debite de la 14
kbps la maximum 170 kbps Practic GPRS este o reţea cu comutaţie de pachete de sine
stătătoare care se daugă la reţeaua GSM GPRS interoperează cu infrastructura GSM la
nivelul subsistemului staţiilor de bază BSS şi al bazelor de date din subsistemul reţea NSS
(HLR VLR AUC) GPRS preia traficul de date iar GSM traficul de voce care rămacircne
comutat prin MSC
Datele sunt transmise prin GPRS icircn pachete de lungimi fixe Fiecare pachet conţine
adresa destinaţie pentru a putea fi rutat de nodurile GPRS Modificarea pe interfaţa radio e
18
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
dată de introducerea codării adaptive a canalului Aceasta icircnseamnă că protecţia datelor
variază icircn timp icircn funcţie de starea canalului radio GPRS poate utiliza pentru o conexiune
de date de la fracţiuni de canale de trafic pacircnă la maximum 8 sloturi temporale (adică tot
cadrul TDMA) icircn funcţie de resursele disponibile
Capacitatea alocată unei conexiuni va varia icircn funcţie de icircncărcarea cu trafic de pe
frecvenţa respectivă precum şi de tipul traficului (vocedate) Este important că utilizacircnd
comutaţia de pachete o transmisie de date nu ocupă resursele reţelei decacirct atunci cacircnd sunt
date de transmis Cacircnd nu există pachete de transmis resursele de pe interfaţa radio pot fi
utilizate pentru alte transmisii de date sau pentru trafic cu comutaţie de circuite
GPRS are o reţea nucleu proprie formată prin interconectarea serverelor care
gestionează transmisia de pachete numite noduri suport GPRS (GSN- GPRS Suport Node)
Aceasta reţea operează icircn paralel cu subsistemul reţea şi comutaţie (NSS) al GSM care va
gestiona icircn continuare transmisia cu comutaţie de circuite
241 Caracteristicile sistemului GPRS
GPRS este un serviciu specificat icircn faza 2+ de standardizare a GSM El este oferit prin
intermediul unei infrastructuri numită şi sistem sau reţea GPRS ce interoperează cu
infrastructura bdquoclasicărdquo GSM
GPRS se icircncadrează icircn orientarea generală a ETSI de a asigura prin aza 2+ o platformă
ce va putea fi utilizată ulterior icircn reţele de generaţia a treia Astfel el este onsiderat
actualmente soluţia de bază pentru transmiterea de date icircn UMTS Fiind un standard SM
GPRS păstrează evident şi compatibilitatea cu sistemul părinte fiind practic o extensie a
acestuia pentru transmisii de date la debite mai mari GPRS reprezintă la ora actuală cel mai
reprezentativ sistem de generaţie intermediară (25G)
Dacă HSCSD ar putea fi considerat o ajustare fină a GSM GPRS reprezintă cu
siguranţă un salt tehnologic semnificativ deoarece marchează trecerea de la comutaţia de
circuite la cea de pachete Schimbarea tipului de comutaţie se referă icircn acest moment (atacirct la
25G cacirct şi icircn 3G) doar la transmiterea datelor vocea rămacircnacircnd icircn continuare comutată prin
MSC Datorită eternei insuficienţe a resurselor radio este probabil ca icircntr-o fază nu prea
icircndepărtată de dezvoltare a UMTS şi de ce nu chiar a GPRS să fie utilizată comutaţia de
pachete şi pentru serviciile de timp real vocale sau non-vocale
Icircn concluzie GPRS reprezintă o infrastructura ce permite transmiterea datelor pe baza
comutaţiei de pachete icircntr-o reţea GSM
19
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Pentru a putea oferi debite de date mai ridicate icircn GPRS se urmăreşte utilizarea cacirct
mai eficientă a resurselor radio Pentru aceasta se preia de la HSCSD ideea operării multislot
posibilitatea de a proteja mai puţin informaţia utilă pe interfaţa radio şi alocarea asimetrică
uplink downlink Icircn ciuda acestor asemănări icircnlocuirea comutaţiei de circuite cu cea de
pachete face din GPRS un sistem complet diferit de HSCSD Aceasta atacirct din punct de vedere
al utilizatorului care constată un timp de conectare practic nul şi rate de transfer mai bune
dar şi din punct de vedere al operatorului care efectuează o investiţie incomparabil mai mare
răsplătită printr-o mai eficientă utilizare a interfeţei radio cu tot ceea ce rezultă de aici (mai
mulţi clienţi mai multe servicii aplicaţii diverse)
Rezumacircnd icircn GPRS este implementat un set de soluţii tehnologice ce au ca scop
principal creşterea eficienţei utilizării interfeţei radio Aceasta derivă atacirct din experienţa
sistemelor anterioare cacirct şi mai ales din operarea icircn modul pachet a datelor ce se transmit
Soluţiile utilizate sunt
creşterea ratei de transmisie a datelor prin reducerea codării canalului (sunt definite
şi pot
fi utilizate 4 scheme de codare 905kbps 134 kbps 156 kbps 214kbps)
creşterea ratei de transmisie prin operare multislot ( pacircnă la 8 sloturi temporale per
utilizator)
creşterea eficienţei utilizării resurselor radio prin multiplexarea mai multor
utilizatori pe acelaşi canal fizic (posibila datorită transmisiei de pachete maximum 8
utilizatori pe slot temporal)
creşterea eficienţei utilizării resurselor radio prin alocare asimetrică uplinkdownlink
creşterea eficienţei utilizării resurselor radio prin alocarea dinamică a canalelor icircntre
servicii comutate icircn mod circuit respectiv pachet
Cacircnd un icircntreg cadru TDMA este alocat unui utilizator cu schema de protecţie minimă
(practic fără corecţie de erori) rezultă rata utilă instantanee maximă posibilă icircn GPRS
(8x214 kbps=1712 kbps)
242 Comutaţie de circuite şi comutaţie de pachete
20
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comutaţia este o tehnică esenţială icircn reţelele de comunicaţii Fără ea fiecare
echipament terminal ar trebui conectat printr-o cale directă cu fir sau fără la toate celelalte
echipamente terminale din reţea Principalele metode de comutaţie sunt
comutaţia de circuite
comutaţia de mesaje
comutaţia de pachete
Comutaţia de circuite
Aceasta presupune realizarea icircntre emiţător şi receptor a unei căi fizice de comutaţie
dedicate numită circuit Icircntreaga comunicaţie se desfăşoară icircn trei etape
stabilirea conexiunii (sau deschiderea circuitului)
transferul de informaţii
eliberarea conexiunii (circuitului)
Este de remarcat faptul că stabilitatea fizică a caii de comunicaţie are loc icircnainte de
icircnceperea transmisiunii propriu-zise Aceasta poate conduce la durate semnificative ale
timpului de conectare
Un dezavantaj notoriu al acestei tehnici este alocarea fixă a resurselor de comunicaţie
necesare pe durata conexiunii indiferent dacă la un moment sau altul mediul de transmisie
este folosit total parţial sau deloc
Pe de altă parte avantajele comutaţiei de circuite provin tocmai din această alocare fixă de
resurse care permite
asigurarea unei icircntacircrzieri constante şi minime
garantarea unui debit util corespunzător mediului de comunicaţie şi serviciului utilizat
Toate acestea facilitează oferirea serviciilor de timp real (telefonie videofonie alte
transmisiuni video) Exemplul tipic de reţea cu comutaţie de circuite este reţea telefonică
publică comutată (PSTN) Reţeaua GSM este de asemenea o reţea cu comutaţie de circuite
Referindu-ne strict la interfaţa radio a reţelelor fără fir etapa de stabilire a conexiunii
presupune alocarea unui canal radio (sau a mai multora icircn cazul HSCSD) unei staţii mobile
(MS) Acest canal rămacircne icircn posesia terminalului mobil pe toata durata conexiunii chiar dacă
transferul de date este discontinuu (icircn rafale) sau chiar icircncetează cu desăvacircrşire (de exemplu
21
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cacircnd utilizatorul citeşte cu atenţie cinci minute o pagină WEB după care lămurit pe deplin
icircntrerupe legătura) Ca o particularizare binecunoscută a reţelelor cu comutaţie de circuite
trebuie menţionat că utilizatorul trebuie să plătească pentru icircntreaga durată a conexiunii chiar
dacă a fost risipitor şi nu a folosit resursa ce i-a fost alocată
Comutaţia de mesaje
Este o tehnică ce nu stabileşte apriori o cale de transmisiune icircntre emiţător şi receptor
Informaţia ce urmează a fi transmisă formează o entitate bine precizată numita mesaj
Mesajele sunt complet independente unele faţă de altele şi pot avea lungimi variabile deşi
structura (formatul) lor poate fi prestabilit Emiţătorul trebuie sa ataşeze mesajului adresa
destinatarului decizia cu privire la ruta pe care o va urma mesajul fiind de competenţa
fiecărui comutator (router) prin care trece Fiecare comutator va memora mesajul după care icircl
va transmite pe ieşirea selectată de el Principala problemă a comutaţiei de mesaje este dată de
dimensiunea mare a mesajelor Din această cauză comutatoarele de mesaje au nevoie de o
capacitate de stocare uriaşă iar icircntacircrzierea icircn noduri poate deveni inacceptabilă din cauza
monopolizării ieşirilor de către mesajele lungi Exemplul tipic de reţea cu comutaţie de
mesaje este reţeaua telex
Comutaţia de pachete
Rezolvă o mare parte din dezavantajele comutaţiei de mesaje stabilind o lungime
maximă a entităţii informaţionale care circulă prin reţea numită pachet Pachetele sunt icircn
general rezultatul divizării mesajelor icircn blocuri de lungime mică Datorită acestui fapt spre
deosebire de mesaje pachetele nu sunt independente O recepţie corespunzătoare implică
refacerea mesajului prin ordonarea pachetelor după logica folosită la emisie Pentru aceasta
exista două posibilităţi apropiate conceptual de comutaţia de mesaje respectiv de comutaţia
de circuite
A Comutaţia de pachete fără conexiune (sau neorientată pe conexiune)
Icircn cazul comutaţiei de pachete fără conexiune pachetele (numite şi datagrame) se transmit
independent icircn cel mai pur spirit al comutaţiei de mesaje urmacircnd rute posibil diferite
Sosirea lor la destinaţie poate avea loc icircntr-o ordine aleatoare ceea ce necesită reordonarea lor
de către receptor Refacerea succesiunii corecte a pachetelor se bazează pe informaţia
22
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
suplimentară din fiecare pachet privitoare la mesajul din care face parte şi locul pe care icircl
ocupa icircn el Exemplul tipic de reţea care utilizează comutaţia de pachete este internetul
BComutaţia de pachete orientată pe conexiune (sau circuit virtual)
Icircn cazul comutaţiei de pachete orientată pe conexiune (sau circuit virtual) comunicarea
icircntre terminale presupune stabilirea unei căi anume pe care va circula fluxul informaţional
dintre acestea similar cu comutaţia de circuite Spre deosebire de aceasta nu este vorba de
dedicarea unui circuit fizic comunicării respective ci de configurarea unui circuit logic
numit circuit virtual Aceasta icircnseamnă că toate pachetele vor urma aceeaşi cale prin reţea
fără a dedica suportul fizic comunicaţiei respective Pachetele altor utilizatori vor putea folosi
foarte bine segmente din calea respectivă sau chiar icircntreaga cale La stabilirea circuitului
virtual fiecare comutator (router) trebuie să memoreze icircn tabela de dirijare care este
succesorul său icircn respectivul circuit virtual Astfel spre deosebire de comutaţia de pachete
fără conexiune după stabilirea circuitului virtual comutatorul nu mai trebuie să decidă calea
fiecărui pachet Avacircnd memorat nodul succesor icircn fiecare dintre circuitele virtuale icircn care este
implicat comutatorul va identifica circuitul asociat pachetului şi icircl va transmite pe acesta pe
linia de ieşire corespunzătoare Tehnica circuitului virtual garantează livrarea icircn ordine a
pachetelor la destinaţie Exemple marcante de reţele ce utilizează comutaţia de pachete de tip
circuit virtual sunt X25 şi ATM
Marele avantaj al comutaţiei de pachete este utilizarea eficientă a resurselor de
transmisiune Deoarece acestea nu sunt dedicate ele pot fi folosite după necesităţi pentru a
transmite pachete provenind de la utilizatori diferiţi Din acest motiv comutaţia de pachete
este extrem de avantajoasă icircn cazul unei infrastructuri cu resurse de transmisiune limitate
cum este şi cazul reţelelor fără fir
Un dezavantaj important al comutaţiei de pachete este dat de gestionarea comutatoarelor
(routerelor) icircn cazul unui trafic crescut la intrare Pierderea pachetelor garantarea unei
icircntacircrzieri maxime şi a unui debit utilizator constant sunt problemele spinoase ale comutaţiei
de pachete Ele reprezintă obstacole icircn special icircn calea oferirii serviciilor de timp real cum ar
fi telefonia
Icircn schimb icircn cazul transmisiilor de date avantajul bunei administrări a resurselor
prevalează De exemplu icircn cazul particular al interfeţei radio GSM cacircnd o staţie mobilă (MS)
generează un pachet de date reţeaua icircl va transmite pe un canal radio disponibil icircn acel
moment Următorul pachet de pe acel canal poate să aparţină aceleiaşi MS dacă are ceva de
23
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
transmis sau dacă nu alteia Icircn acest mod atacircta timp cacirct cineva are ceva de transmis
canalele radio nu sunt blocate inutil Lucrul icircn mod pachet are o eficienţă cu totul deosebită icircn
cazul unui trafic de date icircn rafale (data bursts)
Aşadar pentru un sistem GSM bazat esenţialmente pe comutaţia de circuite este
extrem de utilă alocarea resurselor neutilizate de către serviciile vocale pentru servicii mai
puţin prioritare Atacirct HSCSD cacirct şi GPRS icircşi propun acest lucru Serviciile cele mai potrivite
pentru valorificarea resurselor rămase (preferabil printr-un mecanism de alocare dinamică)
sunt tocmai cele care implică un trafic de date icircn rafale fără pretenţii de timp real Diferenţa
fundamentală icircntre HSCSD şi GPRS este că acesta din urmă valorifică aceste resurse icircntr-un
mod mult mai eficient deoarece utilizează comutaţia de pachete Icircn plus costul serviciilor
oferite este mai atractiv deoarece utilizatorul plăteşte volumul de date transferat Practic dacă
doreşte utilizatorul poate fi sbquoconectatrsquo la reţeaua de date icircn permanenţă fiind taxat doar
pentru timpul icircn care efectiv utilizează resursele reţelei adică pentru pachetele de date
recepţionate respectiv transmise
243 Servicii GPRS
Dintre aplicaţiile cele mai potrivite pentru GPRS se pot aminti mesageria de orice tip
difuzare şi distribuţie multiplă telemetrie jocuri navigare de mică anvergură pe reţeaua
internet Icircn general orice tip de aplicaţii ce necesită comunicaţii maşină - maşină la debite
mici şi medii sunt adecvate dezvoltării icircn mediul GPRS
Ca şi icircn reţeaua GSM reţelele GPRS pot oferi două categorii de servicii de
telecomunicaţii
servicii de bază
servicii suplimentare
Serviciile de bază GPRS
Acestea sunt icircn principal servicii suport (bearer services) de transport care realizează
transmiterea datelor cu comutaţie de pachete icircntre două interfeţe şi din teleservicii Similar
situaţiei din GSM aceste interfeţe sunt
interfaţa dintre echipamentul terminal de date (de exemplu calculator) şi terminalul
mobil GPRS
24
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
interfaţa dintre reţeaua GPRS şi reţeaua de date sau echipamentul terminal cu care
comunică Aceasta interfaţă este situată icircntr-un nod poartă (gateway) GPRS similar
situaţiei din GSM unde locul ei este GMSC
Teleserviciul fundamental oferit de GPRS este cel de transport de date şi este detaliat
mai jos Un alt teleserviciu oferit de GPRS este transmisia şi recepţia de mesaje scurte (SMS)
Astfel pe de o parte capacitatea de transmisie a mesajelor scurte va creşte iar pe de alta
parte reţeaua de semnalizări pe care se transmit icircn GSM aceste mesaje nu va mai fi icircncărcată
şi cu mesaje scurte ce vin sau pleacă de la la terminalele mobile GPRS
Servicii GPRS de transport
Sunt definite doua categorii de teleservicii de transport
servicii punct-la-punct (PTP ndashPoint-to-Point)
servicii punct la multipunct (PTM-Point-to-Multipoint)
A Serviciul PTP
Serviciul punct la punct (PTP) [GSM 0260] permite transmiterea de pachete de date
icircntre doi utilizatori Este implementat icircn GPRS faza 1 Abonatul care a iniţiat serviciul se
numeşte solicitant (service requester) Partenerul său se numeşte receptor al serviciului
(service receiver)
Serviciul PTP poate fi solicitat fie de la terminalul mobil GPRS fie de la un
echipament situat icircntr-o reţea de date fixă (IP X25) Serviciul PTP poate fi oferit de
asemenea icircntre doi utilizatori mobili GPRS
Serviciul punct-la punct poate fi la racircndul sau de două tipuri
PTP fără conexiune (PTP-CLNS ndash PTP Connectinnless Network Service)
PTP orientat pe conexiune (PTP-CONS ndashPTP Connection Orientated Network
Network Service)
PTP-CLNS este un serviciu de tip datagramă ce utilizează comutaţia de pachete fără
conexiune Este util icircn cazul aplicaţiilor ce generează trafic icircn rafale şi are că scop asigurarea
interoperării cu reţele IP
PTP-CONS este un serviciu de tip circuit virtual ce utilizează comutaţia de pachete
orientata pe conexiune Icircntre cei doi utilizatori se stabileşte un circuit virtual pentru o perioadă
25
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ce poate varia de la cacircteva secunde la ore Este util atacirct pentru aplicaţii ce generează trafic icircn
rafale cacirct şi pentru aplicaţiile interactive Are că scop asigurarea interoperării cu reţele X25 şi
derularea peste GPRS a aplicaţiilor bazate pe protocolul OSI CONS(Connection Orientated
Network Protocol)
O reţea GPRS trebuie să asigure menţinerea circuitului virtual la trecerea dintr-o
celulă icircn alta dar numai icircn interiorul aceleiaşi reţele GPRS-PLMN La trecerea terminalului
mobil icircntr-o altă reţea sau icircn cazul căderii legăturii radio circuitul virtual va fi eliberat Pentru
ambele tipuri de servicii pe interfaţa radio se poate opera fie cu confirmare fie fără
confirmare a transportului de date
B Serviciul PTM
Serviciul punct la multipunct (PTM) permite transmiterea de pachete de date de la un
utilizator către mai mulţi utilizatori El este implementat icircn faza a doua a GPRS O
comunicaţie PTM se stabileşte icircntre un furnizor de servicii (ce poate fi situat icircn afară reţelei
GSM) şi un grup de terminale GPRS Şi serviciul PTM este un serviciu ce se prezintă icircn două
variante
PTMndash multidistribuţie (PTM Multicast)
PTM- grup (PTM-G--PTMGroup)
Serviciul de transport PTM-M permite transmiterea pachetelor de date icircntr-o arie
geografică dată (celulă grup de celule) fără confirmare Receptorii serviciului sunt fie toţi
abonaţii care se găsesc icircn acea zonă fie un grup icircnchis de utilizatori
Icircn cazul PTM-G receptorul serviciului este un grup predefinit de utilizatori Pachetele de
date vor fi trimise către toţi membrii grupului indiferent de aria geografică unde se găsesc
aceştia Este posibilă şi transmiterea doar către acei membri care se găsesc icircn anumite zone
geografice Transmisia poate fi şi cu confirmare
Serviciile suplimentare
Printre serviciile suplimentare avute icircn vedere icircntr-un prim stadiu se numără
redirecţionarea necondiţionată a apelurilor redirecţionarea cacircnd abonatul nu este accesibil şi
definirea de grupuri icircnchise de utilizatori In afară de aceste servicii recomandarea GSM
0260 descrie posibilitatea oferirii de servicii adiţionale cum sunt accesarea bazelor de date
servicii de mesagerie validări de cărţi de credit servicii de monitorizare electronică tranzacţii
electronice etc
26
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
244 Arhitectura GPRS
GPRS este o soluţie pentru operatori deoarece nu necesită modificări substanţiale icircn
reţeaua GSM Aşa cum se observă icircn figura 72 reţeaua nucleu a GPRS operează icircn paralel
cu GSM-NSS
Figura 23 Arhitectura reţelei GPRS
25 LabWindowsCVI
La dipecer am considerat un calculator desktop sau laptop pe care va rula o aplicaţie
de monitorizare a datelor măsurate implementată icircn LabWindowsCVI
LabWindowsCVI este o platformă pentru dezvoltare de software cu orientare pe
aplicaţii de instrumentaţie După cum se deduce din denumirea sa (CVI ndash C for Virtual
Instrumentation) limbajul acceptat este ANSI C cu extensii specifice CVI ne pune la
dispoziţie un mediu interactiv de dezvoltare a unor aplicaţii pentru sistemul de operare
Windows Icircmbină deci avantajele programării de tip vizual cu avantajele simplităţii şi
flexibilităţii limbajului C Deşi a fost creat special pentru aplicaţii de instrumentaţie şi control
27
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
multiplele lui facilităţi icircl fac capabil să suporte şi dezvoltarea unor aplicaţii de mărime medie
care să fie de altă factură Fiecare funcţie de bibliotecă din cadrul acestui mediu are o interfaţă
specializată numită panoul funcţiei (function panel) care permite
bull Help on-line
bull Selectare şi declarare de variabile sau constante necesare
bull Execuţie interactivă
bull Inserarea funcţiei editate icircntr-un text sursă
Mediul este extrem de flexibil permiţacircnd interfaţarea bidirecţională cu alte compilatoare de
C sau C++ De asemenea se pot folosi şi DLL-uri
Puterea mediului LabWindowsCVI este dată de bibliotecile puse la dispoziţia
programatorului acestea conţinacircnd funcţii pentru implementarea diverselor faze care conduc
la o aplicaţie din domeniul achiziţiei de date sau a controlului automat
Pentru achiziţia de date există următoarele biblioteci specializate
bull de instrumente
bull pentru interfaţa GPIBGPIB 4882 (General Purpose Interface Bus)
bull pentru achiziţie de date
bull pentru operaţii IO icircn cazul achiziţiei de date
bull pentru interfaţa serială RS232
bull pentru sistemul VXI
Biblioteci specializate pentru analiza datelor
bull pentru IO
bull pentru formatarea specială
bull pentru analiză
bull pentru analiză avansată
Biblioteci specializate pentru vizualizare date
bull pentru crearea unei interfeţe utilizator de tip vizual
Biblioteci specializate pentru lucrul icircn reţea şi comunicarea icircntre diverse aplicaţii
bull pentru DDE (Dynamic Data Exchange)
bull pentru TCP (Transmision Control Protocol)
bull pentru sistemul X de sub Unix
Icircn afară de acestea mai există o bibliotecă specială numită biblioteca de instrumente
care conţine drivere şi sursele lor pentru osciloscoape multimetre şi generatoare de funcţii
De asemenea există posibilitatea creării unui instrument propriu Biblioteca pentru interfaţa
28
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cu utilizatorul conţine funcţiile necesare creării unui GUI (Graphical User Interface =
Interfaţă grafică cu utilizatorul) după necesităţi
Structura generică a unei aplicaţii dezvoltate sub CVI
Un proiect complet pentru una din clasele de aplicaţii specifice mediului CVI are
următoarele componente generice
bull interfaţa cu utilizatorul
bull partea de control a aplicaţiei
bull partea specializată pentru achiziţia datelor
bull partea specializată icircn analiza respectivelor date
Mai jos prezentăm o schemă generică a aplicaţiilor CVI
Figura 24
Tipuri de fişiere folosite icircn cadrul CVI
PRJ se referă la fişiere de tip proiect
UIR se referă la fişiere care conţin descrierea unei interfeţe grafice cu utilizatorul
C fişiere sursă
H fişiere header
FP fişiere care reţin descrierea unui instrument
LIB fişiere bibliotecă
DLL fişiere link-editate pentru apel dinamic
OBJ fişiere obiect
29
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a unora dintre meniurile şi ferestrele mediului de dezvoltare CVI
Fereastra proiect
Prezentăm mai jos doar informaţiile suplimentare faţă de o fereastră proiect standard
Pe lacircngă datele curente despre fiecare fişier inclus icircn proiect acesta mai are precizat şi unul
sau mai mulţi din următorii indici
- I indică faptul că respectivul fişier conţine descrierea unui driver de instrument
- S faptul că s-au făcut modificări icircn fişierul respectiv şi deci trebuie salvat
- C indică obligativitatea compilării respectivului fişier icircnainte de rularea aplicaţiei
- indică faptul că fişierul este deschis icircntr-o fereastră de editare
- indică ca acest fişier nu este deschis
Aplicaţii consolă
Pentru aplicaţiile tip consolă clasice C unde se folosesc pentru IO funcţiile scanf şi
printf vizualizarea ieşirii icircn mod text a acestora se va face icircntr-o fereastră specială numită
ldquoStandard InputOutput Windowrdquo
Observaţie Dacă se va programa icircn acest mod trebuie activată opţiunea ldquoBring Standard
InputOtput to front whenever modifyrdquo din Environment ce aparţine meniului Options
Generatorul interactiv de aplicaţii
Butoanele directe ale editorului de interfeţe cu utilizatorul
folosit la selectare mutare şi dimensionare obiecte
utilizat pentru a modifica textul asociat cu obiectele din UIR folosind facilităţile de
etichetare
folosit pentru colorarea obiectelor Este suficientă o apăsare pe butonul din dreapta a
mouse-ului şi va colora automat obiectul selectat cu culoarea curentă
oferă facilităţi de operare Atunci cacircnd este activat evenimentele vor fi afişate icircn partea
dreaptă a barei de facilităţi
30
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a cacirctorva din meniurile mai importante ale generatorului
Menu Bars activează cutia de dialog care ne prezintă toate barele de meniu definite deja de
programator
Figura 25
Create apelează fereastra Edit Menu Bar pentru a crea o nouă bară de meniuri
Edit apelează fereastra Edit Menu Bar pentru a modifica o bară de meniuri existentă
Fereastra Edit Menu Bar(fig26) permite specificarea sau modificarea caracteristicilor
unei bare de meniuri icircn curs de creare sau care există deja
31
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 26
Menu Bar Constant Prefix este identificatorul intern al respectivei bare de meniuri Acesta
va fi folosit de funcţia LoadMenuBar pentru icircncărcarea icircn memorie a parametrilor care conţin
această bară Va fi definit automat icircn fişierul header din scheletul de aplicaţie
Item se referă la numele meniului curentsubmeniucomandă de meniu Dacă icircn faţa primei
litere a unui element din meniu se adaugă 2 ldquounderscorerdquo la execuţie acesta va putea fi
selectat prin combinaţia Alt+prima literă
Constant name este alipit la Menu Bar Constant Prefix pentru a se genera identificatorul
elementului curent Este folosit de funcţii ca GetMenuBarAttribute sau SetMenuBarAttribute
De asemenea acest identificator este returnat de GetUserEvent atunci cacircnd apare un
eveniment generat de o comandă a meniului
Callback Function Permite specificarea numelui unei funcţii de răspuns care va fi apelată
automat la activarea respectivului element Folosirea ei este opţională
32
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ModifierKeyShortcutKey se combină pentru a ataşa o cheie ldquohotrdquo pentru elementul
curent
buton ce permite coboracircrea icircn interiorul unei ierarhii de meniuri
buton ce permite urcarea icircn interiorul unei ierarhii de meniuri
Panouri
După cum am spus sunt echivalentul ferestrelor din programarea Windows Pentru a le crea
Create1048774Panel ne pune la dispoziţie un nou panou icircn cadrul UIR-ului curent Prin dublu
ldquoclickrdquo pe acesta se va intra in fereastra de editare a caracteristicilor panoului Această
fereastră este prezentată mai jos
Figura 27
La partea de Menu Bar se poate specifica o bară din cele deja create icircn cazul dezvoltării
respectivei interfeţe
Restul parametrilor au fost discutaţi anterior sau sunt cunoscuţi din programarea Windows
33
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Crearea controalelor
Exceptacircnd diferenţele care apar funcţie de destinaţia acestora există o serie de parametri
comuni fiecărui control pe care icircl creăm Mai jos prezentăm fereastra care apare de exemplu
la crearea unui control de tip numeric şi anume un buton
Figura 28
Se observă că identificatorul intern şi posibilitatea de ataşare a unei funcţii de răspuns
rămacircne De asemenea o serie de informaţii specifice părţii de etichetare Icircn plus apar
specificaţii privind modul de afişare a datelor şi limitele icircntre care acestea pot fi variate prin
intermediul acestui control
34
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
TAB ORDER
Fiecare control de pe un panou activ are o poziţie icircn ordinea de salt prin intermediul
unui tab Această ordine precizează care va fi următorul control ce va fi activat icircn cazul icircn
care utilizatorul apasă Tab sau Shift+Tab Implicit acestea sunt adăugate exact icircn ordinea
creării lor de către programator Numai că nu icircntotdeauna aceasta este ordinea de salt dorită a
fi activă la terminarea aplicaţiei Icircn aceste condiţii secvenţa Edit1048774Tab Order ne va activa un
panou specializat pentru aceasta
Figura 29
noua formă de cursor activă icircn interiorul ferestrei Prin apăsarea pe un control oarecare i
se
poate modifica ordinea de activare
specifică faptul că se acceptă noua ordine de apelare
se iese cu păstrarea vechii ordini
Find UIR Objects
O altă facilitate a editorului este Find UIR Objects care aparţine meniului View Icircn
cadrul unor proiecte mari se dovedeşte a fi extrem de utilă
35
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 210
După cum se observă ne permite căutarea după dorinţă a unui nume icircn diverse categorii de
obiecte ale interfeţei cu utilizatorul
GENERATE
Este meniul folosit pentru generarea fie a icircntregului cod schelet fie numai a codului
corespunzător unui obiect proaspăt introdus icircntr-un UIR
Secvenţa Code1048774Generate1048774AllCode va genera codul schelet pentru aplicaţie Acesta va
conţine şi un ldquoswitchrdquo pentru tratarea evenimentelor Alegerea evenimentelor care vor fi
automat introduse se face din Code1048774Preferences
MENIUL ARRANGE
Icircncă de la primele aplicaţii vom observa că una din operaţiile mari consumatoare de
timp este aranjarea controalelor icircn panou după specificarea caracteristicilor acestora Pentru a
evita acest lucru CVI a fost prevăzut cu o serie de facilităţi de aranjare automată pe care le
vom prezenta mai jos
Figura 211
Top Edges asigură spaţiere verticală icircntre partea superioară a controalelor Cel mai de
sus şi cel mai de jos control sunt considerate puncte de referinţă
36
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Vertical Centers asigură spaţiere verticală icircntre centrele controalelor Cel mai de sus
şi cel mai de jos control sunt considerate puncte de referinţă
Bottom Edges asigură spaţiere verticală icircntre partea inferioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Vertical Gap asigură spaţiere verticală icircntre partea superioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Left Edges setează spaţii orizontale egale icircntre marginile din stacircnga ale controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Centers setează spaţii orizontale egale icircntre centrele controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Right Edges setează spaţii orizontale egale icircntre marginile din dreapta ale
controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Gap spaţiere orizontală icircntre controale Cel mai de sus şi cel mai de jos
control sunt considerate puncte de referinţă
Horizontal Compress minimizează spaţiile pe orizontală dintre controale şi elimină
orice spaţiu dintre ele
Distribute Vertical Centers
Comanda Distribute realizează la apel ultima opţiune selectată din lista prezentată
mai sus
37
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
12 Soluţia propusă
Modemul inteligent (figura12) prin caracteristicile sale avansate (memorie si procesor
propriu) poate devenii in orice moment un RTU Acest lucru duce la imbunatatirea structurii
hardware a unui sistem automatizat reducand semnificativ costurile si dimensiunile
corespunzatoare ale unui astfel de sistem
Figura 12 Modem inteligent
In funcţie de modul de comunicaţie şi de structura respectiv accesbilitatea sistemului
care se doreşte a fi monitorizat şi controlat la ora actuală pe piaţă se gasec mai multe soluţii
Icircn funcţie de specificaţii de sistem se pot alege mai multe solutii de aceea etapa de proiectare
trebuie analizata cu atentie şi gasită o soluţie optimă
La ora actuală telefonia mobilă joacă un rol important in transmisia de date oferind un
suport avantajos pentru dezvoltarea unor sisteme automate De aceea multe modemuri
existente au suport GSM prin care se permite interacţiunea cu entităţile existente icircn cadrul
unei instalatii de proces
Folosind aceste informaţii imi propun realizarea unei aplicaţii de telemetrie care sa
poată prelua informaţii de la diferiţi senzori prin intermediul unor medemuri inteligente ( de
genul celor descrieşi mai sus ) să le transmită prin intermediul reţelei de GPRS catre un
calculator central ( dispecer ) şi aici o iterfaţă grafică implementată in LabWindowsCVI să
permită vizualizarea informaţiilor recepţionate O schemă general a aplicaţiei este
următoarea
7
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 13
8
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
2Fundamentare teoretică
21 Noţiuni de teoria măsurătorilor
Metrologia este un domeniu al tehnicii cu rădăcini icircn spaţiul Fizicii si ramificaţii icircn
toate sectoarele activităţii practice omeneşti (printre care şi cel al Electronicii) care se ocupa
cu tehnica masurărilor adică cu mijloacele şi metodele pentru determinarea cantitativă ndash
valorică a marimilor fizice Metrologia ndash ca disciplină de sine stătătoare ndash se referă la icircntregul
ansamblu al fenomenelor fizice pe care le studiaza dintr-un punct de vedere propriu şi anume
acela al masurării care este ndash icircn esenţă ndash o comparare experimentală de mărimi ea
stabilind standardele unităţilor de masură şi ale etaloanelor de referinţă pentru aceste unităţi
procedeele de comparare a mărimilor cu etaloanele şi caracteristicile de performanţă (ca
interval game rezoluţie sensibilitate fidelitate dinamică mobilitate precizie etc care ndash icircn
general ndash se numesc caracteristici metrologice) Aplicaţiile metrologiei adică efectuarea
practica a masurării diverselor specii de mărimi caracteristice unor anume domenii constituie
ramuri ale disciplinei acelor domenii aşa sunt măsurările electrice măsurarile electronice
măsurările acustice controlul dimensional fotometria sistemele pentru măsurări automate
măsurările geometrice măsurările hidraulice si multe altele
211 Conceptul de măsurare
Măsurarea este o activitate experimentală de tip informatic al carui scop este
obţinerea unor date cantitative cu privire la proprietăţile unui obiect sau ndash mai general ndash ale
unui sistem şi redarea lor icircntr-o forma potrivită pentru observator (utilizator) Semnificaţia
(interpretarea) pe care observatorul-utilizator o atribuie acestor date cantitative prin
intermediul convenţiilor folosite pentru reprezentarea lor constituie informaţia care este
necesară icircn procesul continuu de cunoaştere comunicare şi conducere (decizie) Prin
identificarea proceselor şi modelarea lor (adică prin reprezentarea matematică a relaţiilor din
sistemul analizat) se stabilesc anumite proprietăţi (elemente specifice) diferite calitativ pe
care le putem denumi mărimi (sau specii de mărimi ndash pentru a le preciza natura lor diferită) si
anumite corelaţii icircntre ele descrise matematic prin legi ndash dacă sunt deduse experimental sau
9
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
prin teoreme formule etc ndash daca sunt stabilite deductiv din legi Icircn acest sens după cum se
ştie mărimile (speciile de mărimi) se diferenţiază (clasifică) icircn mărimi primitive şi mărimi
derivate Cunoaşterea sistemului (stărilor sistemului icircn evoluţia lui) icircn vederea elaborarii
deciziilor de conducere a sistemului pe o traiectorie optima sau una anume necesară implică
evaluarea cantitativă a mărimilor specifice sistemului şi interpretarea lor informaţionala
Acest lucru nu se poate realiza decacirct experimental (ldquope viurdquo si icircn ldquotimp realrdquo) prin măsurări
ceea ce explică rolul cognitiv de comunicare si decizional (mai cuprinzator informaţional) al
măsurărilor
Icircn acest context mai trebuie precizat ca utilizatorul (observatorul) ndash adică
ldquobeneficiarulrdquo icircn activitatea de măsurare ndash poate fi uman sau de tip maşină (icircn cazul
sistemelor automate) Determinarea cantitativă prin măsurare a speciilor de mărimi diferite
calitativ nu se poate realiza decacirct icircn raport cu mărimi de aceeaşi specie (aceeaşi natura fizica)
alese ca unităţi cantitative numite unităţi de măsură fixate icircn mod convenţional dar icircn cadrul
unui sistem de unitaţi de măsură coerent
Se poate acum defini mai bine conceptul de masurare Astfel din punctul de vedere
metrologic măsurarea ldquoeste operaţia prin care se stabileşte pe cale experimentală raportul
numeric icircntre mărimea de măsurat si o valoare (ldquocantitaterdquo) oarecare a acesteia luată ca
unitate de măsurărdquo
Din punctul de vedere tehnic ldquomăsurarea este operaţia experimentală prin care se
determină cu ajutorul unor mijloace de măsurat valoarea numerică a unei mărimi (numită
masurand) icircn raport cu o unitate de măsură datărdquo din aceeasi specie cu masurandul
Din punctul de vedere al modelării masurarea este o operaţie prin care se stabileşte o
aplicaţie de la o specie de mărimi X la mulţimea numerelor reale R sau ndash mai rar ndash R2 (altfel
spus se stabileşte o relaţie icircntre valoarea unei marimi X si un numar real Xm R)
212 Procesul de masurare
Ansamblul operaţiilor experimentale care se execută icircn scopul obţinerii rezultatului
măsurării sub forma unei percepţii realizată de observatorul-utilizator (operatorul ce
efectuează măsurarea) constituie procesul de măsurare Orice proces de măsurare are
urmatoarele componente principale
- mărimea de măsurat (măsurandul)
- metoda de măsurare
- mijlocul (aparatul) de măsurat
10
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
- măsura (etalonul)
- operatorul (observatorul) şi
- prelucrarea ndash tratarea datelor
care ndash icircn funcţie de domeniul precizia şi scopul măsurării ndash au o pondere şi o importanţă
relativă diferită Această structură a procesului de măsurare diversitatea mărimilor de
masurat multitudinea tehnicilor pentru măsurare (mijloace şi metode) care să satisfacă
exigenţele operatorului ndash beneficiar al măsurarii (exigenţe destul de nuanţate icircn funcţie de
scopul măsurării viteza de măsurare costul măsurarii condiţiile ambientale etc) conduc la o
mare varietate a măsurărilor icircn general
Un exemplu particular al acestei mari varietaţi o constituie icircnseşi măsurarile
electronice (care au ca măsurand specii diverse cum sunt mărimile de stare ale cacircmpului
electric şi magnetic mărimile electrice de circuit parametrii de circuit caracteristici de
transfer frecvenţe timp defazaje forme de undă neliniarităţi distorsiuni zgomote cu
regimuri şi o dinamică ample cu influenţe de mediu şi cuplaje adeseori aleatorii etc)
213 Erori de măsurare
Icircn practică se constată că rezultatul unei măsurări nu depinde numai de valoarea
măsurandului el putacircnd fi influenţat de o serie de factori de natura obiectivă (mijloc de
măsurare metoda de măsurare factori exteriori procesului de măsurare etc) sau de natura
subiectivă Pentru caracterizarea rezultatelor obtinuţe icircn procesul de măsurare se definesc
urmatoarele valori
Valoarea adevarată (reala) Xa a unei mărimi este valoarea exacta a mărimii
respective icircn condiţiile existenţe la un moment dat De obicei valoarea adevarată a unei
mărimi nu poate fi determinată experimental ea icircnlocuindu-se cu o valoare convenţional
adevarată X care se obţine cu ajutorul unor mijloace de măsurare deosebit de precise practic
se consideră ca diferenţa dintre valoarea adevarată si valoarea convenţional adevarată este
neglijabilă şi deci cele două noţiuni sunt echivalente
Rezultatul unei măsurări individuale x care se obţine cu ajutorul unor mijloace de
măsurare obisnuite reprezintă valoarea măsurată Abaterea valorii măsurate faţă de valoarea
adevarată a măsurandului constituie eroarea de măsurare
Intervalul icircn care se estimează cu o anumita probabilitate numită nivel de icircncredere
ca se afla valoarea adevarată a măsurandului se numeste incertitudine de măsurare
11
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
incertitudinea de măsurare estimează limitele erorilor de măsurare Pentru o estimare
obiectivă este necesar ca icircmpreună cu rezultatul măsurarii să se specifice atacirct erorile cacirct şi
incertitudinea de măsurare Icircn figura 21 sunt reprezentate schematic noţiunile prezentate
anterior
Figura 21
Fig 11 Explicativă privind valoarea adevarată valoarea măsurată
valoarea convenţional adevarată eroarea de măsurare şi incertitudinea
de măsurare
214Clasificarea erorilor de măsură
Deoarece cauzele erorilor de măsurare sunt numeroase există şi multe criteri de
clasificare a lor Dupa caracterul lor erorile de măsurare pot fi grupate conform schemei
următoare
Figura 22
12
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
215 Etaloane
Etalonul este un sistem fizic care constituie un mijloc de măsurare (măsura instrument
sau aparat de măsurat) ce serveste la păstrarea şi reproducerea unităţilor de măsura cu
precizia metrologică corespunzatoare stadiului la care s-au dezvoltat tehnicile de măsurare Icircn
afara acestor două roluri prin care se ldquodefineşterdquo o unitate de măsura etaloanele mai sunt
utilizate icircn operaţiile de calibrare şi icircn icircnsuşi procesul de măsurare (de icircnaltă precizie) ca
elemente de referinţă precum şi icircn construcţia unor aparate (dispozitive) utilizate icircn alte
scopuri decacirct mşsurarea propriu-zisa (ca de exemplu dispozitive de automatizare
stabilizatoare electronice generatoare de semnal etc)
Calibrarea icircnseamnă ndash icircn metrologie ndash compararea unui aparat de măsurat cu un
etalon icircn scopul gradării sau ajustării verificării sau etalonării aparatului de masurat
Elementul de referinţă este un etalon care asigură (ldquofurnizeazardquo) o mărime fizică anume cu
o valoare bine cunoscută (cu o precizie metrologică corespunzatoare scopului urmarit)
Un etalon trebuie să fie invariabil icircn timp şi icircn spaţiu să poata fi folosit usor icircn tehnică
şi să poată fi reconstituit oricacircnd Unicitatea şi conformitatea măsurărilor icircn orice loc şi la
orice moment impun realizarea unui sistem de etaloane care să
asigure
- generarea principalelor unităti de măsură icircn conformitate cu definiţiile lor din SI
(adică ldquomaterializarea ldquo definiţiilor prin experimente adecvate)
- menţinerea (conservarea) acestor unităţi de măsură constante icircn timp icircn toate
laboratoarele metrologice pe plan mondial
- corelarea icircntre ele a unităţilor de măsură trecerea la alte unitati derivate (etaloane de
derivare) şi extinderea limitelor de măsurare cu precizia necesară cum ar fi trecerea la
multipli şi submultipli ai unităţilor de măsură (etaloane de raport)
Aceste trei operaţii fundamentale icircn activitatea metrologică se efectuează icircn
mod corespunzator cu urmatoarele trei categorii de etaloane
- etaloane de definiţie (adica etaloanele prin care se generează principalele unităţi de
măsură şi icircn principal cele fundamentale aşa cum este ndash de exemplu ndash determinarea absolută
a amperului cu ajutorul balanţei de curent)
- etaloane de conservare (adică etaloanele de menţinere a unităţii de măsură cu o mare
stabilitate icircn timp şi faţă de influenţele exterioare de mediu)
- etaloanele de transfer (adica cele care asigura etalonarea tuturor tipurilor
13
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
de aparate de masurat icircn intervale largi de valori ale masurandului pentru marimi constante
sau variabile icircn timp) asa cum sunt etaloanele de raport etaloanele de derivare si etaloanele
de transfer (curent continuu ndash curent alternativ) prin compararea efectelor (termice
electrodinamice etc) ale semnalelor de curent sau tensiune produse asupra unui acelaşi
element sensibil
22 Conceptul de M2M
M2M este o abreviere de la Machine-to-Machine deşi tot mai des se foloseşte şi
pentru identificarea tehnologiilor Man-to-Machine Machine-to-Man Machine-to-Mobile sau
Mobile-to-Machine Pe scurt este vorba de un serviciu ce permite comunicarea dintre
echipamentele aflate la distanţă şi aplicaţiile la care sunt conectate De fapt M2M este o
evoluţie comercială a tradiţionalelor sisteme de control al echipamentelor din domeniul
industrial soluţie aplicată cu succes pentru prima dată de NASA Adaptată nevoilor
companiilor (un rol important l-a jucat compania France Telecom) M2M permite companiilor
sa administreze mai uşor echipamentele aflate la distanţă si să le integreze cu procesele
interne
Zona soluţiilor M2M este cotată ca fiind una dintre cele mai promiţătoare in
următorii ani ca urmare a creşterii nevoii de automatizare a proceselor şi a posibilităţii de a
lua decizii intr-un timp cat mai scurt posibil ceea ce va genera proiecte majore Aplicaţiile
M2M permit prin monitorizarea si controlul maşinilor şi proceselor de la distanţă reducerea
costurilor optimizarea proceselor si imbunătăţirea nivelului serviciilor oferite clienţilor
permitand economii de timp şi de personal
14
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
23 Limbajul Python
Icircn cadrul unei instalaţii de telemetrie modemurile deţin memorie şi processor propriu
motiv pentru care se numesc ldquointeligenterdquo Pe lacircngă memorie şi processor aceste modemuri
inteligente au şi un interpretor al unui limbaj de programare de nivel icircnalt Icircn cazul
medemurilor alese de mine acest limbaj este Python
Python este un limbaj de programare dinamic orientat pe obiect care poate fi folosit
pentru mai multe tipuri de dezvoltarea software Oferă un puternic suport pentru integrarea cu
diferite instrumente folosind librării standard de extensie şi poate fi invăţat in cacircteva zile
231 Tipuri de date
Sunt 3 grupuri de tipuri de date in Python
Scalari ndash care au sutipurile intreg intreg lung si sir de caractere
i = 1 li = 9999999999L s = Hello
Secvenţe care conţin un anumit număr de obiecte arbitrare intr-o ordine definită
L = [1 5 3 9 14]
Liste asociative care permit accesul la valori bazate pe chei Aceste chei pot fi arbitrare
dar sunt obiecte permanente De exemplu
D = b Python a 5 print D[a]
Afisează 5
Spre deosebire de Pascal C C++ sau Java Python este un limbaj tastat dinamic Astfel
următoarea secvenţă de cod este perfect valabilă icircn Python
a = 7 7 (integer)
a = str(2a) + bytes 7 bytes (string)
15
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Icircn Python variabilele nu sunt declarate icircn script ele apar doar atunci cand sunt folosite
232 Operatori
Icircn Python există următorii operatori
Operatori aritmetici
+ - ~ ltlt gtgt amp ^ |
Operatori relaţionali şi logici
is in lt lt= gt gt= == = not and or
Operatori de asignare
= += -= = = = = ltlt= gtgt= amp= ^= |=
Alţi operatori
( ) [ ] [] `` lambda
233 Comenzi compuse
Comenzile care aparţin aceluiaşi grup logic sunt deplasate spre dreapta cu acelaş
număr de spaţii albe
if a gt 0
b = 1
c = 2
De obicei fiecare comandă icircncepe pe o linie nouă
16
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
O instrucţiune se poate continua pe racircndul următor prin plasarea caracterului backslash
la sfacircrsitul randului Acest lucru nu este necesar dacă există paranteze deschise
my_list = [1
[abc 2]
-3+6j]
print my_list
234 Execuţii condiţionale
Python foloseşte if elif (nu elsif sau elseif) si else pentru a indica execuţia condiţională a
unei instrucţiuni
De exemplu
if a gt b
print a is greater than b
elif a lt b
print a is lower than b
else
print a equals b
Se poate folosi si interval prescurtate de testare
if 2 lt= a lt= 7
print a is in the interval [2 7]
235 Bucle
Buclele in Python sunt definite prin cuvintele cheie for şi while
Următorul exemplu foloseşte o buclă while pentru a colecta toate numerele intregi
cuprinse intre 0 si 99 intr-o listăacirc
numbers = [ ]
i = 0
while i lt 100
17
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
numbersappend(i)
i = i + 1
O buclă similar for arată in felul următor
numbers = [ ]
for i in range(100)
numbersappend(i)
Icircn loc de buclele explicite prezentate mai sus se poate folosi şi bucle implicite după
cum urmează
numbers = range(100)
range(100) generează o listă cu toate numerele intregi de la 0 la 100
24 General packet radio service(GPRS)
Comunicaţia intre modemuri ( RTU-uri ) şi dispecer se poate face prin mai mlte
mediu de transmisie
- Cablu telephonic
- Radio
- GSMGPRS
- Fibră Optică
Opţiunea pentru care am optat icircn partea de comunicaţie este GSMGPRS deoarece
asigură o cumunicaţie sigură şi oferă simplitate pentru priectant
GPRS introduce servicii de transport cu comutaţie de pachete pentru debite de la 14
kbps la maximum 170 kbps Practic GPRS este o reţea cu comutaţie de pachete de sine
stătătoare care se daugă la reţeaua GSM GPRS interoperează cu infrastructura GSM la
nivelul subsistemului staţiilor de bază BSS şi al bazelor de date din subsistemul reţea NSS
(HLR VLR AUC) GPRS preia traficul de date iar GSM traficul de voce care rămacircne
comutat prin MSC
Datele sunt transmise prin GPRS icircn pachete de lungimi fixe Fiecare pachet conţine
adresa destinaţie pentru a putea fi rutat de nodurile GPRS Modificarea pe interfaţa radio e
18
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
dată de introducerea codării adaptive a canalului Aceasta icircnseamnă că protecţia datelor
variază icircn timp icircn funcţie de starea canalului radio GPRS poate utiliza pentru o conexiune
de date de la fracţiuni de canale de trafic pacircnă la maximum 8 sloturi temporale (adică tot
cadrul TDMA) icircn funcţie de resursele disponibile
Capacitatea alocată unei conexiuni va varia icircn funcţie de icircncărcarea cu trafic de pe
frecvenţa respectivă precum şi de tipul traficului (vocedate) Este important că utilizacircnd
comutaţia de pachete o transmisie de date nu ocupă resursele reţelei decacirct atunci cacircnd sunt
date de transmis Cacircnd nu există pachete de transmis resursele de pe interfaţa radio pot fi
utilizate pentru alte transmisii de date sau pentru trafic cu comutaţie de circuite
GPRS are o reţea nucleu proprie formată prin interconectarea serverelor care
gestionează transmisia de pachete numite noduri suport GPRS (GSN- GPRS Suport Node)
Aceasta reţea operează icircn paralel cu subsistemul reţea şi comutaţie (NSS) al GSM care va
gestiona icircn continuare transmisia cu comutaţie de circuite
241 Caracteristicile sistemului GPRS
GPRS este un serviciu specificat icircn faza 2+ de standardizare a GSM El este oferit prin
intermediul unei infrastructuri numită şi sistem sau reţea GPRS ce interoperează cu
infrastructura bdquoclasicărdquo GSM
GPRS se icircncadrează icircn orientarea generală a ETSI de a asigura prin aza 2+ o platformă
ce va putea fi utilizată ulterior icircn reţele de generaţia a treia Astfel el este onsiderat
actualmente soluţia de bază pentru transmiterea de date icircn UMTS Fiind un standard SM
GPRS păstrează evident şi compatibilitatea cu sistemul părinte fiind practic o extensie a
acestuia pentru transmisii de date la debite mai mari GPRS reprezintă la ora actuală cel mai
reprezentativ sistem de generaţie intermediară (25G)
Dacă HSCSD ar putea fi considerat o ajustare fină a GSM GPRS reprezintă cu
siguranţă un salt tehnologic semnificativ deoarece marchează trecerea de la comutaţia de
circuite la cea de pachete Schimbarea tipului de comutaţie se referă icircn acest moment (atacirct la
25G cacirct şi icircn 3G) doar la transmiterea datelor vocea rămacircnacircnd icircn continuare comutată prin
MSC Datorită eternei insuficienţe a resurselor radio este probabil ca icircntr-o fază nu prea
icircndepărtată de dezvoltare a UMTS şi de ce nu chiar a GPRS să fie utilizată comutaţia de
pachete şi pentru serviciile de timp real vocale sau non-vocale
Icircn concluzie GPRS reprezintă o infrastructura ce permite transmiterea datelor pe baza
comutaţiei de pachete icircntr-o reţea GSM
19
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Pentru a putea oferi debite de date mai ridicate icircn GPRS se urmăreşte utilizarea cacirct
mai eficientă a resurselor radio Pentru aceasta se preia de la HSCSD ideea operării multislot
posibilitatea de a proteja mai puţin informaţia utilă pe interfaţa radio şi alocarea asimetrică
uplink downlink Icircn ciuda acestor asemănări icircnlocuirea comutaţiei de circuite cu cea de
pachete face din GPRS un sistem complet diferit de HSCSD Aceasta atacirct din punct de vedere
al utilizatorului care constată un timp de conectare practic nul şi rate de transfer mai bune
dar şi din punct de vedere al operatorului care efectuează o investiţie incomparabil mai mare
răsplătită printr-o mai eficientă utilizare a interfeţei radio cu tot ceea ce rezultă de aici (mai
mulţi clienţi mai multe servicii aplicaţii diverse)
Rezumacircnd icircn GPRS este implementat un set de soluţii tehnologice ce au ca scop
principal creşterea eficienţei utilizării interfeţei radio Aceasta derivă atacirct din experienţa
sistemelor anterioare cacirct şi mai ales din operarea icircn modul pachet a datelor ce se transmit
Soluţiile utilizate sunt
creşterea ratei de transmisie a datelor prin reducerea codării canalului (sunt definite
şi pot
fi utilizate 4 scheme de codare 905kbps 134 kbps 156 kbps 214kbps)
creşterea ratei de transmisie prin operare multislot ( pacircnă la 8 sloturi temporale per
utilizator)
creşterea eficienţei utilizării resurselor radio prin multiplexarea mai multor
utilizatori pe acelaşi canal fizic (posibila datorită transmisiei de pachete maximum 8
utilizatori pe slot temporal)
creşterea eficienţei utilizării resurselor radio prin alocare asimetrică uplinkdownlink
creşterea eficienţei utilizării resurselor radio prin alocarea dinamică a canalelor icircntre
servicii comutate icircn mod circuit respectiv pachet
Cacircnd un icircntreg cadru TDMA este alocat unui utilizator cu schema de protecţie minimă
(practic fără corecţie de erori) rezultă rata utilă instantanee maximă posibilă icircn GPRS
(8x214 kbps=1712 kbps)
242 Comutaţie de circuite şi comutaţie de pachete
20
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comutaţia este o tehnică esenţială icircn reţelele de comunicaţii Fără ea fiecare
echipament terminal ar trebui conectat printr-o cale directă cu fir sau fără la toate celelalte
echipamente terminale din reţea Principalele metode de comutaţie sunt
comutaţia de circuite
comutaţia de mesaje
comutaţia de pachete
Comutaţia de circuite
Aceasta presupune realizarea icircntre emiţător şi receptor a unei căi fizice de comutaţie
dedicate numită circuit Icircntreaga comunicaţie se desfăşoară icircn trei etape
stabilirea conexiunii (sau deschiderea circuitului)
transferul de informaţii
eliberarea conexiunii (circuitului)
Este de remarcat faptul că stabilitatea fizică a caii de comunicaţie are loc icircnainte de
icircnceperea transmisiunii propriu-zise Aceasta poate conduce la durate semnificative ale
timpului de conectare
Un dezavantaj notoriu al acestei tehnici este alocarea fixă a resurselor de comunicaţie
necesare pe durata conexiunii indiferent dacă la un moment sau altul mediul de transmisie
este folosit total parţial sau deloc
Pe de altă parte avantajele comutaţiei de circuite provin tocmai din această alocare fixă de
resurse care permite
asigurarea unei icircntacircrzieri constante şi minime
garantarea unui debit util corespunzător mediului de comunicaţie şi serviciului utilizat
Toate acestea facilitează oferirea serviciilor de timp real (telefonie videofonie alte
transmisiuni video) Exemplul tipic de reţea cu comutaţie de circuite este reţea telefonică
publică comutată (PSTN) Reţeaua GSM este de asemenea o reţea cu comutaţie de circuite
Referindu-ne strict la interfaţa radio a reţelelor fără fir etapa de stabilire a conexiunii
presupune alocarea unui canal radio (sau a mai multora icircn cazul HSCSD) unei staţii mobile
(MS) Acest canal rămacircne icircn posesia terminalului mobil pe toata durata conexiunii chiar dacă
transferul de date este discontinuu (icircn rafale) sau chiar icircncetează cu desăvacircrşire (de exemplu
21
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cacircnd utilizatorul citeşte cu atenţie cinci minute o pagină WEB după care lămurit pe deplin
icircntrerupe legătura) Ca o particularizare binecunoscută a reţelelor cu comutaţie de circuite
trebuie menţionat că utilizatorul trebuie să plătească pentru icircntreaga durată a conexiunii chiar
dacă a fost risipitor şi nu a folosit resursa ce i-a fost alocată
Comutaţia de mesaje
Este o tehnică ce nu stabileşte apriori o cale de transmisiune icircntre emiţător şi receptor
Informaţia ce urmează a fi transmisă formează o entitate bine precizată numita mesaj
Mesajele sunt complet independente unele faţă de altele şi pot avea lungimi variabile deşi
structura (formatul) lor poate fi prestabilit Emiţătorul trebuie sa ataşeze mesajului adresa
destinatarului decizia cu privire la ruta pe care o va urma mesajul fiind de competenţa
fiecărui comutator (router) prin care trece Fiecare comutator va memora mesajul după care icircl
va transmite pe ieşirea selectată de el Principala problemă a comutaţiei de mesaje este dată de
dimensiunea mare a mesajelor Din această cauză comutatoarele de mesaje au nevoie de o
capacitate de stocare uriaşă iar icircntacircrzierea icircn noduri poate deveni inacceptabilă din cauza
monopolizării ieşirilor de către mesajele lungi Exemplul tipic de reţea cu comutaţie de
mesaje este reţeaua telex
Comutaţia de pachete
Rezolvă o mare parte din dezavantajele comutaţiei de mesaje stabilind o lungime
maximă a entităţii informaţionale care circulă prin reţea numită pachet Pachetele sunt icircn
general rezultatul divizării mesajelor icircn blocuri de lungime mică Datorită acestui fapt spre
deosebire de mesaje pachetele nu sunt independente O recepţie corespunzătoare implică
refacerea mesajului prin ordonarea pachetelor după logica folosită la emisie Pentru aceasta
exista două posibilităţi apropiate conceptual de comutaţia de mesaje respectiv de comutaţia
de circuite
A Comutaţia de pachete fără conexiune (sau neorientată pe conexiune)
Icircn cazul comutaţiei de pachete fără conexiune pachetele (numite şi datagrame) se transmit
independent icircn cel mai pur spirit al comutaţiei de mesaje urmacircnd rute posibil diferite
Sosirea lor la destinaţie poate avea loc icircntr-o ordine aleatoare ceea ce necesită reordonarea lor
de către receptor Refacerea succesiunii corecte a pachetelor se bazează pe informaţia
22
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
suplimentară din fiecare pachet privitoare la mesajul din care face parte şi locul pe care icircl
ocupa icircn el Exemplul tipic de reţea care utilizează comutaţia de pachete este internetul
BComutaţia de pachete orientată pe conexiune (sau circuit virtual)
Icircn cazul comutaţiei de pachete orientată pe conexiune (sau circuit virtual) comunicarea
icircntre terminale presupune stabilirea unei căi anume pe care va circula fluxul informaţional
dintre acestea similar cu comutaţia de circuite Spre deosebire de aceasta nu este vorba de
dedicarea unui circuit fizic comunicării respective ci de configurarea unui circuit logic
numit circuit virtual Aceasta icircnseamnă că toate pachetele vor urma aceeaşi cale prin reţea
fără a dedica suportul fizic comunicaţiei respective Pachetele altor utilizatori vor putea folosi
foarte bine segmente din calea respectivă sau chiar icircntreaga cale La stabilirea circuitului
virtual fiecare comutator (router) trebuie să memoreze icircn tabela de dirijare care este
succesorul său icircn respectivul circuit virtual Astfel spre deosebire de comutaţia de pachete
fără conexiune după stabilirea circuitului virtual comutatorul nu mai trebuie să decidă calea
fiecărui pachet Avacircnd memorat nodul succesor icircn fiecare dintre circuitele virtuale icircn care este
implicat comutatorul va identifica circuitul asociat pachetului şi icircl va transmite pe acesta pe
linia de ieşire corespunzătoare Tehnica circuitului virtual garantează livrarea icircn ordine a
pachetelor la destinaţie Exemple marcante de reţele ce utilizează comutaţia de pachete de tip
circuit virtual sunt X25 şi ATM
Marele avantaj al comutaţiei de pachete este utilizarea eficientă a resurselor de
transmisiune Deoarece acestea nu sunt dedicate ele pot fi folosite după necesităţi pentru a
transmite pachete provenind de la utilizatori diferiţi Din acest motiv comutaţia de pachete
este extrem de avantajoasă icircn cazul unei infrastructuri cu resurse de transmisiune limitate
cum este şi cazul reţelelor fără fir
Un dezavantaj important al comutaţiei de pachete este dat de gestionarea comutatoarelor
(routerelor) icircn cazul unui trafic crescut la intrare Pierderea pachetelor garantarea unei
icircntacircrzieri maxime şi a unui debit utilizator constant sunt problemele spinoase ale comutaţiei
de pachete Ele reprezintă obstacole icircn special icircn calea oferirii serviciilor de timp real cum ar
fi telefonia
Icircn schimb icircn cazul transmisiilor de date avantajul bunei administrări a resurselor
prevalează De exemplu icircn cazul particular al interfeţei radio GSM cacircnd o staţie mobilă (MS)
generează un pachet de date reţeaua icircl va transmite pe un canal radio disponibil icircn acel
moment Următorul pachet de pe acel canal poate să aparţină aceleiaşi MS dacă are ceva de
23
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
transmis sau dacă nu alteia Icircn acest mod atacircta timp cacirct cineva are ceva de transmis
canalele radio nu sunt blocate inutil Lucrul icircn mod pachet are o eficienţă cu totul deosebită icircn
cazul unui trafic de date icircn rafale (data bursts)
Aşadar pentru un sistem GSM bazat esenţialmente pe comutaţia de circuite este
extrem de utilă alocarea resurselor neutilizate de către serviciile vocale pentru servicii mai
puţin prioritare Atacirct HSCSD cacirct şi GPRS icircşi propun acest lucru Serviciile cele mai potrivite
pentru valorificarea resurselor rămase (preferabil printr-un mecanism de alocare dinamică)
sunt tocmai cele care implică un trafic de date icircn rafale fără pretenţii de timp real Diferenţa
fundamentală icircntre HSCSD şi GPRS este că acesta din urmă valorifică aceste resurse icircntr-un
mod mult mai eficient deoarece utilizează comutaţia de pachete Icircn plus costul serviciilor
oferite este mai atractiv deoarece utilizatorul plăteşte volumul de date transferat Practic dacă
doreşte utilizatorul poate fi sbquoconectatrsquo la reţeaua de date icircn permanenţă fiind taxat doar
pentru timpul icircn care efectiv utilizează resursele reţelei adică pentru pachetele de date
recepţionate respectiv transmise
243 Servicii GPRS
Dintre aplicaţiile cele mai potrivite pentru GPRS se pot aminti mesageria de orice tip
difuzare şi distribuţie multiplă telemetrie jocuri navigare de mică anvergură pe reţeaua
internet Icircn general orice tip de aplicaţii ce necesită comunicaţii maşină - maşină la debite
mici şi medii sunt adecvate dezvoltării icircn mediul GPRS
Ca şi icircn reţeaua GSM reţelele GPRS pot oferi două categorii de servicii de
telecomunicaţii
servicii de bază
servicii suplimentare
Serviciile de bază GPRS
Acestea sunt icircn principal servicii suport (bearer services) de transport care realizează
transmiterea datelor cu comutaţie de pachete icircntre două interfeţe şi din teleservicii Similar
situaţiei din GSM aceste interfeţe sunt
interfaţa dintre echipamentul terminal de date (de exemplu calculator) şi terminalul
mobil GPRS
24
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
interfaţa dintre reţeaua GPRS şi reţeaua de date sau echipamentul terminal cu care
comunică Aceasta interfaţă este situată icircntr-un nod poartă (gateway) GPRS similar
situaţiei din GSM unde locul ei este GMSC
Teleserviciul fundamental oferit de GPRS este cel de transport de date şi este detaliat
mai jos Un alt teleserviciu oferit de GPRS este transmisia şi recepţia de mesaje scurte (SMS)
Astfel pe de o parte capacitatea de transmisie a mesajelor scurte va creşte iar pe de alta
parte reţeaua de semnalizări pe care se transmit icircn GSM aceste mesaje nu va mai fi icircncărcată
şi cu mesaje scurte ce vin sau pleacă de la la terminalele mobile GPRS
Servicii GPRS de transport
Sunt definite doua categorii de teleservicii de transport
servicii punct-la-punct (PTP ndashPoint-to-Point)
servicii punct la multipunct (PTM-Point-to-Multipoint)
A Serviciul PTP
Serviciul punct la punct (PTP) [GSM 0260] permite transmiterea de pachete de date
icircntre doi utilizatori Este implementat icircn GPRS faza 1 Abonatul care a iniţiat serviciul se
numeşte solicitant (service requester) Partenerul său se numeşte receptor al serviciului
(service receiver)
Serviciul PTP poate fi solicitat fie de la terminalul mobil GPRS fie de la un
echipament situat icircntr-o reţea de date fixă (IP X25) Serviciul PTP poate fi oferit de
asemenea icircntre doi utilizatori mobili GPRS
Serviciul punct-la punct poate fi la racircndul sau de două tipuri
PTP fără conexiune (PTP-CLNS ndash PTP Connectinnless Network Service)
PTP orientat pe conexiune (PTP-CONS ndashPTP Connection Orientated Network
Network Service)
PTP-CLNS este un serviciu de tip datagramă ce utilizează comutaţia de pachete fără
conexiune Este util icircn cazul aplicaţiilor ce generează trafic icircn rafale şi are că scop asigurarea
interoperării cu reţele IP
PTP-CONS este un serviciu de tip circuit virtual ce utilizează comutaţia de pachete
orientata pe conexiune Icircntre cei doi utilizatori se stabileşte un circuit virtual pentru o perioadă
25
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ce poate varia de la cacircteva secunde la ore Este util atacirct pentru aplicaţii ce generează trafic icircn
rafale cacirct şi pentru aplicaţiile interactive Are că scop asigurarea interoperării cu reţele X25 şi
derularea peste GPRS a aplicaţiilor bazate pe protocolul OSI CONS(Connection Orientated
Network Protocol)
O reţea GPRS trebuie să asigure menţinerea circuitului virtual la trecerea dintr-o
celulă icircn alta dar numai icircn interiorul aceleiaşi reţele GPRS-PLMN La trecerea terminalului
mobil icircntr-o altă reţea sau icircn cazul căderii legăturii radio circuitul virtual va fi eliberat Pentru
ambele tipuri de servicii pe interfaţa radio se poate opera fie cu confirmare fie fără
confirmare a transportului de date
B Serviciul PTM
Serviciul punct la multipunct (PTM) permite transmiterea de pachete de date de la un
utilizator către mai mulţi utilizatori El este implementat icircn faza a doua a GPRS O
comunicaţie PTM se stabileşte icircntre un furnizor de servicii (ce poate fi situat icircn afară reţelei
GSM) şi un grup de terminale GPRS Şi serviciul PTM este un serviciu ce se prezintă icircn două
variante
PTMndash multidistribuţie (PTM Multicast)
PTM- grup (PTM-G--PTMGroup)
Serviciul de transport PTM-M permite transmiterea pachetelor de date icircntr-o arie
geografică dată (celulă grup de celule) fără confirmare Receptorii serviciului sunt fie toţi
abonaţii care se găsesc icircn acea zonă fie un grup icircnchis de utilizatori
Icircn cazul PTM-G receptorul serviciului este un grup predefinit de utilizatori Pachetele de
date vor fi trimise către toţi membrii grupului indiferent de aria geografică unde se găsesc
aceştia Este posibilă şi transmiterea doar către acei membri care se găsesc icircn anumite zone
geografice Transmisia poate fi şi cu confirmare
Serviciile suplimentare
Printre serviciile suplimentare avute icircn vedere icircntr-un prim stadiu se numără
redirecţionarea necondiţionată a apelurilor redirecţionarea cacircnd abonatul nu este accesibil şi
definirea de grupuri icircnchise de utilizatori In afară de aceste servicii recomandarea GSM
0260 descrie posibilitatea oferirii de servicii adiţionale cum sunt accesarea bazelor de date
servicii de mesagerie validări de cărţi de credit servicii de monitorizare electronică tranzacţii
electronice etc
26
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
244 Arhitectura GPRS
GPRS este o soluţie pentru operatori deoarece nu necesită modificări substanţiale icircn
reţeaua GSM Aşa cum se observă icircn figura 72 reţeaua nucleu a GPRS operează icircn paralel
cu GSM-NSS
Figura 23 Arhitectura reţelei GPRS
25 LabWindowsCVI
La dipecer am considerat un calculator desktop sau laptop pe care va rula o aplicaţie
de monitorizare a datelor măsurate implementată icircn LabWindowsCVI
LabWindowsCVI este o platformă pentru dezvoltare de software cu orientare pe
aplicaţii de instrumentaţie După cum se deduce din denumirea sa (CVI ndash C for Virtual
Instrumentation) limbajul acceptat este ANSI C cu extensii specifice CVI ne pune la
dispoziţie un mediu interactiv de dezvoltare a unor aplicaţii pentru sistemul de operare
Windows Icircmbină deci avantajele programării de tip vizual cu avantajele simplităţii şi
flexibilităţii limbajului C Deşi a fost creat special pentru aplicaţii de instrumentaţie şi control
27
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
multiplele lui facilităţi icircl fac capabil să suporte şi dezvoltarea unor aplicaţii de mărime medie
care să fie de altă factură Fiecare funcţie de bibliotecă din cadrul acestui mediu are o interfaţă
specializată numită panoul funcţiei (function panel) care permite
bull Help on-line
bull Selectare şi declarare de variabile sau constante necesare
bull Execuţie interactivă
bull Inserarea funcţiei editate icircntr-un text sursă
Mediul este extrem de flexibil permiţacircnd interfaţarea bidirecţională cu alte compilatoare de
C sau C++ De asemenea se pot folosi şi DLL-uri
Puterea mediului LabWindowsCVI este dată de bibliotecile puse la dispoziţia
programatorului acestea conţinacircnd funcţii pentru implementarea diverselor faze care conduc
la o aplicaţie din domeniul achiziţiei de date sau a controlului automat
Pentru achiziţia de date există următoarele biblioteci specializate
bull de instrumente
bull pentru interfaţa GPIBGPIB 4882 (General Purpose Interface Bus)
bull pentru achiziţie de date
bull pentru operaţii IO icircn cazul achiziţiei de date
bull pentru interfaţa serială RS232
bull pentru sistemul VXI
Biblioteci specializate pentru analiza datelor
bull pentru IO
bull pentru formatarea specială
bull pentru analiză
bull pentru analiză avansată
Biblioteci specializate pentru vizualizare date
bull pentru crearea unei interfeţe utilizator de tip vizual
Biblioteci specializate pentru lucrul icircn reţea şi comunicarea icircntre diverse aplicaţii
bull pentru DDE (Dynamic Data Exchange)
bull pentru TCP (Transmision Control Protocol)
bull pentru sistemul X de sub Unix
Icircn afară de acestea mai există o bibliotecă specială numită biblioteca de instrumente
care conţine drivere şi sursele lor pentru osciloscoape multimetre şi generatoare de funcţii
De asemenea există posibilitatea creării unui instrument propriu Biblioteca pentru interfaţa
28
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cu utilizatorul conţine funcţiile necesare creării unui GUI (Graphical User Interface =
Interfaţă grafică cu utilizatorul) după necesităţi
Structura generică a unei aplicaţii dezvoltate sub CVI
Un proiect complet pentru una din clasele de aplicaţii specifice mediului CVI are
următoarele componente generice
bull interfaţa cu utilizatorul
bull partea de control a aplicaţiei
bull partea specializată pentru achiziţia datelor
bull partea specializată icircn analiza respectivelor date
Mai jos prezentăm o schemă generică a aplicaţiilor CVI
Figura 24
Tipuri de fişiere folosite icircn cadrul CVI
PRJ se referă la fişiere de tip proiect
UIR se referă la fişiere care conţin descrierea unei interfeţe grafice cu utilizatorul
C fişiere sursă
H fişiere header
FP fişiere care reţin descrierea unui instrument
LIB fişiere bibliotecă
DLL fişiere link-editate pentru apel dinamic
OBJ fişiere obiect
29
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a unora dintre meniurile şi ferestrele mediului de dezvoltare CVI
Fereastra proiect
Prezentăm mai jos doar informaţiile suplimentare faţă de o fereastră proiect standard
Pe lacircngă datele curente despre fiecare fişier inclus icircn proiect acesta mai are precizat şi unul
sau mai mulţi din următorii indici
- I indică faptul că respectivul fişier conţine descrierea unui driver de instrument
- S faptul că s-au făcut modificări icircn fişierul respectiv şi deci trebuie salvat
- C indică obligativitatea compilării respectivului fişier icircnainte de rularea aplicaţiei
- indică faptul că fişierul este deschis icircntr-o fereastră de editare
- indică ca acest fişier nu este deschis
Aplicaţii consolă
Pentru aplicaţiile tip consolă clasice C unde se folosesc pentru IO funcţiile scanf şi
printf vizualizarea ieşirii icircn mod text a acestora se va face icircntr-o fereastră specială numită
ldquoStandard InputOutput Windowrdquo
Observaţie Dacă se va programa icircn acest mod trebuie activată opţiunea ldquoBring Standard
InputOtput to front whenever modifyrdquo din Environment ce aparţine meniului Options
Generatorul interactiv de aplicaţii
Butoanele directe ale editorului de interfeţe cu utilizatorul
folosit la selectare mutare şi dimensionare obiecte
utilizat pentru a modifica textul asociat cu obiectele din UIR folosind facilităţile de
etichetare
folosit pentru colorarea obiectelor Este suficientă o apăsare pe butonul din dreapta a
mouse-ului şi va colora automat obiectul selectat cu culoarea curentă
oferă facilităţi de operare Atunci cacircnd este activat evenimentele vor fi afişate icircn partea
dreaptă a barei de facilităţi
30
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a cacirctorva din meniurile mai importante ale generatorului
Menu Bars activează cutia de dialog care ne prezintă toate barele de meniu definite deja de
programator
Figura 25
Create apelează fereastra Edit Menu Bar pentru a crea o nouă bară de meniuri
Edit apelează fereastra Edit Menu Bar pentru a modifica o bară de meniuri existentă
Fereastra Edit Menu Bar(fig26) permite specificarea sau modificarea caracteristicilor
unei bare de meniuri icircn curs de creare sau care există deja
31
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 26
Menu Bar Constant Prefix este identificatorul intern al respectivei bare de meniuri Acesta
va fi folosit de funcţia LoadMenuBar pentru icircncărcarea icircn memorie a parametrilor care conţin
această bară Va fi definit automat icircn fişierul header din scheletul de aplicaţie
Item se referă la numele meniului curentsubmeniucomandă de meniu Dacă icircn faţa primei
litere a unui element din meniu se adaugă 2 ldquounderscorerdquo la execuţie acesta va putea fi
selectat prin combinaţia Alt+prima literă
Constant name este alipit la Menu Bar Constant Prefix pentru a se genera identificatorul
elementului curent Este folosit de funcţii ca GetMenuBarAttribute sau SetMenuBarAttribute
De asemenea acest identificator este returnat de GetUserEvent atunci cacircnd apare un
eveniment generat de o comandă a meniului
Callback Function Permite specificarea numelui unei funcţii de răspuns care va fi apelată
automat la activarea respectivului element Folosirea ei este opţională
32
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ModifierKeyShortcutKey se combină pentru a ataşa o cheie ldquohotrdquo pentru elementul
curent
buton ce permite coboracircrea icircn interiorul unei ierarhii de meniuri
buton ce permite urcarea icircn interiorul unei ierarhii de meniuri
Panouri
După cum am spus sunt echivalentul ferestrelor din programarea Windows Pentru a le crea
Create1048774Panel ne pune la dispoziţie un nou panou icircn cadrul UIR-ului curent Prin dublu
ldquoclickrdquo pe acesta se va intra in fereastra de editare a caracteristicilor panoului Această
fereastră este prezentată mai jos
Figura 27
La partea de Menu Bar se poate specifica o bară din cele deja create icircn cazul dezvoltării
respectivei interfeţe
Restul parametrilor au fost discutaţi anterior sau sunt cunoscuţi din programarea Windows
33
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Crearea controalelor
Exceptacircnd diferenţele care apar funcţie de destinaţia acestora există o serie de parametri
comuni fiecărui control pe care icircl creăm Mai jos prezentăm fereastra care apare de exemplu
la crearea unui control de tip numeric şi anume un buton
Figura 28
Se observă că identificatorul intern şi posibilitatea de ataşare a unei funcţii de răspuns
rămacircne De asemenea o serie de informaţii specifice părţii de etichetare Icircn plus apar
specificaţii privind modul de afişare a datelor şi limitele icircntre care acestea pot fi variate prin
intermediul acestui control
34
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
TAB ORDER
Fiecare control de pe un panou activ are o poziţie icircn ordinea de salt prin intermediul
unui tab Această ordine precizează care va fi următorul control ce va fi activat icircn cazul icircn
care utilizatorul apasă Tab sau Shift+Tab Implicit acestea sunt adăugate exact icircn ordinea
creării lor de către programator Numai că nu icircntotdeauna aceasta este ordinea de salt dorită a
fi activă la terminarea aplicaţiei Icircn aceste condiţii secvenţa Edit1048774Tab Order ne va activa un
panou specializat pentru aceasta
Figura 29
noua formă de cursor activă icircn interiorul ferestrei Prin apăsarea pe un control oarecare i
se
poate modifica ordinea de activare
specifică faptul că se acceptă noua ordine de apelare
se iese cu păstrarea vechii ordini
Find UIR Objects
O altă facilitate a editorului este Find UIR Objects care aparţine meniului View Icircn
cadrul unor proiecte mari se dovedeşte a fi extrem de utilă
35
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 210
După cum se observă ne permite căutarea după dorinţă a unui nume icircn diverse categorii de
obiecte ale interfeţei cu utilizatorul
GENERATE
Este meniul folosit pentru generarea fie a icircntregului cod schelet fie numai a codului
corespunzător unui obiect proaspăt introdus icircntr-un UIR
Secvenţa Code1048774Generate1048774AllCode va genera codul schelet pentru aplicaţie Acesta va
conţine şi un ldquoswitchrdquo pentru tratarea evenimentelor Alegerea evenimentelor care vor fi
automat introduse se face din Code1048774Preferences
MENIUL ARRANGE
Icircncă de la primele aplicaţii vom observa că una din operaţiile mari consumatoare de
timp este aranjarea controalelor icircn panou după specificarea caracteristicilor acestora Pentru a
evita acest lucru CVI a fost prevăzut cu o serie de facilităţi de aranjare automată pe care le
vom prezenta mai jos
Figura 211
Top Edges asigură spaţiere verticală icircntre partea superioară a controalelor Cel mai de
sus şi cel mai de jos control sunt considerate puncte de referinţă
36
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Vertical Centers asigură spaţiere verticală icircntre centrele controalelor Cel mai de sus
şi cel mai de jos control sunt considerate puncte de referinţă
Bottom Edges asigură spaţiere verticală icircntre partea inferioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Vertical Gap asigură spaţiere verticală icircntre partea superioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Left Edges setează spaţii orizontale egale icircntre marginile din stacircnga ale controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Centers setează spaţii orizontale egale icircntre centrele controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Right Edges setează spaţii orizontale egale icircntre marginile din dreapta ale
controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Gap spaţiere orizontală icircntre controale Cel mai de sus şi cel mai de jos
control sunt considerate puncte de referinţă
Horizontal Compress minimizează spaţiile pe orizontală dintre controale şi elimină
orice spaţiu dintre ele
Distribute Vertical Centers
Comanda Distribute realizează la apel ultima opţiune selectată din lista prezentată
mai sus
37
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 13
8
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
2Fundamentare teoretică
21 Noţiuni de teoria măsurătorilor
Metrologia este un domeniu al tehnicii cu rădăcini icircn spaţiul Fizicii si ramificaţii icircn
toate sectoarele activităţii practice omeneşti (printre care şi cel al Electronicii) care se ocupa
cu tehnica masurărilor adică cu mijloacele şi metodele pentru determinarea cantitativă ndash
valorică a marimilor fizice Metrologia ndash ca disciplină de sine stătătoare ndash se referă la icircntregul
ansamblu al fenomenelor fizice pe care le studiaza dintr-un punct de vedere propriu şi anume
acela al masurării care este ndash icircn esenţă ndash o comparare experimentală de mărimi ea
stabilind standardele unităţilor de masură şi ale etaloanelor de referinţă pentru aceste unităţi
procedeele de comparare a mărimilor cu etaloanele şi caracteristicile de performanţă (ca
interval game rezoluţie sensibilitate fidelitate dinamică mobilitate precizie etc care ndash icircn
general ndash se numesc caracteristici metrologice) Aplicaţiile metrologiei adică efectuarea
practica a masurării diverselor specii de mărimi caracteristice unor anume domenii constituie
ramuri ale disciplinei acelor domenii aşa sunt măsurările electrice măsurarile electronice
măsurările acustice controlul dimensional fotometria sistemele pentru măsurări automate
măsurările geometrice măsurările hidraulice si multe altele
211 Conceptul de măsurare
Măsurarea este o activitate experimentală de tip informatic al carui scop este
obţinerea unor date cantitative cu privire la proprietăţile unui obiect sau ndash mai general ndash ale
unui sistem şi redarea lor icircntr-o forma potrivită pentru observator (utilizator) Semnificaţia
(interpretarea) pe care observatorul-utilizator o atribuie acestor date cantitative prin
intermediul convenţiilor folosite pentru reprezentarea lor constituie informaţia care este
necesară icircn procesul continuu de cunoaştere comunicare şi conducere (decizie) Prin
identificarea proceselor şi modelarea lor (adică prin reprezentarea matematică a relaţiilor din
sistemul analizat) se stabilesc anumite proprietăţi (elemente specifice) diferite calitativ pe
care le putem denumi mărimi (sau specii de mărimi ndash pentru a le preciza natura lor diferită) si
anumite corelaţii icircntre ele descrise matematic prin legi ndash dacă sunt deduse experimental sau
9
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
prin teoreme formule etc ndash daca sunt stabilite deductiv din legi Icircn acest sens după cum se
ştie mărimile (speciile de mărimi) se diferenţiază (clasifică) icircn mărimi primitive şi mărimi
derivate Cunoaşterea sistemului (stărilor sistemului icircn evoluţia lui) icircn vederea elaborarii
deciziilor de conducere a sistemului pe o traiectorie optima sau una anume necesară implică
evaluarea cantitativă a mărimilor specifice sistemului şi interpretarea lor informaţionala
Acest lucru nu se poate realiza decacirct experimental (ldquope viurdquo si icircn ldquotimp realrdquo) prin măsurări
ceea ce explică rolul cognitiv de comunicare si decizional (mai cuprinzator informaţional) al
măsurărilor
Icircn acest context mai trebuie precizat ca utilizatorul (observatorul) ndash adică
ldquobeneficiarulrdquo icircn activitatea de măsurare ndash poate fi uman sau de tip maşină (icircn cazul
sistemelor automate) Determinarea cantitativă prin măsurare a speciilor de mărimi diferite
calitativ nu se poate realiza decacirct icircn raport cu mărimi de aceeaşi specie (aceeaşi natura fizica)
alese ca unităţi cantitative numite unităţi de măsură fixate icircn mod convenţional dar icircn cadrul
unui sistem de unitaţi de măsură coerent
Se poate acum defini mai bine conceptul de masurare Astfel din punctul de vedere
metrologic măsurarea ldquoeste operaţia prin care se stabileşte pe cale experimentală raportul
numeric icircntre mărimea de măsurat si o valoare (ldquocantitaterdquo) oarecare a acesteia luată ca
unitate de măsurărdquo
Din punctul de vedere tehnic ldquomăsurarea este operaţia experimentală prin care se
determină cu ajutorul unor mijloace de măsurat valoarea numerică a unei mărimi (numită
masurand) icircn raport cu o unitate de măsură datărdquo din aceeasi specie cu masurandul
Din punctul de vedere al modelării masurarea este o operaţie prin care se stabileşte o
aplicaţie de la o specie de mărimi X la mulţimea numerelor reale R sau ndash mai rar ndash R2 (altfel
spus se stabileşte o relaţie icircntre valoarea unei marimi X si un numar real Xm R)
212 Procesul de masurare
Ansamblul operaţiilor experimentale care se execută icircn scopul obţinerii rezultatului
măsurării sub forma unei percepţii realizată de observatorul-utilizator (operatorul ce
efectuează măsurarea) constituie procesul de măsurare Orice proces de măsurare are
urmatoarele componente principale
- mărimea de măsurat (măsurandul)
- metoda de măsurare
- mijlocul (aparatul) de măsurat
10
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
- măsura (etalonul)
- operatorul (observatorul) şi
- prelucrarea ndash tratarea datelor
care ndash icircn funcţie de domeniul precizia şi scopul măsurării ndash au o pondere şi o importanţă
relativă diferită Această structură a procesului de măsurare diversitatea mărimilor de
masurat multitudinea tehnicilor pentru măsurare (mijloace şi metode) care să satisfacă
exigenţele operatorului ndash beneficiar al măsurarii (exigenţe destul de nuanţate icircn funcţie de
scopul măsurării viteza de măsurare costul măsurarii condiţiile ambientale etc) conduc la o
mare varietate a măsurărilor icircn general
Un exemplu particular al acestei mari varietaţi o constituie icircnseşi măsurarile
electronice (care au ca măsurand specii diverse cum sunt mărimile de stare ale cacircmpului
electric şi magnetic mărimile electrice de circuit parametrii de circuit caracteristici de
transfer frecvenţe timp defazaje forme de undă neliniarităţi distorsiuni zgomote cu
regimuri şi o dinamică ample cu influenţe de mediu şi cuplaje adeseori aleatorii etc)
213 Erori de măsurare
Icircn practică se constată că rezultatul unei măsurări nu depinde numai de valoarea
măsurandului el putacircnd fi influenţat de o serie de factori de natura obiectivă (mijloc de
măsurare metoda de măsurare factori exteriori procesului de măsurare etc) sau de natura
subiectivă Pentru caracterizarea rezultatelor obtinuţe icircn procesul de măsurare se definesc
urmatoarele valori
Valoarea adevarată (reala) Xa a unei mărimi este valoarea exacta a mărimii
respective icircn condiţiile existenţe la un moment dat De obicei valoarea adevarată a unei
mărimi nu poate fi determinată experimental ea icircnlocuindu-se cu o valoare convenţional
adevarată X care se obţine cu ajutorul unor mijloace de măsurare deosebit de precise practic
se consideră ca diferenţa dintre valoarea adevarată si valoarea convenţional adevarată este
neglijabilă şi deci cele două noţiuni sunt echivalente
Rezultatul unei măsurări individuale x care se obţine cu ajutorul unor mijloace de
măsurare obisnuite reprezintă valoarea măsurată Abaterea valorii măsurate faţă de valoarea
adevarată a măsurandului constituie eroarea de măsurare
Intervalul icircn care se estimează cu o anumita probabilitate numită nivel de icircncredere
ca se afla valoarea adevarată a măsurandului se numeste incertitudine de măsurare
11
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
incertitudinea de măsurare estimează limitele erorilor de măsurare Pentru o estimare
obiectivă este necesar ca icircmpreună cu rezultatul măsurarii să se specifice atacirct erorile cacirct şi
incertitudinea de măsurare Icircn figura 21 sunt reprezentate schematic noţiunile prezentate
anterior
Figura 21
Fig 11 Explicativă privind valoarea adevarată valoarea măsurată
valoarea convenţional adevarată eroarea de măsurare şi incertitudinea
de măsurare
214Clasificarea erorilor de măsură
Deoarece cauzele erorilor de măsurare sunt numeroase există şi multe criteri de
clasificare a lor Dupa caracterul lor erorile de măsurare pot fi grupate conform schemei
următoare
Figura 22
12
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
215 Etaloane
Etalonul este un sistem fizic care constituie un mijloc de măsurare (măsura instrument
sau aparat de măsurat) ce serveste la păstrarea şi reproducerea unităţilor de măsura cu
precizia metrologică corespunzatoare stadiului la care s-au dezvoltat tehnicile de măsurare Icircn
afara acestor două roluri prin care se ldquodefineşterdquo o unitate de măsura etaloanele mai sunt
utilizate icircn operaţiile de calibrare şi icircn icircnsuşi procesul de măsurare (de icircnaltă precizie) ca
elemente de referinţă precum şi icircn construcţia unor aparate (dispozitive) utilizate icircn alte
scopuri decacirct mşsurarea propriu-zisa (ca de exemplu dispozitive de automatizare
stabilizatoare electronice generatoare de semnal etc)
Calibrarea icircnseamnă ndash icircn metrologie ndash compararea unui aparat de măsurat cu un
etalon icircn scopul gradării sau ajustării verificării sau etalonării aparatului de masurat
Elementul de referinţă este un etalon care asigură (ldquofurnizeazardquo) o mărime fizică anume cu
o valoare bine cunoscută (cu o precizie metrologică corespunzatoare scopului urmarit)
Un etalon trebuie să fie invariabil icircn timp şi icircn spaţiu să poata fi folosit usor icircn tehnică
şi să poată fi reconstituit oricacircnd Unicitatea şi conformitatea măsurărilor icircn orice loc şi la
orice moment impun realizarea unui sistem de etaloane care să
asigure
- generarea principalelor unităti de măsură icircn conformitate cu definiţiile lor din SI
(adică ldquomaterializarea ldquo definiţiilor prin experimente adecvate)
- menţinerea (conservarea) acestor unităţi de măsură constante icircn timp icircn toate
laboratoarele metrologice pe plan mondial
- corelarea icircntre ele a unităţilor de măsură trecerea la alte unitati derivate (etaloane de
derivare) şi extinderea limitelor de măsurare cu precizia necesară cum ar fi trecerea la
multipli şi submultipli ai unităţilor de măsură (etaloane de raport)
Aceste trei operaţii fundamentale icircn activitatea metrologică se efectuează icircn
mod corespunzator cu urmatoarele trei categorii de etaloane
- etaloane de definiţie (adica etaloanele prin care se generează principalele unităţi de
măsură şi icircn principal cele fundamentale aşa cum este ndash de exemplu ndash determinarea absolută
a amperului cu ajutorul balanţei de curent)
- etaloane de conservare (adică etaloanele de menţinere a unităţii de măsură cu o mare
stabilitate icircn timp şi faţă de influenţele exterioare de mediu)
- etaloanele de transfer (adica cele care asigura etalonarea tuturor tipurilor
13
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
de aparate de masurat icircn intervale largi de valori ale masurandului pentru marimi constante
sau variabile icircn timp) asa cum sunt etaloanele de raport etaloanele de derivare si etaloanele
de transfer (curent continuu ndash curent alternativ) prin compararea efectelor (termice
electrodinamice etc) ale semnalelor de curent sau tensiune produse asupra unui acelaşi
element sensibil
22 Conceptul de M2M
M2M este o abreviere de la Machine-to-Machine deşi tot mai des se foloseşte şi
pentru identificarea tehnologiilor Man-to-Machine Machine-to-Man Machine-to-Mobile sau
Mobile-to-Machine Pe scurt este vorba de un serviciu ce permite comunicarea dintre
echipamentele aflate la distanţă şi aplicaţiile la care sunt conectate De fapt M2M este o
evoluţie comercială a tradiţionalelor sisteme de control al echipamentelor din domeniul
industrial soluţie aplicată cu succes pentru prima dată de NASA Adaptată nevoilor
companiilor (un rol important l-a jucat compania France Telecom) M2M permite companiilor
sa administreze mai uşor echipamentele aflate la distanţă si să le integreze cu procesele
interne
Zona soluţiilor M2M este cotată ca fiind una dintre cele mai promiţătoare in
următorii ani ca urmare a creşterii nevoii de automatizare a proceselor şi a posibilităţii de a
lua decizii intr-un timp cat mai scurt posibil ceea ce va genera proiecte majore Aplicaţiile
M2M permit prin monitorizarea si controlul maşinilor şi proceselor de la distanţă reducerea
costurilor optimizarea proceselor si imbunătăţirea nivelului serviciilor oferite clienţilor
permitand economii de timp şi de personal
14
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
23 Limbajul Python
Icircn cadrul unei instalaţii de telemetrie modemurile deţin memorie şi processor propriu
motiv pentru care se numesc ldquointeligenterdquo Pe lacircngă memorie şi processor aceste modemuri
inteligente au şi un interpretor al unui limbaj de programare de nivel icircnalt Icircn cazul
medemurilor alese de mine acest limbaj este Python
Python este un limbaj de programare dinamic orientat pe obiect care poate fi folosit
pentru mai multe tipuri de dezvoltarea software Oferă un puternic suport pentru integrarea cu
diferite instrumente folosind librării standard de extensie şi poate fi invăţat in cacircteva zile
231 Tipuri de date
Sunt 3 grupuri de tipuri de date in Python
Scalari ndash care au sutipurile intreg intreg lung si sir de caractere
i = 1 li = 9999999999L s = Hello
Secvenţe care conţin un anumit număr de obiecte arbitrare intr-o ordine definită
L = [1 5 3 9 14]
Liste asociative care permit accesul la valori bazate pe chei Aceste chei pot fi arbitrare
dar sunt obiecte permanente De exemplu
D = b Python a 5 print D[a]
Afisează 5
Spre deosebire de Pascal C C++ sau Java Python este un limbaj tastat dinamic Astfel
următoarea secvenţă de cod este perfect valabilă icircn Python
a = 7 7 (integer)
a = str(2a) + bytes 7 bytes (string)
15
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Icircn Python variabilele nu sunt declarate icircn script ele apar doar atunci cand sunt folosite
232 Operatori
Icircn Python există următorii operatori
Operatori aritmetici
+ - ~ ltlt gtgt amp ^ |
Operatori relaţionali şi logici
is in lt lt= gt gt= == = not and or
Operatori de asignare
= += -= = = = = ltlt= gtgt= amp= ^= |=
Alţi operatori
( ) [ ] [] `` lambda
233 Comenzi compuse
Comenzile care aparţin aceluiaşi grup logic sunt deplasate spre dreapta cu acelaş
număr de spaţii albe
if a gt 0
b = 1
c = 2
De obicei fiecare comandă icircncepe pe o linie nouă
16
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
O instrucţiune se poate continua pe racircndul următor prin plasarea caracterului backslash
la sfacircrsitul randului Acest lucru nu este necesar dacă există paranteze deschise
my_list = [1
[abc 2]
-3+6j]
print my_list
234 Execuţii condiţionale
Python foloseşte if elif (nu elsif sau elseif) si else pentru a indica execuţia condiţională a
unei instrucţiuni
De exemplu
if a gt b
print a is greater than b
elif a lt b
print a is lower than b
else
print a equals b
Se poate folosi si interval prescurtate de testare
if 2 lt= a lt= 7
print a is in the interval [2 7]
235 Bucle
Buclele in Python sunt definite prin cuvintele cheie for şi while
Următorul exemplu foloseşte o buclă while pentru a colecta toate numerele intregi
cuprinse intre 0 si 99 intr-o listăacirc
numbers = [ ]
i = 0
while i lt 100
17
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
numbersappend(i)
i = i + 1
O buclă similar for arată in felul următor
numbers = [ ]
for i in range(100)
numbersappend(i)
Icircn loc de buclele explicite prezentate mai sus se poate folosi şi bucle implicite după
cum urmează
numbers = range(100)
range(100) generează o listă cu toate numerele intregi de la 0 la 100
24 General packet radio service(GPRS)
Comunicaţia intre modemuri ( RTU-uri ) şi dispecer se poate face prin mai mlte
mediu de transmisie
- Cablu telephonic
- Radio
- GSMGPRS
- Fibră Optică
Opţiunea pentru care am optat icircn partea de comunicaţie este GSMGPRS deoarece
asigură o cumunicaţie sigură şi oferă simplitate pentru priectant
GPRS introduce servicii de transport cu comutaţie de pachete pentru debite de la 14
kbps la maximum 170 kbps Practic GPRS este o reţea cu comutaţie de pachete de sine
stătătoare care se daugă la reţeaua GSM GPRS interoperează cu infrastructura GSM la
nivelul subsistemului staţiilor de bază BSS şi al bazelor de date din subsistemul reţea NSS
(HLR VLR AUC) GPRS preia traficul de date iar GSM traficul de voce care rămacircne
comutat prin MSC
Datele sunt transmise prin GPRS icircn pachete de lungimi fixe Fiecare pachet conţine
adresa destinaţie pentru a putea fi rutat de nodurile GPRS Modificarea pe interfaţa radio e
18
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
dată de introducerea codării adaptive a canalului Aceasta icircnseamnă că protecţia datelor
variază icircn timp icircn funcţie de starea canalului radio GPRS poate utiliza pentru o conexiune
de date de la fracţiuni de canale de trafic pacircnă la maximum 8 sloturi temporale (adică tot
cadrul TDMA) icircn funcţie de resursele disponibile
Capacitatea alocată unei conexiuni va varia icircn funcţie de icircncărcarea cu trafic de pe
frecvenţa respectivă precum şi de tipul traficului (vocedate) Este important că utilizacircnd
comutaţia de pachete o transmisie de date nu ocupă resursele reţelei decacirct atunci cacircnd sunt
date de transmis Cacircnd nu există pachete de transmis resursele de pe interfaţa radio pot fi
utilizate pentru alte transmisii de date sau pentru trafic cu comutaţie de circuite
GPRS are o reţea nucleu proprie formată prin interconectarea serverelor care
gestionează transmisia de pachete numite noduri suport GPRS (GSN- GPRS Suport Node)
Aceasta reţea operează icircn paralel cu subsistemul reţea şi comutaţie (NSS) al GSM care va
gestiona icircn continuare transmisia cu comutaţie de circuite
241 Caracteristicile sistemului GPRS
GPRS este un serviciu specificat icircn faza 2+ de standardizare a GSM El este oferit prin
intermediul unei infrastructuri numită şi sistem sau reţea GPRS ce interoperează cu
infrastructura bdquoclasicărdquo GSM
GPRS se icircncadrează icircn orientarea generală a ETSI de a asigura prin aza 2+ o platformă
ce va putea fi utilizată ulterior icircn reţele de generaţia a treia Astfel el este onsiderat
actualmente soluţia de bază pentru transmiterea de date icircn UMTS Fiind un standard SM
GPRS păstrează evident şi compatibilitatea cu sistemul părinte fiind practic o extensie a
acestuia pentru transmisii de date la debite mai mari GPRS reprezintă la ora actuală cel mai
reprezentativ sistem de generaţie intermediară (25G)
Dacă HSCSD ar putea fi considerat o ajustare fină a GSM GPRS reprezintă cu
siguranţă un salt tehnologic semnificativ deoarece marchează trecerea de la comutaţia de
circuite la cea de pachete Schimbarea tipului de comutaţie se referă icircn acest moment (atacirct la
25G cacirct şi icircn 3G) doar la transmiterea datelor vocea rămacircnacircnd icircn continuare comutată prin
MSC Datorită eternei insuficienţe a resurselor radio este probabil ca icircntr-o fază nu prea
icircndepărtată de dezvoltare a UMTS şi de ce nu chiar a GPRS să fie utilizată comutaţia de
pachete şi pentru serviciile de timp real vocale sau non-vocale
Icircn concluzie GPRS reprezintă o infrastructura ce permite transmiterea datelor pe baza
comutaţiei de pachete icircntr-o reţea GSM
19
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Pentru a putea oferi debite de date mai ridicate icircn GPRS se urmăreşte utilizarea cacirct
mai eficientă a resurselor radio Pentru aceasta se preia de la HSCSD ideea operării multislot
posibilitatea de a proteja mai puţin informaţia utilă pe interfaţa radio şi alocarea asimetrică
uplink downlink Icircn ciuda acestor asemănări icircnlocuirea comutaţiei de circuite cu cea de
pachete face din GPRS un sistem complet diferit de HSCSD Aceasta atacirct din punct de vedere
al utilizatorului care constată un timp de conectare practic nul şi rate de transfer mai bune
dar şi din punct de vedere al operatorului care efectuează o investiţie incomparabil mai mare
răsplătită printr-o mai eficientă utilizare a interfeţei radio cu tot ceea ce rezultă de aici (mai
mulţi clienţi mai multe servicii aplicaţii diverse)
Rezumacircnd icircn GPRS este implementat un set de soluţii tehnologice ce au ca scop
principal creşterea eficienţei utilizării interfeţei radio Aceasta derivă atacirct din experienţa
sistemelor anterioare cacirct şi mai ales din operarea icircn modul pachet a datelor ce se transmit
Soluţiile utilizate sunt
creşterea ratei de transmisie a datelor prin reducerea codării canalului (sunt definite
şi pot
fi utilizate 4 scheme de codare 905kbps 134 kbps 156 kbps 214kbps)
creşterea ratei de transmisie prin operare multislot ( pacircnă la 8 sloturi temporale per
utilizator)
creşterea eficienţei utilizării resurselor radio prin multiplexarea mai multor
utilizatori pe acelaşi canal fizic (posibila datorită transmisiei de pachete maximum 8
utilizatori pe slot temporal)
creşterea eficienţei utilizării resurselor radio prin alocare asimetrică uplinkdownlink
creşterea eficienţei utilizării resurselor radio prin alocarea dinamică a canalelor icircntre
servicii comutate icircn mod circuit respectiv pachet
Cacircnd un icircntreg cadru TDMA este alocat unui utilizator cu schema de protecţie minimă
(practic fără corecţie de erori) rezultă rata utilă instantanee maximă posibilă icircn GPRS
(8x214 kbps=1712 kbps)
242 Comutaţie de circuite şi comutaţie de pachete
20
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comutaţia este o tehnică esenţială icircn reţelele de comunicaţii Fără ea fiecare
echipament terminal ar trebui conectat printr-o cale directă cu fir sau fără la toate celelalte
echipamente terminale din reţea Principalele metode de comutaţie sunt
comutaţia de circuite
comutaţia de mesaje
comutaţia de pachete
Comutaţia de circuite
Aceasta presupune realizarea icircntre emiţător şi receptor a unei căi fizice de comutaţie
dedicate numită circuit Icircntreaga comunicaţie se desfăşoară icircn trei etape
stabilirea conexiunii (sau deschiderea circuitului)
transferul de informaţii
eliberarea conexiunii (circuitului)
Este de remarcat faptul că stabilitatea fizică a caii de comunicaţie are loc icircnainte de
icircnceperea transmisiunii propriu-zise Aceasta poate conduce la durate semnificative ale
timpului de conectare
Un dezavantaj notoriu al acestei tehnici este alocarea fixă a resurselor de comunicaţie
necesare pe durata conexiunii indiferent dacă la un moment sau altul mediul de transmisie
este folosit total parţial sau deloc
Pe de altă parte avantajele comutaţiei de circuite provin tocmai din această alocare fixă de
resurse care permite
asigurarea unei icircntacircrzieri constante şi minime
garantarea unui debit util corespunzător mediului de comunicaţie şi serviciului utilizat
Toate acestea facilitează oferirea serviciilor de timp real (telefonie videofonie alte
transmisiuni video) Exemplul tipic de reţea cu comutaţie de circuite este reţea telefonică
publică comutată (PSTN) Reţeaua GSM este de asemenea o reţea cu comutaţie de circuite
Referindu-ne strict la interfaţa radio a reţelelor fără fir etapa de stabilire a conexiunii
presupune alocarea unui canal radio (sau a mai multora icircn cazul HSCSD) unei staţii mobile
(MS) Acest canal rămacircne icircn posesia terminalului mobil pe toata durata conexiunii chiar dacă
transferul de date este discontinuu (icircn rafale) sau chiar icircncetează cu desăvacircrşire (de exemplu
21
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cacircnd utilizatorul citeşte cu atenţie cinci minute o pagină WEB după care lămurit pe deplin
icircntrerupe legătura) Ca o particularizare binecunoscută a reţelelor cu comutaţie de circuite
trebuie menţionat că utilizatorul trebuie să plătească pentru icircntreaga durată a conexiunii chiar
dacă a fost risipitor şi nu a folosit resursa ce i-a fost alocată
Comutaţia de mesaje
Este o tehnică ce nu stabileşte apriori o cale de transmisiune icircntre emiţător şi receptor
Informaţia ce urmează a fi transmisă formează o entitate bine precizată numita mesaj
Mesajele sunt complet independente unele faţă de altele şi pot avea lungimi variabile deşi
structura (formatul) lor poate fi prestabilit Emiţătorul trebuie sa ataşeze mesajului adresa
destinatarului decizia cu privire la ruta pe care o va urma mesajul fiind de competenţa
fiecărui comutator (router) prin care trece Fiecare comutator va memora mesajul după care icircl
va transmite pe ieşirea selectată de el Principala problemă a comutaţiei de mesaje este dată de
dimensiunea mare a mesajelor Din această cauză comutatoarele de mesaje au nevoie de o
capacitate de stocare uriaşă iar icircntacircrzierea icircn noduri poate deveni inacceptabilă din cauza
monopolizării ieşirilor de către mesajele lungi Exemplul tipic de reţea cu comutaţie de
mesaje este reţeaua telex
Comutaţia de pachete
Rezolvă o mare parte din dezavantajele comutaţiei de mesaje stabilind o lungime
maximă a entităţii informaţionale care circulă prin reţea numită pachet Pachetele sunt icircn
general rezultatul divizării mesajelor icircn blocuri de lungime mică Datorită acestui fapt spre
deosebire de mesaje pachetele nu sunt independente O recepţie corespunzătoare implică
refacerea mesajului prin ordonarea pachetelor după logica folosită la emisie Pentru aceasta
exista două posibilităţi apropiate conceptual de comutaţia de mesaje respectiv de comutaţia
de circuite
A Comutaţia de pachete fără conexiune (sau neorientată pe conexiune)
Icircn cazul comutaţiei de pachete fără conexiune pachetele (numite şi datagrame) se transmit
independent icircn cel mai pur spirit al comutaţiei de mesaje urmacircnd rute posibil diferite
Sosirea lor la destinaţie poate avea loc icircntr-o ordine aleatoare ceea ce necesită reordonarea lor
de către receptor Refacerea succesiunii corecte a pachetelor se bazează pe informaţia
22
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
suplimentară din fiecare pachet privitoare la mesajul din care face parte şi locul pe care icircl
ocupa icircn el Exemplul tipic de reţea care utilizează comutaţia de pachete este internetul
BComutaţia de pachete orientată pe conexiune (sau circuit virtual)
Icircn cazul comutaţiei de pachete orientată pe conexiune (sau circuit virtual) comunicarea
icircntre terminale presupune stabilirea unei căi anume pe care va circula fluxul informaţional
dintre acestea similar cu comutaţia de circuite Spre deosebire de aceasta nu este vorba de
dedicarea unui circuit fizic comunicării respective ci de configurarea unui circuit logic
numit circuit virtual Aceasta icircnseamnă că toate pachetele vor urma aceeaşi cale prin reţea
fără a dedica suportul fizic comunicaţiei respective Pachetele altor utilizatori vor putea folosi
foarte bine segmente din calea respectivă sau chiar icircntreaga cale La stabilirea circuitului
virtual fiecare comutator (router) trebuie să memoreze icircn tabela de dirijare care este
succesorul său icircn respectivul circuit virtual Astfel spre deosebire de comutaţia de pachete
fără conexiune după stabilirea circuitului virtual comutatorul nu mai trebuie să decidă calea
fiecărui pachet Avacircnd memorat nodul succesor icircn fiecare dintre circuitele virtuale icircn care este
implicat comutatorul va identifica circuitul asociat pachetului şi icircl va transmite pe acesta pe
linia de ieşire corespunzătoare Tehnica circuitului virtual garantează livrarea icircn ordine a
pachetelor la destinaţie Exemple marcante de reţele ce utilizează comutaţia de pachete de tip
circuit virtual sunt X25 şi ATM
Marele avantaj al comutaţiei de pachete este utilizarea eficientă a resurselor de
transmisiune Deoarece acestea nu sunt dedicate ele pot fi folosite după necesităţi pentru a
transmite pachete provenind de la utilizatori diferiţi Din acest motiv comutaţia de pachete
este extrem de avantajoasă icircn cazul unei infrastructuri cu resurse de transmisiune limitate
cum este şi cazul reţelelor fără fir
Un dezavantaj important al comutaţiei de pachete este dat de gestionarea comutatoarelor
(routerelor) icircn cazul unui trafic crescut la intrare Pierderea pachetelor garantarea unei
icircntacircrzieri maxime şi a unui debit utilizator constant sunt problemele spinoase ale comutaţiei
de pachete Ele reprezintă obstacole icircn special icircn calea oferirii serviciilor de timp real cum ar
fi telefonia
Icircn schimb icircn cazul transmisiilor de date avantajul bunei administrări a resurselor
prevalează De exemplu icircn cazul particular al interfeţei radio GSM cacircnd o staţie mobilă (MS)
generează un pachet de date reţeaua icircl va transmite pe un canal radio disponibil icircn acel
moment Următorul pachet de pe acel canal poate să aparţină aceleiaşi MS dacă are ceva de
23
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
transmis sau dacă nu alteia Icircn acest mod atacircta timp cacirct cineva are ceva de transmis
canalele radio nu sunt blocate inutil Lucrul icircn mod pachet are o eficienţă cu totul deosebită icircn
cazul unui trafic de date icircn rafale (data bursts)
Aşadar pentru un sistem GSM bazat esenţialmente pe comutaţia de circuite este
extrem de utilă alocarea resurselor neutilizate de către serviciile vocale pentru servicii mai
puţin prioritare Atacirct HSCSD cacirct şi GPRS icircşi propun acest lucru Serviciile cele mai potrivite
pentru valorificarea resurselor rămase (preferabil printr-un mecanism de alocare dinamică)
sunt tocmai cele care implică un trafic de date icircn rafale fără pretenţii de timp real Diferenţa
fundamentală icircntre HSCSD şi GPRS este că acesta din urmă valorifică aceste resurse icircntr-un
mod mult mai eficient deoarece utilizează comutaţia de pachete Icircn plus costul serviciilor
oferite este mai atractiv deoarece utilizatorul plăteşte volumul de date transferat Practic dacă
doreşte utilizatorul poate fi sbquoconectatrsquo la reţeaua de date icircn permanenţă fiind taxat doar
pentru timpul icircn care efectiv utilizează resursele reţelei adică pentru pachetele de date
recepţionate respectiv transmise
243 Servicii GPRS
Dintre aplicaţiile cele mai potrivite pentru GPRS se pot aminti mesageria de orice tip
difuzare şi distribuţie multiplă telemetrie jocuri navigare de mică anvergură pe reţeaua
internet Icircn general orice tip de aplicaţii ce necesită comunicaţii maşină - maşină la debite
mici şi medii sunt adecvate dezvoltării icircn mediul GPRS
Ca şi icircn reţeaua GSM reţelele GPRS pot oferi două categorii de servicii de
telecomunicaţii
servicii de bază
servicii suplimentare
Serviciile de bază GPRS
Acestea sunt icircn principal servicii suport (bearer services) de transport care realizează
transmiterea datelor cu comutaţie de pachete icircntre două interfeţe şi din teleservicii Similar
situaţiei din GSM aceste interfeţe sunt
interfaţa dintre echipamentul terminal de date (de exemplu calculator) şi terminalul
mobil GPRS
24
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
interfaţa dintre reţeaua GPRS şi reţeaua de date sau echipamentul terminal cu care
comunică Aceasta interfaţă este situată icircntr-un nod poartă (gateway) GPRS similar
situaţiei din GSM unde locul ei este GMSC
Teleserviciul fundamental oferit de GPRS este cel de transport de date şi este detaliat
mai jos Un alt teleserviciu oferit de GPRS este transmisia şi recepţia de mesaje scurte (SMS)
Astfel pe de o parte capacitatea de transmisie a mesajelor scurte va creşte iar pe de alta
parte reţeaua de semnalizări pe care se transmit icircn GSM aceste mesaje nu va mai fi icircncărcată
şi cu mesaje scurte ce vin sau pleacă de la la terminalele mobile GPRS
Servicii GPRS de transport
Sunt definite doua categorii de teleservicii de transport
servicii punct-la-punct (PTP ndashPoint-to-Point)
servicii punct la multipunct (PTM-Point-to-Multipoint)
A Serviciul PTP
Serviciul punct la punct (PTP) [GSM 0260] permite transmiterea de pachete de date
icircntre doi utilizatori Este implementat icircn GPRS faza 1 Abonatul care a iniţiat serviciul se
numeşte solicitant (service requester) Partenerul său se numeşte receptor al serviciului
(service receiver)
Serviciul PTP poate fi solicitat fie de la terminalul mobil GPRS fie de la un
echipament situat icircntr-o reţea de date fixă (IP X25) Serviciul PTP poate fi oferit de
asemenea icircntre doi utilizatori mobili GPRS
Serviciul punct-la punct poate fi la racircndul sau de două tipuri
PTP fără conexiune (PTP-CLNS ndash PTP Connectinnless Network Service)
PTP orientat pe conexiune (PTP-CONS ndashPTP Connection Orientated Network
Network Service)
PTP-CLNS este un serviciu de tip datagramă ce utilizează comutaţia de pachete fără
conexiune Este util icircn cazul aplicaţiilor ce generează trafic icircn rafale şi are că scop asigurarea
interoperării cu reţele IP
PTP-CONS este un serviciu de tip circuit virtual ce utilizează comutaţia de pachete
orientata pe conexiune Icircntre cei doi utilizatori se stabileşte un circuit virtual pentru o perioadă
25
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ce poate varia de la cacircteva secunde la ore Este util atacirct pentru aplicaţii ce generează trafic icircn
rafale cacirct şi pentru aplicaţiile interactive Are că scop asigurarea interoperării cu reţele X25 şi
derularea peste GPRS a aplicaţiilor bazate pe protocolul OSI CONS(Connection Orientated
Network Protocol)
O reţea GPRS trebuie să asigure menţinerea circuitului virtual la trecerea dintr-o
celulă icircn alta dar numai icircn interiorul aceleiaşi reţele GPRS-PLMN La trecerea terminalului
mobil icircntr-o altă reţea sau icircn cazul căderii legăturii radio circuitul virtual va fi eliberat Pentru
ambele tipuri de servicii pe interfaţa radio se poate opera fie cu confirmare fie fără
confirmare a transportului de date
B Serviciul PTM
Serviciul punct la multipunct (PTM) permite transmiterea de pachete de date de la un
utilizator către mai mulţi utilizatori El este implementat icircn faza a doua a GPRS O
comunicaţie PTM se stabileşte icircntre un furnizor de servicii (ce poate fi situat icircn afară reţelei
GSM) şi un grup de terminale GPRS Şi serviciul PTM este un serviciu ce se prezintă icircn două
variante
PTMndash multidistribuţie (PTM Multicast)
PTM- grup (PTM-G--PTMGroup)
Serviciul de transport PTM-M permite transmiterea pachetelor de date icircntr-o arie
geografică dată (celulă grup de celule) fără confirmare Receptorii serviciului sunt fie toţi
abonaţii care se găsesc icircn acea zonă fie un grup icircnchis de utilizatori
Icircn cazul PTM-G receptorul serviciului este un grup predefinit de utilizatori Pachetele de
date vor fi trimise către toţi membrii grupului indiferent de aria geografică unde se găsesc
aceştia Este posibilă şi transmiterea doar către acei membri care se găsesc icircn anumite zone
geografice Transmisia poate fi şi cu confirmare
Serviciile suplimentare
Printre serviciile suplimentare avute icircn vedere icircntr-un prim stadiu se numără
redirecţionarea necondiţionată a apelurilor redirecţionarea cacircnd abonatul nu este accesibil şi
definirea de grupuri icircnchise de utilizatori In afară de aceste servicii recomandarea GSM
0260 descrie posibilitatea oferirii de servicii adiţionale cum sunt accesarea bazelor de date
servicii de mesagerie validări de cărţi de credit servicii de monitorizare electronică tranzacţii
electronice etc
26
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
244 Arhitectura GPRS
GPRS este o soluţie pentru operatori deoarece nu necesită modificări substanţiale icircn
reţeaua GSM Aşa cum se observă icircn figura 72 reţeaua nucleu a GPRS operează icircn paralel
cu GSM-NSS
Figura 23 Arhitectura reţelei GPRS
25 LabWindowsCVI
La dipecer am considerat un calculator desktop sau laptop pe care va rula o aplicaţie
de monitorizare a datelor măsurate implementată icircn LabWindowsCVI
LabWindowsCVI este o platformă pentru dezvoltare de software cu orientare pe
aplicaţii de instrumentaţie După cum se deduce din denumirea sa (CVI ndash C for Virtual
Instrumentation) limbajul acceptat este ANSI C cu extensii specifice CVI ne pune la
dispoziţie un mediu interactiv de dezvoltare a unor aplicaţii pentru sistemul de operare
Windows Icircmbină deci avantajele programării de tip vizual cu avantajele simplităţii şi
flexibilităţii limbajului C Deşi a fost creat special pentru aplicaţii de instrumentaţie şi control
27
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
multiplele lui facilităţi icircl fac capabil să suporte şi dezvoltarea unor aplicaţii de mărime medie
care să fie de altă factură Fiecare funcţie de bibliotecă din cadrul acestui mediu are o interfaţă
specializată numită panoul funcţiei (function panel) care permite
bull Help on-line
bull Selectare şi declarare de variabile sau constante necesare
bull Execuţie interactivă
bull Inserarea funcţiei editate icircntr-un text sursă
Mediul este extrem de flexibil permiţacircnd interfaţarea bidirecţională cu alte compilatoare de
C sau C++ De asemenea se pot folosi şi DLL-uri
Puterea mediului LabWindowsCVI este dată de bibliotecile puse la dispoziţia
programatorului acestea conţinacircnd funcţii pentru implementarea diverselor faze care conduc
la o aplicaţie din domeniul achiziţiei de date sau a controlului automat
Pentru achiziţia de date există următoarele biblioteci specializate
bull de instrumente
bull pentru interfaţa GPIBGPIB 4882 (General Purpose Interface Bus)
bull pentru achiziţie de date
bull pentru operaţii IO icircn cazul achiziţiei de date
bull pentru interfaţa serială RS232
bull pentru sistemul VXI
Biblioteci specializate pentru analiza datelor
bull pentru IO
bull pentru formatarea specială
bull pentru analiză
bull pentru analiză avansată
Biblioteci specializate pentru vizualizare date
bull pentru crearea unei interfeţe utilizator de tip vizual
Biblioteci specializate pentru lucrul icircn reţea şi comunicarea icircntre diverse aplicaţii
bull pentru DDE (Dynamic Data Exchange)
bull pentru TCP (Transmision Control Protocol)
bull pentru sistemul X de sub Unix
Icircn afară de acestea mai există o bibliotecă specială numită biblioteca de instrumente
care conţine drivere şi sursele lor pentru osciloscoape multimetre şi generatoare de funcţii
De asemenea există posibilitatea creării unui instrument propriu Biblioteca pentru interfaţa
28
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cu utilizatorul conţine funcţiile necesare creării unui GUI (Graphical User Interface =
Interfaţă grafică cu utilizatorul) după necesităţi
Structura generică a unei aplicaţii dezvoltate sub CVI
Un proiect complet pentru una din clasele de aplicaţii specifice mediului CVI are
următoarele componente generice
bull interfaţa cu utilizatorul
bull partea de control a aplicaţiei
bull partea specializată pentru achiziţia datelor
bull partea specializată icircn analiza respectivelor date
Mai jos prezentăm o schemă generică a aplicaţiilor CVI
Figura 24
Tipuri de fişiere folosite icircn cadrul CVI
PRJ se referă la fişiere de tip proiect
UIR se referă la fişiere care conţin descrierea unei interfeţe grafice cu utilizatorul
C fişiere sursă
H fişiere header
FP fişiere care reţin descrierea unui instrument
LIB fişiere bibliotecă
DLL fişiere link-editate pentru apel dinamic
OBJ fişiere obiect
29
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a unora dintre meniurile şi ferestrele mediului de dezvoltare CVI
Fereastra proiect
Prezentăm mai jos doar informaţiile suplimentare faţă de o fereastră proiect standard
Pe lacircngă datele curente despre fiecare fişier inclus icircn proiect acesta mai are precizat şi unul
sau mai mulţi din următorii indici
- I indică faptul că respectivul fişier conţine descrierea unui driver de instrument
- S faptul că s-au făcut modificări icircn fişierul respectiv şi deci trebuie salvat
- C indică obligativitatea compilării respectivului fişier icircnainte de rularea aplicaţiei
- indică faptul că fişierul este deschis icircntr-o fereastră de editare
- indică ca acest fişier nu este deschis
Aplicaţii consolă
Pentru aplicaţiile tip consolă clasice C unde se folosesc pentru IO funcţiile scanf şi
printf vizualizarea ieşirii icircn mod text a acestora se va face icircntr-o fereastră specială numită
ldquoStandard InputOutput Windowrdquo
Observaţie Dacă se va programa icircn acest mod trebuie activată opţiunea ldquoBring Standard
InputOtput to front whenever modifyrdquo din Environment ce aparţine meniului Options
Generatorul interactiv de aplicaţii
Butoanele directe ale editorului de interfeţe cu utilizatorul
folosit la selectare mutare şi dimensionare obiecte
utilizat pentru a modifica textul asociat cu obiectele din UIR folosind facilităţile de
etichetare
folosit pentru colorarea obiectelor Este suficientă o apăsare pe butonul din dreapta a
mouse-ului şi va colora automat obiectul selectat cu culoarea curentă
oferă facilităţi de operare Atunci cacircnd este activat evenimentele vor fi afişate icircn partea
dreaptă a barei de facilităţi
30
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a cacirctorva din meniurile mai importante ale generatorului
Menu Bars activează cutia de dialog care ne prezintă toate barele de meniu definite deja de
programator
Figura 25
Create apelează fereastra Edit Menu Bar pentru a crea o nouă bară de meniuri
Edit apelează fereastra Edit Menu Bar pentru a modifica o bară de meniuri existentă
Fereastra Edit Menu Bar(fig26) permite specificarea sau modificarea caracteristicilor
unei bare de meniuri icircn curs de creare sau care există deja
31
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 26
Menu Bar Constant Prefix este identificatorul intern al respectivei bare de meniuri Acesta
va fi folosit de funcţia LoadMenuBar pentru icircncărcarea icircn memorie a parametrilor care conţin
această bară Va fi definit automat icircn fişierul header din scheletul de aplicaţie
Item se referă la numele meniului curentsubmeniucomandă de meniu Dacă icircn faţa primei
litere a unui element din meniu se adaugă 2 ldquounderscorerdquo la execuţie acesta va putea fi
selectat prin combinaţia Alt+prima literă
Constant name este alipit la Menu Bar Constant Prefix pentru a se genera identificatorul
elementului curent Este folosit de funcţii ca GetMenuBarAttribute sau SetMenuBarAttribute
De asemenea acest identificator este returnat de GetUserEvent atunci cacircnd apare un
eveniment generat de o comandă a meniului
Callback Function Permite specificarea numelui unei funcţii de răspuns care va fi apelată
automat la activarea respectivului element Folosirea ei este opţională
32
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ModifierKeyShortcutKey se combină pentru a ataşa o cheie ldquohotrdquo pentru elementul
curent
buton ce permite coboracircrea icircn interiorul unei ierarhii de meniuri
buton ce permite urcarea icircn interiorul unei ierarhii de meniuri
Panouri
După cum am spus sunt echivalentul ferestrelor din programarea Windows Pentru a le crea
Create1048774Panel ne pune la dispoziţie un nou panou icircn cadrul UIR-ului curent Prin dublu
ldquoclickrdquo pe acesta se va intra in fereastra de editare a caracteristicilor panoului Această
fereastră este prezentată mai jos
Figura 27
La partea de Menu Bar se poate specifica o bară din cele deja create icircn cazul dezvoltării
respectivei interfeţe
Restul parametrilor au fost discutaţi anterior sau sunt cunoscuţi din programarea Windows
33
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Crearea controalelor
Exceptacircnd diferenţele care apar funcţie de destinaţia acestora există o serie de parametri
comuni fiecărui control pe care icircl creăm Mai jos prezentăm fereastra care apare de exemplu
la crearea unui control de tip numeric şi anume un buton
Figura 28
Se observă că identificatorul intern şi posibilitatea de ataşare a unei funcţii de răspuns
rămacircne De asemenea o serie de informaţii specifice părţii de etichetare Icircn plus apar
specificaţii privind modul de afişare a datelor şi limitele icircntre care acestea pot fi variate prin
intermediul acestui control
34
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
TAB ORDER
Fiecare control de pe un panou activ are o poziţie icircn ordinea de salt prin intermediul
unui tab Această ordine precizează care va fi următorul control ce va fi activat icircn cazul icircn
care utilizatorul apasă Tab sau Shift+Tab Implicit acestea sunt adăugate exact icircn ordinea
creării lor de către programator Numai că nu icircntotdeauna aceasta este ordinea de salt dorită a
fi activă la terminarea aplicaţiei Icircn aceste condiţii secvenţa Edit1048774Tab Order ne va activa un
panou specializat pentru aceasta
Figura 29
noua formă de cursor activă icircn interiorul ferestrei Prin apăsarea pe un control oarecare i
se
poate modifica ordinea de activare
specifică faptul că se acceptă noua ordine de apelare
se iese cu păstrarea vechii ordini
Find UIR Objects
O altă facilitate a editorului este Find UIR Objects care aparţine meniului View Icircn
cadrul unor proiecte mari se dovedeşte a fi extrem de utilă
35
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 210
După cum se observă ne permite căutarea după dorinţă a unui nume icircn diverse categorii de
obiecte ale interfeţei cu utilizatorul
GENERATE
Este meniul folosit pentru generarea fie a icircntregului cod schelet fie numai a codului
corespunzător unui obiect proaspăt introdus icircntr-un UIR
Secvenţa Code1048774Generate1048774AllCode va genera codul schelet pentru aplicaţie Acesta va
conţine şi un ldquoswitchrdquo pentru tratarea evenimentelor Alegerea evenimentelor care vor fi
automat introduse se face din Code1048774Preferences
MENIUL ARRANGE
Icircncă de la primele aplicaţii vom observa că una din operaţiile mari consumatoare de
timp este aranjarea controalelor icircn panou după specificarea caracteristicilor acestora Pentru a
evita acest lucru CVI a fost prevăzut cu o serie de facilităţi de aranjare automată pe care le
vom prezenta mai jos
Figura 211
Top Edges asigură spaţiere verticală icircntre partea superioară a controalelor Cel mai de
sus şi cel mai de jos control sunt considerate puncte de referinţă
36
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Vertical Centers asigură spaţiere verticală icircntre centrele controalelor Cel mai de sus
şi cel mai de jos control sunt considerate puncte de referinţă
Bottom Edges asigură spaţiere verticală icircntre partea inferioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Vertical Gap asigură spaţiere verticală icircntre partea superioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Left Edges setează spaţii orizontale egale icircntre marginile din stacircnga ale controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Centers setează spaţii orizontale egale icircntre centrele controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Right Edges setează spaţii orizontale egale icircntre marginile din dreapta ale
controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Gap spaţiere orizontală icircntre controale Cel mai de sus şi cel mai de jos
control sunt considerate puncte de referinţă
Horizontal Compress minimizează spaţiile pe orizontală dintre controale şi elimină
orice spaţiu dintre ele
Distribute Vertical Centers
Comanda Distribute realizează la apel ultima opţiune selectată din lista prezentată
mai sus
37
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
2Fundamentare teoretică
21 Noţiuni de teoria măsurătorilor
Metrologia este un domeniu al tehnicii cu rădăcini icircn spaţiul Fizicii si ramificaţii icircn
toate sectoarele activităţii practice omeneşti (printre care şi cel al Electronicii) care se ocupa
cu tehnica masurărilor adică cu mijloacele şi metodele pentru determinarea cantitativă ndash
valorică a marimilor fizice Metrologia ndash ca disciplină de sine stătătoare ndash se referă la icircntregul
ansamblu al fenomenelor fizice pe care le studiaza dintr-un punct de vedere propriu şi anume
acela al masurării care este ndash icircn esenţă ndash o comparare experimentală de mărimi ea
stabilind standardele unităţilor de masură şi ale etaloanelor de referinţă pentru aceste unităţi
procedeele de comparare a mărimilor cu etaloanele şi caracteristicile de performanţă (ca
interval game rezoluţie sensibilitate fidelitate dinamică mobilitate precizie etc care ndash icircn
general ndash se numesc caracteristici metrologice) Aplicaţiile metrologiei adică efectuarea
practica a masurării diverselor specii de mărimi caracteristice unor anume domenii constituie
ramuri ale disciplinei acelor domenii aşa sunt măsurările electrice măsurarile electronice
măsurările acustice controlul dimensional fotometria sistemele pentru măsurări automate
măsurările geometrice măsurările hidraulice si multe altele
211 Conceptul de măsurare
Măsurarea este o activitate experimentală de tip informatic al carui scop este
obţinerea unor date cantitative cu privire la proprietăţile unui obiect sau ndash mai general ndash ale
unui sistem şi redarea lor icircntr-o forma potrivită pentru observator (utilizator) Semnificaţia
(interpretarea) pe care observatorul-utilizator o atribuie acestor date cantitative prin
intermediul convenţiilor folosite pentru reprezentarea lor constituie informaţia care este
necesară icircn procesul continuu de cunoaştere comunicare şi conducere (decizie) Prin
identificarea proceselor şi modelarea lor (adică prin reprezentarea matematică a relaţiilor din
sistemul analizat) se stabilesc anumite proprietăţi (elemente specifice) diferite calitativ pe
care le putem denumi mărimi (sau specii de mărimi ndash pentru a le preciza natura lor diferită) si
anumite corelaţii icircntre ele descrise matematic prin legi ndash dacă sunt deduse experimental sau
9
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
prin teoreme formule etc ndash daca sunt stabilite deductiv din legi Icircn acest sens după cum se
ştie mărimile (speciile de mărimi) se diferenţiază (clasifică) icircn mărimi primitive şi mărimi
derivate Cunoaşterea sistemului (stărilor sistemului icircn evoluţia lui) icircn vederea elaborarii
deciziilor de conducere a sistemului pe o traiectorie optima sau una anume necesară implică
evaluarea cantitativă a mărimilor specifice sistemului şi interpretarea lor informaţionala
Acest lucru nu se poate realiza decacirct experimental (ldquope viurdquo si icircn ldquotimp realrdquo) prin măsurări
ceea ce explică rolul cognitiv de comunicare si decizional (mai cuprinzator informaţional) al
măsurărilor
Icircn acest context mai trebuie precizat ca utilizatorul (observatorul) ndash adică
ldquobeneficiarulrdquo icircn activitatea de măsurare ndash poate fi uman sau de tip maşină (icircn cazul
sistemelor automate) Determinarea cantitativă prin măsurare a speciilor de mărimi diferite
calitativ nu se poate realiza decacirct icircn raport cu mărimi de aceeaşi specie (aceeaşi natura fizica)
alese ca unităţi cantitative numite unităţi de măsură fixate icircn mod convenţional dar icircn cadrul
unui sistem de unitaţi de măsură coerent
Se poate acum defini mai bine conceptul de masurare Astfel din punctul de vedere
metrologic măsurarea ldquoeste operaţia prin care se stabileşte pe cale experimentală raportul
numeric icircntre mărimea de măsurat si o valoare (ldquocantitaterdquo) oarecare a acesteia luată ca
unitate de măsurărdquo
Din punctul de vedere tehnic ldquomăsurarea este operaţia experimentală prin care se
determină cu ajutorul unor mijloace de măsurat valoarea numerică a unei mărimi (numită
masurand) icircn raport cu o unitate de măsură datărdquo din aceeasi specie cu masurandul
Din punctul de vedere al modelării masurarea este o operaţie prin care se stabileşte o
aplicaţie de la o specie de mărimi X la mulţimea numerelor reale R sau ndash mai rar ndash R2 (altfel
spus se stabileşte o relaţie icircntre valoarea unei marimi X si un numar real Xm R)
212 Procesul de masurare
Ansamblul operaţiilor experimentale care se execută icircn scopul obţinerii rezultatului
măsurării sub forma unei percepţii realizată de observatorul-utilizator (operatorul ce
efectuează măsurarea) constituie procesul de măsurare Orice proces de măsurare are
urmatoarele componente principale
- mărimea de măsurat (măsurandul)
- metoda de măsurare
- mijlocul (aparatul) de măsurat
10
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
- măsura (etalonul)
- operatorul (observatorul) şi
- prelucrarea ndash tratarea datelor
care ndash icircn funcţie de domeniul precizia şi scopul măsurării ndash au o pondere şi o importanţă
relativă diferită Această structură a procesului de măsurare diversitatea mărimilor de
masurat multitudinea tehnicilor pentru măsurare (mijloace şi metode) care să satisfacă
exigenţele operatorului ndash beneficiar al măsurarii (exigenţe destul de nuanţate icircn funcţie de
scopul măsurării viteza de măsurare costul măsurarii condiţiile ambientale etc) conduc la o
mare varietate a măsurărilor icircn general
Un exemplu particular al acestei mari varietaţi o constituie icircnseşi măsurarile
electronice (care au ca măsurand specii diverse cum sunt mărimile de stare ale cacircmpului
electric şi magnetic mărimile electrice de circuit parametrii de circuit caracteristici de
transfer frecvenţe timp defazaje forme de undă neliniarităţi distorsiuni zgomote cu
regimuri şi o dinamică ample cu influenţe de mediu şi cuplaje adeseori aleatorii etc)
213 Erori de măsurare
Icircn practică se constată că rezultatul unei măsurări nu depinde numai de valoarea
măsurandului el putacircnd fi influenţat de o serie de factori de natura obiectivă (mijloc de
măsurare metoda de măsurare factori exteriori procesului de măsurare etc) sau de natura
subiectivă Pentru caracterizarea rezultatelor obtinuţe icircn procesul de măsurare se definesc
urmatoarele valori
Valoarea adevarată (reala) Xa a unei mărimi este valoarea exacta a mărimii
respective icircn condiţiile existenţe la un moment dat De obicei valoarea adevarată a unei
mărimi nu poate fi determinată experimental ea icircnlocuindu-se cu o valoare convenţional
adevarată X care se obţine cu ajutorul unor mijloace de măsurare deosebit de precise practic
se consideră ca diferenţa dintre valoarea adevarată si valoarea convenţional adevarată este
neglijabilă şi deci cele două noţiuni sunt echivalente
Rezultatul unei măsurări individuale x care se obţine cu ajutorul unor mijloace de
măsurare obisnuite reprezintă valoarea măsurată Abaterea valorii măsurate faţă de valoarea
adevarată a măsurandului constituie eroarea de măsurare
Intervalul icircn care se estimează cu o anumita probabilitate numită nivel de icircncredere
ca se afla valoarea adevarată a măsurandului se numeste incertitudine de măsurare
11
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
incertitudinea de măsurare estimează limitele erorilor de măsurare Pentru o estimare
obiectivă este necesar ca icircmpreună cu rezultatul măsurarii să se specifice atacirct erorile cacirct şi
incertitudinea de măsurare Icircn figura 21 sunt reprezentate schematic noţiunile prezentate
anterior
Figura 21
Fig 11 Explicativă privind valoarea adevarată valoarea măsurată
valoarea convenţional adevarată eroarea de măsurare şi incertitudinea
de măsurare
214Clasificarea erorilor de măsură
Deoarece cauzele erorilor de măsurare sunt numeroase există şi multe criteri de
clasificare a lor Dupa caracterul lor erorile de măsurare pot fi grupate conform schemei
următoare
Figura 22
12
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
215 Etaloane
Etalonul este un sistem fizic care constituie un mijloc de măsurare (măsura instrument
sau aparat de măsurat) ce serveste la păstrarea şi reproducerea unităţilor de măsura cu
precizia metrologică corespunzatoare stadiului la care s-au dezvoltat tehnicile de măsurare Icircn
afara acestor două roluri prin care se ldquodefineşterdquo o unitate de măsura etaloanele mai sunt
utilizate icircn operaţiile de calibrare şi icircn icircnsuşi procesul de măsurare (de icircnaltă precizie) ca
elemente de referinţă precum şi icircn construcţia unor aparate (dispozitive) utilizate icircn alte
scopuri decacirct mşsurarea propriu-zisa (ca de exemplu dispozitive de automatizare
stabilizatoare electronice generatoare de semnal etc)
Calibrarea icircnseamnă ndash icircn metrologie ndash compararea unui aparat de măsurat cu un
etalon icircn scopul gradării sau ajustării verificării sau etalonării aparatului de masurat
Elementul de referinţă este un etalon care asigură (ldquofurnizeazardquo) o mărime fizică anume cu
o valoare bine cunoscută (cu o precizie metrologică corespunzatoare scopului urmarit)
Un etalon trebuie să fie invariabil icircn timp şi icircn spaţiu să poata fi folosit usor icircn tehnică
şi să poată fi reconstituit oricacircnd Unicitatea şi conformitatea măsurărilor icircn orice loc şi la
orice moment impun realizarea unui sistem de etaloane care să
asigure
- generarea principalelor unităti de măsură icircn conformitate cu definiţiile lor din SI
(adică ldquomaterializarea ldquo definiţiilor prin experimente adecvate)
- menţinerea (conservarea) acestor unităţi de măsură constante icircn timp icircn toate
laboratoarele metrologice pe plan mondial
- corelarea icircntre ele a unităţilor de măsură trecerea la alte unitati derivate (etaloane de
derivare) şi extinderea limitelor de măsurare cu precizia necesară cum ar fi trecerea la
multipli şi submultipli ai unităţilor de măsură (etaloane de raport)
Aceste trei operaţii fundamentale icircn activitatea metrologică se efectuează icircn
mod corespunzator cu urmatoarele trei categorii de etaloane
- etaloane de definiţie (adica etaloanele prin care se generează principalele unităţi de
măsură şi icircn principal cele fundamentale aşa cum este ndash de exemplu ndash determinarea absolută
a amperului cu ajutorul balanţei de curent)
- etaloane de conservare (adică etaloanele de menţinere a unităţii de măsură cu o mare
stabilitate icircn timp şi faţă de influenţele exterioare de mediu)
- etaloanele de transfer (adica cele care asigura etalonarea tuturor tipurilor
13
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
de aparate de masurat icircn intervale largi de valori ale masurandului pentru marimi constante
sau variabile icircn timp) asa cum sunt etaloanele de raport etaloanele de derivare si etaloanele
de transfer (curent continuu ndash curent alternativ) prin compararea efectelor (termice
electrodinamice etc) ale semnalelor de curent sau tensiune produse asupra unui acelaşi
element sensibil
22 Conceptul de M2M
M2M este o abreviere de la Machine-to-Machine deşi tot mai des se foloseşte şi
pentru identificarea tehnologiilor Man-to-Machine Machine-to-Man Machine-to-Mobile sau
Mobile-to-Machine Pe scurt este vorba de un serviciu ce permite comunicarea dintre
echipamentele aflate la distanţă şi aplicaţiile la care sunt conectate De fapt M2M este o
evoluţie comercială a tradiţionalelor sisteme de control al echipamentelor din domeniul
industrial soluţie aplicată cu succes pentru prima dată de NASA Adaptată nevoilor
companiilor (un rol important l-a jucat compania France Telecom) M2M permite companiilor
sa administreze mai uşor echipamentele aflate la distanţă si să le integreze cu procesele
interne
Zona soluţiilor M2M este cotată ca fiind una dintre cele mai promiţătoare in
următorii ani ca urmare a creşterii nevoii de automatizare a proceselor şi a posibilităţii de a
lua decizii intr-un timp cat mai scurt posibil ceea ce va genera proiecte majore Aplicaţiile
M2M permit prin monitorizarea si controlul maşinilor şi proceselor de la distanţă reducerea
costurilor optimizarea proceselor si imbunătăţirea nivelului serviciilor oferite clienţilor
permitand economii de timp şi de personal
14
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
23 Limbajul Python
Icircn cadrul unei instalaţii de telemetrie modemurile deţin memorie şi processor propriu
motiv pentru care se numesc ldquointeligenterdquo Pe lacircngă memorie şi processor aceste modemuri
inteligente au şi un interpretor al unui limbaj de programare de nivel icircnalt Icircn cazul
medemurilor alese de mine acest limbaj este Python
Python este un limbaj de programare dinamic orientat pe obiect care poate fi folosit
pentru mai multe tipuri de dezvoltarea software Oferă un puternic suport pentru integrarea cu
diferite instrumente folosind librării standard de extensie şi poate fi invăţat in cacircteva zile
231 Tipuri de date
Sunt 3 grupuri de tipuri de date in Python
Scalari ndash care au sutipurile intreg intreg lung si sir de caractere
i = 1 li = 9999999999L s = Hello
Secvenţe care conţin un anumit număr de obiecte arbitrare intr-o ordine definită
L = [1 5 3 9 14]
Liste asociative care permit accesul la valori bazate pe chei Aceste chei pot fi arbitrare
dar sunt obiecte permanente De exemplu
D = b Python a 5 print D[a]
Afisează 5
Spre deosebire de Pascal C C++ sau Java Python este un limbaj tastat dinamic Astfel
următoarea secvenţă de cod este perfect valabilă icircn Python
a = 7 7 (integer)
a = str(2a) + bytes 7 bytes (string)
15
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Icircn Python variabilele nu sunt declarate icircn script ele apar doar atunci cand sunt folosite
232 Operatori
Icircn Python există următorii operatori
Operatori aritmetici
+ - ~ ltlt gtgt amp ^ |
Operatori relaţionali şi logici
is in lt lt= gt gt= == = not and or
Operatori de asignare
= += -= = = = = ltlt= gtgt= amp= ^= |=
Alţi operatori
( ) [ ] [] `` lambda
233 Comenzi compuse
Comenzile care aparţin aceluiaşi grup logic sunt deplasate spre dreapta cu acelaş
număr de spaţii albe
if a gt 0
b = 1
c = 2
De obicei fiecare comandă icircncepe pe o linie nouă
16
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
O instrucţiune se poate continua pe racircndul următor prin plasarea caracterului backslash
la sfacircrsitul randului Acest lucru nu este necesar dacă există paranteze deschise
my_list = [1
[abc 2]
-3+6j]
print my_list
234 Execuţii condiţionale
Python foloseşte if elif (nu elsif sau elseif) si else pentru a indica execuţia condiţională a
unei instrucţiuni
De exemplu
if a gt b
print a is greater than b
elif a lt b
print a is lower than b
else
print a equals b
Se poate folosi si interval prescurtate de testare
if 2 lt= a lt= 7
print a is in the interval [2 7]
235 Bucle
Buclele in Python sunt definite prin cuvintele cheie for şi while
Următorul exemplu foloseşte o buclă while pentru a colecta toate numerele intregi
cuprinse intre 0 si 99 intr-o listăacirc
numbers = [ ]
i = 0
while i lt 100
17
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
numbersappend(i)
i = i + 1
O buclă similar for arată in felul următor
numbers = [ ]
for i in range(100)
numbersappend(i)
Icircn loc de buclele explicite prezentate mai sus se poate folosi şi bucle implicite după
cum urmează
numbers = range(100)
range(100) generează o listă cu toate numerele intregi de la 0 la 100
24 General packet radio service(GPRS)
Comunicaţia intre modemuri ( RTU-uri ) şi dispecer se poate face prin mai mlte
mediu de transmisie
- Cablu telephonic
- Radio
- GSMGPRS
- Fibră Optică
Opţiunea pentru care am optat icircn partea de comunicaţie este GSMGPRS deoarece
asigură o cumunicaţie sigură şi oferă simplitate pentru priectant
GPRS introduce servicii de transport cu comutaţie de pachete pentru debite de la 14
kbps la maximum 170 kbps Practic GPRS este o reţea cu comutaţie de pachete de sine
stătătoare care se daugă la reţeaua GSM GPRS interoperează cu infrastructura GSM la
nivelul subsistemului staţiilor de bază BSS şi al bazelor de date din subsistemul reţea NSS
(HLR VLR AUC) GPRS preia traficul de date iar GSM traficul de voce care rămacircne
comutat prin MSC
Datele sunt transmise prin GPRS icircn pachete de lungimi fixe Fiecare pachet conţine
adresa destinaţie pentru a putea fi rutat de nodurile GPRS Modificarea pe interfaţa radio e
18
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
dată de introducerea codării adaptive a canalului Aceasta icircnseamnă că protecţia datelor
variază icircn timp icircn funcţie de starea canalului radio GPRS poate utiliza pentru o conexiune
de date de la fracţiuni de canale de trafic pacircnă la maximum 8 sloturi temporale (adică tot
cadrul TDMA) icircn funcţie de resursele disponibile
Capacitatea alocată unei conexiuni va varia icircn funcţie de icircncărcarea cu trafic de pe
frecvenţa respectivă precum şi de tipul traficului (vocedate) Este important că utilizacircnd
comutaţia de pachete o transmisie de date nu ocupă resursele reţelei decacirct atunci cacircnd sunt
date de transmis Cacircnd nu există pachete de transmis resursele de pe interfaţa radio pot fi
utilizate pentru alte transmisii de date sau pentru trafic cu comutaţie de circuite
GPRS are o reţea nucleu proprie formată prin interconectarea serverelor care
gestionează transmisia de pachete numite noduri suport GPRS (GSN- GPRS Suport Node)
Aceasta reţea operează icircn paralel cu subsistemul reţea şi comutaţie (NSS) al GSM care va
gestiona icircn continuare transmisia cu comutaţie de circuite
241 Caracteristicile sistemului GPRS
GPRS este un serviciu specificat icircn faza 2+ de standardizare a GSM El este oferit prin
intermediul unei infrastructuri numită şi sistem sau reţea GPRS ce interoperează cu
infrastructura bdquoclasicărdquo GSM
GPRS se icircncadrează icircn orientarea generală a ETSI de a asigura prin aza 2+ o platformă
ce va putea fi utilizată ulterior icircn reţele de generaţia a treia Astfel el este onsiderat
actualmente soluţia de bază pentru transmiterea de date icircn UMTS Fiind un standard SM
GPRS păstrează evident şi compatibilitatea cu sistemul părinte fiind practic o extensie a
acestuia pentru transmisii de date la debite mai mari GPRS reprezintă la ora actuală cel mai
reprezentativ sistem de generaţie intermediară (25G)
Dacă HSCSD ar putea fi considerat o ajustare fină a GSM GPRS reprezintă cu
siguranţă un salt tehnologic semnificativ deoarece marchează trecerea de la comutaţia de
circuite la cea de pachete Schimbarea tipului de comutaţie se referă icircn acest moment (atacirct la
25G cacirct şi icircn 3G) doar la transmiterea datelor vocea rămacircnacircnd icircn continuare comutată prin
MSC Datorită eternei insuficienţe a resurselor radio este probabil ca icircntr-o fază nu prea
icircndepărtată de dezvoltare a UMTS şi de ce nu chiar a GPRS să fie utilizată comutaţia de
pachete şi pentru serviciile de timp real vocale sau non-vocale
Icircn concluzie GPRS reprezintă o infrastructura ce permite transmiterea datelor pe baza
comutaţiei de pachete icircntr-o reţea GSM
19
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Pentru a putea oferi debite de date mai ridicate icircn GPRS se urmăreşte utilizarea cacirct
mai eficientă a resurselor radio Pentru aceasta se preia de la HSCSD ideea operării multislot
posibilitatea de a proteja mai puţin informaţia utilă pe interfaţa radio şi alocarea asimetrică
uplink downlink Icircn ciuda acestor asemănări icircnlocuirea comutaţiei de circuite cu cea de
pachete face din GPRS un sistem complet diferit de HSCSD Aceasta atacirct din punct de vedere
al utilizatorului care constată un timp de conectare practic nul şi rate de transfer mai bune
dar şi din punct de vedere al operatorului care efectuează o investiţie incomparabil mai mare
răsplătită printr-o mai eficientă utilizare a interfeţei radio cu tot ceea ce rezultă de aici (mai
mulţi clienţi mai multe servicii aplicaţii diverse)
Rezumacircnd icircn GPRS este implementat un set de soluţii tehnologice ce au ca scop
principal creşterea eficienţei utilizării interfeţei radio Aceasta derivă atacirct din experienţa
sistemelor anterioare cacirct şi mai ales din operarea icircn modul pachet a datelor ce se transmit
Soluţiile utilizate sunt
creşterea ratei de transmisie a datelor prin reducerea codării canalului (sunt definite
şi pot
fi utilizate 4 scheme de codare 905kbps 134 kbps 156 kbps 214kbps)
creşterea ratei de transmisie prin operare multislot ( pacircnă la 8 sloturi temporale per
utilizator)
creşterea eficienţei utilizării resurselor radio prin multiplexarea mai multor
utilizatori pe acelaşi canal fizic (posibila datorită transmisiei de pachete maximum 8
utilizatori pe slot temporal)
creşterea eficienţei utilizării resurselor radio prin alocare asimetrică uplinkdownlink
creşterea eficienţei utilizării resurselor radio prin alocarea dinamică a canalelor icircntre
servicii comutate icircn mod circuit respectiv pachet
Cacircnd un icircntreg cadru TDMA este alocat unui utilizator cu schema de protecţie minimă
(practic fără corecţie de erori) rezultă rata utilă instantanee maximă posibilă icircn GPRS
(8x214 kbps=1712 kbps)
242 Comutaţie de circuite şi comutaţie de pachete
20
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comutaţia este o tehnică esenţială icircn reţelele de comunicaţii Fără ea fiecare
echipament terminal ar trebui conectat printr-o cale directă cu fir sau fără la toate celelalte
echipamente terminale din reţea Principalele metode de comutaţie sunt
comutaţia de circuite
comutaţia de mesaje
comutaţia de pachete
Comutaţia de circuite
Aceasta presupune realizarea icircntre emiţător şi receptor a unei căi fizice de comutaţie
dedicate numită circuit Icircntreaga comunicaţie se desfăşoară icircn trei etape
stabilirea conexiunii (sau deschiderea circuitului)
transferul de informaţii
eliberarea conexiunii (circuitului)
Este de remarcat faptul că stabilitatea fizică a caii de comunicaţie are loc icircnainte de
icircnceperea transmisiunii propriu-zise Aceasta poate conduce la durate semnificative ale
timpului de conectare
Un dezavantaj notoriu al acestei tehnici este alocarea fixă a resurselor de comunicaţie
necesare pe durata conexiunii indiferent dacă la un moment sau altul mediul de transmisie
este folosit total parţial sau deloc
Pe de altă parte avantajele comutaţiei de circuite provin tocmai din această alocare fixă de
resurse care permite
asigurarea unei icircntacircrzieri constante şi minime
garantarea unui debit util corespunzător mediului de comunicaţie şi serviciului utilizat
Toate acestea facilitează oferirea serviciilor de timp real (telefonie videofonie alte
transmisiuni video) Exemplul tipic de reţea cu comutaţie de circuite este reţea telefonică
publică comutată (PSTN) Reţeaua GSM este de asemenea o reţea cu comutaţie de circuite
Referindu-ne strict la interfaţa radio a reţelelor fără fir etapa de stabilire a conexiunii
presupune alocarea unui canal radio (sau a mai multora icircn cazul HSCSD) unei staţii mobile
(MS) Acest canal rămacircne icircn posesia terminalului mobil pe toata durata conexiunii chiar dacă
transferul de date este discontinuu (icircn rafale) sau chiar icircncetează cu desăvacircrşire (de exemplu
21
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cacircnd utilizatorul citeşte cu atenţie cinci minute o pagină WEB după care lămurit pe deplin
icircntrerupe legătura) Ca o particularizare binecunoscută a reţelelor cu comutaţie de circuite
trebuie menţionat că utilizatorul trebuie să plătească pentru icircntreaga durată a conexiunii chiar
dacă a fost risipitor şi nu a folosit resursa ce i-a fost alocată
Comutaţia de mesaje
Este o tehnică ce nu stabileşte apriori o cale de transmisiune icircntre emiţător şi receptor
Informaţia ce urmează a fi transmisă formează o entitate bine precizată numita mesaj
Mesajele sunt complet independente unele faţă de altele şi pot avea lungimi variabile deşi
structura (formatul) lor poate fi prestabilit Emiţătorul trebuie sa ataşeze mesajului adresa
destinatarului decizia cu privire la ruta pe care o va urma mesajul fiind de competenţa
fiecărui comutator (router) prin care trece Fiecare comutator va memora mesajul după care icircl
va transmite pe ieşirea selectată de el Principala problemă a comutaţiei de mesaje este dată de
dimensiunea mare a mesajelor Din această cauză comutatoarele de mesaje au nevoie de o
capacitate de stocare uriaşă iar icircntacircrzierea icircn noduri poate deveni inacceptabilă din cauza
monopolizării ieşirilor de către mesajele lungi Exemplul tipic de reţea cu comutaţie de
mesaje este reţeaua telex
Comutaţia de pachete
Rezolvă o mare parte din dezavantajele comutaţiei de mesaje stabilind o lungime
maximă a entităţii informaţionale care circulă prin reţea numită pachet Pachetele sunt icircn
general rezultatul divizării mesajelor icircn blocuri de lungime mică Datorită acestui fapt spre
deosebire de mesaje pachetele nu sunt independente O recepţie corespunzătoare implică
refacerea mesajului prin ordonarea pachetelor după logica folosită la emisie Pentru aceasta
exista două posibilităţi apropiate conceptual de comutaţia de mesaje respectiv de comutaţia
de circuite
A Comutaţia de pachete fără conexiune (sau neorientată pe conexiune)
Icircn cazul comutaţiei de pachete fără conexiune pachetele (numite şi datagrame) se transmit
independent icircn cel mai pur spirit al comutaţiei de mesaje urmacircnd rute posibil diferite
Sosirea lor la destinaţie poate avea loc icircntr-o ordine aleatoare ceea ce necesită reordonarea lor
de către receptor Refacerea succesiunii corecte a pachetelor se bazează pe informaţia
22
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
suplimentară din fiecare pachet privitoare la mesajul din care face parte şi locul pe care icircl
ocupa icircn el Exemplul tipic de reţea care utilizează comutaţia de pachete este internetul
BComutaţia de pachete orientată pe conexiune (sau circuit virtual)
Icircn cazul comutaţiei de pachete orientată pe conexiune (sau circuit virtual) comunicarea
icircntre terminale presupune stabilirea unei căi anume pe care va circula fluxul informaţional
dintre acestea similar cu comutaţia de circuite Spre deosebire de aceasta nu este vorba de
dedicarea unui circuit fizic comunicării respective ci de configurarea unui circuit logic
numit circuit virtual Aceasta icircnseamnă că toate pachetele vor urma aceeaşi cale prin reţea
fără a dedica suportul fizic comunicaţiei respective Pachetele altor utilizatori vor putea folosi
foarte bine segmente din calea respectivă sau chiar icircntreaga cale La stabilirea circuitului
virtual fiecare comutator (router) trebuie să memoreze icircn tabela de dirijare care este
succesorul său icircn respectivul circuit virtual Astfel spre deosebire de comutaţia de pachete
fără conexiune după stabilirea circuitului virtual comutatorul nu mai trebuie să decidă calea
fiecărui pachet Avacircnd memorat nodul succesor icircn fiecare dintre circuitele virtuale icircn care este
implicat comutatorul va identifica circuitul asociat pachetului şi icircl va transmite pe acesta pe
linia de ieşire corespunzătoare Tehnica circuitului virtual garantează livrarea icircn ordine a
pachetelor la destinaţie Exemple marcante de reţele ce utilizează comutaţia de pachete de tip
circuit virtual sunt X25 şi ATM
Marele avantaj al comutaţiei de pachete este utilizarea eficientă a resurselor de
transmisiune Deoarece acestea nu sunt dedicate ele pot fi folosite după necesităţi pentru a
transmite pachete provenind de la utilizatori diferiţi Din acest motiv comutaţia de pachete
este extrem de avantajoasă icircn cazul unei infrastructuri cu resurse de transmisiune limitate
cum este şi cazul reţelelor fără fir
Un dezavantaj important al comutaţiei de pachete este dat de gestionarea comutatoarelor
(routerelor) icircn cazul unui trafic crescut la intrare Pierderea pachetelor garantarea unei
icircntacircrzieri maxime şi a unui debit utilizator constant sunt problemele spinoase ale comutaţiei
de pachete Ele reprezintă obstacole icircn special icircn calea oferirii serviciilor de timp real cum ar
fi telefonia
Icircn schimb icircn cazul transmisiilor de date avantajul bunei administrări a resurselor
prevalează De exemplu icircn cazul particular al interfeţei radio GSM cacircnd o staţie mobilă (MS)
generează un pachet de date reţeaua icircl va transmite pe un canal radio disponibil icircn acel
moment Următorul pachet de pe acel canal poate să aparţină aceleiaşi MS dacă are ceva de
23
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
transmis sau dacă nu alteia Icircn acest mod atacircta timp cacirct cineva are ceva de transmis
canalele radio nu sunt blocate inutil Lucrul icircn mod pachet are o eficienţă cu totul deosebită icircn
cazul unui trafic de date icircn rafale (data bursts)
Aşadar pentru un sistem GSM bazat esenţialmente pe comutaţia de circuite este
extrem de utilă alocarea resurselor neutilizate de către serviciile vocale pentru servicii mai
puţin prioritare Atacirct HSCSD cacirct şi GPRS icircşi propun acest lucru Serviciile cele mai potrivite
pentru valorificarea resurselor rămase (preferabil printr-un mecanism de alocare dinamică)
sunt tocmai cele care implică un trafic de date icircn rafale fără pretenţii de timp real Diferenţa
fundamentală icircntre HSCSD şi GPRS este că acesta din urmă valorifică aceste resurse icircntr-un
mod mult mai eficient deoarece utilizează comutaţia de pachete Icircn plus costul serviciilor
oferite este mai atractiv deoarece utilizatorul plăteşte volumul de date transferat Practic dacă
doreşte utilizatorul poate fi sbquoconectatrsquo la reţeaua de date icircn permanenţă fiind taxat doar
pentru timpul icircn care efectiv utilizează resursele reţelei adică pentru pachetele de date
recepţionate respectiv transmise
243 Servicii GPRS
Dintre aplicaţiile cele mai potrivite pentru GPRS se pot aminti mesageria de orice tip
difuzare şi distribuţie multiplă telemetrie jocuri navigare de mică anvergură pe reţeaua
internet Icircn general orice tip de aplicaţii ce necesită comunicaţii maşină - maşină la debite
mici şi medii sunt adecvate dezvoltării icircn mediul GPRS
Ca şi icircn reţeaua GSM reţelele GPRS pot oferi două categorii de servicii de
telecomunicaţii
servicii de bază
servicii suplimentare
Serviciile de bază GPRS
Acestea sunt icircn principal servicii suport (bearer services) de transport care realizează
transmiterea datelor cu comutaţie de pachete icircntre două interfeţe şi din teleservicii Similar
situaţiei din GSM aceste interfeţe sunt
interfaţa dintre echipamentul terminal de date (de exemplu calculator) şi terminalul
mobil GPRS
24
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
interfaţa dintre reţeaua GPRS şi reţeaua de date sau echipamentul terminal cu care
comunică Aceasta interfaţă este situată icircntr-un nod poartă (gateway) GPRS similar
situaţiei din GSM unde locul ei este GMSC
Teleserviciul fundamental oferit de GPRS este cel de transport de date şi este detaliat
mai jos Un alt teleserviciu oferit de GPRS este transmisia şi recepţia de mesaje scurte (SMS)
Astfel pe de o parte capacitatea de transmisie a mesajelor scurte va creşte iar pe de alta
parte reţeaua de semnalizări pe care se transmit icircn GSM aceste mesaje nu va mai fi icircncărcată
şi cu mesaje scurte ce vin sau pleacă de la la terminalele mobile GPRS
Servicii GPRS de transport
Sunt definite doua categorii de teleservicii de transport
servicii punct-la-punct (PTP ndashPoint-to-Point)
servicii punct la multipunct (PTM-Point-to-Multipoint)
A Serviciul PTP
Serviciul punct la punct (PTP) [GSM 0260] permite transmiterea de pachete de date
icircntre doi utilizatori Este implementat icircn GPRS faza 1 Abonatul care a iniţiat serviciul se
numeşte solicitant (service requester) Partenerul său se numeşte receptor al serviciului
(service receiver)
Serviciul PTP poate fi solicitat fie de la terminalul mobil GPRS fie de la un
echipament situat icircntr-o reţea de date fixă (IP X25) Serviciul PTP poate fi oferit de
asemenea icircntre doi utilizatori mobili GPRS
Serviciul punct-la punct poate fi la racircndul sau de două tipuri
PTP fără conexiune (PTP-CLNS ndash PTP Connectinnless Network Service)
PTP orientat pe conexiune (PTP-CONS ndashPTP Connection Orientated Network
Network Service)
PTP-CLNS este un serviciu de tip datagramă ce utilizează comutaţia de pachete fără
conexiune Este util icircn cazul aplicaţiilor ce generează trafic icircn rafale şi are că scop asigurarea
interoperării cu reţele IP
PTP-CONS este un serviciu de tip circuit virtual ce utilizează comutaţia de pachete
orientata pe conexiune Icircntre cei doi utilizatori se stabileşte un circuit virtual pentru o perioadă
25
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ce poate varia de la cacircteva secunde la ore Este util atacirct pentru aplicaţii ce generează trafic icircn
rafale cacirct şi pentru aplicaţiile interactive Are că scop asigurarea interoperării cu reţele X25 şi
derularea peste GPRS a aplicaţiilor bazate pe protocolul OSI CONS(Connection Orientated
Network Protocol)
O reţea GPRS trebuie să asigure menţinerea circuitului virtual la trecerea dintr-o
celulă icircn alta dar numai icircn interiorul aceleiaşi reţele GPRS-PLMN La trecerea terminalului
mobil icircntr-o altă reţea sau icircn cazul căderii legăturii radio circuitul virtual va fi eliberat Pentru
ambele tipuri de servicii pe interfaţa radio se poate opera fie cu confirmare fie fără
confirmare a transportului de date
B Serviciul PTM
Serviciul punct la multipunct (PTM) permite transmiterea de pachete de date de la un
utilizator către mai mulţi utilizatori El este implementat icircn faza a doua a GPRS O
comunicaţie PTM se stabileşte icircntre un furnizor de servicii (ce poate fi situat icircn afară reţelei
GSM) şi un grup de terminale GPRS Şi serviciul PTM este un serviciu ce se prezintă icircn două
variante
PTMndash multidistribuţie (PTM Multicast)
PTM- grup (PTM-G--PTMGroup)
Serviciul de transport PTM-M permite transmiterea pachetelor de date icircntr-o arie
geografică dată (celulă grup de celule) fără confirmare Receptorii serviciului sunt fie toţi
abonaţii care se găsesc icircn acea zonă fie un grup icircnchis de utilizatori
Icircn cazul PTM-G receptorul serviciului este un grup predefinit de utilizatori Pachetele de
date vor fi trimise către toţi membrii grupului indiferent de aria geografică unde se găsesc
aceştia Este posibilă şi transmiterea doar către acei membri care se găsesc icircn anumite zone
geografice Transmisia poate fi şi cu confirmare
Serviciile suplimentare
Printre serviciile suplimentare avute icircn vedere icircntr-un prim stadiu se numără
redirecţionarea necondiţionată a apelurilor redirecţionarea cacircnd abonatul nu este accesibil şi
definirea de grupuri icircnchise de utilizatori In afară de aceste servicii recomandarea GSM
0260 descrie posibilitatea oferirii de servicii adiţionale cum sunt accesarea bazelor de date
servicii de mesagerie validări de cărţi de credit servicii de monitorizare electronică tranzacţii
electronice etc
26
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
244 Arhitectura GPRS
GPRS este o soluţie pentru operatori deoarece nu necesită modificări substanţiale icircn
reţeaua GSM Aşa cum se observă icircn figura 72 reţeaua nucleu a GPRS operează icircn paralel
cu GSM-NSS
Figura 23 Arhitectura reţelei GPRS
25 LabWindowsCVI
La dipecer am considerat un calculator desktop sau laptop pe care va rula o aplicaţie
de monitorizare a datelor măsurate implementată icircn LabWindowsCVI
LabWindowsCVI este o platformă pentru dezvoltare de software cu orientare pe
aplicaţii de instrumentaţie După cum se deduce din denumirea sa (CVI ndash C for Virtual
Instrumentation) limbajul acceptat este ANSI C cu extensii specifice CVI ne pune la
dispoziţie un mediu interactiv de dezvoltare a unor aplicaţii pentru sistemul de operare
Windows Icircmbină deci avantajele programării de tip vizual cu avantajele simplităţii şi
flexibilităţii limbajului C Deşi a fost creat special pentru aplicaţii de instrumentaţie şi control
27
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
multiplele lui facilităţi icircl fac capabil să suporte şi dezvoltarea unor aplicaţii de mărime medie
care să fie de altă factură Fiecare funcţie de bibliotecă din cadrul acestui mediu are o interfaţă
specializată numită panoul funcţiei (function panel) care permite
bull Help on-line
bull Selectare şi declarare de variabile sau constante necesare
bull Execuţie interactivă
bull Inserarea funcţiei editate icircntr-un text sursă
Mediul este extrem de flexibil permiţacircnd interfaţarea bidirecţională cu alte compilatoare de
C sau C++ De asemenea se pot folosi şi DLL-uri
Puterea mediului LabWindowsCVI este dată de bibliotecile puse la dispoziţia
programatorului acestea conţinacircnd funcţii pentru implementarea diverselor faze care conduc
la o aplicaţie din domeniul achiziţiei de date sau a controlului automat
Pentru achiziţia de date există următoarele biblioteci specializate
bull de instrumente
bull pentru interfaţa GPIBGPIB 4882 (General Purpose Interface Bus)
bull pentru achiziţie de date
bull pentru operaţii IO icircn cazul achiziţiei de date
bull pentru interfaţa serială RS232
bull pentru sistemul VXI
Biblioteci specializate pentru analiza datelor
bull pentru IO
bull pentru formatarea specială
bull pentru analiză
bull pentru analiză avansată
Biblioteci specializate pentru vizualizare date
bull pentru crearea unei interfeţe utilizator de tip vizual
Biblioteci specializate pentru lucrul icircn reţea şi comunicarea icircntre diverse aplicaţii
bull pentru DDE (Dynamic Data Exchange)
bull pentru TCP (Transmision Control Protocol)
bull pentru sistemul X de sub Unix
Icircn afară de acestea mai există o bibliotecă specială numită biblioteca de instrumente
care conţine drivere şi sursele lor pentru osciloscoape multimetre şi generatoare de funcţii
De asemenea există posibilitatea creării unui instrument propriu Biblioteca pentru interfaţa
28
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cu utilizatorul conţine funcţiile necesare creării unui GUI (Graphical User Interface =
Interfaţă grafică cu utilizatorul) după necesităţi
Structura generică a unei aplicaţii dezvoltate sub CVI
Un proiect complet pentru una din clasele de aplicaţii specifice mediului CVI are
următoarele componente generice
bull interfaţa cu utilizatorul
bull partea de control a aplicaţiei
bull partea specializată pentru achiziţia datelor
bull partea specializată icircn analiza respectivelor date
Mai jos prezentăm o schemă generică a aplicaţiilor CVI
Figura 24
Tipuri de fişiere folosite icircn cadrul CVI
PRJ se referă la fişiere de tip proiect
UIR se referă la fişiere care conţin descrierea unei interfeţe grafice cu utilizatorul
C fişiere sursă
H fişiere header
FP fişiere care reţin descrierea unui instrument
LIB fişiere bibliotecă
DLL fişiere link-editate pentru apel dinamic
OBJ fişiere obiect
29
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a unora dintre meniurile şi ferestrele mediului de dezvoltare CVI
Fereastra proiect
Prezentăm mai jos doar informaţiile suplimentare faţă de o fereastră proiect standard
Pe lacircngă datele curente despre fiecare fişier inclus icircn proiect acesta mai are precizat şi unul
sau mai mulţi din următorii indici
- I indică faptul că respectivul fişier conţine descrierea unui driver de instrument
- S faptul că s-au făcut modificări icircn fişierul respectiv şi deci trebuie salvat
- C indică obligativitatea compilării respectivului fişier icircnainte de rularea aplicaţiei
- indică faptul că fişierul este deschis icircntr-o fereastră de editare
- indică ca acest fişier nu este deschis
Aplicaţii consolă
Pentru aplicaţiile tip consolă clasice C unde se folosesc pentru IO funcţiile scanf şi
printf vizualizarea ieşirii icircn mod text a acestora se va face icircntr-o fereastră specială numită
ldquoStandard InputOutput Windowrdquo
Observaţie Dacă se va programa icircn acest mod trebuie activată opţiunea ldquoBring Standard
InputOtput to front whenever modifyrdquo din Environment ce aparţine meniului Options
Generatorul interactiv de aplicaţii
Butoanele directe ale editorului de interfeţe cu utilizatorul
folosit la selectare mutare şi dimensionare obiecte
utilizat pentru a modifica textul asociat cu obiectele din UIR folosind facilităţile de
etichetare
folosit pentru colorarea obiectelor Este suficientă o apăsare pe butonul din dreapta a
mouse-ului şi va colora automat obiectul selectat cu culoarea curentă
oferă facilităţi de operare Atunci cacircnd este activat evenimentele vor fi afişate icircn partea
dreaptă a barei de facilităţi
30
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a cacirctorva din meniurile mai importante ale generatorului
Menu Bars activează cutia de dialog care ne prezintă toate barele de meniu definite deja de
programator
Figura 25
Create apelează fereastra Edit Menu Bar pentru a crea o nouă bară de meniuri
Edit apelează fereastra Edit Menu Bar pentru a modifica o bară de meniuri existentă
Fereastra Edit Menu Bar(fig26) permite specificarea sau modificarea caracteristicilor
unei bare de meniuri icircn curs de creare sau care există deja
31
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 26
Menu Bar Constant Prefix este identificatorul intern al respectivei bare de meniuri Acesta
va fi folosit de funcţia LoadMenuBar pentru icircncărcarea icircn memorie a parametrilor care conţin
această bară Va fi definit automat icircn fişierul header din scheletul de aplicaţie
Item se referă la numele meniului curentsubmeniucomandă de meniu Dacă icircn faţa primei
litere a unui element din meniu se adaugă 2 ldquounderscorerdquo la execuţie acesta va putea fi
selectat prin combinaţia Alt+prima literă
Constant name este alipit la Menu Bar Constant Prefix pentru a se genera identificatorul
elementului curent Este folosit de funcţii ca GetMenuBarAttribute sau SetMenuBarAttribute
De asemenea acest identificator este returnat de GetUserEvent atunci cacircnd apare un
eveniment generat de o comandă a meniului
Callback Function Permite specificarea numelui unei funcţii de răspuns care va fi apelată
automat la activarea respectivului element Folosirea ei este opţională
32
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ModifierKeyShortcutKey se combină pentru a ataşa o cheie ldquohotrdquo pentru elementul
curent
buton ce permite coboracircrea icircn interiorul unei ierarhii de meniuri
buton ce permite urcarea icircn interiorul unei ierarhii de meniuri
Panouri
După cum am spus sunt echivalentul ferestrelor din programarea Windows Pentru a le crea
Create1048774Panel ne pune la dispoziţie un nou panou icircn cadrul UIR-ului curent Prin dublu
ldquoclickrdquo pe acesta se va intra in fereastra de editare a caracteristicilor panoului Această
fereastră este prezentată mai jos
Figura 27
La partea de Menu Bar se poate specifica o bară din cele deja create icircn cazul dezvoltării
respectivei interfeţe
Restul parametrilor au fost discutaţi anterior sau sunt cunoscuţi din programarea Windows
33
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Crearea controalelor
Exceptacircnd diferenţele care apar funcţie de destinaţia acestora există o serie de parametri
comuni fiecărui control pe care icircl creăm Mai jos prezentăm fereastra care apare de exemplu
la crearea unui control de tip numeric şi anume un buton
Figura 28
Se observă că identificatorul intern şi posibilitatea de ataşare a unei funcţii de răspuns
rămacircne De asemenea o serie de informaţii specifice părţii de etichetare Icircn plus apar
specificaţii privind modul de afişare a datelor şi limitele icircntre care acestea pot fi variate prin
intermediul acestui control
34
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
TAB ORDER
Fiecare control de pe un panou activ are o poziţie icircn ordinea de salt prin intermediul
unui tab Această ordine precizează care va fi următorul control ce va fi activat icircn cazul icircn
care utilizatorul apasă Tab sau Shift+Tab Implicit acestea sunt adăugate exact icircn ordinea
creării lor de către programator Numai că nu icircntotdeauna aceasta este ordinea de salt dorită a
fi activă la terminarea aplicaţiei Icircn aceste condiţii secvenţa Edit1048774Tab Order ne va activa un
panou specializat pentru aceasta
Figura 29
noua formă de cursor activă icircn interiorul ferestrei Prin apăsarea pe un control oarecare i
se
poate modifica ordinea de activare
specifică faptul că se acceptă noua ordine de apelare
se iese cu păstrarea vechii ordini
Find UIR Objects
O altă facilitate a editorului este Find UIR Objects care aparţine meniului View Icircn
cadrul unor proiecte mari se dovedeşte a fi extrem de utilă
35
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 210
După cum se observă ne permite căutarea după dorinţă a unui nume icircn diverse categorii de
obiecte ale interfeţei cu utilizatorul
GENERATE
Este meniul folosit pentru generarea fie a icircntregului cod schelet fie numai a codului
corespunzător unui obiect proaspăt introdus icircntr-un UIR
Secvenţa Code1048774Generate1048774AllCode va genera codul schelet pentru aplicaţie Acesta va
conţine şi un ldquoswitchrdquo pentru tratarea evenimentelor Alegerea evenimentelor care vor fi
automat introduse se face din Code1048774Preferences
MENIUL ARRANGE
Icircncă de la primele aplicaţii vom observa că una din operaţiile mari consumatoare de
timp este aranjarea controalelor icircn panou după specificarea caracteristicilor acestora Pentru a
evita acest lucru CVI a fost prevăzut cu o serie de facilităţi de aranjare automată pe care le
vom prezenta mai jos
Figura 211
Top Edges asigură spaţiere verticală icircntre partea superioară a controalelor Cel mai de
sus şi cel mai de jos control sunt considerate puncte de referinţă
36
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Vertical Centers asigură spaţiere verticală icircntre centrele controalelor Cel mai de sus
şi cel mai de jos control sunt considerate puncte de referinţă
Bottom Edges asigură spaţiere verticală icircntre partea inferioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Vertical Gap asigură spaţiere verticală icircntre partea superioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Left Edges setează spaţii orizontale egale icircntre marginile din stacircnga ale controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Centers setează spaţii orizontale egale icircntre centrele controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Right Edges setează spaţii orizontale egale icircntre marginile din dreapta ale
controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Gap spaţiere orizontală icircntre controale Cel mai de sus şi cel mai de jos
control sunt considerate puncte de referinţă
Horizontal Compress minimizează spaţiile pe orizontală dintre controale şi elimină
orice spaţiu dintre ele
Distribute Vertical Centers
Comanda Distribute realizează la apel ultima opţiune selectată din lista prezentată
mai sus
37
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
prin teoreme formule etc ndash daca sunt stabilite deductiv din legi Icircn acest sens după cum se
ştie mărimile (speciile de mărimi) se diferenţiază (clasifică) icircn mărimi primitive şi mărimi
derivate Cunoaşterea sistemului (stărilor sistemului icircn evoluţia lui) icircn vederea elaborarii
deciziilor de conducere a sistemului pe o traiectorie optima sau una anume necesară implică
evaluarea cantitativă a mărimilor specifice sistemului şi interpretarea lor informaţionala
Acest lucru nu se poate realiza decacirct experimental (ldquope viurdquo si icircn ldquotimp realrdquo) prin măsurări
ceea ce explică rolul cognitiv de comunicare si decizional (mai cuprinzator informaţional) al
măsurărilor
Icircn acest context mai trebuie precizat ca utilizatorul (observatorul) ndash adică
ldquobeneficiarulrdquo icircn activitatea de măsurare ndash poate fi uman sau de tip maşină (icircn cazul
sistemelor automate) Determinarea cantitativă prin măsurare a speciilor de mărimi diferite
calitativ nu se poate realiza decacirct icircn raport cu mărimi de aceeaşi specie (aceeaşi natura fizica)
alese ca unităţi cantitative numite unităţi de măsură fixate icircn mod convenţional dar icircn cadrul
unui sistem de unitaţi de măsură coerent
Se poate acum defini mai bine conceptul de masurare Astfel din punctul de vedere
metrologic măsurarea ldquoeste operaţia prin care se stabileşte pe cale experimentală raportul
numeric icircntre mărimea de măsurat si o valoare (ldquocantitaterdquo) oarecare a acesteia luată ca
unitate de măsurărdquo
Din punctul de vedere tehnic ldquomăsurarea este operaţia experimentală prin care se
determină cu ajutorul unor mijloace de măsurat valoarea numerică a unei mărimi (numită
masurand) icircn raport cu o unitate de măsură datărdquo din aceeasi specie cu masurandul
Din punctul de vedere al modelării masurarea este o operaţie prin care se stabileşte o
aplicaţie de la o specie de mărimi X la mulţimea numerelor reale R sau ndash mai rar ndash R2 (altfel
spus se stabileşte o relaţie icircntre valoarea unei marimi X si un numar real Xm R)
212 Procesul de masurare
Ansamblul operaţiilor experimentale care se execută icircn scopul obţinerii rezultatului
măsurării sub forma unei percepţii realizată de observatorul-utilizator (operatorul ce
efectuează măsurarea) constituie procesul de măsurare Orice proces de măsurare are
urmatoarele componente principale
- mărimea de măsurat (măsurandul)
- metoda de măsurare
- mijlocul (aparatul) de măsurat
10
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
- măsura (etalonul)
- operatorul (observatorul) şi
- prelucrarea ndash tratarea datelor
care ndash icircn funcţie de domeniul precizia şi scopul măsurării ndash au o pondere şi o importanţă
relativă diferită Această structură a procesului de măsurare diversitatea mărimilor de
masurat multitudinea tehnicilor pentru măsurare (mijloace şi metode) care să satisfacă
exigenţele operatorului ndash beneficiar al măsurarii (exigenţe destul de nuanţate icircn funcţie de
scopul măsurării viteza de măsurare costul măsurarii condiţiile ambientale etc) conduc la o
mare varietate a măsurărilor icircn general
Un exemplu particular al acestei mari varietaţi o constituie icircnseşi măsurarile
electronice (care au ca măsurand specii diverse cum sunt mărimile de stare ale cacircmpului
electric şi magnetic mărimile electrice de circuit parametrii de circuit caracteristici de
transfer frecvenţe timp defazaje forme de undă neliniarităţi distorsiuni zgomote cu
regimuri şi o dinamică ample cu influenţe de mediu şi cuplaje adeseori aleatorii etc)
213 Erori de măsurare
Icircn practică se constată că rezultatul unei măsurări nu depinde numai de valoarea
măsurandului el putacircnd fi influenţat de o serie de factori de natura obiectivă (mijloc de
măsurare metoda de măsurare factori exteriori procesului de măsurare etc) sau de natura
subiectivă Pentru caracterizarea rezultatelor obtinuţe icircn procesul de măsurare se definesc
urmatoarele valori
Valoarea adevarată (reala) Xa a unei mărimi este valoarea exacta a mărimii
respective icircn condiţiile existenţe la un moment dat De obicei valoarea adevarată a unei
mărimi nu poate fi determinată experimental ea icircnlocuindu-se cu o valoare convenţional
adevarată X care se obţine cu ajutorul unor mijloace de măsurare deosebit de precise practic
se consideră ca diferenţa dintre valoarea adevarată si valoarea convenţional adevarată este
neglijabilă şi deci cele două noţiuni sunt echivalente
Rezultatul unei măsurări individuale x care se obţine cu ajutorul unor mijloace de
măsurare obisnuite reprezintă valoarea măsurată Abaterea valorii măsurate faţă de valoarea
adevarată a măsurandului constituie eroarea de măsurare
Intervalul icircn care se estimează cu o anumita probabilitate numită nivel de icircncredere
ca se afla valoarea adevarată a măsurandului se numeste incertitudine de măsurare
11
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
incertitudinea de măsurare estimează limitele erorilor de măsurare Pentru o estimare
obiectivă este necesar ca icircmpreună cu rezultatul măsurarii să se specifice atacirct erorile cacirct şi
incertitudinea de măsurare Icircn figura 21 sunt reprezentate schematic noţiunile prezentate
anterior
Figura 21
Fig 11 Explicativă privind valoarea adevarată valoarea măsurată
valoarea convenţional adevarată eroarea de măsurare şi incertitudinea
de măsurare
214Clasificarea erorilor de măsură
Deoarece cauzele erorilor de măsurare sunt numeroase există şi multe criteri de
clasificare a lor Dupa caracterul lor erorile de măsurare pot fi grupate conform schemei
următoare
Figura 22
12
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
215 Etaloane
Etalonul este un sistem fizic care constituie un mijloc de măsurare (măsura instrument
sau aparat de măsurat) ce serveste la păstrarea şi reproducerea unităţilor de măsura cu
precizia metrologică corespunzatoare stadiului la care s-au dezvoltat tehnicile de măsurare Icircn
afara acestor două roluri prin care se ldquodefineşterdquo o unitate de măsura etaloanele mai sunt
utilizate icircn operaţiile de calibrare şi icircn icircnsuşi procesul de măsurare (de icircnaltă precizie) ca
elemente de referinţă precum şi icircn construcţia unor aparate (dispozitive) utilizate icircn alte
scopuri decacirct mşsurarea propriu-zisa (ca de exemplu dispozitive de automatizare
stabilizatoare electronice generatoare de semnal etc)
Calibrarea icircnseamnă ndash icircn metrologie ndash compararea unui aparat de măsurat cu un
etalon icircn scopul gradării sau ajustării verificării sau etalonării aparatului de masurat
Elementul de referinţă este un etalon care asigură (ldquofurnizeazardquo) o mărime fizică anume cu
o valoare bine cunoscută (cu o precizie metrologică corespunzatoare scopului urmarit)
Un etalon trebuie să fie invariabil icircn timp şi icircn spaţiu să poata fi folosit usor icircn tehnică
şi să poată fi reconstituit oricacircnd Unicitatea şi conformitatea măsurărilor icircn orice loc şi la
orice moment impun realizarea unui sistem de etaloane care să
asigure
- generarea principalelor unităti de măsură icircn conformitate cu definiţiile lor din SI
(adică ldquomaterializarea ldquo definiţiilor prin experimente adecvate)
- menţinerea (conservarea) acestor unităţi de măsură constante icircn timp icircn toate
laboratoarele metrologice pe plan mondial
- corelarea icircntre ele a unităţilor de măsură trecerea la alte unitati derivate (etaloane de
derivare) şi extinderea limitelor de măsurare cu precizia necesară cum ar fi trecerea la
multipli şi submultipli ai unităţilor de măsură (etaloane de raport)
Aceste trei operaţii fundamentale icircn activitatea metrologică se efectuează icircn
mod corespunzator cu urmatoarele trei categorii de etaloane
- etaloane de definiţie (adica etaloanele prin care se generează principalele unităţi de
măsură şi icircn principal cele fundamentale aşa cum este ndash de exemplu ndash determinarea absolută
a amperului cu ajutorul balanţei de curent)
- etaloane de conservare (adică etaloanele de menţinere a unităţii de măsură cu o mare
stabilitate icircn timp şi faţă de influenţele exterioare de mediu)
- etaloanele de transfer (adica cele care asigura etalonarea tuturor tipurilor
13
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
de aparate de masurat icircn intervale largi de valori ale masurandului pentru marimi constante
sau variabile icircn timp) asa cum sunt etaloanele de raport etaloanele de derivare si etaloanele
de transfer (curent continuu ndash curent alternativ) prin compararea efectelor (termice
electrodinamice etc) ale semnalelor de curent sau tensiune produse asupra unui acelaşi
element sensibil
22 Conceptul de M2M
M2M este o abreviere de la Machine-to-Machine deşi tot mai des se foloseşte şi
pentru identificarea tehnologiilor Man-to-Machine Machine-to-Man Machine-to-Mobile sau
Mobile-to-Machine Pe scurt este vorba de un serviciu ce permite comunicarea dintre
echipamentele aflate la distanţă şi aplicaţiile la care sunt conectate De fapt M2M este o
evoluţie comercială a tradiţionalelor sisteme de control al echipamentelor din domeniul
industrial soluţie aplicată cu succes pentru prima dată de NASA Adaptată nevoilor
companiilor (un rol important l-a jucat compania France Telecom) M2M permite companiilor
sa administreze mai uşor echipamentele aflate la distanţă si să le integreze cu procesele
interne
Zona soluţiilor M2M este cotată ca fiind una dintre cele mai promiţătoare in
următorii ani ca urmare a creşterii nevoii de automatizare a proceselor şi a posibilităţii de a
lua decizii intr-un timp cat mai scurt posibil ceea ce va genera proiecte majore Aplicaţiile
M2M permit prin monitorizarea si controlul maşinilor şi proceselor de la distanţă reducerea
costurilor optimizarea proceselor si imbunătăţirea nivelului serviciilor oferite clienţilor
permitand economii de timp şi de personal
14
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
23 Limbajul Python
Icircn cadrul unei instalaţii de telemetrie modemurile deţin memorie şi processor propriu
motiv pentru care se numesc ldquointeligenterdquo Pe lacircngă memorie şi processor aceste modemuri
inteligente au şi un interpretor al unui limbaj de programare de nivel icircnalt Icircn cazul
medemurilor alese de mine acest limbaj este Python
Python este un limbaj de programare dinamic orientat pe obiect care poate fi folosit
pentru mai multe tipuri de dezvoltarea software Oferă un puternic suport pentru integrarea cu
diferite instrumente folosind librării standard de extensie şi poate fi invăţat in cacircteva zile
231 Tipuri de date
Sunt 3 grupuri de tipuri de date in Python
Scalari ndash care au sutipurile intreg intreg lung si sir de caractere
i = 1 li = 9999999999L s = Hello
Secvenţe care conţin un anumit număr de obiecte arbitrare intr-o ordine definită
L = [1 5 3 9 14]
Liste asociative care permit accesul la valori bazate pe chei Aceste chei pot fi arbitrare
dar sunt obiecte permanente De exemplu
D = b Python a 5 print D[a]
Afisează 5
Spre deosebire de Pascal C C++ sau Java Python este un limbaj tastat dinamic Astfel
următoarea secvenţă de cod este perfect valabilă icircn Python
a = 7 7 (integer)
a = str(2a) + bytes 7 bytes (string)
15
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Icircn Python variabilele nu sunt declarate icircn script ele apar doar atunci cand sunt folosite
232 Operatori
Icircn Python există următorii operatori
Operatori aritmetici
+ - ~ ltlt gtgt amp ^ |
Operatori relaţionali şi logici
is in lt lt= gt gt= == = not and or
Operatori de asignare
= += -= = = = = ltlt= gtgt= amp= ^= |=
Alţi operatori
( ) [ ] [] `` lambda
233 Comenzi compuse
Comenzile care aparţin aceluiaşi grup logic sunt deplasate spre dreapta cu acelaş
număr de spaţii albe
if a gt 0
b = 1
c = 2
De obicei fiecare comandă icircncepe pe o linie nouă
16
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
O instrucţiune se poate continua pe racircndul următor prin plasarea caracterului backslash
la sfacircrsitul randului Acest lucru nu este necesar dacă există paranteze deschise
my_list = [1
[abc 2]
-3+6j]
print my_list
234 Execuţii condiţionale
Python foloseşte if elif (nu elsif sau elseif) si else pentru a indica execuţia condiţională a
unei instrucţiuni
De exemplu
if a gt b
print a is greater than b
elif a lt b
print a is lower than b
else
print a equals b
Se poate folosi si interval prescurtate de testare
if 2 lt= a lt= 7
print a is in the interval [2 7]
235 Bucle
Buclele in Python sunt definite prin cuvintele cheie for şi while
Următorul exemplu foloseşte o buclă while pentru a colecta toate numerele intregi
cuprinse intre 0 si 99 intr-o listăacirc
numbers = [ ]
i = 0
while i lt 100
17
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
numbersappend(i)
i = i + 1
O buclă similar for arată in felul următor
numbers = [ ]
for i in range(100)
numbersappend(i)
Icircn loc de buclele explicite prezentate mai sus se poate folosi şi bucle implicite după
cum urmează
numbers = range(100)
range(100) generează o listă cu toate numerele intregi de la 0 la 100
24 General packet radio service(GPRS)
Comunicaţia intre modemuri ( RTU-uri ) şi dispecer se poate face prin mai mlte
mediu de transmisie
- Cablu telephonic
- Radio
- GSMGPRS
- Fibră Optică
Opţiunea pentru care am optat icircn partea de comunicaţie este GSMGPRS deoarece
asigură o cumunicaţie sigură şi oferă simplitate pentru priectant
GPRS introduce servicii de transport cu comutaţie de pachete pentru debite de la 14
kbps la maximum 170 kbps Practic GPRS este o reţea cu comutaţie de pachete de sine
stătătoare care se daugă la reţeaua GSM GPRS interoperează cu infrastructura GSM la
nivelul subsistemului staţiilor de bază BSS şi al bazelor de date din subsistemul reţea NSS
(HLR VLR AUC) GPRS preia traficul de date iar GSM traficul de voce care rămacircne
comutat prin MSC
Datele sunt transmise prin GPRS icircn pachete de lungimi fixe Fiecare pachet conţine
adresa destinaţie pentru a putea fi rutat de nodurile GPRS Modificarea pe interfaţa radio e
18
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
dată de introducerea codării adaptive a canalului Aceasta icircnseamnă că protecţia datelor
variază icircn timp icircn funcţie de starea canalului radio GPRS poate utiliza pentru o conexiune
de date de la fracţiuni de canale de trafic pacircnă la maximum 8 sloturi temporale (adică tot
cadrul TDMA) icircn funcţie de resursele disponibile
Capacitatea alocată unei conexiuni va varia icircn funcţie de icircncărcarea cu trafic de pe
frecvenţa respectivă precum şi de tipul traficului (vocedate) Este important că utilizacircnd
comutaţia de pachete o transmisie de date nu ocupă resursele reţelei decacirct atunci cacircnd sunt
date de transmis Cacircnd nu există pachete de transmis resursele de pe interfaţa radio pot fi
utilizate pentru alte transmisii de date sau pentru trafic cu comutaţie de circuite
GPRS are o reţea nucleu proprie formată prin interconectarea serverelor care
gestionează transmisia de pachete numite noduri suport GPRS (GSN- GPRS Suport Node)
Aceasta reţea operează icircn paralel cu subsistemul reţea şi comutaţie (NSS) al GSM care va
gestiona icircn continuare transmisia cu comutaţie de circuite
241 Caracteristicile sistemului GPRS
GPRS este un serviciu specificat icircn faza 2+ de standardizare a GSM El este oferit prin
intermediul unei infrastructuri numită şi sistem sau reţea GPRS ce interoperează cu
infrastructura bdquoclasicărdquo GSM
GPRS se icircncadrează icircn orientarea generală a ETSI de a asigura prin aza 2+ o platformă
ce va putea fi utilizată ulterior icircn reţele de generaţia a treia Astfel el este onsiderat
actualmente soluţia de bază pentru transmiterea de date icircn UMTS Fiind un standard SM
GPRS păstrează evident şi compatibilitatea cu sistemul părinte fiind practic o extensie a
acestuia pentru transmisii de date la debite mai mari GPRS reprezintă la ora actuală cel mai
reprezentativ sistem de generaţie intermediară (25G)
Dacă HSCSD ar putea fi considerat o ajustare fină a GSM GPRS reprezintă cu
siguranţă un salt tehnologic semnificativ deoarece marchează trecerea de la comutaţia de
circuite la cea de pachete Schimbarea tipului de comutaţie se referă icircn acest moment (atacirct la
25G cacirct şi icircn 3G) doar la transmiterea datelor vocea rămacircnacircnd icircn continuare comutată prin
MSC Datorită eternei insuficienţe a resurselor radio este probabil ca icircntr-o fază nu prea
icircndepărtată de dezvoltare a UMTS şi de ce nu chiar a GPRS să fie utilizată comutaţia de
pachete şi pentru serviciile de timp real vocale sau non-vocale
Icircn concluzie GPRS reprezintă o infrastructura ce permite transmiterea datelor pe baza
comutaţiei de pachete icircntr-o reţea GSM
19
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Pentru a putea oferi debite de date mai ridicate icircn GPRS se urmăreşte utilizarea cacirct
mai eficientă a resurselor radio Pentru aceasta se preia de la HSCSD ideea operării multislot
posibilitatea de a proteja mai puţin informaţia utilă pe interfaţa radio şi alocarea asimetrică
uplink downlink Icircn ciuda acestor asemănări icircnlocuirea comutaţiei de circuite cu cea de
pachete face din GPRS un sistem complet diferit de HSCSD Aceasta atacirct din punct de vedere
al utilizatorului care constată un timp de conectare practic nul şi rate de transfer mai bune
dar şi din punct de vedere al operatorului care efectuează o investiţie incomparabil mai mare
răsplătită printr-o mai eficientă utilizare a interfeţei radio cu tot ceea ce rezultă de aici (mai
mulţi clienţi mai multe servicii aplicaţii diverse)
Rezumacircnd icircn GPRS este implementat un set de soluţii tehnologice ce au ca scop
principal creşterea eficienţei utilizării interfeţei radio Aceasta derivă atacirct din experienţa
sistemelor anterioare cacirct şi mai ales din operarea icircn modul pachet a datelor ce se transmit
Soluţiile utilizate sunt
creşterea ratei de transmisie a datelor prin reducerea codării canalului (sunt definite
şi pot
fi utilizate 4 scheme de codare 905kbps 134 kbps 156 kbps 214kbps)
creşterea ratei de transmisie prin operare multislot ( pacircnă la 8 sloturi temporale per
utilizator)
creşterea eficienţei utilizării resurselor radio prin multiplexarea mai multor
utilizatori pe acelaşi canal fizic (posibila datorită transmisiei de pachete maximum 8
utilizatori pe slot temporal)
creşterea eficienţei utilizării resurselor radio prin alocare asimetrică uplinkdownlink
creşterea eficienţei utilizării resurselor radio prin alocarea dinamică a canalelor icircntre
servicii comutate icircn mod circuit respectiv pachet
Cacircnd un icircntreg cadru TDMA este alocat unui utilizator cu schema de protecţie minimă
(practic fără corecţie de erori) rezultă rata utilă instantanee maximă posibilă icircn GPRS
(8x214 kbps=1712 kbps)
242 Comutaţie de circuite şi comutaţie de pachete
20
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comutaţia este o tehnică esenţială icircn reţelele de comunicaţii Fără ea fiecare
echipament terminal ar trebui conectat printr-o cale directă cu fir sau fără la toate celelalte
echipamente terminale din reţea Principalele metode de comutaţie sunt
comutaţia de circuite
comutaţia de mesaje
comutaţia de pachete
Comutaţia de circuite
Aceasta presupune realizarea icircntre emiţător şi receptor a unei căi fizice de comutaţie
dedicate numită circuit Icircntreaga comunicaţie se desfăşoară icircn trei etape
stabilirea conexiunii (sau deschiderea circuitului)
transferul de informaţii
eliberarea conexiunii (circuitului)
Este de remarcat faptul că stabilitatea fizică a caii de comunicaţie are loc icircnainte de
icircnceperea transmisiunii propriu-zise Aceasta poate conduce la durate semnificative ale
timpului de conectare
Un dezavantaj notoriu al acestei tehnici este alocarea fixă a resurselor de comunicaţie
necesare pe durata conexiunii indiferent dacă la un moment sau altul mediul de transmisie
este folosit total parţial sau deloc
Pe de altă parte avantajele comutaţiei de circuite provin tocmai din această alocare fixă de
resurse care permite
asigurarea unei icircntacircrzieri constante şi minime
garantarea unui debit util corespunzător mediului de comunicaţie şi serviciului utilizat
Toate acestea facilitează oferirea serviciilor de timp real (telefonie videofonie alte
transmisiuni video) Exemplul tipic de reţea cu comutaţie de circuite este reţea telefonică
publică comutată (PSTN) Reţeaua GSM este de asemenea o reţea cu comutaţie de circuite
Referindu-ne strict la interfaţa radio a reţelelor fără fir etapa de stabilire a conexiunii
presupune alocarea unui canal radio (sau a mai multora icircn cazul HSCSD) unei staţii mobile
(MS) Acest canal rămacircne icircn posesia terminalului mobil pe toata durata conexiunii chiar dacă
transferul de date este discontinuu (icircn rafale) sau chiar icircncetează cu desăvacircrşire (de exemplu
21
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cacircnd utilizatorul citeşte cu atenţie cinci minute o pagină WEB după care lămurit pe deplin
icircntrerupe legătura) Ca o particularizare binecunoscută a reţelelor cu comutaţie de circuite
trebuie menţionat că utilizatorul trebuie să plătească pentru icircntreaga durată a conexiunii chiar
dacă a fost risipitor şi nu a folosit resursa ce i-a fost alocată
Comutaţia de mesaje
Este o tehnică ce nu stabileşte apriori o cale de transmisiune icircntre emiţător şi receptor
Informaţia ce urmează a fi transmisă formează o entitate bine precizată numita mesaj
Mesajele sunt complet independente unele faţă de altele şi pot avea lungimi variabile deşi
structura (formatul) lor poate fi prestabilit Emiţătorul trebuie sa ataşeze mesajului adresa
destinatarului decizia cu privire la ruta pe care o va urma mesajul fiind de competenţa
fiecărui comutator (router) prin care trece Fiecare comutator va memora mesajul după care icircl
va transmite pe ieşirea selectată de el Principala problemă a comutaţiei de mesaje este dată de
dimensiunea mare a mesajelor Din această cauză comutatoarele de mesaje au nevoie de o
capacitate de stocare uriaşă iar icircntacircrzierea icircn noduri poate deveni inacceptabilă din cauza
monopolizării ieşirilor de către mesajele lungi Exemplul tipic de reţea cu comutaţie de
mesaje este reţeaua telex
Comutaţia de pachete
Rezolvă o mare parte din dezavantajele comutaţiei de mesaje stabilind o lungime
maximă a entităţii informaţionale care circulă prin reţea numită pachet Pachetele sunt icircn
general rezultatul divizării mesajelor icircn blocuri de lungime mică Datorită acestui fapt spre
deosebire de mesaje pachetele nu sunt independente O recepţie corespunzătoare implică
refacerea mesajului prin ordonarea pachetelor după logica folosită la emisie Pentru aceasta
exista două posibilităţi apropiate conceptual de comutaţia de mesaje respectiv de comutaţia
de circuite
A Comutaţia de pachete fără conexiune (sau neorientată pe conexiune)
Icircn cazul comutaţiei de pachete fără conexiune pachetele (numite şi datagrame) se transmit
independent icircn cel mai pur spirit al comutaţiei de mesaje urmacircnd rute posibil diferite
Sosirea lor la destinaţie poate avea loc icircntr-o ordine aleatoare ceea ce necesită reordonarea lor
de către receptor Refacerea succesiunii corecte a pachetelor se bazează pe informaţia
22
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
suplimentară din fiecare pachet privitoare la mesajul din care face parte şi locul pe care icircl
ocupa icircn el Exemplul tipic de reţea care utilizează comutaţia de pachete este internetul
BComutaţia de pachete orientată pe conexiune (sau circuit virtual)
Icircn cazul comutaţiei de pachete orientată pe conexiune (sau circuit virtual) comunicarea
icircntre terminale presupune stabilirea unei căi anume pe care va circula fluxul informaţional
dintre acestea similar cu comutaţia de circuite Spre deosebire de aceasta nu este vorba de
dedicarea unui circuit fizic comunicării respective ci de configurarea unui circuit logic
numit circuit virtual Aceasta icircnseamnă că toate pachetele vor urma aceeaşi cale prin reţea
fără a dedica suportul fizic comunicaţiei respective Pachetele altor utilizatori vor putea folosi
foarte bine segmente din calea respectivă sau chiar icircntreaga cale La stabilirea circuitului
virtual fiecare comutator (router) trebuie să memoreze icircn tabela de dirijare care este
succesorul său icircn respectivul circuit virtual Astfel spre deosebire de comutaţia de pachete
fără conexiune după stabilirea circuitului virtual comutatorul nu mai trebuie să decidă calea
fiecărui pachet Avacircnd memorat nodul succesor icircn fiecare dintre circuitele virtuale icircn care este
implicat comutatorul va identifica circuitul asociat pachetului şi icircl va transmite pe acesta pe
linia de ieşire corespunzătoare Tehnica circuitului virtual garantează livrarea icircn ordine a
pachetelor la destinaţie Exemple marcante de reţele ce utilizează comutaţia de pachete de tip
circuit virtual sunt X25 şi ATM
Marele avantaj al comutaţiei de pachete este utilizarea eficientă a resurselor de
transmisiune Deoarece acestea nu sunt dedicate ele pot fi folosite după necesităţi pentru a
transmite pachete provenind de la utilizatori diferiţi Din acest motiv comutaţia de pachete
este extrem de avantajoasă icircn cazul unei infrastructuri cu resurse de transmisiune limitate
cum este şi cazul reţelelor fără fir
Un dezavantaj important al comutaţiei de pachete este dat de gestionarea comutatoarelor
(routerelor) icircn cazul unui trafic crescut la intrare Pierderea pachetelor garantarea unei
icircntacircrzieri maxime şi a unui debit utilizator constant sunt problemele spinoase ale comutaţiei
de pachete Ele reprezintă obstacole icircn special icircn calea oferirii serviciilor de timp real cum ar
fi telefonia
Icircn schimb icircn cazul transmisiilor de date avantajul bunei administrări a resurselor
prevalează De exemplu icircn cazul particular al interfeţei radio GSM cacircnd o staţie mobilă (MS)
generează un pachet de date reţeaua icircl va transmite pe un canal radio disponibil icircn acel
moment Următorul pachet de pe acel canal poate să aparţină aceleiaşi MS dacă are ceva de
23
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
transmis sau dacă nu alteia Icircn acest mod atacircta timp cacirct cineva are ceva de transmis
canalele radio nu sunt blocate inutil Lucrul icircn mod pachet are o eficienţă cu totul deosebită icircn
cazul unui trafic de date icircn rafale (data bursts)
Aşadar pentru un sistem GSM bazat esenţialmente pe comutaţia de circuite este
extrem de utilă alocarea resurselor neutilizate de către serviciile vocale pentru servicii mai
puţin prioritare Atacirct HSCSD cacirct şi GPRS icircşi propun acest lucru Serviciile cele mai potrivite
pentru valorificarea resurselor rămase (preferabil printr-un mecanism de alocare dinamică)
sunt tocmai cele care implică un trafic de date icircn rafale fără pretenţii de timp real Diferenţa
fundamentală icircntre HSCSD şi GPRS este că acesta din urmă valorifică aceste resurse icircntr-un
mod mult mai eficient deoarece utilizează comutaţia de pachete Icircn plus costul serviciilor
oferite este mai atractiv deoarece utilizatorul plăteşte volumul de date transferat Practic dacă
doreşte utilizatorul poate fi sbquoconectatrsquo la reţeaua de date icircn permanenţă fiind taxat doar
pentru timpul icircn care efectiv utilizează resursele reţelei adică pentru pachetele de date
recepţionate respectiv transmise
243 Servicii GPRS
Dintre aplicaţiile cele mai potrivite pentru GPRS se pot aminti mesageria de orice tip
difuzare şi distribuţie multiplă telemetrie jocuri navigare de mică anvergură pe reţeaua
internet Icircn general orice tip de aplicaţii ce necesită comunicaţii maşină - maşină la debite
mici şi medii sunt adecvate dezvoltării icircn mediul GPRS
Ca şi icircn reţeaua GSM reţelele GPRS pot oferi două categorii de servicii de
telecomunicaţii
servicii de bază
servicii suplimentare
Serviciile de bază GPRS
Acestea sunt icircn principal servicii suport (bearer services) de transport care realizează
transmiterea datelor cu comutaţie de pachete icircntre două interfeţe şi din teleservicii Similar
situaţiei din GSM aceste interfeţe sunt
interfaţa dintre echipamentul terminal de date (de exemplu calculator) şi terminalul
mobil GPRS
24
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
interfaţa dintre reţeaua GPRS şi reţeaua de date sau echipamentul terminal cu care
comunică Aceasta interfaţă este situată icircntr-un nod poartă (gateway) GPRS similar
situaţiei din GSM unde locul ei este GMSC
Teleserviciul fundamental oferit de GPRS este cel de transport de date şi este detaliat
mai jos Un alt teleserviciu oferit de GPRS este transmisia şi recepţia de mesaje scurte (SMS)
Astfel pe de o parte capacitatea de transmisie a mesajelor scurte va creşte iar pe de alta
parte reţeaua de semnalizări pe care se transmit icircn GSM aceste mesaje nu va mai fi icircncărcată
şi cu mesaje scurte ce vin sau pleacă de la la terminalele mobile GPRS
Servicii GPRS de transport
Sunt definite doua categorii de teleservicii de transport
servicii punct-la-punct (PTP ndashPoint-to-Point)
servicii punct la multipunct (PTM-Point-to-Multipoint)
A Serviciul PTP
Serviciul punct la punct (PTP) [GSM 0260] permite transmiterea de pachete de date
icircntre doi utilizatori Este implementat icircn GPRS faza 1 Abonatul care a iniţiat serviciul se
numeşte solicitant (service requester) Partenerul său se numeşte receptor al serviciului
(service receiver)
Serviciul PTP poate fi solicitat fie de la terminalul mobil GPRS fie de la un
echipament situat icircntr-o reţea de date fixă (IP X25) Serviciul PTP poate fi oferit de
asemenea icircntre doi utilizatori mobili GPRS
Serviciul punct-la punct poate fi la racircndul sau de două tipuri
PTP fără conexiune (PTP-CLNS ndash PTP Connectinnless Network Service)
PTP orientat pe conexiune (PTP-CONS ndashPTP Connection Orientated Network
Network Service)
PTP-CLNS este un serviciu de tip datagramă ce utilizează comutaţia de pachete fără
conexiune Este util icircn cazul aplicaţiilor ce generează trafic icircn rafale şi are că scop asigurarea
interoperării cu reţele IP
PTP-CONS este un serviciu de tip circuit virtual ce utilizează comutaţia de pachete
orientata pe conexiune Icircntre cei doi utilizatori se stabileşte un circuit virtual pentru o perioadă
25
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ce poate varia de la cacircteva secunde la ore Este util atacirct pentru aplicaţii ce generează trafic icircn
rafale cacirct şi pentru aplicaţiile interactive Are că scop asigurarea interoperării cu reţele X25 şi
derularea peste GPRS a aplicaţiilor bazate pe protocolul OSI CONS(Connection Orientated
Network Protocol)
O reţea GPRS trebuie să asigure menţinerea circuitului virtual la trecerea dintr-o
celulă icircn alta dar numai icircn interiorul aceleiaşi reţele GPRS-PLMN La trecerea terminalului
mobil icircntr-o altă reţea sau icircn cazul căderii legăturii radio circuitul virtual va fi eliberat Pentru
ambele tipuri de servicii pe interfaţa radio se poate opera fie cu confirmare fie fără
confirmare a transportului de date
B Serviciul PTM
Serviciul punct la multipunct (PTM) permite transmiterea de pachete de date de la un
utilizator către mai mulţi utilizatori El este implementat icircn faza a doua a GPRS O
comunicaţie PTM se stabileşte icircntre un furnizor de servicii (ce poate fi situat icircn afară reţelei
GSM) şi un grup de terminale GPRS Şi serviciul PTM este un serviciu ce se prezintă icircn două
variante
PTMndash multidistribuţie (PTM Multicast)
PTM- grup (PTM-G--PTMGroup)
Serviciul de transport PTM-M permite transmiterea pachetelor de date icircntr-o arie
geografică dată (celulă grup de celule) fără confirmare Receptorii serviciului sunt fie toţi
abonaţii care se găsesc icircn acea zonă fie un grup icircnchis de utilizatori
Icircn cazul PTM-G receptorul serviciului este un grup predefinit de utilizatori Pachetele de
date vor fi trimise către toţi membrii grupului indiferent de aria geografică unde se găsesc
aceştia Este posibilă şi transmiterea doar către acei membri care se găsesc icircn anumite zone
geografice Transmisia poate fi şi cu confirmare
Serviciile suplimentare
Printre serviciile suplimentare avute icircn vedere icircntr-un prim stadiu se numără
redirecţionarea necondiţionată a apelurilor redirecţionarea cacircnd abonatul nu este accesibil şi
definirea de grupuri icircnchise de utilizatori In afară de aceste servicii recomandarea GSM
0260 descrie posibilitatea oferirii de servicii adiţionale cum sunt accesarea bazelor de date
servicii de mesagerie validări de cărţi de credit servicii de monitorizare electronică tranzacţii
electronice etc
26
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
244 Arhitectura GPRS
GPRS este o soluţie pentru operatori deoarece nu necesită modificări substanţiale icircn
reţeaua GSM Aşa cum se observă icircn figura 72 reţeaua nucleu a GPRS operează icircn paralel
cu GSM-NSS
Figura 23 Arhitectura reţelei GPRS
25 LabWindowsCVI
La dipecer am considerat un calculator desktop sau laptop pe care va rula o aplicaţie
de monitorizare a datelor măsurate implementată icircn LabWindowsCVI
LabWindowsCVI este o platformă pentru dezvoltare de software cu orientare pe
aplicaţii de instrumentaţie După cum se deduce din denumirea sa (CVI ndash C for Virtual
Instrumentation) limbajul acceptat este ANSI C cu extensii specifice CVI ne pune la
dispoziţie un mediu interactiv de dezvoltare a unor aplicaţii pentru sistemul de operare
Windows Icircmbină deci avantajele programării de tip vizual cu avantajele simplităţii şi
flexibilităţii limbajului C Deşi a fost creat special pentru aplicaţii de instrumentaţie şi control
27
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
multiplele lui facilităţi icircl fac capabil să suporte şi dezvoltarea unor aplicaţii de mărime medie
care să fie de altă factură Fiecare funcţie de bibliotecă din cadrul acestui mediu are o interfaţă
specializată numită panoul funcţiei (function panel) care permite
bull Help on-line
bull Selectare şi declarare de variabile sau constante necesare
bull Execuţie interactivă
bull Inserarea funcţiei editate icircntr-un text sursă
Mediul este extrem de flexibil permiţacircnd interfaţarea bidirecţională cu alte compilatoare de
C sau C++ De asemenea se pot folosi şi DLL-uri
Puterea mediului LabWindowsCVI este dată de bibliotecile puse la dispoziţia
programatorului acestea conţinacircnd funcţii pentru implementarea diverselor faze care conduc
la o aplicaţie din domeniul achiziţiei de date sau a controlului automat
Pentru achiziţia de date există următoarele biblioteci specializate
bull de instrumente
bull pentru interfaţa GPIBGPIB 4882 (General Purpose Interface Bus)
bull pentru achiziţie de date
bull pentru operaţii IO icircn cazul achiziţiei de date
bull pentru interfaţa serială RS232
bull pentru sistemul VXI
Biblioteci specializate pentru analiza datelor
bull pentru IO
bull pentru formatarea specială
bull pentru analiză
bull pentru analiză avansată
Biblioteci specializate pentru vizualizare date
bull pentru crearea unei interfeţe utilizator de tip vizual
Biblioteci specializate pentru lucrul icircn reţea şi comunicarea icircntre diverse aplicaţii
bull pentru DDE (Dynamic Data Exchange)
bull pentru TCP (Transmision Control Protocol)
bull pentru sistemul X de sub Unix
Icircn afară de acestea mai există o bibliotecă specială numită biblioteca de instrumente
care conţine drivere şi sursele lor pentru osciloscoape multimetre şi generatoare de funcţii
De asemenea există posibilitatea creării unui instrument propriu Biblioteca pentru interfaţa
28
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cu utilizatorul conţine funcţiile necesare creării unui GUI (Graphical User Interface =
Interfaţă grafică cu utilizatorul) după necesităţi
Structura generică a unei aplicaţii dezvoltate sub CVI
Un proiect complet pentru una din clasele de aplicaţii specifice mediului CVI are
următoarele componente generice
bull interfaţa cu utilizatorul
bull partea de control a aplicaţiei
bull partea specializată pentru achiziţia datelor
bull partea specializată icircn analiza respectivelor date
Mai jos prezentăm o schemă generică a aplicaţiilor CVI
Figura 24
Tipuri de fişiere folosite icircn cadrul CVI
PRJ se referă la fişiere de tip proiect
UIR se referă la fişiere care conţin descrierea unei interfeţe grafice cu utilizatorul
C fişiere sursă
H fişiere header
FP fişiere care reţin descrierea unui instrument
LIB fişiere bibliotecă
DLL fişiere link-editate pentru apel dinamic
OBJ fişiere obiect
29
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a unora dintre meniurile şi ferestrele mediului de dezvoltare CVI
Fereastra proiect
Prezentăm mai jos doar informaţiile suplimentare faţă de o fereastră proiect standard
Pe lacircngă datele curente despre fiecare fişier inclus icircn proiect acesta mai are precizat şi unul
sau mai mulţi din următorii indici
- I indică faptul că respectivul fişier conţine descrierea unui driver de instrument
- S faptul că s-au făcut modificări icircn fişierul respectiv şi deci trebuie salvat
- C indică obligativitatea compilării respectivului fişier icircnainte de rularea aplicaţiei
- indică faptul că fişierul este deschis icircntr-o fereastră de editare
- indică ca acest fişier nu este deschis
Aplicaţii consolă
Pentru aplicaţiile tip consolă clasice C unde se folosesc pentru IO funcţiile scanf şi
printf vizualizarea ieşirii icircn mod text a acestora se va face icircntr-o fereastră specială numită
ldquoStandard InputOutput Windowrdquo
Observaţie Dacă se va programa icircn acest mod trebuie activată opţiunea ldquoBring Standard
InputOtput to front whenever modifyrdquo din Environment ce aparţine meniului Options
Generatorul interactiv de aplicaţii
Butoanele directe ale editorului de interfeţe cu utilizatorul
folosit la selectare mutare şi dimensionare obiecte
utilizat pentru a modifica textul asociat cu obiectele din UIR folosind facilităţile de
etichetare
folosit pentru colorarea obiectelor Este suficientă o apăsare pe butonul din dreapta a
mouse-ului şi va colora automat obiectul selectat cu culoarea curentă
oferă facilităţi de operare Atunci cacircnd este activat evenimentele vor fi afişate icircn partea
dreaptă a barei de facilităţi
30
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a cacirctorva din meniurile mai importante ale generatorului
Menu Bars activează cutia de dialog care ne prezintă toate barele de meniu definite deja de
programator
Figura 25
Create apelează fereastra Edit Menu Bar pentru a crea o nouă bară de meniuri
Edit apelează fereastra Edit Menu Bar pentru a modifica o bară de meniuri existentă
Fereastra Edit Menu Bar(fig26) permite specificarea sau modificarea caracteristicilor
unei bare de meniuri icircn curs de creare sau care există deja
31
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 26
Menu Bar Constant Prefix este identificatorul intern al respectivei bare de meniuri Acesta
va fi folosit de funcţia LoadMenuBar pentru icircncărcarea icircn memorie a parametrilor care conţin
această bară Va fi definit automat icircn fişierul header din scheletul de aplicaţie
Item se referă la numele meniului curentsubmeniucomandă de meniu Dacă icircn faţa primei
litere a unui element din meniu se adaugă 2 ldquounderscorerdquo la execuţie acesta va putea fi
selectat prin combinaţia Alt+prima literă
Constant name este alipit la Menu Bar Constant Prefix pentru a se genera identificatorul
elementului curent Este folosit de funcţii ca GetMenuBarAttribute sau SetMenuBarAttribute
De asemenea acest identificator este returnat de GetUserEvent atunci cacircnd apare un
eveniment generat de o comandă a meniului
Callback Function Permite specificarea numelui unei funcţii de răspuns care va fi apelată
automat la activarea respectivului element Folosirea ei este opţională
32
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ModifierKeyShortcutKey se combină pentru a ataşa o cheie ldquohotrdquo pentru elementul
curent
buton ce permite coboracircrea icircn interiorul unei ierarhii de meniuri
buton ce permite urcarea icircn interiorul unei ierarhii de meniuri
Panouri
După cum am spus sunt echivalentul ferestrelor din programarea Windows Pentru a le crea
Create1048774Panel ne pune la dispoziţie un nou panou icircn cadrul UIR-ului curent Prin dublu
ldquoclickrdquo pe acesta se va intra in fereastra de editare a caracteristicilor panoului Această
fereastră este prezentată mai jos
Figura 27
La partea de Menu Bar se poate specifica o bară din cele deja create icircn cazul dezvoltării
respectivei interfeţe
Restul parametrilor au fost discutaţi anterior sau sunt cunoscuţi din programarea Windows
33
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Crearea controalelor
Exceptacircnd diferenţele care apar funcţie de destinaţia acestora există o serie de parametri
comuni fiecărui control pe care icircl creăm Mai jos prezentăm fereastra care apare de exemplu
la crearea unui control de tip numeric şi anume un buton
Figura 28
Se observă că identificatorul intern şi posibilitatea de ataşare a unei funcţii de răspuns
rămacircne De asemenea o serie de informaţii specifice părţii de etichetare Icircn plus apar
specificaţii privind modul de afişare a datelor şi limitele icircntre care acestea pot fi variate prin
intermediul acestui control
34
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
TAB ORDER
Fiecare control de pe un panou activ are o poziţie icircn ordinea de salt prin intermediul
unui tab Această ordine precizează care va fi următorul control ce va fi activat icircn cazul icircn
care utilizatorul apasă Tab sau Shift+Tab Implicit acestea sunt adăugate exact icircn ordinea
creării lor de către programator Numai că nu icircntotdeauna aceasta este ordinea de salt dorită a
fi activă la terminarea aplicaţiei Icircn aceste condiţii secvenţa Edit1048774Tab Order ne va activa un
panou specializat pentru aceasta
Figura 29
noua formă de cursor activă icircn interiorul ferestrei Prin apăsarea pe un control oarecare i
se
poate modifica ordinea de activare
specifică faptul că se acceptă noua ordine de apelare
se iese cu păstrarea vechii ordini
Find UIR Objects
O altă facilitate a editorului este Find UIR Objects care aparţine meniului View Icircn
cadrul unor proiecte mari se dovedeşte a fi extrem de utilă
35
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 210
După cum se observă ne permite căutarea după dorinţă a unui nume icircn diverse categorii de
obiecte ale interfeţei cu utilizatorul
GENERATE
Este meniul folosit pentru generarea fie a icircntregului cod schelet fie numai a codului
corespunzător unui obiect proaspăt introdus icircntr-un UIR
Secvenţa Code1048774Generate1048774AllCode va genera codul schelet pentru aplicaţie Acesta va
conţine şi un ldquoswitchrdquo pentru tratarea evenimentelor Alegerea evenimentelor care vor fi
automat introduse se face din Code1048774Preferences
MENIUL ARRANGE
Icircncă de la primele aplicaţii vom observa că una din operaţiile mari consumatoare de
timp este aranjarea controalelor icircn panou după specificarea caracteristicilor acestora Pentru a
evita acest lucru CVI a fost prevăzut cu o serie de facilităţi de aranjare automată pe care le
vom prezenta mai jos
Figura 211
Top Edges asigură spaţiere verticală icircntre partea superioară a controalelor Cel mai de
sus şi cel mai de jos control sunt considerate puncte de referinţă
36
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Vertical Centers asigură spaţiere verticală icircntre centrele controalelor Cel mai de sus
şi cel mai de jos control sunt considerate puncte de referinţă
Bottom Edges asigură spaţiere verticală icircntre partea inferioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Vertical Gap asigură spaţiere verticală icircntre partea superioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Left Edges setează spaţii orizontale egale icircntre marginile din stacircnga ale controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Centers setează spaţii orizontale egale icircntre centrele controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Right Edges setează spaţii orizontale egale icircntre marginile din dreapta ale
controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Gap spaţiere orizontală icircntre controale Cel mai de sus şi cel mai de jos
control sunt considerate puncte de referinţă
Horizontal Compress minimizează spaţiile pe orizontală dintre controale şi elimină
orice spaţiu dintre ele
Distribute Vertical Centers
Comanda Distribute realizează la apel ultima opţiune selectată din lista prezentată
mai sus
37
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
- măsura (etalonul)
- operatorul (observatorul) şi
- prelucrarea ndash tratarea datelor
care ndash icircn funcţie de domeniul precizia şi scopul măsurării ndash au o pondere şi o importanţă
relativă diferită Această structură a procesului de măsurare diversitatea mărimilor de
masurat multitudinea tehnicilor pentru măsurare (mijloace şi metode) care să satisfacă
exigenţele operatorului ndash beneficiar al măsurarii (exigenţe destul de nuanţate icircn funcţie de
scopul măsurării viteza de măsurare costul măsurarii condiţiile ambientale etc) conduc la o
mare varietate a măsurărilor icircn general
Un exemplu particular al acestei mari varietaţi o constituie icircnseşi măsurarile
electronice (care au ca măsurand specii diverse cum sunt mărimile de stare ale cacircmpului
electric şi magnetic mărimile electrice de circuit parametrii de circuit caracteristici de
transfer frecvenţe timp defazaje forme de undă neliniarităţi distorsiuni zgomote cu
regimuri şi o dinamică ample cu influenţe de mediu şi cuplaje adeseori aleatorii etc)
213 Erori de măsurare
Icircn practică se constată că rezultatul unei măsurări nu depinde numai de valoarea
măsurandului el putacircnd fi influenţat de o serie de factori de natura obiectivă (mijloc de
măsurare metoda de măsurare factori exteriori procesului de măsurare etc) sau de natura
subiectivă Pentru caracterizarea rezultatelor obtinuţe icircn procesul de măsurare se definesc
urmatoarele valori
Valoarea adevarată (reala) Xa a unei mărimi este valoarea exacta a mărimii
respective icircn condiţiile existenţe la un moment dat De obicei valoarea adevarată a unei
mărimi nu poate fi determinată experimental ea icircnlocuindu-se cu o valoare convenţional
adevarată X care se obţine cu ajutorul unor mijloace de măsurare deosebit de precise practic
se consideră ca diferenţa dintre valoarea adevarată si valoarea convenţional adevarată este
neglijabilă şi deci cele două noţiuni sunt echivalente
Rezultatul unei măsurări individuale x care se obţine cu ajutorul unor mijloace de
măsurare obisnuite reprezintă valoarea măsurată Abaterea valorii măsurate faţă de valoarea
adevarată a măsurandului constituie eroarea de măsurare
Intervalul icircn care se estimează cu o anumita probabilitate numită nivel de icircncredere
ca se afla valoarea adevarată a măsurandului se numeste incertitudine de măsurare
11
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
incertitudinea de măsurare estimează limitele erorilor de măsurare Pentru o estimare
obiectivă este necesar ca icircmpreună cu rezultatul măsurarii să se specifice atacirct erorile cacirct şi
incertitudinea de măsurare Icircn figura 21 sunt reprezentate schematic noţiunile prezentate
anterior
Figura 21
Fig 11 Explicativă privind valoarea adevarată valoarea măsurată
valoarea convenţional adevarată eroarea de măsurare şi incertitudinea
de măsurare
214Clasificarea erorilor de măsură
Deoarece cauzele erorilor de măsurare sunt numeroase există şi multe criteri de
clasificare a lor Dupa caracterul lor erorile de măsurare pot fi grupate conform schemei
următoare
Figura 22
12
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
215 Etaloane
Etalonul este un sistem fizic care constituie un mijloc de măsurare (măsura instrument
sau aparat de măsurat) ce serveste la păstrarea şi reproducerea unităţilor de măsura cu
precizia metrologică corespunzatoare stadiului la care s-au dezvoltat tehnicile de măsurare Icircn
afara acestor două roluri prin care se ldquodefineşterdquo o unitate de măsura etaloanele mai sunt
utilizate icircn operaţiile de calibrare şi icircn icircnsuşi procesul de măsurare (de icircnaltă precizie) ca
elemente de referinţă precum şi icircn construcţia unor aparate (dispozitive) utilizate icircn alte
scopuri decacirct mşsurarea propriu-zisa (ca de exemplu dispozitive de automatizare
stabilizatoare electronice generatoare de semnal etc)
Calibrarea icircnseamnă ndash icircn metrologie ndash compararea unui aparat de măsurat cu un
etalon icircn scopul gradării sau ajustării verificării sau etalonării aparatului de masurat
Elementul de referinţă este un etalon care asigură (ldquofurnizeazardquo) o mărime fizică anume cu
o valoare bine cunoscută (cu o precizie metrologică corespunzatoare scopului urmarit)
Un etalon trebuie să fie invariabil icircn timp şi icircn spaţiu să poata fi folosit usor icircn tehnică
şi să poată fi reconstituit oricacircnd Unicitatea şi conformitatea măsurărilor icircn orice loc şi la
orice moment impun realizarea unui sistem de etaloane care să
asigure
- generarea principalelor unităti de măsură icircn conformitate cu definiţiile lor din SI
(adică ldquomaterializarea ldquo definiţiilor prin experimente adecvate)
- menţinerea (conservarea) acestor unităţi de măsură constante icircn timp icircn toate
laboratoarele metrologice pe plan mondial
- corelarea icircntre ele a unităţilor de măsură trecerea la alte unitati derivate (etaloane de
derivare) şi extinderea limitelor de măsurare cu precizia necesară cum ar fi trecerea la
multipli şi submultipli ai unităţilor de măsură (etaloane de raport)
Aceste trei operaţii fundamentale icircn activitatea metrologică se efectuează icircn
mod corespunzator cu urmatoarele trei categorii de etaloane
- etaloane de definiţie (adica etaloanele prin care se generează principalele unităţi de
măsură şi icircn principal cele fundamentale aşa cum este ndash de exemplu ndash determinarea absolută
a amperului cu ajutorul balanţei de curent)
- etaloane de conservare (adică etaloanele de menţinere a unităţii de măsură cu o mare
stabilitate icircn timp şi faţă de influenţele exterioare de mediu)
- etaloanele de transfer (adica cele care asigura etalonarea tuturor tipurilor
13
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
de aparate de masurat icircn intervale largi de valori ale masurandului pentru marimi constante
sau variabile icircn timp) asa cum sunt etaloanele de raport etaloanele de derivare si etaloanele
de transfer (curent continuu ndash curent alternativ) prin compararea efectelor (termice
electrodinamice etc) ale semnalelor de curent sau tensiune produse asupra unui acelaşi
element sensibil
22 Conceptul de M2M
M2M este o abreviere de la Machine-to-Machine deşi tot mai des se foloseşte şi
pentru identificarea tehnologiilor Man-to-Machine Machine-to-Man Machine-to-Mobile sau
Mobile-to-Machine Pe scurt este vorba de un serviciu ce permite comunicarea dintre
echipamentele aflate la distanţă şi aplicaţiile la care sunt conectate De fapt M2M este o
evoluţie comercială a tradiţionalelor sisteme de control al echipamentelor din domeniul
industrial soluţie aplicată cu succes pentru prima dată de NASA Adaptată nevoilor
companiilor (un rol important l-a jucat compania France Telecom) M2M permite companiilor
sa administreze mai uşor echipamentele aflate la distanţă si să le integreze cu procesele
interne
Zona soluţiilor M2M este cotată ca fiind una dintre cele mai promiţătoare in
următorii ani ca urmare a creşterii nevoii de automatizare a proceselor şi a posibilităţii de a
lua decizii intr-un timp cat mai scurt posibil ceea ce va genera proiecte majore Aplicaţiile
M2M permit prin monitorizarea si controlul maşinilor şi proceselor de la distanţă reducerea
costurilor optimizarea proceselor si imbunătăţirea nivelului serviciilor oferite clienţilor
permitand economii de timp şi de personal
14
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
23 Limbajul Python
Icircn cadrul unei instalaţii de telemetrie modemurile deţin memorie şi processor propriu
motiv pentru care se numesc ldquointeligenterdquo Pe lacircngă memorie şi processor aceste modemuri
inteligente au şi un interpretor al unui limbaj de programare de nivel icircnalt Icircn cazul
medemurilor alese de mine acest limbaj este Python
Python este un limbaj de programare dinamic orientat pe obiect care poate fi folosit
pentru mai multe tipuri de dezvoltarea software Oferă un puternic suport pentru integrarea cu
diferite instrumente folosind librării standard de extensie şi poate fi invăţat in cacircteva zile
231 Tipuri de date
Sunt 3 grupuri de tipuri de date in Python
Scalari ndash care au sutipurile intreg intreg lung si sir de caractere
i = 1 li = 9999999999L s = Hello
Secvenţe care conţin un anumit număr de obiecte arbitrare intr-o ordine definită
L = [1 5 3 9 14]
Liste asociative care permit accesul la valori bazate pe chei Aceste chei pot fi arbitrare
dar sunt obiecte permanente De exemplu
D = b Python a 5 print D[a]
Afisează 5
Spre deosebire de Pascal C C++ sau Java Python este un limbaj tastat dinamic Astfel
următoarea secvenţă de cod este perfect valabilă icircn Python
a = 7 7 (integer)
a = str(2a) + bytes 7 bytes (string)
15
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Icircn Python variabilele nu sunt declarate icircn script ele apar doar atunci cand sunt folosite
232 Operatori
Icircn Python există următorii operatori
Operatori aritmetici
+ - ~ ltlt gtgt amp ^ |
Operatori relaţionali şi logici
is in lt lt= gt gt= == = not and or
Operatori de asignare
= += -= = = = = ltlt= gtgt= amp= ^= |=
Alţi operatori
( ) [ ] [] `` lambda
233 Comenzi compuse
Comenzile care aparţin aceluiaşi grup logic sunt deplasate spre dreapta cu acelaş
număr de spaţii albe
if a gt 0
b = 1
c = 2
De obicei fiecare comandă icircncepe pe o linie nouă
16
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
O instrucţiune se poate continua pe racircndul următor prin plasarea caracterului backslash
la sfacircrsitul randului Acest lucru nu este necesar dacă există paranteze deschise
my_list = [1
[abc 2]
-3+6j]
print my_list
234 Execuţii condiţionale
Python foloseşte if elif (nu elsif sau elseif) si else pentru a indica execuţia condiţională a
unei instrucţiuni
De exemplu
if a gt b
print a is greater than b
elif a lt b
print a is lower than b
else
print a equals b
Se poate folosi si interval prescurtate de testare
if 2 lt= a lt= 7
print a is in the interval [2 7]
235 Bucle
Buclele in Python sunt definite prin cuvintele cheie for şi while
Următorul exemplu foloseşte o buclă while pentru a colecta toate numerele intregi
cuprinse intre 0 si 99 intr-o listăacirc
numbers = [ ]
i = 0
while i lt 100
17
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
numbersappend(i)
i = i + 1
O buclă similar for arată in felul următor
numbers = [ ]
for i in range(100)
numbersappend(i)
Icircn loc de buclele explicite prezentate mai sus se poate folosi şi bucle implicite după
cum urmează
numbers = range(100)
range(100) generează o listă cu toate numerele intregi de la 0 la 100
24 General packet radio service(GPRS)
Comunicaţia intre modemuri ( RTU-uri ) şi dispecer se poate face prin mai mlte
mediu de transmisie
- Cablu telephonic
- Radio
- GSMGPRS
- Fibră Optică
Opţiunea pentru care am optat icircn partea de comunicaţie este GSMGPRS deoarece
asigură o cumunicaţie sigură şi oferă simplitate pentru priectant
GPRS introduce servicii de transport cu comutaţie de pachete pentru debite de la 14
kbps la maximum 170 kbps Practic GPRS este o reţea cu comutaţie de pachete de sine
stătătoare care se daugă la reţeaua GSM GPRS interoperează cu infrastructura GSM la
nivelul subsistemului staţiilor de bază BSS şi al bazelor de date din subsistemul reţea NSS
(HLR VLR AUC) GPRS preia traficul de date iar GSM traficul de voce care rămacircne
comutat prin MSC
Datele sunt transmise prin GPRS icircn pachete de lungimi fixe Fiecare pachet conţine
adresa destinaţie pentru a putea fi rutat de nodurile GPRS Modificarea pe interfaţa radio e
18
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
dată de introducerea codării adaptive a canalului Aceasta icircnseamnă că protecţia datelor
variază icircn timp icircn funcţie de starea canalului radio GPRS poate utiliza pentru o conexiune
de date de la fracţiuni de canale de trafic pacircnă la maximum 8 sloturi temporale (adică tot
cadrul TDMA) icircn funcţie de resursele disponibile
Capacitatea alocată unei conexiuni va varia icircn funcţie de icircncărcarea cu trafic de pe
frecvenţa respectivă precum şi de tipul traficului (vocedate) Este important că utilizacircnd
comutaţia de pachete o transmisie de date nu ocupă resursele reţelei decacirct atunci cacircnd sunt
date de transmis Cacircnd nu există pachete de transmis resursele de pe interfaţa radio pot fi
utilizate pentru alte transmisii de date sau pentru trafic cu comutaţie de circuite
GPRS are o reţea nucleu proprie formată prin interconectarea serverelor care
gestionează transmisia de pachete numite noduri suport GPRS (GSN- GPRS Suport Node)
Aceasta reţea operează icircn paralel cu subsistemul reţea şi comutaţie (NSS) al GSM care va
gestiona icircn continuare transmisia cu comutaţie de circuite
241 Caracteristicile sistemului GPRS
GPRS este un serviciu specificat icircn faza 2+ de standardizare a GSM El este oferit prin
intermediul unei infrastructuri numită şi sistem sau reţea GPRS ce interoperează cu
infrastructura bdquoclasicărdquo GSM
GPRS se icircncadrează icircn orientarea generală a ETSI de a asigura prin aza 2+ o platformă
ce va putea fi utilizată ulterior icircn reţele de generaţia a treia Astfel el este onsiderat
actualmente soluţia de bază pentru transmiterea de date icircn UMTS Fiind un standard SM
GPRS păstrează evident şi compatibilitatea cu sistemul părinte fiind practic o extensie a
acestuia pentru transmisii de date la debite mai mari GPRS reprezintă la ora actuală cel mai
reprezentativ sistem de generaţie intermediară (25G)
Dacă HSCSD ar putea fi considerat o ajustare fină a GSM GPRS reprezintă cu
siguranţă un salt tehnologic semnificativ deoarece marchează trecerea de la comutaţia de
circuite la cea de pachete Schimbarea tipului de comutaţie se referă icircn acest moment (atacirct la
25G cacirct şi icircn 3G) doar la transmiterea datelor vocea rămacircnacircnd icircn continuare comutată prin
MSC Datorită eternei insuficienţe a resurselor radio este probabil ca icircntr-o fază nu prea
icircndepărtată de dezvoltare a UMTS şi de ce nu chiar a GPRS să fie utilizată comutaţia de
pachete şi pentru serviciile de timp real vocale sau non-vocale
Icircn concluzie GPRS reprezintă o infrastructura ce permite transmiterea datelor pe baza
comutaţiei de pachete icircntr-o reţea GSM
19
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Pentru a putea oferi debite de date mai ridicate icircn GPRS se urmăreşte utilizarea cacirct
mai eficientă a resurselor radio Pentru aceasta se preia de la HSCSD ideea operării multislot
posibilitatea de a proteja mai puţin informaţia utilă pe interfaţa radio şi alocarea asimetrică
uplink downlink Icircn ciuda acestor asemănări icircnlocuirea comutaţiei de circuite cu cea de
pachete face din GPRS un sistem complet diferit de HSCSD Aceasta atacirct din punct de vedere
al utilizatorului care constată un timp de conectare practic nul şi rate de transfer mai bune
dar şi din punct de vedere al operatorului care efectuează o investiţie incomparabil mai mare
răsplătită printr-o mai eficientă utilizare a interfeţei radio cu tot ceea ce rezultă de aici (mai
mulţi clienţi mai multe servicii aplicaţii diverse)
Rezumacircnd icircn GPRS este implementat un set de soluţii tehnologice ce au ca scop
principal creşterea eficienţei utilizării interfeţei radio Aceasta derivă atacirct din experienţa
sistemelor anterioare cacirct şi mai ales din operarea icircn modul pachet a datelor ce se transmit
Soluţiile utilizate sunt
creşterea ratei de transmisie a datelor prin reducerea codării canalului (sunt definite
şi pot
fi utilizate 4 scheme de codare 905kbps 134 kbps 156 kbps 214kbps)
creşterea ratei de transmisie prin operare multislot ( pacircnă la 8 sloturi temporale per
utilizator)
creşterea eficienţei utilizării resurselor radio prin multiplexarea mai multor
utilizatori pe acelaşi canal fizic (posibila datorită transmisiei de pachete maximum 8
utilizatori pe slot temporal)
creşterea eficienţei utilizării resurselor radio prin alocare asimetrică uplinkdownlink
creşterea eficienţei utilizării resurselor radio prin alocarea dinamică a canalelor icircntre
servicii comutate icircn mod circuit respectiv pachet
Cacircnd un icircntreg cadru TDMA este alocat unui utilizator cu schema de protecţie minimă
(practic fără corecţie de erori) rezultă rata utilă instantanee maximă posibilă icircn GPRS
(8x214 kbps=1712 kbps)
242 Comutaţie de circuite şi comutaţie de pachete
20
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comutaţia este o tehnică esenţială icircn reţelele de comunicaţii Fără ea fiecare
echipament terminal ar trebui conectat printr-o cale directă cu fir sau fără la toate celelalte
echipamente terminale din reţea Principalele metode de comutaţie sunt
comutaţia de circuite
comutaţia de mesaje
comutaţia de pachete
Comutaţia de circuite
Aceasta presupune realizarea icircntre emiţător şi receptor a unei căi fizice de comutaţie
dedicate numită circuit Icircntreaga comunicaţie se desfăşoară icircn trei etape
stabilirea conexiunii (sau deschiderea circuitului)
transferul de informaţii
eliberarea conexiunii (circuitului)
Este de remarcat faptul că stabilitatea fizică a caii de comunicaţie are loc icircnainte de
icircnceperea transmisiunii propriu-zise Aceasta poate conduce la durate semnificative ale
timpului de conectare
Un dezavantaj notoriu al acestei tehnici este alocarea fixă a resurselor de comunicaţie
necesare pe durata conexiunii indiferent dacă la un moment sau altul mediul de transmisie
este folosit total parţial sau deloc
Pe de altă parte avantajele comutaţiei de circuite provin tocmai din această alocare fixă de
resurse care permite
asigurarea unei icircntacircrzieri constante şi minime
garantarea unui debit util corespunzător mediului de comunicaţie şi serviciului utilizat
Toate acestea facilitează oferirea serviciilor de timp real (telefonie videofonie alte
transmisiuni video) Exemplul tipic de reţea cu comutaţie de circuite este reţea telefonică
publică comutată (PSTN) Reţeaua GSM este de asemenea o reţea cu comutaţie de circuite
Referindu-ne strict la interfaţa radio a reţelelor fără fir etapa de stabilire a conexiunii
presupune alocarea unui canal radio (sau a mai multora icircn cazul HSCSD) unei staţii mobile
(MS) Acest canal rămacircne icircn posesia terminalului mobil pe toata durata conexiunii chiar dacă
transferul de date este discontinuu (icircn rafale) sau chiar icircncetează cu desăvacircrşire (de exemplu
21
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cacircnd utilizatorul citeşte cu atenţie cinci minute o pagină WEB după care lămurit pe deplin
icircntrerupe legătura) Ca o particularizare binecunoscută a reţelelor cu comutaţie de circuite
trebuie menţionat că utilizatorul trebuie să plătească pentru icircntreaga durată a conexiunii chiar
dacă a fost risipitor şi nu a folosit resursa ce i-a fost alocată
Comutaţia de mesaje
Este o tehnică ce nu stabileşte apriori o cale de transmisiune icircntre emiţător şi receptor
Informaţia ce urmează a fi transmisă formează o entitate bine precizată numita mesaj
Mesajele sunt complet independente unele faţă de altele şi pot avea lungimi variabile deşi
structura (formatul) lor poate fi prestabilit Emiţătorul trebuie sa ataşeze mesajului adresa
destinatarului decizia cu privire la ruta pe care o va urma mesajul fiind de competenţa
fiecărui comutator (router) prin care trece Fiecare comutator va memora mesajul după care icircl
va transmite pe ieşirea selectată de el Principala problemă a comutaţiei de mesaje este dată de
dimensiunea mare a mesajelor Din această cauză comutatoarele de mesaje au nevoie de o
capacitate de stocare uriaşă iar icircntacircrzierea icircn noduri poate deveni inacceptabilă din cauza
monopolizării ieşirilor de către mesajele lungi Exemplul tipic de reţea cu comutaţie de
mesaje este reţeaua telex
Comutaţia de pachete
Rezolvă o mare parte din dezavantajele comutaţiei de mesaje stabilind o lungime
maximă a entităţii informaţionale care circulă prin reţea numită pachet Pachetele sunt icircn
general rezultatul divizării mesajelor icircn blocuri de lungime mică Datorită acestui fapt spre
deosebire de mesaje pachetele nu sunt independente O recepţie corespunzătoare implică
refacerea mesajului prin ordonarea pachetelor după logica folosită la emisie Pentru aceasta
exista două posibilităţi apropiate conceptual de comutaţia de mesaje respectiv de comutaţia
de circuite
A Comutaţia de pachete fără conexiune (sau neorientată pe conexiune)
Icircn cazul comutaţiei de pachete fără conexiune pachetele (numite şi datagrame) se transmit
independent icircn cel mai pur spirit al comutaţiei de mesaje urmacircnd rute posibil diferite
Sosirea lor la destinaţie poate avea loc icircntr-o ordine aleatoare ceea ce necesită reordonarea lor
de către receptor Refacerea succesiunii corecte a pachetelor se bazează pe informaţia
22
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
suplimentară din fiecare pachet privitoare la mesajul din care face parte şi locul pe care icircl
ocupa icircn el Exemplul tipic de reţea care utilizează comutaţia de pachete este internetul
BComutaţia de pachete orientată pe conexiune (sau circuit virtual)
Icircn cazul comutaţiei de pachete orientată pe conexiune (sau circuit virtual) comunicarea
icircntre terminale presupune stabilirea unei căi anume pe care va circula fluxul informaţional
dintre acestea similar cu comutaţia de circuite Spre deosebire de aceasta nu este vorba de
dedicarea unui circuit fizic comunicării respective ci de configurarea unui circuit logic
numit circuit virtual Aceasta icircnseamnă că toate pachetele vor urma aceeaşi cale prin reţea
fără a dedica suportul fizic comunicaţiei respective Pachetele altor utilizatori vor putea folosi
foarte bine segmente din calea respectivă sau chiar icircntreaga cale La stabilirea circuitului
virtual fiecare comutator (router) trebuie să memoreze icircn tabela de dirijare care este
succesorul său icircn respectivul circuit virtual Astfel spre deosebire de comutaţia de pachete
fără conexiune după stabilirea circuitului virtual comutatorul nu mai trebuie să decidă calea
fiecărui pachet Avacircnd memorat nodul succesor icircn fiecare dintre circuitele virtuale icircn care este
implicat comutatorul va identifica circuitul asociat pachetului şi icircl va transmite pe acesta pe
linia de ieşire corespunzătoare Tehnica circuitului virtual garantează livrarea icircn ordine a
pachetelor la destinaţie Exemple marcante de reţele ce utilizează comutaţia de pachete de tip
circuit virtual sunt X25 şi ATM
Marele avantaj al comutaţiei de pachete este utilizarea eficientă a resurselor de
transmisiune Deoarece acestea nu sunt dedicate ele pot fi folosite după necesităţi pentru a
transmite pachete provenind de la utilizatori diferiţi Din acest motiv comutaţia de pachete
este extrem de avantajoasă icircn cazul unei infrastructuri cu resurse de transmisiune limitate
cum este şi cazul reţelelor fără fir
Un dezavantaj important al comutaţiei de pachete este dat de gestionarea comutatoarelor
(routerelor) icircn cazul unui trafic crescut la intrare Pierderea pachetelor garantarea unei
icircntacircrzieri maxime şi a unui debit utilizator constant sunt problemele spinoase ale comutaţiei
de pachete Ele reprezintă obstacole icircn special icircn calea oferirii serviciilor de timp real cum ar
fi telefonia
Icircn schimb icircn cazul transmisiilor de date avantajul bunei administrări a resurselor
prevalează De exemplu icircn cazul particular al interfeţei radio GSM cacircnd o staţie mobilă (MS)
generează un pachet de date reţeaua icircl va transmite pe un canal radio disponibil icircn acel
moment Următorul pachet de pe acel canal poate să aparţină aceleiaşi MS dacă are ceva de
23
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
transmis sau dacă nu alteia Icircn acest mod atacircta timp cacirct cineva are ceva de transmis
canalele radio nu sunt blocate inutil Lucrul icircn mod pachet are o eficienţă cu totul deosebită icircn
cazul unui trafic de date icircn rafale (data bursts)
Aşadar pentru un sistem GSM bazat esenţialmente pe comutaţia de circuite este
extrem de utilă alocarea resurselor neutilizate de către serviciile vocale pentru servicii mai
puţin prioritare Atacirct HSCSD cacirct şi GPRS icircşi propun acest lucru Serviciile cele mai potrivite
pentru valorificarea resurselor rămase (preferabil printr-un mecanism de alocare dinamică)
sunt tocmai cele care implică un trafic de date icircn rafale fără pretenţii de timp real Diferenţa
fundamentală icircntre HSCSD şi GPRS este că acesta din urmă valorifică aceste resurse icircntr-un
mod mult mai eficient deoarece utilizează comutaţia de pachete Icircn plus costul serviciilor
oferite este mai atractiv deoarece utilizatorul plăteşte volumul de date transferat Practic dacă
doreşte utilizatorul poate fi sbquoconectatrsquo la reţeaua de date icircn permanenţă fiind taxat doar
pentru timpul icircn care efectiv utilizează resursele reţelei adică pentru pachetele de date
recepţionate respectiv transmise
243 Servicii GPRS
Dintre aplicaţiile cele mai potrivite pentru GPRS se pot aminti mesageria de orice tip
difuzare şi distribuţie multiplă telemetrie jocuri navigare de mică anvergură pe reţeaua
internet Icircn general orice tip de aplicaţii ce necesită comunicaţii maşină - maşină la debite
mici şi medii sunt adecvate dezvoltării icircn mediul GPRS
Ca şi icircn reţeaua GSM reţelele GPRS pot oferi două categorii de servicii de
telecomunicaţii
servicii de bază
servicii suplimentare
Serviciile de bază GPRS
Acestea sunt icircn principal servicii suport (bearer services) de transport care realizează
transmiterea datelor cu comutaţie de pachete icircntre două interfeţe şi din teleservicii Similar
situaţiei din GSM aceste interfeţe sunt
interfaţa dintre echipamentul terminal de date (de exemplu calculator) şi terminalul
mobil GPRS
24
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
interfaţa dintre reţeaua GPRS şi reţeaua de date sau echipamentul terminal cu care
comunică Aceasta interfaţă este situată icircntr-un nod poartă (gateway) GPRS similar
situaţiei din GSM unde locul ei este GMSC
Teleserviciul fundamental oferit de GPRS este cel de transport de date şi este detaliat
mai jos Un alt teleserviciu oferit de GPRS este transmisia şi recepţia de mesaje scurte (SMS)
Astfel pe de o parte capacitatea de transmisie a mesajelor scurte va creşte iar pe de alta
parte reţeaua de semnalizări pe care se transmit icircn GSM aceste mesaje nu va mai fi icircncărcată
şi cu mesaje scurte ce vin sau pleacă de la la terminalele mobile GPRS
Servicii GPRS de transport
Sunt definite doua categorii de teleservicii de transport
servicii punct-la-punct (PTP ndashPoint-to-Point)
servicii punct la multipunct (PTM-Point-to-Multipoint)
A Serviciul PTP
Serviciul punct la punct (PTP) [GSM 0260] permite transmiterea de pachete de date
icircntre doi utilizatori Este implementat icircn GPRS faza 1 Abonatul care a iniţiat serviciul se
numeşte solicitant (service requester) Partenerul său se numeşte receptor al serviciului
(service receiver)
Serviciul PTP poate fi solicitat fie de la terminalul mobil GPRS fie de la un
echipament situat icircntr-o reţea de date fixă (IP X25) Serviciul PTP poate fi oferit de
asemenea icircntre doi utilizatori mobili GPRS
Serviciul punct-la punct poate fi la racircndul sau de două tipuri
PTP fără conexiune (PTP-CLNS ndash PTP Connectinnless Network Service)
PTP orientat pe conexiune (PTP-CONS ndashPTP Connection Orientated Network
Network Service)
PTP-CLNS este un serviciu de tip datagramă ce utilizează comutaţia de pachete fără
conexiune Este util icircn cazul aplicaţiilor ce generează trafic icircn rafale şi are că scop asigurarea
interoperării cu reţele IP
PTP-CONS este un serviciu de tip circuit virtual ce utilizează comutaţia de pachete
orientata pe conexiune Icircntre cei doi utilizatori se stabileşte un circuit virtual pentru o perioadă
25
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ce poate varia de la cacircteva secunde la ore Este util atacirct pentru aplicaţii ce generează trafic icircn
rafale cacirct şi pentru aplicaţiile interactive Are că scop asigurarea interoperării cu reţele X25 şi
derularea peste GPRS a aplicaţiilor bazate pe protocolul OSI CONS(Connection Orientated
Network Protocol)
O reţea GPRS trebuie să asigure menţinerea circuitului virtual la trecerea dintr-o
celulă icircn alta dar numai icircn interiorul aceleiaşi reţele GPRS-PLMN La trecerea terminalului
mobil icircntr-o altă reţea sau icircn cazul căderii legăturii radio circuitul virtual va fi eliberat Pentru
ambele tipuri de servicii pe interfaţa radio se poate opera fie cu confirmare fie fără
confirmare a transportului de date
B Serviciul PTM
Serviciul punct la multipunct (PTM) permite transmiterea de pachete de date de la un
utilizator către mai mulţi utilizatori El este implementat icircn faza a doua a GPRS O
comunicaţie PTM se stabileşte icircntre un furnizor de servicii (ce poate fi situat icircn afară reţelei
GSM) şi un grup de terminale GPRS Şi serviciul PTM este un serviciu ce se prezintă icircn două
variante
PTMndash multidistribuţie (PTM Multicast)
PTM- grup (PTM-G--PTMGroup)
Serviciul de transport PTM-M permite transmiterea pachetelor de date icircntr-o arie
geografică dată (celulă grup de celule) fără confirmare Receptorii serviciului sunt fie toţi
abonaţii care se găsesc icircn acea zonă fie un grup icircnchis de utilizatori
Icircn cazul PTM-G receptorul serviciului este un grup predefinit de utilizatori Pachetele de
date vor fi trimise către toţi membrii grupului indiferent de aria geografică unde se găsesc
aceştia Este posibilă şi transmiterea doar către acei membri care se găsesc icircn anumite zone
geografice Transmisia poate fi şi cu confirmare
Serviciile suplimentare
Printre serviciile suplimentare avute icircn vedere icircntr-un prim stadiu se numără
redirecţionarea necondiţionată a apelurilor redirecţionarea cacircnd abonatul nu este accesibil şi
definirea de grupuri icircnchise de utilizatori In afară de aceste servicii recomandarea GSM
0260 descrie posibilitatea oferirii de servicii adiţionale cum sunt accesarea bazelor de date
servicii de mesagerie validări de cărţi de credit servicii de monitorizare electronică tranzacţii
electronice etc
26
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
244 Arhitectura GPRS
GPRS este o soluţie pentru operatori deoarece nu necesită modificări substanţiale icircn
reţeaua GSM Aşa cum se observă icircn figura 72 reţeaua nucleu a GPRS operează icircn paralel
cu GSM-NSS
Figura 23 Arhitectura reţelei GPRS
25 LabWindowsCVI
La dipecer am considerat un calculator desktop sau laptop pe care va rula o aplicaţie
de monitorizare a datelor măsurate implementată icircn LabWindowsCVI
LabWindowsCVI este o platformă pentru dezvoltare de software cu orientare pe
aplicaţii de instrumentaţie După cum se deduce din denumirea sa (CVI ndash C for Virtual
Instrumentation) limbajul acceptat este ANSI C cu extensii specifice CVI ne pune la
dispoziţie un mediu interactiv de dezvoltare a unor aplicaţii pentru sistemul de operare
Windows Icircmbină deci avantajele programării de tip vizual cu avantajele simplităţii şi
flexibilităţii limbajului C Deşi a fost creat special pentru aplicaţii de instrumentaţie şi control
27
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
multiplele lui facilităţi icircl fac capabil să suporte şi dezvoltarea unor aplicaţii de mărime medie
care să fie de altă factură Fiecare funcţie de bibliotecă din cadrul acestui mediu are o interfaţă
specializată numită panoul funcţiei (function panel) care permite
bull Help on-line
bull Selectare şi declarare de variabile sau constante necesare
bull Execuţie interactivă
bull Inserarea funcţiei editate icircntr-un text sursă
Mediul este extrem de flexibil permiţacircnd interfaţarea bidirecţională cu alte compilatoare de
C sau C++ De asemenea se pot folosi şi DLL-uri
Puterea mediului LabWindowsCVI este dată de bibliotecile puse la dispoziţia
programatorului acestea conţinacircnd funcţii pentru implementarea diverselor faze care conduc
la o aplicaţie din domeniul achiziţiei de date sau a controlului automat
Pentru achiziţia de date există următoarele biblioteci specializate
bull de instrumente
bull pentru interfaţa GPIBGPIB 4882 (General Purpose Interface Bus)
bull pentru achiziţie de date
bull pentru operaţii IO icircn cazul achiziţiei de date
bull pentru interfaţa serială RS232
bull pentru sistemul VXI
Biblioteci specializate pentru analiza datelor
bull pentru IO
bull pentru formatarea specială
bull pentru analiză
bull pentru analiză avansată
Biblioteci specializate pentru vizualizare date
bull pentru crearea unei interfeţe utilizator de tip vizual
Biblioteci specializate pentru lucrul icircn reţea şi comunicarea icircntre diverse aplicaţii
bull pentru DDE (Dynamic Data Exchange)
bull pentru TCP (Transmision Control Protocol)
bull pentru sistemul X de sub Unix
Icircn afară de acestea mai există o bibliotecă specială numită biblioteca de instrumente
care conţine drivere şi sursele lor pentru osciloscoape multimetre şi generatoare de funcţii
De asemenea există posibilitatea creării unui instrument propriu Biblioteca pentru interfaţa
28
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cu utilizatorul conţine funcţiile necesare creării unui GUI (Graphical User Interface =
Interfaţă grafică cu utilizatorul) după necesităţi
Structura generică a unei aplicaţii dezvoltate sub CVI
Un proiect complet pentru una din clasele de aplicaţii specifice mediului CVI are
următoarele componente generice
bull interfaţa cu utilizatorul
bull partea de control a aplicaţiei
bull partea specializată pentru achiziţia datelor
bull partea specializată icircn analiza respectivelor date
Mai jos prezentăm o schemă generică a aplicaţiilor CVI
Figura 24
Tipuri de fişiere folosite icircn cadrul CVI
PRJ se referă la fişiere de tip proiect
UIR se referă la fişiere care conţin descrierea unei interfeţe grafice cu utilizatorul
C fişiere sursă
H fişiere header
FP fişiere care reţin descrierea unui instrument
LIB fişiere bibliotecă
DLL fişiere link-editate pentru apel dinamic
OBJ fişiere obiect
29
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a unora dintre meniurile şi ferestrele mediului de dezvoltare CVI
Fereastra proiect
Prezentăm mai jos doar informaţiile suplimentare faţă de o fereastră proiect standard
Pe lacircngă datele curente despre fiecare fişier inclus icircn proiect acesta mai are precizat şi unul
sau mai mulţi din următorii indici
- I indică faptul că respectivul fişier conţine descrierea unui driver de instrument
- S faptul că s-au făcut modificări icircn fişierul respectiv şi deci trebuie salvat
- C indică obligativitatea compilării respectivului fişier icircnainte de rularea aplicaţiei
- indică faptul că fişierul este deschis icircntr-o fereastră de editare
- indică ca acest fişier nu este deschis
Aplicaţii consolă
Pentru aplicaţiile tip consolă clasice C unde se folosesc pentru IO funcţiile scanf şi
printf vizualizarea ieşirii icircn mod text a acestora se va face icircntr-o fereastră specială numită
ldquoStandard InputOutput Windowrdquo
Observaţie Dacă se va programa icircn acest mod trebuie activată opţiunea ldquoBring Standard
InputOtput to front whenever modifyrdquo din Environment ce aparţine meniului Options
Generatorul interactiv de aplicaţii
Butoanele directe ale editorului de interfeţe cu utilizatorul
folosit la selectare mutare şi dimensionare obiecte
utilizat pentru a modifica textul asociat cu obiectele din UIR folosind facilităţile de
etichetare
folosit pentru colorarea obiectelor Este suficientă o apăsare pe butonul din dreapta a
mouse-ului şi va colora automat obiectul selectat cu culoarea curentă
oferă facilităţi de operare Atunci cacircnd este activat evenimentele vor fi afişate icircn partea
dreaptă a barei de facilităţi
30
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a cacirctorva din meniurile mai importante ale generatorului
Menu Bars activează cutia de dialog care ne prezintă toate barele de meniu definite deja de
programator
Figura 25
Create apelează fereastra Edit Menu Bar pentru a crea o nouă bară de meniuri
Edit apelează fereastra Edit Menu Bar pentru a modifica o bară de meniuri existentă
Fereastra Edit Menu Bar(fig26) permite specificarea sau modificarea caracteristicilor
unei bare de meniuri icircn curs de creare sau care există deja
31
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 26
Menu Bar Constant Prefix este identificatorul intern al respectivei bare de meniuri Acesta
va fi folosit de funcţia LoadMenuBar pentru icircncărcarea icircn memorie a parametrilor care conţin
această bară Va fi definit automat icircn fişierul header din scheletul de aplicaţie
Item se referă la numele meniului curentsubmeniucomandă de meniu Dacă icircn faţa primei
litere a unui element din meniu se adaugă 2 ldquounderscorerdquo la execuţie acesta va putea fi
selectat prin combinaţia Alt+prima literă
Constant name este alipit la Menu Bar Constant Prefix pentru a se genera identificatorul
elementului curent Este folosit de funcţii ca GetMenuBarAttribute sau SetMenuBarAttribute
De asemenea acest identificator este returnat de GetUserEvent atunci cacircnd apare un
eveniment generat de o comandă a meniului
Callback Function Permite specificarea numelui unei funcţii de răspuns care va fi apelată
automat la activarea respectivului element Folosirea ei este opţională
32
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ModifierKeyShortcutKey se combină pentru a ataşa o cheie ldquohotrdquo pentru elementul
curent
buton ce permite coboracircrea icircn interiorul unei ierarhii de meniuri
buton ce permite urcarea icircn interiorul unei ierarhii de meniuri
Panouri
După cum am spus sunt echivalentul ferestrelor din programarea Windows Pentru a le crea
Create1048774Panel ne pune la dispoziţie un nou panou icircn cadrul UIR-ului curent Prin dublu
ldquoclickrdquo pe acesta se va intra in fereastra de editare a caracteristicilor panoului Această
fereastră este prezentată mai jos
Figura 27
La partea de Menu Bar se poate specifica o bară din cele deja create icircn cazul dezvoltării
respectivei interfeţe
Restul parametrilor au fost discutaţi anterior sau sunt cunoscuţi din programarea Windows
33
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Crearea controalelor
Exceptacircnd diferenţele care apar funcţie de destinaţia acestora există o serie de parametri
comuni fiecărui control pe care icircl creăm Mai jos prezentăm fereastra care apare de exemplu
la crearea unui control de tip numeric şi anume un buton
Figura 28
Se observă că identificatorul intern şi posibilitatea de ataşare a unei funcţii de răspuns
rămacircne De asemenea o serie de informaţii specifice părţii de etichetare Icircn plus apar
specificaţii privind modul de afişare a datelor şi limitele icircntre care acestea pot fi variate prin
intermediul acestui control
34
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
TAB ORDER
Fiecare control de pe un panou activ are o poziţie icircn ordinea de salt prin intermediul
unui tab Această ordine precizează care va fi următorul control ce va fi activat icircn cazul icircn
care utilizatorul apasă Tab sau Shift+Tab Implicit acestea sunt adăugate exact icircn ordinea
creării lor de către programator Numai că nu icircntotdeauna aceasta este ordinea de salt dorită a
fi activă la terminarea aplicaţiei Icircn aceste condiţii secvenţa Edit1048774Tab Order ne va activa un
panou specializat pentru aceasta
Figura 29
noua formă de cursor activă icircn interiorul ferestrei Prin apăsarea pe un control oarecare i
se
poate modifica ordinea de activare
specifică faptul că se acceptă noua ordine de apelare
se iese cu păstrarea vechii ordini
Find UIR Objects
O altă facilitate a editorului este Find UIR Objects care aparţine meniului View Icircn
cadrul unor proiecte mari se dovedeşte a fi extrem de utilă
35
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 210
După cum se observă ne permite căutarea după dorinţă a unui nume icircn diverse categorii de
obiecte ale interfeţei cu utilizatorul
GENERATE
Este meniul folosit pentru generarea fie a icircntregului cod schelet fie numai a codului
corespunzător unui obiect proaspăt introdus icircntr-un UIR
Secvenţa Code1048774Generate1048774AllCode va genera codul schelet pentru aplicaţie Acesta va
conţine şi un ldquoswitchrdquo pentru tratarea evenimentelor Alegerea evenimentelor care vor fi
automat introduse se face din Code1048774Preferences
MENIUL ARRANGE
Icircncă de la primele aplicaţii vom observa că una din operaţiile mari consumatoare de
timp este aranjarea controalelor icircn panou după specificarea caracteristicilor acestora Pentru a
evita acest lucru CVI a fost prevăzut cu o serie de facilităţi de aranjare automată pe care le
vom prezenta mai jos
Figura 211
Top Edges asigură spaţiere verticală icircntre partea superioară a controalelor Cel mai de
sus şi cel mai de jos control sunt considerate puncte de referinţă
36
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Vertical Centers asigură spaţiere verticală icircntre centrele controalelor Cel mai de sus
şi cel mai de jos control sunt considerate puncte de referinţă
Bottom Edges asigură spaţiere verticală icircntre partea inferioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Vertical Gap asigură spaţiere verticală icircntre partea superioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Left Edges setează spaţii orizontale egale icircntre marginile din stacircnga ale controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Centers setează spaţii orizontale egale icircntre centrele controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Right Edges setează spaţii orizontale egale icircntre marginile din dreapta ale
controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Gap spaţiere orizontală icircntre controale Cel mai de sus şi cel mai de jos
control sunt considerate puncte de referinţă
Horizontal Compress minimizează spaţiile pe orizontală dintre controale şi elimină
orice spaţiu dintre ele
Distribute Vertical Centers
Comanda Distribute realizează la apel ultima opţiune selectată din lista prezentată
mai sus
37
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
incertitudinea de măsurare estimează limitele erorilor de măsurare Pentru o estimare
obiectivă este necesar ca icircmpreună cu rezultatul măsurarii să se specifice atacirct erorile cacirct şi
incertitudinea de măsurare Icircn figura 21 sunt reprezentate schematic noţiunile prezentate
anterior
Figura 21
Fig 11 Explicativă privind valoarea adevarată valoarea măsurată
valoarea convenţional adevarată eroarea de măsurare şi incertitudinea
de măsurare
214Clasificarea erorilor de măsură
Deoarece cauzele erorilor de măsurare sunt numeroase există şi multe criteri de
clasificare a lor Dupa caracterul lor erorile de măsurare pot fi grupate conform schemei
următoare
Figura 22
12
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
215 Etaloane
Etalonul este un sistem fizic care constituie un mijloc de măsurare (măsura instrument
sau aparat de măsurat) ce serveste la păstrarea şi reproducerea unităţilor de măsura cu
precizia metrologică corespunzatoare stadiului la care s-au dezvoltat tehnicile de măsurare Icircn
afara acestor două roluri prin care se ldquodefineşterdquo o unitate de măsura etaloanele mai sunt
utilizate icircn operaţiile de calibrare şi icircn icircnsuşi procesul de măsurare (de icircnaltă precizie) ca
elemente de referinţă precum şi icircn construcţia unor aparate (dispozitive) utilizate icircn alte
scopuri decacirct mşsurarea propriu-zisa (ca de exemplu dispozitive de automatizare
stabilizatoare electronice generatoare de semnal etc)
Calibrarea icircnseamnă ndash icircn metrologie ndash compararea unui aparat de măsurat cu un
etalon icircn scopul gradării sau ajustării verificării sau etalonării aparatului de masurat
Elementul de referinţă este un etalon care asigură (ldquofurnizeazardquo) o mărime fizică anume cu
o valoare bine cunoscută (cu o precizie metrologică corespunzatoare scopului urmarit)
Un etalon trebuie să fie invariabil icircn timp şi icircn spaţiu să poata fi folosit usor icircn tehnică
şi să poată fi reconstituit oricacircnd Unicitatea şi conformitatea măsurărilor icircn orice loc şi la
orice moment impun realizarea unui sistem de etaloane care să
asigure
- generarea principalelor unităti de măsură icircn conformitate cu definiţiile lor din SI
(adică ldquomaterializarea ldquo definiţiilor prin experimente adecvate)
- menţinerea (conservarea) acestor unităţi de măsură constante icircn timp icircn toate
laboratoarele metrologice pe plan mondial
- corelarea icircntre ele a unităţilor de măsură trecerea la alte unitati derivate (etaloane de
derivare) şi extinderea limitelor de măsurare cu precizia necesară cum ar fi trecerea la
multipli şi submultipli ai unităţilor de măsură (etaloane de raport)
Aceste trei operaţii fundamentale icircn activitatea metrologică se efectuează icircn
mod corespunzator cu urmatoarele trei categorii de etaloane
- etaloane de definiţie (adica etaloanele prin care se generează principalele unităţi de
măsură şi icircn principal cele fundamentale aşa cum este ndash de exemplu ndash determinarea absolută
a amperului cu ajutorul balanţei de curent)
- etaloane de conservare (adică etaloanele de menţinere a unităţii de măsură cu o mare
stabilitate icircn timp şi faţă de influenţele exterioare de mediu)
- etaloanele de transfer (adica cele care asigura etalonarea tuturor tipurilor
13
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
de aparate de masurat icircn intervale largi de valori ale masurandului pentru marimi constante
sau variabile icircn timp) asa cum sunt etaloanele de raport etaloanele de derivare si etaloanele
de transfer (curent continuu ndash curent alternativ) prin compararea efectelor (termice
electrodinamice etc) ale semnalelor de curent sau tensiune produse asupra unui acelaşi
element sensibil
22 Conceptul de M2M
M2M este o abreviere de la Machine-to-Machine deşi tot mai des se foloseşte şi
pentru identificarea tehnologiilor Man-to-Machine Machine-to-Man Machine-to-Mobile sau
Mobile-to-Machine Pe scurt este vorba de un serviciu ce permite comunicarea dintre
echipamentele aflate la distanţă şi aplicaţiile la care sunt conectate De fapt M2M este o
evoluţie comercială a tradiţionalelor sisteme de control al echipamentelor din domeniul
industrial soluţie aplicată cu succes pentru prima dată de NASA Adaptată nevoilor
companiilor (un rol important l-a jucat compania France Telecom) M2M permite companiilor
sa administreze mai uşor echipamentele aflate la distanţă si să le integreze cu procesele
interne
Zona soluţiilor M2M este cotată ca fiind una dintre cele mai promiţătoare in
următorii ani ca urmare a creşterii nevoii de automatizare a proceselor şi a posibilităţii de a
lua decizii intr-un timp cat mai scurt posibil ceea ce va genera proiecte majore Aplicaţiile
M2M permit prin monitorizarea si controlul maşinilor şi proceselor de la distanţă reducerea
costurilor optimizarea proceselor si imbunătăţirea nivelului serviciilor oferite clienţilor
permitand economii de timp şi de personal
14
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
23 Limbajul Python
Icircn cadrul unei instalaţii de telemetrie modemurile deţin memorie şi processor propriu
motiv pentru care se numesc ldquointeligenterdquo Pe lacircngă memorie şi processor aceste modemuri
inteligente au şi un interpretor al unui limbaj de programare de nivel icircnalt Icircn cazul
medemurilor alese de mine acest limbaj este Python
Python este un limbaj de programare dinamic orientat pe obiect care poate fi folosit
pentru mai multe tipuri de dezvoltarea software Oferă un puternic suport pentru integrarea cu
diferite instrumente folosind librării standard de extensie şi poate fi invăţat in cacircteva zile
231 Tipuri de date
Sunt 3 grupuri de tipuri de date in Python
Scalari ndash care au sutipurile intreg intreg lung si sir de caractere
i = 1 li = 9999999999L s = Hello
Secvenţe care conţin un anumit număr de obiecte arbitrare intr-o ordine definită
L = [1 5 3 9 14]
Liste asociative care permit accesul la valori bazate pe chei Aceste chei pot fi arbitrare
dar sunt obiecte permanente De exemplu
D = b Python a 5 print D[a]
Afisează 5
Spre deosebire de Pascal C C++ sau Java Python este un limbaj tastat dinamic Astfel
următoarea secvenţă de cod este perfect valabilă icircn Python
a = 7 7 (integer)
a = str(2a) + bytes 7 bytes (string)
15
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Icircn Python variabilele nu sunt declarate icircn script ele apar doar atunci cand sunt folosite
232 Operatori
Icircn Python există următorii operatori
Operatori aritmetici
+ - ~ ltlt gtgt amp ^ |
Operatori relaţionali şi logici
is in lt lt= gt gt= == = not and or
Operatori de asignare
= += -= = = = = ltlt= gtgt= amp= ^= |=
Alţi operatori
( ) [ ] [] `` lambda
233 Comenzi compuse
Comenzile care aparţin aceluiaşi grup logic sunt deplasate spre dreapta cu acelaş
număr de spaţii albe
if a gt 0
b = 1
c = 2
De obicei fiecare comandă icircncepe pe o linie nouă
16
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
O instrucţiune se poate continua pe racircndul următor prin plasarea caracterului backslash
la sfacircrsitul randului Acest lucru nu este necesar dacă există paranteze deschise
my_list = [1
[abc 2]
-3+6j]
print my_list
234 Execuţii condiţionale
Python foloseşte if elif (nu elsif sau elseif) si else pentru a indica execuţia condiţională a
unei instrucţiuni
De exemplu
if a gt b
print a is greater than b
elif a lt b
print a is lower than b
else
print a equals b
Se poate folosi si interval prescurtate de testare
if 2 lt= a lt= 7
print a is in the interval [2 7]
235 Bucle
Buclele in Python sunt definite prin cuvintele cheie for şi while
Următorul exemplu foloseşte o buclă while pentru a colecta toate numerele intregi
cuprinse intre 0 si 99 intr-o listăacirc
numbers = [ ]
i = 0
while i lt 100
17
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
numbersappend(i)
i = i + 1
O buclă similar for arată in felul următor
numbers = [ ]
for i in range(100)
numbersappend(i)
Icircn loc de buclele explicite prezentate mai sus se poate folosi şi bucle implicite după
cum urmează
numbers = range(100)
range(100) generează o listă cu toate numerele intregi de la 0 la 100
24 General packet radio service(GPRS)
Comunicaţia intre modemuri ( RTU-uri ) şi dispecer se poate face prin mai mlte
mediu de transmisie
- Cablu telephonic
- Radio
- GSMGPRS
- Fibră Optică
Opţiunea pentru care am optat icircn partea de comunicaţie este GSMGPRS deoarece
asigură o cumunicaţie sigură şi oferă simplitate pentru priectant
GPRS introduce servicii de transport cu comutaţie de pachete pentru debite de la 14
kbps la maximum 170 kbps Practic GPRS este o reţea cu comutaţie de pachete de sine
stătătoare care se daugă la reţeaua GSM GPRS interoperează cu infrastructura GSM la
nivelul subsistemului staţiilor de bază BSS şi al bazelor de date din subsistemul reţea NSS
(HLR VLR AUC) GPRS preia traficul de date iar GSM traficul de voce care rămacircne
comutat prin MSC
Datele sunt transmise prin GPRS icircn pachete de lungimi fixe Fiecare pachet conţine
adresa destinaţie pentru a putea fi rutat de nodurile GPRS Modificarea pe interfaţa radio e
18
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
dată de introducerea codării adaptive a canalului Aceasta icircnseamnă că protecţia datelor
variază icircn timp icircn funcţie de starea canalului radio GPRS poate utiliza pentru o conexiune
de date de la fracţiuni de canale de trafic pacircnă la maximum 8 sloturi temporale (adică tot
cadrul TDMA) icircn funcţie de resursele disponibile
Capacitatea alocată unei conexiuni va varia icircn funcţie de icircncărcarea cu trafic de pe
frecvenţa respectivă precum şi de tipul traficului (vocedate) Este important că utilizacircnd
comutaţia de pachete o transmisie de date nu ocupă resursele reţelei decacirct atunci cacircnd sunt
date de transmis Cacircnd nu există pachete de transmis resursele de pe interfaţa radio pot fi
utilizate pentru alte transmisii de date sau pentru trafic cu comutaţie de circuite
GPRS are o reţea nucleu proprie formată prin interconectarea serverelor care
gestionează transmisia de pachete numite noduri suport GPRS (GSN- GPRS Suport Node)
Aceasta reţea operează icircn paralel cu subsistemul reţea şi comutaţie (NSS) al GSM care va
gestiona icircn continuare transmisia cu comutaţie de circuite
241 Caracteristicile sistemului GPRS
GPRS este un serviciu specificat icircn faza 2+ de standardizare a GSM El este oferit prin
intermediul unei infrastructuri numită şi sistem sau reţea GPRS ce interoperează cu
infrastructura bdquoclasicărdquo GSM
GPRS se icircncadrează icircn orientarea generală a ETSI de a asigura prin aza 2+ o platformă
ce va putea fi utilizată ulterior icircn reţele de generaţia a treia Astfel el este onsiderat
actualmente soluţia de bază pentru transmiterea de date icircn UMTS Fiind un standard SM
GPRS păstrează evident şi compatibilitatea cu sistemul părinte fiind practic o extensie a
acestuia pentru transmisii de date la debite mai mari GPRS reprezintă la ora actuală cel mai
reprezentativ sistem de generaţie intermediară (25G)
Dacă HSCSD ar putea fi considerat o ajustare fină a GSM GPRS reprezintă cu
siguranţă un salt tehnologic semnificativ deoarece marchează trecerea de la comutaţia de
circuite la cea de pachete Schimbarea tipului de comutaţie se referă icircn acest moment (atacirct la
25G cacirct şi icircn 3G) doar la transmiterea datelor vocea rămacircnacircnd icircn continuare comutată prin
MSC Datorită eternei insuficienţe a resurselor radio este probabil ca icircntr-o fază nu prea
icircndepărtată de dezvoltare a UMTS şi de ce nu chiar a GPRS să fie utilizată comutaţia de
pachete şi pentru serviciile de timp real vocale sau non-vocale
Icircn concluzie GPRS reprezintă o infrastructura ce permite transmiterea datelor pe baza
comutaţiei de pachete icircntr-o reţea GSM
19
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Pentru a putea oferi debite de date mai ridicate icircn GPRS se urmăreşte utilizarea cacirct
mai eficientă a resurselor radio Pentru aceasta se preia de la HSCSD ideea operării multislot
posibilitatea de a proteja mai puţin informaţia utilă pe interfaţa radio şi alocarea asimetrică
uplink downlink Icircn ciuda acestor asemănări icircnlocuirea comutaţiei de circuite cu cea de
pachete face din GPRS un sistem complet diferit de HSCSD Aceasta atacirct din punct de vedere
al utilizatorului care constată un timp de conectare practic nul şi rate de transfer mai bune
dar şi din punct de vedere al operatorului care efectuează o investiţie incomparabil mai mare
răsplătită printr-o mai eficientă utilizare a interfeţei radio cu tot ceea ce rezultă de aici (mai
mulţi clienţi mai multe servicii aplicaţii diverse)
Rezumacircnd icircn GPRS este implementat un set de soluţii tehnologice ce au ca scop
principal creşterea eficienţei utilizării interfeţei radio Aceasta derivă atacirct din experienţa
sistemelor anterioare cacirct şi mai ales din operarea icircn modul pachet a datelor ce se transmit
Soluţiile utilizate sunt
creşterea ratei de transmisie a datelor prin reducerea codării canalului (sunt definite
şi pot
fi utilizate 4 scheme de codare 905kbps 134 kbps 156 kbps 214kbps)
creşterea ratei de transmisie prin operare multislot ( pacircnă la 8 sloturi temporale per
utilizator)
creşterea eficienţei utilizării resurselor radio prin multiplexarea mai multor
utilizatori pe acelaşi canal fizic (posibila datorită transmisiei de pachete maximum 8
utilizatori pe slot temporal)
creşterea eficienţei utilizării resurselor radio prin alocare asimetrică uplinkdownlink
creşterea eficienţei utilizării resurselor radio prin alocarea dinamică a canalelor icircntre
servicii comutate icircn mod circuit respectiv pachet
Cacircnd un icircntreg cadru TDMA este alocat unui utilizator cu schema de protecţie minimă
(practic fără corecţie de erori) rezultă rata utilă instantanee maximă posibilă icircn GPRS
(8x214 kbps=1712 kbps)
242 Comutaţie de circuite şi comutaţie de pachete
20
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comutaţia este o tehnică esenţială icircn reţelele de comunicaţii Fără ea fiecare
echipament terminal ar trebui conectat printr-o cale directă cu fir sau fără la toate celelalte
echipamente terminale din reţea Principalele metode de comutaţie sunt
comutaţia de circuite
comutaţia de mesaje
comutaţia de pachete
Comutaţia de circuite
Aceasta presupune realizarea icircntre emiţător şi receptor a unei căi fizice de comutaţie
dedicate numită circuit Icircntreaga comunicaţie se desfăşoară icircn trei etape
stabilirea conexiunii (sau deschiderea circuitului)
transferul de informaţii
eliberarea conexiunii (circuitului)
Este de remarcat faptul că stabilitatea fizică a caii de comunicaţie are loc icircnainte de
icircnceperea transmisiunii propriu-zise Aceasta poate conduce la durate semnificative ale
timpului de conectare
Un dezavantaj notoriu al acestei tehnici este alocarea fixă a resurselor de comunicaţie
necesare pe durata conexiunii indiferent dacă la un moment sau altul mediul de transmisie
este folosit total parţial sau deloc
Pe de altă parte avantajele comutaţiei de circuite provin tocmai din această alocare fixă de
resurse care permite
asigurarea unei icircntacircrzieri constante şi minime
garantarea unui debit util corespunzător mediului de comunicaţie şi serviciului utilizat
Toate acestea facilitează oferirea serviciilor de timp real (telefonie videofonie alte
transmisiuni video) Exemplul tipic de reţea cu comutaţie de circuite este reţea telefonică
publică comutată (PSTN) Reţeaua GSM este de asemenea o reţea cu comutaţie de circuite
Referindu-ne strict la interfaţa radio a reţelelor fără fir etapa de stabilire a conexiunii
presupune alocarea unui canal radio (sau a mai multora icircn cazul HSCSD) unei staţii mobile
(MS) Acest canal rămacircne icircn posesia terminalului mobil pe toata durata conexiunii chiar dacă
transferul de date este discontinuu (icircn rafale) sau chiar icircncetează cu desăvacircrşire (de exemplu
21
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cacircnd utilizatorul citeşte cu atenţie cinci minute o pagină WEB după care lămurit pe deplin
icircntrerupe legătura) Ca o particularizare binecunoscută a reţelelor cu comutaţie de circuite
trebuie menţionat că utilizatorul trebuie să plătească pentru icircntreaga durată a conexiunii chiar
dacă a fost risipitor şi nu a folosit resursa ce i-a fost alocată
Comutaţia de mesaje
Este o tehnică ce nu stabileşte apriori o cale de transmisiune icircntre emiţător şi receptor
Informaţia ce urmează a fi transmisă formează o entitate bine precizată numita mesaj
Mesajele sunt complet independente unele faţă de altele şi pot avea lungimi variabile deşi
structura (formatul) lor poate fi prestabilit Emiţătorul trebuie sa ataşeze mesajului adresa
destinatarului decizia cu privire la ruta pe care o va urma mesajul fiind de competenţa
fiecărui comutator (router) prin care trece Fiecare comutator va memora mesajul după care icircl
va transmite pe ieşirea selectată de el Principala problemă a comutaţiei de mesaje este dată de
dimensiunea mare a mesajelor Din această cauză comutatoarele de mesaje au nevoie de o
capacitate de stocare uriaşă iar icircntacircrzierea icircn noduri poate deveni inacceptabilă din cauza
monopolizării ieşirilor de către mesajele lungi Exemplul tipic de reţea cu comutaţie de
mesaje este reţeaua telex
Comutaţia de pachete
Rezolvă o mare parte din dezavantajele comutaţiei de mesaje stabilind o lungime
maximă a entităţii informaţionale care circulă prin reţea numită pachet Pachetele sunt icircn
general rezultatul divizării mesajelor icircn blocuri de lungime mică Datorită acestui fapt spre
deosebire de mesaje pachetele nu sunt independente O recepţie corespunzătoare implică
refacerea mesajului prin ordonarea pachetelor după logica folosită la emisie Pentru aceasta
exista două posibilităţi apropiate conceptual de comutaţia de mesaje respectiv de comutaţia
de circuite
A Comutaţia de pachete fără conexiune (sau neorientată pe conexiune)
Icircn cazul comutaţiei de pachete fără conexiune pachetele (numite şi datagrame) se transmit
independent icircn cel mai pur spirit al comutaţiei de mesaje urmacircnd rute posibil diferite
Sosirea lor la destinaţie poate avea loc icircntr-o ordine aleatoare ceea ce necesită reordonarea lor
de către receptor Refacerea succesiunii corecte a pachetelor se bazează pe informaţia
22
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
suplimentară din fiecare pachet privitoare la mesajul din care face parte şi locul pe care icircl
ocupa icircn el Exemplul tipic de reţea care utilizează comutaţia de pachete este internetul
BComutaţia de pachete orientată pe conexiune (sau circuit virtual)
Icircn cazul comutaţiei de pachete orientată pe conexiune (sau circuit virtual) comunicarea
icircntre terminale presupune stabilirea unei căi anume pe care va circula fluxul informaţional
dintre acestea similar cu comutaţia de circuite Spre deosebire de aceasta nu este vorba de
dedicarea unui circuit fizic comunicării respective ci de configurarea unui circuit logic
numit circuit virtual Aceasta icircnseamnă că toate pachetele vor urma aceeaşi cale prin reţea
fără a dedica suportul fizic comunicaţiei respective Pachetele altor utilizatori vor putea folosi
foarte bine segmente din calea respectivă sau chiar icircntreaga cale La stabilirea circuitului
virtual fiecare comutator (router) trebuie să memoreze icircn tabela de dirijare care este
succesorul său icircn respectivul circuit virtual Astfel spre deosebire de comutaţia de pachete
fără conexiune după stabilirea circuitului virtual comutatorul nu mai trebuie să decidă calea
fiecărui pachet Avacircnd memorat nodul succesor icircn fiecare dintre circuitele virtuale icircn care este
implicat comutatorul va identifica circuitul asociat pachetului şi icircl va transmite pe acesta pe
linia de ieşire corespunzătoare Tehnica circuitului virtual garantează livrarea icircn ordine a
pachetelor la destinaţie Exemple marcante de reţele ce utilizează comutaţia de pachete de tip
circuit virtual sunt X25 şi ATM
Marele avantaj al comutaţiei de pachete este utilizarea eficientă a resurselor de
transmisiune Deoarece acestea nu sunt dedicate ele pot fi folosite după necesităţi pentru a
transmite pachete provenind de la utilizatori diferiţi Din acest motiv comutaţia de pachete
este extrem de avantajoasă icircn cazul unei infrastructuri cu resurse de transmisiune limitate
cum este şi cazul reţelelor fără fir
Un dezavantaj important al comutaţiei de pachete este dat de gestionarea comutatoarelor
(routerelor) icircn cazul unui trafic crescut la intrare Pierderea pachetelor garantarea unei
icircntacircrzieri maxime şi a unui debit utilizator constant sunt problemele spinoase ale comutaţiei
de pachete Ele reprezintă obstacole icircn special icircn calea oferirii serviciilor de timp real cum ar
fi telefonia
Icircn schimb icircn cazul transmisiilor de date avantajul bunei administrări a resurselor
prevalează De exemplu icircn cazul particular al interfeţei radio GSM cacircnd o staţie mobilă (MS)
generează un pachet de date reţeaua icircl va transmite pe un canal radio disponibil icircn acel
moment Următorul pachet de pe acel canal poate să aparţină aceleiaşi MS dacă are ceva de
23
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
transmis sau dacă nu alteia Icircn acest mod atacircta timp cacirct cineva are ceva de transmis
canalele radio nu sunt blocate inutil Lucrul icircn mod pachet are o eficienţă cu totul deosebită icircn
cazul unui trafic de date icircn rafale (data bursts)
Aşadar pentru un sistem GSM bazat esenţialmente pe comutaţia de circuite este
extrem de utilă alocarea resurselor neutilizate de către serviciile vocale pentru servicii mai
puţin prioritare Atacirct HSCSD cacirct şi GPRS icircşi propun acest lucru Serviciile cele mai potrivite
pentru valorificarea resurselor rămase (preferabil printr-un mecanism de alocare dinamică)
sunt tocmai cele care implică un trafic de date icircn rafale fără pretenţii de timp real Diferenţa
fundamentală icircntre HSCSD şi GPRS este că acesta din urmă valorifică aceste resurse icircntr-un
mod mult mai eficient deoarece utilizează comutaţia de pachete Icircn plus costul serviciilor
oferite este mai atractiv deoarece utilizatorul plăteşte volumul de date transferat Practic dacă
doreşte utilizatorul poate fi sbquoconectatrsquo la reţeaua de date icircn permanenţă fiind taxat doar
pentru timpul icircn care efectiv utilizează resursele reţelei adică pentru pachetele de date
recepţionate respectiv transmise
243 Servicii GPRS
Dintre aplicaţiile cele mai potrivite pentru GPRS se pot aminti mesageria de orice tip
difuzare şi distribuţie multiplă telemetrie jocuri navigare de mică anvergură pe reţeaua
internet Icircn general orice tip de aplicaţii ce necesită comunicaţii maşină - maşină la debite
mici şi medii sunt adecvate dezvoltării icircn mediul GPRS
Ca şi icircn reţeaua GSM reţelele GPRS pot oferi două categorii de servicii de
telecomunicaţii
servicii de bază
servicii suplimentare
Serviciile de bază GPRS
Acestea sunt icircn principal servicii suport (bearer services) de transport care realizează
transmiterea datelor cu comutaţie de pachete icircntre două interfeţe şi din teleservicii Similar
situaţiei din GSM aceste interfeţe sunt
interfaţa dintre echipamentul terminal de date (de exemplu calculator) şi terminalul
mobil GPRS
24
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
interfaţa dintre reţeaua GPRS şi reţeaua de date sau echipamentul terminal cu care
comunică Aceasta interfaţă este situată icircntr-un nod poartă (gateway) GPRS similar
situaţiei din GSM unde locul ei este GMSC
Teleserviciul fundamental oferit de GPRS este cel de transport de date şi este detaliat
mai jos Un alt teleserviciu oferit de GPRS este transmisia şi recepţia de mesaje scurte (SMS)
Astfel pe de o parte capacitatea de transmisie a mesajelor scurte va creşte iar pe de alta
parte reţeaua de semnalizări pe care se transmit icircn GSM aceste mesaje nu va mai fi icircncărcată
şi cu mesaje scurte ce vin sau pleacă de la la terminalele mobile GPRS
Servicii GPRS de transport
Sunt definite doua categorii de teleservicii de transport
servicii punct-la-punct (PTP ndashPoint-to-Point)
servicii punct la multipunct (PTM-Point-to-Multipoint)
A Serviciul PTP
Serviciul punct la punct (PTP) [GSM 0260] permite transmiterea de pachete de date
icircntre doi utilizatori Este implementat icircn GPRS faza 1 Abonatul care a iniţiat serviciul se
numeşte solicitant (service requester) Partenerul său se numeşte receptor al serviciului
(service receiver)
Serviciul PTP poate fi solicitat fie de la terminalul mobil GPRS fie de la un
echipament situat icircntr-o reţea de date fixă (IP X25) Serviciul PTP poate fi oferit de
asemenea icircntre doi utilizatori mobili GPRS
Serviciul punct-la punct poate fi la racircndul sau de două tipuri
PTP fără conexiune (PTP-CLNS ndash PTP Connectinnless Network Service)
PTP orientat pe conexiune (PTP-CONS ndashPTP Connection Orientated Network
Network Service)
PTP-CLNS este un serviciu de tip datagramă ce utilizează comutaţia de pachete fără
conexiune Este util icircn cazul aplicaţiilor ce generează trafic icircn rafale şi are că scop asigurarea
interoperării cu reţele IP
PTP-CONS este un serviciu de tip circuit virtual ce utilizează comutaţia de pachete
orientata pe conexiune Icircntre cei doi utilizatori se stabileşte un circuit virtual pentru o perioadă
25
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ce poate varia de la cacircteva secunde la ore Este util atacirct pentru aplicaţii ce generează trafic icircn
rafale cacirct şi pentru aplicaţiile interactive Are că scop asigurarea interoperării cu reţele X25 şi
derularea peste GPRS a aplicaţiilor bazate pe protocolul OSI CONS(Connection Orientated
Network Protocol)
O reţea GPRS trebuie să asigure menţinerea circuitului virtual la trecerea dintr-o
celulă icircn alta dar numai icircn interiorul aceleiaşi reţele GPRS-PLMN La trecerea terminalului
mobil icircntr-o altă reţea sau icircn cazul căderii legăturii radio circuitul virtual va fi eliberat Pentru
ambele tipuri de servicii pe interfaţa radio se poate opera fie cu confirmare fie fără
confirmare a transportului de date
B Serviciul PTM
Serviciul punct la multipunct (PTM) permite transmiterea de pachete de date de la un
utilizator către mai mulţi utilizatori El este implementat icircn faza a doua a GPRS O
comunicaţie PTM se stabileşte icircntre un furnizor de servicii (ce poate fi situat icircn afară reţelei
GSM) şi un grup de terminale GPRS Şi serviciul PTM este un serviciu ce se prezintă icircn două
variante
PTMndash multidistribuţie (PTM Multicast)
PTM- grup (PTM-G--PTMGroup)
Serviciul de transport PTM-M permite transmiterea pachetelor de date icircntr-o arie
geografică dată (celulă grup de celule) fără confirmare Receptorii serviciului sunt fie toţi
abonaţii care se găsesc icircn acea zonă fie un grup icircnchis de utilizatori
Icircn cazul PTM-G receptorul serviciului este un grup predefinit de utilizatori Pachetele de
date vor fi trimise către toţi membrii grupului indiferent de aria geografică unde se găsesc
aceştia Este posibilă şi transmiterea doar către acei membri care se găsesc icircn anumite zone
geografice Transmisia poate fi şi cu confirmare
Serviciile suplimentare
Printre serviciile suplimentare avute icircn vedere icircntr-un prim stadiu se numără
redirecţionarea necondiţionată a apelurilor redirecţionarea cacircnd abonatul nu este accesibil şi
definirea de grupuri icircnchise de utilizatori In afară de aceste servicii recomandarea GSM
0260 descrie posibilitatea oferirii de servicii adiţionale cum sunt accesarea bazelor de date
servicii de mesagerie validări de cărţi de credit servicii de monitorizare electronică tranzacţii
electronice etc
26
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
244 Arhitectura GPRS
GPRS este o soluţie pentru operatori deoarece nu necesită modificări substanţiale icircn
reţeaua GSM Aşa cum se observă icircn figura 72 reţeaua nucleu a GPRS operează icircn paralel
cu GSM-NSS
Figura 23 Arhitectura reţelei GPRS
25 LabWindowsCVI
La dipecer am considerat un calculator desktop sau laptop pe care va rula o aplicaţie
de monitorizare a datelor măsurate implementată icircn LabWindowsCVI
LabWindowsCVI este o platformă pentru dezvoltare de software cu orientare pe
aplicaţii de instrumentaţie După cum se deduce din denumirea sa (CVI ndash C for Virtual
Instrumentation) limbajul acceptat este ANSI C cu extensii specifice CVI ne pune la
dispoziţie un mediu interactiv de dezvoltare a unor aplicaţii pentru sistemul de operare
Windows Icircmbină deci avantajele programării de tip vizual cu avantajele simplităţii şi
flexibilităţii limbajului C Deşi a fost creat special pentru aplicaţii de instrumentaţie şi control
27
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
multiplele lui facilităţi icircl fac capabil să suporte şi dezvoltarea unor aplicaţii de mărime medie
care să fie de altă factură Fiecare funcţie de bibliotecă din cadrul acestui mediu are o interfaţă
specializată numită panoul funcţiei (function panel) care permite
bull Help on-line
bull Selectare şi declarare de variabile sau constante necesare
bull Execuţie interactivă
bull Inserarea funcţiei editate icircntr-un text sursă
Mediul este extrem de flexibil permiţacircnd interfaţarea bidirecţională cu alte compilatoare de
C sau C++ De asemenea se pot folosi şi DLL-uri
Puterea mediului LabWindowsCVI este dată de bibliotecile puse la dispoziţia
programatorului acestea conţinacircnd funcţii pentru implementarea diverselor faze care conduc
la o aplicaţie din domeniul achiziţiei de date sau a controlului automat
Pentru achiziţia de date există următoarele biblioteci specializate
bull de instrumente
bull pentru interfaţa GPIBGPIB 4882 (General Purpose Interface Bus)
bull pentru achiziţie de date
bull pentru operaţii IO icircn cazul achiziţiei de date
bull pentru interfaţa serială RS232
bull pentru sistemul VXI
Biblioteci specializate pentru analiza datelor
bull pentru IO
bull pentru formatarea specială
bull pentru analiză
bull pentru analiză avansată
Biblioteci specializate pentru vizualizare date
bull pentru crearea unei interfeţe utilizator de tip vizual
Biblioteci specializate pentru lucrul icircn reţea şi comunicarea icircntre diverse aplicaţii
bull pentru DDE (Dynamic Data Exchange)
bull pentru TCP (Transmision Control Protocol)
bull pentru sistemul X de sub Unix
Icircn afară de acestea mai există o bibliotecă specială numită biblioteca de instrumente
care conţine drivere şi sursele lor pentru osciloscoape multimetre şi generatoare de funcţii
De asemenea există posibilitatea creării unui instrument propriu Biblioteca pentru interfaţa
28
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cu utilizatorul conţine funcţiile necesare creării unui GUI (Graphical User Interface =
Interfaţă grafică cu utilizatorul) după necesităţi
Structura generică a unei aplicaţii dezvoltate sub CVI
Un proiect complet pentru una din clasele de aplicaţii specifice mediului CVI are
următoarele componente generice
bull interfaţa cu utilizatorul
bull partea de control a aplicaţiei
bull partea specializată pentru achiziţia datelor
bull partea specializată icircn analiza respectivelor date
Mai jos prezentăm o schemă generică a aplicaţiilor CVI
Figura 24
Tipuri de fişiere folosite icircn cadrul CVI
PRJ se referă la fişiere de tip proiect
UIR se referă la fişiere care conţin descrierea unei interfeţe grafice cu utilizatorul
C fişiere sursă
H fişiere header
FP fişiere care reţin descrierea unui instrument
LIB fişiere bibliotecă
DLL fişiere link-editate pentru apel dinamic
OBJ fişiere obiect
29
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a unora dintre meniurile şi ferestrele mediului de dezvoltare CVI
Fereastra proiect
Prezentăm mai jos doar informaţiile suplimentare faţă de o fereastră proiect standard
Pe lacircngă datele curente despre fiecare fişier inclus icircn proiect acesta mai are precizat şi unul
sau mai mulţi din următorii indici
- I indică faptul că respectivul fişier conţine descrierea unui driver de instrument
- S faptul că s-au făcut modificări icircn fişierul respectiv şi deci trebuie salvat
- C indică obligativitatea compilării respectivului fişier icircnainte de rularea aplicaţiei
- indică faptul că fişierul este deschis icircntr-o fereastră de editare
- indică ca acest fişier nu este deschis
Aplicaţii consolă
Pentru aplicaţiile tip consolă clasice C unde se folosesc pentru IO funcţiile scanf şi
printf vizualizarea ieşirii icircn mod text a acestora se va face icircntr-o fereastră specială numită
ldquoStandard InputOutput Windowrdquo
Observaţie Dacă se va programa icircn acest mod trebuie activată opţiunea ldquoBring Standard
InputOtput to front whenever modifyrdquo din Environment ce aparţine meniului Options
Generatorul interactiv de aplicaţii
Butoanele directe ale editorului de interfeţe cu utilizatorul
folosit la selectare mutare şi dimensionare obiecte
utilizat pentru a modifica textul asociat cu obiectele din UIR folosind facilităţile de
etichetare
folosit pentru colorarea obiectelor Este suficientă o apăsare pe butonul din dreapta a
mouse-ului şi va colora automat obiectul selectat cu culoarea curentă
oferă facilităţi de operare Atunci cacircnd este activat evenimentele vor fi afişate icircn partea
dreaptă a barei de facilităţi
30
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a cacirctorva din meniurile mai importante ale generatorului
Menu Bars activează cutia de dialog care ne prezintă toate barele de meniu definite deja de
programator
Figura 25
Create apelează fereastra Edit Menu Bar pentru a crea o nouă bară de meniuri
Edit apelează fereastra Edit Menu Bar pentru a modifica o bară de meniuri existentă
Fereastra Edit Menu Bar(fig26) permite specificarea sau modificarea caracteristicilor
unei bare de meniuri icircn curs de creare sau care există deja
31
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 26
Menu Bar Constant Prefix este identificatorul intern al respectivei bare de meniuri Acesta
va fi folosit de funcţia LoadMenuBar pentru icircncărcarea icircn memorie a parametrilor care conţin
această bară Va fi definit automat icircn fişierul header din scheletul de aplicaţie
Item se referă la numele meniului curentsubmeniucomandă de meniu Dacă icircn faţa primei
litere a unui element din meniu se adaugă 2 ldquounderscorerdquo la execuţie acesta va putea fi
selectat prin combinaţia Alt+prima literă
Constant name este alipit la Menu Bar Constant Prefix pentru a se genera identificatorul
elementului curent Este folosit de funcţii ca GetMenuBarAttribute sau SetMenuBarAttribute
De asemenea acest identificator este returnat de GetUserEvent atunci cacircnd apare un
eveniment generat de o comandă a meniului
Callback Function Permite specificarea numelui unei funcţii de răspuns care va fi apelată
automat la activarea respectivului element Folosirea ei este opţională
32
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ModifierKeyShortcutKey se combină pentru a ataşa o cheie ldquohotrdquo pentru elementul
curent
buton ce permite coboracircrea icircn interiorul unei ierarhii de meniuri
buton ce permite urcarea icircn interiorul unei ierarhii de meniuri
Panouri
După cum am spus sunt echivalentul ferestrelor din programarea Windows Pentru a le crea
Create1048774Panel ne pune la dispoziţie un nou panou icircn cadrul UIR-ului curent Prin dublu
ldquoclickrdquo pe acesta se va intra in fereastra de editare a caracteristicilor panoului Această
fereastră este prezentată mai jos
Figura 27
La partea de Menu Bar se poate specifica o bară din cele deja create icircn cazul dezvoltării
respectivei interfeţe
Restul parametrilor au fost discutaţi anterior sau sunt cunoscuţi din programarea Windows
33
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Crearea controalelor
Exceptacircnd diferenţele care apar funcţie de destinaţia acestora există o serie de parametri
comuni fiecărui control pe care icircl creăm Mai jos prezentăm fereastra care apare de exemplu
la crearea unui control de tip numeric şi anume un buton
Figura 28
Se observă că identificatorul intern şi posibilitatea de ataşare a unei funcţii de răspuns
rămacircne De asemenea o serie de informaţii specifice părţii de etichetare Icircn plus apar
specificaţii privind modul de afişare a datelor şi limitele icircntre care acestea pot fi variate prin
intermediul acestui control
34
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
TAB ORDER
Fiecare control de pe un panou activ are o poziţie icircn ordinea de salt prin intermediul
unui tab Această ordine precizează care va fi următorul control ce va fi activat icircn cazul icircn
care utilizatorul apasă Tab sau Shift+Tab Implicit acestea sunt adăugate exact icircn ordinea
creării lor de către programator Numai că nu icircntotdeauna aceasta este ordinea de salt dorită a
fi activă la terminarea aplicaţiei Icircn aceste condiţii secvenţa Edit1048774Tab Order ne va activa un
panou specializat pentru aceasta
Figura 29
noua formă de cursor activă icircn interiorul ferestrei Prin apăsarea pe un control oarecare i
se
poate modifica ordinea de activare
specifică faptul că se acceptă noua ordine de apelare
se iese cu păstrarea vechii ordini
Find UIR Objects
O altă facilitate a editorului este Find UIR Objects care aparţine meniului View Icircn
cadrul unor proiecte mari se dovedeşte a fi extrem de utilă
35
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 210
După cum se observă ne permite căutarea după dorinţă a unui nume icircn diverse categorii de
obiecte ale interfeţei cu utilizatorul
GENERATE
Este meniul folosit pentru generarea fie a icircntregului cod schelet fie numai a codului
corespunzător unui obiect proaspăt introdus icircntr-un UIR
Secvenţa Code1048774Generate1048774AllCode va genera codul schelet pentru aplicaţie Acesta va
conţine şi un ldquoswitchrdquo pentru tratarea evenimentelor Alegerea evenimentelor care vor fi
automat introduse se face din Code1048774Preferences
MENIUL ARRANGE
Icircncă de la primele aplicaţii vom observa că una din operaţiile mari consumatoare de
timp este aranjarea controalelor icircn panou după specificarea caracteristicilor acestora Pentru a
evita acest lucru CVI a fost prevăzut cu o serie de facilităţi de aranjare automată pe care le
vom prezenta mai jos
Figura 211
Top Edges asigură spaţiere verticală icircntre partea superioară a controalelor Cel mai de
sus şi cel mai de jos control sunt considerate puncte de referinţă
36
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Vertical Centers asigură spaţiere verticală icircntre centrele controalelor Cel mai de sus
şi cel mai de jos control sunt considerate puncte de referinţă
Bottom Edges asigură spaţiere verticală icircntre partea inferioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Vertical Gap asigură spaţiere verticală icircntre partea superioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Left Edges setează spaţii orizontale egale icircntre marginile din stacircnga ale controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Centers setează spaţii orizontale egale icircntre centrele controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Right Edges setează spaţii orizontale egale icircntre marginile din dreapta ale
controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Gap spaţiere orizontală icircntre controale Cel mai de sus şi cel mai de jos
control sunt considerate puncte de referinţă
Horizontal Compress minimizează spaţiile pe orizontală dintre controale şi elimină
orice spaţiu dintre ele
Distribute Vertical Centers
Comanda Distribute realizează la apel ultima opţiune selectată din lista prezentată
mai sus
37
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
215 Etaloane
Etalonul este un sistem fizic care constituie un mijloc de măsurare (măsura instrument
sau aparat de măsurat) ce serveste la păstrarea şi reproducerea unităţilor de măsura cu
precizia metrologică corespunzatoare stadiului la care s-au dezvoltat tehnicile de măsurare Icircn
afara acestor două roluri prin care se ldquodefineşterdquo o unitate de măsura etaloanele mai sunt
utilizate icircn operaţiile de calibrare şi icircn icircnsuşi procesul de măsurare (de icircnaltă precizie) ca
elemente de referinţă precum şi icircn construcţia unor aparate (dispozitive) utilizate icircn alte
scopuri decacirct mşsurarea propriu-zisa (ca de exemplu dispozitive de automatizare
stabilizatoare electronice generatoare de semnal etc)
Calibrarea icircnseamnă ndash icircn metrologie ndash compararea unui aparat de măsurat cu un
etalon icircn scopul gradării sau ajustării verificării sau etalonării aparatului de masurat
Elementul de referinţă este un etalon care asigură (ldquofurnizeazardquo) o mărime fizică anume cu
o valoare bine cunoscută (cu o precizie metrologică corespunzatoare scopului urmarit)
Un etalon trebuie să fie invariabil icircn timp şi icircn spaţiu să poata fi folosit usor icircn tehnică
şi să poată fi reconstituit oricacircnd Unicitatea şi conformitatea măsurărilor icircn orice loc şi la
orice moment impun realizarea unui sistem de etaloane care să
asigure
- generarea principalelor unităti de măsură icircn conformitate cu definiţiile lor din SI
(adică ldquomaterializarea ldquo definiţiilor prin experimente adecvate)
- menţinerea (conservarea) acestor unităţi de măsură constante icircn timp icircn toate
laboratoarele metrologice pe plan mondial
- corelarea icircntre ele a unităţilor de măsură trecerea la alte unitati derivate (etaloane de
derivare) şi extinderea limitelor de măsurare cu precizia necesară cum ar fi trecerea la
multipli şi submultipli ai unităţilor de măsură (etaloane de raport)
Aceste trei operaţii fundamentale icircn activitatea metrologică se efectuează icircn
mod corespunzator cu urmatoarele trei categorii de etaloane
- etaloane de definiţie (adica etaloanele prin care se generează principalele unităţi de
măsură şi icircn principal cele fundamentale aşa cum este ndash de exemplu ndash determinarea absolută
a amperului cu ajutorul balanţei de curent)
- etaloane de conservare (adică etaloanele de menţinere a unităţii de măsură cu o mare
stabilitate icircn timp şi faţă de influenţele exterioare de mediu)
- etaloanele de transfer (adica cele care asigura etalonarea tuturor tipurilor
13
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
de aparate de masurat icircn intervale largi de valori ale masurandului pentru marimi constante
sau variabile icircn timp) asa cum sunt etaloanele de raport etaloanele de derivare si etaloanele
de transfer (curent continuu ndash curent alternativ) prin compararea efectelor (termice
electrodinamice etc) ale semnalelor de curent sau tensiune produse asupra unui acelaşi
element sensibil
22 Conceptul de M2M
M2M este o abreviere de la Machine-to-Machine deşi tot mai des se foloseşte şi
pentru identificarea tehnologiilor Man-to-Machine Machine-to-Man Machine-to-Mobile sau
Mobile-to-Machine Pe scurt este vorba de un serviciu ce permite comunicarea dintre
echipamentele aflate la distanţă şi aplicaţiile la care sunt conectate De fapt M2M este o
evoluţie comercială a tradiţionalelor sisteme de control al echipamentelor din domeniul
industrial soluţie aplicată cu succes pentru prima dată de NASA Adaptată nevoilor
companiilor (un rol important l-a jucat compania France Telecom) M2M permite companiilor
sa administreze mai uşor echipamentele aflate la distanţă si să le integreze cu procesele
interne
Zona soluţiilor M2M este cotată ca fiind una dintre cele mai promiţătoare in
următorii ani ca urmare a creşterii nevoii de automatizare a proceselor şi a posibilităţii de a
lua decizii intr-un timp cat mai scurt posibil ceea ce va genera proiecte majore Aplicaţiile
M2M permit prin monitorizarea si controlul maşinilor şi proceselor de la distanţă reducerea
costurilor optimizarea proceselor si imbunătăţirea nivelului serviciilor oferite clienţilor
permitand economii de timp şi de personal
14
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
23 Limbajul Python
Icircn cadrul unei instalaţii de telemetrie modemurile deţin memorie şi processor propriu
motiv pentru care se numesc ldquointeligenterdquo Pe lacircngă memorie şi processor aceste modemuri
inteligente au şi un interpretor al unui limbaj de programare de nivel icircnalt Icircn cazul
medemurilor alese de mine acest limbaj este Python
Python este un limbaj de programare dinamic orientat pe obiect care poate fi folosit
pentru mai multe tipuri de dezvoltarea software Oferă un puternic suport pentru integrarea cu
diferite instrumente folosind librării standard de extensie şi poate fi invăţat in cacircteva zile
231 Tipuri de date
Sunt 3 grupuri de tipuri de date in Python
Scalari ndash care au sutipurile intreg intreg lung si sir de caractere
i = 1 li = 9999999999L s = Hello
Secvenţe care conţin un anumit număr de obiecte arbitrare intr-o ordine definită
L = [1 5 3 9 14]
Liste asociative care permit accesul la valori bazate pe chei Aceste chei pot fi arbitrare
dar sunt obiecte permanente De exemplu
D = b Python a 5 print D[a]
Afisează 5
Spre deosebire de Pascal C C++ sau Java Python este un limbaj tastat dinamic Astfel
următoarea secvenţă de cod este perfect valabilă icircn Python
a = 7 7 (integer)
a = str(2a) + bytes 7 bytes (string)
15
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Icircn Python variabilele nu sunt declarate icircn script ele apar doar atunci cand sunt folosite
232 Operatori
Icircn Python există următorii operatori
Operatori aritmetici
+ - ~ ltlt gtgt amp ^ |
Operatori relaţionali şi logici
is in lt lt= gt gt= == = not and or
Operatori de asignare
= += -= = = = = ltlt= gtgt= amp= ^= |=
Alţi operatori
( ) [ ] [] `` lambda
233 Comenzi compuse
Comenzile care aparţin aceluiaşi grup logic sunt deplasate spre dreapta cu acelaş
număr de spaţii albe
if a gt 0
b = 1
c = 2
De obicei fiecare comandă icircncepe pe o linie nouă
16
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
O instrucţiune se poate continua pe racircndul următor prin plasarea caracterului backslash
la sfacircrsitul randului Acest lucru nu este necesar dacă există paranteze deschise
my_list = [1
[abc 2]
-3+6j]
print my_list
234 Execuţii condiţionale
Python foloseşte if elif (nu elsif sau elseif) si else pentru a indica execuţia condiţională a
unei instrucţiuni
De exemplu
if a gt b
print a is greater than b
elif a lt b
print a is lower than b
else
print a equals b
Se poate folosi si interval prescurtate de testare
if 2 lt= a lt= 7
print a is in the interval [2 7]
235 Bucle
Buclele in Python sunt definite prin cuvintele cheie for şi while
Următorul exemplu foloseşte o buclă while pentru a colecta toate numerele intregi
cuprinse intre 0 si 99 intr-o listăacirc
numbers = [ ]
i = 0
while i lt 100
17
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
numbersappend(i)
i = i + 1
O buclă similar for arată in felul următor
numbers = [ ]
for i in range(100)
numbersappend(i)
Icircn loc de buclele explicite prezentate mai sus se poate folosi şi bucle implicite după
cum urmează
numbers = range(100)
range(100) generează o listă cu toate numerele intregi de la 0 la 100
24 General packet radio service(GPRS)
Comunicaţia intre modemuri ( RTU-uri ) şi dispecer se poate face prin mai mlte
mediu de transmisie
- Cablu telephonic
- Radio
- GSMGPRS
- Fibră Optică
Opţiunea pentru care am optat icircn partea de comunicaţie este GSMGPRS deoarece
asigură o cumunicaţie sigură şi oferă simplitate pentru priectant
GPRS introduce servicii de transport cu comutaţie de pachete pentru debite de la 14
kbps la maximum 170 kbps Practic GPRS este o reţea cu comutaţie de pachete de sine
stătătoare care se daugă la reţeaua GSM GPRS interoperează cu infrastructura GSM la
nivelul subsistemului staţiilor de bază BSS şi al bazelor de date din subsistemul reţea NSS
(HLR VLR AUC) GPRS preia traficul de date iar GSM traficul de voce care rămacircne
comutat prin MSC
Datele sunt transmise prin GPRS icircn pachete de lungimi fixe Fiecare pachet conţine
adresa destinaţie pentru a putea fi rutat de nodurile GPRS Modificarea pe interfaţa radio e
18
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
dată de introducerea codării adaptive a canalului Aceasta icircnseamnă că protecţia datelor
variază icircn timp icircn funcţie de starea canalului radio GPRS poate utiliza pentru o conexiune
de date de la fracţiuni de canale de trafic pacircnă la maximum 8 sloturi temporale (adică tot
cadrul TDMA) icircn funcţie de resursele disponibile
Capacitatea alocată unei conexiuni va varia icircn funcţie de icircncărcarea cu trafic de pe
frecvenţa respectivă precum şi de tipul traficului (vocedate) Este important că utilizacircnd
comutaţia de pachete o transmisie de date nu ocupă resursele reţelei decacirct atunci cacircnd sunt
date de transmis Cacircnd nu există pachete de transmis resursele de pe interfaţa radio pot fi
utilizate pentru alte transmisii de date sau pentru trafic cu comutaţie de circuite
GPRS are o reţea nucleu proprie formată prin interconectarea serverelor care
gestionează transmisia de pachete numite noduri suport GPRS (GSN- GPRS Suport Node)
Aceasta reţea operează icircn paralel cu subsistemul reţea şi comutaţie (NSS) al GSM care va
gestiona icircn continuare transmisia cu comutaţie de circuite
241 Caracteristicile sistemului GPRS
GPRS este un serviciu specificat icircn faza 2+ de standardizare a GSM El este oferit prin
intermediul unei infrastructuri numită şi sistem sau reţea GPRS ce interoperează cu
infrastructura bdquoclasicărdquo GSM
GPRS se icircncadrează icircn orientarea generală a ETSI de a asigura prin aza 2+ o platformă
ce va putea fi utilizată ulterior icircn reţele de generaţia a treia Astfel el este onsiderat
actualmente soluţia de bază pentru transmiterea de date icircn UMTS Fiind un standard SM
GPRS păstrează evident şi compatibilitatea cu sistemul părinte fiind practic o extensie a
acestuia pentru transmisii de date la debite mai mari GPRS reprezintă la ora actuală cel mai
reprezentativ sistem de generaţie intermediară (25G)
Dacă HSCSD ar putea fi considerat o ajustare fină a GSM GPRS reprezintă cu
siguranţă un salt tehnologic semnificativ deoarece marchează trecerea de la comutaţia de
circuite la cea de pachete Schimbarea tipului de comutaţie se referă icircn acest moment (atacirct la
25G cacirct şi icircn 3G) doar la transmiterea datelor vocea rămacircnacircnd icircn continuare comutată prin
MSC Datorită eternei insuficienţe a resurselor radio este probabil ca icircntr-o fază nu prea
icircndepărtată de dezvoltare a UMTS şi de ce nu chiar a GPRS să fie utilizată comutaţia de
pachete şi pentru serviciile de timp real vocale sau non-vocale
Icircn concluzie GPRS reprezintă o infrastructura ce permite transmiterea datelor pe baza
comutaţiei de pachete icircntr-o reţea GSM
19
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Pentru a putea oferi debite de date mai ridicate icircn GPRS se urmăreşte utilizarea cacirct
mai eficientă a resurselor radio Pentru aceasta se preia de la HSCSD ideea operării multislot
posibilitatea de a proteja mai puţin informaţia utilă pe interfaţa radio şi alocarea asimetrică
uplink downlink Icircn ciuda acestor asemănări icircnlocuirea comutaţiei de circuite cu cea de
pachete face din GPRS un sistem complet diferit de HSCSD Aceasta atacirct din punct de vedere
al utilizatorului care constată un timp de conectare practic nul şi rate de transfer mai bune
dar şi din punct de vedere al operatorului care efectuează o investiţie incomparabil mai mare
răsplătită printr-o mai eficientă utilizare a interfeţei radio cu tot ceea ce rezultă de aici (mai
mulţi clienţi mai multe servicii aplicaţii diverse)
Rezumacircnd icircn GPRS este implementat un set de soluţii tehnologice ce au ca scop
principal creşterea eficienţei utilizării interfeţei radio Aceasta derivă atacirct din experienţa
sistemelor anterioare cacirct şi mai ales din operarea icircn modul pachet a datelor ce se transmit
Soluţiile utilizate sunt
creşterea ratei de transmisie a datelor prin reducerea codării canalului (sunt definite
şi pot
fi utilizate 4 scheme de codare 905kbps 134 kbps 156 kbps 214kbps)
creşterea ratei de transmisie prin operare multislot ( pacircnă la 8 sloturi temporale per
utilizator)
creşterea eficienţei utilizării resurselor radio prin multiplexarea mai multor
utilizatori pe acelaşi canal fizic (posibila datorită transmisiei de pachete maximum 8
utilizatori pe slot temporal)
creşterea eficienţei utilizării resurselor radio prin alocare asimetrică uplinkdownlink
creşterea eficienţei utilizării resurselor radio prin alocarea dinamică a canalelor icircntre
servicii comutate icircn mod circuit respectiv pachet
Cacircnd un icircntreg cadru TDMA este alocat unui utilizator cu schema de protecţie minimă
(practic fără corecţie de erori) rezultă rata utilă instantanee maximă posibilă icircn GPRS
(8x214 kbps=1712 kbps)
242 Comutaţie de circuite şi comutaţie de pachete
20
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comutaţia este o tehnică esenţială icircn reţelele de comunicaţii Fără ea fiecare
echipament terminal ar trebui conectat printr-o cale directă cu fir sau fără la toate celelalte
echipamente terminale din reţea Principalele metode de comutaţie sunt
comutaţia de circuite
comutaţia de mesaje
comutaţia de pachete
Comutaţia de circuite
Aceasta presupune realizarea icircntre emiţător şi receptor a unei căi fizice de comutaţie
dedicate numită circuit Icircntreaga comunicaţie se desfăşoară icircn trei etape
stabilirea conexiunii (sau deschiderea circuitului)
transferul de informaţii
eliberarea conexiunii (circuitului)
Este de remarcat faptul că stabilitatea fizică a caii de comunicaţie are loc icircnainte de
icircnceperea transmisiunii propriu-zise Aceasta poate conduce la durate semnificative ale
timpului de conectare
Un dezavantaj notoriu al acestei tehnici este alocarea fixă a resurselor de comunicaţie
necesare pe durata conexiunii indiferent dacă la un moment sau altul mediul de transmisie
este folosit total parţial sau deloc
Pe de altă parte avantajele comutaţiei de circuite provin tocmai din această alocare fixă de
resurse care permite
asigurarea unei icircntacircrzieri constante şi minime
garantarea unui debit util corespunzător mediului de comunicaţie şi serviciului utilizat
Toate acestea facilitează oferirea serviciilor de timp real (telefonie videofonie alte
transmisiuni video) Exemplul tipic de reţea cu comutaţie de circuite este reţea telefonică
publică comutată (PSTN) Reţeaua GSM este de asemenea o reţea cu comutaţie de circuite
Referindu-ne strict la interfaţa radio a reţelelor fără fir etapa de stabilire a conexiunii
presupune alocarea unui canal radio (sau a mai multora icircn cazul HSCSD) unei staţii mobile
(MS) Acest canal rămacircne icircn posesia terminalului mobil pe toata durata conexiunii chiar dacă
transferul de date este discontinuu (icircn rafale) sau chiar icircncetează cu desăvacircrşire (de exemplu
21
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cacircnd utilizatorul citeşte cu atenţie cinci minute o pagină WEB după care lămurit pe deplin
icircntrerupe legătura) Ca o particularizare binecunoscută a reţelelor cu comutaţie de circuite
trebuie menţionat că utilizatorul trebuie să plătească pentru icircntreaga durată a conexiunii chiar
dacă a fost risipitor şi nu a folosit resursa ce i-a fost alocată
Comutaţia de mesaje
Este o tehnică ce nu stabileşte apriori o cale de transmisiune icircntre emiţător şi receptor
Informaţia ce urmează a fi transmisă formează o entitate bine precizată numita mesaj
Mesajele sunt complet independente unele faţă de altele şi pot avea lungimi variabile deşi
structura (formatul) lor poate fi prestabilit Emiţătorul trebuie sa ataşeze mesajului adresa
destinatarului decizia cu privire la ruta pe care o va urma mesajul fiind de competenţa
fiecărui comutator (router) prin care trece Fiecare comutator va memora mesajul după care icircl
va transmite pe ieşirea selectată de el Principala problemă a comutaţiei de mesaje este dată de
dimensiunea mare a mesajelor Din această cauză comutatoarele de mesaje au nevoie de o
capacitate de stocare uriaşă iar icircntacircrzierea icircn noduri poate deveni inacceptabilă din cauza
monopolizării ieşirilor de către mesajele lungi Exemplul tipic de reţea cu comutaţie de
mesaje este reţeaua telex
Comutaţia de pachete
Rezolvă o mare parte din dezavantajele comutaţiei de mesaje stabilind o lungime
maximă a entităţii informaţionale care circulă prin reţea numită pachet Pachetele sunt icircn
general rezultatul divizării mesajelor icircn blocuri de lungime mică Datorită acestui fapt spre
deosebire de mesaje pachetele nu sunt independente O recepţie corespunzătoare implică
refacerea mesajului prin ordonarea pachetelor după logica folosită la emisie Pentru aceasta
exista două posibilităţi apropiate conceptual de comutaţia de mesaje respectiv de comutaţia
de circuite
A Comutaţia de pachete fără conexiune (sau neorientată pe conexiune)
Icircn cazul comutaţiei de pachete fără conexiune pachetele (numite şi datagrame) se transmit
independent icircn cel mai pur spirit al comutaţiei de mesaje urmacircnd rute posibil diferite
Sosirea lor la destinaţie poate avea loc icircntr-o ordine aleatoare ceea ce necesită reordonarea lor
de către receptor Refacerea succesiunii corecte a pachetelor se bazează pe informaţia
22
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
suplimentară din fiecare pachet privitoare la mesajul din care face parte şi locul pe care icircl
ocupa icircn el Exemplul tipic de reţea care utilizează comutaţia de pachete este internetul
BComutaţia de pachete orientată pe conexiune (sau circuit virtual)
Icircn cazul comutaţiei de pachete orientată pe conexiune (sau circuit virtual) comunicarea
icircntre terminale presupune stabilirea unei căi anume pe care va circula fluxul informaţional
dintre acestea similar cu comutaţia de circuite Spre deosebire de aceasta nu este vorba de
dedicarea unui circuit fizic comunicării respective ci de configurarea unui circuit logic
numit circuit virtual Aceasta icircnseamnă că toate pachetele vor urma aceeaşi cale prin reţea
fără a dedica suportul fizic comunicaţiei respective Pachetele altor utilizatori vor putea folosi
foarte bine segmente din calea respectivă sau chiar icircntreaga cale La stabilirea circuitului
virtual fiecare comutator (router) trebuie să memoreze icircn tabela de dirijare care este
succesorul său icircn respectivul circuit virtual Astfel spre deosebire de comutaţia de pachete
fără conexiune după stabilirea circuitului virtual comutatorul nu mai trebuie să decidă calea
fiecărui pachet Avacircnd memorat nodul succesor icircn fiecare dintre circuitele virtuale icircn care este
implicat comutatorul va identifica circuitul asociat pachetului şi icircl va transmite pe acesta pe
linia de ieşire corespunzătoare Tehnica circuitului virtual garantează livrarea icircn ordine a
pachetelor la destinaţie Exemple marcante de reţele ce utilizează comutaţia de pachete de tip
circuit virtual sunt X25 şi ATM
Marele avantaj al comutaţiei de pachete este utilizarea eficientă a resurselor de
transmisiune Deoarece acestea nu sunt dedicate ele pot fi folosite după necesităţi pentru a
transmite pachete provenind de la utilizatori diferiţi Din acest motiv comutaţia de pachete
este extrem de avantajoasă icircn cazul unei infrastructuri cu resurse de transmisiune limitate
cum este şi cazul reţelelor fără fir
Un dezavantaj important al comutaţiei de pachete este dat de gestionarea comutatoarelor
(routerelor) icircn cazul unui trafic crescut la intrare Pierderea pachetelor garantarea unei
icircntacircrzieri maxime şi a unui debit utilizator constant sunt problemele spinoase ale comutaţiei
de pachete Ele reprezintă obstacole icircn special icircn calea oferirii serviciilor de timp real cum ar
fi telefonia
Icircn schimb icircn cazul transmisiilor de date avantajul bunei administrări a resurselor
prevalează De exemplu icircn cazul particular al interfeţei radio GSM cacircnd o staţie mobilă (MS)
generează un pachet de date reţeaua icircl va transmite pe un canal radio disponibil icircn acel
moment Următorul pachet de pe acel canal poate să aparţină aceleiaşi MS dacă are ceva de
23
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
transmis sau dacă nu alteia Icircn acest mod atacircta timp cacirct cineva are ceva de transmis
canalele radio nu sunt blocate inutil Lucrul icircn mod pachet are o eficienţă cu totul deosebită icircn
cazul unui trafic de date icircn rafale (data bursts)
Aşadar pentru un sistem GSM bazat esenţialmente pe comutaţia de circuite este
extrem de utilă alocarea resurselor neutilizate de către serviciile vocale pentru servicii mai
puţin prioritare Atacirct HSCSD cacirct şi GPRS icircşi propun acest lucru Serviciile cele mai potrivite
pentru valorificarea resurselor rămase (preferabil printr-un mecanism de alocare dinamică)
sunt tocmai cele care implică un trafic de date icircn rafale fără pretenţii de timp real Diferenţa
fundamentală icircntre HSCSD şi GPRS este că acesta din urmă valorifică aceste resurse icircntr-un
mod mult mai eficient deoarece utilizează comutaţia de pachete Icircn plus costul serviciilor
oferite este mai atractiv deoarece utilizatorul plăteşte volumul de date transferat Practic dacă
doreşte utilizatorul poate fi sbquoconectatrsquo la reţeaua de date icircn permanenţă fiind taxat doar
pentru timpul icircn care efectiv utilizează resursele reţelei adică pentru pachetele de date
recepţionate respectiv transmise
243 Servicii GPRS
Dintre aplicaţiile cele mai potrivite pentru GPRS se pot aminti mesageria de orice tip
difuzare şi distribuţie multiplă telemetrie jocuri navigare de mică anvergură pe reţeaua
internet Icircn general orice tip de aplicaţii ce necesită comunicaţii maşină - maşină la debite
mici şi medii sunt adecvate dezvoltării icircn mediul GPRS
Ca şi icircn reţeaua GSM reţelele GPRS pot oferi două categorii de servicii de
telecomunicaţii
servicii de bază
servicii suplimentare
Serviciile de bază GPRS
Acestea sunt icircn principal servicii suport (bearer services) de transport care realizează
transmiterea datelor cu comutaţie de pachete icircntre două interfeţe şi din teleservicii Similar
situaţiei din GSM aceste interfeţe sunt
interfaţa dintre echipamentul terminal de date (de exemplu calculator) şi terminalul
mobil GPRS
24
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
interfaţa dintre reţeaua GPRS şi reţeaua de date sau echipamentul terminal cu care
comunică Aceasta interfaţă este situată icircntr-un nod poartă (gateway) GPRS similar
situaţiei din GSM unde locul ei este GMSC
Teleserviciul fundamental oferit de GPRS este cel de transport de date şi este detaliat
mai jos Un alt teleserviciu oferit de GPRS este transmisia şi recepţia de mesaje scurte (SMS)
Astfel pe de o parte capacitatea de transmisie a mesajelor scurte va creşte iar pe de alta
parte reţeaua de semnalizări pe care se transmit icircn GSM aceste mesaje nu va mai fi icircncărcată
şi cu mesaje scurte ce vin sau pleacă de la la terminalele mobile GPRS
Servicii GPRS de transport
Sunt definite doua categorii de teleservicii de transport
servicii punct-la-punct (PTP ndashPoint-to-Point)
servicii punct la multipunct (PTM-Point-to-Multipoint)
A Serviciul PTP
Serviciul punct la punct (PTP) [GSM 0260] permite transmiterea de pachete de date
icircntre doi utilizatori Este implementat icircn GPRS faza 1 Abonatul care a iniţiat serviciul se
numeşte solicitant (service requester) Partenerul său se numeşte receptor al serviciului
(service receiver)
Serviciul PTP poate fi solicitat fie de la terminalul mobil GPRS fie de la un
echipament situat icircntr-o reţea de date fixă (IP X25) Serviciul PTP poate fi oferit de
asemenea icircntre doi utilizatori mobili GPRS
Serviciul punct-la punct poate fi la racircndul sau de două tipuri
PTP fără conexiune (PTP-CLNS ndash PTP Connectinnless Network Service)
PTP orientat pe conexiune (PTP-CONS ndashPTP Connection Orientated Network
Network Service)
PTP-CLNS este un serviciu de tip datagramă ce utilizează comutaţia de pachete fără
conexiune Este util icircn cazul aplicaţiilor ce generează trafic icircn rafale şi are că scop asigurarea
interoperării cu reţele IP
PTP-CONS este un serviciu de tip circuit virtual ce utilizează comutaţia de pachete
orientata pe conexiune Icircntre cei doi utilizatori se stabileşte un circuit virtual pentru o perioadă
25
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ce poate varia de la cacircteva secunde la ore Este util atacirct pentru aplicaţii ce generează trafic icircn
rafale cacirct şi pentru aplicaţiile interactive Are că scop asigurarea interoperării cu reţele X25 şi
derularea peste GPRS a aplicaţiilor bazate pe protocolul OSI CONS(Connection Orientated
Network Protocol)
O reţea GPRS trebuie să asigure menţinerea circuitului virtual la trecerea dintr-o
celulă icircn alta dar numai icircn interiorul aceleiaşi reţele GPRS-PLMN La trecerea terminalului
mobil icircntr-o altă reţea sau icircn cazul căderii legăturii radio circuitul virtual va fi eliberat Pentru
ambele tipuri de servicii pe interfaţa radio se poate opera fie cu confirmare fie fără
confirmare a transportului de date
B Serviciul PTM
Serviciul punct la multipunct (PTM) permite transmiterea de pachete de date de la un
utilizator către mai mulţi utilizatori El este implementat icircn faza a doua a GPRS O
comunicaţie PTM se stabileşte icircntre un furnizor de servicii (ce poate fi situat icircn afară reţelei
GSM) şi un grup de terminale GPRS Şi serviciul PTM este un serviciu ce se prezintă icircn două
variante
PTMndash multidistribuţie (PTM Multicast)
PTM- grup (PTM-G--PTMGroup)
Serviciul de transport PTM-M permite transmiterea pachetelor de date icircntr-o arie
geografică dată (celulă grup de celule) fără confirmare Receptorii serviciului sunt fie toţi
abonaţii care se găsesc icircn acea zonă fie un grup icircnchis de utilizatori
Icircn cazul PTM-G receptorul serviciului este un grup predefinit de utilizatori Pachetele de
date vor fi trimise către toţi membrii grupului indiferent de aria geografică unde se găsesc
aceştia Este posibilă şi transmiterea doar către acei membri care se găsesc icircn anumite zone
geografice Transmisia poate fi şi cu confirmare
Serviciile suplimentare
Printre serviciile suplimentare avute icircn vedere icircntr-un prim stadiu se numără
redirecţionarea necondiţionată a apelurilor redirecţionarea cacircnd abonatul nu este accesibil şi
definirea de grupuri icircnchise de utilizatori In afară de aceste servicii recomandarea GSM
0260 descrie posibilitatea oferirii de servicii adiţionale cum sunt accesarea bazelor de date
servicii de mesagerie validări de cărţi de credit servicii de monitorizare electronică tranzacţii
electronice etc
26
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
244 Arhitectura GPRS
GPRS este o soluţie pentru operatori deoarece nu necesită modificări substanţiale icircn
reţeaua GSM Aşa cum se observă icircn figura 72 reţeaua nucleu a GPRS operează icircn paralel
cu GSM-NSS
Figura 23 Arhitectura reţelei GPRS
25 LabWindowsCVI
La dipecer am considerat un calculator desktop sau laptop pe care va rula o aplicaţie
de monitorizare a datelor măsurate implementată icircn LabWindowsCVI
LabWindowsCVI este o platformă pentru dezvoltare de software cu orientare pe
aplicaţii de instrumentaţie După cum se deduce din denumirea sa (CVI ndash C for Virtual
Instrumentation) limbajul acceptat este ANSI C cu extensii specifice CVI ne pune la
dispoziţie un mediu interactiv de dezvoltare a unor aplicaţii pentru sistemul de operare
Windows Icircmbină deci avantajele programării de tip vizual cu avantajele simplităţii şi
flexibilităţii limbajului C Deşi a fost creat special pentru aplicaţii de instrumentaţie şi control
27
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
multiplele lui facilităţi icircl fac capabil să suporte şi dezvoltarea unor aplicaţii de mărime medie
care să fie de altă factură Fiecare funcţie de bibliotecă din cadrul acestui mediu are o interfaţă
specializată numită panoul funcţiei (function panel) care permite
bull Help on-line
bull Selectare şi declarare de variabile sau constante necesare
bull Execuţie interactivă
bull Inserarea funcţiei editate icircntr-un text sursă
Mediul este extrem de flexibil permiţacircnd interfaţarea bidirecţională cu alte compilatoare de
C sau C++ De asemenea se pot folosi şi DLL-uri
Puterea mediului LabWindowsCVI este dată de bibliotecile puse la dispoziţia
programatorului acestea conţinacircnd funcţii pentru implementarea diverselor faze care conduc
la o aplicaţie din domeniul achiziţiei de date sau a controlului automat
Pentru achiziţia de date există următoarele biblioteci specializate
bull de instrumente
bull pentru interfaţa GPIBGPIB 4882 (General Purpose Interface Bus)
bull pentru achiziţie de date
bull pentru operaţii IO icircn cazul achiziţiei de date
bull pentru interfaţa serială RS232
bull pentru sistemul VXI
Biblioteci specializate pentru analiza datelor
bull pentru IO
bull pentru formatarea specială
bull pentru analiză
bull pentru analiză avansată
Biblioteci specializate pentru vizualizare date
bull pentru crearea unei interfeţe utilizator de tip vizual
Biblioteci specializate pentru lucrul icircn reţea şi comunicarea icircntre diverse aplicaţii
bull pentru DDE (Dynamic Data Exchange)
bull pentru TCP (Transmision Control Protocol)
bull pentru sistemul X de sub Unix
Icircn afară de acestea mai există o bibliotecă specială numită biblioteca de instrumente
care conţine drivere şi sursele lor pentru osciloscoape multimetre şi generatoare de funcţii
De asemenea există posibilitatea creării unui instrument propriu Biblioteca pentru interfaţa
28
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cu utilizatorul conţine funcţiile necesare creării unui GUI (Graphical User Interface =
Interfaţă grafică cu utilizatorul) după necesităţi
Structura generică a unei aplicaţii dezvoltate sub CVI
Un proiect complet pentru una din clasele de aplicaţii specifice mediului CVI are
următoarele componente generice
bull interfaţa cu utilizatorul
bull partea de control a aplicaţiei
bull partea specializată pentru achiziţia datelor
bull partea specializată icircn analiza respectivelor date
Mai jos prezentăm o schemă generică a aplicaţiilor CVI
Figura 24
Tipuri de fişiere folosite icircn cadrul CVI
PRJ se referă la fişiere de tip proiect
UIR se referă la fişiere care conţin descrierea unei interfeţe grafice cu utilizatorul
C fişiere sursă
H fişiere header
FP fişiere care reţin descrierea unui instrument
LIB fişiere bibliotecă
DLL fişiere link-editate pentru apel dinamic
OBJ fişiere obiect
29
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a unora dintre meniurile şi ferestrele mediului de dezvoltare CVI
Fereastra proiect
Prezentăm mai jos doar informaţiile suplimentare faţă de o fereastră proiect standard
Pe lacircngă datele curente despre fiecare fişier inclus icircn proiect acesta mai are precizat şi unul
sau mai mulţi din următorii indici
- I indică faptul că respectivul fişier conţine descrierea unui driver de instrument
- S faptul că s-au făcut modificări icircn fişierul respectiv şi deci trebuie salvat
- C indică obligativitatea compilării respectivului fişier icircnainte de rularea aplicaţiei
- indică faptul că fişierul este deschis icircntr-o fereastră de editare
- indică ca acest fişier nu este deschis
Aplicaţii consolă
Pentru aplicaţiile tip consolă clasice C unde se folosesc pentru IO funcţiile scanf şi
printf vizualizarea ieşirii icircn mod text a acestora se va face icircntr-o fereastră specială numită
ldquoStandard InputOutput Windowrdquo
Observaţie Dacă se va programa icircn acest mod trebuie activată opţiunea ldquoBring Standard
InputOtput to front whenever modifyrdquo din Environment ce aparţine meniului Options
Generatorul interactiv de aplicaţii
Butoanele directe ale editorului de interfeţe cu utilizatorul
folosit la selectare mutare şi dimensionare obiecte
utilizat pentru a modifica textul asociat cu obiectele din UIR folosind facilităţile de
etichetare
folosit pentru colorarea obiectelor Este suficientă o apăsare pe butonul din dreapta a
mouse-ului şi va colora automat obiectul selectat cu culoarea curentă
oferă facilităţi de operare Atunci cacircnd este activat evenimentele vor fi afişate icircn partea
dreaptă a barei de facilităţi
30
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a cacirctorva din meniurile mai importante ale generatorului
Menu Bars activează cutia de dialog care ne prezintă toate barele de meniu definite deja de
programator
Figura 25
Create apelează fereastra Edit Menu Bar pentru a crea o nouă bară de meniuri
Edit apelează fereastra Edit Menu Bar pentru a modifica o bară de meniuri existentă
Fereastra Edit Menu Bar(fig26) permite specificarea sau modificarea caracteristicilor
unei bare de meniuri icircn curs de creare sau care există deja
31
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 26
Menu Bar Constant Prefix este identificatorul intern al respectivei bare de meniuri Acesta
va fi folosit de funcţia LoadMenuBar pentru icircncărcarea icircn memorie a parametrilor care conţin
această bară Va fi definit automat icircn fişierul header din scheletul de aplicaţie
Item se referă la numele meniului curentsubmeniucomandă de meniu Dacă icircn faţa primei
litere a unui element din meniu se adaugă 2 ldquounderscorerdquo la execuţie acesta va putea fi
selectat prin combinaţia Alt+prima literă
Constant name este alipit la Menu Bar Constant Prefix pentru a se genera identificatorul
elementului curent Este folosit de funcţii ca GetMenuBarAttribute sau SetMenuBarAttribute
De asemenea acest identificator este returnat de GetUserEvent atunci cacircnd apare un
eveniment generat de o comandă a meniului
Callback Function Permite specificarea numelui unei funcţii de răspuns care va fi apelată
automat la activarea respectivului element Folosirea ei este opţională
32
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ModifierKeyShortcutKey se combină pentru a ataşa o cheie ldquohotrdquo pentru elementul
curent
buton ce permite coboracircrea icircn interiorul unei ierarhii de meniuri
buton ce permite urcarea icircn interiorul unei ierarhii de meniuri
Panouri
După cum am spus sunt echivalentul ferestrelor din programarea Windows Pentru a le crea
Create1048774Panel ne pune la dispoziţie un nou panou icircn cadrul UIR-ului curent Prin dublu
ldquoclickrdquo pe acesta se va intra in fereastra de editare a caracteristicilor panoului Această
fereastră este prezentată mai jos
Figura 27
La partea de Menu Bar se poate specifica o bară din cele deja create icircn cazul dezvoltării
respectivei interfeţe
Restul parametrilor au fost discutaţi anterior sau sunt cunoscuţi din programarea Windows
33
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Crearea controalelor
Exceptacircnd diferenţele care apar funcţie de destinaţia acestora există o serie de parametri
comuni fiecărui control pe care icircl creăm Mai jos prezentăm fereastra care apare de exemplu
la crearea unui control de tip numeric şi anume un buton
Figura 28
Se observă că identificatorul intern şi posibilitatea de ataşare a unei funcţii de răspuns
rămacircne De asemenea o serie de informaţii specifice părţii de etichetare Icircn plus apar
specificaţii privind modul de afişare a datelor şi limitele icircntre care acestea pot fi variate prin
intermediul acestui control
34
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
TAB ORDER
Fiecare control de pe un panou activ are o poziţie icircn ordinea de salt prin intermediul
unui tab Această ordine precizează care va fi următorul control ce va fi activat icircn cazul icircn
care utilizatorul apasă Tab sau Shift+Tab Implicit acestea sunt adăugate exact icircn ordinea
creării lor de către programator Numai că nu icircntotdeauna aceasta este ordinea de salt dorită a
fi activă la terminarea aplicaţiei Icircn aceste condiţii secvenţa Edit1048774Tab Order ne va activa un
panou specializat pentru aceasta
Figura 29
noua formă de cursor activă icircn interiorul ferestrei Prin apăsarea pe un control oarecare i
se
poate modifica ordinea de activare
specifică faptul că se acceptă noua ordine de apelare
se iese cu păstrarea vechii ordini
Find UIR Objects
O altă facilitate a editorului este Find UIR Objects care aparţine meniului View Icircn
cadrul unor proiecte mari se dovedeşte a fi extrem de utilă
35
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 210
După cum se observă ne permite căutarea după dorinţă a unui nume icircn diverse categorii de
obiecte ale interfeţei cu utilizatorul
GENERATE
Este meniul folosit pentru generarea fie a icircntregului cod schelet fie numai a codului
corespunzător unui obiect proaspăt introdus icircntr-un UIR
Secvenţa Code1048774Generate1048774AllCode va genera codul schelet pentru aplicaţie Acesta va
conţine şi un ldquoswitchrdquo pentru tratarea evenimentelor Alegerea evenimentelor care vor fi
automat introduse se face din Code1048774Preferences
MENIUL ARRANGE
Icircncă de la primele aplicaţii vom observa că una din operaţiile mari consumatoare de
timp este aranjarea controalelor icircn panou după specificarea caracteristicilor acestora Pentru a
evita acest lucru CVI a fost prevăzut cu o serie de facilităţi de aranjare automată pe care le
vom prezenta mai jos
Figura 211
Top Edges asigură spaţiere verticală icircntre partea superioară a controalelor Cel mai de
sus şi cel mai de jos control sunt considerate puncte de referinţă
36
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Vertical Centers asigură spaţiere verticală icircntre centrele controalelor Cel mai de sus
şi cel mai de jos control sunt considerate puncte de referinţă
Bottom Edges asigură spaţiere verticală icircntre partea inferioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Vertical Gap asigură spaţiere verticală icircntre partea superioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Left Edges setează spaţii orizontale egale icircntre marginile din stacircnga ale controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Centers setează spaţii orizontale egale icircntre centrele controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Right Edges setează spaţii orizontale egale icircntre marginile din dreapta ale
controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Gap spaţiere orizontală icircntre controale Cel mai de sus şi cel mai de jos
control sunt considerate puncte de referinţă
Horizontal Compress minimizează spaţiile pe orizontală dintre controale şi elimină
orice spaţiu dintre ele
Distribute Vertical Centers
Comanda Distribute realizează la apel ultima opţiune selectată din lista prezentată
mai sus
37
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
de aparate de masurat icircn intervale largi de valori ale masurandului pentru marimi constante
sau variabile icircn timp) asa cum sunt etaloanele de raport etaloanele de derivare si etaloanele
de transfer (curent continuu ndash curent alternativ) prin compararea efectelor (termice
electrodinamice etc) ale semnalelor de curent sau tensiune produse asupra unui acelaşi
element sensibil
22 Conceptul de M2M
M2M este o abreviere de la Machine-to-Machine deşi tot mai des se foloseşte şi
pentru identificarea tehnologiilor Man-to-Machine Machine-to-Man Machine-to-Mobile sau
Mobile-to-Machine Pe scurt este vorba de un serviciu ce permite comunicarea dintre
echipamentele aflate la distanţă şi aplicaţiile la care sunt conectate De fapt M2M este o
evoluţie comercială a tradiţionalelor sisteme de control al echipamentelor din domeniul
industrial soluţie aplicată cu succes pentru prima dată de NASA Adaptată nevoilor
companiilor (un rol important l-a jucat compania France Telecom) M2M permite companiilor
sa administreze mai uşor echipamentele aflate la distanţă si să le integreze cu procesele
interne
Zona soluţiilor M2M este cotată ca fiind una dintre cele mai promiţătoare in
următorii ani ca urmare a creşterii nevoii de automatizare a proceselor şi a posibilităţii de a
lua decizii intr-un timp cat mai scurt posibil ceea ce va genera proiecte majore Aplicaţiile
M2M permit prin monitorizarea si controlul maşinilor şi proceselor de la distanţă reducerea
costurilor optimizarea proceselor si imbunătăţirea nivelului serviciilor oferite clienţilor
permitand economii de timp şi de personal
14
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
23 Limbajul Python
Icircn cadrul unei instalaţii de telemetrie modemurile deţin memorie şi processor propriu
motiv pentru care se numesc ldquointeligenterdquo Pe lacircngă memorie şi processor aceste modemuri
inteligente au şi un interpretor al unui limbaj de programare de nivel icircnalt Icircn cazul
medemurilor alese de mine acest limbaj este Python
Python este un limbaj de programare dinamic orientat pe obiect care poate fi folosit
pentru mai multe tipuri de dezvoltarea software Oferă un puternic suport pentru integrarea cu
diferite instrumente folosind librării standard de extensie şi poate fi invăţat in cacircteva zile
231 Tipuri de date
Sunt 3 grupuri de tipuri de date in Python
Scalari ndash care au sutipurile intreg intreg lung si sir de caractere
i = 1 li = 9999999999L s = Hello
Secvenţe care conţin un anumit număr de obiecte arbitrare intr-o ordine definită
L = [1 5 3 9 14]
Liste asociative care permit accesul la valori bazate pe chei Aceste chei pot fi arbitrare
dar sunt obiecte permanente De exemplu
D = b Python a 5 print D[a]
Afisează 5
Spre deosebire de Pascal C C++ sau Java Python este un limbaj tastat dinamic Astfel
următoarea secvenţă de cod este perfect valabilă icircn Python
a = 7 7 (integer)
a = str(2a) + bytes 7 bytes (string)
15
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Icircn Python variabilele nu sunt declarate icircn script ele apar doar atunci cand sunt folosite
232 Operatori
Icircn Python există următorii operatori
Operatori aritmetici
+ - ~ ltlt gtgt amp ^ |
Operatori relaţionali şi logici
is in lt lt= gt gt= == = not and or
Operatori de asignare
= += -= = = = = ltlt= gtgt= amp= ^= |=
Alţi operatori
( ) [ ] [] `` lambda
233 Comenzi compuse
Comenzile care aparţin aceluiaşi grup logic sunt deplasate spre dreapta cu acelaş
număr de spaţii albe
if a gt 0
b = 1
c = 2
De obicei fiecare comandă icircncepe pe o linie nouă
16
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
O instrucţiune se poate continua pe racircndul următor prin plasarea caracterului backslash
la sfacircrsitul randului Acest lucru nu este necesar dacă există paranteze deschise
my_list = [1
[abc 2]
-3+6j]
print my_list
234 Execuţii condiţionale
Python foloseşte if elif (nu elsif sau elseif) si else pentru a indica execuţia condiţională a
unei instrucţiuni
De exemplu
if a gt b
print a is greater than b
elif a lt b
print a is lower than b
else
print a equals b
Se poate folosi si interval prescurtate de testare
if 2 lt= a lt= 7
print a is in the interval [2 7]
235 Bucle
Buclele in Python sunt definite prin cuvintele cheie for şi while
Următorul exemplu foloseşte o buclă while pentru a colecta toate numerele intregi
cuprinse intre 0 si 99 intr-o listăacirc
numbers = [ ]
i = 0
while i lt 100
17
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
numbersappend(i)
i = i + 1
O buclă similar for arată in felul următor
numbers = [ ]
for i in range(100)
numbersappend(i)
Icircn loc de buclele explicite prezentate mai sus se poate folosi şi bucle implicite după
cum urmează
numbers = range(100)
range(100) generează o listă cu toate numerele intregi de la 0 la 100
24 General packet radio service(GPRS)
Comunicaţia intre modemuri ( RTU-uri ) şi dispecer se poate face prin mai mlte
mediu de transmisie
- Cablu telephonic
- Radio
- GSMGPRS
- Fibră Optică
Opţiunea pentru care am optat icircn partea de comunicaţie este GSMGPRS deoarece
asigură o cumunicaţie sigură şi oferă simplitate pentru priectant
GPRS introduce servicii de transport cu comutaţie de pachete pentru debite de la 14
kbps la maximum 170 kbps Practic GPRS este o reţea cu comutaţie de pachete de sine
stătătoare care se daugă la reţeaua GSM GPRS interoperează cu infrastructura GSM la
nivelul subsistemului staţiilor de bază BSS şi al bazelor de date din subsistemul reţea NSS
(HLR VLR AUC) GPRS preia traficul de date iar GSM traficul de voce care rămacircne
comutat prin MSC
Datele sunt transmise prin GPRS icircn pachete de lungimi fixe Fiecare pachet conţine
adresa destinaţie pentru a putea fi rutat de nodurile GPRS Modificarea pe interfaţa radio e
18
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
dată de introducerea codării adaptive a canalului Aceasta icircnseamnă că protecţia datelor
variază icircn timp icircn funcţie de starea canalului radio GPRS poate utiliza pentru o conexiune
de date de la fracţiuni de canale de trafic pacircnă la maximum 8 sloturi temporale (adică tot
cadrul TDMA) icircn funcţie de resursele disponibile
Capacitatea alocată unei conexiuni va varia icircn funcţie de icircncărcarea cu trafic de pe
frecvenţa respectivă precum şi de tipul traficului (vocedate) Este important că utilizacircnd
comutaţia de pachete o transmisie de date nu ocupă resursele reţelei decacirct atunci cacircnd sunt
date de transmis Cacircnd nu există pachete de transmis resursele de pe interfaţa radio pot fi
utilizate pentru alte transmisii de date sau pentru trafic cu comutaţie de circuite
GPRS are o reţea nucleu proprie formată prin interconectarea serverelor care
gestionează transmisia de pachete numite noduri suport GPRS (GSN- GPRS Suport Node)
Aceasta reţea operează icircn paralel cu subsistemul reţea şi comutaţie (NSS) al GSM care va
gestiona icircn continuare transmisia cu comutaţie de circuite
241 Caracteristicile sistemului GPRS
GPRS este un serviciu specificat icircn faza 2+ de standardizare a GSM El este oferit prin
intermediul unei infrastructuri numită şi sistem sau reţea GPRS ce interoperează cu
infrastructura bdquoclasicărdquo GSM
GPRS se icircncadrează icircn orientarea generală a ETSI de a asigura prin aza 2+ o platformă
ce va putea fi utilizată ulterior icircn reţele de generaţia a treia Astfel el este onsiderat
actualmente soluţia de bază pentru transmiterea de date icircn UMTS Fiind un standard SM
GPRS păstrează evident şi compatibilitatea cu sistemul părinte fiind practic o extensie a
acestuia pentru transmisii de date la debite mai mari GPRS reprezintă la ora actuală cel mai
reprezentativ sistem de generaţie intermediară (25G)
Dacă HSCSD ar putea fi considerat o ajustare fină a GSM GPRS reprezintă cu
siguranţă un salt tehnologic semnificativ deoarece marchează trecerea de la comutaţia de
circuite la cea de pachete Schimbarea tipului de comutaţie se referă icircn acest moment (atacirct la
25G cacirct şi icircn 3G) doar la transmiterea datelor vocea rămacircnacircnd icircn continuare comutată prin
MSC Datorită eternei insuficienţe a resurselor radio este probabil ca icircntr-o fază nu prea
icircndepărtată de dezvoltare a UMTS şi de ce nu chiar a GPRS să fie utilizată comutaţia de
pachete şi pentru serviciile de timp real vocale sau non-vocale
Icircn concluzie GPRS reprezintă o infrastructura ce permite transmiterea datelor pe baza
comutaţiei de pachete icircntr-o reţea GSM
19
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Pentru a putea oferi debite de date mai ridicate icircn GPRS se urmăreşte utilizarea cacirct
mai eficientă a resurselor radio Pentru aceasta se preia de la HSCSD ideea operării multislot
posibilitatea de a proteja mai puţin informaţia utilă pe interfaţa radio şi alocarea asimetrică
uplink downlink Icircn ciuda acestor asemănări icircnlocuirea comutaţiei de circuite cu cea de
pachete face din GPRS un sistem complet diferit de HSCSD Aceasta atacirct din punct de vedere
al utilizatorului care constată un timp de conectare practic nul şi rate de transfer mai bune
dar şi din punct de vedere al operatorului care efectuează o investiţie incomparabil mai mare
răsplătită printr-o mai eficientă utilizare a interfeţei radio cu tot ceea ce rezultă de aici (mai
mulţi clienţi mai multe servicii aplicaţii diverse)
Rezumacircnd icircn GPRS este implementat un set de soluţii tehnologice ce au ca scop
principal creşterea eficienţei utilizării interfeţei radio Aceasta derivă atacirct din experienţa
sistemelor anterioare cacirct şi mai ales din operarea icircn modul pachet a datelor ce se transmit
Soluţiile utilizate sunt
creşterea ratei de transmisie a datelor prin reducerea codării canalului (sunt definite
şi pot
fi utilizate 4 scheme de codare 905kbps 134 kbps 156 kbps 214kbps)
creşterea ratei de transmisie prin operare multislot ( pacircnă la 8 sloturi temporale per
utilizator)
creşterea eficienţei utilizării resurselor radio prin multiplexarea mai multor
utilizatori pe acelaşi canal fizic (posibila datorită transmisiei de pachete maximum 8
utilizatori pe slot temporal)
creşterea eficienţei utilizării resurselor radio prin alocare asimetrică uplinkdownlink
creşterea eficienţei utilizării resurselor radio prin alocarea dinamică a canalelor icircntre
servicii comutate icircn mod circuit respectiv pachet
Cacircnd un icircntreg cadru TDMA este alocat unui utilizator cu schema de protecţie minimă
(practic fără corecţie de erori) rezultă rata utilă instantanee maximă posibilă icircn GPRS
(8x214 kbps=1712 kbps)
242 Comutaţie de circuite şi comutaţie de pachete
20
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comutaţia este o tehnică esenţială icircn reţelele de comunicaţii Fără ea fiecare
echipament terminal ar trebui conectat printr-o cale directă cu fir sau fără la toate celelalte
echipamente terminale din reţea Principalele metode de comutaţie sunt
comutaţia de circuite
comutaţia de mesaje
comutaţia de pachete
Comutaţia de circuite
Aceasta presupune realizarea icircntre emiţător şi receptor a unei căi fizice de comutaţie
dedicate numită circuit Icircntreaga comunicaţie se desfăşoară icircn trei etape
stabilirea conexiunii (sau deschiderea circuitului)
transferul de informaţii
eliberarea conexiunii (circuitului)
Este de remarcat faptul că stabilitatea fizică a caii de comunicaţie are loc icircnainte de
icircnceperea transmisiunii propriu-zise Aceasta poate conduce la durate semnificative ale
timpului de conectare
Un dezavantaj notoriu al acestei tehnici este alocarea fixă a resurselor de comunicaţie
necesare pe durata conexiunii indiferent dacă la un moment sau altul mediul de transmisie
este folosit total parţial sau deloc
Pe de altă parte avantajele comutaţiei de circuite provin tocmai din această alocare fixă de
resurse care permite
asigurarea unei icircntacircrzieri constante şi minime
garantarea unui debit util corespunzător mediului de comunicaţie şi serviciului utilizat
Toate acestea facilitează oferirea serviciilor de timp real (telefonie videofonie alte
transmisiuni video) Exemplul tipic de reţea cu comutaţie de circuite este reţea telefonică
publică comutată (PSTN) Reţeaua GSM este de asemenea o reţea cu comutaţie de circuite
Referindu-ne strict la interfaţa radio a reţelelor fără fir etapa de stabilire a conexiunii
presupune alocarea unui canal radio (sau a mai multora icircn cazul HSCSD) unei staţii mobile
(MS) Acest canal rămacircne icircn posesia terminalului mobil pe toata durata conexiunii chiar dacă
transferul de date este discontinuu (icircn rafale) sau chiar icircncetează cu desăvacircrşire (de exemplu
21
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cacircnd utilizatorul citeşte cu atenţie cinci minute o pagină WEB după care lămurit pe deplin
icircntrerupe legătura) Ca o particularizare binecunoscută a reţelelor cu comutaţie de circuite
trebuie menţionat că utilizatorul trebuie să plătească pentru icircntreaga durată a conexiunii chiar
dacă a fost risipitor şi nu a folosit resursa ce i-a fost alocată
Comutaţia de mesaje
Este o tehnică ce nu stabileşte apriori o cale de transmisiune icircntre emiţător şi receptor
Informaţia ce urmează a fi transmisă formează o entitate bine precizată numita mesaj
Mesajele sunt complet independente unele faţă de altele şi pot avea lungimi variabile deşi
structura (formatul) lor poate fi prestabilit Emiţătorul trebuie sa ataşeze mesajului adresa
destinatarului decizia cu privire la ruta pe care o va urma mesajul fiind de competenţa
fiecărui comutator (router) prin care trece Fiecare comutator va memora mesajul după care icircl
va transmite pe ieşirea selectată de el Principala problemă a comutaţiei de mesaje este dată de
dimensiunea mare a mesajelor Din această cauză comutatoarele de mesaje au nevoie de o
capacitate de stocare uriaşă iar icircntacircrzierea icircn noduri poate deveni inacceptabilă din cauza
monopolizării ieşirilor de către mesajele lungi Exemplul tipic de reţea cu comutaţie de
mesaje este reţeaua telex
Comutaţia de pachete
Rezolvă o mare parte din dezavantajele comutaţiei de mesaje stabilind o lungime
maximă a entităţii informaţionale care circulă prin reţea numită pachet Pachetele sunt icircn
general rezultatul divizării mesajelor icircn blocuri de lungime mică Datorită acestui fapt spre
deosebire de mesaje pachetele nu sunt independente O recepţie corespunzătoare implică
refacerea mesajului prin ordonarea pachetelor după logica folosită la emisie Pentru aceasta
exista două posibilităţi apropiate conceptual de comutaţia de mesaje respectiv de comutaţia
de circuite
A Comutaţia de pachete fără conexiune (sau neorientată pe conexiune)
Icircn cazul comutaţiei de pachete fără conexiune pachetele (numite şi datagrame) se transmit
independent icircn cel mai pur spirit al comutaţiei de mesaje urmacircnd rute posibil diferite
Sosirea lor la destinaţie poate avea loc icircntr-o ordine aleatoare ceea ce necesită reordonarea lor
de către receptor Refacerea succesiunii corecte a pachetelor se bazează pe informaţia
22
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
suplimentară din fiecare pachet privitoare la mesajul din care face parte şi locul pe care icircl
ocupa icircn el Exemplul tipic de reţea care utilizează comutaţia de pachete este internetul
BComutaţia de pachete orientată pe conexiune (sau circuit virtual)
Icircn cazul comutaţiei de pachete orientată pe conexiune (sau circuit virtual) comunicarea
icircntre terminale presupune stabilirea unei căi anume pe care va circula fluxul informaţional
dintre acestea similar cu comutaţia de circuite Spre deosebire de aceasta nu este vorba de
dedicarea unui circuit fizic comunicării respective ci de configurarea unui circuit logic
numit circuit virtual Aceasta icircnseamnă că toate pachetele vor urma aceeaşi cale prin reţea
fără a dedica suportul fizic comunicaţiei respective Pachetele altor utilizatori vor putea folosi
foarte bine segmente din calea respectivă sau chiar icircntreaga cale La stabilirea circuitului
virtual fiecare comutator (router) trebuie să memoreze icircn tabela de dirijare care este
succesorul său icircn respectivul circuit virtual Astfel spre deosebire de comutaţia de pachete
fără conexiune după stabilirea circuitului virtual comutatorul nu mai trebuie să decidă calea
fiecărui pachet Avacircnd memorat nodul succesor icircn fiecare dintre circuitele virtuale icircn care este
implicat comutatorul va identifica circuitul asociat pachetului şi icircl va transmite pe acesta pe
linia de ieşire corespunzătoare Tehnica circuitului virtual garantează livrarea icircn ordine a
pachetelor la destinaţie Exemple marcante de reţele ce utilizează comutaţia de pachete de tip
circuit virtual sunt X25 şi ATM
Marele avantaj al comutaţiei de pachete este utilizarea eficientă a resurselor de
transmisiune Deoarece acestea nu sunt dedicate ele pot fi folosite după necesităţi pentru a
transmite pachete provenind de la utilizatori diferiţi Din acest motiv comutaţia de pachete
este extrem de avantajoasă icircn cazul unei infrastructuri cu resurse de transmisiune limitate
cum este şi cazul reţelelor fără fir
Un dezavantaj important al comutaţiei de pachete este dat de gestionarea comutatoarelor
(routerelor) icircn cazul unui trafic crescut la intrare Pierderea pachetelor garantarea unei
icircntacircrzieri maxime şi a unui debit utilizator constant sunt problemele spinoase ale comutaţiei
de pachete Ele reprezintă obstacole icircn special icircn calea oferirii serviciilor de timp real cum ar
fi telefonia
Icircn schimb icircn cazul transmisiilor de date avantajul bunei administrări a resurselor
prevalează De exemplu icircn cazul particular al interfeţei radio GSM cacircnd o staţie mobilă (MS)
generează un pachet de date reţeaua icircl va transmite pe un canal radio disponibil icircn acel
moment Următorul pachet de pe acel canal poate să aparţină aceleiaşi MS dacă are ceva de
23
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
transmis sau dacă nu alteia Icircn acest mod atacircta timp cacirct cineva are ceva de transmis
canalele radio nu sunt blocate inutil Lucrul icircn mod pachet are o eficienţă cu totul deosebită icircn
cazul unui trafic de date icircn rafale (data bursts)
Aşadar pentru un sistem GSM bazat esenţialmente pe comutaţia de circuite este
extrem de utilă alocarea resurselor neutilizate de către serviciile vocale pentru servicii mai
puţin prioritare Atacirct HSCSD cacirct şi GPRS icircşi propun acest lucru Serviciile cele mai potrivite
pentru valorificarea resurselor rămase (preferabil printr-un mecanism de alocare dinamică)
sunt tocmai cele care implică un trafic de date icircn rafale fără pretenţii de timp real Diferenţa
fundamentală icircntre HSCSD şi GPRS este că acesta din urmă valorifică aceste resurse icircntr-un
mod mult mai eficient deoarece utilizează comutaţia de pachete Icircn plus costul serviciilor
oferite este mai atractiv deoarece utilizatorul plăteşte volumul de date transferat Practic dacă
doreşte utilizatorul poate fi sbquoconectatrsquo la reţeaua de date icircn permanenţă fiind taxat doar
pentru timpul icircn care efectiv utilizează resursele reţelei adică pentru pachetele de date
recepţionate respectiv transmise
243 Servicii GPRS
Dintre aplicaţiile cele mai potrivite pentru GPRS se pot aminti mesageria de orice tip
difuzare şi distribuţie multiplă telemetrie jocuri navigare de mică anvergură pe reţeaua
internet Icircn general orice tip de aplicaţii ce necesită comunicaţii maşină - maşină la debite
mici şi medii sunt adecvate dezvoltării icircn mediul GPRS
Ca şi icircn reţeaua GSM reţelele GPRS pot oferi două categorii de servicii de
telecomunicaţii
servicii de bază
servicii suplimentare
Serviciile de bază GPRS
Acestea sunt icircn principal servicii suport (bearer services) de transport care realizează
transmiterea datelor cu comutaţie de pachete icircntre două interfeţe şi din teleservicii Similar
situaţiei din GSM aceste interfeţe sunt
interfaţa dintre echipamentul terminal de date (de exemplu calculator) şi terminalul
mobil GPRS
24
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
interfaţa dintre reţeaua GPRS şi reţeaua de date sau echipamentul terminal cu care
comunică Aceasta interfaţă este situată icircntr-un nod poartă (gateway) GPRS similar
situaţiei din GSM unde locul ei este GMSC
Teleserviciul fundamental oferit de GPRS este cel de transport de date şi este detaliat
mai jos Un alt teleserviciu oferit de GPRS este transmisia şi recepţia de mesaje scurte (SMS)
Astfel pe de o parte capacitatea de transmisie a mesajelor scurte va creşte iar pe de alta
parte reţeaua de semnalizări pe care se transmit icircn GSM aceste mesaje nu va mai fi icircncărcată
şi cu mesaje scurte ce vin sau pleacă de la la terminalele mobile GPRS
Servicii GPRS de transport
Sunt definite doua categorii de teleservicii de transport
servicii punct-la-punct (PTP ndashPoint-to-Point)
servicii punct la multipunct (PTM-Point-to-Multipoint)
A Serviciul PTP
Serviciul punct la punct (PTP) [GSM 0260] permite transmiterea de pachete de date
icircntre doi utilizatori Este implementat icircn GPRS faza 1 Abonatul care a iniţiat serviciul se
numeşte solicitant (service requester) Partenerul său se numeşte receptor al serviciului
(service receiver)
Serviciul PTP poate fi solicitat fie de la terminalul mobil GPRS fie de la un
echipament situat icircntr-o reţea de date fixă (IP X25) Serviciul PTP poate fi oferit de
asemenea icircntre doi utilizatori mobili GPRS
Serviciul punct-la punct poate fi la racircndul sau de două tipuri
PTP fără conexiune (PTP-CLNS ndash PTP Connectinnless Network Service)
PTP orientat pe conexiune (PTP-CONS ndashPTP Connection Orientated Network
Network Service)
PTP-CLNS este un serviciu de tip datagramă ce utilizează comutaţia de pachete fără
conexiune Este util icircn cazul aplicaţiilor ce generează trafic icircn rafale şi are că scop asigurarea
interoperării cu reţele IP
PTP-CONS este un serviciu de tip circuit virtual ce utilizează comutaţia de pachete
orientata pe conexiune Icircntre cei doi utilizatori se stabileşte un circuit virtual pentru o perioadă
25
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ce poate varia de la cacircteva secunde la ore Este util atacirct pentru aplicaţii ce generează trafic icircn
rafale cacirct şi pentru aplicaţiile interactive Are că scop asigurarea interoperării cu reţele X25 şi
derularea peste GPRS a aplicaţiilor bazate pe protocolul OSI CONS(Connection Orientated
Network Protocol)
O reţea GPRS trebuie să asigure menţinerea circuitului virtual la trecerea dintr-o
celulă icircn alta dar numai icircn interiorul aceleiaşi reţele GPRS-PLMN La trecerea terminalului
mobil icircntr-o altă reţea sau icircn cazul căderii legăturii radio circuitul virtual va fi eliberat Pentru
ambele tipuri de servicii pe interfaţa radio se poate opera fie cu confirmare fie fără
confirmare a transportului de date
B Serviciul PTM
Serviciul punct la multipunct (PTM) permite transmiterea de pachete de date de la un
utilizator către mai mulţi utilizatori El este implementat icircn faza a doua a GPRS O
comunicaţie PTM se stabileşte icircntre un furnizor de servicii (ce poate fi situat icircn afară reţelei
GSM) şi un grup de terminale GPRS Şi serviciul PTM este un serviciu ce se prezintă icircn două
variante
PTMndash multidistribuţie (PTM Multicast)
PTM- grup (PTM-G--PTMGroup)
Serviciul de transport PTM-M permite transmiterea pachetelor de date icircntr-o arie
geografică dată (celulă grup de celule) fără confirmare Receptorii serviciului sunt fie toţi
abonaţii care se găsesc icircn acea zonă fie un grup icircnchis de utilizatori
Icircn cazul PTM-G receptorul serviciului este un grup predefinit de utilizatori Pachetele de
date vor fi trimise către toţi membrii grupului indiferent de aria geografică unde se găsesc
aceştia Este posibilă şi transmiterea doar către acei membri care se găsesc icircn anumite zone
geografice Transmisia poate fi şi cu confirmare
Serviciile suplimentare
Printre serviciile suplimentare avute icircn vedere icircntr-un prim stadiu se numără
redirecţionarea necondiţionată a apelurilor redirecţionarea cacircnd abonatul nu este accesibil şi
definirea de grupuri icircnchise de utilizatori In afară de aceste servicii recomandarea GSM
0260 descrie posibilitatea oferirii de servicii adiţionale cum sunt accesarea bazelor de date
servicii de mesagerie validări de cărţi de credit servicii de monitorizare electronică tranzacţii
electronice etc
26
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
244 Arhitectura GPRS
GPRS este o soluţie pentru operatori deoarece nu necesită modificări substanţiale icircn
reţeaua GSM Aşa cum se observă icircn figura 72 reţeaua nucleu a GPRS operează icircn paralel
cu GSM-NSS
Figura 23 Arhitectura reţelei GPRS
25 LabWindowsCVI
La dipecer am considerat un calculator desktop sau laptop pe care va rula o aplicaţie
de monitorizare a datelor măsurate implementată icircn LabWindowsCVI
LabWindowsCVI este o platformă pentru dezvoltare de software cu orientare pe
aplicaţii de instrumentaţie După cum se deduce din denumirea sa (CVI ndash C for Virtual
Instrumentation) limbajul acceptat este ANSI C cu extensii specifice CVI ne pune la
dispoziţie un mediu interactiv de dezvoltare a unor aplicaţii pentru sistemul de operare
Windows Icircmbină deci avantajele programării de tip vizual cu avantajele simplităţii şi
flexibilităţii limbajului C Deşi a fost creat special pentru aplicaţii de instrumentaţie şi control
27
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
multiplele lui facilităţi icircl fac capabil să suporte şi dezvoltarea unor aplicaţii de mărime medie
care să fie de altă factură Fiecare funcţie de bibliotecă din cadrul acestui mediu are o interfaţă
specializată numită panoul funcţiei (function panel) care permite
bull Help on-line
bull Selectare şi declarare de variabile sau constante necesare
bull Execuţie interactivă
bull Inserarea funcţiei editate icircntr-un text sursă
Mediul este extrem de flexibil permiţacircnd interfaţarea bidirecţională cu alte compilatoare de
C sau C++ De asemenea se pot folosi şi DLL-uri
Puterea mediului LabWindowsCVI este dată de bibliotecile puse la dispoziţia
programatorului acestea conţinacircnd funcţii pentru implementarea diverselor faze care conduc
la o aplicaţie din domeniul achiziţiei de date sau a controlului automat
Pentru achiziţia de date există următoarele biblioteci specializate
bull de instrumente
bull pentru interfaţa GPIBGPIB 4882 (General Purpose Interface Bus)
bull pentru achiziţie de date
bull pentru operaţii IO icircn cazul achiziţiei de date
bull pentru interfaţa serială RS232
bull pentru sistemul VXI
Biblioteci specializate pentru analiza datelor
bull pentru IO
bull pentru formatarea specială
bull pentru analiză
bull pentru analiză avansată
Biblioteci specializate pentru vizualizare date
bull pentru crearea unei interfeţe utilizator de tip vizual
Biblioteci specializate pentru lucrul icircn reţea şi comunicarea icircntre diverse aplicaţii
bull pentru DDE (Dynamic Data Exchange)
bull pentru TCP (Transmision Control Protocol)
bull pentru sistemul X de sub Unix
Icircn afară de acestea mai există o bibliotecă specială numită biblioteca de instrumente
care conţine drivere şi sursele lor pentru osciloscoape multimetre şi generatoare de funcţii
De asemenea există posibilitatea creării unui instrument propriu Biblioteca pentru interfaţa
28
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cu utilizatorul conţine funcţiile necesare creării unui GUI (Graphical User Interface =
Interfaţă grafică cu utilizatorul) după necesităţi
Structura generică a unei aplicaţii dezvoltate sub CVI
Un proiect complet pentru una din clasele de aplicaţii specifice mediului CVI are
următoarele componente generice
bull interfaţa cu utilizatorul
bull partea de control a aplicaţiei
bull partea specializată pentru achiziţia datelor
bull partea specializată icircn analiza respectivelor date
Mai jos prezentăm o schemă generică a aplicaţiilor CVI
Figura 24
Tipuri de fişiere folosite icircn cadrul CVI
PRJ se referă la fişiere de tip proiect
UIR se referă la fişiere care conţin descrierea unei interfeţe grafice cu utilizatorul
C fişiere sursă
H fişiere header
FP fişiere care reţin descrierea unui instrument
LIB fişiere bibliotecă
DLL fişiere link-editate pentru apel dinamic
OBJ fişiere obiect
29
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a unora dintre meniurile şi ferestrele mediului de dezvoltare CVI
Fereastra proiect
Prezentăm mai jos doar informaţiile suplimentare faţă de o fereastră proiect standard
Pe lacircngă datele curente despre fiecare fişier inclus icircn proiect acesta mai are precizat şi unul
sau mai mulţi din următorii indici
- I indică faptul că respectivul fişier conţine descrierea unui driver de instrument
- S faptul că s-au făcut modificări icircn fişierul respectiv şi deci trebuie salvat
- C indică obligativitatea compilării respectivului fişier icircnainte de rularea aplicaţiei
- indică faptul că fişierul este deschis icircntr-o fereastră de editare
- indică ca acest fişier nu este deschis
Aplicaţii consolă
Pentru aplicaţiile tip consolă clasice C unde se folosesc pentru IO funcţiile scanf şi
printf vizualizarea ieşirii icircn mod text a acestora se va face icircntr-o fereastră specială numită
ldquoStandard InputOutput Windowrdquo
Observaţie Dacă se va programa icircn acest mod trebuie activată opţiunea ldquoBring Standard
InputOtput to front whenever modifyrdquo din Environment ce aparţine meniului Options
Generatorul interactiv de aplicaţii
Butoanele directe ale editorului de interfeţe cu utilizatorul
folosit la selectare mutare şi dimensionare obiecte
utilizat pentru a modifica textul asociat cu obiectele din UIR folosind facilităţile de
etichetare
folosit pentru colorarea obiectelor Este suficientă o apăsare pe butonul din dreapta a
mouse-ului şi va colora automat obiectul selectat cu culoarea curentă
oferă facilităţi de operare Atunci cacircnd este activat evenimentele vor fi afişate icircn partea
dreaptă a barei de facilităţi
30
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a cacirctorva din meniurile mai importante ale generatorului
Menu Bars activează cutia de dialog care ne prezintă toate barele de meniu definite deja de
programator
Figura 25
Create apelează fereastra Edit Menu Bar pentru a crea o nouă bară de meniuri
Edit apelează fereastra Edit Menu Bar pentru a modifica o bară de meniuri existentă
Fereastra Edit Menu Bar(fig26) permite specificarea sau modificarea caracteristicilor
unei bare de meniuri icircn curs de creare sau care există deja
31
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 26
Menu Bar Constant Prefix este identificatorul intern al respectivei bare de meniuri Acesta
va fi folosit de funcţia LoadMenuBar pentru icircncărcarea icircn memorie a parametrilor care conţin
această bară Va fi definit automat icircn fişierul header din scheletul de aplicaţie
Item se referă la numele meniului curentsubmeniucomandă de meniu Dacă icircn faţa primei
litere a unui element din meniu se adaugă 2 ldquounderscorerdquo la execuţie acesta va putea fi
selectat prin combinaţia Alt+prima literă
Constant name este alipit la Menu Bar Constant Prefix pentru a se genera identificatorul
elementului curent Este folosit de funcţii ca GetMenuBarAttribute sau SetMenuBarAttribute
De asemenea acest identificator este returnat de GetUserEvent atunci cacircnd apare un
eveniment generat de o comandă a meniului
Callback Function Permite specificarea numelui unei funcţii de răspuns care va fi apelată
automat la activarea respectivului element Folosirea ei este opţională
32
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ModifierKeyShortcutKey se combină pentru a ataşa o cheie ldquohotrdquo pentru elementul
curent
buton ce permite coboracircrea icircn interiorul unei ierarhii de meniuri
buton ce permite urcarea icircn interiorul unei ierarhii de meniuri
Panouri
După cum am spus sunt echivalentul ferestrelor din programarea Windows Pentru a le crea
Create1048774Panel ne pune la dispoziţie un nou panou icircn cadrul UIR-ului curent Prin dublu
ldquoclickrdquo pe acesta se va intra in fereastra de editare a caracteristicilor panoului Această
fereastră este prezentată mai jos
Figura 27
La partea de Menu Bar se poate specifica o bară din cele deja create icircn cazul dezvoltării
respectivei interfeţe
Restul parametrilor au fost discutaţi anterior sau sunt cunoscuţi din programarea Windows
33
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Crearea controalelor
Exceptacircnd diferenţele care apar funcţie de destinaţia acestora există o serie de parametri
comuni fiecărui control pe care icircl creăm Mai jos prezentăm fereastra care apare de exemplu
la crearea unui control de tip numeric şi anume un buton
Figura 28
Se observă că identificatorul intern şi posibilitatea de ataşare a unei funcţii de răspuns
rămacircne De asemenea o serie de informaţii specifice părţii de etichetare Icircn plus apar
specificaţii privind modul de afişare a datelor şi limitele icircntre care acestea pot fi variate prin
intermediul acestui control
34
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
TAB ORDER
Fiecare control de pe un panou activ are o poziţie icircn ordinea de salt prin intermediul
unui tab Această ordine precizează care va fi următorul control ce va fi activat icircn cazul icircn
care utilizatorul apasă Tab sau Shift+Tab Implicit acestea sunt adăugate exact icircn ordinea
creării lor de către programator Numai că nu icircntotdeauna aceasta este ordinea de salt dorită a
fi activă la terminarea aplicaţiei Icircn aceste condiţii secvenţa Edit1048774Tab Order ne va activa un
panou specializat pentru aceasta
Figura 29
noua formă de cursor activă icircn interiorul ferestrei Prin apăsarea pe un control oarecare i
se
poate modifica ordinea de activare
specifică faptul că se acceptă noua ordine de apelare
se iese cu păstrarea vechii ordini
Find UIR Objects
O altă facilitate a editorului este Find UIR Objects care aparţine meniului View Icircn
cadrul unor proiecte mari se dovedeşte a fi extrem de utilă
35
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 210
După cum se observă ne permite căutarea după dorinţă a unui nume icircn diverse categorii de
obiecte ale interfeţei cu utilizatorul
GENERATE
Este meniul folosit pentru generarea fie a icircntregului cod schelet fie numai a codului
corespunzător unui obiect proaspăt introdus icircntr-un UIR
Secvenţa Code1048774Generate1048774AllCode va genera codul schelet pentru aplicaţie Acesta va
conţine şi un ldquoswitchrdquo pentru tratarea evenimentelor Alegerea evenimentelor care vor fi
automat introduse se face din Code1048774Preferences
MENIUL ARRANGE
Icircncă de la primele aplicaţii vom observa că una din operaţiile mari consumatoare de
timp este aranjarea controalelor icircn panou după specificarea caracteristicilor acestora Pentru a
evita acest lucru CVI a fost prevăzut cu o serie de facilităţi de aranjare automată pe care le
vom prezenta mai jos
Figura 211
Top Edges asigură spaţiere verticală icircntre partea superioară a controalelor Cel mai de
sus şi cel mai de jos control sunt considerate puncte de referinţă
36
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Vertical Centers asigură spaţiere verticală icircntre centrele controalelor Cel mai de sus
şi cel mai de jos control sunt considerate puncte de referinţă
Bottom Edges asigură spaţiere verticală icircntre partea inferioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Vertical Gap asigură spaţiere verticală icircntre partea superioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Left Edges setează spaţii orizontale egale icircntre marginile din stacircnga ale controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Centers setează spaţii orizontale egale icircntre centrele controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Right Edges setează spaţii orizontale egale icircntre marginile din dreapta ale
controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Gap spaţiere orizontală icircntre controale Cel mai de sus şi cel mai de jos
control sunt considerate puncte de referinţă
Horizontal Compress minimizează spaţiile pe orizontală dintre controale şi elimină
orice spaţiu dintre ele
Distribute Vertical Centers
Comanda Distribute realizează la apel ultima opţiune selectată din lista prezentată
mai sus
37
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
23 Limbajul Python
Icircn cadrul unei instalaţii de telemetrie modemurile deţin memorie şi processor propriu
motiv pentru care se numesc ldquointeligenterdquo Pe lacircngă memorie şi processor aceste modemuri
inteligente au şi un interpretor al unui limbaj de programare de nivel icircnalt Icircn cazul
medemurilor alese de mine acest limbaj este Python
Python este un limbaj de programare dinamic orientat pe obiect care poate fi folosit
pentru mai multe tipuri de dezvoltarea software Oferă un puternic suport pentru integrarea cu
diferite instrumente folosind librării standard de extensie şi poate fi invăţat in cacircteva zile
231 Tipuri de date
Sunt 3 grupuri de tipuri de date in Python
Scalari ndash care au sutipurile intreg intreg lung si sir de caractere
i = 1 li = 9999999999L s = Hello
Secvenţe care conţin un anumit număr de obiecte arbitrare intr-o ordine definită
L = [1 5 3 9 14]
Liste asociative care permit accesul la valori bazate pe chei Aceste chei pot fi arbitrare
dar sunt obiecte permanente De exemplu
D = b Python a 5 print D[a]
Afisează 5
Spre deosebire de Pascal C C++ sau Java Python este un limbaj tastat dinamic Astfel
următoarea secvenţă de cod este perfect valabilă icircn Python
a = 7 7 (integer)
a = str(2a) + bytes 7 bytes (string)
15
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Icircn Python variabilele nu sunt declarate icircn script ele apar doar atunci cand sunt folosite
232 Operatori
Icircn Python există următorii operatori
Operatori aritmetici
+ - ~ ltlt gtgt amp ^ |
Operatori relaţionali şi logici
is in lt lt= gt gt= == = not and or
Operatori de asignare
= += -= = = = = ltlt= gtgt= amp= ^= |=
Alţi operatori
( ) [ ] [] `` lambda
233 Comenzi compuse
Comenzile care aparţin aceluiaşi grup logic sunt deplasate spre dreapta cu acelaş
număr de spaţii albe
if a gt 0
b = 1
c = 2
De obicei fiecare comandă icircncepe pe o linie nouă
16
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
O instrucţiune se poate continua pe racircndul următor prin plasarea caracterului backslash
la sfacircrsitul randului Acest lucru nu este necesar dacă există paranteze deschise
my_list = [1
[abc 2]
-3+6j]
print my_list
234 Execuţii condiţionale
Python foloseşte if elif (nu elsif sau elseif) si else pentru a indica execuţia condiţională a
unei instrucţiuni
De exemplu
if a gt b
print a is greater than b
elif a lt b
print a is lower than b
else
print a equals b
Se poate folosi si interval prescurtate de testare
if 2 lt= a lt= 7
print a is in the interval [2 7]
235 Bucle
Buclele in Python sunt definite prin cuvintele cheie for şi while
Următorul exemplu foloseşte o buclă while pentru a colecta toate numerele intregi
cuprinse intre 0 si 99 intr-o listăacirc
numbers = [ ]
i = 0
while i lt 100
17
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
numbersappend(i)
i = i + 1
O buclă similar for arată in felul următor
numbers = [ ]
for i in range(100)
numbersappend(i)
Icircn loc de buclele explicite prezentate mai sus se poate folosi şi bucle implicite după
cum urmează
numbers = range(100)
range(100) generează o listă cu toate numerele intregi de la 0 la 100
24 General packet radio service(GPRS)
Comunicaţia intre modemuri ( RTU-uri ) şi dispecer se poate face prin mai mlte
mediu de transmisie
- Cablu telephonic
- Radio
- GSMGPRS
- Fibră Optică
Opţiunea pentru care am optat icircn partea de comunicaţie este GSMGPRS deoarece
asigură o cumunicaţie sigură şi oferă simplitate pentru priectant
GPRS introduce servicii de transport cu comutaţie de pachete pentru debite de la 14
kbps la maximum 170 kbps Practic GPRS este o reţea cu comutaţie de pachete de sine
stătătoare care se daugă la reţeaua GSM GPRS interoperează cu infrastructura GSM la
nivelul subsistemului staţiilor de bază BSS şi al bazelor de date din subsistemul reţea NSS
(HLR VLR AUC) GPRS preia traficul de date iar GSM traficul de voce care rămacircne
comutat prin MSC
Datele sunt transmise prin GPRS icircn pachete de lungimi fixe Fiecare pachet conţine
adresa destinaţie pentru a putea fi rutat de nodurile GPRS Modificarea pe interfaţa radio e
18
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
dată de introducerea codării adaptive a canalului Aceasta icircnseamnă că protecţia datelor
variază icircn timp icircn funcţie de starea canalului radio GPRS poate utiliza pentru o conexiune
de date de la fracţiuni de canale de trafic pacircnă la maximum 8 sloturi temporale (adică tot
cadrul TDMA) icircn funcţie de resursele disponibile
Capacitatea alocată unei conexiuni va varia icircn funcţie de icircncărcarea cu trafic de pe
frecvenţa respectivă precum şi de tipul traficului (vocedate) Este important că utilizacircnd
comutaţia de pachete o transmisie de date nu ocupă resursele reţelei decacirct atunci cacircnd sunt
date de transmis Cacircnd nu există pachete de transmis resursele de pe interfaţa radio pot fi
utilizate pentru alte transmisii de date sau pentru trafic cu comutaţie de circuite
GPRS are o reţea nucleu proprie formată prin interconectarea serverelor care
gestionează transmisia de pachete numite noduri suport GPRS (GSN- GPRS Suport Node)
Aceasta reţea operează icircn paralel cu subsistemul reţea şi comutaţie (NSS) al GSM care va
gestiona icircn continuare transmisia cu comutaţie de circuite
241 Caracteristicile sistemului GPRS
GPRS este un serviciu specificat icircn faza 2+ de standardizare a GSM El este oferit prin
intermediul unei infrastructuri numită şi sistem sau reţea GPRS ce interoperează cu
infrastructura bdquoclasicărdquo GSM
GPRS se icircncadrează icircn orientarea generală a ETSI de a asigura prin aza 2+ o platformă
ce va putea fi utilizată ulterior icircn reţele de generaţia a treia Astfel el este onsiderat
actualmente soluţia de bază pentru transmiterea de date icircn UMTS Fiind un standard SM
GPRS păstrează evident şi compatibilitatea cu sistemul părinte fiind practic o extensie a
acestuia pentru transmisii de date la debite mai mari GPRS reprezintă la ora actuală cel mai
reprezentativ sistem de generaţie intermediară (25G)
Dacă HSCSD ar putea fi considerat o ajustare fină a GSM GPRS reprezintă cu
siguranţă un salt tehnologic semnificativ deoarece marchează trecerea de la comutaţia de
circuite la cea de pachete Schimbarea tipului de comutaţie se referă icircn acest moment (atacirct la
25G cacirct şi icircn 3G) doar la transmiterea datelor vocea rămacircnacircnd icircn continuare comutată prin
MSC Datorită eternei insuficienţe a resurselor radio este probabil ca icircntr-o fază nu prea
icircndepărtată de dezvoltare a UMTS şi de ce nu chiar a GPRS să fie utilizată comutaţia de
pachete şi pentru serviciile de timp real vocale sau non-vocale
Icircn concluzie GPRS reprezintă o infrastructura ce permite transmiterea datelor pe baza
comutaţiei de pachete icircntr-o reţea GSM
19
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Pentru a putea oferi debite de date mai ridicate icircn GPRS se urmăreşte utilizarea cacirct
mai eficientă a resurselor radio Pentru aceasta se preia de la HSCSD ideea operării multislot
posibilitatea de a proteja mai puţin informaţia utilă pe interfaţa radio şi alocarea asimetrică
uplink downlink Icircn ciuda acestor asemănări icircnlocuirea comutaţiei de circuite cu cea de
pachete face din GPRS un sistem complet diferit de HSCSD Aceasta atacirct din punct de vedere
al utilizatorului care constată un timp de conectare practic nul şi rate de transfer mai bune
dar şi din punct de vedere al operatorului care efectuează o investiţie incomparabil mai mare
răsplătită printr-o mai eficientă utilizare a interfeţei radio cu tot ceea ce rezultă de aici (mai
mulţi clienţi mai multe servicii aplicaţii diverse)
Rezumacircnd icircn GPRS este implementat un set de soluţii tehnologice ce au ca scop
principal creşterea eficienţei utilizării interfeţei radio Aceasta derivă atacirct din experienţa
sistemelor anterioare cacirct şi mai ales din operarea icircn modul pachet a datelor ce se transmit
Soluţiile utilizate sunt
creşterea ratei de transmisie a datelor prin reducerea codării canalului (sunt definite
şi pot
fi utilizate 4 scheme de codare 905kbps 134 kbps 156 kbps 214kbps)
creşterea ratei de transmisie prin operare multislot ( pacircnă la 8 sloturi temporale per
utilizator)
creşterea eficienţei utilizării resurselor radio prin multiplexarea mai multor
utilizatori pe acelaşi canal fizic (posibila datorită transmisiei de pachete maximum 8
utilizatori pe slot temporal)
creşterea eficienţei utilizării resurselor radio prin alocare asimetrică uplinkdownlink
creşterea eficienţei utilizării resurselor radio prin alocarea dinamică a canalelor icircntre
servicii comutate icircn mod circuit respectiv pachet
Cacircnd un icircntreg cadru TDMA este alocat unui utilizator cu schema de protecţie minimă
(practic fără corecţie de erori) rezultă rata utilă instantanee maximă posibilă icircn GPRS
(8x214 kbps=1712 kbps)
242 Comutaţie de circuite şi comutaţie de pachete
20
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comutaţia este o tehnică esenţială icircn reţelele de comunicaţii Fără ea fiecare
echipament terminal ar trebui conectat printr-o cale directă cu fir sau fără la toate celelalte
echipamente terminale din reţea Principalele metode de comutaţie sunt
comutaţia de circuite
comutaţia de mesaje
comutaţia de pachete
Comutaţia de circuite
Aceasta presupune realizarea icircntre emiţător şi receptor a unei căi fizice de comutaţie
dedicate numită circuit Icircntreaga comunicaţie se desfăşoară icircn trei etape
stabilirea conexiunii (sau deschiderea circuitului)
transferul de informaţii
eliberarea conexiunii (circuitului)
Este de remarcat faptul că stabilitatea fizică a caii de comunicaţie are loc icircnainte de
icircnceperea transmisiunii propriu-zise Aceasta poate conduce la durate semnificative ale
timpului de conectare
Un dezavantaj notoriu al acestei tehnici este alocarea fixă a resurselor de comunicaţie
necesare pe durata conexiunii indiferent dacă la un moment sau altul mediul de transmisie
este folosit total parţial sau deloc
Pe de altă parte avantajele comutaţiei de circuite provin tocmai din această alocare fixă de
resurse care permite
asigurarea unei icircntacircrzieri constante şi minime
garantarea unui debit util corespunzător mediului de comunicaţie şi serviciului utilizat
Toate acestea facilitează oferirea serviciilor de timp real (telefonie videofonie alte
transmisiuni video) Exemplul tipic de reţea cu comutaţie de circuite este reţea telefonică
publică comutată (PSTN) Reţeaua GSM este de asemenea o reţea cu comutaţie de circuite
Referindu-ne strict la interfaţa radio a reţelelor fără fir etapa de stabilire a conexiunii
presupune alocarea unui canal radio (sau a mai multora icircn cazul HSCSD) unei staţii mobile
(MS) Acest canal rămacircne icircn posesia terminalului mobil pe toata durata conexiunii chiar dacă
transferul de date este discontinuu (icircn rafale) sau chiar icircncetează cu desăvacircrşire (de exemplu
21
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cacircnd utilizatorul citeşte cu atenţie cinci minute o pagină WEB după care lămurit pe deplin
icircntrerupe legătura) Ca o particularizare binecunoscută a reţelelor cu comutaţie de circuite
trebuie menţionat că utilizatorul trebuie să plătească pentru icircntreaga durată a conexiunii chiar
dacă a fost risipitor şi nu a folosit resursa ce i-a fost alocată
Comutaţia de mesaje
Este o tehnică ce nu stabileşte apriori o cale de transmisiune icircntre emiţător şi receptor
Informaţia ce urmează a fi transmisă formează o entitate bine precizată numita mesaj
Mesajele sunt complet independente unele faţă de altele şi pot avea lungimi variabile deşi
structura (formatul) lor poate fi prestabilit Emiţătorul trebuie sa ataşeze mesajului adresa
destinatarului decizia cu privire la ruta pe care o va urma mesajul fiind de competenţa
fiecărui comutator (router) prin care trece Fiecare comutator va memora mesajul după care icircl
va transmite pe ieşirea selectată de el Principala problemă a comutaţiei de mesaje este dată de
dimensiunea mare a mesajelor Din această cauză comutatoarele de mesaje au nevoie de o
capacitate de stocare uriaşă iar icircntacircrzierea icircn noduri poate deveni inacceptabilă din cauza
monopolizării ieşirilor de către mesajele lungi Exemplul tipic de reţea cu comutaţie de
mesaje este reţeaua telex
Comutaţia de pachete
Rezolvă o mare parte din dezavantajele comutaţiei de mesaje stabilind o lungime
maximă a entităţii informaţionale care circulă prin reţea numită pachet Pachetele sunt icircn
general rezultatul divizării mesajelor icircn blocuri de lungime mică Datorită acestui fapt spre
deosebire de mesaje pachetele nu sunt independente O recepţie corespunzătoare implică
refacerea mesajului prin ordonarea pachetelor după logica folosită la emisie Pentru aceasta
exista două posibilităţi apropiate conceptual de comutaţia de mesaje respectiv de comutaţia
de circuite
A Comutaţia de pachete fără conexiune (sau neorientată pe conexiune)
Icircn cazul comutaţiei de pachete fără conexiune pachetele (numite şi datagrame) se transmit
independent icircn cel mai pur spirit al comutaţiei de mesaje urmacircnd rute posibil diferite
Sosirea lor la destinaţie poate avea loc icircntr-o ordine aleatoare ceea ce necesită reordonarea lor
de către receptor Refacerea succesiunii corecte a pachetelor se bazează pe informaţia
22
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
suplimentară din fiecare pachet privitoare la mesajul din care face parte şi locul pe care icircl
ocupa icircn el Exemplul tipic de reţea care utilizează comutaţia de pachete este internetul
BComutaţia de pachete orientată pe conexiune (sau circuit virtual)
Icircn cazul comutaţiei de pachete orientată pe conexiune (sau circuit virtual) comunicarea
icircntre terminale presupune stabilirea unei căi anume pe care va circula fluxul informaţional
dintre acestea similar cu comutaţia de circuite Spre deosebire de aceasta nu este vorba de
dedicarea unui circuit fizic comunicării respective ci de configurarea unui circuit logic
numit circuit virtual Aceasta icircnseamnă că toate pachetele vor urma aceeaşi cale prin reţea
fără a dedica suportul fizic comunicaţiei respective Pachetele altor utilizatori vor putea folosi
foarte bine segmente din calea respectivă sau chiar icircntreaga cale La stabilirea circuitului
virtual fiecare comutator (router) trebuie să memoreze icircn tabela de dirijare care este
succesorul său icircn respectivul circuit virtual Astfel spre deosebire de comutaţia de pachete
fără conexiune după stabilirea circuitului virtual comutatorul nu mai trebuie să decidă calea
fiecărui pachet Avacircnd memorat nodul succesor icircn fiecare dintre circuitele virtuale icircn care este
implicat comutatorul va identifica circuitul asociat pachetului şi icircl va transmite pe acesta pe
linia de ieşire corespunzătoare Tehnica circuitului virtual garantează livrarea icircn ordine a
pachetelor la destinaţie Exemple marcante de reţele ce utilizează comutaţia de pachete de tip
circuit virtual sunt X25 şi ATM
Marele avantaj al comutaţiei de pachete este utilizarea eficientă a resurselor de
transmisiune Deoarece acestea nu sunt dedicate ele pot fi folosite după necesităţi pentru a
transmite pachete provenind de la utilizatori diferiţi Din acest motiv comutaţia de pachete
este extrem de avantajoasă icircn cazul unei infrastructuri cu resurse de transmisiune limitate
cum este şi cazul reţelelor fără fir
Un dezavantaj important al comutaţiei de pachete este dat de gestionarea comutatoarelor
(routerelor) icircn cazul unui trafic crescut la intrare Pierderea pachetelor garantarea unei
icircntacircrzieri maxime şi a unui debit utilizator constant sunt problemele spinoase ale comutaţiei
de pachete Ele reprezintă obstacole icircn special icircn calea oferirii serviciilor de timp real cum ar
fi telefonia
Icircn schimb icircn cazul transmisiilor de date avantajul bunei administrări a resurselor
prevalează De exemplu icircn cazul particular al interfeţei radio GSM cacircnd o staţie mobilă (MS)
generează un pachet de date reţeaua icircl va transmite pe un canal radio disponibil icircn acel
moment Următorul pachet de pe acel canal poate să aparţină aceleiaşi MS dacă are ceva de
23
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
transmis sau dacă nu alteia Icircn acest mod atacircta timp cacirct cineva are ceva de transmis
canalele radio nu sunt blocate inutil Lucrul icircn mod pachet are o eficienţă cu totul deosebită icircn
cazul unui trafic de date icircn rafale (data bursts)
Aşadar pentru un sistem GSM bazat esenţialmente pe comutaţia de circuite este
extrem de utilă alocarea resurselor neutilizate de către serviciile vocale pentru servicii mai
puţin prioritare Atacirct HSCSD cacirct şi GPRS icircşi propun acest lucru Serviciile cele mai potrivite
pentru valorificarea resurselor rămase (preferabil printr-un mecanism de alocare dinamică)
sunt tocmai cele care implică un trafic de date icircn rafale fără pretenţii de timp real Diferenţa
fundamentală icircntre HSCSD şi GPRS este că acesta din urmă valorifică aceste resurse icircntr-un
mod mult mai eficient deoarece utilizează comutaţia de pachete Icircn plus costul serviciilor
oferite este mai atractiv deoarece utilizatorul plăteşte volumul de date transferat Practic dacă
doreşte utilizatorul poate fi sbquoconectatrsquo la reţeaua de date icircn permanenţă fiind taxat doar
pentru timpul icircn care efectiv utilizează resursele reţelei adică pentru pachetele de date
recepţionate respectiv transmise
243 Servicii GPRS
Dintre aplicaţiile cele mai potrivite pentru GPRS se pot aminti mesageria de orice tip
difuzare şi distribuţie multiplă telemetrie jocuri navigare de mică anvergură pe reţeaua
internet Icircn general orice tip de aplicaţii ce necesită comunicaţii maşină - maşină la debite
mici şi medii sunt adecvate dezvoltării icircn mediul GPRS
Ca şi icircn reţeaua GSM reţelele GPRS pot oferi două categorii de servicii de
telecomunicaţii
servicii de bază
servicii suplimentare
Serviciile de bază GPRS
Acestea sunt icircn principal servicii suport (bearer services) de transport care realizează
transmiterea datelor cu comutaţie de pachete icircntre două interfeţe şi din teleservicii Similar
situaţiei din GSM aceste interfeţe sunt
interfaţa dintre echipamentul terminal de date (de exemplu calculator) şi terminalul
mobil GPRS
24
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
interfaţa dintre reţeaua GPRS şi reţeaua de date sau echipamentul terminal cu care
comunică Aceasta interfaţă este situată icircntr-un nod poartă (gateway) GPRS similar
situaţiei din GSM unde locul ei este GMSC
Teleserviciul fundamental oferit de GPRS este cel de transport de date şi este detaliat
mai jos Un alt teleserviciu oferit de GPRS este transmisia şi recepţia de mesaje scurte (SMS)
Astfel pe de o parte capacitatea de transmisie a mesajelor scurte va creşte iar pe de alta
parte reţeaua de semnalizări pe care se transmit icircn GSM aceste mesaje nu va mai fi icircncărcată
şi cu mesaje scurte ce vin sau pleacă de la la terminalele mobile GPRS
Servicii GPRS de transport
Sunt definite doua categorii de teleservicii de transport
servicii punct-la-punct (PTP ndashPoint-to-Point)
servicii punct la multipunct (PTM-Point-to-Multipoint)
A Serviciul PTP
Serviciul punct la punct (PTP) [GSM 0260] permite transmiterea de pachete de date
icircntre doi utilizatori Este implementat icircn GPRS faza 1 Abonatul care a iniţiat serviciul se
numeşte solicitant (service requester) Partenerul său se numeşte receptor al serviciului
(service receiver)
Serviciul PTP poate fi solicitat fie de la terminalul mobil GPRS fie de la un
echipament situat icircntr-o reţea de date fixă (IP X25) Serviciul PTP poate fi oferit de
asemenea icircntre doi utilizatori mobili GPRS
Serviciul punct-la punct poate fi la racircndul sau de două tipuri
PTP fără conexiune (PTP-CLNS ndash PTP Connectinnless Network Service)
PTP orientat pe conexiune (PTP-CONS ndashPTP Connection Orientated Network
Network Service)
PTP-CLNS este un serviciu de tip datagramă ce utilizează comutaţia de pachete fără
conexiune Este util icircn cazul aplicaţiilor ce generează trafic icircn rafale şi are că scop asigurarea
interoperării cu reţele IP
PTP-CONS este un serviciu de tip circuit virtual ce utilizează comutaţia de pachete
orientata pe conexiune Icircntre cei doi utilizatori se stabileşte un circuit virtual pentru o perioadă
25
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ce poate varia de la cacircteva secunde la ore Este util atacirct pentru aplicaţii ce generează trafic icircn
rafale cacirct şi pentru aplicaţiile interactive Are că scop asigurarea interoperării cu reţele X25 şi
derularea peste GPRS a aplicaţiilor bazate pe protocolul OSI CONS(Connection Orientated
Network Protocol)
O reţea GPRS trebuie să asigure menţinerea circuitului virtual la trecerea dintr-o
celulă icircn alta dar numai icircn interiorul aceleiaşi reţele GPRS-PLMN La trecerea terminalului
mobil icircntr-o altă reţea sau icircn cazul căderii legăturii radio circuitul virtual va fi eliberat Pentru
ambele tipuri de servicii pe interfaţa radio se poate opera fie cu confirmare fie fără
confirmare a transportului de date
B Serviciul PTM
Serviciul punct la multipunct (PTM) permite transmiterea de pachete de date de la un
utilizator către mai mulţi utilizatori El este implementat icircn faza a doua a GPRS O
comunicaţie PTM se stabileşte icircntre un furnizor de servicii (ce poate fi situat icircn afară reţelei
GSM) şi un grup de terminale GPRS Şi serviciul PTM este un serviciu ce se prezintă icircn două
variante
PTMndash multidistribuţie (PTM Multicast)
PTM- grup (PTM-G--PTMGroup)
Serviciul de transport PTM-M permite transmiterea pachetelor de date icircntr-o arie
geografică dată (celulă grup de celule) fără confirmare Receptorii serviciului sunt fie toţi
abonaţii care se găsesc icircn acea zonă fie un grup icircnchis de utilizatori
Icircn cazul PTM-G receptorul serviciului este un grup predefinit de utilizatori Pachetele de
date vor fi trimise către toţi membrii grupului indiferent de aria geografică unde se găsesc
aceştia Este posibilă şi transmiterea doar către acei membri care se găsesc icircn anumite zone
geografice Transmisia poate fi şi cu confirmare
Serviciile suplimentare
Printre serviciile suplimentare avute icircn vedere icircntr-un prim stadiu se numără
redirecţionarea necondiţionată a apelurilor redirecţionarea cacircnd abonatul nu este accesibil şi
definirea de grupuri icircnchise de utilizatori In afară de aceste servicii recomandarea GSM
0260 descrie posibilitatea oferirii de servicii adiţionale cum sunt accesarea bazelor de date
servicii de mesagerie validări de cărţi de credit servicii de monitorizare electronică tranzacţii
electronice etc
26
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
244 Arhitectura GPRS
GPRS este o soluţie pentru operatori deoarece nu necesită modificări substanţiale icircn
reţeaua GSM Aşa cum se observă icircn figura 72 reţeaua nucleu a GPRS operează icircn paralel
cu GSM-NSS
Figura 23 Arhitectura reţelei GPRS
25 LabWindowsCVI
La dipecer am considerat un calculator desktop sau laptop pe care va rula o aplicaţie
de monitorizare a datelor măsurate implementată icircn LabWindowsCVI
LabWindowsCVI este o platformă pentru dezvoltare de software cu orientare pe
aplicaţii de instrumentaţie După cum se deduce din denumirea sa (CVI ndash C for Virtual
Instrumentation) limbajul acceptat este ANSI C cu extensii specifice CVI ne pune la
dispoziţie un mediu interactiv de dezvoltare a unor aplicaţii pentru sistemul de operare
Windows Icircmbină deci avantajele programării de tip vizual cu avantajele simplităţii şi
flexibilităţii limbajului C Deşi a fost creat special pentru aplicaţii de instrumentaţie şi control
27
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
multiplele lui facilităţi icircl fac capabil să suporte şi dezvoltarea unor aplicaţii de mărime medie
care să fie de altă factură Fiecare funcţie de bibliotecă din cadrul acestui mediu are o interfaţă
specializată numită panoul funcţiei (function panel) care permite
bull Help on-line
bull Selectare şi declarare de variabile sau constante necesare
bull Execuţie interactivă
bull Inserarea funcţiei editate icircntr-un text sursă
Mediul este extrem de flexibil permiţacircnd interfaţarea bidirecţională cu alte compilatoare de
C sau C++ De asemenea se pot folosi şi DLL-uri
Puterea mediului LabWindowsCVI este dată de bibliotecile puse la dispoziţia
programatorului acestea conţinacircnd funcţii pentru implementarea diverselor faze care conduc
la o aplicaţie din domeniul achiziţiei de date sau a controlului automat
Pentru achiziţia de date există următoarele biblioteci specializate
bull de instrumente
bull pentru interfaţa GPIBGPIB 4882 (General Purpose Interface Bus)
bull pentru achiziţie de date
bull pentru operaţii IO icircn cazul achiziţiei de date
bull pentru interfaţa serială RS232
bull pentru sistemul VXI
Biblioteci specializate pentru analiza datelor
bull pentru IO
bull pentru formatarea specială
bull pentru analiză
bull pentru analiză avansată
Biblioteci specializate pentru vizualizare date
bull pentru crearea unei interfeţe utilizator de tip vizual
Biblioteci specializate pentru lucrul icircn reţea şi comunicarea icircntre diverse aplicaţii
bull pentru DDE (Dynamic Data Exchange)
bull pentru TCP (Transmision Control Protocol)
bull pentru sistemul X de sub Unix
Icircn afară de acestea mai există o bibliotecă specială numită biblioteca de instrumente
care conţine drivere şi sursele lor pentru osciloscoape multimetre şi generatoare de funcţii
De asemenea există posibilitatea creării unui instrument propriu Biblioteca pentru interfaţa
28
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cu utilizatorul conţine funcţiile necesare creării unui GUI (Graphical User Interface =
Interfaţă grafică cu utilizatorul) după necesităţi
Structura generică a unei aplicaţii dezvoltate sub CVI
Un proiect complet pentru una din clasele de aplicaţii specifice mediului CVI are
următoarele componente generice
bull interfaţa cu utilizatorul
bull partea de control a aplicaţiei
bull partea specializată pentru achiziţia datelor
bull partea specializată icircn analiza respectivelor date
Mai jos prezentăm o schemă generică a aplicaţiilor CVI
Figura 24
Tipuri de fişiere folosite icircn cadrul CVI
PRJ se referă la fişiere de tip proiect
UIR se referă la fişiere care conţin descrierea unei interfeţe grafice cu utilizatorul
C fişiere sursă
H fişiere header
FP fişiere care reţin descrierea unui instrument
LIB fişiere bibliotecă
DLL fişiere link-editate pentru apel dinamic
OBJ fişiere obiect
29
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a unora dintre meniurile şi ferestrele mediului de dezvoltare CVI
Fereastra proiect
Prezentăm mai jos doar informaţiile suplimentare faţă de o fereastră proiect standard
Pe lacircngă datele curente despre fiecare fişier inclus icircn proiect acesta mai are precizat şi unul
sau mai mulţi din următorii indici
- I indică faptul că respectivul fişier conţine descrierea unui driver de instrument
- S faptul că s-au făcut modificări icircn fişierul respectiv şi deci trebuie salvat
- C indică obligativitatea compilării respectivului fişier icircnainte de rularea aplicaţiei
- indică faptul că fişierul este deschis icircntr-o fereastră de editare
- indică ca acest fişier nu este deschis
Aplicaţii consolă
Pentru aplicaţiile tip consolă clasice C unde se folosesc pentru IO funcţiile scanf şi
printf vizualizarea ieşirii icircn mod text a acestora se va face icircntr-o fereastră specială numită
ldquoStandard InputOutput Windowrdquo
Observaţie Dacă se va programa icircn acest mod trebuie activată opţiunea ldquoBring Standard
InputOtput to front whenever modifyrdquo din Environment ce aparţine meniului Options
Generatorul interactiv de aplicaţii
Butoanele directe ale editorului de interfeţe cu utilizatorul
folosit la selectare mutare şi dimensionare obiecte
utilizat pentru a modifica textul asociat cu obiectele din UIR folosind facilităţile de
etichetare
folosit pentru colorarea obiectelor Este suficientă o apăsare pe butonul din dreapta a
mouse-ului şi va colora automat obiectul selectat cu culoarea curentă
oferă facilităţi de operare Atunci cacircnd este activat evenimentele vor fi afişate icircn partea
dreaptă a barei de facilităţi
30
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a cacirctorva din meniurile mai importante ale generatorului
Menu Bars activează cutia de dialog care ne prezintă toate barele de meniu definite deja de
programator
Figura 25
Create apelează fereastra Edit Menu Bar pentru a crea o nouă bară de meniuri
Edit apelează fereastra Edit Menu Bar pentru a modifica o bară de meniuri existentă
Fereastra Edit Menu Bar(fig26) permite specificarea sau modificarea caracteristicilor
unei bare de meniuri icircn curs de creare sau care există deja
31
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 26
Menu Bar Constant Prefix este identificatorul intern al respectivei bare de meniuri Acesta
va fi folosit de funcţia LoadMenuBar pentru icircncărcarea icircn memorie a parametrilor care conţin
această bară Va fi definit automat icircn fişierul header din scheletul de aplicaţie
Item se referă la numele meniului curentsubmeniucomandă de meniu Dacă icircn faţa primei
litere a unui element din meniu se adaugă 2 ldquounderscorerdquo la execuţie acesta va putea fi
selectat prin combinaţia Alt+prima literă
Constant name este alipit la Menu Bar Constant Prefix pentru a se genera identificatorul
elementului curent Este folosit de funcţii ca GetMenuBarAttribute sau SetMenuBarAttribute
De asemenea acest identificator este returnat de GetUserEvent atunci cacircnd apare un
eveniment generat de o comandă a meniului
Callback Function Permite specificarea numelui unei funcţii de răspuns care va fi apelată
automat la activarea respectivului element Folosirea ei este opţională
32
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ModifierKeyShortcutKey se combină pentru a ataşa o cheie ldquohotrdquo pentru elementul
curent
buton ce permite coboracircrea icircn interiorul unei ierarhii de meniuri
buton ce permite urcarea icircn interiorul unei ierarhii de meniuri
Panouri
După cum am spus sunt echivalentul ferestrelor din programarea Windows Pentru a le crea
Create1048774Panel ne pune la dispoziţie un nou panou icircn cadrul UIR-ului curent Prin dublu
ldquoclickrdquo pe acesta se va intra in fereastra de editare a caracteristicilor panoului Această
fereastră este prezentată mai jos
Figura 27
La partea de Menu Bar se poate specifica o bară din cele deja create icircn cazul dezvoltării
respectivei interfeţe
Restul parametrilor au fost discutaţi anterior sau sunt cunoscuţi din programarea Windows
33
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Crearea controalelor
Exceptacircnd diferenţele care apar funcţie de destinaţia acestora există o serie de parametri
comuni fiecărui control pe care icircl creăm Mai jos prezentăm fereastra care apare de exemplu
la crearea unui control de tip numeric şi anume un buton
Figura 28
Se observă că identificatorul intern şi posibilitatea de ataşare a unei funcţii de răspuns
rămacircne De asemenea o serie de informaţii specifice părţii de etichetare Icircn plus apar
specificaţii privind modul de afişare a datelor şi limitele icircntre care acestea pot fi variate prin
intermediul acestui control
34
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
TAB ORDER
Fiecare control de pe un panou activ are o poziţie icircn ordinea de salt prin intermediul
unui tab Această ordine precizează care va fi următorul control ce va fi activat icircn cazul icircn
care utilizatorul apasă Tab sau Shift+Tab Implicit acestea sunt adăugate exact icircn ordinea
creării lor de către programator Numai că nu icircntotdeauna aceasta este ordinea de salt dorită a
fi activă la terminarea aplicaţiei Icircn aceste condiţii secvenţa Edit1048774Tab Order ne va activa un
panou specializat pentru aceasta
Figura 29
noua formă de cursor activă icircn interiorul ferestrei Prin apăsarea pe un control oarecare i
se
poate modifica ordinea de activare
specifică faptul că se acceptă noua ordine de apelare
se iese cu păstrarea vechii ordini
Find UIR Objects
O altă facilitate a editorului este Find UIR Objects care aparţine meniului View Icircn
cadrul unor proiecte mari se dovedeşte a fi extrem de utilă
35
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 210
După cum se observă ne permite căutarea după dorinţă a unui nume icircn diverse categorii de
obiecte ale interfeţei cu utilizatorul
GENERATE
Este meniul folosit pentru generarea fie a icircntregului cod schelet fie numai a codului
corespunzător unui obiect proaspăt introdus icircntr-un UIR
Secvenţa Code1048774Generate1048774AllCode va genera codul schelet pentru aplicaţie Acesta va
conţine şi un ldquoswitchrdquo pentru tratarea evenimentelor Alegerea evenimentelor care vor fi
automat introduse se face din Code1048774Preferences
MENIUL ARRANGE
Icircncă de la primele aplicaţii vom observa că una din operaţiile mari consumatoare de
timp este aranjarea controalelor icircn panou după specificarea caracteristicilor acestora Pentru a
evita acest lucru CVI a fost prevăzut cu o serie de facilităţi de aranjare automată pe care le
vom prezenta mai jos
Figura 211
Top Edges asigură spaţiere verticală icircntre partea superioară a controalelor Cel mai de
sus şi cel mai de jos control sunt considerate puncte de referinţă
36
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Vertical Centers asigură spaţiere verticală icircntre centrele controalelor Cel mai de sus
şi cel mai de jos control sunt considerate puncte de referinţă
Bottom Edges asigură spaţiere verticală icircntre partea inferioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Vertical Gap asigură spaţiere verticală icircntre partea superioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Left Edges setează spaţii orizontale egale icircntre marginile din stacircnga ale controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Centers setează spaţii orizontale egale icircntre centrele controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Right Edges setează spaţii orizontale egale icircntre marginile din dreapta ale
controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Gap spaţiere orizontală icircntre controale Cel mai de sus şi cel mai de jos
control sunt considerate puncte de referinţă
Horizontal Compress minimizează spaţiile pe orizontală dintre controale şi elimină
orice spaţiu dintre ele
Distribute Vertical Centers
Comanda Distribute realizează la apel ultima opţiune selectată din lista prezentată
mai sus
37
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Icircn Python variabilele nu sunt declarate icircn script ele apar doar atunci cand sunt folosite
232 Operatori
Icircn Python există următorii operatori
Operatori aritmetici
+ - ~ ltlt gtgt amp ^ |
Operatori relaţionali şi logici
is in lt lt= gt gt= == = not and or
Operatori de asignare
= += -= = = = = ltlt= gtgt= amp= ^= |=
Alţi operatori
( ) [ ] [] `` lambda
233 Comenzi compuse
Comenzile care aparţin aceluiaşi grup logic sunt deplasate spre dreapta cu acelaş
număr de spaţii albe
if a gt 0
b = 1
c = 2
De obicei fiecare comandă icircncepe pe o linie nouă
16
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
O instrucţiune se poate continua pe racircndul următor prin plasarea caracterului backslash
la sfacircrsitul randului Acest lucru nu este necesar dacă există paranteze deschise
my_list = [1
[abc 2]
-3+6j]
print my_list
234 Execuţii condiţionale
Python foloseşte if elif (nu elsif sau elseif) si else pentru a indica execuţia condiţională a
unei instrucţiuni
De exemplu
if a gt b
print a is greater than b
elif a lt b
print a is lower than b
else
print a equals b
Se poate folosi si interval prescurtate de testare
if 2 lt= a lt= 7
print a is in the interval [2 7]
235 Bucle
Buclele in Python sunt definite prin cuvintele cheie for şi while
Următorul exemplu foloseşte o buclă while pentru a colecta toate numerele intregi
cuprinse intre 0 si 99 intr-o listăacirc
numbers = [ ]
i = 0
while i lt 100
17
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
numbersappend(i)
i = i + 1
O buclă similar for arată in felul următor
numbers = [ ]
for i in range(100)
numbersappend(i)
Icircn loc de buclele explicite prezentate mai sus se poate folosi şi bucle implicite după
cum urmează
numbers = range(100)
range(100) generează o listă cu toate numerele intregi de la 0 la 100
24 General packet radio service(GPRS)
Comunicaţia intre modemuri ( RTU-uri ) şi dispecer se poate face prin mai mlte
mediu de transmisie
- Cablu telephonic
- Radio
- GSMGPRS
- Fibră Optică
Opţiunea pentru care am optat icircn partea de comunicaţie este GSMGPRS deoarece
asigură o cumunicaţie sigură şi oferă simplitate pentru priectant
GPRS introduce servicii de transport cu comutaţie de pachete pentru debite de la 14
kbps la maximum 170 kbps Practic GPRS este o reţea cu comutaţie de pachete de sine
stătătoare care se daugă la reţeaua GSM GPRS interoperează cu infrastructura GSM la
nivelul subsistemului staţiilor de bază BSS şi al bazelor de date din subsistemul reţea NSS
(HLR VLR AUC) GPRS preia traficul de date iar GSM traficul de voce care rămacircne
comutat prin MSC
Datele sunt transmise prin GPRS icircn pachete de lungimi fixe Fiecare pachet conţine
adresa destinaţie pentru a putea fi rutat de nodurile GPRS Modificarea pe interfaţa radio e
18
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
dată de introducerea codării adaptive a canalului Aceasta icircnseamnă că protecţia datelor
variază icircn timp icircn funcţie de starea canalului radio GPRS poate utiliza pentru o conexiune
de date de la fracţiuni de canale de trafic pacircnă la maximum 8 sloturi temporale (adică tot
cadrul TDMA) icircn funcţie de resursele disponibile
Capacitatea alocată unei conexiuni va varia icircn funcţie de icircncărcarea cu trafic de pe
frecvenţa respectivă precum şi de tipul traficului (vocedate) Este important că utilizacircnd
comutaţia de pachete o transmisie de date nu ocupă resursele reţelei decacirct atunci cacircnd sunt
date de transmis Cacircnd nu există pachete de transmis resursele de pe interfaţa radio pot fi
utilizate pentru alte transmisii de date sau pentru trafic cu comutaţie de circuite
GPRS are o reţea nucleu proprie formată prin interconectarea serverelor care
gestionează transmisia de pachete numite noduri suport GPRS (GSN- GPRS Suport Node)
Aceasta reţea operează icircn paralel cu subsistemul reţea şi comutaţie (NSS) al GSM care va
gestiona icircn continuare transmisia cu comutaţie de circuite
241 Caracteristicile sistemului GPRS
GPRS este un serviciu specificat icircn faza 2+ de standardizare a GSM El este oferit prin
intermediul unei infrastructuri numită şi sistem sau reţea GPRS ce interoperează cu
infrastructura bdquoclasicărdquo GSM
GPRS se icircncadrează icircn orientarea generală a ETSI de a asigura prin aza 2+ o platformă
ce va putea fi utilizată ulterior icircn reţele de generaţia a treia Astfel el este onsiderat
actualmente soluţia de bază pentru transmiterea de date icircn UMTS Fiind un standard SM
GPRS păstrează evident şi compatibilitatea cu sistemul părinte fiind practic o extensie a
acestuia pentru transmisii de date la debite mai mari GPRS reprezintă la ora actuală cel mai
reprezentativ sistem de generaţie intermediară (25G)
Dacă HSCSD ar putea fi considerat o ajustare fină a GSM GPRS reprezintă cu
siguranţă un salt tehnologic semnificativ deoarece marchează trecerea de la comutaţia de
circuite la cea de pachete Schimbarea tipului de comutaţie se referă icircn acest moment (atacirct la
25G cacirct şi icircn 3G) doar la transmiterea datelor vocea rămacircnacircnd icircn continuare comutată prin
MSC Datorită eternei insuficienţe a resurselor radio este probabil ca icircntr-o fază nu prea
icircndepărtată de dezvoltare a UMTS şi de ce nu chiar a GPRS să fie utilizată comutaţia de
pachete şi pentru serviciile de timp real vocale sau non-vocale
Icircn concluzie GPRS reprezintă o infrastructura ce permite transmiterea datelor pe baza
comutaţiei de pachete icircntr-o reţea GSM
19
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Pentru a putea oferi debite de date mai ridicate icircn GPRS se urmăreşte utilizarea cacirct
mai eficientă a resurselor radio Pentru aceasta se preia de la HSCSD ideea operării multislot
posibilitatea de a proteja mai puţin informaţia utilă pe interfaţa radio şi alocarea asimetrică
uplink downlink Icircn ciuda acestor asemănări icircnlocuirea comutaţiei de circuite cu cea de
pachete face din GPRS un sistem complet diferit de HSCSD Aceasta atacirct din punct de vedere
al utilizatorului care constată un timp de conectare practic nul şi rate de transfer mai bune
dar şi din punct de vedere al operatorului care efectuează o investiţie incomparabil mai mare
răsplătită printr-o mai eficientă utilizare a interfeţei radio cu tot ceea ce rezultă de aici (mai
mulţi clienţi mai multe servicii aplicaţii diverse)
Rezumacircnd icircn GPRS este implementat un set de soluţii tehnologice ce au ca scop
principal creşterea eficienţei utilizării interfeţei radio Aceasta derivă atacirct din experienţa
sistemelor anterioare cacirct şi mai ales din operarea icircn modul pachet a datelor ce se transmit
Soluţiile utilizate sunt
creşterea ratei de transmisie a datelor prin reducerea codării canalului (sunt definite
şi pot
fi utilizate 4 scheme de codare 905kbps 134 kbps 156 kbps 214kbps)
creşterea ratei de transmisie prin operare multislot ( pacircnă la 8 sloturi temporale per
utilizator)
creşterea eficienţei utilizării resurselor radio prin multiplexarea mai multor
utilizatori pe acelaşi canal fizic (posibila datorită transmisiei de pachete maximum 8
utilizatori pe slot temporal)
creşterea eficienţei utilizării resurselor radio prin alocare asimetrică uplinkdownlink
creşterea eficienţei utilizării resurselor radio prin alocarea dinamică a canalelor icircntre
servicii comutate icircn mod circuit respectiv pachet
Cacircnd un icircntreg cadru TDMA este alocat unui utilizator cu schema de protecţie minimă
(practic fără corecţie de erori) rezultă rata utilă instantanee maximă posibilă icircn GPRS
(8x214 kbps=1712 kbps)
242 Comutaţie de circuite şi comutaţie de pachete
20
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comutaţia este o tehnică esenţială icircn reţelele de comunicaţii Fără ea fiecare
echipament terminal ar trebui conectat printr-o cale directă cu fir sau fără la toate celelalte
echipamente terminale din reţea Principalele metode de comutaţie sunt
comutaţia de circuite
comutaţia de mesaje
comutaţia de pachete
Comutaţia de circuite
Aceasta presupune realizarea icircntre emiţător şi receptor a unei căi fizice de comutaţie
dedicate numită circuit Icircntreaga comunicaţie se desfăşoară icircn trei etape
stabilirea conexiunii (sau deschiderea circuitului)
transferul de informaţii
eliberarea conexiunii (circuitului)
Este de remarcat faptul că stabilitatea fizică a caii de comunicaţie are loc icircnainte de
icircnceperea transmisiunii propriu-zise Aceasta poate conduce la durate semnificative ale
timpului de conectare
Un dezavantaj notoriu al acestei tehnici este alocarea fixă a resurselor de comunicaţie
necesare pe durata conexiunii indiferent dacă la un moment sau altul mediul de transmisie
este folosit total parţial sau deloc
Pe de altă parte avantajele comutaţiei de circuite provin tocmai din această alocare fixă de
resurse care permite
asigurarea unei icircntacircrzieri constante şi minime
garantarea unui debit util corespunzător mediului de comunicaţie şi serviciului utilizat
Toate acestea facilitează oferirea serviciilor de timp real (telefonie videofonie alte
transmisiuni video) Exemplul tipic de reţea cu comutaţie de circuite este reţea telefonică
publică comutată (PSTN) Reţeaua GSM este de asemenea o reţea cu comutaţie de circuite
Referindu-ne strict la interfaţa radio a reţelelor fără fir etapa de stabilire a conexiunii
presupune alocarea unui canal radio (sau a mai multora icircn cazul HSCSD) unei staţii mobile
(MS) Acest canal rămacircne icircn posesia terminalului mobil pe toata durata conexiunii chiar dacă
transferul de date este discontinuu (icircn rafale) sau chiar icircncetează cu desăvacircrşire (de exemplu
21
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cacircnd utilizatorul citeşte cu atenţie cinci minute o pagină WEB după care lămurit pe deplin
icircntrerupe legătura) Ca o particularizare binecunoscută a reţelelor cu comutaţie de circuite
trebuie menţionat că utilizatorul trebuie să plătească pentru icircntreaga durată a conexiunii chiar
dacă a fost risipitor şi nu a folosit resursa ce i-a fost alocată
Comutaţia de mesaje
Este o tehnică ce nu stabileşte apriori o cale de transmisiune icircntre emiţător şi receptor
Informaţia ce urmează a fi transmisă formează o entitate bine precizată numita mesaj
Mesajele sunt complet independente unele faţă de altele şi pot avea lungimi variabile deşi
structura (formatul) lor poate fi prestabilit Emiţătorul trebuie sa ataşeze mesajului adresa
destinatarului decizia cu privire la ruta pe care o va urma mesajul fiind de competenţa
fiecărui comutator (router) prin care trece Fiecare comutator va memora mesajul după care icircl
va transmite pe ieşirea selectată de el Principala problemă a comutaţiei de mesaje este dată de
dimensiunea mare a mesajelor Din această cauză comutatoarele de mesaje au nevoie de o
capacitate de stocare uriaşă iar icircntacircrzierea icircn noduri poate deveni inacceptabilă din cauza
monopolizării ieşirilor de către mesajele lungi Exemplul tipic de reţea cu comutaţie de
mesaje este reţeaua telex
Comutaţia de pachete
Rezolvă o mare parte din dezavantajele comutaţiei de mesaje stabilind o lungime
maximă a entităţii informaţionale care circulă prin reţea numită pachet Pachetele sunt icircn
general rezultatul divizării mesajelor icircn blocuri de lungime mică Datorită acestui fapt spre
deosebire de mesaje pachetele nu sunt independente O recepţie corespunzătoare implică
refacerea mesajului prin ordonarea pachetelor după logica folosită la emisie Pentru aceasta
exista două posibilităţi apropiate conceptual de comutaţia de mesaje respectiv de comutaţia
de circuite
A Comutaţia de pachete fără conexiune (sau neorientată pe conexiune)
Icircn cazul comutaţiei de pachete fără conexiune pachetele (numite şi datagrame) se transmit
independent icircn cel mai pur spirit al comutaţiei de mesaje urmacircnd rute posibil diferite
Sosirea lor la destinaţie poate avea loc icircntr-o ordine aleatoare ceea ce necesită reordonarea lor
de către receptor Refacerea succesiunii corecte a pachetelor se bazează pe informaţia
22
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
suplimentară din fiecare pachet privitoare la mesajul din care face parte şi locul pe care icircl
ocupa icircn el Exemplul tipic de reţea care utilizează comutaţia de pachete este internetul
BComutaţia de pachete orientată pe conexiune (sau circuit virtual)
Icircn cazul comutaţiei de pachete orientată pe conexiune (sau circuit virtual) comunicarea
icircntre terminale presupune stabilirea unei căi anume pe care va circula fluxul informaţional
dintre acestea similar cu comutaţia de circuite Spre deosebire de aceasta nu este vorba de
dedicarea unui circuit fizic comunicării respective ci de configurarea unui circuit logic
numit circuit virtual Aceasta icircnseamnă că toate pachetele vor urma aceeaşi cale prin reţea
fără a dedica suportul fizic comunicaţiei respective Pachetele altor utilizatori vor putea folosi
foarte bine segmente din calea respectivă sau chiar icircntreaga cale La stabilirea circuitului
virtual fiecare comutator (router) trebuie să memoreze icircn tabela de dirijare care este
succesorul său icircn respectivul circuit virtual Astfel spre deosebire de comutaţia de pachete
fără conexiune după stabilirea circuitului virtual comutatorul nu mai trebuie să decidă calea
fiecărui pachet Avacircnd memorat nodul succesor icircn fiecare dintre circuitele virtuale icircn care este
implicat comutatorul va identifica circuitul asociat pachetului şi icircl va transmite pe acesta pe
linia de ieşire corespunzătoare Tehnica circuitului virtual garantează livrarea icircn ordine a
pachetelor la destinaţie Exemple marcante de reţele ce utilizează comutaţia de pachete de tip
circuit virtual sunt X25 şi ATM
Marele avantaj al comutaţiei de pachete este utilizarea eficientă a resurselor de
transmisiune Deoarece acestea nu sunt dedicate ele pot fi folosite după necesităţi pentru a
transmite pachete provenind de la utilizatori diferiţi Din acest motiv comutaţia de pachete
este extrem de avantajoasă icircn cazul unei infrastructuri cu resurse de transmisiune limitate
cum este şi cazul reţelelor fără fir
Un dezavantaj important al comutaţiei de pachete este dat de gestionarea comutatoarelor
(routerelor) icircn cazul unui trafic crescut la intrare Pierderea pachetelor garantarea unei
icircntacircrzieri maxime şi a unui debit utilizator constant sunt problemele spinoase ale comutaţiei
de pachete Ele reprezintă obstacole icircn special icircn calea oferirii serviciilor de timp real cum ar
fi telefonia
Icircn schimb icircn cazul transmisiilor de date avantajul bunei administrări a resurselor
prevalează De exemplu icircn cazul particular al interfeţei radio GSM cacircnd o staţie mobilă (MS)
generează un pachet de date reţeaua icircl va transmite pe un canal radio disponibil icircn acel
moment Următorul pachet de pe acel canal poate să aparţină aceleiaşi MS dacă are ceva de
23
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
transmis sau dacă nu alteia Icircn acest mod atacircta timp cacirct cineva are ceva de transmis
canalele radio nu sunt blocate inutil Lucrul icircn mod pachet are o eficienţă cu totul deosebită icircn
cazul unui trafic de date icircn rafale (data bursts)
Aşadar pentru un sistem GSM bazat esenţialmente pe comutaţia de circuite este
extrem de utilă alocarea resurselor neutilizate de către serviciile vocale pentru servicii mai
puţin prioritare Atacirct HSCSD cacirct şi GPRS icircşi propun acest lucru Serviciile cele mai potrivite
pentru valorificarea resurselor rămase (preferabil printr-un mecanism de alocare dinamică)
sunt tocmai cele care implică un trafic de date icircn rafale fără pretenţii de timp real Diferenţa
fundamentală icircntre HSCSD şi GPRS este că acesta din urmă valorifică aceste resurse icircntr-un
mod mult mai eficient deoarece utilizează comutaţia de pachete Icircn plus costul serviciilor
oferite este mai atractiv deoarece utilizatorul plăteşte volumul de date transferat Practic dacă
doreşte utilizatorul poate fi sbquoconectatrsquo la reţeaua de date icircn permanenţă fiind taxat doar
pentru timpul icircn care efectiv utilizează resursele reţelei adică pentru pachetele de date
recepţionate respectiv transmise
243 Servicii GPRS
Dintre aplicaţiile cele mai potrivite pentru GPRS se pot aminti mesageria de orice tip
difuzare şi distribuţie multiplă telemetrie jocuri navigare de mică anvergură pe reţeaua
internet Icircn general orice tip de aplicaţii ce necesită comunicaţii maşină - maşină la debite
mici şi medii sunt adecvate dezvoltării icircn mediul GPRS
Ca şi icircn reţeaua GSM reţelele GPRS pot oferi două categorii de servicii de
telecomunicaţii
servicii de bază
servicii suplimentare
Serviciile de bază GPRS
Acestea sunt icircn principal servicii suport (bearer services) de transport care realizează
transmiterea datelor cu comutaţie de pachete icircntre două interfeţe şi din teleservicii Similar
situaţiei din GSM aceste interfeţe sunt
interfaţa dintre echipamentul terminal de date (de exemplu calculator) şi terminalul
mobil GPRS
24
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
interfaţa dintre reţeaua GPRS şi reţeaua de date sau echipamentul terminal cu care
comunică Aceasta interfaţă este situată icircntr-un nod poartă (gateway) GPRS similar
situaţiei din GSM unde locul ei este GMSC
Teleserviciul fundamental oferit de GPRS este cel de transport de date şi este detaliat
mai jos Un alt teleserviciu oferit de GPRS este transmisia şi recepţia de mesaje scurte (SMS)
Astfel pe de o parte capacitatea de transmisie a mesajelor scurte va creşte iar pe de alta
parte reţeaua de semnalizări pe care se transmit icircn GSM aceste mesaje nu va mai fi icircncărcată
şi cu mesaje scurte ce vin sau pleacă de la la terminalele mobile GPRS
Servicii GPRS de transport
Sunt definite doua categorii de teleservicii de transport
servicii punct-la-punct (PTP ndashPoint-to-Point)
servicii punct la multipunct (PTM-Point-to-Multipoint)
A Serviciul PTP
Serviciul punct la punct (PTP) [GSM 0260] permite transmiterea de pachete de date
icircntre doi utilizatori Este implementat icircn GPRS faza 1 Abonatul care a iniţiat serviciul se
numeşte solicitant (service requester) Partenerul său se numeşte receptor al serviciului
(service receiver)
Serviciul PTP poate fi solicitat fie de la terminalul mobil GPRS fie de la un
echipament situat icircntr-o reţea de date fixă (IP X25) Serviciul PTP poate fi oferit de
asemenea icircntre doi utilizatori mobili GPRS
Serviciul punct-la punct poate fi la racircndul sau de două tipuri
PTP fără conexiune (PTP-CLNS ndash PTP Connectinnless Network Service)
PTP orientat pe conexiune (PTP-CONS ndashPTP Connection Orientated Network
Network Service)
PTP-CLNS este un serviciu de tip datagramă ce utilizează comutaţia de pachete fără
conexiune Este util icircn cazul aplicaţiilor ce generează trafic icircn rafale şi are că scop asigurarea
interoperării cu reţele IP
PTP-CONS este un serviciu de tip circuit virtual ce utilizează comutaţia de pachete
orientata pe conexiune Icircntre cei doi utilizatori se stabileşte un circuit virtual pentru o perioadă
25
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ce poate varia de la cacircteva secunde la ore Este util atacirct pentru aplicaţii ce generează trafic icircn
rafale cacirct şi pentru aplicaţiile interactive Are că scop asigurarea interoperării cu reţele X25 şi
derularea peste GPRS a aplicaţiilor bazate pe protocolul OSI CONS(Connection Orientated
Network Protocol)
O reţea GPRS trebuie să asigure menţinerea circuitului virtual la trecerea dintr-o
celulă icircn alta dar numai icircn interiorul aceleiaşi reţele GPRS-PLMN La trecerea terminalului
mobil icircntr-o altă reţea sau icircn cazul căderii legăturii radio circuitul virtual va fi eliberat Pentru
ambele tipuri de servicii pe interfaţa radio se poate opera fie cu confirmare fie fără
confirmare a transportului de date
B Serviciul PTM
Serviciul punct la multipunct (PTM) permite transmiterea de pachete de date de la un
utilizator către mai mulţi utilizatori El este implementat icircn faza a doua a GPRS O
comunicaţie PTM se stabileşte icircntre un furnizor de servicii (ce poate fi situat icircn afară reţelei
GSM) şi un grup de terminale GPRS Şi serviciul PTM este un serviciu ce se prezintă icircn două
variante
PTMndash multidistribuţie (PTM Multicast)
PTM- grup (PTM-G--PTMGroup)
Serviciul de transport PTM-M permite transmiterea pachetelor de date icircntr-o arie
geografică dată (celulă grup de celule) fără confirmare Receptorii serviciului sunt fie toţi
abonaţii care se găsesc icircn acea zonă fie un grup icircnchis de utilizatori
Icircn cazul PTM-G receptorul serviciului este un grup predefinit de utilizatori Pachetele de
date vor fi trimise către toţi membrii grupului indiferent de aria geografică unde se găsesc
aceştia Este posibilă şi transmiterea doar către acei membri care se găsesc icircn anumite zone
geografice Transmisia poate fi şi cu confirmare
Serviciile suplimentare
Printre serviciile suplimentare avute icircn vedere icircntr-un prim stadiu se numără
redirecţionarea necondiţionată a apelurilor redirecţionarea cacircnd abonatul nu este accesibil şi
definirea de grupuri icircnchise de utilizatori In afară de aceste servicii recomandarea GSM
0260 descrie posibilitatea oferirii de servicii adiţionale cum sunt accesarea bazelor de date
servicii de mesagerie validări de cărţi de credit servicii de monitorizare electronică tranzacţii
electronice etc
26
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
244 Arhitectura GPRS
GPRS este o soluţie pentru operatori deoarece nu necesită modificări substanţiale icircn
reţeaua GSM Aşa cum se observă icircn figura 72 reţeaua nucleu a GPRS operează icircn paralel
cu GSM-NSS
Figura 23 Arhitectura reţelei GPRS
25 LabWindowsCVI
La dipecer am considerat un calculator desktop sau laptop pe care va rula o aplicaţie
de monitorizare a datelor măsurate implementată icircn LabWindowsCVI
LabWindowsCVI este o platformă pentru dezvoltare de software cu orientare pe
aplicaţii de instrumentaţie După cum se deduce din denumirea sa (CVI ndash C for Virtual
Instrumentation) limbajul acceptat este ANSI C cu extensii specifice CVI ne pune la
dispoziţie un mediu interactiv de dezvoltare a unor aplicaţii pentru sistemul de operare
Windows Icircmbină deci avantajele programării de tip vizual cu avantajele simplităţii şi
flexibilităţii limbajului C Deşi a fost creat special pentru aplicaţii de instrumentaţie şi control
27
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
multiplele lui facilităţi icircl fac capabil să suporte şi dezvoltarea unor aplicaţii de mărime medie
care să fie de altă factură Fiecare funcţie de bibliotecă din cadrul acestui mediu are o interfaţă
specializată numită panoul funcţiei (function panel) care permite
bull Help on-line
bull Selectare şi declarare de variabile sau constante necesare
bull Execuţie interactivă
bull Inserarea funcţiei editate icircntr-un text sursă
Mediul este extrem de flexibil permiţacircnd interfaţarea bidirecţională cu alte compilatoare de
C sau C++ De asemenea se pot folosi şi DLL-uri
Puterea mediului LabWindowsCVI este dată de bibliotecile puse la dispoziţia
programatorului acestea conţinacircnd funcţii pentru implementarea diverselor faze care conduc
la o aplicaţie din domeniul achiziţiei de date sau a controlului automat
Pentru achiziţia de date există următoarele biblioteci specializate
bull de instrumente
bull pentru interfaţa GPIBGPIB 4882 (General Purpose Interface Bus)
bull pentru achiziţie de date
bull pentru operaţii IO icircn cazul achiziţiei de date
bull pentru interfaţa serială RS232
bull pentru sistemul VXI
Biblioteci specializate pentru analiza datelor
bull pentru IO
bull pentru formatarea specială
bull pentru analiză
bull pentru analiză avansată
Biblioteci specializate pentru vizualizare date
bull pentru crearea unei interfeţe utilizator de tip vizual
Biblioteci specializate pentru lucrul icircn reţea şi comunicarea icircntre diverse aplicaţii
bull pentru DDE (Dynamic Data Exchange)
bull pentru TCP (Transmision Control Protocol)
bull pentru sistemul X de sub Unix
Icircn afară de acestea mai există o bibliotecă specială numită biblioteca de instrumente
care conţine drivere şi sursele lor pentru osciloscoape multimetre şi generatoare de funcţii
De asemenea există posibilitatea creării unui instrument propriu Biblioteca pentru interfaţa
28
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cu utilizatorul conţine funcţiile necesare creării unui GUI (Graphical User Interface =
Interfaţă grafică cu utilizatorul) după necesităţi
Structura generică a unei aplicaţii dezvoltate sub CVI
Un proiect complet pentru una din clasele de aplicaţii specifice mediului CVI are
următoarele componente generice
bull interfaţa cu utilizatorul
bull partea de control a aplicaţiei
bull partea specializată pentru achiziţia datelor
bull partea specializată icircn analiza respectivelor date
Mai jos prezentăm o schemă generică a aplicaţiilor CVI
Figura 24
Tipuri de fişiere folosite icircn cadrul CVI
PRJ se referă la fişiere de tip proiect
UIR se referă la fişiere care conţin descrierea unei interfeţe grafice cu utilizatorul
C fişiere sursă
H fişiere header
FP fişiere care reţin descrierea unui instrument
LIB fişiere bibliotecă
DLL fişiere link-editate pentru apel dinamic
OBJ fişiere obiect
29
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a unora dintre meniurile şi ferestrele mediului de dezvoltare CVI
Fereastra proiect
Prezentăm mai jos doar informaţiile suplimentare faţă de o fereastră proiect standard
Pe lacircngă datele curente despre fiecare fişier inclus icircn proiect acesta mai are precizat şi unul
sau mai mulţi din următorii indici
- I indică faptul că respectivul fişier conţine descrierea unui driver de instrument
- S faptul că s-au făcut modificări icircn fişierul respectiv şi deci trebuie salvat
- C indică obligativitatea compilării respectivului fişier icircnainte de rularea aplicaţiei
- indică faptul că fişierul este deschis icircntr-o fereastră de editare
- indică ca acest fişier nu este deschis
Aplicaţii consolă
Pentru aplicaţiile tip consolă clasice C unde se folosesc pentru IO funcţiile scanf şi
printf vizualizarea ieşirii icircn mod text a acestora se va face icircntr-o fereastră specială numită
ldquoStandard InputOutput Windowrdquo
Observaţie Dacă se va programa icircn acest mod trebuie activată opţiunea ldquoBring Standard
InputOtput to front whenever modifyrdquo din Environment ce aparţine meniului Options
Generatorul interactiv de aplicaţii
Butoanele directe ale editorului de interfeţe cu utilizatorul
folosit la selectare mutare şi dimensionare obiecte
utilizat pentru a modifica textul asociat cu obiectele din UIR folosind facilităţile de
etichetare
folosit pentru colorarea obiectelor Este suficientă o apăsare pe butonul din dreapta a
mouse-ului şi va colora automat obiectul selectat cu culoarea curentă
oferă facilităţi de operare Atunci cacircnd este activat evenimentele vor fi afişate icircn partea
dreaptă a barei de facilităţi
30
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a cacirctorva din meniurile mai importante ale generatorului
Menu Bars activează cutia de dialog care ne prezintă toate barele de meniu definite deja de
programator
Figura 25
Create apelează fereastra Edit Menu Bar pentru a crea o nouă bară de meniuri
Edit apelează fereastra Edit Menu Bar pentru a modifica o bară de meniuri existentă
Fereastra Edit Menu Bar(fig26) permite specificarea sau modificarea caracteristicilor
unei bare de meniuri icircn curs de creare sau care există deja
31
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 26
Menu Bar Constant Prefix este identificatorul intern al respectivei bare de meniuri Acesta
va fi folosit de funcţia LoadMenuBar pentru icircncărcarea icircn memorie a parametrilor care conţin
această bară Va fi definit automat icircn fişierul header din scheletul de aplicaţie
Item se referă la numele meniului curentsubmeniucomandă de meniu Dacă icircn faţa primei
litere a unui element din meniu se adaugă 2 ldquounderscorerdquo la execuţie acesta va putea fi
selectat prin combinaţia Alt+prima literă
Constant name este alipit la Menu Bar Constant Prefix pentru a se genera identificatorul
elementului curent Este folosit de funcţii ca GetMenuBarAttribute sau SetMenuBarAttribute
De asemenea acest identificator este returnat de GetUserEvent atunci cacircnd apare un
eveniment generat de o comandă a meniului
Callback Function Permite specificarea numelui unei funcţii de răspuns care va fi apelată
automat la activarea respectivului element Folosirea ei este opţională
32
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ModifierKeyShortcutKey se combină pentru a ataşa o cheie ldquohotrdquo pentru elementul
curent
buton ce permite coboracircrea icircn interiorul unei ierarhii de meniuri
buton ce permite urcarea icircn interiorul unei ierarhii de meniuri
Panouri
După cum am spus sunt echivalentul ferestrelor din programarea Windows Pentru a le crea
Create1048774Panel ne pune la dispoziţie un nou panou icircn cadrul UIR-ului curent Prin dublu
ldquoclickrdquo pe acesta se va intra in fereastra de editare a caracteristicilor panoului Această
fereastră este prezentată mai jos
Figura 27
La partea de Menu Bar se poate specifica o bară din cele deja create icircn cazul dezvoltării
respectivei interfeţe
Restul parametrilor au fost discutaţi anterior sau sunt cunoscuţi din programarea Windows
33
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Crearea controalelor
Exceptacircnd diferenţele care apar funcţie de destinaţia acestora există o serie de parametri
comuni fiecărui control pe care icircl creăm Mai jos prezentăm fereastra care apare de exemplu
la crearea unui control de tip numeric şi anume un buton
Figura 28
Se observă că identificatorul intern şi posibilitatea de ataşare a unei funcţii de răspuns
rămacircne De asemenea o serie de informaţii specifice părţii de etichetare Icircn plus apar
specificaţii privind modul de afişare a datelor şi limitele icircntre care acestea pot fi variate prin
intermediul acestui control
34
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
TAB ORDER
Fiecare control de pe un panou activ are o poziţie icircn ordinea de salt prin intermediul
unui tab Această ordine precizează care va fi următorul control ce va fi activat icircn cazul icircn
care utilizatorul apasă Tab sau Shift+Tab Implicit acestea sunt adăugate exact icircn ordinea
creării lor de către programator Numai că nu icircntotdeauna aceasta este ordinea de salt dorită a
fi activă la terminarea aplicaţiei Icircn aceste condiţii secvenţa Edit1048774Tab Order ne va activa un
panou specializat pentru aceasta
Figura 29
noua formă de cursor activă icircn interiorul ferestrei Prin apăsarea pe un control oarecare i
se
poate modifica ordinea de activare
specifică faptul că se acceptă noua ordine de apelare
se iese cu păstrarea vechii ordini
Find UIR Objects
O altă facilitate a editorului este Find UIR Objects care aparţine meniului View Icircn
cadrul unor proiecte mari se dovedeşte a fi extrem de utilă
35
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 210
După cum se observă ne permite căutarea după dorinţă a unui nume icircn diverse categorii de
obiecte ale interfeţei cu utilizatorul
GENERATE
Este meniul folosit pentru generarea fie a icircntregului cod schelet fie numai a codului
corespunzător unui obiect proaspăt introdus icircntr-un UIR
Secvenţa Code1048774Generate1048774AllCode va genera codul schelet pentru aplicaţie Acesta va
conţine şi un ldquoswitchrdquo pentru tratarea evenimentelor Alegerea evenimentelor care vor fi
automat introduse se face din Code1048774Preferences
MENIUL ARRANGE
Icircncă de la primele aplicaţii vom observa că una din operaţiile mari consumatoare de
timp este aranjarea controalelor icircn panou după specificarea caracteristicilor acestora Pentru a
evita acest lucru CVI a fost prevăzut cu o serie de facilităţi de aranjare automată pe care le
vom prezenta mai jos
Figura 211
Top Edges asigură spaţiere verticală icircntre partea superioară a controalelor Cel mai de
sus şi cel mai de jos control sunt considerate puncte de referinţă
36
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Vertical Centers asigură spaţiere verticală icircntre centrele controalelor Cel mai de sus
şi cel mai de jos control sunt considerate puncte de referinţă
Bottom Edges asigură spaţiere verticală icircntre partea inferioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Vertical Gap asigură spaţiere verticală icircntre partea superioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Left Edges setează spaţii orizontale egale icircntre marginile din stacircnga ale controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Centers setează spaţii orizontale egale icircntre centrele controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Right Edges setează spaţii orizontale egale icircntre marginile din dreapta ale
controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Gap spaţiere orizontală icircntre controale Cel mai de sus şi cel mai de jos
control sunt considerate puncte de referinţă
Horizontal Compress minimizează spaţiile pe orizontală dintre controale şi elimină
orice spaţiu dintre ele
Distribute Vertical Centers
Comanda Distribute realizează la apel ultima opţiune selectată din lista prezentată
mai sus
37
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
O instrucţiune se poate continua pe racircndul următor prin plasarea caracterului backslash
la sfacircrsitul randului Acest lucru nu este necesar dacă există paranteze deschise
my_list = [1
[abc 2]
-3+6j]
print my_list
234 Execuţii condiţionale
Python foloseşte if elif (nu elsif sau elseif) si else pentru a indica execuţia condiţională a
unei instrucţiuni
De exemplu
if a gt b
print a is greater than b
elif a lt b
print a is lower than b
else
print a equals b
Se poate folosi si interval prescurtate de testare
if 2 lt= a lt= 7
print a is in the interval [2 7]
235 Bucle
Buclele in Python sunt definite prin cuvintele cheie for şi while
Următorul exemplu foloseşte o buclă while pentru a colecta toate numerele intregi
cuprinse intre 0 si 99 intr-o listăacirc
numbers = [ ]
i = 0
while i lt 100
17
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
numbersappend(i)
i = i + 1
O buclă similar for arată in felul următor
numbers = [ ]
for i in range(100)
numbersappend(i)
Icircn loc de buclele explicite prezentate mai sus se poate folosi şi bucle implicite după
cum urmează
numbers = range(100)
range(100) generează o listă cu toate numerele intregi de la 0 la 100
24 General packet radio service(GPRS)
Comunicaţia intre modemuri ( RTU-uri ) şi dispecer se poate face prin mai mlte
mediu de transmisie
- Cablu telephonic
- Radio
- GSMGPRS
- Fibră Optică
Opţiunea pentru care am optat icircn partea de comunicaţie este GSMGPRS deoarece
asigură o cumunicaţie sigură şi oferă simplitate pentru priectant
GPRS introduce servicii de transport cu comutaţie de pachete pentru debite de la 14
kbps la maximum 170 kbps Practic GPRS este o reţea cu comutaţie de pachete de sine
stătătoare care se daugă la reţeaua GSM GPRS interoperează cu infrastructura GSM la
nivelul subsistemului staţiilor de bază BSS şi al bazelor de date din subsistemul reţea NSS
(HLR VLR AUC) GPRS preia traficul de date iar GSM traficul de voce care rămacircne
comutat prin MSC
Datele sunt transmise prin GPRS icircn pachete de lungimi fixe Fiecare pachet conţine
adresa destinaţie pentru a putea fi rutat de nodurile GPRS Modificarea pe interfaţa radio e
18
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
dată de introducerea codării adaptive a canalului Aceasta icircnseamnă că protecţia datelor
variază icircn timp icircn funcţie de starea canalului radio GPRS poate utiliza pentru o conexiune
de date de la fracţiuni de canale de trafic pacircnă la maximum 8 sloturi temporale (adică tot
cadrul TDMA) icircn funcţie de resursele disponibile
Capacitatea alocată unei conexiuni va varia icircn funcţie de icircncărcarea cu trafic de pe
frecvenţa respectivă precum şi de tipul traficului (vocedate) Este important că utilizacircnd
comutaţia de pachete o transmisie de date nu ocupă resursele reţelei decacirct atunci cacircnd sunt
date de transmis Cacircnd nu există pachete de transmis resursele de pe interfaţa radio pot fi
utilizate pentru alte transmisii de date sau pentru trafic cu comutaţie de circuite
GPRS are o reţea nucleu proprie formată prin interconectarea serverelor care
gestionează transmisia de pachete numite noduri suport GPRS (GSN- GPRS Suport Node)
Aceasta reţea operează icircn paralel cu subsistemul reţea şi comutaţie (NSS) al GSM care va
gestiona icircn continuare transmisia cu comutaţie de circuite
241 Caracteristicile sistemului GPRS
GPRS este un serviciu specificat icircn faza 2+ de standardizare a GSM El este oferit prin
intermediul unei infrastructuri numită şi sistem sau reţea GPRS ce interoperează cu
infrastructura bdquoclasicărdquo GSM
GPRS se icircncadrează icircn orientarea generală a ETSI de a asigura prin aza 2+ o platformă
ce va putea fi utilizată ulterior icircn reţele de generaţia a treia Astfel el este onsiderat
actualmente soluţia de bază pentru transmiterea de date icircn UMTS Fiind un standard SM
GPRS păstrează evident şi compatibilitatea cu sistemul părinte fiind practic o extensie a
acestuia pentru transmisii de date la debite mai mari GPRS reprezintă la ora actuală cel mai
reprezentativ sistem de generaţie intermediară (25G)
Dacă HSCSD ar putea fi considerat o ajustare fină a GSM GPRS reprezintă cu
siguranţă un salt tehnologic semnificativ deoarece marchează trecerea de la comutaţia de
circuite la cea de pachete Schimbarea tipului de comutaţie se referă icircn acest moment (atacirct la
25G cacirct şi icircn 3G) doar la transmiterea datelor vocea rămacircnacircnd icircn continuare comutată prin
MSC Datorită eternei insuficienţe a resurselor radio este probabil ca icircntr-o fază nu prea
icircndepărtată de dezvoltare a UMTS şi de ce nu chiar a GPRS să fie utilizată comutaţia de
pachete şi pentru serviciile de timp real vocale sau non-vocale
Icircn concluzie GPRS reprezintă o infrastructura ce permite transmiterea datelor pe baza
comutaţiei de pachete icircntr-o reţea GSM
19
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Pentru a putea oferi debite de date mai ridicate icircn GPRS se urmăreşte utilizarea cacirct
mai eficientă a resurselor radio Pentru aceasta se preia de la HSCSD ideea operării multislot
posibilitatea de a proteja mai puţin informaţia utilă pe interfaţa radio şi alocarea asimetrică
uplink downlink Icircn ciuda acestor asemănări icircnlocuirea comutaţiei de circuite cu cea de
pachete face din GPRS un sistem complet diferit de HSCSD Aceasta atacirct din punct de vedere
al utilizatorului care constată un timp de conectare practic nul şi rate de transfer mai bune
dar şi din punct de vedere al operatorului care efectuează o investiţie incomparabil mai mare
răsplătită printr-o mai eficientă utilizare a interfeţei radio cu tot ceea ce rezultă de aici (mai
mulţi clienţi mai multe servicii aplicaţii diverse)
Rezumacircnd icircn GPRS este implementat un set de soluţii tehnologice ce au ca scop
principal creşterea eficienţei utilizării interfeţei radio Aceasta derivă atacirct din experienţa
sistemelor anterioare cacirct şi mai ales din operarea icircn modul pachet a datelor ce se transmit
Soluţiile utilizate sunt
creşterea ratei de transmisie a datelor prin reducerea codării canalului (sunt definite
şi pot
fi utilizate 4 scheme de codare 905kbps 134 kbps 156 kbps 214kbps)
creşterea ratei de transmisie prin operare multislot ( pacircnă la 8 sloturi temporale per
utilizator)
creşterea eficienţei utilizării resurselor radio prin multiplexarea mai multor
utilizatori pe acelaşi canal fizic (posibila datorită transmisiei de pachete maximum 8
utilizatori pe slot temporal)
creşterea eficienţei utilizării resurselor radio prin alocare asimetrică uplinkdownlink
creşterea eficienţei utilizării resurselor radio prin alocarea dinamică a canalelor icircntre
servicii comutate icircn mod circuit respectiv pachet
Cacircnd un icircntreg cadru TDMA este alocat unui utilizator cu schema de protecţie minimă
(practic fără corecţie de erori) rezultă rata utilă instantanee maximă posibilă icircn GPRS
(8x214 kbps=1712 kbps)
242 Comutaţie de circuite şi comutaţie de pachete
20
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comutaţia este o tehnică esenţială icircn reţelele de comunicaţii Fără ea fiecare
echipament terminal ar trebui conectat printr-o cale directă cu fir sau fără la toate celelalte
echipamente terminale din reţea Principalele metode de comutaţie sunt
comutaţia de circuite
comutaţia de mesaje
comutaţia de pachete
Comutaţia de circuite
Aceasta presupune realizarea icircntre emiţător şi receptor a unei căi fizice de comutaţie
dedicate numită circuit Icircntreaga comunicaţie se desfăşoară icircn trei etape
stabilirea conexiunii (sau deschiderea circuitului)
transferul de informaţii
eliberarea conexiunii (circuitului)
Este de remarcat faptul că stabilitatea fizică a caii de comunicaţie are loc icircnainte de
icircnceperea transmisiunii propriu-zise Aceasta poate conduce la durate semnificative ale
timpului de conectare
Un dezavantaj notoriu al acestei tehnici este alocarea fixă a resurselor de comunicaţie
necesare pe durata conexiunii indiferent dacă la un moment sau altul mediul de transmisie
este folosit total parţial sau deloc
Pe de altă parte avantajele comutaţiei de circuite provin tocmai din această alocare fixă de
resurse care permite
asigurarea unei icircntacircrzieri constante şi minime
garantarea unui debit util corespunzător mediului de comunicaţie şi serviciului utilizat
Toate acestea facilitează oferirea serviciilor de timp real (telefonie videofonie alte
transmisiuni video) Exemplul tipic de reţea cu comutaţie de circuite este reţea telefonică
publică comutată (PSTN) Reţeaua GSM este de asemenea o reţea cu comutaţie de circuite
Referindu-ne strict la interfaţa radio a reţelelor fără fir etapa de stabilire a conexiunii
presupune alocarea unui canal radio (sau a mai multora icircn cazul HSCSD) unei staţii mobile
(MS) Acest canal rămacircne icircn posesia terminalului mobil pe toata durata conexiunii chiar dacă
transferul de date este discontinuu (icircn rafale) sau chiar icircncetează cu desăvacircrşire (de exemplu
21
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cacircnd utilizatorul citeşte cu atenţie cinci minute o pagină WEB după care lămurit pe deplin
icircntrerupe legătura) Ca o particularizare binecunoscută a reţelelor cu comutaţie de circuite
trebuie menţionat că utilizatorul trebuie să plătească pentru icircntreaga durată a conexiunii chiar
dacă a fost risipitor şi nu a folosit resursa ce i-a fost alocată
Comutaţia de mesaje
Este o tehnică ce nu stabileşte apriori o cale de transmisiune icircntre emiţător şi receptor
Informaţia ce urmează a fi transmisă formează o entitate bine precizată numita mesaj
Mesajele sunt complet independente unele faţă de altele şi pot avea lungimi variabile deşi
structura (formatul) lor poate fi prestabilit Emiţătorul trebuie sa ataşeze mesajului adresa
destinatarului decizia cu privire la ruta pe care o va urma mesajul fiind de competenţa
fiecărui comutator (router) prin care trece Fiecare comutator va memora mesajul după care icircl
va transmite pe ieşirea selectată de el Principala problemă a comutaţiei de mesaje este dată de
dimensiunea mare a mesajelor Din această cauză comutatoarele de mesaje au nevoie de o
capacitate de stocare uriaşă iar icircntacircrzierea icircn noduri poate deveni inacceptabilă din cauza
monopolizării ieşirilor de către mesajele lungi Exemplul tipic de reţea cu comutaţie de
mesaje este reţeaua telex
Comutaţia de pachete
Rezolvă o mare parte din dezavantajele comutaţiei de mesaje stabilind o lungime
maximă a entităţii informaţionale care circulă prin reţea numită pachet Pachetele sunt icircn
general rezultatul divizării mesajelor icircn blocuri de lungime mică Datorită acestui fapt spre
deosebire de mesaje pachetele nu sunt independente O recepţie corespunzătoare implică
refacerea mesajului prin ordonarea pachetelor după logica folosită la emisie Pentru aceasta
exista două posibilităţi apropiate conceptual de comutaţia de mesaje respectiv de comutaţia
de circuite
A Comutaţia de pachete fără conexiune (sau neorientată pe conexiune)
Icircn cazul comutaţiei de pachete fără conexiune pachetele (numite şi datagrame) se transmit
independent icircn cel mai pur spirit al comutaţiei de mesaje urmacircnd rute posibil diferite
Sosirea lor la destinaţie poate avea loc icircntr-o ordine aleatoare ceea ce necesită reordonarea lor
de către receptor Refacerea succesiunii corecte a pachetelor se bazează pe informaţia
22
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
suplimentară din fiecare pachet privitoare la mesajul din care face parte şi locul pe care icircl
ocupa icircn el Exemplul tipic de reţea care utilizează comutaţia de pachete este internetul
BComutaţia de pachete orientată pe conexiune (sau circuit virtual)
Icircn cazul comutaţiei de pachete orientată pe conexiune (sau circuit virtual) comunicarea
icircntre terminale presupune stabilirea unei căi anume pe care va circula fluxul informaţional
dintre acestea similar cu comutaţia de circuite Spre deosebire de aceasta nu este vorba de
dedicarea unui circuit fizic comunicării respective ci de configurarea unui circuit logic
numit circuit virtual Aceasta icircnseamnă că toate pachetele vor urma aceeaşi cale prin reţea
fără a dedica suportul fizic comunicaţiei respective Pachetele altor utilizatori vor putea folosi
foarte bine segmente din calea respectivă sau chiar icircntreaga cale La stabilirea circuitului
virtual fiecare comutator (router) trebuie să memoreze icircn tabela de dirijare care este
succesorul său icircn respectivul circuit virtual Astfel spre deosebire de comutaţia de pachete
fără conexiune după stabilirea circuitului virtual comutatorul nu mai trebuie să decidă calea
fiecărui pachet Avacircnd memorat nodul succesor icircn fiecare dintre circuitele virtuale icircn care este
implicat comutatorul va identifica circuitul asociat pachetului şi icircl va transmite pe acesta pe
linia de ieşire corespunzătoare Tehnica circuitului virtual garantează livrarea icircn ordine a
pachetelor la destinaţie Exemple marcante de reţele ce utilizează comutaţia de pachete de tip
circuit virtual sunt X25 şi ATM
Marele avantaj al comutaţiei de pachete este utilizarea eficientă a resurselor de
transmisiune Deoarece acestea nu sunt dedicate ele pot fi folosite după necesităţi pentru a
transmite pachete provenind de la utilizatori diferiţi Din acest motiv comutaţia de pachete
este extrem de avantajoasă icircn cazul unei infrastructuri cu resurse de transmisiune limitate
cum este şi cazul reţelelor fără fir
Un dezavantaj important al comutaţiei de pachete este dat de gestionarea comutatoarelor
(routerelor) icircn cazul unui trafic crescut la intrare Pierderea pachetelor garantarea unei
icircntacircrzieri maxime şi a unui debit utilizator constant sunt problemele spinoase ale comutaţiei
de pachete Ele reprezintă obstacole icircn special icircn calea oferirii serviciilor de timp real cum ar
fi telefonia
Icircn schimb icircn cazul transmisiilor de date avantajul bunei administrări a resurselor
prevalează De exemplu icircn cazul particular al interfeţei radio GSM cacircnd o staţie mobilă (MS)
generează un pachet de date reţeaua icircl va transmite pe un canal radio disponibil icircn acel
moment Următorul pachet de pe acel canal poate să aparţină aceleiaşi MS dacă are ceva de
23
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
transmis sau dacă nu alteia Icircn acest mod atacircta timp cacirct cineva are ceva de transmis
canalele radio nu sunt blocate inutil Lucrul icircn mod pachet are o eficienţă cu totul deosebită icircn
cazul unui trafic de date icircn rafale (data bursts)
Aşadar pentru un sistem GSM bazat esenţialmente pe comutaţia de circuite este
extrem de utilă alocarea resurselor neutilizate de către serviciile vocale pentru servicii mai
puţin prioritare Atacirct HSCSD cacirct şi GPRS icircşi propun acest lucru Serviciile cele mai potrivite
pentru valorificarea resurselor rămase (preferabil printr-un mecanism de alocare dinamică)
sunt tocmai cele care implică un trafic de date icircn rafale fără pretenţii de timp real Diferenţa
fundamentală icircntre HSCSD şi GPRS este că acesta din urmă valorifică aceste resurse icircntr-un
mod mult mai eficient deoarece utilizează comutaţia de pachete Icircn plus costul serviciilor
oferite este mai atractiv deoarece utilizatorul plăteşte volumul de date transferat Practic dacă
doreşte utilizatorul poate fi sbquoconectatrsquo la reţeaua de date icircn permanenţă fiind taxat doar
pentru timpul icircn care efectiv utilizează resursele reţelei adică pentru pachetele de date
recepţionate respectiv transmise
243 Servicii GPRS
Dintre aplicaţiile cele mai potrivite pentru GPRS se pot aminti mesageria de orice tip
difuzare şi distribuţie multiplă telemetrie jocuri navigare de mică anvergură pe reţeaua
internet Icircn general orice tip de aplicaţii ce necesită comunicaţii maşină - maşină la debite
mici şi medii sunt adecvate dezvoltării icircn mediul GPRS
Ca şi icircn reţeaua GSM reţelele GPRS pot oferi două categorii de servicii de
telecomunicaţii
servicii de bază
servicii suplimentare
Serviciile de bază GPRS
Acestea sunt icircn principal servicii suport (bearer services) de transport care realizează
transmiterea datelor cu comutaţie de pachete icircntre două interfeţe şi din teleservicii Similar
situaţiei din GSM aceste interfeţe sunt
interfaţa dintre echipamentul terminal de date (de exemplu calculator) şi terminalul
mobil GPRS
24
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
interfaţa dintre reţeaua GPRS şi reţeaua de date sau echipamentul terminal cu care
comunică Aceasta interfaţă este situată icircntr-un nod poartă (gateway) GPRS similar
situaţiei din GSM unde locul ei este GMSC
Teleserviciul fundamental oferit de GPRS este cel de transport de date şi este detaliat
mai jos Un alt teleserviciu oferit de GPRS este transmisia şi recepţia de mesaje scurte (SMS)
Astfel pe de o parte capacitatea de transmisie a mesajelor scurte va creşte iar pe de alta
parte reţeaua de semnalizări pe care se transmit icircn GSM aceste mesaje nu va mai fi icircncărcată
şi cu mesaje scurte ce vin sau pleacă de la la terminalele mobile GPRS
Servicii GPRS de transport
Sunt definite doua categorii de teleservicii de transport
servicii punct-la-punct (PTP ndashPoint-to-Point)
servicii punct la multipunct (PTM-Point-to-Multipoint)
A Serviciul PTP
Serviciul punct la punct (PTP) [GSM 0260] permite transmiterea de pachete de date
icircntre doi utilizatori Este implementat icircn GPRS faza 1 Abonatul care a iniţiat serviciul se
numeşte solicitant (service requester) Partenerul său se numeşte receptor al serviciului
(service receiver)
Serviciul PTP poate fi solicitat fie de la terminalul mobil GPRS fie de la un
echipament situat icircntr-o reţea de date fixă (IP X25) Serviciul PTP poate fi oferit de
asemenea icircntre doi utilizatori mobili GPRS
Serviciul punct-la punct poate fi la racircndul sau de două tipuri
PTP fără conexiune (PTP-CLNS ndash PTP Connectinnless Network Service)
PTP orientat pe conexiune (PTP-CONS ndashPTP Connection Orientated Network
Network Service)
PTP-CLNS este un serviciu de tip datagramă ce utilizează comutaţia de pachete fără
conexiune Este util icircn cazul aplicaţiilor ce generează trafic icircn rafale şi are că scop asigurarea
interoperării cu reţele IP
PTP-CONS este un serviciu de tip circuit virtual ce utilizează comutaţia de pachete
orientata pe conexiune Icircntre cei doi utilizatori se stabileşte un circuit virtual pentru o perioadă
25
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ce poate varia de la cacircteva secunde la ore Este util atacirct pentru aplicaţii ce generează trafic icircn
rafale cacirct şi pentru aplicaţiile interactive Are că scop asigurarea interoperării cu reţele X25 şi
derularea peste GPRS a aplicaţiilor bazate pe protocolul OSI CONS(Connection Orientated
Network Protocol)
O reţea GPRS trebuie să asigure menţinerea circuitului virtual la trecerea dintr-o
celulă icircn alta dar numai icircn interiorul aceleiaşi reţele GPRS-PLMN La trecerea terminalului
mobil icircntr-o altă reţea sau icircn cazul căderii legăturii radio circuitul virtual va fi eliberat Pentru
ambele tipuri de servicii pe interfaţa radio se poate opera fie cu confirmare fie fără
confirmare a transportului de date
B Serviciul PTM
Serviciul punct la multipunct (PTM) permite transmiterea de pachete de date de la un
utilizator către mai mulţi utilizatori El este implementat icircn faza a doua a GPRS O
comunicaţie PTM se stabileşte icircntre un furnizor de servicii (ce poate fi situat icircn afară reţelei
GSM) şi un grup de terminale GPRS Şi serviciul PTM este un serviciu ce se prezintă icircn două
variante
PTMndash multidistribuţie (PTM Multicast)
PTM- grup (PTM-G--PTMGroup)
Serviciul de transport PTM-M permite transmiterea pachetelor de date icircntr-o arie
geografică dată (celulă grup de celule) fără confirmare Receptorii serviciului sunt fie toţi
abonaţii care se găsesc icircn acea zonă fie un grup icircnchis de utilizatori
Icircn cazul PTM-G receptorul serviciului este un grup predefinit de utilizatori Pachetele de
date vor fi trimise către toţi membrii grupului indiferent de aria geografică unde se găsesc
aceştia Este posibilă şi transmiterea doar către acei membri care se găsesc icircn anumite zone
geografice Transmisia poate fi şi cu confirmare
Serviciile suplimentare
Printre serviciile suplimentare avute icircn vedere icircntr-un prim stadiu se numără
redirecţionarea necondiţionată a apelurilor redirecţionarea cacircnd abonatul nu este accesibil şi
definirea de grupuri icircnchise de utilizatori In afară de aceste servicii recomandarea GSM
0260 descrie posibilitatea oferirii de servicii adiţionale cum sunt accesarea bazelor de date
servicii de mesagerie validări de cărţi de credit servicii de monitorizare electronică tranzacţii
electronice etc
26
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
244 Arhitectura GPRS
GPRS este o soluţie pentru operatori deoarece nu necesită modificări substanţiale icircn
reţeaua GSM Aşa cum se observă icircn figura 72 reţeaua nucleu a GPRS operează icircn paralel
cu GSM-NSS
Figura 23 Arhitectura reţelei GPRS
25 LabWindowsCVI
La dipecer am considerat un calculator desktop sau laptop pe care va rula o aplicaţie
de monitorizare a datelor măsurate implementată icircn LabWindowsCVI
LabWindowsCVI este o platformă pentru dezvoltare de software cu orientare pe
aplicaţii de instrumentaţie După cum se deduce din denumirea sa (CVI ndash C for Virtual
Instrumentation) limbajul acceptat este ANSI C cu extensii specifice CVI ne pune la
dispoziţie un mediu interactiv de dezvoltare a unor aplicaţii pentru sistemul de operare
Windows Icircmbină deci avantajele programării de tip vizual cu avantajele simplităţii şi
flexibilităţii limbajului C Deşi a fost creat special pentru aplicaţii de instrumentaţie şi control
27
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
multiplele lui facilităţi icircl fac capabil să suporte şi dezvoltarea unor aplicaţii de mărime medie
care să fie de altă factură Fiecare funcţie de bibliotecă din cadrul acestui mediu are o interfaţă
specializată numită panoul funcţiei (function panel) care permite
bull Help on-line
bull Selectare şi declarare de variabile sau constante necesare
bull Execuţie interactivă
bull Inserarea funcţiei editate icircntr-un text sursă
Mediul este extrem de flexibil permiţacircnd interfaţarea bidirecţională cu alte compilatoare de
C sau C++ De asemenea se pot folosi şi DLL-uri
Puterea mediului LabWindowsCVI este dată de bibliotecile puse la dispoziţia
programatorului acestea conţinacircnd funcţii pentru implementarea diverselor faze care conduc
la o aplicaţie din domeniul achiziţiei de date sau a controlului automat
Pentru achiziţia de date există următoarele biblioteci specializate
bull de instrumente
bull pentru interfaţa GPIBGPIB 4882 (General Purpose Interface Bus)
bull pentru achiziţie de date
bull pentru operaţii IO icircn cazul achiziţiei de date
bull pentru interfaţa serială RS232
bull pentru sistemul VXI
Biblioteci specializate pentru analiza datelor
bull pentru IO
bull pentru formatarea specială
bull pentru analiză
bull pentru analiză avansată
Biblioteci specializate pentru vizualizare date
bull pentru crearea unei interfeţe utilizator de tip vizual
Biblioteci specializate pentru lucrul icircn reţea şi comunicarea icircntre diverse aplicaţii
bull pentru DDE (Dynamic Data Exchange)
bull pentru TCP (Transmision Control Protocol)
bull pentru sistemul X de sub Unix
Icircn afară de acestea mai există o bibliotecă specială numită biblioteca de instrumente
care conţine drivere şi sursele lor pentru osciloscoape multimetre şi generatoare de funcţii
De asemenea există posibilitatea creării unui instrument propriu Biblioteca pentru interfaţa
28
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cu utilizatorul conţine funcţiile necesare creării unui GUI (Graphical User Interface =
Interfaţă grafică cu utilizatorul) după necesităţi
Structura generică a unei aplicaţii dezvoltate sub CVI
Un proiect complet pentru una din clasele de aplicaţii specifice mediului CVI are
următoarele componente generice
bull interfaţa cu utilizatorul
bull partea de control a aplicaţiei
bull partea specializată pentru achiziţia datelor
bull partea specializată icircn analiza respectivelor date
Mai jos prezentăm o schemă generică a aplicaţiilor CVI
Figura 24
Tipuri de fişiere folosite icircn cadrul CVI
PRJ se referă la fişiere de tip proiect
UIR se referă la fişiere care conţin descrierea unei interfeţe grafice cu utilizatorul
C fişiere sursă
H fişiere header
FP fişiere care reţin descrierea unui instrument
LIB fişiere bibliotecă
DLL fişiere link-editate pentru apel dinamic
OBJ fişiere obiect
29
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a unora dintre meniurile şi ferestrele mediului de dezvoltare CVI
Fereastra proiect
Prezentăm mai jos doar informaţiile suplimentare faţă de o fereastră proiect standard
Pe lacircngă datele curente despre fiecare fişier inclus icircn proiect acesta mai are precizat şi unul
sau mai mulţi din următorii indici
- I indică faptul că respectivul fişier conţine descrierea unui driver de instrument
- S faptul că s-au făcut modificări icircn fişierul respectiv şi deci trebuie salvat
- C indică obligativitatea compilării respectivului fişier icircnainte de rularea aplicaţiei
- indică faptul că fişierul este deschis icircntr-o fereastră de editare
- indică ca acest fişier nu este deschis
Aplicaţii consolă
Pentru aplicaţiile tip consolă clasice C unde se folosesc pentru IO funcţiile scanf şi
printf vizualizarea ieşirii icircn mod text a acestora se va face icircntr-o fereastră specială numită
ldquoStandard InputOutput Windowrdquo
Observaţie Dacă se va programa icircn acest mod trebuie activată opţiunea ldquoBring Standard
InputOtput to front whenever modifyrdquo din Environment ce aparţine meniului Options
Generatorul interactiv de aplicaţii
Butoanele directe ale editorului de interfeţe cu utilizatorul
folosit la selectare mutare şi dimensionare obiecte
utilizat pentru a modifica textul asociat cu obiectele din UIR folosind facilităţile de
etichetare
folosit pentru colorarea obiectelor Este suficientă o apăsare pe butonul din dreapta a
mouse-ului şi va colora automat obiectul selectat cu culoarea curentă
oferă facilităţi de operare Atunci cacircnd este activat evenimentele vor fi afişate icircn partea
dreaptă a barei de facilităţi
30
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a cacirctorva din meniurile mai importante ale generatorului
Menu Bars activează cutia de dialog care ne prezintă toate barele de meniu definite deja de
programator
Figura 25
Create apelează fereastra Edit Menu Bar pentru a crea o nouă bară de meniuri
Edit apelează fereastra Edit Menu Bar pentru a modifica o bară de meniuri existentă
Fereastra Edit Menu Bar(fig26) permite specificarea sau modificarea caracteristicilor
unei bare de meniuri icircn curs de creare sau care există deja
31
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 26
Menu Bar Constant Prefix este identificatorul intern al respectivei bare de meniuri Acesta
va fi folosit de funcţia LoadMenuBar pentru icircncărcarea icircn memorie a parametrilor care conţin
această bară Va fi definit automat icircn fişierul header din scheletul de aplicaţie
Item se referă la numele meniului curentsubmeniucomandă de meniu Dacă icircn faţa primei
litere a unui element din meniu se adaugă 2 ldquounderscorerdquo la execuţie acesta va putea fi
selectat prin combinaţia Alt+prima literă
Constant name este alipit la Menu Bar Constant Prefix pentru a se genera identificatorul
elementului curent Este folosit de funcţii ca GetMenuBarAttribute sau SetMenuBarAttribute
De asemenea acest identificator este returnat de GetUserEvent atunci cacircnd apare un
eveniment generat de o comandă a meniului
Callback Function Permite specificarea numelui unei funcţii de răspuns care va fi apelată
automat la activarea respectivului element Folosirea ei este opţională
32
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ModifierKeyShortcutKey se combină pentru a ataşa o cheie ldquohotrdquo pentru elementul
curent
buton ce permite coboracircrea icircn interiorul unei ierarhii de meniuri
buton ce permite urcarea icircn interiorul unei ierarhii de meniuri
Panouri
După cum am spus sunt echivalentul ferestrelor din programarea Windows Pentru a le crea
Create1048774Panel ne pune la dispoziţie un nou panou icircn cadrul UIR-ului curent Prin dublu
ldquoclickrdquo pe acesta se va intra in fereastra de editare a caracteristicilor panoului Această
fereastră este prezentată mai jos
Figura 27
La partea de Menu Bar se poate specifica o bară din cele deja create icircn cazul dezvoltării
respectivei interfeţe
Restul parametrilor au fost discutaţi anterior sau sunt cunoscuţi din programarea Windows
33
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Crearea controalelor
Exceptacircnd diferenţele care apar funcţie de destinaţia acestora există o serie de parametri
comuni fiecărui control pe care icircl creăm Mai jos prezentăm fereastra care apare de exemplu
la crearea unui control de tip numeric şi anume un buton
Figura 28
Se observă că identificatorul intern şi posibilitatea de ataşare a unei funcţii de răspuns
rămacircne De asemenea o serie de informaţii specifice părţii de etichetare Icircn plus apar
specificaţii privind modul de afişare a datelor şi limitele icircntre care acestea pot fi variate prin
intermediul acestui control
34
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
TAB ORDER
Fiecare control de pe un panou activ are o poziţie icircn ordinea de salt prin intermediul
unui tab Această ordine precizează care va fi următorul control ce va fi activat icircn cazul icircn
care utilizatorul apasă Tab sau Shift+Tab Implicit acestea sunt adăugate exact icircn ordinea
creării lor de către programator Numai că nu icircntotdeauna aceasta este ordinea de salt dorită a
fi activă la terminarea aplicaţiei Icircn aceste condiţii secvenţa Edit1048774Tab Order ne va activa un
panou specializat pentru aceasta
Figura 29
noua formă de cursor activă icircn interiorul ferestrei Prin apăsarea pe un control oarecare i
se
poate modifica ordinea de activare
specifică faptul că se acceptă noua ordine de apelare
se iese cu păstrarea vechii ordini
Find UIR Objects
O altă facilitate a editorului este Find UIR Objects care aparţine meniului View Icircn
cadrul unor proiecte mari se dovedeşte a fi extrem de utilă
35
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 210
După cum se observă ne permite căutarea după dorinţă a unui nume icircn diverse categorii de
obiecte ale interfeţei cu utilizatorul
GENERATE
Este meniul folosit pentru generarea fie a icircntregului cod schelet fie numai a codului
corespunzător unui obiect proaspăt introdus icircntr-un UIR
Secvenţa Code1048774Generate1048774AllCode va genera codul schelet pentru aplicaţie Acesta va
conţine şi un ldquoswitchrdquo pentru tratarea evenimentelor Alegerea evenimentelor care vor fi
automat introduse se face din Code1048774Preferences
MENIUL ARRANGE
Icircncă de la primele aplicaţii vom observa că una din operaţiile mari consumatoare de
timp este aranjarea controalelor icircn panou după specificarea caracteristicilor acestora Pentru a
evita acest lucru CVI a fost prevăzut cu o serie de facilităţi de aranjare automată pe care le
vom prezenta mai jos
Figura 211
Top Edges asigură spaţiere verticală icircntre partea superioară a controalelor Cel mai de
sus şi cel mai de jos control sunt considerate puncte de referinţă
36
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Vertical Centers asigură spaţiere verticală icircntre centrele controalelor Cel mai de sus
şi cel mai de jos control sunt considerate puncte de referinţă
Bottom Edges asigură spaţiere verticală icircntre partea inferioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Vertical Gap asigură spaţiere verticală icircntre partea superioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Left Edges setează spaţii orizontale egale icircntre marginile din stacircnga ale controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Centers setează spaţii orizontale egale icircntre centrele controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Right Edges setează spaţii orizontale egale icircntre marginile din dreapta ale
controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Gap spaţiere orizontală icircntre controale Cel mai de sus şi cel mai de jos
control sunt considerate puncte de referinţă
Horizontal Compress minimizează spaţiile pe orizontală dintre controale şi elimină
orice spaţiu dintre ele
Distribute Vertical Centers
Comanda Distribute realizează la apel ultima opţiune selectată din lista prezentată
mai sus
37
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
numbersappend(i)
i = i + 1
O buclă similar for arată in felul următor
numbers = [ ]
for i in range(100)
numbersappend(i)
Icircn loc de buclele explicite prezentate mai sus se poate folosi şi bucle implicite după
cum urmează
numbers = range(100)
range(100) generează o listă cu toate numerele intregi de la 0 la 100
24 General packet radio service(GPRS)
Comunicaţia intre modemuri ( RTU-uri ) şi dispecer se poate face prin mai mlte
mediu de transmisie
- Cablu telephonic
- Radio
- GSMGPRS
- Fibră Optică
Opţiunea pentru care am optat icircn partea de comunicaţie este GSMGPRS deoarece
asigură o cumunicaţie sigură şi oferă simplitate pentru priectant
GPRS introduce servicii de transport cu comutaţie de pachete pentru debite de la 14
kbps la maximum 170 kbps Practic GPRS este o reţea cu comutaţie de pachete de sine
stătătoare care se daugă la reţeaua GSM GPRS interoperează cu infrastructura GSM la
nivelul subsistemului staţiilor de bază BSS şi al bazelor de date din subsistemul reţea NSS
(HLR VLR AUC) GPRS preia traficul de date iar GSM traficul de voce care rămacircne
comutat prin MSC
Datele sunt transmise prin GPRS icircn pachete de lungimi fixe Fiecare pachet conţine
adresa destinaţie pentru a putea fi rutat de nodurile GPRS Modificarea pe interfaţa radio e
18
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
dată de introducerea codării adaptive a canalului Aceasta icircnseamnă că protecţia datelor
variază icircn timp icircn funcţie de starea canalului radio GPRS poate utiliza pentru o conexiune
de date de la fracţiuni de canale de trafic pacircnă la maximum 8 sloturi temporale (adică tot
cadrul TDMA) icircn funcţie de resursele disponibile
Capacitatea alocată unei conexiuni va varia icircn funcţie de icircncărcarea cu trafic de pe
frecvenţa respectivă precum şi de tipul traficului (vocedate) Este important că utilizacircnd
comutaţia de pachete o transmisie de date nu ocupă resursele reţelei decacirct atunci cacircnd sunt
date de transmis Cacircnd nu există pachete de transmis resursele de pe interfaţa radio pot fi
utilizate pentru alte transmisii de date sau pentru trafic cu comutaţie de circuite
GPRS are o reţea nucleu proprie formată prin interconectarea serverelor care
gestionează transmisia de pachete numite noduri suport GPRS (GSN- GPRS Suport Node)
Aceasta reţea operează icircn paralel cu subsistemul reţea şi comutaţie (NSS) al GSM care va
gestiona icircn continuare transmisia cu comutaţie de circuite
241 Caracteristicile sistemului GPRS
GPRS este un serviciu specificat icircn faza 2+ de standardizare a GSM El este oferit prin
intermediul unei infrastructuri numită şi sistem sau reţea GPRS ce interoperează cu
infrastructura bdquoclasicărdquo GSM
GPRS se icircncadrează icircn orientarea generală a ETSI de a asigura prin aza 2+ o platformă
ce va putea fi utilizată ulterior icircn reţele de generaţia a treia Astfel el este onsiderat
actualmente soluţia de bază pentru transmiterea de date icircn UMTS Fiind un standard SM
GPRS păstrează evident şi compatibilitatea cu sistemul părinte fiind practic o extensie a
acestuia pentru transmisii de date la debite mai mari GPRS reprezintă la ora actuală cel mai
reprezentativ sistem de generaţie intermediară (25G)
Dacă HSCSD ar putea fi considerat o ajustare fină a GSM GPRS reprezintă cu
siguranţă un salt tehnologic semnificativ deoarece marchează trecerea de la comutaţia de
circuite la cea de pachete Schimbarea tipului de comutaţie se referă icircn acest moment (atacirct la
25G cacirct şi icircn 3G) doar la transmiterea datelor vocea rămacircnacircnd icircn continuare comutată prin
MSC Datorită eternei insuficienţe a resurselor radio este probabil ca icircntr-o fază nu prea
icircndepărtată de dezvoltare a UMTS şi de ce nu chiar a GPRS să fie utilizată comutaţia de
pachete şi pentru serviciile de timp real vocale sau non-vocale
Icircn concluzie GPRS reprezintă o infrastructura ce permite transmiterea datelor pe baza
comutaţiei de pachete icircntr-o reţea GSM
19
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Pentru a putea oferi debite de date mai ridicate icircn GPRS se urmăreşte utilizarea cacirct
mai eficientă a resurselor radio Pentru aceasta se preia de la HSCSD ideea operării multislot
posibilitatea de a proteja mai puţin informaţia utilă pe interfaţa radio şi alocarea asimetrică
uplink downlink Icircn ciuda acestor asemănări icircnlocuirea comutaţiei de circuite cu cea de
pachete face din GPRS un sistem complet diferit de HSCSD Aceasta atacirct din punct de vedere
al utilizatorului care constată un timp de conectare practic nul şi rate de transfer mai bune
dar şi din punct de vedere al operatorului care efectuează o investiţie incomparabil mai mare
răsplătită printr-o mai eficientă utilizare a interfeţei radio cu tot ceea ce rezultă de aici (mai
mulţi clienţi mai multe servicii aplicaţii diverse)
Rezumacircnd icircn GPRS este implementat un set de soluţii tehnologice ce au ca scop
principal creşterea eficienţei utilizării interfeţei radio Aceasta derivă atacirct din experienţa
sistemelor anterioare cacirct şi mai ales din operarea icircn modul pachet a datelor ce se transmit
Soluţiile utilizate sunt
creşterea ratei de transmisie a datelor prin reducerea codării canalului (sunt definite
şi pot
fi utilizate 4 scheme de codare 905kbps 134 kbps 156 kbps 214kbps)
creşterea ratei de transmisie prin operare multislot ( pacircnă la 8 sloturi temporale per
utilizator)
creşterea eficienţei utilizării resurselor radio prin multiplexarea mai multor
utilizatori pe acelaşi canal fizic (posibila datorită transmisiei de pachete maximum 8
utilizatori pe slot temporal)
creşterea eficienţei utilizării resurselor radio prin alocare asimetrică uplinkdownlink
creşterea eficienţei utilizării resurselor radio prin alocarea dinamică a canalelor icircntre
servicii comutate icircn mod circuit respectiv pachet
Cacircnd un icircntreg cadru TDMA este alocat unui utilizator cu schema de protecţie minimă
(practic fără corecţie de erori) rezultă rata utilă instantanee maximă posibilă icircn GPRS
(8x214 kbps=1712 kbps)
242 Comutaţie de circuite şi comutaţie de pachete
20
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comutaţia este o tehnică esenţială icircn reţelele de comunicaţii Fără ea fiecare
echipament terminal ar trebui conectat printr-o cale directă cu fir sau fără la toate celelalte
echipamente terminale din reţea Principalele metode de comutaţie sunt
comutaţia de circuite
comutaţia de mesaje
comutaţia de pachete
Comutaţia de circuite
Aceasta presupune realizarea icircntre emiţător şi receptor a unei căi fizice de comutaţie
dedicate numită circuit Icircntreaga comunicaţie se desfăşoară icircn trei etape
stabilirea conexiunii (sau deschiderea circuitului)
transferul de informaţii
eliberarea conexiunii (circuitului)
Este de remarcat faptul că stabilitatea fizică a caii de comunicaţie are loc icircnainte de
icircnceperea transmisiunii propriu-zise Aceasta poate conduce la durate semnificative ale
timpului de conectare
Un dezavantaj notoriu al acestei tehnici este alocarea fixă a resurselor de comunicaţie
necesare pe durata conexiunii indiferent dacă la un moment sau altul mediul de transmisie
este folosit total parţial sau deloc
Pe de altă parte avantajele comutaţiei de circuite provin tocmai din această alocare fixă de
resurse care permite
asigurarea unei icircntacircrzieri constante şi minime
garantarea unui debit util corespunzător mediului de comunicaţie şi serviciului utilizat
Toate acestea facilitează oferirea serviciilor de timp real (telefonie videofonie alte
transmisiuni video) Exemplul tipic de reţea cu comutaţie de circuite este reţea telefonică
publică comutată (PSTN) Reţeaua GSM este de asemenea o reţea cu comutaţie de circuite
Referindu-ne strict la interfaţa radio a reţelelor fără fir etapa de stabilire a conexiunii
presupune alocarea unui canal radio (sau a mai multora icircn cazul HSCSD) unei staţii mobile
(MS) Acest canal rămacircne icircn posesia terminalului mobil pe toata durata conexiunii chiar dacă
transferul de date este discontinuu (icircn rafale) sau chiar icircncetează cu desăvacircrşire (de exemplu
21
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cacircnd utilizatorul citeşte cu atenţie cinci minute o pagină WEB după care lămurit pe deplin
icircntrerupe legătura) Ca o particularizare binecunoscută a reţelelor cu comutaţie de circuite
trebuie menţionat că utilizatorul trebuie să plătească pentru icircntreaga durată a conexiunii chiar
dacă a fost risipitor şi nu a folosit resursa ce i-a fost alocată
Comutaţia de mesaje
Este o tehnică ce nu stabileşte apriori o cale de transmisiune icircntre emiţător şi receptor
Informaţia ce urmează a fi transmisă formează o entitate bine precizată numita mesaj
Mesajele sunt complet independente unele faţă de altele şi pot avea lungimi variabile deşi
structura (formatul) lor poate fi prestabilit Emiţătorul trebuie sa ataşeze mesajului adresa
destinatarului decizia cu privire la ruta pe care o va urma mesajul fiind de competenţa
fiecărui comutator (router) prin care trece Fiecare comutator va memora mesajul după care icircl
va transmite pe ieşirea selectată de el Principala problemă a comutaţiei de mesaje este dată de
dimensiunea mare a mesajelor Din această cauză comutatoarele de mesaje au nevoie de o
capacitate de stocare uriaşă iar icircntacircrzierea icircn noduri poate deveni inacceptabilă din cauza
monopolizării ieşirilor de către mesajele lungi Exemplul tipic de reţea cu comutaţie de
mesaje este reţeaua telex
Comutaţia de pachete
Rezolvă o mare parte din dezavantajele comutaţiei de mesaje stabilind o lungime
maximă a entităţii informaţionale care circulă prin reţea numită pachet Pachetele sunt icircn
general rezultatul divizării mesajelor icircn blocuri de lungime mică Datorită acestui fapt spre
deosebire de mesaje pachetele nu sunt independente O recepţie corespunzătoare implică
refacerea mesajului prin ordonarea pachetelor după logica folosită la emisie Pentru aceasta
exista două posibilităţi apropiate conceptual de comutaţia de mesaje respectiv de comutaţia
de circuite
A Comutaţia de pachete fără conexiune (sau neorientată pe conexiune)
Icircn cazul comutaţiei de pachete fără conexiune pachetele (numite şi datagrame) se transmit
independent icircn cel mai pur spirit al comutaţiei de mesaje urmacircnd rute posibil diferite
Sosirea lor la destinaţie poate avea loc icircntr-o ordine aleatoare ceea ce necesită reordonarea lor
de către receptor Refacerea succesiunii corecte a pachetelor se bazează pe informaţia
22
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
suplimentară din fiecare pachet privitoare la mesajul din care face parte şi locul pe care icircl
ocupa icircn el Exemplul tipic de reţea care utilizează comutaţia de pachete este internetul
BComutaţia de pachete orientată pe conexiune (sau circuit virtual)
Icircn cazul comutaţiei de pachete orientată pe conexiune (sau circuit virtual) comunicarea
icircntre terminale presupune stabilirea unei căi anume pe care va circula fluxul informaţional
dintre acestea similar cu comutaţia de circuite Spre deosebire de aceasta nu este vorba de
dedicarea unui circuit fizic comunicării respective ci de configurarea unui circuit logic
numit circuit virtual Aceasta icircnseamnă că toate pachetele vor urma aceeaşi cale prin reţea
fără a dedica suportul fizic comunicaţiei respective Pachetele altor utilizatori vor putea folosi
foarte bine segmente din calea respectivă sau chiar icircntreaga cale La stabilirea circuitului
virtual fiecare comutator (router) trebuie să memoreze icircn tabela de dirijare care este
succesorul său icircn respectivul circuit virtual Astfel spre deosebire de comutaţia de pachete
fără conexiune după stabilirea circuitului virtual comutatorul nu mai trebuie să decidă calea
fiecărui pachet Avacircnd memorat nodul succesor icircn fiecare dintre circuitele virtuale icircn care este
implicat comutatorul va identifica circuitul asociat pachetului şi icircl va transmite pe acesta pe
linia de ieşire corespunzătoare Tehnica circuitului virtual garantează livrarea icircn ordine a
pachetelor la destinaţie Exemple marcante de reţele ce utilizează comutaţia de pachete de tip
circuit virtual sunt X25 şi ATM
Marele avantaj al comutaţiei de pachete este utilizarea eficientă a resurselor de
transmisiune Deoarece acestea nu sunt dedicate ele pot fi folosite după necesităţi pentru a
transmite pachete provenind de la utilizatori diferiţi Din acest motiv comutaţia de pachete
este extrem de avantajoasă icircn cazul unei infrastructuri cu resurse de transmisiune limitate
cum este şi cazul reţelelor fără fir
Un dezavantaj important al comutaţiei de pachete este dat de gestionarea comutatoarelor
(routerelor) icircn cazul unui trafic crescut la intrare Pierderea pachetelor garantarea unei
icircntacircrzieri maxime şi a unui debit utilizator constant sunt problemele spinoase ale comutaţiei
de pachete Ele reprezintă obstacole icircn special icircn calea oferirii serviciilor de timp real cum ar
fi telefonia
Icircn schimb icircn cazul transmisiilor de date avantajul bunei administrări a resurselor
prevalează De exemplu icircn cazul particular al interfeţei radio GSM cacircnd o staţie mobilă (MS)
generează un pachet de date reţeaua icircl va transmite pe un canal radio disponibil icircn acel
moment Următorul pachet de pe acel canal poate să aparţină aceleiaşi MS dacă are ceva de
23
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
transmis sau dacă nu alteia Icircn acest mod atacircta timp cacirct cineva are ceva de transmis
canalele radio nu sunt blocate inutil Lucrul icircn mod pachet are o eficienţă cu totul deosebită icircn
cazul unui trafic de date icircn rafale (data bursts)
Aşadar pentru un sistem GSM bazat esenţialmente pe comutaţia de circuite este
extrem de utilă alocarea resurselor neutilizate de către serviciile vocale pentru servicii mai
puţin prioritare Atacirct HSCSD cacirct şi GPRS icircşi propun acest lucru Serviciile cele mai potrivite
pentru valorificarea resurselor rămase (preferabil printr-un mecanism de alocare dinamică)
sunt tocmai cele care implică un trafic de date icircn rafale fără pretenţii de timp real Diferenţa
fundamentală icircntre HSCSD şi GPRS este că acesta din urmă valorifică aceste resurse icircntr-un
mod mult mai eficient deoarece utilizează comutaţia de pachete Icircn plus costul serviciilor
oferite este mai atractiv deoarece utilizatorul plăteşte volumul de date transferat Practic dacă
doreşte utilizatorul poate fi sbquoconectatrsquo la reţeaua de date icircn permanenţă fiind taxat doar
pentru timpul icircn care efectiv utilizează resursele reţelei adică pentru pachetele de date
recepţionate respectiv transmise
243 Servicii GPRS
Dintre aplicaţiile cele mai potrivite pentru GPRS se pot aminti mesageria de orice tip
difuzare şi distribuţie multiplă telemetrie jocuri navigare de mică anvergură pe reţeaua
internet Icircn general orice tip de aplicaţii ce necesită comunicaţii maşină - maşină la debite
mici şi medii sunt adecvate dezvoltării icircn mediul GPRS
Ca şi icircn reţeaua GSM reţelele GPRS pot oferi două categorii de servicii de
telecomunicaţii
servicii de bază
servicii suplimentare
Serviciile de bază GPRS
Acestea sunt icircn principal servicii suport (bearer services) de transport care realizează
transmiterea datelor cu comutaţie de pachete icircntre două interfeţe şi din teleservicii Similar
situaţiei din GSM aceste interfeţe sunt
interfaţa dintre echipamentul terminal de date (de exemplu calculator) şi terminalul
mobil GPRS
24
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
interfaţa dintre reţeaua GPRS şi reţeaua de date sau echipamentul terminal cu care
comunică Aceasta interfaţă este situată icircntr-un nod poartă (gateway) GPRS similar
situaţiei din GSM unde locul ei este GMSC
Teleserviciul fundamental oferit de GPRS este cel de transport de date şi este detaliat
mai jos Un alt teleserviciu oferit de GPRS este transmisia şi recepţia de mesaje scurte (SMS)
Astfel pe de o parte capacitatea de transmisie a mesajelor scurte va creşte iar pe de alta
parte reţeaua de semnalizări pe care se transmit icircn GSM aceste mesaje nu va mai fi icircncărcată
şi cu mesaje scurte ce vin sau pleacă de la la terminalele mobile GPRS
Servicii GPRS de transport
Sunt definite doua categorii de teleservicii de transport
servicii punct-la-punct (PTP ndashPoint-to-Point)
servicii punct la multipunct (PTM-Point-to-Multipoint)
A Serviciul PTP
Serviciul punct la punct (PTP) [GSM 0260] permite transmiterea de pachete de date
icircntre doi utilizatori Este implementat icircn GPRS faza 1 Abonatul care a iniţiat serviciul se
numeşte solicitant (service requester) Partenerul său se numeşte receptor al serviciului
(service receiver)
Serviciul PTP poate fi solicitat fie de la terminalul mobil GPRS fie de la un
echipament situat icircntr-o reţea de date fixă (IP X25) Serviciul PTP poate fi oferit de
asemenea icircntre doi utilizatori mobili GPRS
Serviciul punct-la punct poate fi la racircndul sau de două tipuri
PTP fără conexiune (PTP-CLNS ndash PTP Connectinnless Network Service)
PTP orientat pe conexiune (PTP-CONS ndashPTP Connection Orientated Network
Network Service)
PTP-CLNS este un serviciu de tip datagramă ce utilizează comutaţia de pachete fără
conexiune Este util icircn cazul aplicaţiilor ce generează trafic icircn rafale şi are că scop asigurarea
interoperării cu reţele IP
PTP-CONS este un serviciu de tip circuit virtual ce utilizează comutaţia de pachete
orientata pe conexiune Icircntre cei doi utilizatori se stabileşte un circuit virtual pentru o perioadă
25
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ce poate varia de la cacircteva secunde la ore Este util atacirct pentru aplicaţii ce generează trafic icircn
rafale cacirct şi pentru aplicaţiile interactive Are că scop asigurarea interoperării cu reţele X25 şi
derularea peste GPRS a aplicaţiilor bazate pe protocolul OSI CONS(Connection Orientated
Network Protocol)
O reţea GPRS trebuie să asigure menţinerea circuitului virtual la trecerea dintr-o
celulă icircn alta dar numai icircn interiorul aceleiaşi reţele GPRS-PLMN La trecerea terminalului
mobil icircntr-o altă reţea sau icircn cazul căderii legăturii radio circuitul virtual va fi eliberat Pentru
ambele tipuri de servicii pe interfaţa radio se poate opera fie cu confirmare fie fără
confirmare a transportului de date
B Serviciul PTM
Serviciul punct la multipunct (PTM) permite transmiterea de pachete de date de la un
utilizator către mai mulţi utilizatori El este implementat icircn faza a doua a GPRS O
comunicaţie PTM se stabileşte icircntre un furnizor de servicii (ce poate fi situat icircn afară reţelei
GSM) şi un grup de terminale GPRS Şi serviciul PTM este un serviciu ce se prezintă icircn două
variante
PTMndash multidistribuţie (PTM Multicast)
PTM- grup (PTM-G--PTMGroup)
Serviciul de transport PTM-M permite transmiterea pachetelor de date icircntr-o arie
geografică dată (celulă grup de celule) fără confirmare Receptorii serviciului sunt fie toţi
abonaţii care se găsesc icircn acea zonă fie un grup icircnchis de utilizatori
Icircn cazul PTM-G receptorul serviciului este un grup predefinit de utilizatori Pachetele de
date vor fi trimise către toţi membrii grupului indiferent de aria geografică unde se găsesc
aceştia Este posibilă şi transmiterea doar către acei membri care se găsesc icircn anumite zone
geografice Transmisia poate fi şi cu confirmare
Serviciile suplimentare
Printre serviciile suplimentare avute icircn vedere icircntr-un prim stadiu se numără
redirecţionarea necondiţionată a apelurilor redirecţionarea cacircnd abonatul nu este accesibil şi
definirea de grupuri icircnchise de utilizatori In afară de aceste servicii recomandarea GSM
0260 descrie posibilitatea oferirii de servicii adiţionale cum sunt accesarea bazelor de date
servicii de mesagerie validări de cărţi de credit servicii de monitorizare electronică tranzacţii
electronice etc
26
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
244 Arhitectura GPRS
GPRS este o soluţie pentru operatori deoarece nu necesită modificări substanţiale icircn
reţeaua GSM Aşa cum se observă icircn figura 72 reţeaua nucleu a GPRS operează icircn paralel
cu GSM-NSS
Figura 23 Arhitectura reţelei GPRS
25 LabWindowsCVI
La dipecer am considerat un calculator desktop sau laptop pe care va rula o aplicaţie
de monitorizare a datelor măsurate implementată icircn LabWindowsCVI
LabWindowsCVI este o platformă pentru dezvoltare de software cu orientare pe
aplicaţii de instrumentaţie După cum se deduce din denumirea sa (CVI ndash C for Virtual
Instrumentation) limbajul acceptat este ANSI C cu extensii specifice CVI ne pune la
dispoziţie un mediu interactiv de dezvoltare a unor aplicaţii pentru sistemul de operare
Windows Icircmbină deci avantajele programării de tip vizual cu avantajele simplităţii şi
flexibilităţii limbajului C Deşi a fost creat special pentru aplicaţii de instrumentaţie şi control
27
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
multiplele lui facilităţi icircl fac capabil să suporte şi dezvoltarea unor aplicaţii de mărime medie
care să fie de altă factură Fiecare funcţie de bibliotecă din cadrul acestui mediu are o interfaţă
specializată numită panoul funcţiei (function panel) care permite
bull Help on-line
bull Selectare şi declarare de variabile sau constante necesare
bull Execuţie interactivă
bull Inserarea funcţiei editate icircntr-un text sursă
Mediul este extrem de flexibil permiţacircnd interfaţarea bidirecţională cu alte compilatoare de
C sau C++ De asemenea se pot folosi şi DLL-uri
Puterea mediului LabWindowsCVI este dată de bibliotecile puse la dispoziţia
programatorului acestea conţinacircnd funcţii pentru implementarea diverselor faze care conduc
la o aplicaţie din domeniul achiziţiei de date sau a controlului automat
Pentru achiziţia de date există următoarele biblioteci specializate
bull de instrumente
bull pentru interfaţa GPIBGPIB 4882 (General Purpose Interface Bus)
bull pentru achiziţie de date
bull pentru operaţii IO icircn cazul achiziţiei de date
bull pentru interfaţa serială RS232
bull pentru sistemul VXI
Biblioteci specializate pentru analiza datelor
bull pentru IO
bull pentru formatarea specială
bull pentru analiză
bull pentru analiză avansată
Biblioteci specializate pentru vizualizare date
bull pentru crearea unei interfeţe utilizator de tip vizual
Biblioteci specializate pentru lucrul icircn reţea şi comunicarea icircntre diverse aplicaţii
bull pentru DDE (Dynamic Data Exchange)
bull pentru TCP (Transmision Control Protocol)
bull pentru sistemul X de sub Unix
Icircn afară de acestea mai există o bibliotecă specială numită biblioteca de instrumente
care conţine drivere şi sursele lor pentru osciloscoape multimetre şi generatoare de funcţii
De asemenea există posibilitatea creării unui instrument propriu Biblioteca pentru interfaţa
28
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cu utilizatorul conţine funcţiile necesare creării unui GUI (Graphical User Interface =
Interfaţă grafică cu utilizatorul) după necesităţi
Structura generică a unei aplicaţii dezvoltate sub CVI
Un proiect complet pentru una din clasele de aplicaţii specifice mediului CVI are
următoarele componente generice
bull interfaţa cu utilizatorul
bull partea de control a aplicaţiei
bull partea specializată pentru achiziţia datelor
bull partea specializată icircn analiza respectivelor date
Mai jos prezentăm o schemă generică a aplicaţiilor CVI
Figura 24
Tipuri de fişiere folosite icircn cadrul CVI
PRJ se referă la fişiere de tip proiect
UIR se referă la fişiere care conţin descrierea unei interfeţe grafice cu utilizatorul
C fişiere sursă
H fişiere header
FP fişiere care reţin descrierea unui instrument
LIB fişiere bibliotecă
DLL fişiere link-editate pentru apel dinamic
OBJ fişiere obiect
29
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a unora dintre meniurile şi ferestrele mediului de dezvoltare CVI
Fereastra proiect
Prezentăm mai jos doar informaţiile suplimentare faţă de o fereastră proiect standard
Pe lacircngă datele curente despre fiecare fişier inclus icircn proiect acesta mai are precizat şi unul
sau mai mulţi din următorii indici
- I indică faptul că respectivul fişier conţine descrierea unui driver de instrument
- S faptul că s-au făcut modificări icircn fişierul respectiv şi deci trebuie salvat
- C indică obligativitatea compilării respectivului fişier icircnainte de rularea aplicaţiei
- indică faptul că fişierul este deschis icircntr-o fereastră de editare
- indică ca acest fişier nu este deschis
Aplicaţii consolă
Pentru aplicaţiile tip consolă clasice C unde se folosesc pentru IO funcţiile scanf şi
printf vizualizarea ieşirii icircn mod text a acestora se va face icircntr-o fereastră specială numită
ldquoStandard InputOutput Windowrdquo
Observaţie Dacă se va programa icircn acest mod trebuie activată opţiunea ldquoBring Standard
InputOtput to front whenever modifyrdquo din Environment ce aparţine meniului Options
Generatorul interactiv de aplicaţii
Butoanele directe ale editorului de interfeţe cu utilizatorul
folosit la selectare mutare şi dimensionare obiecte
utilizat pentru a modifica textul asociat cu obiectele din UIR folosind facilităţile de
etichetare
folosit pentru colorarea obiectelor Este suficientă o apăsare pe butonul din dreapta a
mouse-ului şi va colora automat obiectul selectat cu culoarea curentă
oferă facilităţi de operare Atunci cacircnd este activat evenimentele vor fi afişate icircn partea
dreaptă a barei de facilităţi
30
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a cacirctorva din meniurile mai importante ale generatorului
Menu Bars activează cutia de dialog care ne prezintă toate barele de meniu definite deja de
programator
Figura 25
Create apelează fereastra Edit Menu Bar pentru a crea o nouă bară de meniuri
Edit apelează fereastra Edit Menu Bar pentru a modifica o bară de meniuri existentă
Fereastra Edit Menu Bar(fig26) permite specificarea sau modificarea caracteristicilor
unei bare de meniuri icircn curs de creare sau care există deja
31
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 26
Menu Bar Constant Prefix este identificatorul intern al respectivei bare de meniuri Acesta
va fi folosit de funcţia LoadMenuBar pentru icircncărcarea icircn memorie a parametrilor care conţin
această bară Va fi definit automat icircn fişierul header din scheletul de aplicaţie
Item se referă la numele meniului curentsubmeniucomandă de meniu Dacă icircn faţa primei
litere a unui element din meniu se adaugă 2 ldquounderscorerdquo la execuţie acesta va putea fi
selectat prin combinaţia Alt+prima literă
Constant name este alipit la Menu Bar Constant Prefix pentru a se genera identificatorul
elementului curent Este folosit de funcţii ca GetMenuBarAttribute sau SetMenuBarAttribute
De asemenea acest identificator este returnat de GetUserEvent atunci cacircnd apare un
eveniment generat de o comandă a meniului
Callback Function Permite specificarea numelui unei funcţii de răspuns care va fi apelată
automat la activarea respectivului element Folosirea ei este opţională
32
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ModifierKeyShortcutKey se combină pentru a ataşa o cheie ldquohotrdquo pentru elementul
curent
buton ce permite coboracircrea icircn interiorul unei ierarhii de meniuri
buton ce permite urcarea icircn interiorul unei ierarhii de meniuri
Panouri
După cum am spus sunt echivalentul ferestrelor din programarea Windows Pentru a le crea
Create1048774Panel ne pune la dispoziţie un nou panou icircn cadrul UIR-ului curent Prin dublu
ldquoclickrdquo pe acesta se va intra in fereastra de editare a caracteristicilor panoului Această
fereastră este prezentată mai jos
Figura 27
La partea de Menu Bar se poate specifica o bară din cele deja create icircn cazul dezvoltării
respectivei interfeţe
Restul parametrilor au fost discutaţi anterior sau sunt cunoscuţi din programarea Windows
33
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Crearea controalelor
Exceptacircnd diferenţele care apar funcţie de destinaţia acestora există o serie de parametri
comuni fiecărui control pe care icircl creăm Mai jos prezentăm fereastra care apare de exemplu
la crearea unui control de tip numeric şi anume un buton
Figura 28
Se observă că identificatorul intern şi posibilitatea de ataşare a unei funcţii de răspuns
rămacircne De asemenea o serie de informaţii specifice părţii de etichetare Icircn plus apar
specificaţii privind modul de afişare a datelor şi limitele icircntre care acestea pot fi variate prin
intermediul acestui control
34
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
TAB ORDER
Fiecare control de pe un panou activ are o poziţie icircn ordinea de salt prin intermediul
unui tab Această ordine precizează care va fi următorul control ce va fi activat icircn cazul icircn
care utilizatorul apasă Tab sau Shift+Tab Implicit acestea sunt adăugate exact icircn ordinea
creării lor de către programator Numai că nu icircntotdeauna aceasta este ordinea de salt dorită a
fi activă la terminarea aplicaţiei Icircn aceste condiţii secvenţa Edit1048774Tab Order ne va activa un
panou specializat pentru aceasta
Figura 29
noua formă de cursor activă icircn interiorul ferestrei Prin apăsarea pe un control oarecare i
se
poate modifica ordinea de activare
specifică faptul că se acceptă noua ordine de apelare
se iese cu păstrarea vechii ordini
Find UIR Objects
O altă facilitate a editorului este Find UIR Objects care aparţine meniului View Icircn
cadrul unor proiecte mari se dovedeşte a fi extrem de utilă
35
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 210
După cum se observă ne permite căutarea după dorinţă a unui nume icircn diverse categorii de
obiecte ale interfeţei cu utilizatorul
GENERATE
Este meniul folosit pentru generarea fie a icircntregului cod schelet fie numai a codului
corespunzător unui obiect proaspăt introdus icircntr-un UIR
Secvenţa Code1048774Generate1048774AllCode va genera codul schelet pentru aplicaţie Acesta va
conţine şi un ldquoswitchrdquo pentru tratarea evenimentelor Alegerea evenimentelor care vor fi
automat introduse se face din Code1048774Preferences
MENIUL ARRANGE
Icircncă de la primele aplicaţii vom observa că una din operaţiile mari consumatoare de
timp este aranjarea controalelor icircn panou după specificarea caracteristicilor acestora Pentru a
evita acest lucru CVI a fost prevăzut cu o serie de facilităţi de aranjare automată pe care le
vom prezenta mai jos
Figura 211
Top Edges asigură spaţiere verticală icircntre partea superioară a controalelor Cel mai de
sus şi cel mai de jos control sunt considerate puncte de referinţă
36
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Vertical Centers asigură spaţiere verticală icircntre centrele controalelor Cel mai de sus
şi cel mai de jos control sunt considerate puncte de referinţă
Bottom Edges asigură spaţiere verticală icircntre partea inferioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Vertical Gap asigură spaţiere verticală icircntre partea superioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Left Edges setează spaţii orizontale egale icircntre marginile din stacircnga ale controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Centers setează spaţii orizontale egale icircntre centrele controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Right Edges setează spaţii orizontale egale icircntre marginile din dreapta ale
controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Gap spaţiere orizontală icircntre controale Cel mai de sus şi cel mai de jos
control sunt considerate puncte de referinţă
Horizontal Compress minimizează spaţiile pe orizontală dintre controale şi elimină
orice spaţiu dintre ele
Distribute Vertical Centers
Comanda Distribute realizează la apel ultima opţiune selectată din lista prezentată
mai sus
37
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
dată de introducerea codării adaptive a canalului Aceasta icircnseamnă că protecţia datelor
variază icircn timp icircn funcţie de starea canalului radio GPRS poate utiliza pentru o conexiune
de date de la fracţiuni de canale de trafic pacircnă la maximum 8 sloturi temporale (adică tot
cadrul TDMA) icircn funcţie de resursele disponibile
Capacitatea alocată unei conexiuni va varia icircn funcţie de icircncărcarea cu trafic de pe
frecvenţa respectivă precum şi de tipul traficului (vocedate) Este important că utilizacircnd
comutaţia de pachete o transmisie de date nu ocupă resursele reţelei decacirct atunci cacircnd sunt
date de transmis Cacircnd nu există pachete de transmis resursele de pe interfaţa radio pot fi
utilizate pentru alte transmisii de date sau pentru trafic cu comutaţie de circuite
GPRS are o reţea nucleu proprie formată prin interconectarea serverelor care
gestionează transmisia de pachete numite noduri suport GPRS (GSN- GPRS Suport Node)
Aceasta reţea operează icircn paralel cu subsistemul reţea şi comutaţie (NSS) al GSM care va
gestiona icircn continuare transmisia cu comutaţie de circuite
241 Caracteristicile sistemului GPRS
GPRS este un serviciu specificat icircn faza 2+ de standardizare a GSM El este oferit prin
intermediul unei infrastructuri numită şi sistem sau reţea GPRS ce interoperează cu
infrastructura bdquoclasicărdquo GSM
GPRS se icircncadrează icircn orientarea generală a ETSI de a asigura prin aza 2+ o platformă
ce va putea fi utilizată ulterior icircn reţele de generaţia a treia Astfel el este onsiderat
actualmente soluţia de bază pentru transmiterea de date icircn UMTS Fiind un standard SM
GPRS păstrează evident şi compatibilitatea cu sistemul părinte fiind practic o extensie a
acestuia pentru transmisii de date la debite mai mari GPRS reprezintă la ora actuală cel mai
reprezentativ sistem de generaţie intermediară (25G)
Dacă HSCSD ar putea fi considerat o ajustare fină a GSM GPRS reprezintă cu
siguranţă un salt tehnologic semnificativ deoarece marchează trecerea de la comutaţia de
circuite la cea de pachete Schimbarea tipului de comutaţie se referă icircn acest moment (atacirct la
25G cacirct şi icircn 3G) doar la transmiterea datelor vocea rămacircnacircnd icircn continuare comutată prin
MSC Datorită eternei insuficienţe a resurselor radio este probabil ca icircntr-o fază nu prea
icircndepărtată de dezvoltare a UMTS şi de ce nu chiar a GPRS să fie utilizată comutaţia de
pachete şi pentru serviciile de timp real vocale sau non-vocale
Icircn concluzie GPRS reprezintă o infrastructura ce permite transmiterea datelor pe baza
comutaţiei de pachete icircntr-o reţea GSM
19
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Pentru a putea oferi debite de date mai ridicate icircn GPRS se urmăreşte utilizarea cacirct
mai eficientă a resurselor radio Pentru aceasta se preia de la HSCSD ideea operării multislot
posibilitatea de a proteja mai puţin informaţia utilă pe interfaţa radio şi alocarea asimetrică
uplink downlink Icircn ciuda acestor asemănări icircnlocuirea comutaţiei de circuite cu cea de
pachete face din GPRS un sistem complet diferit de HSCSD Aceasta atacirct din punct de vedere
al utilizatorului care constată un timp de conectare practic nul şi rate de transfer mai bune
dar şi din punct de vedere al operatorului care efectuează o investiţie incomparabil mai mare
răsplătită printr-o mai eficientă utilizare a interfeţei radio cu tot ceea ce rezultă de aici (mai
mulţi clienţi mai multe servicii aplicaţii diverse)
Rezumacircnd icircn GPRS este implementat un set de soluţii tehnologice ce au ca scop
principal creşterea eficienţei utilizării interfeţei radio Aceasta derivă atacirct din experienţa
sistemelor anterioare cacirct şi mai ales din operarea icircn modul pachet a datelor ce se transmit
Soluţiile utilizate sunt
creşterea ratei de transmisie a datelor prin reducerea codării canalului (sunt definite
şi pot
fi utilizate 4 scheme de codare 905kbps 134 kbps 156 kbps 214kbps)
creşterea ratei de transmisie prin operare multislot ( pacircnă la 8 sloturi temporale per
utilizator)
creşterea eficienţei utilizării resurselor radio prin multiplexarea mai multor
utilizatori pe acelaşi canal fizic (posibila datorită transmisiei de pachete maximum 8
utilizatori pe slot temporal)
creşterea eficienţei utilizării resurselor radio prin alocare asimetrică uplinkdownlink
creşterea eficienţei utilizării resurselor radio prin alocarea dinamică a canalelor icircntre
servicii comutate icircn mod circuit respectiv pachet
Cacircnd un icircntreg cadru TDMA este alocat unui utilizator cu schema de protecţie minimă
(practic fără corecţie de erori) rezultă rata utilă instantanee maximă posibilă icircn GPRS
(8x214 kbps=1712 kbps)
242 Comutaţie de circuite şi comutaţie de pachete
20
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comutaţia este o tehnică esenţială icircn reţelele de comunicaţii Fără ea fiecare
echipament terminal ar trebui conectat printr-o cale directă cu fir sau fără la toate celelalte
echipamente terminale din reţea Principalele metode de comutaţie sunt
comutaţia de circuite
comutaţia de mesaje
comutaţia de pachete
Comutaţia de circuite
Aceasta presupune realizarea icircntre emiţător şi receptor a unei căi fizice de comutaţie
dedicate numită circuit Icircntreaga comunicaţie se desfăşoară icircn trei etape
stabilirea conexiunii (sau deschiderea circuitului)
transferul de informaţii
eliberarea conexiunii (circuitului)
Este de remarcat faptul că stabilitatea fizică a caii de comunicaţie are loc icircnainte de
icircnceperea transmisiunii propriu-zise Aceasta poate conduce la durate semnificative ale
timpului de conectare
Un dezavantaj notoriu al acestei tehnici este alocarea fixă a resurselor de comunicaţie
necesare pe durata conexiunii indiferent dacă la un moment sau altul mediul de transmisie
este folosit total parţial sau deloc
Pe de altă parte avantajele comutaţiei de circuite provin tocmai din această alocare fixă de
resurse care permite
asigurarea unei icircntacircrzieri constante şi minime
garantarea unui debit util corespunzător mediului de comunicaţie şi serviciului utilizat
Toate acestea facilitează oferirea serviciilor de timp real (telefonie videofonie alte
transmisiuni video) Exemplul tipic de reţea cu comutaţie de circuite este reţea telefonică
publică comutată (PSTN) Reţeaua GSM este de asemenea o reţea cu comutaţie de circuite
Referindu-ne strict la interfaţa radio a reţelelor fără fir etapa de stabilire a conexiunii
presupune alocarea unui canal radio (sau a mai multora icircn cazul HSCSD) unei staţii mobile
(MS) Acest canal rămacircne icircn posesia terminalului mobil pe toata durata conexiunii chiar dacă
transferul de date este discontinuu (icircn rafale) sau chiar icircncetează cu desăvacircrşire (de exemplu
21
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cacircnd utilizatorul citeşte cu atenţie cinci minute o pagină WEB după care lămurit pe deplin
icircntrerupe legătura) Ca o particularizare binecunoscută a reţelelor cu comutaţie de circuite
trebuie menţionat că utilizatorul trebuie să plătească pentru icircntreaga durată a conexiunii chiar
dacă a fost risipitor şi nu a folosit resursa ce i-a fost alocată
Comutaţia de mesaje
Este o tehnică ce nu stabileşte apriori o cale de transmisiune icircntre emiţător şi receptor
Informaţia ce urmează a fi transmisă formează o entitate bine precizată numita mesaj
Mesajele sunt complet independente unele faţă de altele şi pot avea lungimi variabile deşi
structura (formatul) lor poate fi prestabilit Emiţătorul trebuie sa ataşeze mesajului adresa
destinatarului decizia cu privire la ruta pe care o va urma mesajul fiind de competenţa
fiecărui comutator (router) prin care trece Fiecare comutator va memora mesajul după care icircl
va transmite pe ieşirea selectată de el Principala problemă a comutaţiei de mesaje este dată de
dimensiunea mare a mesajelor Din această cauză comutatoarele de mesaje au nevoie de o
capacitate de stocare uriaşă iar icircntacircrzierea icircn noduri poate deveni inacceptabilă din cauza
monopolizării ieşirilor de către mesajele lungi Exemplul tipic de reţea cu comutaţie de
mesaje este reţeaua telex
Comutaţia de pachete
Rezolvă o mare parte din dezavantajele comutaţiei de mesaje stabilind o lungime
maximă a entităţii informaţionale care circulă prin reţea numită pachet Pachetele sunt icircn
general rezultatul divizării mesajelor icircn blocuri de lungime mică Datorită acestui fapt spre
deosebire de mesaje pachetele nu sunt independente O recepţie corespunzătoare implică
refacerea mesajului prin ordonarea pachetelor după logica folosită la emisie Pentru aceasta
exista două posibilităţi apropiate conceptual de comutaţia de mesaje respectiv de comutaţia
de circuite
A Comutaţia de pachete fără conexiune (sau neorientată pe conexiune)
Icircn cazul comutaţiei de pachete fără conexiune pachetele (numite şi datagrame) se transmit
independent icircn cel mai pur spirit al comutaţiei de mesaje urmacircnd rute posibil diferite
Sosirea lor la destinaţie poate avea loc icircntr-o ordine aleatoare ceea ce necesită reordonarea lor
de către receptor Refacerea succesiunii corecte a pachetelor se bazează pe informaţia
22
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
suplimentară din fiecare pachet privitoare la mesajul din care face parte şi locul pe care icircl
ocupa icircn el Exemplul tipic de reţea care utilizează comutaţia de pachete este internetul
BComutaţia de pachete orientată pe conexiune (sau circuit virtual)
Icircn cazul comutaţiei de pachete orientată pe conexiune (sau circuit virtual) comunicarea
icircntre terminale presupune stabilirea unei căi anume pe care va circula fluxul informaţional
dintre acestea similar cu comutaţia de circuite Spre deosebire de aceasta nu este vorba de
dedicarea unui circuit fizic comunicării respective ci de configurarea unui circuit logic
numit circuit virtual Aceasta icircnseamnă că toate pachetele vor urma aceeaşi cale prin reţea
fără a dedica suportul fizic comunicaţiei respective Pachetele altor utilizatori vor putea folosi
foarte bine segmente din calea respectivă sau chiar icircntreaga cale La stabilirea circuitului
virtual fiecare comutator (router) trebuie să memoreze icircn tabela de dirijare care este
succesorul său icircn respectivul circuit virtual Astfel spre deosebire de comutaţia de pachete
fără conexiune după stabilirea circuitului virtual comutatorul nu mai trebuie să decidă calea
fiecărui pachet Avacircnd memorat nodul succesor icircn fiecare dintre circuitele virtuale icircn care este
implicat comutatorul va identifica circuitul asociat pachetului şi icircl va transmite pe acesta pe
linia de ieşire corespunzătoare Tehnica circuitului virtual garantează livrarea icircn ordine a
pachetelor la destinaţie Exemple marcante de reţele ce utilizează comutaţia de pachete de tip
circuit virtual sunt X25 şi ATM
Marele avantaj al comutaţiei de pachete este utilizarea eficientă a resurselor de
transmisiune Deoarece acestea nu sunt dedicate ele pot fi folosite după necesităţi pentru a
transmite pachete provenind de la utilizatori diferiţi Din acest motiv comutaţia de pachete
este extrem de avantajoasă icircn cazul unei infrastructuri cu resurse de transmisiune limitate
cum este şi cazul reţelelor fără fir
Un dezavantaj important al comutaţiei de pachete este dat de gestionarea comutatoarelor
(routerelor) icircn cazul unui trafic crescut la intrare Pierderea pachetelor garantarea unei
icircntacircrzieri maxime şi a unui debit utilizator constant sunt problemele spinoase ale comutaţiei
de pachete Ele reprezintă obstacole icircn special icircn calea oferirii serviciilor de timp real cum ar
fi telefonia
Icircn schimb icircn cazul transmisiilor de date avantajul bunei administrări a resurselor
prevalează De exemplu icircn cazul particular al interfeţei radio GSM cacircnd o staţie mobilă (MS)
generează un pachet de date reţeaua icircl va transmite pe un canal radio disponibil icircn acel
moment Următorul pachet de pe acel canal poate să aparţină aceleiaşi MS dacă are ceva de
23
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
transmis sau dacă nu alteia Icircn acest mod atacircta timp cacirct cineva are ceva de transmis
canalele radio nu sunt blocate inutil Lucrul icircn mod pachet are o eficienţă cu totul deosebită icircn
cazul unui trafic de date icircn rafale (data bursts)
Aşadar pentru un sistem GSM bazat esenţialmente pe comutaţia de circuite este
extrem de utilă alocarea resurselor neutilizate de către serviciile vocale pentru servicii mai
puţin prioritare Atacirct HSCSD cacirct şi GPRS icircşi propun acest lucru Serviciile cele mai potrivite
pentru valorificarea resurselor rămase (preferabil printr-un mecanism de alocare dinamică)
sunt tocmai cele care implică un trafic de date icircn rafale fără pretenţii de timp real Diferenţa
fundamentală icircntre HSCSD şi GPRS este că acesta din urmă valorifică aceste resurse icircntr-un
mod mult mai eficient deoarece utilizează comutaţia de pachete Icircn plus costul serviciilor
oferite este mai atractiv deoarece utilizatorul plăteşte volumul de date transferat Practic dacă
doreşte utilizatorul poate fi sbquoconectatrsquo la reţeaua de date icircn permanenţă fiind taxat doar
pentru timpul icircn care efectiv utilizează resursele reţelei adică pentru pachetele de date
recepţionate respectiv transmise
243 Servicii GPRS
Dintre aplicaţiile cele mai potrivite pentru GPRS se pot aminti mesageria de orice tip
difuzare şi distribuţie multiplă telemetrie jocuri navigare de mică anvergură pe reţeaua
internet Icircn general orice tip de aplicaţii ce necesită comunicaţii maşină - maşină la debite
mici şi medii sunt adecvate dezvoltării icircn mediul GPRS
Ca şi icircn reţeaua GSM reţelele GPRS pot oferi două categorii de servicii de
telecomunicaţii
servicii de bază
servicii suplimentare
Serviciile de bază GPRS
Acestea sunt icircn principal servicii suport (bearer services) de transport care realizează
transmiterea datelor cu comutaţie de pachete icircntre două interfeţe şi din teleservicii Similar
situaţiei din GSM aceste interfeţe sunt
interfaţa dintre echipamentul terminal de date (de exemplu calculator) şi terminalul
mobil GPRS
24
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
interfaţa dintre reţeaua GPRS şi reţeaua de date sau echipamentul terminal cu care
comunică Aceasta interfaţă este situată icircntr-un nod poartă (gateway) GPRS similar
situaţiei din GSM unde locul ei este GMSC
Teleserviciul fundamental oferit de GPRS este cel de transport de date şi este detaliat
mai jos Un alt teleserviciu oferit de GPRS este transmisia şi recepţia de mesaje scurte (SMS)
Astfel pe de o parte capacitatea de transmisie a mesajelor scurte va creşte iar pe de alta
parte reţeaua de semnalizări pe care se transmit icircn GSM aceste mesaje nu va mai fi icircncărcată
şi cu mesaje scurte ce vin sau pleacă de la la terminalele mobile GPRS
Servicii GPRS de transport
Sunt definite doua categorii de teleservicii de transport
servicii punct-la-punct (PTP ndashPoint-to-Point)
servicii punct la multipunct (PTM-Point-to-Multipoint)
A Serviciul PTP
Serviciul punct la punct (PTP) [GSM 0260] permite transmiterea de pachete de date
icircntre doi utilizatori Este implementat icircn GPRS faza 1 Abonatul care a iniţiat serviciul se
numeşte solicitant (service requester) Partenerul său se numeşte receptor al serviciului
(service receiver)
Serviciul PTP poate fi solicitat fie de la terminalul mobil GPRS fie de la un
echipament situat icircntr-o reţea de date fixă (IP X25) Serviciul PTP poate fi oferit de
asemenea icircntre doi utilizatori mobili GPRS
Serviciul punct-la punct poate fi la racircndul sau de două tipuri
PTP fără conexiune (PTP-CLNS ndash PTP Connectinnless Network Service)
PTP orientat pe conexiune (PTP-CONS ndashPTP Connection Orientated Network
Network Service)
PTP-CLNS este un serviciu de tip datagramă ce utilizează comutaţia de pachete fără
conexiune Este util icircn cazul aplicaţiilor ce generează trafic icircn rafale şi are că scop asigurarea
interoperării cu reţele IP
PTP-CONS este un serviciu de tip circuit virtual ce utilizează comutaţia de pachete
orientata pe conexiune Icircntre cei doi utilizatori se stabileşte un circuit virtual pentru o perioadă
25
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ce poate varia de la cacircteva secunde la ore Este util atacirct pentru aplicaţii ce generează trafic icircn
rafale cacirct şi pentru aplicaţiile interactive Are că scop asigurarea interoperării cu reţele X25 şi
derularea peste GPRS a aplicaţiilor bazate pe protocolul OSI CONS(Connection Orientated
Network Protocol)
O reţea GPRS trebuie să asigure menţinerea circuitului virtual la trecerea dintr-o
celulă icircn alta dar numai icircn interiorul aceleiaşi reţele GPRS-PLMN La trecerea terminalului
mobil icircntr-o altă reţea sau icircn cazul căderii legăturii radio circuitul virtual va fi eliberat Pentru
ambele tipuri de servicii pe interfaţa radio se poate opera fie cu confirmare fie fără
confirmare a transportului de date
B Serviciul PTM
Serviciul punct la multipunct (PTM) permite transmiterea de pachete de date de la un
utilizator către mai mulţi utilizatori El este implementat icircn faza a doua a GPRS O
comunicaţie PTM se stabileşte icircntre un furnizor de servicii (ce poate fi situat icircn afară reţelei
GSM) şi un grup de terminale GPRS Şi serviciul PTM este un serviciu ce se prezintă icircn două
variante
PTMndash multidistribuţie (PTM Multicast)
PTM- grup (PTM-G--PTMGroup)
Serviciul de transport PTM-M permite transmiterea pachetelor de date icircntr-o arie
geografică dată (celulă grup de celule) fără confirmare Receptorii serviciului sunt fie toţi
abonaţii care se găsesc icircn acea zonă fie un grup icircnchis de utilizatori
Icircn cazul PTM-G receptorul serviciului este un grup predefinit de utilizatori Pachetele de
date vor fi trimise către toţi membrii grupului indiferent de aria geografică unde se găsesc
aceştia Este posibilă şi transmiterea doar către acei membri care se găsesc icircn anumite zone
geografice Transmisia poate fi şi cu confirmare
Serviciile suplimentare
Printre serviciile suplimentare avute icircn vedere icircntr-un prim stadiu se numără
redirecţionarea necondiţionată a apelurilor redirecţionarea cacircnd abonatul nu este accesibil şi
definirea de grupuri icircnchise de utilizatori In afară de aceste servicii recomandarea GSM
0260 descrie posibilitatea oferirii de servicii adiţionale cum sunt accesarea bazelor de date
servicii de mesagerie validări de cărţi de credit servicii de monitorizare electronică tranzacţii
electronice etc
26
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
244 Arhitectura GPRS
GPRS este o soluţie pentru operatori deoarece nu necesită modificări substanţiale icircn
reţeaua GSM Aşa cum se observă icircn figura 72 reţeaua nucleu a GPRS operează icircn paralel
cu GSM-NSS
Figura 23 Arhitectura reţelei GPRS
25 LabWindowsCVI
La dipecer am considerat un calculator desktop sau laptop pe care va rula o aplicaţie
de monitorizare a datelor măsurate implementată icircn LabWindowsCVI
LabWindowsCVI este o platformă pentru dezvoltare de software cu orientare pe
aplicaţii de instrumentaţie După cum se deduce din denumirea sa (CVI ndash C for Virtual
Instrumentation) limbajul acceptat este ANSI C cu extensii specifice CVI ne pune la
dispoziţie un mediu interactiv de dezvoltare a unor aplicaţii pentru sistemul de operare
Windows Icircmbină deci avantajele programării de tip vizual cu avantajele simplităţii şi
flexibilităţii limbajului C Deşi a fost creat special pentru aplicaţii de instrumentaţie şi control
27
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
multiplele lui facilităţi icircl fac capabil să suporte şi dezvoltarea unor aplicaţii de mărime medie
care să fie de altă factură Fiecare funcţie de bibliotecă din cadrul acestui mediu are o interfaţă
specializată numită panoul funcţiei (function panel) care permite
bull Help on-line
bull Selectare şi declarare de variabile sau constante necesare
bull Execuţie interactivă
bull Inserarea funcţiei editate icircntr-un text sursă
Mediul este extrem de flexibil permiţacircnd interfaţarea bidirecţională cu alte compilatoare de
C sau C++ De asemenea se pot folosi şi DLL-uri
Puterea mediului LabWindowsCVI este dată de bibliotecile puse la dispoziţia
programatorului acestea conţinacircnd funcţii pentru implementarea diverselor faze care conduc
la o aplicaţie din domeniul achiziţiei de date sau a controlului automat
Pentru achiziţia de date există următoarele biblioteci specializate
bull de instrumente
bull pentru interfaţa GPIBGPIB 4882 (General Purpose Interface Bus)
bull pentru achiziţie de date
bull pentru operaţii IO icircn cazul achiziţiei de date
bull pentru interfaţa serială RS232
bull pentru sistemul VXI
Biblioteci specializate pentru analiza datelor
bull pentru IO
bull pentru formatarea specială
bull pentru analiză
bull pentru analiză avansată
Biblioteci specializate pentru vizualizare date
bull pentru crearea unei interfeţe utilizator de tip vizual
Biblioteci specializate pentru lucrul icircn reţea şi comunicarea icircntre diverse aplicaţii
bull pentru DDE (Dynamic Data Exchange)
bull pentru TCP (Transmision Control Protocol)
bull pentru sistemul X de sub Unix
Icircn afară de acestea mai există o bibliotecă specială numită biblioteca de instrumente
care conţine drivere şi sursele lor pentru osciloscoape multimetre şi generatoare de funcţii
De asemenea există posibilitatea creării unui instrument propriu Biblioteca pentru interfaţa
28
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cu utilizatorul conţine funcţiile necesare creării unui GUI (Graphical User Interface =
Interfaţă grafică cu utilizatorul) după necesităţi
Structura generică a unei aplicaţii dezvoltate sub CVI
Un proiect complet pentru una din clasele de aplicaţii specifice mediului CVI are
următoarele componente generice
bull interfaţa cu utilizatorul
bull partea de control a aplicaţiei
bull partea specializată pentru achiziţia datelor
bull partea specializată icircn analiza respectivelor date
Mai jos prezentăm o schemă generică a aplicaţiilor CVI
Figura 24
Tipuri de fişiere folosite icircn cadrul CVI
PRJ se referă la fişiere de tip proiect
UIR se referă la fişiere care conţin descrierea unei interfeţe grafice cu utilizatorul
C fişiere sursă
H fişiere header
FP fişiere care reţin descrierea unui instrument
LIB fişiere bibliotecă
DLL fişiere link-editate pentru apel dinamic
OBJ fişiere obiect
29
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a unora dintre meniurile şi ferestrele mediului de dezvoltare CVI
Fereastra proiect
Prezentăm mai jos doar informaţiile suplimentare faţă de o fereastră proiect standard
Pe lacircngă datele curente despre fiecare fişier inclus icircn proiect acesta mai are precizat şi unul
sau mai mulţi din următorii indici
- I indică faptul că respectivul fişier conţine descrierea unui driver de instrument
- S faptul că s-au făcut modificări icircn fişierul respectiv şi deci trebuie salvat
- C indică obligativitatea compilării respectivului fişier icircnainte de rularea aplicaţiei
- indică faptul că fişierul este deschis icircntr-o fereastră de editare
- indică ca acest fişier nu este deschis
Aplicaţii consolă
Pentru aplicaţiile tip consolă clasice C unde se folosesc pentru IO funcţiile scanf şi
printf vizualizarea ieşirii icircn mod text a acestora se va face icircntr-o fereastră specială numită
ldquoStandard InputOutput Windowrdquo
Observaţie Dacă se va programa icircn acest mod trebuie activată opţiunea ldquoBring Standard
InputOtput to front whenever modifyrdquo din Environment ce aparţine meniului Options
Generatorul interactiv de aplicaţii
Butoanele directe ale editorului de interfeţe cu utilizatorul
folosit la selectare mutare şi dimensionare obiecte
utilizat pentru a modifica textul asociat cu obiectele din UIR folosind facilităţile de
etichetare
folosit pentru colorarea obiectelor Este suficientă o apăsare pe butonul din dreapta a
mouse-ului şi va colora automat obiectul selectat cu culoarea curentă
oferă facilităţi de operare Atunci cacircnd este activat evenimentele vor fi afişate icircn partea
dreaptă a barei de facilităţi
30
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a cacirctorva din meniurile mai importante ale generatorului
Menu Bars activează cutia de dialog care ne prezintă toate barele de meniu definite deja de
programator
Figura 25
Create apelează fereastra Edit Menu Bar pentru a crea o nouă bară de meniuri
Edit apelează fereastra Edit Menu Bar pentru a modifica o bară de meniuri existentă
Fereastra Edit Menu Bar(fig26) permite specificarea sau modificarea caracteristicilor
unei bare de meniuri icircn curs de creare sau care există deja
31
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 26
Menu Bar Constant Prefix este identificatorul intern al respectivei bare de meniuri Acesta
va fi folosit de funcţia LoadMenuBar pentru icircncărcarea icircn memorie a parametrilor care conţin
această bară Va fi definit automat icircn fişierul header din scheletul de aplicaţie
Item se referă la numele meniului curentsubmeniucomandă de meniu Dacă icircn faţa primei
litere a unui element din meniu se adaugă 2 ldquounderscorerdquo la execuţie acesta va putea fi
selectat prin combinaţia Alt+prima literă
Constant name este alipit la Menu Bar Constant Prefix pentru a se genera identificatorul
elementului curent Este folosit de funcţii ca GetMenuBarAttribute sau SetMenuBarAttribute
De asemenea acest identificator este returnat de GetUserEvent atunci cacircnd apare un
eveniment generat de o comandă a meniului
Callback Function Permite specificarea numelui unei funcţii de răspuns care va fi apelată
automat la activarea respectivului element Folosirea ei este opţională
32
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ModifierKeyShortcutKey se combină pentru a ataşa o cheie ldquohotrdquo pentru elementul
curent
buton ce permite coboracircrea icircn interiorul unei ierarhii de meniuri
buton ce permite urcarea icircn interiorul unei ierarhii de meniuri
Panouri
După cum am spus sunt echivalentul ferestrelor din programarea Windows Pentru a le crea
Create1048774Panel ne pune la dispoziţie un nou panou icircn cadrul UIR-ului curent Prin dublu
ldquoclickrdquo pe acesta se va intra in fereastra de editare a caracteristicilor panoului Această
fereastră este prezentată mai jos
Figura 27
La partea de Menu Bar se poate specifica o bară din cele deja create icircn cazul dezvoltării
respectivei interfeţe
Restul parametrilor au fost discutaţi anterior sau sunt cunoscuţi din programarea Windows
33
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Crearea controalelor
Exceptacircnd diferenţele care apar funcţie de destinaţia acestora există o serie de parametri
comuni fiecărui control pe care icircl creăm Mai jos prezentăm fereastra care apare de exemplu
la crearea unui control de tip numeric şi anume un buton
Figura 28
Se observă că identificatorul intern şi posibilitatea de ataşare a unei funcţii de răspuns
rămacircne De asemenea o serie de informaţii specifice părţii de etichetare Icircn plus apar
specificaţii privind modul de afişare a datelor şi limitele icircntre care acestea pot fi variate prin
intermediul acestui control
34
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
TAB ORDER
Fiecare control de pe un panou activ are o poziţie icircn ordinea de salt prin intermediul
unui tab Această ordine precizează care va fi următorul control ce va fi activat icircn cazul icircn
care utilizatorul apasă Tab sau Shift+Tab Implicit acestea sunt adăugate exact icircn ordinea
creării lor de către programator Numai că nu icircntotdeauna aceasta este ordinea de salt dorită a
fi activă la terminarea aplicaţiei Icircn aceste condiţii secvenţa Edit1048774Tab Order ne va activa un
panou specializat pentru aceasta
Figura 29
noua formă de cursor activă icircn interiorul ferestrei Prin apăsarea pe un control oarecare i
se
poate modifica ordinea de activare
specifică faptul că se acceptă noua ordine de apelare
se iese cu păstrarea vechii ordini
Find UIR Objects
O altă facilitate a editorului este Find UIR Objects care aparţine meniului View Icircn
cadrul unor proiecte mari se dovedeşte a fi extrem de utilă
35
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 210
După cum se observă ne permite căutarea după dorinţă a unui nume icircn diverse categorii de
obiecte ale interfeţei cu utilizatorul
GENERATE
Este meniul folosit pentru generarea fie a icircntregului cod schelet fie numai a codului
corespunzător unui obiect proaspăt introdus icircntr-un UIR
Secvenţa Code1048774Generate1048774AllCode va genera codul schelet pentru aplicaţie Acesta va
conţine şi un ldquoswitchrdquo pentru tratarea evenimentelor Alegerea evenimentelor care vor fi
automat introduse se face din Code1048774Preferences
MENIUL ARRANGE
Icircncă de la primele aplicaţii vom observa că una din operaţiile mari consumatoare de
timp este aranjarea controalelor icircn panou după specificarea caracteristicilor acestora Pentru a
evita acest lucru CVI a fost prevăzut cu o serie de facilităţi de aranjare automată pe care le
vom prezenta mai jos
Figura 211
Top Edges asigură spaţiere verticală icircntre partea superioară a controalelor Cel mai de
sus şi cel mai de jos control sunt considerate puncte de referinţă
36
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Vertical Centers asigură spaţiere verticală icircntre centrele controalelor Cel mai de sus
şi cel mai de jos control sunt considerate puncte de referinţă
Bottom Edges asigură spaţiere verticală icircntre partea inferioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Vertical Gap asigură spaţiere verticală icircntre partea superioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Left Edges setează spaţii orizontale egale icircntre marginile din stacircnga ale controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Centers setează spaţii orizontale egale icircntre centrele controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Right Edges setează spaţii orizontale egale icircntre marginile din dreapta ale
controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Gap spaţiere orizontală icircntre controale Cel mai de sus şi cel mai de jos
control sunt considerate puncte de referinţă
Horizontal Compress minimizează spaţiile pe orizontală dintre controale şi elimină
orice spaţiu dintre ele
Distribute Vertical Centers
Comanda Distribute realizează la apel ultima opţiune selectată din lista prezentată
mai sus
37
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Pentru a putea oferi debite de date mai ridicate icircn GPRS se urmăreşte utilizarea cacirct
mai eficientă a resurselor radio Pentru aceasta se preia de la HSCSD ideea operării multislot
posibilitatea de a proteja mai puţin informaţia utilă pe interfaţa radio şi alocarea asimetrică
uplink downlink Icircn ciuda acestor asemănări icircnlocuirea comutaţiei de circuite cu cea de
pachete face din GPRS un sistem complet diferit de HSCSD Aceasta atacirct din punct de vedere
al utilizatorului care constată un timp de conectare practic nul şi rate de transfer mai bune
dar şi din punct de vedere al operatorului care efectuează o investiţie incomparabil mai mare
răsplătită printr-o mai eficientă utilizare a interfeţei radio cu tot ceea ce rezultă de aici (mai
mulţi clienţi mai multe servicii aplicaţii diverse)
Rezumacircnd icircn GPRS este implementat un set de soluţii tehnologice ce au ca scop
principal creşterea eficienţei utilizării interfeţei radio Aceasta derivă atacirct din experienţa
sistemelor anterioare cacirct şi mai ales din operarea icircn modul pachet a datelor ce se transmit
Soluţiile utilizate sunt
creşterea ratei de transmisie a datelor prin reducerea codării canalului (sunt definite
şi pot
fi utilizate 4 scheme de codare 905kbps 134 kbps 156 kbps 214kbps)
creşterea ratei de transmisie prin operare multislot ( pacircnă la 8 sloturi temporale per
utilizator)
creşterea eficienţei utilizării resurselor radio prin multiplexarea mai multor
utilizatori pe acelaşi canal fizic (posibila datorită transmisiei de pachete maximum 8
utilizatori pe slot temporal)
creşterea eficienţei utilizării resurselor radio prin alocare asimetrică uplinkdownlink
creşterea eficienţei utilizării resurselor radio prin alocarea dinamică a canalelor icircntre
servicii comutate icircn mod circuit respectiv pachet
Cacircnd un icircntreg cadru TDMA este alocat unui utilizator cu schema de protecţie minimă
(practic fără corecţie de erori) rezultă rata utilă instantanee maximă posibilă icircn GPRS
(8x214 kbps=1712 kbps)
242 Comutaţie de circuite şi comutaţie de pachete
20
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comutaţia este o tehnică esenţială icircn reţelele de comunicaţii Fără ea fiecare
echipament terminal ar trebui conectat printr-o cale directă cu fir sau fără la toate celelalte
echipamente terminale din reţea Principalele metode de comutaţie sunt
comutaţia de circuite
comutaţia de mesaje
comutaţia de pachete
Comutaţia de circuite
Aceasta presupune realizarea icircntre emiţător şi receptor a unei căi fizice de comutaţie
dedicate numită circuit Icircntreaga comunicaţie se desfăşoară icircn trei etape
stabilirea conexiunii (sau deschiderea circuitului)
transferul de informaţii
eliberarea conexiunii (circuitului)
Este de remarcat faptul că stabilitatea fizică a caii de comunicaţie are loc icircnainte de
icircnceperea transmisiunii propriu-zise Aceasta poate conduce la durate semnificative ale
timpului de conectare
Un dezavantaj notoriu al acestei tehnici este alocarea fixă a resurselor de comunicaţie
necesare pe durata conexiunii indiferent dacă la un moment sau altul mediul de transmisie
este folosit total parţial sau deloc
Pe de altă parte avantajele comutaţiei de circuite provin tocmai din această alocare fixă de
resurse care permite
asigurarea unei icircntacircrzieri constante şi minime
garantarea unui debit util corespunzător mediului de comunicaţie şi serviciului utilizat
Toate acestea facilitează oferirea serviciilor de timp real (telefonie videofonie alte
transmisiuni video) Exemplul tipic de reţea cu comutaţie de circuite este reţea telefonică
publică comutată (PSTN) Reţeaua GSM este de asemenea o reţea cu comutaţie de circuite
Referindu-ne strict la interfaţa radio a reţelelor fără fir etapa de stabilire a conexiunii
presupune alocarea unui canal radio (sau a mai multora icircn cazul HSCSD) unei staţii mobile
(MS) Acest canal rămacircne icircn posesia terminalului mobil pe toata durata conexiunii chiar dacă
transferul de date este discontinuu (icircn rafale) sau chiar icircncetează cu desăvacircrşire (de exemplu
21
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cacircnd utilizatorul citeşte cu atenţie cinci minute o pagină WEB după care lămurit pe deplin
icircntrerupe legătura) Ca o particularizare binecunoscută a reţelelor cu comutaţie de circuite
trebuie menţionat că utilizatorul trebuie să plătească pentru icircntreaga durată a conexiunii chiar
dacă a fost risipitor şi nu a folosit resursa ce i-a fost alocată
Comutaţia de mesaje
Este o tehnică ce nu stabileşte apriori o cale de transmisiune icircntre emiţător şi receptor
Informaţia ce urmează a fi transmisă formează o entitate bine precizată numita mesaj
Mesajele sunt complet independente unele faţă de altele şi pot avea lungimi variabile deşi
structura (formatul) lor poate fi prestabilit Emiţătorul trebuie sa ataşeze mesajului adresa
destinatarului decizia cu privire la ruta pe care o va urma mesajul fiind de competenţa
fiecărui comutator (router) prin care trece Fiecare comutator va memora mesajul după care icircl
va transmite pe ieşirea selectată de el Principala problemă a comutaţiei de mesaje este dată de
dimensiunea mare a mesajelor Din această cauză comutatoarele de mesaje au nevoie de o
capacitate de stocare uriaşă iar icircntacircrzierea icircn noduri poate deveni inacceptabilă din cauza
monopolizării ieşirilor de către mesajele lungi Exemplul tipic de reţea cu comutaţie de
mesaje este reţeaua telex
Comutaţia de pachete
Rezolvă o mare parte din dezavantajele comutaţiei de mesaje stabilind o lungime
maximă a entităţii informaţionale care circulă prin reţea numită pachet Pachetele sunt icircn
general rezultatul divizării mesajelor icircn blocuri de lungime mică Datorită acestui fapt spre
deosebire de mesaje pachetele nu sunt independente O recepţie corespunzătoare implică
refacerea mesajului prin ordonarea pachetelor după logica folosită la emisie Pentru aceasta
exista două posibilităţi apropiate conceptual de comutaţia de mesaje respectiv de comutaţia
de circuite
A Comutaţia de pachete fără conexiune (sau neorientată pe conexiune)
Icircn cazul comutaţiei de pachete fără conexiune pachetele (numite şi datagrame) se transmit
independent icircn cel mai pur spirit al comutaţiei de mesaje urmacircnd rute posibil diferite
Sosirea lor la destinaţie poate avea loc icircntr-o ordine aleatoare ceea ce necesită reordonarea lor
de către receptor Refacerea succesiunii corecte a pachetelor se bazează pe informaţia
22
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
suplimentară din fiecare pachet privitoare la mesajul din care face parte şi locul pe care icircl
ocupa icircn el Exemplul tipic de reţea care utilizează comutaţia de pachete este internetul
BComutaţia de pachete orientată pe conexiune (sau circuit virtual)
Icircn cazul comutaţiei de pachete orientată pe conexiune (sau circuit virtual) comunicarea
icircntre terminale presupune stabilirea unei căi anume pe care va circula fluxul informaţional
dintre acestea similar cu comutaţia de circuite Spre deosebire de aceasta nu este vorba de
dedicarea unui circuit fizic comunicării respective ci de configurarea unui circuit logic
numit circuit virtual Aceasta icircnseamnă că toate pachetele vor urma aceeaşi cale prin reţea
fără a dedica suportul fizic comunicaţiei respective Pachetele altor utilizatori vor putea folosi
foarte bine segmente din calea respectivă sau chiar icircntreaga cale La stabilirea circuitului
virtual fiecare comutator (router) trebuie să memoreze icircn tabela de dirijare care este
succesorul său icircn respectivul circuit virtual Astfel spre deosebire de comutaţia de pachete
fără conexiune după stabilirea circuitului virtual comutatorul nu mai trebuie să decidă calea
fiecărui pachet Avacircnd memorat nodul succesor icircn fiecare dintre circuitele virtuale icircn care este
implicat comutatorul va identifica circuitul asociat pachetului şi icircl va transmite pe acesta pe
linia de ieşire corespunzătoare Tehnica circuitului virtual garantează livrarea icircn ordine a
pachetelor la destinaţie Exemple marcante de reţele ce utilizează comutaţia de pachete de tip
circuit virtual sunt X25 şi ATM
Marele avantaj al comutaţiei de pachete este utilizarea eficientă a resurselor de
transmisiune Deoarece acestea nu sunt dedicate ele pot fi folosite după necesităţi pentru a
transmite pachete provenind de la utilizatori diferiţi Din acest motiv comutaţia de pachete
este extrem de avantajoasă icircn cazul unei infrastructuri cu resurse de transmisiune limitate
cum este şi cazul reţelelor fără fir
Un dezavantaj important al comutaţiei de pachete este dat de gestionarea comutatoarelor
(routerelor) icircn cazul unui trafic crescut la intrare Pierderea pachetelor garantarea unei
icircntacircrzieri maxime şi a unui debit utilizator constant sunt problemele spinoase ale comutaţiei
de pachete Ele reprezintă obstacole icircn special icircn calea oferirii serviciilor de timp real cum ar
fi telefonia
Icircn schimb icircn cazul transmisiilor de date avantajul bunei administrări a resurselor
prevalează De exemplu icircn cazul particular al interfeţei radio GSM cacircnd o staţie mobilă (MS)
generează un pachet de date reţeaua icircl va transmite pe un canal radio disponibil icircn acel
moment Următorul pachet de pe acel canal poate să aparţină aceleiaşi MS dacă are ceva de
23
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
transmis sau dacă nu alteia Icircn acest mod atacircta timp cacirct cineva are ceva de transmis
canalele radio nu sunt blocate inutil Lucrul icircn mod pachet are o eficienţă cu totul deosebită icircn
cazul unui trafic de date icircn rafale (data bursts)
Aşadar pentru un sistem GSM bazat esenţialmente pe comutaţia de circuite este
extrem de utilă alocarea resurselor neutilizate de către serviciile vocale pentru servicii mai
puţin prioritare Atacirct HSCSD cacirct şi GPRS icircşi propun acest lucru Serviciile cele mai potrivite
pentru valorificarea resurselor rămase (preferabil printr-un mecanism de alocare dinamică)
sunt tocmai cele care implică un trafic de date icircn rafale fără pretenţii de timp real Diferenţa
fundamentală icircntre HSCSD şi GPRS este că acesta din urmă valorifică aceste resurse icircntr-un
mod mult mai eficient deoarece utilizează comutaţia de pachete Icircn plus costul serviciilor
oferite este mai atractiv deoarece utilizatorul plăteşte volumul de date transferat Practic dacă
doreşte utilizatorul poate fi sbquoconectatrsquo la reţeaua de date icircn permanenţă fiind taxat doar
pentru timpul icircn care efectiv utilizează resursele reţelei adică pentru pachetele de date
recepţionate respectiv transmise
243 Servicii GPRS
Dintre aplicaţiile cele mai potrivite pentru GPRS se pot aminti mesageria de orice tip
difuzare şi distribuţie multiplă telemetrie jocuri navigare de mică anvergură pe reţeaua
internet Icircn general orice tip de aplicaţii ce necesită comunicaţii maşină - maşină la debite
mici şi medii sunt adecvate dezvoltării icircn mediul GPRS
Ca şi icircn reţeaua GSM reţelele GPRS pot oferi două categorii de servicii de
telecomunicaţii
servicii de bază
servicii suplimentare
Serviciile de bază GPRS
Acestea sunt icircn principal servicii suport (bearer services) de transport care realizează
transmiterea datelor cu comutaţie de pachete icircntre două interfeţe şi din teleservicii Similar
situaţiei din GSM aceste interfeţe sunt
interfaţa dintre echipamentul terminal de date (de exemplu calculator) şi terminalul
mobil GPRS
24
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
interfaţa dintre reţeaua GPRS şi reţeaua de date sau echipamentul terminal cu care
comunică Aceasta interfaţă este situată icircntr-un nod poartă (gateway) GPRS similar
situaţiei din GSM unde locul ei este GMSC
Teleserviciul fundamental oferit de GPRS este cel de transport de date şi este detaliat
mai jos Un alt teleserviciu oferit de GPRS este transmisia şi recepţia de mesaje scurte (SMS)
Astfel pe de o parte capacitatea de transmisie a mesajelor scurte va creşte iar pe de alta
parte reţeaua de semnalizări pe care se transmit icircn GSM aceste mesaje nu va mai fi icircncărcată
şi cu mesaje scurte ce vin sau pleacă de la la terminalele mobile GPRS
Servicii GPRS de transport
Sunt definite doua categorii de teleservicii de transport
servicii punct-la-punct (PTP ndashPoint-to-Point)
servicii punct la multipunct (PTM-Point-to-Multipoint)
A Serviciul PTP
Serviciul punct la punct (PTP) [GSM 0260] permite transmiterea de pachete de date
icircntre doi utilizatori Este implementat icircn GPRS faza 1 Abonatul care a iniţiat serviciul se
numeşte solicitant (service requester) Partenerul său se numeşte receptor al serviciului
(service receiver)
Serviciul PTP poate fi solicitat fie de la terminalul mobil GPRS fie de la un
echipament situat icircntr-o reţea de date fixă (IP X25) Serviciul PTP poate fi oferit de
asemenea icircntre doi utilizatori mobili GPRS
Serviciul punct-la punct poate fi la racircndul sau de două tipuri
PTP fără conexiune (PTP-CLNS ndash PTP Connectinnless Network Service)
PTP orientat pe conexiune (PTP-CONS ndashPTP Connection Orientated Network
Network Service)
PTP-CLNS este un serviciu de tip datagramă ce utilizează comutaţia de pachete fără
conexiune Este util icircn cazul aplicaţiilor ce generează trafic icircn rafale şi are că scop asigurarea
interoperării cu reţele IP
PTP-CONS este un serviciu de tip circuit virtual ce utilizează comutaţia de pachete
orientata pe conexiune Icircntre cei doi utilizatori se stabileşte un circuit virtual pentru o perioadă
25
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ce poate varia de la cacircteva secunde la ore Este util atacirct pentru aplicaţii ce generează trafic icircn
rafale cacirct şi pentru aplicaţiile interactive Are că scop asigurarea interoperării cu reţele X25 şi
derularea peste GPRS a aplicaţiilor bazate pe protocolul OSI CONS(Connection Orientated
Network Protocol)
O reţea GPRS trebuie să asigure menţinerea circuitului virtual la trecerea dintr-o
celulă icircn alta dar numai icircn interiorul aceleiaşi reţele GPRS-PLMN La trecerea terminalului
mobil icircntr-o altă reţea sau icircn cazul căderii legăturii radio circuitul virtual va fi eliberat Pentru
ambele tipuri de servicii pe interfaţa radio se poate opera fie cu confirmare fie fără
confirmare a transportului de date
B Serviciul PTM
Serviciul punct la multipunct (PTM) permite transmiterea de pachete de date de la un
utilizator către mai mulţi utilizatori El este implementat icircn faza a doua a GPRS O
comunicaţie PTM se stabileşte icircntre un furnizor de servicii (ce poate fi situat icircn afară reţelei
GSM) şi un grup de terminale GPRS Şi serviciul PTM este un serviciu ce se prezintă icircn două
variante
PTMndash multidistribuţie (PTM Multicast)
PTM- grup (PTM-G--PTMGroup)
Serviciul de transport PTM-M permite transmiterea pachetelor de date icircntr-o arie
geografică dată (celulă grup de celule) fără confirmare Receptorii serviciului sunt fie toţi
abonaţii care se găsesc icircn acea zonă fie un grup icircnchis de utilizatori
Icircn cazul PTM-G receptorul serviciului este un grup predefinit de utilizatori Pachetele de
date vor fi trimise către toţi membrii grupului indiferent de aria geografică unde se găsesc
aceştia Este posibilă şi transmiterea doar către acei membri care se găsesc icircn anumite zone
geografice Transmisia poate fi şi cu confirmare
Serviciile suplimentare
Printre serviciile suplimentare avute icircn vedere icircntr-un prim stadiu se numără
redirecţionarea necondiţionată a apelurilor redirecţionarea cacircnd abonatul nu este accesibil şi
definirea de grupuri icircnchise de utilizatori In afară de aceste servicii recomandarea GSM
0260 descrie posibilitatea oferirii de servicii adiţionale cum sunt accesarea bazelor de date
servicii de mesagerie validări de cărţi de credit servicii de monitorizare electronică tranzacţii
electronice etc
26
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
244 Arhitectura GPRS
GPRS este o soluţie pentru operatori deoarece nu necesită modificări substanţiale icircn
reţeaua GSM Aşa cum se observă icircn figura 72 reţeaua nucleu a GPRS operează icircn paralel
cu GSM-NSS
Figura 23 Arhitectura reţelei GPRS
25 LabWindowsCVI
La dipecer am considerat un calculator desktop sau laptop pe care va rula o aplicaţie
de monitorizare a datelor măsurate implementată icircn LabWindowsCVI
LabWindowsCVI este o platformă pentru dezvoltare de software cu orientare pe
aplicaţii de instrumentaţie După cum se deduce din denumirea sa (CVI ndash C for Virtual
Instrumentation) limbajul acceptat este ANSI C cu extensii specifice CVI ne pune la
dispoziţie un mediu interactiv de dezvoltare a unor aplicaţii pentru sistemul de operare
Windows Icircmbină deci avantajele programării de tip vizual cu avantajele simplităţii şi
flexibilităţii limbajului C Deşi a fost creat special pentru aplicaţii de instrumentaţie şi control
27
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
multiplele lui facilităţi icircl fac capabil să suporte şi dezvoltarea unor aplicaţii de mărime medie
care să fie de altă factură Fiecare funcţie de bibliotecă din cadrul acestui mediu are o interfaţă
specializată numită panoul funcţiei (function panel) care permite
bull Help on-line
bull Selectare şi declarare de variabile sau constante necesare
bull Execuţie interactivă
bull Inserarea funcţiei editate icircntr-un text sursă
Mediul este extrem de flexibil permiţacircnd interfaţarea bidirecţională cu alte compilatoare de
C sau C++ De asemenea se pot folosi şi DLL-uri
Puterea mediului LabWindowsCVI este dată de bibliotecile puse la dispoziţia
programatorului acestea conţinacircnd funcţii pentru implementarea diverselor faze care conduc
la o aplicaţie din domeniul achiziţiei de date sau a controlului automat
Pentru achiziţia de date există următoarele biblioteci specializate
bull de instrumente
bull pentru interfaţa GPIBGPIB 4882 (General Purpose Interface Bus)
bull pentru achiziţie de date
bull pentru operaţii IO icircn cazul achiziţiei de date
bull pentru interfaţa serială RS232
bull pentru sistemul VXI
Biblioteci specializate pentru analiza datelor
bull pentru IO
bull pentru formatarea specială
bull pentru analiză
bull pentru analiză avansată
Biblioteci specializate pentru vizualizare date
bull pentru crearea unei interfeţe utilizator de tip vizual
Biblioteci specializate pentru lucrul icircn reţea şi comunicarea icircntre diverse aplicaţii
bull pentru DDE (Dynamic Data Exchange)
bull pentru TCP (Transmision Control Protocol)
bull pentru sistemul X de sub Unix
Icircn afară de acestea mai există o bibliotecă specială numită biblioteca de instrumente
care conţine drivere şi sursele lor pentru osciloscoape multimetre şi generatoare de funcţii
De asemenea există posibilitatea creării unui instrument propriu Biblioteca pentru interfaţa
28
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cu utilizatorul conţine funcţiile necesare creării unui GUI (Graphical User Interface =
Interfaţă grafică cu utilizatorul) după necesităţi
Structura generică a unei aplicaţii dezvoltate sub CVI
Un proiect complet pentru una din clasele de aplicaţii specifice mediului CVI are
următoarele componente generice
bull interfaţa cu utilizatorul
bull partea de control a aplicaţiei
bull partea specializată pentru achiziţia datelor
bull partea specializată icircn analiza respectivelor date
Mai jos prezentăm o schemă generică a aplicaţiilor CVI
Figura 24
Tipuri de fişiere folosite icircn cadrul CVI
PRJ se referă la fişiere de tip proiect
UIR se referă la fişiere care conţin descrierea unei interfeţe grafice cu utilizatorul
C fişiere sursă
H fişiere header
FP fişiere care reţin descrierea unui instrument
LIB fişiere bibliotecă
DLL fişiere link-editate pentru apel dinamic
OBJ fişiere obiect
29
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a unora dintre meniurile şi ferestrele mediului de dezvoltare CVI
Fereastra proiect
Prezentăm mai jos doar informaţiile suplimentare faţă de o fereastră proiect standard
Pe lacircngă datele curente despre fiecare fişier inclus icircn proiect acesta mai are precizat şi unul
sau mai mulţi din următorii indici
- I indică faptul că respectivul fişier conţine descrierea unui driver de instrument
- S faptul că s-au făcut modificări icircn fişierul respectiv şi deci trebuie salvat
- C indică obligativitatea compilării respectivului fişier icircnainte de rularea aplicaţiei
- indică faptul că fişierul este deschis icircntr-o fereastră de editare
- indică ca acest fişier nu este deschis
Aplicaţii consolă
Pentru aplicaţiile tip consolă clasice C unde se folosesc pentru IO funcţiile scanf şi
printf vizualizarea ieşirii icircn mod text a acestora se va face icircntr-o fereastră specială numită
ldquoStandard InputOutput Windowrdquo
Observaţie Dacă se va programa icircn acest mod trebuie activată opţiunea ldquoBring Standard
InputOtput to front whenever modifyrdquo din Environment ce aparţine meniului Options
Generatorul interactiv de aplicaţii
Butoanele directe ale editorului de interfeţe cu utilizatorul
folosit la selectare mutare şi dimensionare obiecte
utilizat pentru a modifica textul asociat cu obiectele din UIR folosind facilităţile de
etichetare
folosit pentru colorarea obiectelor Este suficientă o apăsare pe butonul din dreapta a
mouse-ului şi va colora automat obiectul selectat cu culoarea curentă
oferă facilităţi de operare Atunci cacircnd este activat evenimentele vor fi afişate icircn partea
dreaptă a barei de facilităţi
30
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a cacirctorva din meniurile mai importante ale generatorului
Menu Bars activează cutia de dialog care ne prezintă toate barele de meniu definite deja de
programator
Figura 25
Create apelează fereastra Edit Menu Bar pentru a crea o nouă bară de meniuri
Edit apelează fereastra Edit Menu Bar pentru a modifica o bară de meniuri existentă
Fereastra Edit Menu Bar(fig26) permite specificarea sau modificarea caracteristicilor
unei bare de meniuri icircn curs de creare sau care există deja
31
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 26
Menu Bar Constant Prefix este identificatorul intern al respectivei bare de meniuri Acesta
va fi folosit de funcţia LoadMenuBar pentru icircncărcarea icircn memorie a parametrilor care conţin
această bară Va fi definit automat icircn fişierul header din scheletul de aplicaţie
Item se referă la numele meniului curentsubmeniucomandă de meniu Dacă icircn faţa primei
litere a unui element din meniu se adaugă 2 ldquounderscorerdquo la execuţie acesta va putea fi
selectat prin combinaţia Alt+prima literă
Constant name este alipit la Menu Bar Constant Prefix pentru a se genera identificatorul
elementului curent Este folosit de funcţii ca GetMenuBarAttribute sau SetMenuBarAttribute
De asemenea acest identificator este returnat de GetUserEvent atunci cacircnd apare un
eveniment generat de o comandă a meniului
Callback Function Permite specificarea numelui unei funcţii de răspuns care va fi apelată
automat la activarea respectivului element Folosirea ei este opţională
32
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ModifierKeyShortcutKey se combină pentru a ataşa o cheie ldquohotrdquo pentru elementul
curent
buton ce permite coboracircrea icircn interiorul unei ierarhii de meniuri
buton ce permite urcarea icircn interiorul unei ierarhii de meniuri
Panouri
După cum am spus sunt echivalentul ferestrelor din programarea Windows Pentru a le crea
Create1048774Panel ne pune la dispoziţie un nou panou icircn cadrul UIR-ului curent Prin dublu
ldquoclickrdquo pe acesta se va intra in fereastra de editare a caracteristicilor panoului Această
fereastră este prezentată mai jos
Figura 27
La partea de Menu Bar se poate specifica o bară din cele deja create icircn cazul dezvoltării
respectivei interfeţe
Restul parametrilor au fost discutaţi anterior sau sunt cunoscuţi din programarea Windows
33
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Crearea controalelor
Exceptacircnd diferenţele care apar funcţie de destinaţia acestora există o serie de parametri
comuni fiecărui control pe care icircl creăm Mai jos prezentăm fereastra care apare de exemplu
la crearea unui control de tip numeric şi anume un buton
Figura 28
Se observă că identificatorul intern şi posibilitatea de ataşare a unei funcţii de răspuns
rămacircne De asemenea o serie de informaţii specifice părţii de etichetare Icircn plus apar
specificaţii privind modul de afişare a datelor şi limitele icircntre care acestea pot fi variate prin
intermediul acestui control
34
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
TAB ORDER
Fiecare control de pe un panou activ are o poziţie icircn ordinea de salt prin intermediul
unui tab Această ordine precizează care va fi următorul control ce va fi activat icircn cazul icircn
care utilizatorul apasă Tab sau Shift+Tab Implicit acestea sunt adăugate exact icircn ordinea
creării lor de către programator Numai că nu icircntotdeauna aceasta este ordinea de salt dorită a
fi activă la terminarea aplicaţiei Icircn aceste condiţii secvenţa Edit1048774Tab Order ne va activa un
panou specializat pentru aceasta
Figura 29
noua formă de cursor activă icircn interiorul ferestrei Prin apăsarea pe un control oarecare i
se
poate modifica ordinea de activare
specifică faptul că se acceptă noua ordine de apelare
se iese cu păstrarea vechii ordini
Find UIR Objects
O altă facilitate a editorului este Find UIR Objects care aparţine meniului View Icircn
cadrul unor proiecte mari se dovedeşte a fi extrem de utilă
35
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 210
După cum se observă ne permite căutarea după dorinţă a unui nume icircn diverse categorii de
obiecte ale interfeţei cu utilizatorul
GENERATE
Este meniul folosit pentru generarea fie a icircntregului cod schelet fie numai a codului
corespunzător unui obiect proaspăt introdus icircntr-un UIR
Secvenţa Code1048774Generate1048774AllCode va genera codul schelet pentru aplicaţie Acesta va
conţine şi un ldquoswitchrdquo pentru tratarea evenimentelor Alegerea evenimentelor care vor fi
automat introduse se face din Code1048774Preferences
MENIUL ARRANGE
Icircncă de la primele aplicaţii vom observa că una din operaţiile mari consumatoare de
timp este aranjarea controalelor icircn panou după specificarea caracteristicilor acestora Pentru a
evita acest lucru CVI a fost prevăzut cu o serie de facilităţi de aranjare automată pe care le
vom prezenta mai jos
Figura 211
Top Edges asigură spaţiere verticală icircntre partea superioară a controalelor Cel mai de
sus şi cel mai de jos control sunt considerate puncte de referinţă
36
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Vertical Centers asigură spaţiere verticală icircntre centrele controalelor Cel mai de sus
şi cel mai de jos control sunt considerate puncte de referinţă
Bottom Edges asigură spaţiere verticală icircntre partea inferioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Vertical Gap asigură spaţiere verticală icircntre partea superioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Left Edges setează spaţii orizontale egale icircntre marginile din stacircnga ale controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Centers setează spaţii orizontale egale icircntre centrele controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Right Edges setează spaţii orizontale egale icircntre marginile din dreapta ale
controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Gap spaţiere orizontală icircntre controale Cel mai de sus şi cel mai de jos
control sunt considerate puncte de referinţă
Horizontal Compress minimizează spaţiile pe orizontală dintre controale şi elimină
orice spaţiu dintre ele
Distribute Vertical Centers
Comanda Distribute realizează la apel ultima opţiune selectată din lista prezentată
mai sus
37
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comutaţia este o tehnică esenţială icircn reţelele de comunicaţii Fără ea fiecare
echipament terminal ar trebui conectat printr-o cale directă cu fir sau fără la toate celelalte
echipamente terminale din reţea Principalele metode de comutaţie sunt
comutaţia de circuite
comutaţia de mesaje
comutaţia de pachete
Comutaţia de circuite
Aceasta presupune realizarea icircntre emiţător şi receptor a unei căi fizice de comutaţie
dedicate numită circuit Icircntreaga comunicaţie se desfăşoară icircn trei etape
stabilirea conexiunii (sau deschiderea circuitului)
transferul de informaţii
eliberarea conexiunii (circuitului)
Este de remarcat faptul că stabilitatea fizică a caii de comunicaţie are loc icircnainte de
icircnceperea transmisiunii propriu-zise Aceasta poate conduce la durate semnificative ale
timpului de conectare
Un dezavantaj notoriu al acestei tehnici este alocarea fixă a resurselor de comunicaţie
necesare pe durata conexiunii indiferent dacă la un moment sau altul mediul de transmisie
este folosit total parţial sau deloc
Pe de altă parte avantajele comutaţiei de circuite provin tocmai din această alocare fixă de
resurse care permite
asigurarea unei icircntacircrzieri constante şi minime
garantarea unui debit util corespunzător mediului de comunicaţie şi serviciului utilizat
Toate acestea facilitează oferirea serviciilor de timp real (telefonie videofonie alte
transmisiuni video) Exemplul tipic de reţea cu comutaţie de circuite este reţea telefonică
publică comutată (PSTN) Reţeaua GSM este de asemenea o reţea cu comutaţie de circuite
Referindu-ne strict la interfaţa radio a reţelelor fără fir etapa de stabilire a conexiunii
presupune alocarea unui canal radio (sau a mai multora icircn cazul HSCSD) unei staţii mobile
(MS) Acest canal rămacircne icircn posesia terminalului mobil pe toata durata conexiunii chiar dacă
transferul de date este discontinuu (icircn rafale) sau chiar icircncetează cu desăvacircrşire (de exemplu
21
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cacircnd utilizatorul citeşte cu atenţie cinci minute o pagină WEB după care lămurit pe deplin
icircntrerupe legătura) Ca o particularizare binecunoscută a reţelelor cu comutaţie de circuite
trebuie menţionat că utilizatorul trebuie să plătească pentru icircntreaga durată a conexiunii chiar
dacă a fost risipitor şi nu a folosit resursa ce i-a fost alocată
Comutaţia de mesaje
Este o tehnică ce nu stabileşte apriori o cale de transmisiune icircntre emiţător şi receptor
Informaţia ce urmează a fi transmisă formează o entitate bine precizată numita mesaj
Mesajele sunt complet independente unele faţă de altele şi pot avea lungimi variabile deşi
structura (formatul) lor poate fi prestabilit Emiţătorul trebuie sa ataşeze mesajului adresa
destinatarului decizia cu privire la ruta pe care o va urma mesajul fiind de competenţa
fiecărui comutator (router) prin care trece Fiecare comutator va memora mesajul după care icircl
va transmite pe ieşirea selectată de el Principala problemă a comutaţiei de mesaje este dată de
dimensiunea mare a mesajelor Din această cauză comutatoarele de mesaje au nevoie de o
capacitate de stocare uriaşă iar icircntacircrzierea icircn noduri poate deveni inacceptabilă din cauza
monopolizării ieşirilor de către mesajele lungi Exemplul tipic de reţea cu comutaţie de
mesaje este reţeaua telex
Comutaţia de pachete
Rezolvă o mare parte din dezavantajele comutaţiei de mesaje stabilind o lungime
maximă a entităţii informaţionale care circulă prin reţea numită pachet Pachetele sunt icircn
general rezultatul divizării mesajelor icircn blocuri de lungime mică Datorită acestui fapt spre
deosebire de mesaje pachetele nu sunt independente O recepţie corespunzătoare implică
refacerea mesajului prin ordonarea pachetelor după logica folosită la emisie Pentru aceasta
exista două posibilităţi apropiate conceptual de comutaţia de mesaje respectiv de comutaţia
de circuite
A Comutaţia de pachete fără conexiune (sau neorientată pe conexiune)
Icircn cazul comutaţiei de pachete fără conexiune pachetele (numite şi datagrame) se transmit
independent icircn cel mai pur spirit al comutaţiei de mesaje urmacircnd rute posibil diferite
Sosirea lor la destinaţie poate avea loc icircntr-o ordine aleatoare ceea ce necesită reordonarea lor
de către receptor Refacerea succesiunii corecte a pachetelor se bazează pe informaţia
22
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
suplimentară din fiecare pachet privitoare la mesajul din care face parte şi locul pe care icircl
ocupa icircn el Exemplul tipic de reţea care utilizează comutaţia de pachete este internetul
BComutaţia de pachete orientată pe conexiune (sau circuit virtual)
Icircn cazul comutaţiei de pachete orientată pe conexiune (sau circuit virtual) comunicarea
icircntre terminale presupune stabilirea unei căi anume pe care va circula fluxul informaţional
dintre acestea similar cu comutaţia de circuite Spre deosebire de aceasta nu este vorba de
dedicarea unui circuit fizic comunicării respective ci de configurarea unui circuit logic
numit circuit virtual Aceasta icircnseamnă că toate pachetele vor urma aceeaşi cale prin reţea
fără a dedica suportul fizic comunicaţiei respective Pachetele altor utilizatori vor putea folosi
foarte bine segmente din calea respectivă sau chiar icircntreaga cale La stabilirea circuitului
virtual fiecare comutator (router) trebuie să memoreze icircn tabela de dirijare care este
succesorul său icircn respectivul circuit virtual Astfel spre deosebire de comutaţia de pachete
fără conexiune după stabilirea circuitului virtual comutatorul nu mai trebuie să decidă calea
fiecărui pachet Avacircnd memorat nodul succesor icircn fiecare dintre circuitele virtuale icircn care este
implicat comutatorul va identifica circuitul asociat pachetului şi icircl va transmite pe acesta pe
linia de ieşire corespunzătoare Tehnica circuitului virtual garantează livrarea icircn ordine a
pachetelor la destinaţie Exemple marcante de reţele ce utilizează comutaţia de pachete de tip
circuit virtual sunt X25 şi ATM
Marele avantaj al comutaţiei de pachete este utilizarea eficientă a resurselor de
transmisiune Deoarece acestea nu sunt dedicate ele pot fi folosite după necesităţi pentru a
transmite pachete provenind de la utilizatori diferiţi Din acest motiv comutaţia de pachete
este extrem de avantajoasă icircn cazul unei infrastructuri cu resurse de transmisiune limitate
cum este şi cazul reţelelor fără fir
Un dezavantaj important al comutaţiei de pachete este dat de gestionarea comutatoarelor
(routerelor) icircn cazul unui trafic crescut la intrare Pierderea pachetelor garantarea unei
icircntacircrzieri maxime şi a unui debit utilizator constant sunt problemele spinoase ale comutaţiei
de pachete Ele reprezintă obstacole icircn special icircn calea oferirii serviciilor de timp real cum ar
fi telefonia
Icircn schimb icircn cazul transmisiilor de date avantajul bunei administrări a resurselor
prevalează De exemplu icircn cazul particular al interfeţei radio GSM cacircnd o staţie mobilă (MS)
generează un pachet de date reţeaua icircl va transmite pe un canal radio disponibil icircn acel
moment Următorul pachet de pe acel canal poate să aparţină aceleiaşi MS dacă are ceva de
23
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
transmis sau dacă nu alteia Icircn acest mod atacircta timp cacirct cineva are ceva de transmis
canalele radio nu sunt blocate inutil Lucrul icircn mod pachet are o eficienţă cu totul deosebită icircn
cazul unui trafic de date icircn rafale (data bursts)
Aşadar pentru un sistem GSM bazat esenţialmente pe comutaţia de circuite este
extrem de utilă alocarea resurselor neutilizate de către serviciile vocale pentru servicii mai
puţin prioritare Atacirct HSCSD cacirct şi GPRS icircşi propun acest lucru Serviciile cele mai potrivite
pentru valorificarea resurselor rămase (preferabil printr-un mecanism de alocare dinamică)
sunt tocmai cele care implică un trafic de date icircn rafale fără pretenţii de timp real Diferenţa
fundamentală icircntre HSCSD şi GPRS este că acesta din urmă valorifică aceste resurse icircntr-un
mod mult mai eficient deoarece utilizează comutaţia de pachete Icircn plus costul serviciilor
oferite este mai atractiv deoarece utilizatorul plăteşte volumul de date transferat Practic dacă
doreşte utilizatorul poate fi sbquoconectatrsquo la reţeaua de date icircn permanenţă fiind taxat doar
pentru timpul icircn care efectiv utilizează resursele reţelei adică pentru pachetele de date
recepţionate respectiv transmise
243 Servicii GPRS
Dintre aplicaţiile cele mai potrivite pentru GPRS se pot aminti mesageria de orice tip
difuzare şi distribuţie multiplă telemetrie jocuri navigare de mică anvergură pe reţeaua
internet Icircn general orice tip de aplicaţii ce necesită comunicaţii maşină - maşină la debite
mici şi medii sunt adecvate dezvoltării icircn mediul GPRS
Ca şi icircn reţeaua GSM reţelele GPRS pot oferi două categorii de servicii de
telecomunicaţii
servicii de bază
servicii suplimentare
Serviciile de bază GPRS
Acestea sunt icircn principal servicii suport (bearer services) de transport care realizează
transmiterea datelor cu comutaţie de pachete icircntre două interfeţe şi din teleservicii Similar
situaţiei din GSM aceste interfeţe sunt
interfaţa dintre echipamentul terminal de date (de exemplu calculator) şi terminalul
mobil GPRS
24
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
interfaţa dintre reţeaua GPRS şi reţeaua de date sau echipamentul terminal cu care
comunică Aceasta interfaţă este situată icircntr-un nod poartă (gateway) GPRS similar
situaţiei din GSM unde locul ei este GMSC
Teleserviciul fundamental oferit de GPRS este cel de transport de date şi este detaliat
mai jos Un alt teleserviciu oferit de GPRS este transmisia şi recepţia de mesaje scurte (SMS)
Astfel pe de o parte capacitatea de transmisie a mesajelor scurte va creşte iar pe de alta
parte reţeaua de semnalizări pe care se transmit icircn GSM aceste mesaje nu va mai fi icircncărcată
şi cu mesaje scurte ce vin sau pleacă de la la terminalele mobile GPRS
Servicii GPRS de transport
Sunt definite doua categorii de teleservicii de transport
servicii punct-la-punct (PTP ndashPoint-to-Point)
servicii punct la multipunct (PTM-Point-to-Multipoint)
A Serviciul PTP
Serviciul punct la punct (PTP) [GSM 0260] permite transmiterea de pachete de date
icircntre doi utilizatori Este implementat icircn GPRS faza 1 Abonatul care a iniţiat serviciul se
numeşte solicitant (service requester) Partenerul său se numeşte receptor al serviciului
(service receiver)
Serviciul PTP poate fi solicitat fie de la terminalul mobil GPRS fie de la un
echipament situat icircntr-o reţea de date fixă (IP X25) Serviciul PTP poate fi oferit de
asemenea icircntre doi utilizatori mobili GPRS
Serviciul punct-la punct poate fi la racircndul sau de două tipuri
PTP fără conexiune (PTP-CLNS ndash PTP Connectinnless Network Service)
PTP orientat pe conexiune (PTP-CONS ndashPTP Connection Orientated Network
Network Service)
PTP-CLNS este un serviciu de tip datagramă ce utilizează comutaţia de pachete fără
conexiune Este util icircn cazul aplicaţiilor ce generează trafic icircn rafale şi are că scop asigurarea
interoperării cu reţele IP
PTP-CONS este un serviciu de tip circuit virtual ce utilizează comutaţia de pachete
orientata pe conexiune Icircntre cei doi utilizatori se stabileşte un circuit virtual pentru o perioadă
25
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ce poate varia de la cacircteva secunde la ore Este util atacirct pentru aplicaţii ce generează trafic icircn
rafale cacirct şi pentru aplicaţiile interactive Are că scop asigurarea interoperării cu reţele X25 şi
derularea peste GPRS a aplicaţiilor bazate pe protocolul OSI CONS(Connection Orientated
Network Protocol)
O reţea GPRS trebuie să asigure menţinerea circuitului virtual la trecerea dintr-o
celulă icircn alta dar numai icircn interiorul aceleiaşi reţele GPRS-PLMN La trecerea terminalului
mobil icircntr-o altă reţea sau icircn cazul căderii legăturii radio circuitul virtual va fi eliberat Pentru
ambele tipuri de servicii pe interfaţa radio se poate opera fie cu confirmare fie fără
confirmare a transportului de date
B Serviciul PTM
Serviciul punct la multipunct (PTM) permite transmiterea de pachete de date de la un
utilizator către mai mulţi utilizatori El este implementat icircn faza a doua a GPRS O
comunicaţie PTM se stabileşte icircntre un furnizor de servicii (ce poate fi situat icircn afară reţelei
GSM) şi un grup de terminale GPRS Şi serviciul PTM este un serviciu ce se prezintă icircn două
variante
PTMndash multidistribuţie (PTM Multicast)
PTM- grup (PTM-G--PTMGroup)
Serviciul de transport PTM-M permite transmiterea pachetelor de date icircntr-o arie
geografică dată (celulă grup de celule) fără confirmare Receptorii serviciului sunt fie toţi
abonaţii care se găsesc icircn acea zonă fie un grup icircnchis de utilizatori
Icircn cazul PTM-G receptorul serviciului este un grup predefinit de utilizatori Pachetele de
date vor fi trimise către toţi membrii grupului indiferent de aria geografică unde se găsesc
aceştia Este posibilă şi transmiterea doar către acei membri care se găsesc icircn anumite zone
geografice Transmisia poate fi şi cu confirmare
Serviciile suplimentare
Printre serviciile suplimentare avute icircn vedere icircntr-un prim stadiu se numără
redirecţionarea necondiţionată a apelurilor redirecţionarea cacircnd abonatul nu este accesibil şi
definirea de grupuri icircnchise de utilizatori In afară de aceste servicii recomandarea GSM
0260 descrie posibilitatea oferirii de servicii adiţionale cum sunt accesarea bazelor de date
servicii de mesagerie validări de cărţi de credit servicii de monitorizare electronică tranzacţii
electronice etc
26
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
244 Arhitectura GPRS
GPRS este o soluţie pentru operatori deoarece nu necesită modificări substanţiale icircn
reţeaua GSM Aşa cum se observă icircn figura 72 reţeaua nucleu a GPRS operează icircn paralel
cu GSM-NSS
Figura 23 Arhitectura reţelei GPRS
25 LabWindowsCVI
La dipecer am considerat un calculator desktop sau laptop pe care va rula o aplicaţie
de monitorizare a datelor măsurate implementată icircn LabWindowsCVI
LabWindowsCVI este o platformă pentru dezvoltare de software cu orientare pe
aplicaţii de instrumentaţie După cum se deduce din denumirea sa (CVI ndash C for Virtual
Instrumentation) limbajul acceptat este ANSI C cu extensii specifice CVI ne pune la
dispoziţie un mediu interactiv de dezvoltare a unor aplicaţii pentru sistemul de operare
Windows Icircmbină deci avantajele programării de tip vizual cu avantajele simplităţii şi
flexibilităţii limbajului C Deşi a fost creat special pentru aplicaţii de instrumentaţie şi control
27
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
multiplele lui facilităţi icircl fac capabil să suporte şi dezvoltarea unor aplicaţii de mărime medie
care să fie de altă factură Fiecare funcţie de bibliotecă din cadrul acestui mediu are o interfaţă
specializată numită panoul funcţiei (function panel) care permite
bull Help on-line
bull Selectare şi declarare de variabile sau constante necesare
bull Execuţie interactivă
bull Inserarea funcţiei editate icircntr-un text sursă
Mediul este extrem de flexibil permiţacircnd interfaţarea bidirecţională cu alte compilatoare de
C sau C++ De asemenea se pot folosi şi DLL-uri
Puterea mediului LabWindowsCVI este dată de bibliotecile puse la dispoziţia
programatorului acestea conţinacircnd funcţii pentru implementarea diverselor faze care conduc
la o aplicaţie din domeniul achiziţiei de date sau a controlului automat
Pentru achiziţia de date există următoarele biblioteci specializate
bull de instrumente
bull pentru interfaţa GPIBGPIB 4882 (General Purpose Interface Bus)
bull pentru achiziţie de date
bull pentru operaţii IO icircn cazul achiziţiei de date
bull pentru interfaţa serială RS232
bull pentru sistemul VXI
Biblioteci specializate pentru analiza datelor
bull pentru IO
bull pentru formatarea specială
bull pentru analiză
bull pentru analiză avansată
Biblioteci specializate pentru vizualizare date
bull pentru crearea unei interfeţe utilizator de tip vizual
Biblioteci specializate pentru lucrul icircn reţea şi comunicarea icircntre diverse aplicaţii
bull pentru DDE (Dynamic Data Exchange)
bull pentru TCP (Transmision Control Protocol)
bull pentru sistemul X de sub Unix
Icircn afară de acestea mai există o bibliotecă specială numită biblioteca de instrumente
care conţine drivere şi sursele lor pentru osciloscoape multimetre şi generatoare de funcţii
De asemenea există posibilitatea creării unui instrument propriu Biblioteca pentru interfaţa
28
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cu utilizatorul conţine funcţiile necesare creării unui GUI (Graphical User Interface =
Interfaţă grafică cu utilizatorul) după necesităţi
Structura generică a unei aplicaţii dezvoltate sub CVI
Un proiect complet pentru una din clasele de aplicaţii specifice mediului CVI are
următoarele componente generice
bull interfaţa cu utilizatorul
bull partea de control a aplicaţiei
bull partea specializată pentru achiziţia datelor
bull partea specializată icircn analiza respectivelor date
Mai jos prezentăm o schemă generică a aplicaţiilor CVI
Figura 24
Tipuri de fişiere folosite icircn cadrul CVI
PRJ se referă la fişiere de tip proiect
UIR se referă la fişiere care conţin descrierea unei interfeţe grafice cu utilizatorul
C fişiere sursă
H fişiere header
FP fişiere care reţin descrierea unui instrument
LIB fişiere bibliotecă
DLL fişiere link-editate pentru apel dinamic
OBJ fişiere obiect
29
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a unora dintre meniurile şi ferestrele mediului de dezvoltare CVI
Fereastra proiect
Prezentăm mai jos doar informaţiile suplimentare faţă de o fereastră proiect standard
Pe lacircngă datele curente despre fiecare fişier inclus icircn proiect acesta mai are precizat şi unul
sau mai mulţi din următorii indici
- I indică faptul că respectivul fişier conţine descrierea unui driver de instrument
- S faptul că s-au făcut modificări icircn fişierul respectiv şi deci trebuie salvat
- C indică obligativitatea compilării respectivului fişier icircnainte de rularea aplicaţiei
- indică faptul că fişierul este deschis icircntr-o fereastră de editare
- indică ca acest fişier nu este deschis
Aplicaţii consolă
Pentru aplicaţiile tip consolă clasice C unde se folosesc pentru IO funcţiile scanf şi
printf vizualizarea ieşirii icircn mod text a acestora se va face icircntr-o fereastră specială numită
ldquoStandard InputOutput Windowrdquo
Observaţie Dacă se va programa icircn acest mod trebuie activată opţiunea ldquoBring Standard
InputOtput to front whenever modifyrdquo din Environment ce aparţine meniului Options
Generatorul interactiv de aplicaţii
Butoanele directe ale editorului de interfeţe cu utilizatorul
folosit la selectare mutare şi dimensionare obiecte
utilizat pentru a modifica textul asociat cu obiectele din UIR folosind facilităţile de
etichetare
folosit pentru colorarea obiectelor Este suficientă o apăsare pe butonul din dreapta a
mouse-ului şi va colora automat obiectul selectat cu culoarea curentă
oferă facilităţi de operare Atunci cacircnd este activat evenimentele vor fi afişate icircn partea
dreaptă a barei de facilităţi
30
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a cacirctorva din meniurile mai importante ale generatorului
Menu Bars activează cutia de dialog care ne prezintă toate barele de meniu definite deja de
programator
Figura 25
Create apelează fereastra Edit Menu Bar pentru a crea o nouă bară de meniuri
Edit apelează fereastra Edit Menu Bar pentru a modifica o bară de meniuri existentă
Fereastra Edit Menu Bar(fig26) permite specificarea sau modificarea caracteristicilor
unei bare de meniuri icircn curs de creare sau care există deja
31
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 26
Menu Bar Constant Prefix este identificatorul intern al respectivei bare de meniuri Acesta
va fi folosit de funcţia LoadMenuBar pentru icircncărcarea icircn memorie a parametrilor care conţin
această bară Va fi definit automat icircn fişierul header din scheletul de aplicaţie
Item se referă la numele meniului curentsubmeniucomandă de meniu Dacă icircn faţa primei
litere a unui element din meniu se adaugă 2 ldquounderscorerdquo la execuţie acesta va putea fi
selectat prin combinaţia Alt+prima literă
Constant name este alipit la Menu Bar Constant Prefix pentru a se genera identificatorul
elementului curent Este folosit de funcţii ca GetMenuBarAttribute sau SetMenuBarAttribute
De asemenea acest identificator este returnat de GetUserEvent atunci cacircnd apare un
eveniment generat de o comandă a meniului
Callback Function Permite specificarea numelui unei funcţii de răspuns care va fi apelată
automat la activarea respectivului element Folosirea ei este opţională
32
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ModifierKeyShortcutKey se combină pentru a ataşa o cheie ldquohotrdquo pentru elementul
curent
buton ce permite coboracircrea icircn interiorul unei ierarhii de meniuri
buton ce permite urcarea icircn interiorul unei ierarhii de meniuri
Panouri
După cum am spus sunt echivalentul ferestrelor din programarea Windows Pentru a le crea
Create1048774Panel ne pune la dispoziţie un nou panou icircn cadrul UIR-ului curent Prin dublu
ldquoclickrdquo pe acesta se va intra in fereastra de editare a caracteristicilor panoului Această
fereastră este prezentată mai jos
Figura 27
La partea de Menu Bar se poate specifica o bară din cele deja create icircn cazul dezvoltării
respectivei interfeţe
Restul parametrilor au fost discutaţi anterior sau sunt cunoscuţi din programarea Windows
33
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Crearea controalelor
Exceptacircnd diferenţele care apar funcţie de destinaţia acestora există o serie de parametri
comuni fiecărui control pe care icircl creăm Mai jos prezentăm fereastra care apare de exemplu
la crearea unui control de tip numeric şi anume un buton
Figura 28
Se observă că identificatorul intern şi posibilitatea de ataşare a unei funcţii de răspuns
rămacircne De asemenea o serie de informaţii specifice părţii de etichetare Icircn plus apar
specificaţii privind modul de afişare a datelor şi limitele icircntre care acestea pot fi variate prin
intermediul acestui control
34
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
TAB ORDER
Fiecare control de pe un panou activ are o poziţie icircn ordinea de salt prin intermediul
unui tab Această ordine precizează care va fi următorul control ce va fi activat icircn cazul icircn
care utilizatorul apasă Tab sau Shift+Tab Implicit acestea sunt adăugate exact icircn ordinea
creării lor de către programator Numai că nu icircntotdeauna aceasta este ordinea de salt dorită a
fi activă la terminarea aplicaţiei Icircn aceste condiţii secvenţa Edit1048774Tab Order ne va activa un
panou specializat pentru aceasta
Figura 29
noua formă de cursor activă icircn interiorul ferestrei Prin apăsarea pe un control oarecare i
se
poate modifica ordinea de activare
specifică faptul că se acceptă noua ordine de apelare
se iese cu păstrarea vechii ordini
Find UIR Objects
O altă facilitate a editorului este Find UIR Objects care aparţine meniului View Icircn
cadrul unor proiecte mari se dovedeşte a fi extrem de utilă
35
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 210
După cum se observă ne permite căutarea după dorinţă a unui nume icircn diverse categorii de
obiecte ale interfeţei cu utilizatorul
GENERATE
Este meniul folosit pentru generarea fie a icircntregului cod schelet fie numai a codului
corespunzător unui obiect proaspăt introdus icircntr-un UIR
Secvenţa Code1048774Generate1048774AllCode va genera codul schelet pentru aplicaţie Acesta va
conţine şi un ldquoswitchrdquo pentru tratarea evenimentelor Alegerea evenimentelor care vor fi
automat introduse se face din Code1048774Preferences
MENIUL ARRANGE
Icircncă de la primele aplicaţii vom observa că una din operaţiile mari consumatoare de
timp este aranjarea controalelor icircn panou după specificarea caracteristicilor acestora Pentru a
evita acest lucru CVI a fost prevăzut cu o serie de facilităţi de aranjare automată pe care le
vom prezenta mai jos
Figura 211
Top Edges asigură spaţiere verticală icircntre partea superioară a controalelor Cel mai de
sus şi cel mai de jos control sunt considerate puncte de referinţă
36
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Vertical Centers asigură spaţiere verticală icircntre centrele controalelor Cel mai de sus
şi cel mai de jos control sunt considerate puncte de referinţă
Bottom Edges asigură spaţiere verticală icircntre partea inferioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Vertical Gap asigură spaţiere verticală icircntre partea superioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Left Edges setează spaţii orizontale egale icircntre marginile din stacircnga ale controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Centers setează spaţii orizontale egale icircntre centrele controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Right Edges setează spaţii orizontale egale icircntre marginile din dreapta ale
controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Gap spaţiere orizontală icircntre controale Cel mai de sus şi cel mai de jos
control sunt considerate puncte de referinţă
Horizontal Compress minimizează spaţiile pe orizontală dintre controale şi elimină
orice spaţiu dintre ele
Distribute Vertical Centers
Comanda Distribute realizează la apel ultima opţiune selectată din lista prezentată
mai sus
37
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cacircnd utilizatorul citeşte cu atenţie cinci minute o pagină WEB după care lămurit pe deplin
icircntrerupe legătura) Ca o particularizare binecunoscută a reţelelor cu comutaţie de circuite
trebuie menţionat că utilizatorul trebuie să plătească pentru icircntreaga durată a conexiunii chiar
dacă a fost risipitor şi nu a folosit resursa ce i-a fost alocată
Comutaţia de mesaje
Este o tehnică ce nu stabileşte apriori o cale de transmisiune icircntre emiţător şi receptor
Informaţia ce urmează a fi transmisă formează o entitate bine precizată numita mesaj
Mesajele sunt complet independente unele faţă de altele şi pot avea lungimi variabile deşi
structura (formatul) lor poate fi prestabilit Emiţătorul trebuie sa ataşeze mesajului adresa
destinatarului decizia cu privire la ruta pe care o va urma mesajul fiind de competenţa
fiecărui comutator (router) prin care trece Fiecare comutator va memora mesajul după care icircl
va transmite pe ieşirea selectată de el Principala problemă a comutaţiei de mesaje este dată de
dimensiunea mare a mesajelor Din această cauză comutatoarele de mesaje au nevoie de o
capacitate de stocare uriaşă iar icircntacircrzierea icircn noduri poate deveni inacceptabilă din cauza
monopolizării ieşirilor de către mesajele lungi Exemplul tipic de reţea cu comutaţie de
mesaje este reţeaua telex
Comutaţia de pachete
Rezolvă o mare parte din dezavantajele comutaţiei de mesaje stabilind o lungime
maximă a entităţii informaţionale care circulă prin reţea numită pachet Pachetele sunt icircn
general rezultatul divizării mesajelor icircn blocuri de lungime mică Datorită acestui fapt spre
deosebire de mesaje pachetele nu sunt independente O recepţie corespunzătoare implică
refacerea mesajului prin ordonarea pachetelor după logica folosită la emisie Pentru aceasta
exista două posibilităţi apropiate conceptual de comutaţia de mesaje respectiv de comutaţia
de circuite
A Comutaţia de pachete fără conexiune (sau neorientată pe conexiune)
Icircn cazul comutaţiei de pachete fără conexiune pachetele (numite şi datagrame) se transmit
independent icircn cel mai pur spirit al comutaţiei de mesaje urmacircnd rute posibil diferite
Sosirea lor la destinaţie poate avea loc icircntr-o ordine aleatoare ceea ce necesită reordonarea lor
de către receptor Refacerea succesiunii corecte a pachetelor se bazează pe informaţia
22
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
suplimentară din fiecare pachet privitoare la mesajul din care face parte şi locul pe care icircl
ocupa icircn el Exemplul tipic de reţea care utilizează comutaţia de pachete este internetul
BComutaţia de pachete orientată pe conexiune (sau circuit virtual)
Icircn cazul comutaţiei de pachete orientată pe conexiune (sau circuit virtual) comunicarea
icircntre terminale presupune stabilirea unei căi anume pe care va circula fluxul informaţional
dintre acestea similar cu comutaţia de circuite Spre deosebire de aceasta nu este vorba de
dedicarea unui circuit fizic comunicării respective ci de configurarea unui circuit logic
numit circuit virtual Aceasta icircnseamnă că toate pachetele vor urma aceeaşi cale prin reţea
fără a dedica suportul fizic comunicaţiei respective Pachetele altor utilizatori vor putea folosi
foarte bine segmente din calea respectivă sau chiar icircntreaga cale La stabilirea circuitului
virtual fiecare comutator (router) trebuie să memoreze icircn tabela de dirijare care este
succesorul său icircn respectivul circuit virtual Astfel spre deosebire de comutaţia de pachete
fără conexiune după stabilirea circuitului virtual comutatorul nu mai trebuie să decidă calea
fiecărui pachet Avacircnd memorat nodul succesor icircn fiecare dintre circuitele virtuale icircn care este
implicat comutatorul va identifica circuitul asociat pachetului şi icircl va transmite pe acesta pe
linia de ieşire corespunzătoare Tehnica circuitului virtual garantează livrarea icircn ordine a
pachetelor la destinaţie Exemple marcante de reţele ce utilizează comutaţia de pachete de tip
circuit virtual sunt X25 şi ATM
Marele avantaj al comutaţiei de pachete este utilizarea eficientă a resurselor de
transmisiune Deoarece acestea nu sunt dedicate ele pot fi folosite după necesităţi pentru a
transmite pachete provenind de la utilizatori diferiţi Din acest motiv comutaţia de pachete
este extrem de avantajoasă icircn cazul unei infrastructuri cu resurse de transmisiune limitate
cum este şi cazul reţelelor fără fir
Un dezavantaj important al comutaţiei de pachete este dat de gestionarea comutatoarelor
(routerelor) icircn cazul unui trafic crescut la intrare Pierderea pachetelor garantarea unei
icircntacircrzieri maxime şi a unui debit utilizator constant sunt problemele spinoase ale comutaţiei
de pachete Ele reprezintă obstacole icircn special icircn calea oferirii serviciilor de timp real cum ar
fi telefonia
Icircn schimb icircn cazul transmisiilor de date avantajul bunei administrări a resurselor
prevalează De exemplu icircn cazul particular al interfeţei radio GSM cacircnd o staţie mobilă (MS)
generează un pachet de date reţeaua icircl va transmite pe un canal radio disponibil icircn acel
moment Următorul pachet de pe acel canal poate să aparţină aceleiaşi MS dacă are ceva de
23
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
transmis sau dacă nu alteia Icircn acest mod atacircta timp cacirct cineva are ceva de transmis
canalele radio nu sunt blocate inutil Lucrul icircn mod pachet are o eficienţă cu totul deosebită icircn
cazul unui trafic de date icircn rafale (data bursts)
Aşadar pentru un sistem GSM bazat esenţialmente pe comutaţia de circuite este
extrem de utilă alocarea resurselor neutilizate de către serviciile vocale pentru servicii mai
puţin prioritare Atacirct HSCSD cacirct şi GPRS icircşi propun acest lucru Serviciile cele mai potrivite
pentru valorificarea resurselor rămase (preferabil printr-un mecanism de alocare dinamică)
sunt tocmai cele care implică un trafic de date icircn rafale fără pretenţii de timp real Diferenţa
fundamentală icircntre HSCSD şi GPRS este că acesta din urmă valorifică aceste resurse icircntr-un
mod mult mai eficient deoarece utilizează comutaţia de pachete Icircn plus costul serviciilor
oferite este mai atractiv deoarece utilizatorul plăteşte volumul de date transferat Practic dacă
doreşte utilizatorul poate fi sbquoconectatrsquo la reţeaua de date icircn permanenţă fiind taxat doar
pentru timpul icircn care efectiv utilizează resursele reţelei adică pentru pachetele de date
recepţionate respectiv transmise
243 Servicii GPRS
Dintre aplicaţiile cele mai potrivite pentru GPRS se pot aminti mesageria de orice tip
difuzare şi distribuţie multiplă telemetrie jocuri navigare de mică anvergură pe reţeaua
internet Icircn general orice tip de aplicaţii ce necesită comunicaţii maşină - maşină la debite
mici şi medii sunt adecvate dezvoltării icircn mediul GPRS
Ca şi icircn reţeaua GSM reţelele GPRS pot oferi două categorii de servicii de
telecomunicaţii
servicii de bază
servicii suplimentare
Serviciile de bază GPRS
Acestea sunt icircn principal servicii suport (bearer services) de transport care realizează
transmiterea datelor cu comutaţie de pachete icircntre două interfeţe şi din teleservicii Similar
situaţiei din GSM aceste interfeţe sunt
interfaţa dintre echipamentul terminal de date (de exemplu calculator) şi terminalul
mobil GPRS
24
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
interfaţa dintre reţeaua GPRS şi reţeaua de date sau echipamentul terminal cu care
comunică Aceasta interfaţă este situată icircntr-un nod poartă (gateway) GPRS similar
situaţiei din GSM unde locul ei este GMSC
Teleserviciul fundamental oferit de GPRS este cel de transport de date şi este detaliat
mai jos Un alt teleserviciu oferit de GPRS este transmisia şi recepţia de mesaje scurte (SMS)
Astfel pe de o parte capacitatea de transmisie a mesajelor scurte va creşte iar pe de alta
parte reţeaua de semnalizări pe care se transmit icircn GSM aceste mesaje nu va mai fi icircncărcată
şi cu mesaje scurte ce vin sau pleacă de la la terminalele mobile GPRS
Servicii GPRS de transport
Sunt definite doua categorii de teleservicii de transport
servicii punct-la-punct (PTP ndashPoint-to-Point)
servicii punct la multipunct (PTM-Point-to-Multipoint)
A Serviciul PTP
Serviciul punct la punct (PTP) [GSM 0260] permite transmiterea de pachete de date
icircntre doi utilizatori Este implementat icircn GPRS faza 1 Abonatul care a iniţiat serviciul se
numeşte solicitant (service requester) Partenerul său se numeşte receptor al serviciului
(service receiver)
Serviciul PTP poate fi solicitat fie de la terminalul mobil GPRS fie de la un
echipament situat icircntr-o reţea de date fixă (IP X25) Serviciul PTP poate fi oferit de
asemenea icircntre doi utilizatori mobili GPRS
Serviciul punct-la punct poate fi la racircndul sau de două tipuri
PTP fără conexiune (PTP-CLNS ndash PTP Connectinnless Network Service)
PTP orientat pe conexiune (PTP-CONS ndashPTP Connection Orientated Network
Network Service)
PTP-CLNS este un serviciu de tip datagramă ce utilizează comutaţia de pachete fără
conexiune Este util icircn cazul aplicaţiilor ce generează trafic icircn rafale şi are că scop asigurarea
interoperării cu reţele IP
PTP-CONS este un serviciu de tip circuit virtual ce utilizează comutaţia de pachete
orientata pe conexiune Icircntre cei doi utilizatori se stabileşte un circuit virtual pentru o perioadă
25
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ce poate varia de la cacircteva secunde la ore Este util atacirct pentru aplicaţii ce generează trafic icircn
rafale cacirct şi pentru aplicaţiile interactive Are că scop asigurarea interoperării cu reţele X25 şi
derularea peste GPRS a aplicaţiilor bazate pe protocolul OSI CONS(Connection Orientated
Network Protocol)
O reţea GPRS trebuie să asigure menţinerea circuitului virtual la trecerea dintr-o
celulă icircn alta dar numai icircn interiorul aceleiaşi reţele GPRS-PLMN La trecerea terminalului
mobil icircntr-o altă reţea sau icircn cazul căderii legăturii radio circuitul virtual va fi eliberat Pentru
ambele tipuri de servicii pe interfaţa radio se poate opera fie cu confirmare fie fără
confirmare a transportului de date
B Serviciul PTM
Serviciul punct la multipunct (PTM) permite transmiterea de pachete de date de la un
utilizator către mai mulţi utilizatori El este implementat icircn faza a doua a GPRS O
comunicaţie PTM se stabileşte icircntre un furnizor de servicii (ce poate fi situat icircn afară reţelei
GSM) şi un grup de terminale GPRS Şi serviciul PTM este un serviciu ce se prezintă icircn două
variante
PTMndash multidistribuţie (PTM Multicast)
PTM- grup (PTM-G--PTMGroup)
Serviciul de transport PTM-M permite transmiterea pachetelor de date icircntr-o arie
geografică dată (celulă grup de celule) fără confirmare Receptorii serviciului sunt fie toţi
abonaţii care se găsesc icircn acea zonă fie un grup icircnchis de utilizatori
Icircn cazul PTM-G receptorul serviciului este un grup predefinit de utilizatori Pachetele de
date vor fi trimise către toţi membrii grupului indiferent de aria geografică unde se găsesc
aceştia Este posibilă şi transmiterea doar către acei membri care se găsesc icircn anumite zone
geografice Transmisia poate fi şi cu confirmare
Serviciile suplimentare
Printre serviciile suplimentare avute icircn vedere icircntr-un prim stadiu se numără
redirecţionarea necondiţionată a apelurilor redirecţionarea cacircnd abonatul nu este accesibil şi
definirea de grupuri icircnchise de utilizatori In afară de aceste servicii recomandarea GSM
0260 descrie posibilitatea oferirii de servicii adiţionale cum sunt accesarea bazelor de date
servicii de mesagerie validări de cărţi de credit servicii de monitorizare electronică tranzacţii
electronice etc
26
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
244 Arhitectura GPRS
GPRS este o soluţie pentru operatori deoarece nu necesită modificări substanţiale icircn
reţeaua GSM Aşa cum se observă icircn figura 72 reţeaua nucleu a GPRS operează icircn paralel
cu GSM-NSS
Figura 23 Arhitectura reţelei GPRS
25 LabWindowsCVI
La dipecer am considerat un calculator desktop sau laptop pe care va rula o aplicaţie
de monitorizare a datelor măsurate implementată icircn LabWindowsCVI
LabWindowsCVI este o platformă pentru dezvoltare de software cu orientare pe
aplicaţii de instrumentaţie După cum se deduce din denumirea sa (CVI ndash C for Virtual
Instrumentation) limbajul acceptat este ANSI C cu extensii specifice CVI ne pune la
dispoziţie un mediu interactiv de dezvoltare a unor aplicaţii pentru sistemul de operare
Windows Icircmbină deci avantajele programării de tip vizual cu avantajele simplităţii şi
flexibilităţii limbajului C Deşi a fost creat special pentru aplicaţii de instrumentaţie şi control
27
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
multiplele lui facilităţi icircl fac capabil să suporte şi dezvoltarea unor aplicaţii de mărime medie
care să fie de altă factură Fiecare funcţie de bibliotecă din cadrul acestui mediu are o interfaţă
specializată numită panoul funcţiei (function panel) care permite
bull Help on-line
bull Selectare şi declarare de variabile sau constante necesare
bull Execuţie interactivă
bull Inserarea funcţiei editate icircntr-un text sursă
Mediul este extrem de flexibil permiţacircnd interfaţarea bidirecţională cu alte compilatoare de
C sau C++ De asemenea se pot folosi şi DLL-uri
Puterea mediului LabWindowsCVI este dată de bibliotecile puse la dispoziţia
programatorului acestea conţinacircnd funcţii pentru implementarea diverselor faze care conduc
la o aplicaţie din domeniul achiziţiei de date sau a controlului automat
Pentru achiziţia de date există următoarele biblioteci specializate
bull de instrumente
bull pentru interfaţa GPIBGPIB 4882 (General Purpose Interface Bus)
bull pentru achiziţie de date
bull pentru operaţii IO icircn cazul achiziţiei de date
bull pentru interfaţa serială RS232
bull pentru sistemul VXI
Biblioteci specializate pentru analiza datelor
bull pentru IO
bull pentru formatarea specială
bull pentru analiză
bull pentru analiză avansată
Biblioteci specializate pentru vizualizare date
bull pentru crearea unei interfeţe utilizator de tip vizual
Biblioteci specializate pentru lucrul icircn reţea şi comunicarea icircntre diverse aplicaţii
bull pentru DDE (Dynamic Data Exchange)
bull pentru TCP (Transmision Control Protocol)
bull pentru sistemul X de sub Unix
Icircn afară de acestea mai există o bibliotecă specială numită biblioteca de instrumente
care conţine drivere şi sursele lor pentru osciloscoape multimetre şi generatoare de funcţii
De asemenea există posibilitatea creării unui instrument propriu Biblioteca pentru interfaţa
28
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cu utilizatorul conţine funcţiile necesare creării unui GUI (Graphical User Interface =
Interfaţă grafică cu utilizatorul) după necesităţi
Structura generică a unei aplicaţii dezvoltate sub CVI
Un proiect complet pentru una din clasele de aplicaţii specifice mediului CVI are
următoarele componente generice
bull interfaţa cu utilizatorul
bull partea de control a aplicaţiei
bull partea specializată pentru achiziţia datelor
bull partea specializată icircn analiza respectivelor date
Mai jos prezentăm o schemă generică a aplicaţiilor CVI
Figura 24
Tipuri de fişiere folosite icircn cadrul CVI
PRJ se referă la fişiere de tip proiect
UIR se referă la fişiere care conţin descrierea unei interfeţe grafice cu utilizatorul
C fişiere sursă
H fişiere header
FP fişiere care reţin descrierea unui instrument
LIB fişiere bibliotecă
DLL fişiere link-editate pentru apel dinamic
OBJ fişiere obiect
29
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a unora dintre meniurile şi ferestrele mediului de dezvoltare CVI
Fereastra proiect
Prezentăm mai jos doar informaţiile suplimentare faţă de o fereastră proiect standard
Pe lacircngă datele curente despre fiecare fişier inclus icircn proiect acesta mai are precizat şi unul
sau mai mulţi din următorii indici
- I indică faptul că respectivul fişier conţine descrierea unui driver de instrument
- S faptul că s-au făcut modificări icircn fişierul respectiv şi deci trebuie salvat
- C indică obligativitatea compilării respectivului fişier icircnainte de rularea aplicaţiei
- indică faptul că fişierul este deschis icircntr-o fereastră de editare
- indică ca acest fişier nu este deschis
Aplicaţii consolă
Pentru aplicaţiile tip consolă clasice C unde se folosesc pentru IO funcţiile scanf şi
printf vizualizarea ieşirii icircn mod text a acestora se va face icircntr-o fereastră specială numită
ldquoStandard InputOutput Windowrdquo
Observaţie Dacă se va programa icircn acest mod trebuie activată opţiunea ldquoBring Standard
InputOtput to front whenever modifyrdquo din Environment ce aparţine meniului Options
Generatorul interactiv de aplicaţii
Butoanele directe ale editorului de interfeţe cu utilizatorul
folosit la selectare mutare şi dimensionare obiecte
utilizat pentru a modifica textul asociat cu obiectele din UIR folosind facilităţile de
etichetare
folosit pentru colorarea obiectelor Este suficientă o apăsare pe butonul din dreapta a
mouse-ului şi va colora automat obiectul selectat cu culoarea curentă
oferă facilităţi de operare Atunci cacircnd este activat evenimentele vor fi afişate icircn partea
dreaptă a barei de facilităţi
30
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a cacirctorva din meniurile mai importante ale generatorului
Menu Bars activează cutia de dialog care ne prezintă toate barele de meniu definite deja de
programator
Figura 25
Create apelează fereastra Edit Menu Bar pentru a crea o nouă bară de meniuri
Edit apelează fereastra Edit Menu Bar pentru a modifica o bară de meniuri existentă
Fereastra Edit Menu Bar(fig26) permite specificarea sau modificarea caracteristicilor
unei bare de meniuri icircn curs de creare sau care există deja
31
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 26
Menu Bar Constant Prefix este identificatorul intern al respectivei bare de meniuri Acesta
va fi folosit de funcţia LoadMenuBar pentru icircncărcarea icircn memorie a parametrilor care conţin
această bară Va fi definit automat icircn fişierul header din scheletul de aplicaţie
Item se referă la numele meniului curentsubmeniucomandă de meniu Dacă icircn faţa primei
litere a unui element din meniu se adaugă 2 ldquounderscorerdquo la execuţie acesta va putea fi
selectat prin combinaţia Alt+prima literă
Constant name este alipit la Menu Bar Constant Prefix pentru a se genera identificatorul
elementului curent Este folosit de funcţii ca GetMenuBarAttribute sau SetMenuBarAttribute
De asemenea acest identificator este returnat de GetUserEvent atunci cacircnd apare un
eveniment generat de o comandă a meniului
Callback Function Permite specificarea numelui unei funcţii de răspuns care va fi apelată
automat la activarea respectivului element Folosirea ei este opţională
32
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ModifierKeyShortcutKey se combină pentru a ataşa o cheie ldquohotrdquo pentru elementul
curent
buton ce permite coboracircrea icircn interiorul unei ierarhii de meniuri
buton ce permite urcarea icircn interiorul unei ierarhii de meniuri
Panouri
După cum am spus sunt echivalentul ferestrelor din programarea Windows Pentru a le crea
Create1048774Panel ne pune la dispoziţie un nou panou icircn cadrul UIR-ului curent Prin dublu
ldquoclickrdquo pe acesta se va intra in fereastra de editare a caracteristicilor panoului Această
fereastră este prezentată mai jos
Figura 27
La partea de Menu Bar se poate specifica o bară din cele deja create icircn cazul dezvoltării
respectivei interfeţe
Restul parametrilor au fost discutaţi anterior sau sunt cunoscuţi din programarea Windows
33
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Crearea controalelor
Exceptacircnd diferenţele care apar funcţie de destinaţia acestora există o serie de parametri
comuni fiecărui control pe care icircl creăm Mai jos prezentăm fereastra care apare de exemplu
la crearea unui control de tip numeric şi anume un buton
Figura 28
Se observă că identificatorul intern şi posibilitatea de ataşare a unei funcţii de răspuns
rămacircne De asemenea o serie de informaţii specifice părţii de etichetare Icircn plus apar
specificaţii privind modul de afişare a datelor şi limitele icircntre care acestea pot fi variate prin
intermediul acestui control
34
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
TAB ORDER
Fiecare control de pe un panou activ are o poziţie icircn ordinea de salt prin intermediul
unui tab Această ordine precizează care va fi următorul control ce va fi activat icircn cazul icircn
care utilizatorul apasă Tab sau Shift+Tab Implicit acestea sunt adăugate exact icircn ordinea
creării lor de către programator Numai că nu icircntotdeauna aceasta este ordinea de salt dorită a
fi activă la terminarea aplicaţiei Icircn aceste condiţii secvenţa Edit1048774Tab Order ne va activa un
panou specializat pentru aceasta
Figura 29
noua formă de cursor activă icircn interiorul ferestrei Prin apăsarea pe un control oarecare i
se
poate modifica ordinea de activare
specifică faptul că se acceptă noua ordine de apelare
se iese cu păstrarea vechii ordini
Find UIR Objects
O altă facilitate a editorului este Find UIR Objects care aparţine meniului View Icircn
cadrul unor proiecte mari se dovedeşte a fi extrem de utilă
35
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 210
După cum se observă ne permite căutarea după dorinţă a unui nume icircn diverse categorii de
obiecte ale interfeţei cu utilizatorul
GENERATE
Este meniul folosit pentru generarea fie a icircntregului cod schelet fie numai a codului
corespunzător unui obiect proaspăt introdus icircntr-un UIR
Secvenţa Code1048774Generate1048774AllCode va genera codul schelet pentru aplicaţie Acesta va
conţine şi un ldquoswitchrdquo pentru tratarea evenimentelor Alegerea evenimentelor care vor fi
automat introduse se face din Code1048774Preferences
MENIUL ARRANGE
Icircncă de la primele aplicaţii vom observa că una din operaţiile mari consumatoare de
timp este aranjarea controalelor icircn panou după specificarea caracteristicilor acestora Pentru a
evita acest lucru CVI a fost prevăzut cu o serie de facilităţi de aranjare automată pe care le
vom prezenta mai jos
Figura 211
Top Edges asigură spaţiere verticală icircntre partea superioară a controalelor Cel mai de
sus şi cel mai de jos control sunt considerate puncte de referinţă
36
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Vertical Centers asigură spaţiere verticală icircntre centrele controalelor Cel mai de sus
şi cel mai de jos control sunt considerate puncte de referinţă
Bottom Edges asigură spaţiere verticală icircntre partea inferioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Vertical Gap asigură spaţiere verticală icircntre partea superioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Left Edges setează spaţii orizontale egale icircntre marginile din stacircnga ale controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Centers setează spaţii orizontale egale icircntre centrele controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Right Edges setează spaţii orizontale egale icircntre marginile din dreapta ale
controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Gap spaţiere orizontală icircntre controale Cel mai de sus şi cel mai de jos
control sunt considerate puncte de referinţă
Horizontal Compress minimizează spaţiile pe orizontală dintre controale şi elimină
orice spaţiu dintre ele
Distribute Vertical Centers
Comanda Distribute realizează la apel ultima opţiune selectată din lista prezentată
mai sus
37
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
suplimentară din fiecare pachet privitoare la mesajul din care face parte şi locul pe care icircl
ocupa icircn el Exemplul tipic de reţea care utilizează comutaţia de pachete este internetul
BComutaţia de pachete orientată pe conexiune (sau circuit virtual)
Icircn cazul comutaţiei de pachete orientată pe conexiune (sau circuit virtual) comunicarea
icircntre terminale presupune stabilirea unei căi anume pe care va circula fluxul informaţional
dintre acestea similar cu comutaţia de circuite Spre deosebire de aceasta nu este vorba de
dedicarea unui circuit fizic comunicării respective ci de configurarea unui circuit logic
numit circuit virtual Aceasta icircnseamnă că toate pachetele vor urma aceeaşi cale prin reţea
fără a dedica suportul fizic comunicaţiei respective Pachetele altor utilizatori vor putea folosi
foarte bine segmente din calea respectivă sau chiar icircntreaga cale La stabilirea circuitului
virtual fiecare comutator (router) trebuie să memoreze icircn tabela de dirijare care este
succesorul său icircn respectivul circuit virtual Astfel spre deosebire de comutaţia de pachete
fără conexiune după stabilirea circuitului virtual comutatorul nu mai trebuie să decidă calea
fiecărui pachet Avacircnd memorat nodul succesor icircn fiecare dintre circuitele virtuale icircn care este
implicat comutatorul va identifica circuitul asociat pachetului şi icircl va transmite pe acesta pe
linia de ieşire corespunzătoare Tehnica circuitului virtual garantează livrarea icircn ordine a
pachetelor la destinaţie Exemple marcante de reţele ce utilizează comutaţia de pachete de tip
circuit virtual sunt X25 şi ATM
Marele avantaj al comutaţiei de pachete este utilizarea eficientă a resurselor de
transmisiune Deoarece acestea nu sunt dedicate ele pot fi folosite după necesităţi pentru a
transmite pachete provenind de la utilizatori diferiţi Din acest motiv comutaţia de pachete
este extrem de avantajoasă icircn cazul unei infrastructuri cu resurse de transmisiune limitate
cum este şi cazul reţelelor fără fir
Un dezavantaj important al comutaţiei de pachete este dat de gestionarea comutatoarelor
(routerelor) icircn cazul unui trafic crescut la intrare Pierderea pachetelor garantarea unei
icircntacircrzieri maxime şi a unui debit utilizator constant sunt problemele spinoase ale comutaţiei
de pachete Ele reprezintă obstacole icircn special icircn calea oferirii serviciilor de timp real cum ar
fi telefonia
Icircn schimb icircn cazul transmisiilor de date avantajul bunei administrări a resurselor
prevalează De exemplu icircn cazul particular al interfeţei radio GSM cacircnd o staţie mobilă (MS)
generează un pachet de date reţeaua icircl va transmite pe un canal radio disponibil icircn acel
moment Următorul pachet de pe acel canal poate să aparţină aceleiaşi MS dacă are ceva de
23
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
transmis sau dacă nu alteia Icircn acest mod atacircta timp cacirct cineva are ceva de transmis
canalele radio nu sunt blocate inutil Lucrul icircn mod pachet are o eficienţă cu totul deosebită icircn
cazul unui trafic de date icircn rafale (data bursts)
Aşadar pentru un sistem GSM bazat esenţialmente pe comutaţia de circuite este
extrem de utilă alocarea resurselor neutilizate de către serviciile vocale pentru servicii mai
puţin prioritare Atacirct HSCSD cacirct şi GPRS icircşi propun acest lucru Serviciile cele mai potrivite
pentru valorificarea resurselor rămase (preferabil printr-un mecanism de alocare dinamică)
sunt tocmai cele care implică un trafic de date icircn rafale fără pretenţii de timp real Diferenţa
fundamentală icircntre HSCSD şi GPRS este că acesta din urmă valorifică aceste resurse icircntr-un
mod mult mai eficient deoarece utilizează comutaţia de pachete Icircn plus costul serviciilor
oferite este mai atractiv deoarece utilizatorul plăteşte volumul de date transferat Practic dacă
doreşte utilizatorul poate fi sbquoconectatrsquo la reţeaua de date icircn permanenţă fiind taxat doar
pentru timpul icircn care efectiv utilizează resursele reţelei adică pentru pachetele de date
recepţionate respectiv transmise
243 Servicii GPRS
Dintre aplicaţiile cele mai potrivite pentru GPRS se pot aminti mesageria de orice tip
difuzare şi distribuţie multiplă telemetrie jocuri navigare de mică anvergură pe reţeaua
internet Icircn general orice tip de aplicaţii ce necesită comunicaţii maşină - maşină la debite
mici şi medii sunt adecvate dezvoltării icircn mediul GPRS
Ca şi icircn reţeaua GSM reţelele GPRS pot oferi două categorii de servicii de
telecomunicaţii
servicii de bază
servicii suplimentare
Serviciile de bază GPRS
Acestea sunt icircn principal servicii suport (bearer services) de transport care realizează
transmiterea datelor cu comutaţie de pachete icircntre două interfeţe şi din teleservicii Similar
situaţiei din GSM aceste interfeţe sunt
interfaţa dintre echipamentul terminal de date (de exemplu calculator) şi terminalul
mobil GPRS
24
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
interfaţa dintre reţeaua GPRS şi reţeaua de date sau echipamentul terminal cu care
comunică Aceasta interfaţă este situată icircntr-un nod poartă (gateway) GPRS similar
situaţiei din GSM unde locul ei este GMSC
Teleserviciul fundamental oferit de GPRS este cel de transport de date şi este detaliat
mai jos Un alt teleserviciu oferit de GPRS este transmisia şi recepţia de mesaje scurte (SMS)
Astfel pe de o parte capacitatea de transmisie a mesajelor scurte va creşte iar pe de alta
parte reţeaua de semnalizări pe care se transmit icircn GSM aceste mesaje nu va mai fi icircncărcată
şi cu mesaje scurte ce vin sau pleacă de la la terminalele mobile GPRS
Servicii GPRS de transport
Sunt definite doua categorii de teleservicii de transport
servicii punct-la-punct (PTP ndashPoint-to-Point)
servicii punct la multipunct (PTM-Point-to-Multipoint)
A Serviciul PTP
Serviciul punct la punct (PTP) [GSM 0260] permite transmiterea de pachete de date
icircntre doi utilizatori Este implementat icircn GPRS faza 1 Abonatul care a iniţiat serviciul se
numeşte solicitant (service requester) Partenerul său se numeşte receptor al serviciului
(service receiver)
Serviciul PTP poate fi solicitat fie de la terminalul mobil GPRS fie de la un
echipament situat icircntr-o reţea de date fixă (IP X25) Serviciul PTP poate fi oferit de
asemenea icircntre doi utilizatori mobili GPRS
Serviciul punct-la punct poate fi la racircndul sau de două tipuri
PTP fără conexiune (PTP-CLNS ndash PTP Connectinnless Network Service)
PTP orientat pe conexiune (PTP-CONS ndashPTP Connection Orientated Network
Network Service)
PTP-CLNS este un serviciu de tip datagramă ce utilizează comutaţia de pachete fără
conexiune Este util icircn cazul aplicaţiilor ce generează trafic icircn rafale şi are că scop asigurarea
interoperării cu reţele IP
PTP-CONS este un serviciu de tip circuit virtual ce utilizează comutaţia de pachete
orientata pe conexiune Icircntre cei doi utilizatori se stabileşte un circuit virtual pentru o perioadă
25
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ce poate varia de la cacircteva secunde la ore Este util atacirct pentru aplicaţii ce generează trafic icircn
rafale cacirct şi pentru aplicaţiile interactive Are că scop asigurarea interoperării cu reţele X25 şi
derularea peste GPRS a aplicaţiilor bazate pe protocolul OSI CONS(Connection Orientated
Network Protocol)
O reţea GPRS trebuie să asigure menţinerea circuitului virtual la trecerea dintr-o
celulă icircn alta dar numai icircn interiorul aceleiaşi reţele GPRS-PLMN La trecerea terminalului
mobil icircntr-o altă reţea sau icircn cazul căderii legăturii radio circuitul virtual va fi eliberat Pentru
ambele tipuri de servicii pe interfaţa radio se poate opera fie cu confirmare fie fără
confirmare a transportului de date
B Serviciul PTM
Serviciul punct la multipunct (PTM) permite transmiterea de pachete de date de la un
utilizator către mai mulţi utilizatori El este implementat icircn faza a doua a GPRS O
comunicaţie PTM se stabileşte icircntre un furnizor de servicii (ce poate fi situat icircn afară reţelei
GSM) şi un grup de terminale GPRS Şi serviciul PTM este un serviciu ce se prezintă icircn două
variante
PTMndash multidistribuţie (PTM Multicast)
PTM- grup (PTM-G--PTMGroup)
Serviciul de transport PTM-M permite transmiterea pachetelor de date icircntr-o arie
geografică dată (celulă grup de celule) fără confirmare Receptorii serviciului sunt fie toţi
abonaţii care se găsesc icircn acea zonă fie un grup icircnchis de utilizatori
Icircn cazul PTM-G receptorul serviciului este un grup predefinit de utilizatori Pachetele de
date vor fi trimise către toţi membrii grupului indiferent de aria geografică unde se găsesc
aceştia Este posibilă şi transmiterea doar către acei membri care se găsesc icircn anumite zone
geografice Transmisia poate fi şi cu confirmare
Serviciile suplimentare
Printre serviciile suplimentare avute icircn vedere icircntr-un prim stadiu se numără
redirecţionarea necondiţionată a apelurilor redirecţionarea cacircnd abonatul nu este accesibil şi
definirea de grupuri icircnchise de utilizatori In afară de aceste servicii recomandarea GSM
0260 descrie posibilitatea oferirii de servicii adiţionale cum sunt accesarea bazelor de date
servicii de mesagerie validări de cărţi de credit servicii de monitorizare electronică tranzacţii
electronice etc
26
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
244 Arhitectura GPRS
GPRS este o soluţie pentru operatori deoarece nu necesită modificări substanţiale icircn
reţeaua GSM Aşa cum se observă icircn figura 72 reţeaua nucleu a GPRS operează icircn paralel
cu GSM-NSS
Figura 23 Arhitectura reţelei GPRS
25 LabWindowsCVI
La dipecer am considerat un calculator desktop sau laptop pe care va rula o aplicaţie
de monitorizare a datelor măsurate implementată icircn LabWindowsCVI
LabWindowsCVI este o platformă pentru dezvoltare de software cu orientare pe
aplicaţii de instrumentaţie După cum se deduce din denumirea sa (CVI ndash C for Virtual
Instrumentation) limbajul acceptat este ANSI C cu extensii specifice CVI ne pune la
dispoziţie un mediu interactiv de dezvoltare a unor aplicaţii pentru sistemul de operare
Windows Icircmbină deci avantajele programării de tip vizual cu avantajele simplităţii şi
flexibilităţii limbajului C Deşi a fost creat special pentru aplicaţii de instrumentaţie şi control
27
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
multiplele lui facilităţi icircl fac capabil să suporte şi dezvoltarea unor aplicaţii de mărime medie
care să fie de altă factură Fiecare funcţie de bibliotecă din cadrul acestui mediu are o interfaţă
specializată numită panoul funcţiei (function panel) care permite
bull Help on-line
bull Selectare şi declarare de variabile sau constante necesare
bull Execuţie interactivă
bull Inserarea funcţiei editate icircntr-un text sursă
Mediul este extrem de flexibil permiţacircnd interfaţarea bidirecţională cu alte compilatoare de
C sau C++ De asemenea se pot folosi şi DLL-uri
Puterea mediului LabWindowsCVI este dată de bibliotecile puse la dispoziţia
programatorului acestea conţinacircnd funcţii pentru implementarea diverselor faze care conduc
la o aplicaţie din domeniul achiziţiei de date sau a controlului automat
Pentru achiziţia de date există următoarele biblioteci specializate
bull de instrumente
bull pentru interfaţa GPIBGPIB 4882 (General Purpose Interface Bus)
bull pentru achiziţie de date
bull pentru operaţii IO icircn cazul achiziţiei de date
bull pentru interfaţa serială RS232
bull pentru sistemul VXI
Biblioteci specializate pentru analiza datelor
bull pentru IO
bull pentru formatarea specială
bull pentru analiză
bull pentru analiză avansată
Biblioteci specializate pentru vizualizare date
bull pentru crearea unei interfeţe utilizator de tip vizual
Biblioteci specializate pentru lucrul icircn reţea şi comunicarea icircntre diverse aplicaţii
bull pentru DDE (Dynamic Data Exchange)
bull pentru TCP (Transmision Control Protocol)
bull pentru sistemul X de sub Unix
Icircn afară de acestea mai există o bibliotecă specială numită biblioteca de instrumente
care conţine drivere şi sursele lor pentru osciloscoape multimetre şi generatoare de funcţii
De asemenea există posibilitatea creării unui instrument propriu Biblioteca pentru interfaţa
28
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cu utilizatorul conţine funcţiile necesare creării unui GUI (Graphical User Interface =
Interfaţă grafică cu utilizatorul) după necesităţi
Structura generică a unei aplicaţii dezvoltate sub CVI
Un proiect complet pentru una din clasele de aplicaţii specifice mediului CVI are
următoarele componente generice
bull interfaţa cu utilizatorul
bull partea de control a aplicaţiei
bull partea specializată pentru achiziţia datelor
bull partea specializată icircn analiza respectivelor date
Mai jos prezentăm o schemă generică a aplicaţiilor CVI
Figura 24
Tipuri de fişiere folosite icircn cadrul CVI
PRJ se referă la fişiere de tip proiect
UIR se referă la fişiere care conţin descrierea unei interfeţe grafice cu utilizatorul
C fişiere sursă
H fişiere header
FP fişiere care reţin descrierea unui instrument
LIB fişiere bibliotecă
DLL fişiere link-editate pentru apel dinamic
OBJ fişiere obiect
29
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a unora dintre meniurile şi ferestrele mediului de dezvoltare CVI
Fereastra proiect
Prezentăm mai jos doar informaţiile suplimentare faţă de o fereastră proiect standard
Pe lacircngă datele curente despre fiecare fişier inclus icircn proiect acesta mai are precizat şi unul
sau mai mulţi din următorii indici
- I indică faptul că respectivul fişier conţine descrierea unui driver de instrument
- S faptul că s-au făcut modificări icircn fişierul respectiv şi deci trebuie salvat
- C indică obligativitatea compilării respectivului fişier icircnainte de rularea aplicaţiei
- indică faptul că fişierul este deschis icircntr-o fereastră de editare
- indică ca acest fişier nu este deschis
Aplicaţii consolă
Pentru aplicaţiile tip consolă clasice C unde se folosesc pentru IO funcţiile scanf şi
printf vizualizarea ieşirii icircn mod text a acestora se va face icircntr-o fereastră specială numită
ldquoStandard InputOutput Windowrdquo
Observaţie Dacă se va programa icircn acest mod trebuie activată opţiunea ldquoBring Standard
InputOtput to front whenever modifyrdquo din Environment ce aparţine meniului Options
Generatorul interactiv de aplicaţii
Butoanele directe ale editorului de interfeţe cu utilizatorul
folosit la selectare mutare şi dimensionare obiecte
utilizat pentru a modifica textul asociat cu obiectele din UIR folosind facilităţile de
etichetare
folosit pentru colorarea obiectelor Este suficientă o apăsare pe butonul din dreapta a
mouse-ului şi va colora automat obiectul selectat cu culoarea curentă
oferă facilităţi de operare Atunci cacircnd este activat evenimentele vor fi afişate icircn partea
dreaptă a barei de facilităţi
30
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a cacirctorva din meniurile mai importante ale generatorului
Menu Bars activează cutia de dialog care ne prezintă toate barele de meniu definite deja de
programator
Figura 25
Create apelează fereastra Edit Menu Bar pentru a crea o nouă bară de meniuri
Edit apelează fereastra Edit Menu Bar pentru a modifica o bară de meniuri existentă
Fereastra Edit Menu Bar(fig26) permite specificarea sau modificarea caracteristicilor
unei bare de meniuri icircn curs de creare sau care există deja
31
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 26
Menu Bar Constant Prefix este identificatorul intern al respectivei bare de meniuri Acesta
va fi folosit de funcţia LoadMenuBar pentru icircncărcarea icircn memorie a parametrilor care conţin
această bară Va fi definit automat icircn fişierul header din scheletul de aplicaţie
Item se referă la numele meniului curentsubmeniucomandă de meniu Dacă icircn faţa primei
litere a unui element din meniu se adaugă 2 ldquounderscorerdquo la execuţie acesta va putea fi
selectat prin combinaţia Alt+prima literă
Constant name este alipit la Menu Bar Constant Prefix pentru a se genera identificatorul
elementului curent Este folosit de funcţii ca GetMenuBarAttribute sau SetMenuBarAttribute
De asemenea acest identificator este returnat de GetUserEvent atunci cacircnd apare un
eveniment generat de o comandă a meniului
Callback Function Permite specificarea numelui unei funcţii de răspuns care va fi apelată
automat la activarea respectivului element Folosirea ei este opţională
32
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ModifierKeyShortcutKey se combină pentru a ataşa o cheie ldquohotrdquo pentru elementul
curent
buton ce permite coboracircrea icircn interiorul unei ierarhii de meniuri
buton ce permite urcarea icircn interiorul unei ierarhii de meniuri
Panouri
După cum am spus sunt echivalentul ferestrelor din programarea Windows Pentru a le crea
Create1048774Panel ne pune la dispoziţie un nou panou icircn cadrul UIR-ului curent Prin dublu
ldquoclickrdquo pe acesta se va intra in fereastra de editare a caracteristicilor panoului Această
fereastră este prezentată mai jos
Figura 27
La partea de Menu Bar se poate specifica o bară din cele deja create icircn cazul dezvoltării
respectivei interfeţe
Restul parametrilor au fost discutaţi anterior sau sunt cunoscuţi din programarea Windows
33
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Crearea controalelor
Exceptacircnd diferenţele care apar funcţie de destinaţia acestora există o serie de parametri
comuni fiecărui control pe care icircl creăm Mai jos prezentăm fereastra care apare de exemplu
la crearea unui control de tip numeric şi anume un buton
Figura 28
Se observă că identificatorul intern şi posibilitatea de ataşare a unei funcţii de răspuns
rămacircne De asemenea o serie de informaţii specifice părţii de etichetare Icircn plus apar
specificaţii privind modul de afişare a datelor şi limitele icircntre care acestea pot fi variate prin
intermediul acestui control
34
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
TAB ORDER
Fiecare control de pe un panou activ are o poziţie icircn ordinea de salt prin intermediul
unui tab Această ordine precizează care va fi următorul control ce va fi activat icircn cazul icircn
care utilizatorul apasă Tab sau Shift+Tab Implicit acestea sunt adăugate exact icircn ordinea
creării lor de către programator Numai că nu icircntotdeauna aceasta este ordinea de salt dorită a
fi activă la terminarea aplicaţiei Icircn aceste condiţii secvenţa Edit1048774Tab Order ne va activa un
panou specializat pentru aceasta
Figura 29
noua formă de cursor activă icircn interiorul ferestrei Prin apăsarea pe un control oarecare i
se
poate modifica ordinea de activare
specifică faptul că se acceptă noua ordine de apelare
se iese cu păstrarea vechii ordini
Find UIR Objects
O altă facilitate a editorului este Find UIR Objects care aparţine meniului View Icircn
cadrul unor proiecte mari se dovedeşte a fi extrem de utilă
35
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 210
După cum se observă ne permite căutarea după dorinţă a unui nume icircn diverse categorii de
obiecte ale interfeţei cu utilizatorul
GENERATE
Este meniul folosit pentru generarea fie a icircntregului cod schelet fie numai a codului
corespunzător unui obiect proaspăt introdus icircntr-un UIR
Secvenţa Code1048774Generate1048774AllCode va genera codul schelet pentru aplicaţie Acesta va
conţine şi un ldquoswitchrdquo pentru tratarea evenimentelor Alegerea evenimentelor care vor fi
automat introduse se face din Code1048774Preferences
MENIUL ARRANGE
Icircncă de la primele aplicaţii vom observa că una din operaţiile mari consumatoare de
timp este aranjarea controalelor icircn panou după specificarea caracteristicilor acestora Pentru a
evita acest lucru CVI a fost prevăzut cu o serie de facilităţi de aranjare automată pe care le
vom prezenta mai jos
Figura 211
Top Edges asigură spaţiere verticală icircntre partea superioară a controalelor Cel mai de
sus şi cel mai de jos control sunt considerate puncte de referinţă
36
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Vertical Centers asigură spaţiere verticală icircntre centrele controalelor Cel mai de sus
şi cel mai de jos control sunt considerate puncte de referinţă
Bottom Edges asigură spaţiere verticală icircntre partea inferioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Vertical Gap asigură spaţiere verticală icircntre partea superioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Left Edges setează spaţii orizontale egale icircntre marginile din stacircnga ale controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Centers setează spaţii orizontale egale icircntre centrele controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Right Edges setează spaţii orizontale egale icircntre marginile din dreapta ale
controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Gap spaţiere orizontală icircntre controale Cel mai de sus şi cel mai de jos
control sunt considerate puncte de referinţă
Horizontal Compress minimizează spaţiile pe orizontală dintre controale şi elimină
orice spaţiu dintre ele
Distribute Vertical Centers
Comanda Distribute realizează la apel ultima opţiune selectată din lista prezentată
mai sus
37
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
transmis sau dacă nu alteia Icircn acest mod atacircta timp cacirct cineva are ceva de transmis
canalele radio nu sunt blocate inutil Lucrul icircn mod pachet are o eficienţă cu totul deosebită icircn
cazul unui trafic de date icircn rafale (data bursts)
Aşadar pentru un sistem GSM bazat esenţialmente pe comutaţia de circuite este
extrem de utilă alocarea resurselor neutilizate de către serviciile vocale pentru servicii mai
puţin prioritare Atacirct HSCSD cacirct şi GPRS icircşi propun acest lucru Serviciile cele mai potrivite
pentru valorificarea resurselor rămase (preferabil printr-un mecanism de alocare dinamică)
sunt tocmai cele care implică un trafic de date icircn rafale fără pretenţii de timp real Diferenţa
fundamentală icircntre HSCSD şi GPRS este că acesta din urmă valorifică aceste resurse icircntr-un
mod mult mai eficient deoarece utilizează comutaţia de pachete Icircn plus costul serviciilor
oferite este mai atractiv deoarece utilizatorul plăteşte volumul de date transferat Practic dacă
doreşte utilizatorul poate fi sbquoconectatrsquo la reţeaua de date icircn permanenţă fiind taxat doar
pentru timpul icircn care efectiv utilizează resursele reţelei adică pentru pachetele de date
recepţionate respectiv transmise
243 Servicii GPRS
Dintre aplicaţiile cele mai potrivite pentru GPRS se pot aminti mesageria de orice tip
difuzare şi distribuţie multiplă telemetrie jocuri navigare de mică anvergură pe reţeaua
internet Icircn general orice tip de aplicaţii ce necesită comunicaţii maşină - maşină la debite
mici şi medii sunt adecvate dezvoltării icircn mediul GPRS
Ca şi icircn reţeaua GSM reţelele GPRS pot oferi două categorii de servicii de
telecomunicaţii
servicii de bază
servicii suplimentare
Serviciile de bază GPRS
Acestea sunt icircn principal servicii suport (bearer services) de transport care realizează
transmiterea datelor cu comutaţie de pachete icircntre două interfeţe şi din teleservicii Similar
situaţiei din GSM aceste interfeţe sunt
interfaţa dintre echipamentul terminal de date (de exemplu calculator) şi terminalul
mobil GPRS
24
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
interfaţa dintre reţeaua GPRS şi reţeaua de date sau echipamentul terminal cu care
comunică Aceasta interfaţă este situată icircntr-un nod poartă (gateway) GPRS similar
situaţiei din GSM unde locul ei este GMSC
Teleserviciul fundamental oferit de GPRS este cel de transport de date şi este detaliat
mai jos Un alt teleserviciu oferit de GPRS este transmisia şi recepţia de mesaje scurte (SMS)
Astfel pe de o parte capacitatea de transmisie a mesajelor scurte va creşte iar pe de alta
parte reţeaua de semnalizări pe care se transmit icircn GSM aceste mesaje nu va mai fi icircncărcată
şi cu mesaje scurte ce vin sau pleacă de la la terminalele mobile GPRS
Servicii GPRS de transport
Sunt definite doua categorii de teleservicii de transport
servicii punct-la-punct (PTP ndashPoint-to-Point)
servicii punct la multipunct (PTM-Point-to-Multipoint)
A Serviciul PTP
Serviciul punct la punct (PTP) [GSM 0260] permite transmiterea de pachete de date
icircntre doi utilizatori Este implementat icircn GPRS faza 1 Abonatul care a iniţiat serviciul se
numeşte solicitant (service requester) Partenerul său se numeşte receptor al serviciului
(service receiver)
Serviciul PTP poate fi solicitat fie de la terminalul mobil GPRS fie de la un
echipament situat icircntr-o reţea de date fixă (IP X25) Serviciul PTP poate fi oferit de
asemenea icircntre doi utilizatori mobili GPRS
Serviciul punct-la punct poate fi la racircndul sau de două tipuri
PTP fără conexiune (PTP-CLNS ndash PTP Connectinnless Network Service)
PTP orientat pe conexiune (PTP-CONS ndashPTP Connection Orientated Network
Network Service)
PTP-CLNS este un serviciu de tip datagramă ce utilizează comutaţia de pachete fără
conexiune Este util icircn cazul aplicaţiilor ce generează trafic icircn rafale şi are că scop asigurarea
interoperării cu reţele IP
PTP-CONS este un serviciu de tip circuit virtual ce utilizează comutaţia de pachete
orientata pe conexiune Icircntre cei doi utilizatori se stabileşte un circuit virtual pentru o perioadă
25
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ce poate varia de la cacircteva secunde la ore Este util atacirct pentru aplicaţii ce generează trafic icircn
rafale cacirct şi pentru aplicaţiile interactive Are că scop asigurarea interoperării cu reţele X25 şi
derularea peste GPRS a aplicaţiilor bazate pe protocolul OSI CONS(Connection Orientated
Network Protocol)
O reţea GPRS trebuie să asigure menţinerea circuitului virtual la trecerea dintr-o
celulă icircn alta dar numai icircn interiorul aceleiaşi reţele GPRS-PLMN La trecerea terminalului
mobil icircntr-o altă reţea sau icircn cazul căderii legăturii radio circuitul virtual va fi eliberat Pentru
ambele tipuri de servicii pe interfaţa radio se poate opera fie cu confirmare fie fără
confirmare a transportului de date
B Serviciul PTM
Serviciul punct la multipunct (PTM) permite transmiterea de pachete de date de la un
utilizator către mai mulţi utilizatori El este implementat icircn faza a doua a GPRS O
comunicaţie PTM se stabileşte icircntre un furnizor de servicii (ce poate fi situat icircn afară reţelei
GSM) şi un grup de terminale GPRS Şi serviciul PTM este un serviciu ce se prezintă icircn două
variante
PTMndash multidistribuţie (PTM Multicast)
PTM- grup (PTM-G--PTMGroup)
Serviciul de transport PTM-M permite transmiterea pachetelor de date icircntr-o arie
geografică dată (celulă grup de celule) fără confirmare Receptorii serviciului sunt fie toţi
abonaţii care se găsesc icircn acea zonă fie un grup icircnchis de utilizatori
Icircn cazul PTM-G receptorul serviciului este un grup predefinit de utilizatori Pachetele de
date vor fi trimise către toţi membrii grupului indiferent de aria geografică unde se găsesc
aceştia Este posibilă şi transmiterea doar către acei membri care se găsesc icircn anumite zone
geografice Transmisia poate fi şi cu confirmare
Serviciile suplimentare
Printre serviciile suplimentare avute icircn vedere icircntr-un prim stadiu se numără
redirecţionarea necondiţionată a apelurilor redirecţionarea cacircnd abonatul nu este accesibil şi
definirea de grupuri icircnchise de utilizatori In afară de aceste servicii recomandarea GSM
0260 descrie posibilitatea oferirii de servicii adiţionale cum sunt accesarea bazelor de date
servicii de mesagerie validări de cărţi de credit servicii de monitorizare electronică tranzacţii
electronice etc
26
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
244 Arhitectura GPRS
GPRS este o soluţie pentru operatori deoarece nu necesită modificări substanţiale icircn
reţeaua GSM Aşa cum se observă icircn figura 72 reţeaua nucleu a GPRS operează icircn paralel
cu GSM-NSS
Figura 23 Arhitectura reţelei GPRS
25 LabWindowsCVI
La dipecer am considerat un calculator desktop sau laptop pe care va rula o aplicaţie
de monitorizare a datelor măsurate implementată icircn LabWindowsCVI
LabWindowsCVI este o platformă pentru dezvoltare de software cu orientare pe
aplicaţii de instrumentaţie După cum se deduce din denumirea sa (CVI ndash C for Virtual
Instrumentation) limbajul acceptat este ANSI C cu extensii specifice CVI ne pune la
dispoziţie un mediu interactiv de dezvoltare a unor aplicaţii pentru sistemul de operare
Windows Icircmbină deci avantajele programării de tip vizual cu avantajele simplităţii şi
flexibilităţii limbajului C Deşi a fost creat special pentru aplicaţii de instrumentaţie şi control
27
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
multiplele lui facilităţi icircl fac capabil să suporte şi dezvoltarea unor aplicaţii de mărime medie
care să fie de altă factură Fiecare funcţie de bibliotecă din cadrul acestui mediu are o interfaţă
specializată numită panoul funcţiei (function panel) care permite
bull Help on-line
bull Selectare şi declarare de variabile sau constante necesare
bull Execuţie interactivă
bull Inserarea funcţiei editate icircntr-un text sursă
Mediul este extrem de flexibil permiţacircnd interfaţarea bidirecţională cu alte compilatoare de
C sau C++ De asemenea se pot folosi şi DLL-uri
Puterea mediului LabWindowsCVI este dată de bibliotecile puse la dispoziţia
programatorului acestea conţinacircnd funcţii pentru implementarea diverselor faze care conduc
la o aplicaţie din domeniul achiziţiei de date sau a controlului automat
Pentru achiziţia de date există următoarele biblioteci specializate
bull de instrumente
bull pentru interfaţa GPIBGPIB 4882 (General Purpose Interface Bus)
bull pentru achiziţie de date
bull pentru operaţii IO icircn cazul achiziţiei de date
bull pentru interfaţa serială RS232
bull pentru sistemul VXI
Biblioteci specializate pentru analiza datelor
bull pentru IO
bull pentru formatarea specială
bull pentru analiză
bull pentru analiză avansată
Biblioteci specializate pentru vizualizare date
bull pentru crearea unei interfeţe utilizator de tip vizual
Biblioteci specializate pentru lucrul icircn reţea şi comunicarea icircntre diverse aplicaţii
bull pentru DDE (Dynamic Data Exchange)
bull pentru TCP (Transmision Control Protocol)
bull pentru sistemul X de sub Unix
Icircn afară de acestea mai există o bibliotecă specială numită biblioteca de instrumente
care conţine drivere şi sursele lor pentru osciloscoape multimetre şi generatoare de funcţii
De asemenea există posibilitatea creării unui instrument propriu Biblioteca pentru interfaţa
28
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cu utilizatorul conţine funcţiile necesare creării unui GUI (Graphical User Interface =
Interfaţă grafică cu utilizatorul) după necesităţi
Structura generică a unei aplicaţii dezvoltate sub CVI
Un proiect complet pentru una din clasele de aplicaţii specifice mediului CVI are
următoarele componente generice
bull interfaţa cu utilizatorul
bull partea de control a aplicaţiei
bull partea specializată pentru achiziţia datelor
bull partea specializată icircn analiza respectivelor date
Mai jos prezentăm o schemă generică a aplicaţiilor CVI
Figura 24
Tipuri de fişiere folosite icircn cadrul CVI
PRJ se referă la fişiere de tip proiect
UIR se referă la fişiere care conţin descrierea unei interfeţe grafice cu utilizatorul
C fişiere sursă
H fişiere header
FP fişiere care reţin descrierea unui instrument
LIB fişiere bibliotecă
DLL fişiere link-editate pentru apel dinamic
OBJ fişiere obiect
29
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a unora dintre meniurile şi ferestrele mediului de dezvoltare CVI
Fereastra proiect
Prezentăm mai jos doar informaţiile suplimentare faţă de o fereastră proiect standard
Pe lacircngă datele curente despre fiecare fişier inclus icircn proiect acesta mai are precizat şi unul
sau mai mulţi din următorii indici
- I indică faptul că respectivul fişier conţine descrierea unui driver de instrument
- S faptul că s-au făcut modificări icircn fişierul respectiv şi deci trebuie salvat
- C indică obligativitatea compilării respectivului fişier icircnainte de rularea aplicaţiei
- indică faptul că fişierul este deschis icircntr-o fereastră de editare
- indică ca acest fişier nu este deschis
Aplicaţii consolă
Pentru aplicaţiile tip consolă clasice C unde se folosesc pentru IO funcţiile scanf şi
printf vizualizarea ieşirii icircn mod text a acestora se va face icircntr-o fereastră specială numită
ldquoStandard InputOutput Windowrdquo
Observaţie Dacă se va programa icircn acest mod trebuie activată opţiunea ldquoBring Standard
InputOtput to front whenever modifyrdquo din Environment ce aparţine meniului Options
Generatorul interactiv de aplicaţii
Butoanele directe ale editorului de interfeţe cu utilizatorul
folosit la selectare mutare şi dimensionare obiecte
utilizat pentru a modifica textul asociat cu obiectele din UIR folosind facilităţile de
etichetare
folosit pentru colorarea obiectelor Este suficientă o apăsare pe butonul din dreapta a
mouse-ului şi va colora automat obiectul selectat cu culoarea curentă
oferă facilităţi de operare Atunci cacircnd este activat evenimentele vor fi afişate icircn partea
dreaptă a barei de facilităţi
30
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a cacirctorva din meniurile mai importante ale generatorului
Menu Bars activează cutia de dialog care ne prezintă toate barele de meniu definite deja de
programator
Figura 25
Create apelează fereastra Edit Menu Bar pentru a crea o nouă bară de meniuri
Edit apelează fereastra Edit Menu Bar pentru a modifica o bară de meniuri existentă
Fereastra Edit Menu Bar(fig26) permite specificarea sau modificarea caracteristicilor
unei bare de meniuri icircn curs de creare sau care există deja
31
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 26
Menu Bar Constant Prefix este identificatorul intern al respectivei bare de meniuri Acesta
va fi folosit de funcţia LoadMenuBar pentru icircncărcarea icircn memorie a parametrilor care conţin
această bară Va fi definit automat icircn fişierul header din scheletul de aplicaţie
Item se referă la numele meniului curentsubmeniucomandă de meniu Dacă icircn faţa primei
litere a unui element din meniu se adaugă 2 ldquounderscorerdquo la execuţie acesta va putea fi
selectat prin combinaţia Alt+prima literă
Constant name este alipit la Menu Bar Constant Prefix pentru a se genera identificatorul
elementului curent Este folosit de funcţii ca GetMenuBarAttribute sau SetMenuBarAttribute
De asemenea acest identificator este returnat de GetUserEvent atunci cacircnd apare un
eveniment generat de o comandă a meniului
Callback Function Permite specificarea numelui unei funcţii de răspuns care va fi apelată
automat la activarea respectivului element Folosirea ei este opţională
32
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ModifierKeyShortcutKey se combină pentru a ataşa o cheie ldquohotrdquo pentru elementul
curent
buton ce permite coboracircrea icircn interiorul unei ierarhii de meniuri
buton ce permite urcarea icircn interiorul unei ierarhii de meniuri
Panouri
După cum am spus sunt echivalentul ferestrelor din programarea Windows Pentru a le crea
Create1048774Panel ne pune la dispoziţie un nou panou icircn cadrul UIR-ului curent Prin dublu
ldquoclickrdquo pe acesta se va intra in fereastra de editare a caracteristicilor panoului Această
fereastră este prezentată mai jos
Figura 27
La partea de Menu Bar se poate specifica o bară din cele deja create icircn cazul dezvoltării
respectivei interfeţe
Restul parametrilor au fost discutaţi anterior sau sunt cunoscuţi din programarea Windows
33
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Crearea controalelor
Exceptacircnd diferenţele care apar funcţie de destinaţia acestora există o serie de parametri
comuni fiecărui control pe care icircl creăm Mai jos prezentăm fereastra care apare de exemplu
la crearea unui control de tip numeric şi anume un buton
Figura 28
Se observă că identificatorul intern şi posibilitatea de ataşare a unei funcţii de răspuns
rămacircne De asemenea o serie de informaţii specifice părţii de etichetare Icircn plus apar
specificaţii privind modul de afişare a datelor şi limitele icircntre care acestea pot fi variate prin
intermediul acestui control
34
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
TAB ORDER
Fiecare control de pe un panou activ are o poziţie icircn ordinea de salt prin intermediul
unui tab Această ordine precizează care va fi următorul control ce va fi activat icircn cazul icircn
care utilizatorul apasă Tab sau Shift+Tab Implicit acestea sunt adăugate exact icircn ordinea
creării lor de către programator Numai că nu icircntotdeauna aceasta este ordinea de salt dorită a
fi activă la terminarea aplicaţiei Icircn aceste condiţii secvenţa Edit1048774Tab Order ne va activa un
panou specializat pentru aceasta
Figura 29
noua formă de cursor activă icircn interiorul ferestrei Prin apăsarea pe un control oarecare i
se
poate modifica ordinea de activare
specifică faptul că se acceptă noua ordine de apelare
se iese cu păstrarea vechii ordini
Find UIR Objects
O altă facilitate a editorului este Find UIR Objects care aparţine meniului View Icircn
cadrul unor proiecte mari se dovedeşte a fi extrem de utilă
35
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 210
După cum se observă ne permite căutarea după dorinţă a unui nume icircn diverse categorii de
obiecte ale interfeţei cu utilizatorul
GENERATE
Este meniul folosit pentru generarea fie a icircntregului cod schelet fie numai a codului
corespunzător unui obiect proaspăt introdus icircntr-un UIR
Secvenţa Code1048774Generate1048774AllCode va genera codul schelet pentru aplicaţie Acesta va
conţine şi un ldquoswitchrdquo pentru tratarea evenimentelor Alegerea evenimentelor care vor fi
automat introduse se face din Code1048774Preferences
MENIUL ARRANGE
Icircncă de la primele aplicaţii vom observa că una din operaţiile mari consumatoare de
timp este aranjarea controalelor icircn panou după specificarea caracteristicilor acestora Pentru a
evita acest lucru CVI a fost prevăzut cu o serie de facilităţi de aranjare automată pe care le
vom prezenta mai jos
Figura 211
Top Edges asigură spaţiere verticală icircntre partea superioară a controalelor Cel mai de
sus şi cel mai de jos control sunt considerate puncte de referinţă
36
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Vertical Centers asigură spaţiere verticală icircntre centrele controalelor Cel mai de sus
şi cel mai de jos control sunt considerate puncte de referinţă
Bottom Edges asigură spaţiere verticală icircntre partea inferioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Vertical Gap asigură spaţiere verticală icircntre partea superioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Left Edges setează spaţii orizontale egale icircntre marginile din stacircnga ale controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Centers setează spaţii orizontale egale icircntre centrele controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Right Edges setează spaţii orizontale egale icircntre marginile din dreapta ale
controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Gap spaţiere orizontală icircntre controale Cel mai de sus şi cel mai de jos
control sunt considerate puncte de referinţă
Horizontal Compress minimizează spaţiile pe orizontală dintre controale şi elimină
orice spaţiu dintre ele
Distribute Vertical Centers
Comanda Distribute realizează la apel ultima opţiune selectată din lista prezentată
mai sus
37
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
interfaţa dintre reţeaua GPRS şi reţeaua de date sau echipamentul terminal cu care
comunică Aceasta interfaţă este situată icircntr-un nod poartă (gateway) GPRS similar
situaţiei din GSM unde locul ei este GMSC
Teleserviciul fundamental oferit de GPRS este cel de transport de date şi este detaliat
mai jos Un alt teleserviciu oferit de GPRS este transmisia şi recepţia de mesaje scurte (SMS)
Astfel pe de o parte capacitatea de transmisie a mesajelor scurte va creşte iar pe de alta
parte reţeaua de semnalizări pe care se transmit icircn GSM aceste mesaje nu va mai fi icircncărcată
şi cu mesaje scurte ce vin sau pleacă de la la terminalele mobile GPRS
Servicii GPRS de transport
Sunt definite doua categorii de teleservicii de transport
servicii punct-la-punct (PTP ndashPoint-to-Point)
servicii punct la multipunct (PTM-Point-to-Multipoint)
A Serviciul PTP
Serviciul punct la punct (PTP) [GSM 0260] permite transmiterea de pachete de date
icircntre doi utilizatori Este implementat icircn GPRS faza 1 Abonatul care a iniţiat serviciul se
numeşte solicitant (service requester) Partenerul său se numeşte receptor al serviciului
(service receiver)
Serviciul PTP poate fi solicitat fie de la terminalul mobil GPRS fie de la un
echipament situat icircntr-o reţea de date fixă (IP X25) Serviciul PTP poate fi oferit de
asemenea icircntre doi utilizatori mobili GPRS
Serviciul punct-la punct poate fi la racircndul sau de două tipuri
PTP fără conexiune (PTP-CLNS ndash PTP Connectinnless Network Service)
PTP orientat pe conexiune (PTP-CONS ndashPTP Connection Orientated Network
Network Service)
PTP-CLNS este un serviciu de tip datagramă ce utilizează comutaţia de pachete fără
conexiune Este util icircn cazul aplicaţiilor ce generează trafic icircn rafale şi are că scop asigurarea
interoperării cu reţele IP
PTP-CONS este un serviciu de tip circuit virtual ce utilizează comutaţia de pachete
orientata pe conexiune Icircntre cei doi utilizatori se stabileşte un circuit virtual pentru o perioadă
25
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ce poate varia de la cacircteva secunde la ore Este util atacirct pentru aplicaţii ce generează trafic icircn
rafale cacirct şi pentru aplicaţiile interactive Are că scop asigurarea interoperării cu reţele X25 şi
derularea peste GPRS a aplicaţiilor bazate pe protocolul OSI CONS(Connection Orientated
Network Protocol)
O reţea GPRS trebuie să asigure menţinerea circuitului virtual la trecerea dintr-o
celulă icircn alta dar numai icircn interiorul aceleiaşi reţele GPRS-PLMN La trecerea terminalului
mobil icircntr-o altă reţea sau icircn cazul căderii legăturii radio circuitul virtual va fi eliberat Pentru
ambele tipuri de servicii pe interfaţa radio se poate opera fie cu confirmare fie fără
confirmare a transportului de date
B Serviciul PTM
Serviciul punct la multipunct (PTM) permite transmiterea de pachete de date de la un
utilizator către mai mulţi utilizatori El este implementat icircn faza a doua a GPRS O
comunicaţie PTM se stabileşte icircntre un furnizor de servicii (ce poate fi situat icircn afară reţelei
GSM) şi un grup de terminale GPRS Şi serviciul PTM este un serviciu ce se prezintă icircn două
variante
PTMndash multidistribuţie (PTM Multicast)
PTM- grup (PTM-G--PTMGroup)
Serviciul de transport PTM-M permite transmiterea pachetelor de date icircntr-o arie
geografică dată (celulă grup de celule) fără confirmare Receptorii serviciului sunt fie toţi
abonaţii care se găsesc icircn acea zonă fie un grup icircnchis de utilizatori
Icircn cazul PTM-G receptorul serviciului este un grup predefinit de utilizatori Pachetele de
date vor fi trimise către toţi membrii grupului indiferent de aria geografică unde se găsesc
aceştia Este posibilă şi transmiterea doar către acei membri care se găsesc icircn anumite zone
geografice Transmisia poate fi şi cu confirmare
Serviciile suplimentare
Printre serviciile suplimentare avute icircn vedere icircntr-un prim stadiu se numără
redirecţionarea necondiţionată a apelurilor redirecţionarea cacircnd abonatul nu este accesibil şi
definirea de grupuri icircnchise de utilizatori In afară de aceste servicii recomandarea GSM
0260 descrie posibilitatea oferirii de servicii adiţionale cum sunt accesarea bazelor de date
servicii de mesagerie validări de cărţi de credit servicii de monitorizare electronică tranzacţii
electronice etc
26
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
244 Arhitectura GPRS
GPRS este o soluţie pentru operatori deoarece nu necesită modificări substanţiale icircn
reţeaua GSM Aşa cum se observă icircn figura 72 reţeaua nucleu a GPRS operează icircn paralel
cu GSM-NSS
Figura 23 Arhitectura reţelei GPRS
25 LabWindowsCVI
La dipecer am considerat un calculator desktop sau laptop pe care va rula o aplicaţie
de monitorizare a datelor măsurate implementată icircn LabWindowsCVI
LabWindowsCVI este o platformă pentru dezvoltare de software cu orientare pe
aplicaţii de instrumentaţie După cum se deduce din denumirea sa (CVI ndash C for Virtual
Instrumentation) limbajul acceptat este ANSI C cu extensii specifice CVI ne pune la
dispoziţie un mediu interactiv de dezvoltare a unor aplicaţii pentru sistemul de operare
Windows Icircmbină deci avantajele programării de tip vizual cu avantajele simplităţii şi
flexibilităţii limbajului C Deşi a fost creat special pentru aplicaţii de instrumentaţie şi control
27
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
multiplele lui facilităţi icircl fac capabil să suporte şi dezvoltarea unor aplicaţii de mărime medie
care să fie de altă factură Fiecare funcţie de bibliotecă din cadrul acestui mediu are o interfaţă
specializată numită panoul funcţiei (function panel) care permite
bull Help on-line
bull Selectare şi declarare de variabile sau constante necesare
bull Execuţie interactivă
bull Inserarea funcţiei editate icircntr-un text sursă
Mediul este extrem de flexibil permiţacircnd interfaţarea bidirecţională cu alte compilatoare de
C sau C++ De asemenea se pot folosi şi DLL-uri
Puterea mediului LabWindowsCVI este dată de bibliotecile puse la dispoziţia
programatorului acestea conţinacircnd funcţii pentru implementarea diverselor faze care conduc
la o aplicaţie din domeniul achiziţiei de date sau a controlului automat
Pentru achiziţia de date există următoarele biblioteci specializate
bull de instrumente
bull pentru interfaţa GPIBGPIB 4882 (General Purpose Interface Bus)
bull pentru achiziţie de date
bull pentru operaţii IO icircn cazul achiziţiei de date
bull pentru interfaţa serială RS232
bull pentru sistemul VXI
Biblioteci specializate pentru analiza datelor
bull pentru IO
bull pentru formatarea specială
bull pentru analiză
bull pentru analiză avansată
Biblioteci specializate pentru vizualizare date
bull pentru crearea unei interfeţe utilizator de tip vizual
Biblioteci specializate pentru lucrul icircn reţea şi comunicarea icircntre diverse aplicaţii
bull pentru DDE (Dynamic Data Exchange)
bull pentru TCP (Transmision Control Protocol)
bull pentru sistemul X de sub Unix
Icircn afară de acestea mai există o bibliotecă specială numită biblioteca de instrumente
care conţine drivere şi sursele lor pentru osciloscoape multimetre şi generatoare de funcţii
De asemenea există posibilitatea creării unui instrument propriu Biblioteca pentru interfaţa
28
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cu utilizatorul conţine funcţiile necesare creării unui GUI (Graphical User Interface =
Interfaţă grafică cu utilizatorul) după necesităţi
Structura generică a unei aplicaţii dezvoltate sub CVI
Un proiect complet pentru una din clasele de aplicaţii specifice mediului CVI are
următoarele componente generice
bull interfaţa cu utilizatorul
bull partea de control a aplicaţiei
bull partea specializată pentru achiziţia datelor
bull partea specializată icircn analiza respectivelor date
Mai jos prezentăm o schemă generică a aplicaţiilor CVI
Figura 24
Tipuri de fişiere folosite icircn cadrul CVI
PRJ se referă la fişiere de tip proiect
UIR se referă la fişiere care conţin descrierea unei interfeţe grafice cu utilizatorul
C fişiere sursă
H fişiere header
FP fişiere care reţin descrierea unui instrument
LIB fişiere bibliotecă
DLL fişiere link-editate pentru apel dinamic
OBJ fişiere obiect
29
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a unora dintre meniurile şi ferestrele mediului de dezvoltare CVI
Fereastra proiect
Prezentăm mai jos doar informaţiile suplimentare faţă de o fereastră proiect standard
Pe lacircngă datele curente despre fiecare fişier inclus icircn proiect acesta mai are precizat şi unul
sau mai mulţi din următorii indici
- I indică faptul că respectivul fişier conţine descrierea unui driver de instrument
- S faptul că s-au făcut modificări icircn fişierul respectiv şi deci trebuie salvat
- C indică obligativitatea compilării respectivului fişier icircnainte de rularea aplicaţiei
- indică faptul că fişierul este deschis icircntr-o fereastră de editare
- indică ca acest fişier nu este deschis
Aplicaţii consolă
Pentru aplicaţiile tip consolă clasice C unde se folosesc pentru IO funcţiile scanf şi
printf vizualizarea ieşirii icircn mod text a acestora se va face icircntr-o fereastră specială numită
ldquoStandard InputOutput Windowrdquo
Observaţie Dacă se va programa icircn acest mod trebuie activată opţiunea ldquoBring Standard
InputOtput to front whenever modifyrdquo din Environment ce aparţine meniului Options
Generatorul interactiv de aplicaţii
Butoanele directe ale editorului de interfeţe cu utilizatorul
folosit la selectare mutare şi dimensionare obiecte
utilizat pentru a modifica textul asociat cu obiectele din UIR folosind facilităţile de
etichetare
folosit pentru colorarea obiectelor Este suficientă o apăsare pe butonul din dreapta a
mouse-ului şi va colora automat obiectul selectat cu culoarea curentă
oferă facilităţi de operare Atunci cacircnd este activat evenimentele vor fi afişate icircn partea
dreaptă a barei de facilităţi
30
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a cacirctorva din meniurile mai importante ale generatorului
Menu Bars activează cutia de dialog care ne prezintă toate barele de meniu definite deja de
programator
Figura 25
Create apelează fereastra Edit Menu Bar pentru a crea o nouă bară de meniuri
Edit apelează fereastra Edit Menu Bar pentru a modifica o bară de meniuri existentă
Fereastra Edit Menu Bar(fig26) permite specificarea sau modificarea caracteristicilor
unei bare de meniuri icircn curs de creare sau care există deja
31
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 26
Menu Bar Constant Prefix este identificatorul intern al respectivei bare de meniuri Acesta
va fi folosit de funcţia LoadMenuBar pentru icircncărcarea icircn memorie a parametrilor care conţin
această bară Va fi definit automat icircn fişierul header din scheletul de aplicaţie
Item se referă la numele meniului curentsubmeniucomandă de meniu Dacă icircn faţa primei
litere a unui element din meniu se adaugă 2 ldquounderscorerdquo la execuţie acesta va putea fi
selectat prin combinaţia Alt+prima literă
Constant name este alipit la Menu Bar Constant Prefix pentru a se genera identificatorul
elementului curent Este folosit de funcţii ca GetMenuBarAttribute sau SetMenuBarAttribute
De asemenea acest identificator este returnat de GetUserEvent atunci cacircnd apare un
eveniment generat de o comandă a meniului
Callback Function Permite specificarea numelui unei funcţii de răspuns care va fi apelată
automat la activarea respectivului element Folosirea ei este opţională
32
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ModifierKeyShortcutKey se combină pentru a ataşa o cheie ldquohotrdquo pentru elementul
curent
buton ce permite coboracircrea icircn interiorul unei ierarhii de meniuri
buton ce permite urcarea icircn interiorul unei ierarhii de meniuri
Panouri
După cum am spus sunt echivalentul ferestrelor din programarea Windows Pentru a le crea
Create1048774Panel ne pune la dispoziţie un nou panou icircn cadrul UIR-ului curent Prin dublu
ldquoclickrdquo pe acesta se va intra in fereastra de editare a caracteristicilor panoului Această
fereastră este prezentată mai jos
Figura 27
La partea de Menu Bar se poate specifica o bară din cele deja create icircn cazul dezvoltării
respectivei interfeţe
Restul parametrilor au fost discutaţi anterior sau sunt cunoscuţi din programarea Windows
33
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Crearea controalelor
Exceptacircnd diferenţele care apar funcţie de destinaţia acestora există o serie de parametri
comuni fiecărui control pe care icircl creăm Mai jos prezentăm fereastra care apare de exemplu
la crearea unui control de tip numeric şi anume un buton
Figura 28
Se observă că identificatorul intern şi posibilitatea de ataşare a unei funcţii de răspuns
rămacircne De asemenea o serie de informaţii specifice părţii de etichetare Icircn plus apar
specificaţii privind modul de afişare a datelor şi limitele icircntre care acestea pot fi variate prin
intermediul acestui control
34
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
TAB ORDER
Fiecare control de pe un panou activ are o poziţie icircn ordinea de salt prin intermediul
unui tab Această ordine precizează care va fi următorul control ce va fi activat icircn cazul icircn
care utilizatorul apasă Tab sau Shift+Tab Implicit acestea sunt adăugate exact icircn ordinea
creării lor de către programator Numai că nu icircntotdeauna aceasta este ordinea de salt dorită a
fi activă la terminarea aplicaţiei Icircn aceste condiţii secvenţa Edit1048774Tab Order ne va activa un
panou specializat pentru aceasta
Figura 29
noua formă de cursor activă icircn interiorul ferestrei Prin apăsarea pe un control oarecare i
se
poate modifica ordinea de activare
specifică faptul că se acceptă noua ordine de apelare
se iese cu păstrarea vechii ordini
Find UIR Objects
O altă facilitate a editorului este Find UIR Objects care aparţine meniului View Icircn
cadrul unor proiecte mari se dovedeşte a fi extrem de utilă
35
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 210
După cum se observă ne permite căutarea după dorinţă a unui nume icircn diverse categorii de
obiecte ale interfeţei cu utilizatorul
GENERATE
Este meniul folosit pentru generarea fie a icircntregului cod schelet fie numai a codului
corespunzător unui obiect proaspăt introdus icircntr-un UIR
Secvenţa Code1048774Generate1048774AllCode va genera codul schelet pentru aplicaţie Acesta va
conţine şi un ldquoswitchrdquo pentru tratarea evenimentelor Alegerea evenimentelor care vor fi
automat introduse se face din Code1048774Preferences
MENIUL ARRANGE
Icircncă de la primele aplicaţii vom observa că una din operaţiile mari consumatoare de
timp este aranjarea controalelor icircn panou după specificarea caracteristicilor acestora Pentru a
evita acest lucru CVI a fost prevăzut cu o serie de facilităţi de aranjare automată pe care le
vom prezenta mai jos
Figura 211
Top Edges asigură spaţiere verticală icircntre partea superioară a controalelor Cel mai de
sus şi cel mai de jos control sunt considerate puncte de referinţă
36
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Vertical Centers asigură spaţiere verticală icircntre centrele controalelor Cel mai de sus
şi cel mai de jos control sunt considerate puncte de referinţă
Bottom Edges asigură spaţiere verticală icircntre partea inferioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Vertical Gap asigură spaţiere verticală icircntre partea superioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Left Edges setează spaţii orizontale egale icircntre marginile din stacircnga ale controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Centers setează spaţii orizontale egale icircntre centrele controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Right Edges setează spaţii orizontale egale icircntre marginile din dreapta ale
controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Gap spaţiere orizontală icircntre controale Cel mai de sus şi cel mai de jos
control sunt considerate puncte de referinţă
Horizontal Compress minimizează spaţiile pe orizontală dintre controale şi elimină
orice spaţiu dintre ele
Distribute Vertical Centers
Comanda Distribute realizează la apel ultima opţiune selectată din lista prezentată
mai sus
37
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ce poate varia de la cacircteva secunde la ore Este util atacirct pentru aplicaţii ce generează trafic icircn
rafale cacirct şi pentru aplicaţiile interactive Are că scop asigurarea interoperării cu reţele X25 şi
derularea peste GPRS a aplicaţiilor bazate pe protocolul OSI CONS(Connection Orientated
Network Protocol)
O reţea GPRS trebuie să asigure menţinerea circuitului virtual la trecerea dintr-o
celulă icircn alta dar numai icircn interiorul aceleiaşi reţele GPRS-PLMN La trecerea terminalului
mobil icircntr-o altă reţea sau icircn cazul căderii legăturii radio circuitul virtual va fi eliberat Pentru
ambele tipuri de servicii pe interfaţa radio se poate opera fie cu confirmare fie fără
confirmare a transportului de date
B Serviciul PTM
Serviciul punct la multipunct (PTM) permite transmiterea de pachete de date de la un
utilizator către mai mulţi utilizatori El este implementat icircn faza a doua a GPRS O
comunicaţie PTM se stabileşte icircntre un furnizor de servicii (ce poate fi situat icircn afară reţelei
GSM) şi un grup de terminale GPRS Şi serviciul PTM este un serviciu ce se prezintă icircn două
variante
PTMndash multidistribuţie (PTM Multicast)
PTM- grup (PTM-G--PTMGroup)
Serviciul de transport PTM-M permite transmiterea pachetelor de date icircntr-o arie
geografică dată (celulă grup de celule) fără confirmare Receptorii serviciului sunt fie toţi
abonaţii care se găsesc icircn acea zonă fie un grup icircnchis de utilizatori
Icircn cazul PTM-G receptorul serviciului este un grup predefinit de utilizatori Pachetele de
date vor fi trimise către toţi membrii grupului indiferent de aria geografică unde se găsesc
aceştia Este posibilă şi transmiterea doar către acei membri care se găsesc icircn anumite zone
geografice Transmisia poate fi şi cu confirmare
Serviciile suplimentare
Printre serviciile suplimentare avute icircn vedere icircntr-un prim stadiu se numără
redirecţionarea necondiţionată a apelurilor redirecţionarea cacircnd abonatul nu este accesibil şi
definirea de grupuri icircnchise de utilizatori In afară de aceste servicii recomandarea GSM
0260 descrie posibilitatea oferirii de servicii adiţionale cum sunt accesarea bazelor de date
servicii de mesagerie validări de cărţi de credit servicii de monitorizare electronică tranzacţii
electronice etc
26
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
244 Arhitectura GPRS
GPRS este o soluţie pentru operatori deoarece nu necesită modificări substanţiale icircn
reţeaua GSM Aşa cum se observă icircn figura 72 reţeaua nucleu a GPRS operează icircn paralel
cu GSM-NSS
Figura 23 Arhitectura reţelei GPRS
25 LabWindowsCVI
La dipecer am considerat un calculator desktop sau laptop pe care va rula o aplicaţie
de monitorizare a datelor măsurate implementată icircn LabWindowsCVI
LabWindowsCVI este o platformă pentru dezvoltare de software cu orientare pe
aplicaţii de instrumentaţie După cum se deduce din denumirea sa (CVI ndash C for Virtual
Instrumentation) limbajul acceptat este ANSI C cu extensii specifice CVI ne pune la
dispoziţie un mediu interactiv de dezvoltare a unor aplicaţii pentru sistemul de operare
Windows Icircmbină deci avantajele programării de tip vizual cu avantajele simplităţii şi
flexibilităţii limbajului C Deşi a fost creat special pentru aplicaţii de instrumentaţie şi control
27
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
multiplele lui facilităţi icircl fac capabil să suporte şi dezvoltarea unor aplicaţii de mărime medie
care să fie de altă factură Fiecare funcţie de bibliotecă din cadrul acestui mediu are o interfaţă
specializată numită panoul funcţiei (function panel) care permite
bull Help on-line
bull Selectare şi declarare de variabile sau constante necesare
bull Execuţie interactivă
bull Inserarea funcţiei editate icircntr-un text sursă
Mediul este extrem de flexibil permiţacircnd interfaţarea bidirecţională cu alte compilatoare de
C sau C++ De asemenea se pot folosi şi DLL-uri
Puterea mediului LabWindowsCVI este dată de bibliotecile puse la dispoziţia
programatorului acestea conţinacircnd funcţii pentru implementarea diverselor faze care conduc
la o aplicaţie din domeniul achiziţiei de date sau a controlului automat
Pentru achiziţia de date există următoarele biblioteci specializate
bull de instrumente
bull pentru interfaţa GPIBGPIB 4882 (General Purpose Interface Bus)
bull pentru achiziţie de date
bull pentru operaţii IO icircn cazul achiziţiei de date
bull pentru interfaţa serială RS232
bull pentru sistemul VXI
Biblioteci specializate pentru analiza datelor
bull pentru IO
bull pentru formatarea specială
bull pentru analiză
bull pentru analiză avansată
Biblioteci specializate pentru vizualizare date
bull pentru crearea unei interfeţe utilizator de tip vizual
Biblioteci specializate pentru lucrul icircn reţea şi comunicarea icircntre diverse aplicaţii
bull pentru DDE (Dynamic Data Exchange)
bull pentru TCP (Transmision Control Protocol)
bull pentru sistemul X de sub Unix
Icircn afară de acestea mai există o bibliotecă specială numită biblioteca de instrumente
care conţine drivere şi sursele lor pentru osciloscoape multimetre şi generatoare de funcţii
De asemenea există posibilitatea creării unui instrument propriu Biblioteca pentru interfaţa
28
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cu utilizatorul conţine funcţiile necesare creării unui GUI (Graphical User Interface =
Interfaţă grafică cu utilizatorul) după necesităţi
Structura generică a unei aplicaţii dezvoltate sub CVI
Un proiect complet pentru una din clasele de aplicaţii specifice mediului CVI are
următoarele componente generice
bull interfaţa cu utilizatorul
bull partea de control a aplicaţiei
bull partea specializată pentru achiziţia datelor
bull partea specializată icircn analiza respectivelor date
Mai jos prezentăm o schemă generică a aplicaţiilor CVI
Figura 24
Tipuri de fişiere folosite icircn cadrul CVI
PRJ se referă la fişiere de tip proiect
UIR se referă la fişiere care conţin descrierea unei interfeţe grafice cu utilizatorul
C fişiere sursă
H fişiere header
FP fişiere care reţin descrierea unui instrument
LIB fişiere bibliotecă
DLL fişiere link-editate pentru apel dinamic
OBJ fişiere obiect
29
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a unora dintre meniurile şi ferestrele mediului de dezvoltare CVI
Fereastra proiect
Prezentăm mai jos doar informaţiile suplimentare faţă de o fereastră proiect standard
Pe lacircngă datele curente despre fiecare fişier inclus icircn proiect acesta mai are precizat şi unul
sau mai mulţi din următorii indici
- I indică faptul că respectivul fişier conţine descrierea unui driver de instrument
- S faptul că s-au făcut modificări icircn fişierul respectiv şi deci trebuie salvat
- C indică obligativitatea compilării respectivului fişier icircnainte de rularea aplicaţiei
- indică faptul că fişierul este deschis icircntr-o fereastră de editare
- indică ca acest fişier nu este deschis
Aplicaţii consolă
Pentru aplicaţiile tip consolă clasice C unde se folosesc pentru IO funcţiile scanf şi
printf vizualizarea ieşirii icircn mod text a acestora se va face icircntr-o fereastră specială numită
ldquoStandard InputOutput Windowrdquo
Observaţie Dacă se va programa icircn acest mod trebuie activată opţiunea ldquoBring Standard
InputOtput to front whenever modifyrdquo din Environment ce aparţine meniului Options
Generatorul interactiv de aplicaţii
Butoanele directe ale editorului de interfeţe cu utilizatorul
folosit la selectare mutare şi dimensionare obiecte
utilizat pentru a modifica textul asociat cu obiectele din UIR folosind facilităţile de
etichetare
folosit pentru colorarea obiectelor Este suficientă o apăsare pe butonul din dreapta a
mouse-ului şi va colora automat obiectul selectat cu culoarea curentă
oferă facilităţi de operare Atunci cacircnd este activat evenimentele vor fi afişate icircn partea
dreaptă a barei de facilităţi
30
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a cacirctorva din meniurile mai importante ale generatorului
Menu Bars activează cutia de dialog care ne prezintă toate barele de meniu definite deja de
programator
Figura 25
Create apelează fereastra Edit Menu Bar pentru a crea o nouă bară de meniuri
Edit apelează fereastra Edit Menu Bar pentru a modifica o bară de meniuri existentă
Fereastra Edit Menu Bar(fig26) permite specificarea sau modificarea caracteristicilor
unei bare de meniuri icircn curs de creare sau care există deja
31
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 26
Menu Bar Constant Prefix este identificatorul intern al respectivei bare de meniuri Acesta
va fi folosit de funcţia LoadMenuBar pentru icircncărcarea icircn memorie a parametrilor care conţin
această bară Va fi definit automat icircn fişierul header din scheletul de aplicaţie
Item se referă la numele meniului curentsubmeniucomandă de meniu Dacă icircn faţa primei
litere a unui element din meniu se adaugă 2 ldquounderscorerdquo la execuţie acesta va putea fi
selectat prin combinaţia Alt+prima literă
Constant name este alipit la Menu Bar Constant Prefix pentru a se genera identificatorul
elementului curent Este folosit de funcţii ca GetMenuBarAttribute sau SetMenuBarAttribute
De asemenea acest identificator este returnat de GetUserEvent atunci cacircnd apare un
eveniment generat de o comandă a meniului
Callback Function Permite specificarea numelui unei funcţii de răspuns care va fi apelată
automat la activarea respectivului element Folosirea ei este opţională
32
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ModifierKeyShortcutKey se combină pentru a ataşa o cheie ldquohotrdquo pentru elementul
curent
buton ce permite coboracircrea icircn interiorul unei ierarhii de meniuri
buton ce permite urcarea icircn interiorul unei ierarhii de meniuri
Panouri
După cum am spus sunt echivalentul ferestrelor din programarea Windows Pentru a le crea
Create1048774Panel ne pune la dispoziţie un nou panou icircn cadrul UIR-ului curent Prin dublu
ldquoclickrdquo pe acesta se va intra in fereastra de editare a caracteristicilor panoului Această
fereastră este prezentată mai jos
Figura 27
La partea de Menu Bar se poate specifica o bară din cele deja create icircn cazul dezvoltării
respectivei interfeţe
Restul parametrilor au fost discutaţi anterior sau sunt cunoscuţi din programarea Windows
33
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Crearea controalelor
Exceptacircnd diferenţele care apar funcţie de destinaţia acestora există o serie de parametri
comuni fiecărui control pe care icircl creăm Mai jos prezentăm fereastra care apare de exemplu
la crearea unui control de tip numeric şi anume un buton
Figura 28
Se observă că identificatorul intern şi posibilitatea de ataşare a unei funcţii de răspuns
rămacircne De asemenea o serie de informaţii specifice părţii de etichetare Icircn plus apar
specificaţii privind modul de afişare a datelor şi limitele icircntre care acestea pot fi variate prin
intermediul acestui control
34
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
TAB ORDER
Fiecare control de pe un panou activ are o poziţie icircn ordinea de salt prin intermediul
unui tab Această ordine precizează care va fi următorul control ce va fi activat icircn cazul icircn
care utilizatorul apasă Tab sau Shift+Tab Implicit acestea sunt adăugate exact icircn ordinea
creării lor de către programator Numai că nu icircntotdeauna aceasta este ordinea de salt dorită a
fi activă la terminarea aplicaţiei Icircn aceste condiţii secvenţa Edit1048774Tab Order ne va activa un
panou specializat pentru aceasta
Figura 29
noua formă de cursor activă icircn interiorul ferestrei Prin apăsarea pe un control oarecare i
se
poate modifica ordinea de activare
specifică faptul că se acceptă noua ordine de apelare
se iese cu păstrarea vechii ordini
Find UIR Objects
O altă facilitate a editorului este Find UIR Objects care aparţine meniului View Icircn
cadrul unor proiecte mari se dovedeşte a fi extrem de utilă
35
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 210
După cum se observă ne permite căutarea după dorinţă a unui nume icircn diverse categorii de
obiecte ale interfeţei cu utilizatorul
GENERATE
Este meniul folosit pentru generarea fie a icircntregului cod schelet fie numai a codului
corespunzător unui obiect proaspăt introdus icircntr-un UIR
Secvenţa Code1048774Generate1048774AllCode va genera codul schelet pentru aplicaţie Acesta va
conţine şi un ldquoswitchrdquo pentru tratarea evenimentelor Alegerea evenimentelor care vor fi
automat introduse se face din Code1048774Preferences
MENIUL ARRANGE
Icircncă de la primele aplicaţii vom observa că una din operaţiile mari consumatoare de
timp este aranjarea controalelor icircn panou după specificarea caracteristicilor acestora Pentru a
evita acest lucru CVI a fost prevăzut cu o serie de facilităţi de aranjare automată pe care le
vom prezenta mai jos
Figura 211
Top Edges asigură spaţiere verticală icircntre partea superioară a controalelor Cel mai de
sus şi cel mai de jos control sunt considerate puncte de referinţă
36
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Vertical Centers asigură spaţiere verticală icircntre centrele controalelor Cel mai de sus
şi cel mai de jos control sunt considerate puncte de referinţă
Bottom Edges asigură spaţiere verticală icircntre partea inferioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Vertical Gap asigură spaţiere verticală icircntre partea superioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Left Edges setează spaţii orizontale egale icircntre marginile din stacircnga ale controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Centers setează spaţii orizontale egale icircntre centrele controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Right Edges setează spaţii orizontale egale icircntre marginile din dreapta ale
controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Gap spaţiere orizontală icircntre controale Cel mai de sus şi cel mai de jos
control sunt considerate puncte de referinţă
Horizontal Compress minimizează spaţiile pe orizontală dintre controale şi elimină
orice spaţiu dintre ele
Distribute Vertical Centers
Comanda Distribute realizează la apel ultima opţiune selectată din lista prezentată
mai sus
37
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
244 Arhitectura GPRS
GPRS este o soluţie pentru operatori deoarece nu necesită modificări substanţiale icircn
reţeaua GSM Aşa cum se observă icircn figura 72 reţeaua nucleu a GPRS operează icircn paralel
cu GSM-NSS
Figura 23 Arhitectura reţelei GPRS
25 LabWindowsCVI
La dipecer am considerat un calculator desktop sau laptop pe care va rula o aplicaţie
de monitorizare a datelor măsurate implementată icircn LabWindowsCVI
LabWindowsCVI este o platformă pentru dezvoltare de software cu orientare pe
aplicaţii de instrumentaţie După cum se deduce din denumirea sa (CVI ndash C for Virtual
Instrumentation) limbajul acceptat este ANSI C cu extensii specifice CVI ne pune la
dispoziţie un mediu interactiv de dezvoltare a unor aplicaţii pentru sistemul de operare
Windows Icircmbină deci avantajele programării de tip vizual cu avantajele simplităţii şi
flexibilităţii limbajului C Deşi a fost creat special pentru aplicaţii de instrumentaţie şi control
27
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
multiplele lui facilităţi icircl fac capabil să suporte şi dezvoltarea unor aplicaţii de mărime medie
care să fie de altă factură Fiecare funcţie de bibliotecă din cadrul acestui mediu are o interfaţă
specializată numită panoul funcţiei (function panel) care permite
bull Help on-line
bull Selectare şi declarare de variabile sau constante necesare
bull Execuţie interactivă
bull Inserarea funcţiei editate icircntr-un text sursă
Mediul este extrem de flexibil permiţacircnd interfaţarea bidirecţională cu alte compilatoare de
C sau C++ De asemenea se pot folosi şi DLL-uri
Puterea mediului LabWindowsCVI este dată de bibliotecile puse la dispoziţia
programatorului acestea conţinacircnd funcţii pentru implementarea diverselor faze care conduc
la o aplicaţie din domeniul achiziţiei de date sau a controlului automat
Pentru achiziţia de date există următoarele biblioteci specializate
bull de instrumente
bull pentru interfaţa GPIBGPIB 4882 (General Purpose Interface Bus)
bull pentru achiziţie de date
bull pentru operaţii IO icircn cazul achiziţiei de date
bull pentru interfaţa serială RS232
bull pentru sistemul VXI
Biblioteci specializate pentru analiza datelor
bull pentru IO
bull pentru formatarea specială
bull pentru analiză
bull pentru analiză avansată
Biblioteci specializate pentru vizualizare date
bull pentru crearea unei interfeţe utilizator de tip vizual
Biblioteci specializate pentru lucrul icircn reţea şi comunicarea icircntre diverse aplicaţii
bull pentru DDE (Dynamic Data Exchange)
bull pentru TCP (Transmision Control Protocol)
bull pentru sistemul X de sub Unix
Icircn afară de acestea mai există o bibliotecă specială numită biblioteca de instrumente
care conţine drivere şi sursele lor pentru osciloscoape multimetre şi generatoare de funcţii
De asemenea există posibilitatea creării unui instrument propriu Biblioteca pentru interfaţa
28
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cu utilizatorul conţine funcţiile necesare creării unui GUI (Graphical User Interface =
Interfaţă grafică cu utilizatorul) după necesităţi
Structura generică a unei aplicaţii dezvoltate sub CVI
Un proiect complet pentru una din clasele de aplicaţii specifice mediului CVI are
următoarele componente generice
bull interfaţa cu utilizatorul
bull partea de control a aplicaţiei
bull partea specializată pentru achiziţia datelor
bull partea specializată icircn analiza respectivelor date
Mai jos prezentăm o schemă generică a aplicaţiilor CVI
Figura 24
Tipuri de fişiere folosite icircn cadrul CVI
PRJ se referă la fişiere de tip proiect
UIR se referă la fişiere care conţin descrierea unei interfeţe grafice cu utilizatorul
C fişiere sursă
H fişiere header
FP fişiere care reţin descrierea unui instrument
LIB fişiere bibliotecă
DLL fişiere link-editate pentru apel dinamic
OBJ fişiere obiect
29
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a unora dintre meniurile şi ferestrele mediului de dezvoltare CVI
Fereastra proiect
Prezentăm mai jos doar informaţiile suplimentare faţă de o fereastră proiect standard
Pe lacircngă datele curente despre fiecare fişier inclus icircn proiect acesta mai are precizat şi unul
sau mai mulţi din următorii indici
- I indică faptul că respectivul fişier conţine descrierea unui driver de instrument
- S faptul că s-au făcut modificări icircn fişierul respectiv şi deci trebuie salvat
- C indică obligativitatea compilării respectivului fişier icircnainte de rularea aplicaţiei
- indică faptul că fişierul este deschis icircntr-o fereastră de editare
- indică ca acest fişier nu este deschis
Aplicaţii consolă
Pentru aplicaţiile tip consolă clasice C unde se folosesc pentru IO funcţiile scanf şi
printf vizualizarea ieşirii icircn mod text a acestora se va face icircntr-o fereastră specială numită
ldquoStandard InputOutput Windowrdquo
Observaţie Dacă se va programa icircn acest mod trebuie activată opţiunea ldquoBring Standard
InputOtput to front whenever modifyrdquo din Environment ce aparţine meniului Options
Generatorul interactiv de aplicaţii
Butoanele directe ale editorului de interfeţe cu utilizatorul
folosit la selectare mutare şi dimensionare obiecte
utilizat pentru a modifica textul asociat cu obiectele din UIR folosind facilităţile de
etichetare
folosit pentru colorarea obiectelor Este suficientă o apăsare pe butonul din dreapta a
mouse-ului şi va colora automat obiectul selectat cu culoarea curentă
oferă facilităţi de operare Atunci cacircnd este activat evenimentele vor fi afişate icircn partea
dreaptă a barei de facilităţi
30
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a cacirctorva din meniurile mai importante ale generatorului
Menu Bars activează cutia de dialog care ne prezintă toate barele de meniu definite deja de
programator
Figura 25
Create apelează fereastra Edit Menu Bar pentru a crea o nouă bară de meniuri
Edit apelează fereastra Edit Menu Bar pentru a modifica o bară de meniuri existentă
Fereastra Edit Menu Bar(fig26) permite specificarea sau modificarea caracteristicilor
unei bare de meniuri icircn curs de creare sau care există deja
31
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 26
Menu Bar Constant Prefix este identificatorul intern al respectivei bare de meniuri Acesta
va fi folosit de funcţia LoadMenuBar pentru icircncărcarea icircn memorie a parametrilor care conţin
această bară Va fi definit automat icircn fişierul header din scheletul de aplicaţie
Item se referă la numele meniului curentsubmeniucomandă de meniu Dacă icircn faţa primei
litere a unui element din meniu se adaugă 2 ldquounderscorerdquo la execuţie acesta va putea fi
selectat prin combinaţia Alt+prima literă
Constant name este alipit la Menu Bar Constant Prefix pentru a se genera identificatorul
elementului curent Este folosit de funcţii ca GetMenuBarAttribute sau SetMenuBarAttribute
De asemenea acest identificator este returnat de GetUserEvent atunci cacircnd apare un
eveniment generat de o comandă a meniului
Callback Function Permite specificarea numelui unei funcţii de răspuns care va fi apelată
automat la activarea respectivului element Folosirea ei este opţională
32
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ModifierKeyShortcutKey se combină pentru a ataşa o cheie ldquohotrdquo pentru elementul
curent
buton ce permite coboracircrea icircn interiorul unei ierarhii de meniuri
buton ce permite urcarea icircn interiorul unei ierarhii de meniuri
Panouri
După cum am spus sunt echivalentul ferestrelor din programarea Windows Pentru a le crea
Create1048774Panel ne pune la dispoziţie un nou panou icircn cadrul UIR-ului curent Prin dublu
ldquoclickrdquo pe acesta se va intra in fereastra de editare a caracteristicilor panoului Această
fereastră este prezentată mai jos
Figura 27
La partea de Menu Bar se poate specifica o bară din cele deja create icircn cazul dezvoltării
respectivei interfeţe
Restul parametrilor au fost discutaţi anterior sau sunt cunoscuţi din programarea Windows
33
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Crearea controalelor
Exceptacircnd diferenţele care apar funcţie de destinaţia acestora există o serie de parametri
comuni fiecărui control pe care icircl creăm Mai jos prezentăm fereastra care apare de exemplu
la crearea unui control de tip numeric şi anume un buton
Figura 28
Se observă că identificatorul intern şi posibilitatea de ataşare a unei funcţii de răspuns
rămacircne De asemenea o serie de informaţii specifice părţii de etichetare Icircn plus apar
specificaţii privind modul de afişare a datelor şi limitele icircntre care acestea pot fi variate prin
intermediul acestui control
34
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
TAB ORDER
Fiecare control de pe un panou activ are o poziţie icircn ordinea de salt prin intermediul
unui tab Această ordine precizează care va fi următorul control ce va fi activat icircn cazul icircn
care utilizatorul apasă Tab sau Shift+Tab Implicit acestea sunt adăugate exact icircn ordinea
creării lor de către programator Numai că nu icircntotdeauna aceasta este ordinea de salt dorită a
fi activă la terminarea aplicaţiei Icircn aceste condiţii secvenţa Edit1048774Tab Order ne va activa un
panou specializat pentru aceasta
Figura 29
noua formă de cursor activă icircn interiorul ferestrei Prin apăsarea pe un control oarecare i
se
poate modifica ordinea de activare
specifică faptul că se acceptă noua ordine de apelare
se iese cu păstrarea vechii ordini
Find UIR Objects
O altă facilitate a editorului este Find UIR Objects care aparţine meniului View Icircn
cadrul unor proiecte mari se dovedeşte a fi extrem de utilă
35
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 210
După cum se observă ne permite căutarea după dorinţă a unui nume icircn diverse categorii de
obiecte ale interfeţei cu utilizatorul
GENERATE
Este meniul folosit pentru generarea fie a icircntregului cod schelet fie numai a codului
corespunzător unui obiect proaspăt introdus icircntr-un UIR
Secvenţa Code1048774Generate1048774AllCode va genera codul schelet pentru aplicaţie Acesta va
conţine şi un ldquoswitchrdquo pentru tratarea evenimentelor Alegerea evenimentelor care vor fi
automat introduse se face din Code1048774Preferences
MENIUL ARRANGE
Icircncă de la primele aplicaţii vom observa că una din operaţiile mari consumatoare de
timp este aranjarea controalelor icircn panou după specificarea caracteristicilor acestora Pentru a
evita acest lucru CVI a fost prevăzut cu o serie de facilităţi de aranjare automată pe care le
vom prezenta mai jos
Figura 211
Top Edges asigură spaţiere verticală icircntre partea superioară a controalelor Cel mai de
sus şi cel mai de jos control sunt considerate puncte de referinţă
36
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Vertical Centers asigură spaţiere verticală icircntre centrele controalelor Cel mai de sus
şi cel mai de jos control sunt considerate puncte de referinţă
Bottom Edges asigură spaţiere verticală icircntre partea inferioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Vertical Gap asigură spaţiere verticală icircntre partea superioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Left Edges setează spaţii orizontale egale icircntre marginile din stacircnga ale controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Centers setează spaţii orizontale egale icircntre centrele controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Right Edges setează spaţii orizontale egale icircntre marginile din dreapta ale
controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Gap spaţiere orizontală icircntre controale Cel mai de sus şi cel mai de jos
control sunt considerate puncte de referinţă
Horizontal Compress minimizează spaţiile pe orizontală dintre controale şi elimină
orice spaţiu dintre ele
Distribute Vertical Centers
Comanda Distribute realizează la apel ultima opţiune selectată din lista prezentată
mai sus
37
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
multiplele lui facilităţi icircl fac capabil să suporte şi dezvoltarea unor aplicaţii de mărime medie
care să fie de altă factură Fiecare funcţie de bibliotecă din cadrul acestui mediu are o interfaţă
specializată numită panoul funcţiei (function panel) care permite
bull Help on-line
bull Selectare şi declarare de variabile sau constante necesare
bull Execuţie interactivă
bull Inserarea funcţiei editate icircntr-un text sursă
Mediul este extrem de flexibil permiţacircnd interfaţarea bidirecţională cu alte compilatoare de
C sau C++ De asemenea se pot folosi şi DLL-uri
Puterea mediului LabWindowsCVI este dată de bibliotecile puse la dispoziţia
programatorului acestea conţinacircnd funcţii pentru implementarea diverselor faze care conduc
la o aplicaţie din domeniul achiziţiei de date sau a controlului automat
Pentru achiziţia de date există următoarele biblioteci specializate
bull de instrumente
bull pentru interfaţa GPIBGPIB 4882 (General Purpose Interface Bus)
bull pentru achiziţie de date
bull pentru operaţii IO icircn cazul achiziţiei de date
bull pentru interfaţa serială RS232
bull pentru sistemul VXI
Biblioteci specializate pentru analiza datelor
bull pentru IO
bull pentru formatarea specială
bull pentru analiză
bull pentru analiză avansată
Biblioteci specializate pentru vizualizare date
bull pentru crearea unei interfeţe utilizator de tip vizual
Biblioteci specializate pentru lucrul icircn reţea şi comunicarea icircntre diverse aplicaţii
bull pentru DDE (Dynamic Data Exchange)
bull pentru TCP (Transmision Control Protocol)
bull pentru sistemul X de sub Unix
Icircn afară de acestea mai există o bibliotecă specială numită biblioteca de instrumente
care conţine drivere şi sursele lor pentru osciloscoape multimetre şi generatoare de funcţii
De asemenea există posibilitatea creării unui instrument propriu Biblioteca pentru interfaţa
28
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cu utilizatorul conţine funcţiile necesare creării unui GUI (Graphical User Interface =
Interfaţă grafică cu utilizatorul) după necesităţi
Structura generică a unei aplicaţii dezvoltate sub CVI
Un proiect complet pentru una din clasele de aplicaţii specifice mediului CVI are
următoarele componente generice
bull interfaţa cu utilizatorul
bull partea de control a aplicaţiei
bull partea specializată pentru achiziţia datelor
bull partea specializată icircn analiza respectivelor date
Mai jos prezentăm o schemă generică a aplicaţiilor CVI
Figura 24
Tipuri de fişiere folosite icircn cadrul CVI
PRJ se referă la fişiere de tip proiect
UIR se referă la fişiere care conţin descrierea unei interfeţe grafice cu utilizatorul
C fişiere sursă
H fişiere header
FP fişiere care reţin descrierea unui instrument
LIB fişiere bibliotecă
DLL fişiere link-editate pentru apel dinamic
OBJ fişiere obiect
29
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a unora dintre meniurile şi ferestrele mediului de dezvoltare CVI
Fereastra proiect
Prezentăm mai jos doar informaţiile suplimentare faţă de o fereastră proiect standard
Pe lacircngă datele curente despre fiecare fişier inclus icircn proiect acesta mai are precizat şi unul
sau mai mulţi din următorii indici
- I indică faptul că respectivul fişier conţine descrierea unui driver de instrument
- S faptul că s-au făcut modificări icircn fişierul respectiv şi deci trebuie salvat
- C indică obligativitatea compilării respectivului fişier icircnainte de rularea aplicaţiei
- indică faptul că fişierul este deschis icircntr-o fereastră de editare
- indică ca acest fişier nu este deschis
Aplicaţii consolă
Pentru aplicaţiile tip consolă clasice C unde se folosesc pentru IO funcţiile scanf şi
printf vizualizarea ieşirii icircn mod text a acestora se va face icircntr-o fereastră specială numită
ldquoStandard InputOutput Windowrdquo
Observaţie Dacă se va programa icircn acest mod trebuie activată opţiunea ldquoBring Standard
InputOtput to front whenever modifyrdquo din Environment ce aparţine meniului Options
Generatorul interactiv de aplicaţii
Butoanele directe ale editorului de interfeţe cu utilizatorul
folosit la selectare mutare şi dimensionare obiecte
utilizat pentru a modifica textul asociat cu obiectele din UIR folosind facilităţile de
etichetare
folosit pentru colorarea obiectelor Este suficientă o apăsare pe butonul din dreapta a
mouse-ului şi va colora automat obiectul selectat cu culoarea curentă
oferă facilităţi de operare Atunci cacircnd este activat evenimentele vor fi afişate icircn partea
dreaptă a barei de facilităţi
30
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a cacirctorva din meniurile mai importante ale generatorului
Menu Bars activează cutia de dialog care ne prezintă toate barele de meniu definite deja de
programator
Figura 25
Create apelează fereastra Edit Menu Bar pentru a crea o nouă bară de meniuri
Edit apelează fereastra Edit Menu Bar pentru a modifica o bară de meniuri existentă
Fereastra Edit Menu Bar(fig26) permite specificarea sau modificarea caracteristicilor
unei bare de meniuri icircn curs de creare sau care există deja
31
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 26
Menu Bar Constant Prefix este identificatorul intern al respectivei bare de meniuri Acesta
va fi folosit de funcţia LoadMenuBar pentru icircncărcarea icircn memorie a parametrilor care conţin
această bară Va fi definit automat icircn fişierul header din scheletul de aplicaţie
Item se referă la numele meniului curentsubmeniucomandă de meniu Dacă icircn faţa primei
litere a unui element din meniu se adaugă 2 ldquounderscorerdquo la execuţie acesta va putea fi
selectat prin combinaţia Alt+prima literă
Constant name este alipit la Menu Bar Constant Prefix pentru a se genera identificatorul
elementului curent Este folosit de funcţii ca GetMenuBarAttribute sau SetMenuBarAttribute
De asemenea acest identificator este returnat de GetUserEvent atunci cacircnd apare un
eveniment generat de o comandă a meniului
Callback Function Permite specificarea numelui unei funcţii de răspuns care va fi apelată
automat la activarea respectivului element Folosirea ei este opţională
32
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ModifierKeyShortcutKey se combină pentru a ataşa o cheie ldquohotrdquo pentru elementul
curent
buton ce permite coboracircrea icircn interiorul unei ierarhii de meniuri
buton ce permite urcarea icircn interiorul unei ierarhii de meniuri
Panouri
După cum am spus sunt echivalentul ferestrelor din programarea Windows Pentru a le crea
Create1048774Panel ne pune la dispoziţie un nou panou icircn cadrul UIR-ului curent Prin dublu
ldquoclickrdquo pe acesta se va intra in fereastra de editare a caracteristicilor panoului Această
fereastră este prezentată mai jos
Figura 27
La partea de Menu Bar se poate specifica o bară din cele deja create icircn cazul dezvoltării
respectivei interfeţe
Restul parametrilor au fost discutaţi anterior sau sunt cunoscuţi din programarea Windows
33
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Crearea controalelor
Exceptacircnd diferenţele care apar funcţie de destinaţia acestora există o serie de parametri
comuni fiecărui control pe care icircl creăm Mai jos prezentăm fereastra care apare de exemplu
la crearea unui control de tip numeric şi anume un buton
Figura 28
Se observă că identificatorul intern şi posibilitatea de ataşare a unei funcţii de răspuns
rămacircne De asemenea o serie de informaţii specifice părţii de etichetare Icircn plus apar
specificaţii privind modul de afişare a datelor şi limitele icircntre care acestea pot fi variate prin
intermediul acestui control
34
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
TAB ORDER
Fiecare control de pe un panou activ are o poziţie icircn ordinea de salt prin intermediul
unui tab Această ordine precizează care va fi următorul control ce va fi activat icircn cazul icircn
care utilizatorul apasă Tab sau Shift+Tab Implicit acestea sunt adăugate exact icircn ordinea
creării lor de către programator Numai că nu icircntotdeauna aceasta este ordinea de salt dorită a
fi activă la terminarea aplicaţiei Icircn aceste condiţii secvenţa Edit1048774Tab Order ne va activa un
panou specializat pentru aceasta
Figura 29
noua formă de cursor activă icircn interiorul ferestrei Prin apăsarea pe un control oarecare i
se
poate modifica ordinea de activare
specifică faptul că se acceptă noua ordine de apelare
se iese cu păstrarea vechii ordini
Find UIR Objects
O altă facilitate a editorului este Find UIR Objects care aparţine meniului View Icircn
cadrul unor proiecte mari se dovedeşte a fi extrem de utilă
35
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 210
După cum se observă ne permite căutarea după dorinţă a unui nume icircn diverse categorii de
obiecte ale interfeţei cu utilizatorul
GENERATE
Este meniul folosit pentru generarea fie a icircntregului cod schelet fie numai a codului
corespunzător unui obiect proaspăt introdus icircntr-un UIR
Secvenţa Code1048774Generate1048774AllCode va genera codul schelet pentru aplicaţie Acesta va
conţine şi un ldquoswitchrdquo pentru tratarea evenimentelor Alegerea evenimentelor care vor fi
automat introduse se face din Code1048774Preferences
MENIUL ARRANGE
Icircncă de la primele aplicaţii vom observa că una din operaţiile mari consumatoare de
timp este aranjarea controalelor icircn panou după specificarea caracteristicilor acestora Pentru a
evita acest lucru CVI a fost prevăzut cu o serie de facilităţi de aranjare automată pe care le
vom prezenta mai jos
Figura 211
Top Edges asigură spaţiere verticală icircntre partea superioară a controalelor Cel mai de
sus şi cel mai de jos control sunt considerate puncte de referinţă
36
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Vertical Centers asigură spaţiere verticală icircntre centrele controalelor Cel mai de sus
şi cel mai de jos control sunt considerate puncte de referinţă
Bottom Edges asigură spaţiere verticală icircntre partea inferioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Vertical Gap asigură spaţiere verticală icircntre partea superioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Left Edges setează spaţii orizontale egale icircntre marginile din stacircnga ale controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Centers setează spaţii orizontale egale icircntre centrele controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Right Edges setează spaţii orizontale egale icircntre marginile din dreapta ale
controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Gap spaţiere orizontală icircntre controale Cel mai de sus şi cel mai de jos
control sunt considerate puncte de referinţă
Horizontal Compress minimizează spaţiile pe orizontală dintre controale şi elimină
orice spaţiu dintre ele
Distribute Vertical Centers
Comanda Distribute realizează la apel ultima opţiune selectată din lista prezentată
mai sus
37
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
cu utilizatorul conţine funcţiile necesare creării unui GUI (Graphical User Interface =
Interfaţă grafică cu utilizatorul) după necesităţi
Structura generică a unei aplicaţii dezvoltate sub CVI
Un proiect complet pentru una din clasele de aplicaţii specifice mediului CVI are
următoarele componente generice
bull interfaţa cu utilizatorul
bull partea de control a aplicaţiei
bull partea specializată pentru achiziţia datelor
bull partea specializată icircn analiza respectivelor date
Mai jos prezentăm o schemă generică a aplicaţiilor CVI
Figura 24
Tipuri de fişiere folosite icircn cadrul CVI
PRJ se referă la fişiere de tip proiect
UIR se referă la fişiere care conţin descrierea unei interfeţe grafice cu utilizatorul
C fişiere sursă
H fişiere header
FP fişiere care reţin descrierea unui instrument
LIB fişiere bibliotecă
DLL fişiere link-editate pentru apel dinamic
OBJ fişiere obiect
29
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a unora dintre meniurile şi ferestrele mediului de dezvoltare CVI
Fereastra proiect
Prezentăm mai jos doar informaţiile suplimentare faţă de o fereastră proiect standard
Pe lacircngă datele curente despre fiecare fişier inclus icircn proiect acesta mai are precizat şi unul
sau mai mulţi din următorii indici
- I indică faptul că respectivul fişier conţine descrierea unui driver de instrument
- S faptul că s-au făcut modificări icircn fişierul respectiv şi deci trebuie salvat
- C indică obligativitatea compilării respectivului fişier icircnainte de rularea aplicaţiei
- indică faptul că fişierul este deschis icircntr-o fereastră de editare
- indică ca acest fişier nu este deschis
Aplicaţii consolă
Pentru aplicaţiile tip consolă clasice C unde se folosesc pentru IO funcţiile scanf şi
printf vizualizarea ieşirii icircn mod text a acestora se va face icircntr-o fereastră specială numită
ldquoStandard InputOutput Windowrdquo
Observaţie Dacă se va programa icircn acest mod trebuie activată opţiunea ldquoBring Standard
InputOtput to front whenever modifyrdquo din Environment ce aparţine meniului Options
Generatorul interactiv de aplicaţii
Butoanele directe ale editorului de interfeţe cu utilizatorul
folosit la selectare mutare şi dimensionare obiecte
utilizat pentru a modifica textul asociat cu obiectele din UIR folosind facilităţile de
etichetare
folosit pentru colorarea obiectelor Este suficientă o apăsare pe butonul din dreapta a
mouse-ului şi va colora automat obiectul selectat cu culoarea curentă
oferă facilităţi de operare Atunci cacircnd este activat evenimentele vor fi afişate icircn partea
dreaptă a barei de facilităţi
30
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a cacirctorva din meniurile mai importante ale generatorului
Menu Bars activează cutia de dialog care ne prezintă toate barele de meniu definite deja de
programator
Figura 25
Create apelează fereastra Edit Menu Bar pentru a crea o nouă bară de meniuri
Edit apelează fereastra Edit Menu Bar pentru a modifica o bară de meniuri existentă
Fereastra Edit Menu Bar(fig26) permite specificarea sau modificarea caracteristicilor
unei bare de meniuri icircn curs de creare sau care există deja
31
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 26
Menu Bar Constant Prefix este identificatorul intern al respectivei bare de meniuri Acesta
va fi folosit de funcţia LoadMenuBar pentru icircncărcarea icircn memorie a parametrilor care conţin
această bară Va fi definit automat icircn fişierul header din scheletul de aplicaţie
Item se referă la numele meniului curentsubmeniucomandă de meniu Dacă icircn faţa primei
litere a unui element din meniu se adaugă 2 ldquounderscorerdquo la execuţie acesta va putea fi
selectat prin combinaţia Alt+prima literă
Constant name este alipit la Menu Bar Constant Prefix pentru a se genera identificatorul
elementului curent Este folosit de funcţii ca GetMenuBarAttribute sau SetMenuBarAttribute
De asemenea acest identificator este returnat de GetUserEvent atunci cacircnd apare un
eveniment generat de o comandă a meniului
Callback Function Permite specificarea numelui unei funcţii de răspuns care va fi apelată
automat la activarea respectivului element Folosirea ei este opţională
32
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ModifierKeyShortcutKey se combină pentru a ataşa o cheie ldquohotrdquo pentru elementul
curent
buton ce permite coboracircrea icircn interiorul unei ierarhii de meniuri
buton ce permite urcarea icircn interiorul unei ierarhii de meniuri
Panouri
După cum am spus sunt echivalentul ferestrelor din programarea Windows Pentru a le crea
Create1048774Panel ne pune la dispoziţie un nou panou icircn cadrul UIR-ului curent Prin dublu
ldquoclickrdquo pe acesta se va intra in fereastra de editare a caracteristicilor panoului Această
fereastră este prezentată mai jos
Figura 27
La partea de Menu Bar se poate specifica o bară din cele deja create icircn cazul dezvoltării
respectivei interfeţe
Restul parametrilor au fost discutaţi anterior sau sunt cunoscuţi din programarea Windows
33
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Crearea controalelor
Exceptacircnd diferenţele care apar funcţie de destinaţia acestora există o serie de parametri
comuni fiecărui control pe care icircl creăm Mai jos prezentăm fereastra care apare de exemplu
la crearea unui control de tip numeric şi anume un buton
Figura 28
Se observă că identificatorul intern şi posibilitatea de ataşare a unei funcţii de răspuns
rămacircne De asemenea o serie de informaţii specifice părţii de etichetare Icircn plus apar
specificaţii privind modul de afişare a datelor şi limitele icircntre care acestea pot fi variate prin
intermediul acestui control
34
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
TAB ORDER
Fiecare control de pe un panou activ are o poziţie icircn ordinea de salt prin intermediul
unui tab Această ordine precizează care va fi următorul control ce va fi activat icircn cazul icircn
care utilizatorul apasă Tab sau Shift+Tab Implicit acestea sunt adăugate exact icircn ordinea
creării lor de către programator Numai că nu icircntotdeauna aceasta este ordinea de salt dorită a
fi activă la terminarea aplicaţiei Icircn aceste condiţii secvenţa Edit1048774Tab Order ne va activa un
panou specializat pentru aceasta
Figura 29
noua formă de cursor activă icircn interiorul ferestrei Prin apăsarea pe un control oarecare i
se
poate modifica ordinea de activare
specifică faptul că se acceptă noua ordine de apelare
se iese cu păstrarea vechii ordini
Find UIR Objects
O altă facilitate a editorului este Find UIR Objects care aparţine meniului View Icircn
cadrul unor proiecte mari se dovedeşte a fi extrem de utilă
35
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 210
După cum se observă ne permite căutarea după dorinţă a unui nume icircn diverse categorii de
obiecte ale interfeţei cu utilizatorul
GENERATE
Este meniul folosit pentru generarea fie a icircntregului cod schelet fie numai a codului
corespunzător unui obiect proaspăt introdus icircntr-un UIR
Secvenţa Code1048774Generate1048774AllCode va genera codul schelet pentru aplicaţie Acesta va
conţine şi un ldquoswitchrdquo pentru tratarea evenimentelor Alegerea evenimentelor care vor fi
automat introduse se face din Code1048774Preferences
MENIUL ARRANGE
Icircncă de la primele aplicaţii vom observa că una din operaţiile mari consumatoare de
timp este aranjarea controalelor icircn panou după specificarea caracteristicilor acestora Pentru a
evita acest lucru CVI a fost prevăzut cu o serie de facilităţi de aranjare automată pe care le
vom prezenta mai jos
Figura 211
Top Edges asigură spaţiere verticală icircntre partea superioară a controalelor Cel mai de
sus şi cel mai de jos control sunt considerate puncte de referinţă
36
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Vertical Centers asigură spaţiere verticală icircntre centrele controalelor Cel mai de sus
şi cel mai de jos control sunt considerate puncte de referinţă
Bottom Edges asigură spaţiere verticală icircntre partea inferioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Vertical Gap asigură spaţiere verticală icircntre partea superioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Left Edges setează spaţii orizontale egale icircntre marginile din stacircnga ale controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Centers setează spaţii orizontale egale icircntre centrele controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Right Edges setează spaţii orizontale egale icircntre marginile din dreapta ale
controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Gap spaţiere orizontală icircntre controale Cel mai de sus şi cel mai de jos
control sunt considerate puncte de referinţă
Horizontal Compress minimizează spaţiile pe orizontală dintre controale şi elimină
orice spaţiu dintre ele
Distribute Vertical Centers
Comanda Distribute realizează la apel ultima opţiune selectată din lista prezentată
mai sus
37
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a unora dintre meniurile şi ferestrele mediului de dezvoltare CVI
Fereastra proiect
Prezentăm mai jos doar informaţiile suplimentare faţă de o fereastră proiect standard
Pe lacircngă datele curente despre fiecare fişier inclus icircn proiect acesta mai are precizat şi unul
sau mai mulţi din următorii indici
- I indică faptul că respectivul fişier conţine descrierea unui driver de instrument
- S faptul că s-au făcut modificări icircn fişierul respectiv şi deci trebuie salvat
- C indică obligativitatea compilării respectivului fişier icircnainte de rularea aplicaţiei
- indică faptul că fişierul este deschis icircntr-o fereastră de editare
- indică ca acest fişier nu este deschis
Aplicaţii consolă
Pentru aplicaţiile tip consolă clasice C unde se folosesc pentru IO funcţiile scanf şi
printf vizualizarea ieşirii icircn mod text a acestora se va face icircntr-o fereastră specială numită
ldquoStandard InputOutput Windowrdquo
Observaţie Dacă se va programa icircn acest mod trebuie activată opţiunea ldquoBring Standard
InputOtput to front whenever modifyrdquo din Environment ce aparţine meniului Options
Generatorul interactiv de aplicaţii
Butoanele directe ale editorului de interfeţe cu utilizatorul
folosit la selectare mutare şi dimensionare obiecte
utilizat pentru a modifica textul asociat cu obiectele din UIR folosind facilităţile de
etichetare
folosit pentru colorarea obiectelor Este suficientă o apăsare pe butonul din dreapta a
mouse-ului şi va colora automat obiectul selectat cu culoarea curentă
oferă facilităţi de operare Atunci cacircnd este activat evenimentele vor fi afişate icircn partea
dreaptă a barei de facilităţi
30
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a cacirctorva din meniurile mai importante ale generatorului
Menu Bars activează cutia de dialog care ne prezintă toate barele de meniu definite deja de
programator
Figura 25
Create apelează fereastra Edit Menu Bar pentru a crea o nouă bară de meniuri
Edit apelează fereastra Edit Menu Bar pentru a modifica o bară de meniuri existentă
Fereastra Edit Menu Bar(fig26) permite specificarea sau modificarea caracteristicilor
unei bare de meniuri icircn curs de creare sau care există deja
31
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 26
Menu Bar Constant Prefix este identificatorul intern al respectivei bare de meniuri Acesta
va fi folosit de funcţia LoadMenuBar pentru icircncărcarea icircn memorie a parametrilor care conţin
această bară Va fi definit automat icircn fişierul header din scheletul de aplicaţie
Item se referă la numele meniului curentsubmeniucomandă de meniu Dacă icircn faţa primei
litere a unui element din meniu se adaugă 2 ldquounderscorerdquo la execuţie acesta va putea fi
selectat prin combinaţia Alt+prima literă
Constant name este alipit la Menu Bar Constant Prefix pentru a se genera identificatorul
elementului curent Este folosit de funcţii ca GetMenuBarAttribute sau SetMenuBarAttribute
De asemenea acest identificator este returnat de GetUserEvent atunci cacircnd apare un
eveniment generat de o comandă a meniului
Callback Function Permite specificarea numelui unei funcţii de răspuns care va fi apelată
automat la activarea respectivului element Folosirea ei este opţională
32
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ModifierKeyShortcutKey se combină pentru a ataşa o cheie ldquohotrdquo pentru elementul
curent
buton ce permite coboracircrea icircn interiorul unei ierarhii de meniuri
buton ce permite urcarea icircn interiorul unei ierarhii de meniuri
Panouri
După cum am spus sunt echivalentul ferestrelor din programarea Windows Pentru a le crea
Create1048774Panel ne pune la dispoziţie un nou panou icircn cadrul UIR-ului curent Prin dublu
ldquoclickrdquo pe acesta se va intra in fereastra de editare a caracteristicilor panoului Această
fereastră este prezentată mai jos
Figura 27
La partea de Menu Bar se poate specifica o bară din cele deja create icircn cazul dezvoltării
respectivei interfeţe
Restul parametrilor au fost discutaţi anterior sau sunt cunoscuţi din programarea Windows
33
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Crearea controalelor
Exceptacircnd diferenţele care apar funcţie de destinaţia acestora există o serie de parametri
comuni fiecărui control pe care icircl creăm Mai jos prezentăm fereastra care apare de exemplu
la crearea unui control de tip numeric şi anume un buton
Figura 28
Se observă că identificatorul intern şi posibilitatea de ataşare a unei funcţii de răspuns
rămacircne De asemenea o serie de informaţii specifice părţii de etichetare Icircn plus apar
specificaţii privind modul de afişare a datelor şi limitele icircntre care acestea pot fi variate prin
intermediul acestui control
34
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
TAB ORDER
Fiecare control de pe un panou activ are o poziţie icircn ordinea de salt prin intermediul
unui tab Această ordine precizează care va fi următorul control ce va fi activat icircn cazul icircn
care utilizatorul apasă Tab sau Shift+Tab Implicit acestea sunt adăugate exact icircn ordinea
creării lor de către programator Numai că nu icircntotdeauna aceasta este ordinea de salt dorită a
fi activă la terminarea aplicaţiei Icircn aceste condiţii secvenţa Edit1048774Tab Order ne va activa un
panou specializat pentru aceasta
Figura 29
noua formă de cursor activă icircn interiorul ferestrei Prin apăsarea pe un control oarecare i
se
poate modifica ordinea de activare
specifică faptul că se acceptă noua ordine de apelare
se iese cu păstrarea vechii ordini
Find UIR Objects
O altă facilitate a editorului este Find UIR Objects care aparţine meniului View Icircn
cadrul unor proiecte mari se dovedeşte a fi extrem de utilă
35
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 210
După cum se observă ne permite căutarea după dorinţă a unui nume icircn diverse categorii de
obiecte ale interfeţei cu utilizatorul
GENERATE
Este meniul folosit pentru generarea fie a icircntregului cod schelet fie numai a codului
corespunzător unui obiect proaspăt introdus icircntr-un UIR
Secvenţa Code1048774Generate1048774AllCode va genera codul schelet pentru aplicaţie Acesta va
conţine şi un ldquoswitchrdquo pentru tratarea evenimentelor Alegerea evenimentelor care vor fi
automat introduse se face din Code1048774Preferences
MENIUL ARRANGE
Icircncă de la primele aplicaţii vom observa că una din operaţiile mari consumatoare de
timp este aranjarea controalelor icircn panou după specificarea caracteristicilor acestora Pentru a
evita acest lucru CVI a fost prevăzut cu o serie de facilităţi de aranjare automată pe care le
vom prezenta mai jos
Figura 211
Top Edges asigură spaţiere verticală icircntre partea superioară a controalelor Cel mai de
sus şi cel mai de jos control sunt considerate puncte de referinţă
36
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Vertical Centers asigură spaţiere verticală icircntre centrele controalelor Cel mai de sus
şi cel mai de jos control sunt considerate puncte de referinţă
Bottom Edges asigură spaţiere verticală icircntre partea inferioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Vertical Gap asigură spaţiere verticală icircntre partea superioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Left Edges setează spaţii orizontale egale icircntre marginile din stacircnga ale controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Centers setează spaţii orizontale egale icircntre centrele controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Right Edges setează spaţii orizontale egale icircntre marginile din dreapta ale
controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Gap spaţiere orizontală icircntre controale Cel mai de sus şi cel mai de jos
control sunt considerate puncte de referinţă
Horizontal Compress minimizează spaţiile pe orizontală dintre controale şi elimină
orice spaţiu dintre ele
Distribute Vertical Centers
Comanda Distribute realizează la apel ultima opţiune selectată din lista prezentată
mai sus
37
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scurtă descriere a cacirctorva din meniurile mai importante ale generatorului
Menu Bars activează cutia de dialog care ne prezintă toate barele de meniu definite deja de
programator
Figura 25
Create apelează fereastra Edit Menu Bar pentru a crea o nouă bară de meniuri
Edit apelează fereastra Edit Menu Bar pentru a modifica o bară de meniuri existentă
Fereastra Edit Menu Bar(fig26) permite specificarea sau modificarea caracteristicilor
unei bare de meniuri icircn curs de creare sau care există deja
31
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 26
Menu Bar Constant Prefix este identificatorul intern al respectivei bare de meniuri Acesta
va fi folosit de funcţia LoadMenuBar pentru icircncărcarea icircn memorie a parametrilor care conţin
această bară Va fi definit automat icircn fişierul header din scheletul de aplicaţie
Item se referă la numele meniului curentsubmeniucomandă de meniu Dacă icircn faţa primei
litere a unui element din meniu se adaugă 2 ldquounderscorerdquo la execuţie acesta va putea fi
selectat prin combinaţia Alt+prima literă
Constant name este alipit la Menu Bar Constant Prefix pentru a se genera identificatorul
elementului curent Este folosit de funcţii ca GetMenuBarAttribute sau SetMenuBarAttribute
De asemenea acest identificator este returnat de GetUserEvent atunci cacircnd apare un
eveniment generat de o comandă a meniului
Callback Function Permite specificarea numelui unei funcţii de răspuns care va fi apelată
automat la activarea respectivului element Folosirea ei este opţională
32
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ModifierKeyShortcutKey se combină pentru a ataşa o cheie ldquohotrdquo pentru elementul
curent
buton ce permite coboracircrea icircn interiorul unei ierarhii de meniuri
buton ce permite urcarea icircn interiorul unei ierarhii de meniuri
Panouri
După cum am spus sunt echivalentul ferestrelor din programarea Windows Pentru a le crea
Create1048774Panel ne pune la dispoziţie un nou panou icircn cadrul UIR-ului curent Prin dublu
ldquoclickrdquo pe acesta se va intra in fereastra de editare a caracteristicilor panoului Această
fereastră este prezentată mai jos
Figura 27
La partea de Menu Bar se poate specifica o bară din cele deja create icircn cazul dezvoltării
respectivei interfeţe
Restul parametrilor au fost discutaţi anterior sau sunt cunoscuţi din programarea Windows
33
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Crearea controalelor
Exceptacircnd diferenţele care apar funcţie de destinaţia acestora există o serie de parametri
comuni fiecărui control pe care icircl creăm Mai jos prezentăm fereastra care apare de exemplu
la crearea unui control de tip numeric şi anume un buton
Figura 28
Se observă că identificatorul intern şi posibilitatea de ataşare a unei funcţii de răspuns
rămacircne De asemenea o serie de informaţii specifice părţii de etichetare Icircn plus apar
specificaţii privind modul de afişare a datelor şi limitele icircntre care acestea pot fi variate prin
intermediul acestui control
34
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
TAB ORDER
Fiecare control de pe un panou activ are o poziţie icircn ordinea de salt prin intermediul
unui tab Această ordine precizează care va fi următorul control ce va fi activat icircn cazul icircn
care utilizatorul apasă Tab sau Shift+Tab Implicit acestea sunt adăugate exact icircn ordinea
creării lor de către programator Numai că nu icircntotdeauna aceasta este ordinea de salt dorită a
fi activă la terminarea aplicaţiei Icircn aceste condiţii secvenţa Edit1048774Tab Order ne va activa un
panou specializat pentru aceasta
Figura 29
noua formă de cursor activă icircn interiorul ferestrei Prin apăsarea pe un control oarecare i
se
poate modifica ordinea de activare
specifică faptul că se acceptă noua ordine de apelare
se iese cu păstrarea vechii ordini
Find UIR Objects
O altă facilitate a editorului este Find UIR Objects care aparţine meniului View Icircn
cadrul unor proiecte mari se dovedeşte a fi extrem de utilă
35
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 210
După cum se observă ne permite căutarea după dorinţă a unui nume icircn diverse categorii de
obiecte ale interfeţei cu utilizatorul
GENERATE
Este meniul folosit pentru generarea fie a icircntregului cod schelet fie numai a codului
corespunzător unui obiect proaspăt introdus icircntr-un UIR
Secvenţa Code1048774Generate1048774AllCode va genera codul schelet pentru aplicaţie Acesta va
conţine şi un ldquoswitchrdquo pentru tratarea evenimentelor Alegerea evenimentelor care vor fi
automat introduse se face din Code1048774Preferences
MENIUL ARRANGE
Icircncă de la primele aplicaţii vom observa că una din operaţiile mari consumatoare de
timp este aranjarea controalelor icircn panou după specificarea caracteristicilor acestora Pentru a
evita acest lucru CVI a fost prevăzut cu o serie de facilităţi de aranjare automată pe care le
vom prezenta mai jos
Figura 211
Top Edges asigură spaţiere verticală icircntre partea superioară a controalelor Cel mai de
sus şi cel mai de jos control sunt considerate puncte de referinţă
36
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Vertical Centers asigură spaţiere verticală icircntre centrele controalelor Cel mai de sus
şi cel mai de jos control sunt considerate puncte de referinţă
Bottom Edges asigură spaţiere verticală icircntre partea inferioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Vertical Gap asigură spaţiere verticală icircntre partea superioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Left Edges setează spaţii orizontale egale icircntre marginile din stacircnga ale controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Centers setează spaţii orizontale egale icircntre centrele controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Right Edges setează spaţii orizontale egale icircntre marginile din dreapta ale
controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Gap spaţiere orizontală icircntre controale Cel mai de sus şi cel mai de jos
control sunt considerate puncte de referinţă
Horizontal Compress minimizează spaţiile pe orizontală dintre controale şi elimină
orice spaţiu dintre ele
Distribute Vertical Centers
Comanda Distribute realizează la apel ultima opţiune selectată din lista prezentată
mai sus
37
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 26
Menu Bar Constant Prefix este identificatorul intern al respectivei bare de meniuri Acesta
va fi folosit de funcţia LoadMenuBar pentru icircncărcarea icircn memorie a parametrilor care conţin
această bară Va fi definit automat icircn fişierul header din scheletul de aplicaţie
Item se referă la numele meniului curentsubmeniucomandă de meniu Dacă icircn faţa primei
litere a unui element din meniu se adaugă 2 ldquounderscorerdquo la execuţie acesta va putea fi
selectat prin combinaţia Alt+prima literă
Constant name este alipit la Menu Bar Constant Prefix pentru a se genera identificatorul
elementului curent Este folosit de funcţii ca GetMenuBarAttribute sau SetMenuBarAttribute
De asemenea acest identificator este returnat de GetUserEvent atunci cacircnd apare un
eveniment generat de o comandă a meniului
Callback Function Permite specificarea numelui unei funcţii de răspuns care va fi apelată
automat la activarea respectivului element Folosirea ei este opţională
32
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ModifierKeyShortcutKey se combină pentru a ataşa o cheie ldquohotrdquo pentru elementul
curent
buton ce permite coboracircrea icircn interiorul unei ierarhii de meniuri
buton ce permite urcarea icircn interiorul unei ierarhii de meniuri
Panouri
După cum am spus sunt echivalentul ferestrelor din programarea Windows Pentru a le crea
Create1048774Panel ne pune la dispoziţie un nou panou icircn cadrul UIR-ului curent Prin dublu
ldquoclickrdquo pe acesta se va intra in fereastra de editare a caracteristicilor panoului Această
fereastră este prezentată mai jos
Figura 27
La partea de Menu Bar se poate specifica o bară din cele deja create icircn cazul dezvoltării
respectivei interfeţe
Restul parametrilor au fost discutaţi anterior sau sunt cunoscuţi din programarea Windows
33
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Crearea controalelor
Exceptacircnd diferenţele care apar funcţie de destinaţia acestora există o serie de parametri
comuni fiecărui control pe care icircl creăm Mai jos prezentăm fereastra care apare de exemplu
la crearea unui control de tip numeric şi anume un buton
Figura 28
Se observă că identificatorul intern şi posibilitatea de ataşare a unei funcţii de răspuns
rămacircne De asemenea o serie de informaţii specifice părţii de etichetare Icircn plus apar
specificaţii privind modul de afişare a datelor şi limitele icircntre care acestea pot fi variate prin
intermediul acestui control
34
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
TAB ORDER
Fiecare control de pe un panou activ are o poziţie icircn ordinea de salt prin intermediul
unui tab Această ordine precizează care va fi următorul control ce va fi activat icircn cazul icircn
care utilizatorul apasă Tab sau Shift+Tab Implicit acestea sunt adăugate exact icircn ordinea
creării lor de către programator Numai că nu icircntotdeauna aceasta este ordinea de salt dorită a
fi activă la terminarea aplicaţiei Icircn aceste condiţii secvenţa Edit1048774Tab Order ne va activa un
panou specializat pentru aceasta
Figura 29
noua formă de cursor activă icircn interiorul ferestrei Prin apăsarea pe un control oarecare i
se
poate modifica ordinea de activare
specifică faptul că se acceptă noua ordine de apelare
se iese cu păstrarea vechii ordini
Find UIR Objects
O altă facilitate a editorului este Find UIR Objects care aparţine meniului View Icircn
cadrul unor proiecte mari se dovedeşte a fi extrem de utilă
35
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 210
După cum se observă ne permite căutarea după dorinţă a unui nume icircn diverse categorii de
obiecte ale interfeţei cu utilizatorul
GENERATE
Este meniul folosit pentru generarea fie a icircntregului cod schelet fie numai a codului
corespunzător unui obiect proaspăt introdus icircntr-un UIR
Secvenţa Code1048774Generate1048774AllCode va genera codul schelet pentru aplicaţie Acesta va
conţine şi un ldquoswitchrdquo pentru tratarea evenimentelor Alegerea evenimentelor care vor fi
automat introduse se face din Code1048774Preferences
MENIUL ARRANGE
Icircncă de la primele aplicaţii vom observa că una din operaţiile mari consumatoare de
timp este aranjarea controalelor icircn panou după specificarea caracteristicilor acestora Pentru a
evita acest lucru CVI a fost prevăzut cu o serie de facilităţi de aranjare automată pe care le
vom prezenta mai jos
Figura 211
Top Edges asigură spaţiere verticală icircntre partea superioară a controalelor Cel mai de
sus şi cel mai de jos control sunt considerate puncte de referinţă
36
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Vertical Centers asigură spaţiere verticală icircntre centrele controalelor Cel mai de sus
şi cel mai de jos control sunt considerate puncte de referinţă
Bottom Edges asigură spaţiere verticală icircntre partea inferioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Vertical Gap asigură spaţiere verticală icircntre partea superioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Left Edges setează spaţii orizontale egale icircntre marginile din stacircnga ale controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Centers setează spaţii orizontale egale icircntre centrele controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Right Edges setează spaţii orizontale egale icircntre marginile din dreapta ale
controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Gap spaţiere orizontală icircntre controale Cel mai de sus şi cel mai de jos
control sunt considerate puncte de referinţă
Horizontal Compress minimizează spaţiile pe orizontală dintre controale şi elimină
orice spaţiu dintre ele
Distribute Vertical Centers
Comanda Distribute realizează la apel ultima opţiune selectată din lista prezentată
mai sus
37
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ModifierKeyShortcutKey se combină pentru a ataşa o cheie ldquohotrdquo pentru elementul
curent
buton ce permite coboracircrea icircn interiorul unei ierarhii de meniuri
buton ce permite urcarea icircn interiorul unei ierarhii de meniuri
Panouri
După cum am spus sunt echivalentul ferestrelor din programarea Windows Pentru a le crea
Create1048774Panel ne pune la dispoziţie un nou panou icircn cadrul UIR-ului curent Prin dublu
ldquoclickrdquo pe acesta se va intra in fereastra de editare a caracteristicilor panoului Această
fereastră este prezentată mai jos
Figura 27
La partea de Menu Bar se poate specifica o bară din cele deja create icircn cazul dezvoltării
respectivei interfeţe
Restul parametrilor au fost discutaţi anterior sau sunt cunoscuţi din programarea Windows
33
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Crearea controalelor
Exceptacircnd diferenţele care apar funcţie de destinaţia acestora există o serie de parametri
comuni fiecărui control pe care icircl creăm Mai jos prezentăm fereastra care apare de exemplu
la crearea unui control de tip numeric şi anume un buton
Figura 28
Se observă că identificatorul intern şi posibilitatea de ataşare a unei funcţii de răspuns
rămacircne De asemenea o serie de informaţii specifice părţii de etichetare Icircn plus apar
specificaţii privind modul de afişare a datelor şi limitele icircntre care acestea pot fi variate prin
intermediul acestui control
34
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
TAB ORDER
Fiecare control de pe un panou activ are o poziţie icircn ordinea de salt prin intermediul
unui tab Această ordine precizează care va fi următorul control ce va fi activat icircn cazul icircn
care utilizatorul apasă Tab sau Shift+Tab Implicit acestea sunt adăugate exact icircn ordinea
creării lor de către programator Numai că nu icircntotdeauna aceasta este ordinea de salt dorită a
fi activă la terminarea aplicaţiei Icircn aceste condiţii secvenţa Edit1048774Tab Order ne va activa un
panou specializat pentru aceasta
Figura 29
noua formă de cursor activă icircn interiorul ferestrei Prin apăsarea pe un control oarecare i
se
poate modifica ordinea de activare
specifică faptul că se acceptă noua ordine de apelare
se iese cu păstrarea vechii ordini
Find UIR Objects
O altă facilitate a editorului este Find UIR Objects care aparţine meniului View Icircn
cadrul unor proiecte mari se dovedeşte a fi extrem de utilă
35
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 210
După cum se observă ne permite căutarea după dorinţă a unui nume icircn diverse categorii de
obiecte ale interfeţei cu utilizatorul
GENERATE
Este meniul folosit pentru generarea fie a icircntregului cod schelet fie numai a codului
corespunzător unui obiect proaspăt introdus icircntr-un UIR
Secvenţa Code1048774Generate1048774AllCode va genera codul schelet pentru aplicaţie Acesta va
conţine şi un ldquoswitchrdquo pentru tratarea evenimentelor Alegerea evenimentelor care vor fi
automat introduse se face din Code1048774Preferences
MENIUL ARRANGE
Icircncă de la primele aplicaţii vom observa că una din operaţiile mari consumatoare de
timp este aranjarea controalelor icircn panou după specificarea caracteristicilor acestora Pentru a
evita acest lucru CVI a fost prevăzut cu o serie de facilităţi de aranjare automată pe care le
vom prezenta mai jos
Figura 211
Top Edges asigură spaţiere verticală icircntre partea superioară a controalelor Cel mai de
sus şi cel mai de jos control sunt considerate puncte de referinţă
36
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Vertical Centers asigură spaţiere verticală icircntre centrele controalelor Cel mai de sus
şi cel mai de jos control sunt considerate puncte de referinţă
Bottom Edges asigură spaţiere verticală icircntre partea inferioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Vertical Gap asigură spaţiere verticală icircntre partea superioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Left Edges setează spaţii orizontale egale icircntre marginile din stacircnga ale controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Centers setează spaţii orizontale egale icircntre centrele controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Right Edges setează spaţii orizontale egale icircntre marginile din dreapta ale
controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Gap spaţiere orizontală icircntre controale Cel mai de sus şi cel mai de jos
control sunt considerate puncte de referinţă
Horizontal Compress minimizează spaţiile pe orizontală dintre controale şi elimină
orice spaţiu dintre ele
Distribute Vertical Centers
Comanda Distribute realizează la apel ultima opţiune selectată din lista prezentată
mai sus
37
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Crearea controalelor
Exceptacircnd diferenţele care apar funcţie de destinaţia acestora există o serie de parametri
comuni fiecărui control pe care icircl creăm Mai jos prezentăm fereastra care apare de exemplu
la crearea unui control de tip numeric şi anume un buton
Figura 28
Se observă că identificatorul intern şi posibilitatea de ataşare a unei funcţii de răspuns
rămacircne De asemenea o serie de informaţii specifice părţii de etichetare Icircn plus apar
specificaţii privind modul de afişare a datelor şi limitele icircntre care acestea pot fi variate prin
intermediul acestui control
34
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
TAB ORDER
Fiecare control de pe un panou activ are o poziţie icircn ordinea de salt prin intermediul
unui tab Această ordine precizează care va fi următorul control ce va fi activat icircn cazul icircn
care utilizatorul apasă Tab sau Shift+Tab Implicit acestea sunt adăugate exact icircn ordinea
creării lor de către programator Numai că nu icircntotdeauna aceasta este ordinea de salt dorită a
fi activă la terminarea aplicaţiei Icircn aceste condiţii secvenţa Edit1048774Tab Order ne va activa un
panou specializat pentru aceasta
Figura 29
noua formă de cursor activă icircn interiorul ferestrei Prin apăsarea pe un control oarecare i
se
poate modifica ordinea de activare
specifică faptul că se acceptă noua ordine de apelare
se iese cu păstrarea vechii ordini
Find UIR Objects
O altă facilitate a editorului este Find UIR Objects care aparţine meniului View Icircn
cadrul unor proiecte mari se dovedeşte a fi extrem de utilă
35
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 210
După cum se observă ne permite căutarea după dorinţă a unui nume icircn diverse categorii de
obiecte ale interfeţei cu utilizatorul
GENERATE
Este meniul folosit pentru generarea fie a icircntregului cod schelet fie numai a codului
corespunzător unui obiect proaspăt introdus icircntr-un UIR
Secvenţa Code1048774Generate1048774AllCode va genera codul schelet pentru aplicaţie Acesta va
conţine şi un ldquoswitchrdquo pentru tratarea evenimentelor Alegerea evenimentelor care vor fi
automat introduse se face din Code1048774Preferences
MENIUL ARRANGE
Icircncă de la primele aplicaţii vom observa că una din operaţiile mari consumatoare de
timp este aranjarea controalelor icircn panou după specificarea caracteristicilor acestora Pentru a
evita acest lucru CVI a fost prevăzut cu o serie de facilităţi de aranjare automată pe care le
vom prezenta mai jos
Figura 211
Top Edges asigură spaţiere verticală icircntre partea superioară a controalelor Cel mai de
sus şi cel mai de jos control sunt considerate puncte de referinţă
36
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Vertical Centers asigură spaţiere verticală icircntre centrele controalelor Cel mai de sus
şi cel mai de jos control sunt considerate puncte de referinţă
Bottom Edges asigură spaţiere verticală icircntre partea inferioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Vertical Gap asigură spaţiere verticală icircntre partea superioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Left Edges setează spaţii orizontale egale icircntre marginile din stacircnga ale controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Centers setează spaţii orizontale egale icircntre centrele controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Right Edges setează spaţii orizontale egale icircntre marginile din dreapta ale
controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Gap spaţiere orizontală icircntre controale Cel mai de sus şi cel mai de jos
control sunt considerate puncte de referinţă
Horizontal Compress minimizează spaţiile pe orizontală dintre controale şi elimină
orice spaţiu dintre ele
Distribute Vertical Centers
Comanda Distribute realizează la apel ultima opţiune selectată din lista prezentată
mai sus
37
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
TAB ORDER
Fiecare control de pe un panou activ are o poziţie icircn ordinea de salt prin intermediul
unui tab Această ordine precizează care va fi următorul control ce va fi activat icircn cazul icircn
care utilizatorul apasă Tab sau Shift+Tab Implicit acestea sunt adăugate exact icircn ordinea
creării lor de către programator Numai că nu icircntotdeauna aceasta este ordinea de salt dorită a
fi activă la terminarea aplicaţiei Icircn aceste condiţii secvenţa Edit1048774Tab Order ne va activa un
panou specializat pentru aceasta
Figura 29
noua formă de cursor activă icircn interiorul ferestrei Prin apăsarea pe un control oarecare i
se
poate modifica ordinea de activare
specifică faptul că se acceptă noua ordine de apelare
se iese cu păstrarea vechii ordini
Find UIR Objects
O altă facilitate a editorului este Find UIR Objects care aparţine meniului View Icircn
cadrul unor proiecte mari se dovedeşte a fi extrem de utilă
35
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 210
După cum se observă ne permite căutarea după dorinţă a unui nume icircn diverse categorii de
obiecte ale interfeţei cu utilizatorul
GENERATE
Este meniul folosit pentru generarea fie a icircntregului cod schelet fie numai a codului
corespunzător unui obiect proaspăt introdus icircntr-un UIR
Secvenţa Code1048774Generate1048774AllCode va genera codul schelet pentru aplicaţie Acesta va
conţine şi un ldquoswitchrdquo pentru tratarea evenimentelor Alegerea evenimentelor care vor fi
automat introduse se face din Code1048774Preferences
MENIUL ARRANGE
Icircncă de la primele aplicaţii vom observa că una din operaţiile mari consumatoare de
timp este aranjarea controalelor icircn panou după specificarea caracteristicilor acestora Pentru a
evita acest lucru CVI a fost prevăzut cu o serie de facilităţi de aranjare automată pe care le
vom prezenta mai jos
Figura 211
Top Edges asigură spaţiere verticală icircntre partea superioară a controalelor Cel mai de
sus şi cel mai de jos control sunt considerate puncte de referinţă
36
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Vertical Centers asigură spaţiere verticală icircntre centrele controalelor Cel mai de sus
şi cel mai de jos control sunt considerate puncte de referinţă
Bottom Edges asigură spaţiere verticală icircntre partea inferioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Vertical Gap asigură spaţiere verticală icircntre partea superioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Left Edges setează spaţii orizontale egale icircntre marginile din stacircnga ale controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Centers setează spaţii orizontale egale icircntre centrele controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Right Edges setează spaţii orizontale egale icircntre marginile din dreapta ale
controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Gap spaţiere orizontală icircntre controale Cel mai de sus şi cel mai de jos
control sunt considerate puncte de referinţă
Horizontal Compress minimizează spaţiile pe orizontală dintre controale şi elimină
orice spaţiu dintre ele
Distribute Vertical Centers
Comanda Distribute realizează la apel ultima opţiune selectată din lista prezentată
mai sus
37
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 210
După cum se observă ne permite căutarea după dorinţă a unui nume icircn diverse categorii de
obiecte ale interfeţei cu utilizatorul
GENERATE
Este meniul folosit pentru generarea fie a icircntregului cod schelet fie numai a codului
corespunzător unui obiect proaspăt introdus icircntr-un UIR
Secvenţa Code1048774Generate1048774AllCode va genera codul schelet pentru aplicaţie Acesta va
conţine şi un ldquoswitchrdquo pentru tratarea evenimentelor Alegerea evenimentelor care vor fi
automat introduse se face din Code1048774Preferences
MENIUL ARRANGE
Icircncă de la primele aplicaţii vom observa că una din operaţiile mari consumatoare de
timp este aranjarea controalelor icircn panou după specificarea caracteristicilor acestora Pentru a
evita acest lucru CVI a fost prevăzut cu o serie de facilităţi de aranjare automată pe care le
vom prezenta mai jos
Figura 211
Top Edges asigură spaţiere verticală icircntre partea superioară a controalelor Cel mai de
sus şi cel mai de jos control sunt considerate puncte de referinţă
36
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Vertical Centers asigură spaţiere verticală icircntre centrele controalelor Cel mai de sus
şi cel mai de jos control sunt considerate puncte de referinţă
Bottom Edges asigură spaţiere verticală icircntre partea inferioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Vertical Gap asigură spaţiere verticală icircntre partea superioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Left Edges setează spaţii orizontale egale icircntre marginile din stacircnga ale controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Centers setează spaţii orizontale egale icircntre centrele controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Right Edges setează spaţii orizontale egale icircntre marginile din dreapta ale
controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Gap spaţiere orizontală icircntre controale Cel mai de sus şi cel mai de jos
control sunt considerate puncte de referinţă
Horizontal Compress minimizează spaţiile pe orizontală dintre controale şi elimină
orice spaţiu dintre ele
Distribute Vertical Centers
Comanda Distribute realizează la apel ultima opţiune selectată din lista prezentată
mai sus
37
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Vertical Centers asigură spaţiere verticală icircntre centrele controalelor Cel mai de sus
şi cel mai de jos control sunt considerate puncte de referinţă
Bottom Edges asigură spaţiere verticală icircntre partea inferioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Vertical Gap asigură spaţiere verticală icircntre partea superioară a controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Left Edges setează spaţii orizontale egale icircntre marginile din stacircnga ale controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Centers setează spaţii orizontale egale icircntre centrele controalelor Cel
mai
de sus şi cel mai de jos control sunt considerate puncte de referinţă
Right Edges setează spaţii orizontale egale icircntre marginile din dreapta ale
controalelor
Cel mai de sus şi cel mai de jos control sunt considerate puncte de referinţă
Horizontal Gap spaţiere orizontală icircntre controale Cel mai de sus şi cel mai de jos
control sunt considerate puncte de referinţă
Horizontal Compress minimizează spaţiile pe orizontală dintre controale şi elimină
orice spaţiu dintre ele
Distribute Vertical Centers
Comanda Distribute realizează la apel ultima opţiune selectată din lista prezentată
mai sus
37
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Control Zplane Order
Ordinea icircn planul Z a controalelor poate fi modificată de acest meniu După cum se
ştie se referă la ordinea de desenare a controalelor Submeniurile ei sunt directe
Center Label
Nu icircn toate cazurile etichetele unui control sunt centrate icircn raport cu acesta o metodă
ar fi deplasarea manuală etichetei icircn timpul modificării UIR dar este consumatoare de timp şi
inexactă De aceea s-a introdus opţiunea Center Label care realizează acest lucru automat
38
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3Arhitectura sistemului
31 Schema bloc a sistemului
Aplicaţia reprezintă o reţea de senzori care oferă posibilitatea comunicării la distanţă
cu ajutorul unor modemuri inteligente Comunicaţia se face prin GPRS folosind serviciul
VPN oferit de furnizorul GSM (icircn cazul de faţă VODAFONE) Acest serviciu este folosit icircn
scopul asigurării securităţii
Fiecare modem furnizează posibilităţi de conectare diferite in funcţie de tipul
senzorului de la care se recepţionează informaţia Aceste posibuilităţi sunt
Intrare analogică icircntre 0-2 V
interfaţă GPIO
interfaţă serială RS232
Modemurile transmit informaţiile corespunzătoare către calculatorul central la
intervale de timp prestabilite ţinacircnd cont de necesităţile procesului oferind posibilitatea
controlării traficului de date transferat pentru a reduce costurile Acest lucru este necesar
datorită faptului ca GPRS-ul este un protocol de tip PSD (Packet Switched Data) unde taxarea
se face in funcţie de volumul datelor transmise şi nu in funcţie de timp
Datele sunt preluate de catre calculatorul central printr-un program implementat icircn
LabWindowsCVI care pe lacircngă preluarea datelor asigură şi vizualizarea şi arhivarea datelor
Schema bloc a sistemului este prezentată icircn figura 31
39
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 31 Schema bloc a sistemului
32 Funcţiile sistemului
321 Funcţii de măsurare
Măsurarea informaţiilor se face cu ajutorul senzorilor Acestia sunt specifici icircn
funcţie de natura infomaţiei măsurate Am utilizat urmatorii senzori
3211 Multimetru Digital Protek 506
Introducere
Acest aparat este un multimetru digital (care joacă rolul unui bdquomultisenzorrdquo) de icircnaltă
performaţă cu multe funcţii indispensabile pentru măsurătorile electrice şi electronice Toate
funcţiile au fost proiectate pentru o utilizare cacirct mai simplă asiguracircnd o acomodare rapidă cu
multiple posibilităţi de măsurare ale acestui multimetru
40
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Operarea tastelor
Tasta ONOFF
Dacă aparatul nu este folosit pentru o perioadă mai icircndelungată este recomandabilă
oprirea de la acest buton decacirct să depindem de funcţia de oprire automată care poate
determina descărcarea bateriei dacă aparatul rămacircne pornit pentru mai mult de aproximativ
două luni
Tasta MENU
Se apasă o singură dată pentru a intra icircn modul meniu Dacă se ţine tasta apăsată
pentru mai mult de o secundă se iese din acest mod Prin intrarea icircn modul meniu toate
indicatoarele sunt aprinse şi doar cel de la poziţia cursorului va clipi rapid in timp ce
indicatorul selectat anterior va clipi mai lent Pentru a muta cursorul şi pentru a selecta una
din funcţiile disponibile se apasă tasta menu
Tasta ENTER
Se apasă tasta enter pentru a se afişa pe ecran funcţia selectată cu tasta menu Funcţia
selectată va rămacircne singura afişată pe ecran celelalte dispăracircnd exceptacircnd funcţiile KEEP
ON şi RS232
Tasta TIME
Această tastă este folosită pentru alegerea funcţiei stabilizatoare Prin apăsarea ei icircn
zona secundară a ecranului este afişat 0 ore 00 minute 00 secunde O nouă apăsare pe tasta
timp opreşte funcţia temporizatoare şi revine icircn modul anterior normal Tastele bdquosusrdquo şi bdquojosrdquo
sunt folosite pentru a porni pentru a porni temporizatorul icircn numărare directă sau inversă
Atingerea 95959 respectiv 00000 va fi semnalată sonor Prin apăsaea tastei time sunetul
va fi oprit Funcţia temporizatoare are de asemenea şi o funcţie de reglare După prima
apăsare pe tasta time prin apăsarea tastei enter digitul cel mai din stacircnga va clipi Prin
apăsarea tastelor bdquosusrdquo sau bdquojosrdquo valoarea digitului clipitor va creşte sau scădea După
atingerea valorii dorite dorite prin apăsarea tastei enter se trece la urmatorul digit Astfel se
poate regla temporizarea de la valoarea care se doreşte
Tasta FUNC
Acestă tastă este folosită pentru selectarea funcşiilor alternative ( cand poziţia
selectorul rotativ rămacircne neschimbată)
Tasta RANGE
Această tasta este folosită pentru trecerea din modul cu selectare automată a
domeniului la selectarea manuală Icircn modurile temporizator sau memorie aceasta tastă este
folosită pentru selectarea unor funcţii Există două tipuri de opraţii de selectare a domeniului
41
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Automată (implicit la pornirea automatului)
Manuală după apăsarea tastei range
La prima apăsare a tastei se trece icircn modul de selecţie manuală a domeniului poziţionat icircn
domeniul următor Fiecare apăsare ulterioară selectează următorul domeniu pas cu pas Dacă
tasta range este apăsată mai mult de o secundă se revine icircn modul de selectare automată
Tasta HOLD
Această tastă este utilizată pentru a bdquoicircngheţardquo valoarea afişată icircn momentul apăsării Icircn
modurile temporizator sau memorie această este folosită pentru selectarea unor funcţii Cu
tasta apăsată indicatorul bdquoholdrdquo este aprins iar secţiunea secundară a ecranului va afişa
valoarea măsurată curentă La o nouă apăsare pe tastă se revine icircn modul anterior
Tasta ILUMINARE
Această tastă este folosită pentru iluminarea afişajului La prima apăsare iluminarea
este pornită iar la următoare este oprită Iluminarea va fi oprită automat la două minute după
pornire pentru a prelungi durata de viaţă a bateriei Datorită consumului de aproximativ
20mA se recomandă folosirea iluminării doar cacircnd este necesar
Funcţii meniu
MAXMINMED
Aceste funcţii sunt folosite pentru a obţine valoarea maximă minimă sau medie a
mărimii măsurate După ce modul MAX a fost selectat valoarea maximă este afişată icircn partea
principală a ecranului iar cea curentă icircn partea secundară Asemanător icircn modurile MIN şi
MED Aceste funcţii pot fi folosite numai icircntr-un domeniu fix care trebuie anterior selectat
manual Dacă se atinge minimul sau maximul domeniului (-3999 respectiv 3999) această
valoare va fi afişată icircn locul bdquoOLrdquo Icircn modul MED aparatul calculează media tuturor
valorilor măsurate din perioada de achiziţie
REL
Modul REL permite operatorului să măsoare valori raportate la o valoare de referinţă
diferită de 0
MEM
Pacircnă la zece măsurători pot fi oricacircnd stocatememorate icircndin memorie prin folosirea
tastelor menu enter sus şi jos Pentru a selecta modul de memorare se apasă tasta menu şi
enter pentru a selecta funcţia memorare Cu tasta menu se selectează operaţiunea de stocare
42
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
sau readucere Memmoria nr bdquo0rdquo are o funcţie specială care poate fi folosită pentru a
introduce o valoare numerică arbitrară prin operarea tastelor sus jos şi enter După intrarea ăn
modul de stocare prin tastele sus şi jos se selectează memoria 0 care va clipi Se apasă tasta
enter şi tastele sus şi jos iar indicatorul bdquo-rdquo va clipi Dacă se apasă enter indicatorul bdquo-rdquo va
rămacircne in starea selectată şi următorul digit va clipi Astfel poate fi introdusă orice cifră prin
tastele sus şi jos La sfacircrşit memoria bdquo0rdquo va clipi din nou Se poate trece la alte locaţii de
memorie cu tastele susjos sua se poate ieşi din modul de măsurare cu tasta menu Celelalte
locaţii de memorie executacircnd bdquo0rdquo sunt folosite pentru a stoca valori măsurate Oricacircnd este
apăsataă tasta enter locaţia de memorie este suprascrisă cu valoare măsurată curentă Icircn
modul de readucere din memorie cele 10 locaţii pot fi rechemate oricacircnd Cele 10 valori
memorate nu vor fi şterse nici icircn cazul opririi automate
Funcţionare continuă
Cacircnd aparatul trebuie folosit continuu pentru mai mult de 30 de minute funcţia de
oprire automată trebuie dezactivată trecacircnd icircn modul de funcţionare continuă prin deplasarea
deplasarea cursorului cu tasta menu şi selectare cu tasta enter Indicatorul de funcţionare
continuă va rămacircne aprins iar aparatul va funcţiona pană la descărcarea bateriei Pentru a ieşi
din acest mod se poate folosi procedura de mai sus sau prin tasta oprire Acest mod este
independent de celelalte moduri sau funcţii rămacircnacircnd activ indiferent de schimbările de mod
prin taste sau selectorul rotativ
Metoda de măsurare
Măsurarea se face prin conversia analognumerică rezoluţia de numărare fiind de
4000
3212 Senzor de temperatură
Senzorul integrat LM35 - Este un senzor de temperatură de precizie cu ieşire
analogică de tensiune proporţională liniar cu temperatura măsurata icircn grade Celsius Ieşirea
are impedanţa scazută este liniară şi precizia implicită de calibrare simplifică interfaţa de
citire a ieşirii
43
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 32
Caracteristici generale Calibrat direct in degC factor de scala liniar +10 mV degC
masurarea temperaturii in intervalul -55 degC cedil +125 degC tensiune de alimentare intre 4cedil30 V şi
un curent de 60 microV impedanta de ieşire 01 Ω pentru un curent de incarcare de 1 mA propria
incalzire introdusa este de 008 degC in aer
3213 Senzor de direcţie
Senzorul de direcţie NRG 200P este un senzor standard industrial folosit icircn lumea
icircntreagă Componentele din plastic rezistent la temperatură şi din oţel inoxidabil rezistă la
coroziuni
Figura 33
44
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Braţul indicator este direct conectat la un potenţiometru O tensiune de ieşire analogică
care este direct proporţională cu direcţia vantului este produsă atunci cacircnd se injectează un
curent de 02 mA pe potenţiometru Formula de calcul este următoarea
Direcţie vacircnt = V aloarecitit ălowast360
1800
322 Funcţii de transmitere a datelor
Pentru transmisia datelor am folosit mai multe modemuri inteligente produse de firma
italiană Telit
3221 Modemuri utilizate
Telit GE863-GPSEZ-10
45
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 34
Figura 35
Modem GE863-GPS Modem EZ-10
Extensia Easy Script este o trăsătură care permite comandarea internă modemului
scrierea aplicaţiei de control icircntr-un limbaj de nivel inalt Python
Extensia Easy Script are ca ţintă aplicaţiile folosite de obicei pentru un microcontroler
de mici dimensiuni care admistrează anumiţi pini de intrareieşire şi modulul prin intermediul
interfeţei de comenzi AT
O asemenea configuraţie se poate reprezenta schematic după cum urmează
46
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 36
Pentru a elimina controlerul extern (EXTERNAL CONTROLLER) şi mai mult pentru
a simplifica programarea secvenţei de operaţii sunt incluse urmatoarele elemente
Dispozitiv de interpretare a scripturilor Python (vers 152+)
O memorie non volatilă de 3 Mb pentru scripturile şi datele utilitator
O memorie RAM de 1215 Mb rezervată pentru utilizarea interpretorului
Python
O reprezentare schematică ar fi următoarea
47
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 37
3222Descrierea de implementare icircn python
Scripturile Python sunt fisiere text memorate in memoria non volatilă a modulului
Telit Este prezent un sistem de fişiere icircn interiorul modulului care permite scrierea şi citirea
fişierelor cu nume diferite pe un singur nivel ( nu sunt suportate subdirectoarele ) Este
posibilă rularea unui singur script la un moment dat Scritul Python exte executat icircn interiorul
modulului Telit la cel mai scăzut nivel de prioritate asiguuracircndu-se prin aceasta că nu se
suprapune cu operaţiile normale GSMGPRS Acest lucru permite porturilor seriale
protocoalelor de stivă etc să ruleze independent faţă de script-urile Python
48
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Scriptul Pythin interacţioneză cu funcţionalitatea modulului Telit prin patru interfeţe
interne
Figura 37 Structura internă modem GE863-GPS
49
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 38 Structura internă modem EZ-10
Intefaţa MDM este cea mai important Permite scriptului Python să să trimită comenyi
AT să primească raspunsuri şi indicaţii nesolicitate să trimită date icircn reţea şi să
primească date din reţea pe durata conexiunii Este aproximativ la fel ca interfaţa unui port
serial uzual din modulul Telit Diferenţa este că această interfaţă nu este a unui port serial
real este doar o legătură software internă intre Python şi dispozitivul intern de macircnuire a
comenzilor AT Toate comenzile AT care funcţionează icircn cazul modulului Telit
funcţionează şi in această interfaţă internă la fel de bine
MDM2 este a doua interfaţă icircntre Python şi dispozitivul intern şi mobil de macircnuire a
comenzilor AT Este folosită pentru a trmite comenzi AT dinspre scriptul Python către
dispozitivele mobile şi să recepţioneze răspunsurile AT de la dispozitivele mobile către
scriptul Python atunci cacircnd clasica interfaţă MDM este deja ocupată
50
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Interfţa SER permite scriptului Python să citescă din şi să scrie către portul serial fizic
ASC0 care este folosit pentru a trimite comenzi AT catre modul de exemplu pentru a citi
informatii de la un dispozitiv extern Cacircnd Python rulează acest port serial este disponibil
pentru a fi folosit de un script Python deoarece nu este folosit ca o interfaţă de comenzi
AT pentru că parserul de comenzi AT este mapat intr-un port serial virtul intern Nu este
disponibil nici un control al fluxului pe acest port
Interfaţa SER2 permite scripturilor Python să citească de la şi să scrie pe un port serial
fizic (real) ASC1 care este de obicei disponibil pentru urmărire şi depanare (trace and
debug)
Interfata GPIO permite scriptului Python să administreze intrările şi ieşirile generale mai
rapid decat prin intermediul comenzilor AT eliminacircnd faza de parsare a comenzilor şi
trecacircnd direct la controlul pinilor
Interfaţa MOD este o colecţie de funcţii utile
Interfaţa IIC este o implementare in Python a magistralei Master IIC Permite Python-ului
să creeze sau mai multe magistrale IIC pe pini GPIO disponibili
Interfata SPI este o implementare icircn Python a magistralei Master SPI Permite Python-ului
să creeze sau mai multe magistrale SPI pe pini GPIO disponibili
Interfaţa GPS este interfaţa dintre Python şi controlerul GPS al dispozitivului mobil Este
folosită de regula pentru a comanda controlerul GPS fără a folosi comenzi AT dedicate
prin intermediul interfeţei MDM
Interfaţa DAC (Digital Analog Convertor)
Modulul GE863-GPS furnizează un convertor numeric-analog Semnalul numit DAC_OUT
este disponibil pe pinul 17 al placii pe care este integrat modulul
Convertorul funcţioneză pe 10 biţi şi este capabil să genereze o valoare analogică
specifica unei intrări furnizacircnd valori in intervalul 0 ndash 1023 Pentru acest lucru este necesară
o filtrare
MIN MAX UNITĂŢI
Interval de tensiune
(filtrat)
0 26 volţi
Interval 0 1023 Paşi
51
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Precizia este de asemenea de 10 biţi dacă considerăm că valoare maximă este de 2V
valoare voltajul integrat poate fi calculateă prin următoarea formulă
Valoarea de ieşire a voltajului integrat = 2valoare1023
Este dinponibilă o comandă AT pentru utilizarea funcţiei DAC
Comanda este
ATDAC=ltenablegtltvaluegt
Parametri
o ltenablegt seteză ieşirea DAC pe enabledisable poate lua valorile 0 sau 1
0=disable este icircn stare de inaltă impedanţă (setat implicit din fabrică)
1=enable reprezintă ieşirea corespunzătoare care se transmite
o ltvaluegt factorul de scalare a tensiunii de ieşire trebuie sa fie present dacă
enable=1
Interfaţa ADC (Analog Digital Convertor)
Modulul GE863-GPS furnizează un convertor analog-numeric Semnalul numit
DAC_IN1 este disponibil pe pinul 19 al placii pe care este integrat modulul
Convertorul funcţionează pe 11 biţi şi ste capabil să citească un nivel de tensiune
cuprins icircn intervalul 0-2V aplicat pe pinul de intrare ADC pe care icircl memorează şi icircl
converteşte icircntr-un cuvacircnt pe 11 biţi
MIN MAX UNITĂŢI
Interval
tensiune intrare
0 2 volţi
Conversie AD - 11 Biţi
Rezoluţie - lt1 mV
Este dinponibilă o comandă AT pentru utilizarea funcţiei ADC
52
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Comanda este
ATADC=12
Parametri 1 reprezintă tipul modului folosit
2 interoghează modemul pentru valoare ADC
Valoarea returnată reprezintă o tensiune măsurată icircn mV
323 Funcţii de supraveghere
Aplicaţia permite supravegherea procesului de măsurare a mărimilor specifice Un
mare avantaj al aplicaţiei il constituie faptul că se poate icircngloba in orice context chiar dacă in
soluţia propusă in această lucrare sunt supravegheate cacircteva marimi concrete
Aceste mărimi ( temperatură direcţia vacircntului şi tensiune ) sunt recepţionate de către
dispecer la intervale de timp prestabilite şi afişate prin intermediul unei interfeţe grafice pe
calculatorul central
Dispecerul poate analiza comportamentul unei mărimi icircn sensul vizualizării ultimelor
100 de valori recepţionate in forma grafică sau poate vizualiza comportamentul marimii
respective dintr-o zi anume
4 Proiectarea icircn detaliu
53
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Aplicaţia beneficiază de o arhitectură client-server cu mai multi client şi un singur
server Interacţiunea TCP dintre clienţi şi server se desfăşoară icircn felul următor
CLIENTUL
1 Crează un socket TCP
2 Stabileşte conexiunea
3 Comunică
4 Inchide conexiunea
SERVERUL
1 Crează un socket TCP
2 Asignează un port la socket
3 Aşteptă conexiuni
41 Implementare la nivel de client
Nivelul client al aplicaţiei este reprezentat de modemurile Telit mai exact de
scripturile Python care rulează pe aceste modemuri
411 Implmentare Python
Fiecare modem contine un script implementat in Python Acest script realizează
urmatoarele functii
4111Funcţie de iniţializare a modemului
Icircn această funcţie se introduce codul PIN pentru cartela SIM din fiecare modem
Instrucţiunea care face acest lucru este
MDMsent(lsquoAT+CPIN=1234rrsquo20)
După introducerea codului PIN se configurează contextul PDP (Packet Data Protocol)
cu următoarea instrucţiune
54
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
MDMsend(AT+CGDCONT=1IPAPNr20)
Unde
1 - indentificator de context PDP
IP ndash specifică tipul protocolului (IP sau PPP)
APN - Acces Point Name
Urmează definirea utilizatorului şi a parolei
MDMsent(lsquoATUSERID=rdquoutilizatorrdquorrsquo20)
MDMsent(lsquoATPASSW=rdquoparolardquorrsquo20)
Pentru a realiza conexiunea la reţeaua GPRS se utilizează următoarea comandă
MDMsent(lsquoATGPRS=1rrsquo20)
4112 Funcţie de citire a timpului
Această funcţie citeşte timpul furnizat de modem cu ajutorul instrucţiunilor
MDMsend(at+cclkr30)
timp=MDMreceive(10)
Formatul in care modemul returnează timpul este
YYYYMMDD HHMMSSTimeZone
format reţinut icircn variabila timp de tip string Dup ace se obţine minutul şi secunda icircn
variabile separate de tip string se converteşte icircn integer si se verfică daca s-a ajuns la
intervalul prestabilit necesar pentru a transmite informaţiile şi se apelează funcţiile pentru a
citi datele de la senzori si pentru a transmite către calculator
4113 Funcţie de citire date
Felul in care se citesc datele depinde de modul icircn care senzorul transmite datele
Interfaţă ADC
Pentru a citi datele prin interfaţa ADC se foloseşte următoarele instrucţiuni
MDMsend(ATADC=12r20)
Val_ADC=MDMreceive(20)
Formatul icircn care modemul returnează valoarea ADC este
ADC 289
OK
55
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
format reţinut in variabila Val_ADC de unde este prelucrat pentru a obţine valoarea
289 icircn cazul de faţă Această valoare este exprimată icircn milivolţi
Interfaţa SER
Pentru a citi datele prin interfaţa SER primul pas este setarea vitezei de transmisie a
portului serial
SERset_speed=(lsquo9600rsquo) pentru modelul GE863-GPS
SERset_speed=(lsquo9600rsquorsquo8N1rsquo) pentru modelul EZ-10
Pentru a transmite şi recepţiona date se folosesc comenzile
SERsend(lsquomesajrsquo)
Val_SER=SERreceive(10)
Interfaţa GPIO
Interfaţa GPIO este folostă pentru a seta valorile pinilor GPIO din scriptul Python şi
pentru a citii valorile pinilor pinilor GPIO
Următoare instrucţiuni se pot folosi icircn acest sens
GPIOsetIOvalue(GPIOnumber value)
GPIOgetIOvalue(GPIOnumber)
Pentru a seta direcţia pinilor GPIO (intrareieşire) se folosesc următoarele instruţiuni
GPIOsetIOdir(GPIOnumber value direction)
GPIOgetIOdir(GPIOnumber)
4114 Funcţie de transmitere date
Icircn prima fază aceată funcţie realizează generarea mesajului care conţine datele de
transmis icircn următoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
unde
NrModem ndash Identificatorul modemului
NumeModem ndash Denumirea modemului
Timp ndash Data şi ora la care s-au citit parametri
IdParam1 ndash tipul primului senzor
ValParam1 ndash valoarea citită de la primul senzor
IdParam2ndash tipul celul de al doilea senzor
56
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
ValParam2 ndash valoarea citită de la cel de al doilea senzor
Următoarea fază este conectrea la calculatorul central Acest lucru se face prin
instrucţiunea
MDMsend(ATSKTD=Tip_SocketRemote_PortRemote addresr50)
unde
Tip_Socket ndash tipul socketului (0 pentru TCP 1 pentru UDP)
Remote_Port ndash Numarul portului utilizat
Remote addres ndash Adresa IP a calculatorului central (se poate folosi şi DNS)
Următoarea fază este trimiterea mesajului generat anterior Acest lucru se face prin
urmatoarea instrucţiune
MDMsend(mesaj70)
după care se inchide conexiunea prin
MDMsend(lsquo+++rsquo20)
Schema logica a implementării programului Python este
57
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 41 Scema logica a programului Python
42 Implementare la nivel de Server
58
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
La nivel de server am implementat un program in CVI ( C for Virtual Instruments) un
produs al companiei americane National Instruments Acest program permite acceptarea
cererilor de conexiune provenite de la cleinţii prelucrarea informaţiilor recepţionate
generarea dinamică a interfeţei de vizualizare a informaţiilor recepţionate precum şi arhivarea
datelor măsurate
O schemă logică generală este cea care urmează
Figura 42
421 Comunicaţia Client-Server
59
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Funcţiile implementate pentru a realiza comunicaţia icircntre clienţi si server sunt descrise
mai jos
Funcţia main
Funţia main incarcă panelul principal crează o lista cu clienţii conectaţi porneşte
serverul TCPIP prin apelul funcţiei ServerCallback afişează panelul principal şi la ieşire
deconectează clienţii şi opreşte serverul TCPIP
Funcţia ServerCallback
Funcţia ServerCallback se apelează icircn trei cazuri icircn funcţie de un anumit parametru
1 Cacircnd se conectează un nou client
2 Cacircnd se deconectează un client
3 Cacircnd se recepţioneză date de la un client
1 Cacircnd un nou client se conectează funcţia ServerCallback apelează funcţia ConnectClient
Această funcţie
generează structura de date pentru client
citeşte adresa IP a clientului salvează icircn structură
generează un thread separat pentru client prin apelul funcţiei
ClientThreadFunction
adaugă clientul la lista de clienţi conectaţi
generează interfaţa pentru clientul respectiv
Funcţia ClientThreadFunction prin intermediul threadului generat se citesc datele de la
client Se foloseşte thread separat pentru fiecare client pentru a evita blocarea serverului
2 Cacircnd se deconectează un client funcţia ServerCallback apelează funcţia DisconnecttClient
care deconecteză clientul prin apelul funcţiei Disconnect care
opreşte threadul clientului
eliberează threadul
deconecteză clientul
sterge din lista clinţilor conectaţi
eliberază structura de date din memorie
60
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
3 Cacircnd se primesc date de la un anumit client funcţia ServerCallback apelează funcţia
DeferredReceive Această funcţie citeşte date recepţionate de la client prin threadul
generat pentru client prin funcţia Server TCPRead şi le depune int-un buffer
422 Interpretarea datelor de către server
Icircn continuare se face prelucrarea mesajului recepţionat Orice mesaj recepţionat de
server are urmatoarea formă
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
După ce s-a recepţionat mesajul se desface acest mesaj pentru a putea afisa doar informaţiile
necesare icircn locurile corespunzătoare in funcţie de amplasarea caracterului bdquo_rdquo astefel avem
urmatoarele segmente NrModemNumeModem Timp IdParam1ValParam1
IdParam2ValParam2
Icircn continuare se prelucrază fiecare segment icircn parte după caracterul bdquordquo
La prima conectare a unui client aplicaţia generează elementele de vizualizare cu
parametrii clientului respectiv după cum se vede icircn figura de mai jos
Fig 43
Icircn momentul generării idenificatorul clientului icircmpreună cu elementele generate
acestea sunt salvate icircn structura modemului
La o transmisie ulterioară cacircnd clientul este deja conectat procesul de generare a
elementelor de vizualizare nu se mai realizează facacircndu-se doar reicircmprospătarea
informaţiilor
61
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
423 Interfaţa grafică
Interfaţa grafică cu utilizatorul este concepută diamic icircn sensul că icircn funcţie de
formatul datelor pe care le transmite fiecare client in parte aceasta generează dinamic afişarea
informaţiilor primite Informaţiile afişate icircn momentul actual sunt o temperatură măsurată de
un senzor de temperatură direcţia vacircntului masurată cu un intrument corespunzător o
tensiune masurată cu ajutorul unui multimetru digital
Ulterior dacă se doreşte afişarea unei noi mărimi tot ce trebuie făcut este pregătirea
informaţiilor de transmis in formatul pe care icircl cunoaşte calculatorul central La icircntacirclnirea
acestui format interfaţa va genera automat o fereastră cu informaţiile corespunzătoare
Figura 44
Icircn cazul in care utilizatorul doreşte să vizualizeze comportamentul mărimii măsurate
se apasă butonul Diagrame şi apare o fereastră care prezintă icircn mod grafic evoluţia
parametrilor
62
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 45
424 Arhivarea datelor
După afişarea datelor aplicaţia salvează datele icircn fişiere de tip csv Acest format de
fisier permite importarea datelor in exel de unde pot fi preluate foarte uşor de catre o bază de
date In cadrul procesului de salvare aplicaţia crează un director Arhive Icircn acest director va
genera cacircte un subdirector pentru fiecare client ţinacircnd cont de identificatorul si numele
clientului icircn care va crea un fişier separat pentru fiecare zi conţinacircnd infotmaţiile din ziua
respectivă(fig 353)
63
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 46
Beneficiind de aceste informaţii din fişierele generate se poate vizualiza arhivele
generate icircn format grafic prin apăsarea pe butonul arhive Cand se apasa pe acest buton apare
o fereastră icircn care utilizatorul selectează modemul dorit data şi parametrul după care se apasă
butonul Afişare
64
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Figura 47
43 Scalabilitatea sistemului
Icircn lume la ora actuală se pune un puternic accent pe scalabilitatea sistemelor Ţinacircnd
cont de acest lucru am rezolvat această problemă a scalabilităţii icircn sensul ca aplicaţia permite
icircn orice moment adăgarea de noi modemuri inteligente pentru a transmite noi informaţii
indifferent de natura acestora
Concret acest lucru depinde de felul in care este programat modemul Informaţiile
recepţionate de modem de la sensor trebuie prelucrate si aranjate in formatul descris anterior
la descrierea funcţiei de transmitere date
NrModemNumeModem_Timp_IdParam1ValParam1_ IdParam2ValParam2
65
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
După ce datele au fost prelucrate icircn acest format se trimit catre server Severul in funcţie de
NrModem va ştii dacă trebuie sa creeze un nou element de vizualizare sau nu iar restul
informaţiilor primite vor fi afişate corespunzător pe acest element
66
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
5 Instalare unelte soft
51 Instalare mediu de dezvoltare PythonWin
Kitul de instalare pentru limbajul Python necesită ca PC-ul pe care urmează să fie
instalat să aibă ca sistem de operare Windows 2000 sau XP
Fişierul executabil se poate descărca gratuit de la urmatoarea adresa
httpjimdgrayassoccomINSTALLING20PYTHONWIN20ON20WINDOWS20PCzip Pentru a
instala pachetul Telit Python se execută fisierul executabil şi se permite procesului de
instalare să folosească setrările implicite Fişierul de instalare conţine un pachet de instalare
Python Pachetul Pyton este plasat icircn directorul CProgram FilesPython
Figura 51
67
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
52 Instalare LabWindowsCVI
Figura 52
68
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Fig 53
69
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
6Concluzii
Dezvoltarea unor astfel de module inteligente vor duce la o dezvoltare semnificativa a
sistemelor automate si vor sustine la un nivel ridicat necestitatile firmelor de a monitoriza si
controla la distanta si in orice moment o instalatie de proces RTU-ul inteligent aduce
numeroase beneficii atat dezvoltatorilor de astfel de sisteme usurandu-le munca cat si
beneficiarii care vor obtine un raport pret calitate ridicat Fiabilitatea si flexibilitatea
sistemelor telemetrice duce la o exploatarea optima in conditii de siguranta ridicata Pe viitor
se prevede o extindere a inteligentei la nivel de senzori si acuatori Asa cum RTU-ul clasic a
fost inglobat in modemul inteligent la randul lui modemul inteligent va fi inglobat in sensor
(figura 51)
Figure 61 Senzor inteligent
Acesta evolutie este un lucru bun si in acelas timp riscant deoarece trebuie acordata o
atentie deosebita etapei de proiectare a unui astfel de sistem
Evolutia tehnologică face ca aceste componente sa poata fi utilizate in tot mai multe
situatii ceea ce duce la marirea sferei de aplicabilitate Datorita unui raport pret-calitate
scazut aceste sisteme devin tot mai accebile avand repercursiuni benefice asupra stilului de
viata prin realizarea unui mediu ambiant atractiv atat acasa cat si la serviciu asupra mediului
actionandu-se prin realizarea monitorizarii permanente si controlului unor factori de mediu
greu accesibili si cu influenta asupra infrastructurii unor incinte sau amplasamente care pot
afecta viata omului
70
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
7 Bibliografie
[1] R Cazan L Chirila A Marichescu - RTU-s inteligence evolution
[2] Cristina Grabiela Saracin Marin Saracin Vasile Valentin Golea ndash Măsurări Electricee şi
Electronice ndash Ed Matrixrom 2005
[3] Heine Gunnar Holger Sagkob - GPRS Gateway to Third Generation Mobile Networks-
Published By Artech House 2003
[4] Conf Dr Ing Octavian Fratu -Comunicaţii Mobile Digitale Sistemul GPRS ndash notite curs
[5] AT Commands Reference Guide - Documentaţie asigurată de producător
[6] Easy GPRS User Guide - Documentaţie asigurată de producător
[7] Notiţe curslaborator - Introducere icircn mediul de programare LabWindowsCVI
[8] httpenwikipediaorgwikiMachine_to_Machine - M2M
[9] Easy Script in Python - Documentaţie asigurată de producător
71
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72
UNIVERSITATEA TEHNICA CLUJ NAPOCA
FACULTATEA DE AUTOMATICA SI CALCULATOARE Proiect de diplomă SECTIA CALCULATOARE
Anexe
DVD-ul ataşat Proiectului de diplomă cuprinde anexele- Documentaţia icircn format electronic care se găseste in diretorul
bdquoDocumnetaţierdquo- Aplicaţia care se găseşte icircn directorul bdquoSurse diplomărdquo
72