Sunteți pe pagina 1din 30

Universitatea Tehnic Cluj-Napoca Facultatea de Electrotehnic Catedra de Electrotehnic

Sistem electric de acionare comandat de calculator

Rezumat Tez de doctorat

Conductor tiinific Prof.univ.dr.Dan Micu Doctorand ing.Ovidiu igovan

Cuprins Cap1. Introducere .................................................................................................................2 Cap2. Stadiul actual al cunoaterii n comanda motoarelor pas cu pas ..................................6 Motorul pas cu pas ...............................................................................................................6 2.1 Definiie ......................................................................................................................6 Moduri de comand..........................................................................................................7 2.2 Comanda software ......................................................................................................7 2.2.1 Comanda folosind limbajul C.................................................................................8 2.2.2 Program2.Comanda cu jumtate de pas ...............................................................8 2.3 Comanda MPP cu microcontrolere .............................................................................9 2.3.1 Comanda cu putere ntreag...............................................................................10 Program1 ....................................................................................................................10 Cap3. Portul paralel LPT ......................................................................................................10 3.1 Exemplu de circuit de comand prin portul paralel ....................................................11 3.2 Variant original de program pentru MPP unipolar..................................................12 Cap4. Protocoale de comunicaie........................................................................................14 4.1 Protocolul X10...........................................................................................................14 4.2 Protocolul Super Stepper...........................................................................................15 Cap5. Contribuii la realizarea protocolului XMSIG ..............................................................17 5.1 Crearea unei ci de comunicaie ntre oricare dou PC-uri.........................................17 5.2 Trimiterea datelor la distan ntr-o foaie de calcul n Excel. ......................................18 5.3 Crearea unui format de cadru al unui cuvnt de protocol ..........................................20 Cap.6 Concluzii....................................................................................................................23 BIBLIOGRAFIE SELECTIV ....................................................................................................28

Cap1. Introducere

Conectarea unui actuator cu motor pas cu pas la un calculator presupune implementarea unei interfee ntre cele dou componente. Industrial exist o mare varietate de interfee,fie cu circuite integrate specializate, fie cu microcontrolere, fie cu microprocesoare. Schema blocurilor funcionale ar fi : Translatorul care livreaz impulsurile de comand. Driverul care asigur curentul necesar nfurrilor

Se face o prezentare general a motoarelor pas cu pas insistnd asupra regimurilor de comand ale motorului unipolar.Se evalueaz modaliti de comand hardware cu tranzistoare, cu circuite integrate specializate(LM297 LM 298) sau cu microcontrolere. Centrul de greutate ns l reprezint partea de comand software, n ideea folosirii de hardware minimal i a suplinirii componentelor hard prin software. Se propune folosirea unui driver simplu cu tranzistoare conectat la portul paralel al calculatorului,acesta primind secvenele de comand necesare prin controlul software al portului paralel. Ideea a fost de a realiza o interfa ct mai simpl folosind doar facilitaile oferite de orice calculator, eliminnd pe ct posibil folosirea unor circuite integrate specializate i beneficiind de puterea calculatorului incomparabil mai mare dect a oricrui circuit integrat specializat. S-a folosit astfel editorul Visual Basic din programul Excel care este rezident n orice calculator deci nu e necesar instalarea unui software special pentru acionarea electric a motorlui conectat la calculator prin intermediul portului paralel ( LPT ). Pentru uurarea controlului s-a proiectat o interfa simpl cu utilizatorul, intuitiv, alocnd butoanelor de comand create semnificaia corespunztoare tipurilor de comand posibile pentru un MPP unipolar.(monopolar,bipolar i jumtate de pas). Comanda se poate face pas cu pas sau rotaii complete, iar viteza se poate regla prin modificarea duratei impulsurilor de comand folosind instruciunea Sleep(). Dezvoltnd posibilitatea conectarii mai multor actuatoare distribuite oriunde n Internet,s-a impus crearea unui protocol de comunicare ntre centrul de comand i actuatoare. S-a studiat astfel Protocolul X10 care permite controlul diverselor dispozitive electronice printr-un protocol de comunicaie grefat pe circuitul prizelor dintr-o cas.Protocolul permite adresarea dispozitivelor precum i transmiterea de comenzi specifice doar dispozitivelor grupate

ntr-o singur locaie.Formatul unui cadru conine cmpurile de Start,Cod Cas i Cod Comand. Dezavantajele sunt : Suportul datelor tensiunea reelei de 220V. Limitare local la nivel cas,instituie etc. Achiziie echipamente de la productor. Un alt protocol studiat Protocolul Super Stepper conecteaz un modul Master Controler la 32 de module sclav pe o magistral de date (SSB-super stepper bus) cu 3 linii : SST super stepper transmit, SSR - super stepper receive i Mas. Formatul unui cadru conine un octet Antet i unul sau mai muli Operanzi n funcie de codul comenzii coninute n antet. Dezavantajele sunt : Interfaare echipamente cu RS-422. Necesar construirea reelei de interconexiuni. Instalare software dedicat. Pentru a obine posibilitatea controlului unor actuatoare distribuite oriunde n lume a fost nevoie de folosirea Internetului. Orice protocol de comunicaie trebuie s asigure trei cerine : 1. S ofere utilizatorului specificaii clare de utilizare. 2. Fiabilitatea : Detecia erorilor de comunicaie.Tratarea erorilor de comunnicaie se poate face prin detecie sau prin corecia erorilor. Algoritmii de corecie consum ns mult timp i nu sunt folosii n practic. Este preferat detecia erorilor i retransmisia cadrelor eronate deoarece mecanismul este mult mai rapid. 3. Reziliena : Refacerea pachetelor pierdute. Cerinele sunt asigurate de protocolul TCP/IP . Ideea : ncapsularea comenzilor n pachete TCP/IP care folosete algoritmul CRC(Cyclic Redundancy Check) pentru detecia erorilor de transmisie. Utilizarea modelului Client-Server. Acesta ofer o suit de protocoale numit TCP/IP care faciliteaz comunicarea ntre oricare dou calculatoare conectate la reeaua Internet, pe baza adresei IP i respectiv MAC. S-a folosit pentru implementare modelul Client-Server.

Acesta presupune crearea a dou socluri pe fiecare calculator i alocarea la fiecare soclu a unei adrese de port local la care s atepte cereri de conectare din partea aplicaiei Client. Soclurile pot fi interpretate prin analogie, cu aparatele telefonice din reeaua telefonic.Orice telefon are nevoie de alocarea unui numar la care abonatul s poat fi sunat.Prin analogie fiecrui soclu i va fi ataat un numr de port la care poate fi accesat. Crearea soclurilor n Visual Basic este realizat prin folosirea controlului winsock care trebuie inserat n formularul VB care va fi creat pentru aplicaia Server. Era nevoie ns de un protocol de nivel nalt care s fie ncapsulat n stiva TCP/IP i care s poat adresa i trimite comenzi,oricrui actuator conectat la un calculator legat la Internet. Protocolul definete un format de cadru format din trei cmpuri corespunztoare parametrilor de comand i codurilor comenzilor pentru regimurile de comand monopolar,bipolar i cu jumtate de pas crora li se aloc trei TextBox-uri n formularul creat n Visual Basic 6. Fiecare cmp are alocat un TextBox care conine valoarea parametrilor i a comenzilor. Comenzile i parametrii se transmit conacatenate sub forma unui ir de caractere delimitate prin caracterul spaiu. La recepie folosind instruciunea InStr (start character number,string,delimiter) afm numrul de caractere pna la apariia primului caracter delimitator, apoi pn la al doilea procesul fiind repetat pn la ultimul delimitator. Apoi cu instruciunea Mid (string,start character number,stop character number)sunt extrai parametrii de comand i codurile comenzilor. Sunt apelate acum rutinele de comand corespunztoare codurilor recepionate, care vor transmite secvenele de comand motorului pas cu pas. Comanda se face pas cu pas sau rotaii complete. Teza soluioneaz i problema transmiterii la distana a datelor ntr-o foaie de calcul creat n Excel i aflat la distan pe un calculator conectat la reeaua Internet. Soluia poate fi folosit i pentru actualizarea unei foi de calcul Excel creat de proprietar pe o pagin Web public. Protocolul elaborat rezolv aceast problem i va fi descris n tez. Teza ofer astfel dou soluii originale referitoare la interfaarea

actuatoarelor cu calculatorul folosind programul Excel i la implementarea unui protocol de comunicaie (protocolul XMSIG) ntre un centru de comand i actuatoarele distribiute oriunde n reeaua Internet. Protocolul XMSIG faciliteaz o gam larg de automatizri posibile. Se poate controla astfel o camer de luat vederi aflat la distan, comandnd zona de vizualizare sau zoom-ul camerei. Se pot comanda la distan elemente de execuie, cum ar fi electrovalele sau relee sau motoare pas cu pas. Informaiile referitoare la parametrii procesului controlat pot fi transmise centrului de comand folosind UDPLPT, coreciile necesare fiind apoi aplicate prin intermediul protocolului XMSIG. Putem crea orice automatizare care poate fi controlat prin portul paralel LPT. Gama de aplicii posibile este foarte variat datorit controlului total al portului paralel asigurat de aplicaiile descrise n tez. in s mulumesc i s-mi exprim recunotiina i cele mai calde mulumiri conductorului tiinific, domnului profesor dr. ing. Dan Micu, pentru ndrumarea competent n eleborarea prezentei lucrri.
Cap2. Stadiul actual al cunoaterii n comanda motoarelor pas cu pas .

Motorul pas cu pas

Teoretic motorul pas cu pas este construit foarte simplu.Nu are perii sau contacte.n esen este un motor sincron al crui cmp electromagnetic este comutat electronic pentru a pune n micare rotorul motorlui.[1] 2.1 Definiie Motorul electric pas cu pas este un convertor electromagnetic care realizeaz conversia impulsurilor de comand aplicate fazelor motorului ntr-o micare de rotaie ce const din deplasri unghiulare discrete, de mrime egal i care reprezint paii motorului. Numrul pailor efectuai trebuie s corespund, n cazul unei funcionri corecte, cu numrul impulsurilor de comand aplicate nfurrilor motorului. Majoritatea motoarelor pas cu pas sunt bidirecionale i permit o accelerare, oprire i reversare rapid fr pierderi de pai, dac sunt comandate cu o frecven inferioar frecvenei limit corespunztoare
6

regimului respectiv de funcionare. Pentru extinderea funcionrii motoarelor pas cu pas la viteze mai mari dect viteza corespunztoare frecvenei limit, este necesar o accelerare prin cretere treptat a frecvenei impulsurilor de comand. Motoarele pas cu pas sunt utilizate n special n aplicaiile unde se dorete realizarea unei micri incrementale, folosind sisteme de comand numeric. Avantajele utilizrii motoarelor pas cu pas sunt urmtoarele: asigur univocitatea conversiei impuls-deplasare i pot fi utilizate n circuit deschis gam larg de frecvene de comand precizie i putere de rezoluie (numr de pai pe rotaie) mrite permit porniri, opriri, reversri, fr pierderi de pai memoreaz poziia sunt compatibile cu tehnica numeric Dezavantajele utilizrii motoarelor pas cu pas sunt: unghi de pas, deci increment de rotaie, de valoare fix pentru un motor dat randament sczut capacitate limitat n ceea ce privete acionarea unor sarcini cu inerie mare vitez de rotaie relativ sczut necesit o schem de comand adaptat la tipul constructiv respectiv i relativ complex, pentru asigurarea unei funcionri la viteze mari. Moduri de comand - cu jumtate de putere(o faz activ) - cu putere intreag(dou faze active) - cu jumtate de pas(una i dou faze active) microstepping(variaie continu a curenilor prin motor) 2.2 Comanda software Pentru a comanda motorul pas cu pas unipolar putem folosi diverse limbaje cum ar fi :

2.2.1 Comanda folosind limbajul C.

Program1.Comanda cu putere ntreag [16] #include <REG2051.H>. #define stepper P1 void delay(); void main(){ while(1){ stepper = 0x0C; delay(); stepper = 0x06; delay(); stepper = 0x03; delay(); stepper = 0x09; delay(); } } void delay(){ unsigned char i,j,k; for(i=0;i<6;i++) for(j=0;j<255;j++) for(k=0;k<255;k++); }
2.2.2 Program2.Comanda cu jumtate de pas

void main(){ while(1){ stepper = 0x08; delay(); stepper = 0x0C; delay(); stepper = 0x04; delay(); stepper = 0x06; delay(); stepper = 0x02; delay();
8

stepper = 0x03; delay(); stepper = 0x01; delay(); stepper = 0x09; delay(); } } 2.3 Comanda MPP cu microcontrolere O posibil schem de conectare ar fi urmtoarea : [25][26]

Figura1.

Ieirile microcontrolerului sunt conectate la buferul 4050 i apoi sunt conectate la un transistor NPN de tip Darlington.S-au folosit tranzistoare TIP120. Acestea lucreaz ca i comutatoare activnd pe rnd nfurrile MPPului.

Datorit sarcinii inductive ce apare la comutarea de la o nfurare la alta n paralel cu jonciunea colector-emitor a trebuie s conectm tranzistoarelor o diod 1N4001. Tranzistoarele TIP120 au aceast diod inclus . Cea mai simpl modalitate de comand este cea cu putere ntreag fiecare nfurare fiind activat pe rnd.Dup terminarea secvenei comenzile se repet la infinit pn cnd tensiunea de alimentare este oprit. Programul de comand este foarte simplu.[28] Se folosesc comenzile high sau low pentru controlul liniilor de ieire.
2.3.1 Comanda cu putere ntreag Program1

Symbol delay = B0 delay = 25 loop: high 0 pause delay low 0 high 1 pause delay low 1 high 2 pause delay low 2 high 3 pause delay low 3 goto loop ' forever

' use b0 as the delay variable ' set the delay to 25 ms ' turn on Q1 ' wait 25 ms ' turn off Q1 ' turn on Q2 ' wait 25 ms ' turn off Q2 ' turn on Q3 ' wait 25 ms ' turn off Q3 ' turn on Q4 ' wait 25 ms ' turn off Q4

Cap3. Portul paralel LPT Portul reprezint un set de linii pe care CPU trimite i primete semnale de la dispozitivele periferice.Folosim porturile pentru a comunica prin intermediul unnui modem,a imprimantei,a tastaturii,a mouse-ului etc.Un port paralel trimite 8 bii odat i primete 5 bii. Portul serial RS 232 poate primi i recepiona un bit n accelai timp.[39][41][42]

10

3.1 Exemplu de circuit de comand prin portul paralel Circuitul a fost proiectat pentru un MPP unipolar de 12V ; 1,8/pas i 0,16A/faz(nfurare). Vom folosi ca driver circuitul ULN2803 pe 8 bii , care suport tensiunea maxim de 50v i un current de ieire de 500mA,care accept intrri TTL. Pentru a izola placa de baz de interfaa cu MPP-ul vom folosi optocuplori IC4N35.[22]

Figura2.

Schema de conectare a motorului pas cu pas fr optocuplori este n figura 4 :[39]

11

Figura3.

Programarea pentru motor unipolar Pentru a comunic cu portul paralel evitnd conflictele cu alte device-uri conectate la PC vom folosi inpout32.dll .Este o Rutina care permite accesarea portului paralel .Algoritmul rutinei este : 3.2 Variant original de program pentru MPP unipolar Programul a fost scris n Microsoft Excel folosind editorul Visual Basic din meniul macros->VB editor.[84].In fereastra ce apare se face click pe Insert Module iar n modul se scrie codul : Public Declare Function Inp Lib "inpout32.dll" Alias "Inp32" _ (ByVal PortAddress As Integer) _ As Integer Public Declare Sub Out Lib "inpout32.dll" Alias "Out32" _ (ByVal PortAddress As Integer, _ ByVal Value As Integer) Programul cheam rutina inpout32.dll din directorul system32 al Windowsului i deschide portul paralel. Acum se creeaz n foaia excel butoanele de comand:[85] Se prezint doar rutina pentru comanda bipolar,restul fiind create asemntor corespunztor regimului de comand dorit : Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Sub CommandButton1_Click() countit = 0

12

myTimer = 0 countit = Sheet1.Cells(4, 1) Do While countit > 0 myTimer = Sheet1.Cells(4, 3) Out 888, 3 Sleep (myTimer) If countit = 0.25 Then Exit Sub End If Out 888, 6 Sleep (myTimer) If countit = 0.5 Then Exit Sub End If Out 888, 12 Sleep (myTimer) If countit = 0.75 Then Exit Sub End If Out 888, 9 Sleep (myTimer) countit = countit - 1 Loop Out 888, 0 End Sub

13

Figura 4.

Cap4. Protocoale de comunicaie 4.1 Protocolul X10 Protocolul X10 folosete transmisia sincronizat cu momentul trecerii prin zero al tensiunii alternative a reelei de 220V.Important este ca transmisia s se fac ct mai aproape de momentul trecerii prin zero i nu mai tarziu de 200 de microsecunde de la acest moment.[92] Cele dou module PSC04 transmittor i PSC05 transmittor-receptor genereaz un semnal dreptunghiular de 60 hz cu o ntrziere maxim fa de momentul trecerii prin zero al tensiunii de reea de maxim 100 de microsecunde. ntrzierea maxim ntre anvelopa semnalului de intrare i semnalul de ieire de 120 khz este de 50 de microsecunde fa de momentul trecerii prin zero a tensiunii reelei. Valoarea unu binar este reprezentat printr-un burst de 120khz cu durata de 1 milisecund fa de momentul trecerii prin zero iar un zero logic este reprezentat prin absena burstului . Cele dou module realizeaz modularea semnalului de intrare cu un semnal de 120 khz ,deci la intrarea lor trebuie aplicat doar anvelopa burstului de 1 milisecund .

14

Dac se lucreaz trifazat atunci burstul de 1 milisecunda trebuie transmis de trei ori i ct mai aproape de momentul trecerii prin zero a tensiunii de reea ca n figura.6.

Figura 5 .1 i 5.2

4.2 Protocolul Super Stepper Protocolul funcioneaza ntre un modul master Controler conectat la 32 de module sclav.[93] MC poate fi orice dispozitiv care posed un port UART cum gsim n orice PC. Magistrala de date pe 3 fire e numit SSB super stepper bus i conine semnalele : SSR super stepper receive SST super stepper transmit Masa ground Pe linia SSR se transmit comenzi iar pe linia SST se primesc confirmri . Interconectarea modulelor MC i sclav se face ca n figura6 : Adresarea modulelor sclav se face prin informaia plasat n antetul cuvntului de protocol unde sunt plasate i codurile comenzilor. Spaiul de adrese conine 5 din cei 8 bii ai antetului deci se pot adresa 32 de module sclav. Codurile de comenzi au alocai 3 bii din antet deci se pot codifica 8 comenzi. Comenzile se refer la scrierea i citirea memoriei i la comenzi de execuie.

15

Figura 6.

Formatul unui cadru este :

Dup antet modulul sclav ateapt N operanzi .Modulul tie ci operanzi urmeaz dup antet decodnd informaia din antet referitoare la codul comenzilor.

16

Dac toi octeii sunt receptionai corect,modulul sclav confirm recepionarea lor corect i trece la executarea comenzilor,iar dac nu s-a recepionat corect trimite la MC o confirmare negativ n care specific i cauza. Orice protocol de comunicaie trebuie s asigure trei cerine : 1.Proiectarea protocolului trebuie sa ofere utilizatorului specificaii clare de utilizare astfel nct s poat folosi rutinele protocolului independent de hardware. 2.Fiabilitatea : In cazul unei mediu de comunicaie cu zgomot trebuie s putem detecta i eventual corecta erorile de transmisie. 3.Reziliena : Posibilitatea testrii ciclice a liniei de comunicaie astfel nct s poat fi refcut orice pachet de date care s-a pierdut sau a fost transmis eronat. Toate aceste cerine sunt asigurte de protocolul TCP/IP folosit att n reelele locale ct i n Internet. Ideea a fost s folosesc acest protocol ca suport i s ncapsulez comenzile dorite de aplicaia mea n pachete TCP/IP. Cap5. Contribuii la realizarea protocolului XMSIG

5.1 Crearea unei ci de comunicaie ntre oricare dou PC-uri Pentru aceasta s-a folosit o Rutin n Visual Basic care conecteaz dou PC-uri dup care poate transmite n ambele sensuri iruri de caractere . Rutina funcioneaz astfel : S notm cele dou capete cu A i respective B.Vom crea un formular n VB cu dou casete text send i receive. Caracterele tastate n caseta send a nodului A vor fi transmise spre caseta receive a nodului B folosind controlul winsock. Controlul winsock realizeaz conectarea la perechea B aflat la distan specificnd numele RemoteHost-ului precum i adresa portului la care RemoteHost ateapt cereri de conectare.S-au folosit adresele 1001 pentru gazda B i 1002 pentru gazda A.[94] Ataarea adreselor de port se face cu instruciunea Bind .

17

Figura 7.

5.2 Trimiterea datelor la distan ntr-o foaie de calcul n Excel. Rutina funcioneaz astfel :[84][88][90] Pentru implementare s-a folosit modelul client-server. Aplicaia server va fi pus n bucl autoblocant Listen (ascult) pn la apariia unei cereri de conectare din partea clientului : La ncarcarea formularului va trebui s deschidem o foaie de calcul n Excel care va prelua datele transmise de Client : Private Sub Form_Load() Set exapp = New Excel.Appliction Set exbook = exapp.Workbooks.Add Set exsheet = exbook.Sheets(1) exsheet.Name = "Aici iau date de la client" c_line = 1 Command1_Click End Sub La sosirea unei cereri de conectare de la Client vom trece Serverul n starea accept : Private Sub sock_ConnectionRequest(ByVal requestID As Long) If sock.State = sckListening Then sock.Close
18

sock.Accept (requestID) End If End Sub Acum Serverul poate s preia datele de la Client.Acestea vor fi preluate n variabila s de tip ir. In foaia Excel deschis anterior se va scrie n caseta A1 data i ora la care au sosit datele iar n caseta B1 datele transmise ca parametri de comand ai motorului MPP. Private Sub sock_DataArrival(ByVal bytesTotal As Long) Dim s As String sock.GetData s exsheet.Range("a" & c_line).Value = Date & " - " & Time exsheet.Range("b" & c_line).Value = s c_line = c_line + 1 Formularele create arat ca n figura :

Figura 8.

Figura 9.

19

5.3 Crearea unui format de cadru al unui cuvnt de protocol Formatul cadrului este urmtorul :[85][89] Viteza TextBox1 Nr.Secvente de repetare Comenzi TextBox2 TextBox3

Formatul cadrului se compune din trei cmpuri reprezentate prin TextBox-uri n VB Trebuie s fie formatate datele transmise la server dup modelul protocolului XMSIG adic s se respecte formatul de cadru al protocolului. Pentru aceasta s-au separat parametri viteza,repeta i codul comenziiastfel nct serverul s poat decoda datele primite. Pentru a realiza acest deziderat s-a separat cmpul de date printr-un spaiu dup care s-au concatenat parametri i codul comenzii astfel : Private Sub bntSend_Click() On Error GoTo t text = Viteza & " " & Repeta & " " & cod comanda unde cod comanda poate lua valorile :+/- putere/1 sau +/- putere/2 sau +/- pas/2 astfel : Private Sub bntSend_Click() On Error GoTo t ' se trimite coninutul casetei text txtSend text = Viteza & " " & Repeta & " " If putere11.Value = True Then text = text & "putere/1" End If If putere12.Value = True Then text = text & "-putere/1" End If If putere21.Value = True Then text = text & "putere/2" End If If putere22.Value = True Then text = text & "-putere/2"

20

End If If pas21.Value = True Then text = text & "pas/2" End If If pas22.Value = True Then text = text & "-pas/2" End If sock1.SendData text 'trasmite irul text la Server La primirea cadrului Serverul va decoda datele primite astfel : Se folosesc insruciunile : InStr([start,] string1, string2 [, compare])[84] Returneaz poziia primei apariii a irului 2 n irul 1 Start este opional i specific poziia de la care ncepe cutarea. Poate lua valori de la 1 la Len(string1) Dac nu e specificat ,cutarea ncepe de la primul caracter. String1 este irul n care se caut String2 este irul cutat Compare opional valoarea 0 specific o cutare binar iar valoarea 1 o cutare text. Mid(string,start[,length])[84] Returneaz un numr specificat de caractere dintr-un ir. String irul din care sunt returnate caracterele Start specific poziia de unde ncepe returnarea caracterelor Length numrul de caractere ce se vor returna Rutina arat astfel : sock1(Index).GetData dat, vbString scrie datele n ir Dim pozViteza As Integer Dim pozRepeta As Integer Dim Tip As String Dim viteza As String Dim repeta As String

21

pozViteza = InStr(1, dat, " ") caut apariia spaiului n irul de date primit de la client viteza = Mid(dat, 1, pozViteza - 1) returneaz un numr de caractere egal cu pozViteza -1 din irul dat primit. pozRepeta = InStr(pozViteza + 1, dat, " ") caut apariia unui nou spaiu n irul dat dar ncepe cutarea de la pozViteza+1 repeta = Mid(dat, pozViteza + 1, pozRepeta - pozViteza) returneaz caracterele din irul dat de la pozViteza+1 pn la pozRepeta-pozViteza Tip = Mid(dat, pozRepeta + 1, (Len(dat) - pozRepeta)) returneaz caracterele din irul dat ncepnd de la pozRepeta+1 pn la Len(dat)pozRepeta Acum variabila viteza va conine parametrul vitez transmis de client,variabila repeta va conine parametrul repetare secven transmis de client,iar variabila Tip va conine codul comenzii transmise. In functie de codul comenzii se vor executa rutinele +/- putere/1 sau +/putere/2 sau +/- pas/2. Spre exemplu dac Tip = putere/1 sa va executa urmtorul cod : If Tip = "putere/1" Then countit = 0 myTimer = 0 countit = scountit Do While countit > 0 myTimer = smyTimer Out 888, 1 Do While myTimer > 0 myTimer = myTimer - 1 Loop myTimer = smyTimer Out 888, 2 Do While myTimer > 0 myTimer = myTimer - 1 Loop Out 888, 4
22

myTimer = smyTimer Do While myTimer > 0 myTimer = myTimer - 1 Loop Out 888, 8 myTimer = smyTimer Do While myTimer > 0 myTimer = myTimer - 1 Loop countit = countit - 1 Loop Out 888, 0 sock1(Index).SendData ("S-a rulat putere/1") txtLog = txtLog & "Client" & Index & "! Am terminat putere/1!!! " & vbCrLf End If
Cap.6 Concluzii

In capitolul 2 se face un studiu detaliat al modurilor de comand a motorului pas cu pas unipolar evideniind regimurile cu pas ntreg i cel cu pas pe jumtate i respectiv comenzile monopolar i bipolar. Rezult astfel secvenele de comand necesare a fi generate pentru asigurarea regimurilor de funcionare ale motorului pas cu pas. Avnd n vedere tema tezei i anume comanda prin calculator s-a urmarit n special aspectul software. Din acest punct de vedere, generarea secvenelor de comanda se poate face folosind limbajul de asamblare, limbajul C sau limbaje special create pentru microcontrolere cum ar fi JAL.(just another language). Relevant este faptul c toate aceste limbaje necesit i implementarea de hardware necesar comutrilor ntre regimurile de comand sau schimbrii sensului motorlui . Soluia propus n tez ca i contribuie personal pentru comanda local rezolv urmtoarele aspecte : - Asigur toate secvenele de impulsuri de comand necesare unui MPP unipolar. Comutarea ntre regimurile de functionare se face printr-un simplu click pe butonul corespunztor regimului dorit, buton din formularul creat n Excel.

23

- Generarea secvenelorlor prin software utiliznd instruciuni din editorul Visual Basic for Applications disponibile n meniul Tools\Macro\Visual Basic Editor i transmiterea lor prin portul paralel LPT. - Pentru generare s-a folosit instruciunea Out (addres_port, valoare). - Adresa este specificat n format hexazecimal.Adresa portului LPT2 fiind 378 n zecimal rezult n hexa addresa 888. - Pentru durata impulsurilor de comand s-a folosit instruciunea Sleep(val n milisecunde).Durata determin parametrul vitez. - Parametrul Nr. Secven definete numrul de pai care se execut la apsarea unui buton de comand . - Rutinele au fost alocate evenimentelor de tipul Button_Click(n) din formularul creat n Excel. Pentru comanda la distan s-au cercetat protocoale folosite industrial ca X10 i Super Stepper .Studierea acestora a dus la concluzia c fiecare dintre ele impune achiziionarea de hardware i software specializat de la productor. Totodat aceste protocoale limitez posibilitatea de comand la arii restrnse, interconectarea componentelor hardware se face prin construirea unei reele de cabluri de interconectare. Studierea acestor protocoale a generat ca i contribuie personal elaborarea protocolului XMSIG .Este un protocol software al crui format de cadru a fost asociat cu TextBox-uri din formularele Client create n Visual basic 6. mpachetarea cadrelor de date n pachetele TCP/IP a asigurat att rezilien ct i fiabilitate protocolului. Implementarea protocolului este o realizare original concretizat n rezolvarea urmtoarele aspecte : - Trimiterea la distan a unui ir de caractere prin folosirea protocolului TCP/IP n care au fost ncapsulate datele propriu-zise. - Aplicia UDPLPT rezolv aceast problem oferind i un feedback din partea sistemului controlat aflat la distan oriunde n reeaua Internet. - Transmisia s-a fcut utiliznd soclurile TCP respectiv controlul winsock i modelul Client Server. - S-au realizat apoi aplicaiile Client Server pentru transmiterea de iruri de caractere unei foi de calcul n Excel aflat pe un calculator din Internet.

24

- Aplicaia ofer i posibilitatea actualizrii unei foi de calcul dintr-o pagin Web - Aplicaia Server deschide o foaie de calcul n Excel, dup care ateapt pe soclul creat cereri de conectare de la Client. - La sosirea cererii o accept i preia datele din bufferul creat i le nscrie n celulele nominalizate ale foii de calcul. - S-a creat apoi un format de cadru pentru Protocolul XMSIG care s preia parametrii i comenzile necesare motorlui pas cu pas ce trebuia comandat. - Parametrii i comenzile au fost concatenate i separate prin caracterul ,selectarea comenzilor fcndu-se cu instruciunea If Then Else. - Codurile comenzilor au fost alocate fiecrui regim de funcionare al motorului pas cu pas unipolar. - Cu InStr(start, ir, caracter_control) au fost numrate caracterele pn la carcterul de control, iar cu Mid(ir, start, nr.caractere) s-au extras pe rnd parametrii (vitez,repet) i apoi tipul de comand. - n final s-a realizat implementarea celor trei proceduri ntr-o interfa identic cu cea creat pentru comanda local, astfel nct utilizatorul s lucreze ca i cum ar fi conectat local. Contribuii personale : - Interfaa n Excel pentru comanda local a unui motor pas cu pas S-a folosit avantajul limbajelor vizuale care ofer interfee accesibile utilizatorului,punnd la dispoziie casete de controale ce includ : textbox-uri, butoane de comand, timere, controlul winsock, etc. - Punte de comunicaie UDP ca suport pentru transferul unui ir de caractere ntre dou calculatoare conectate n reeaua Internet - Program de scriere ntr-o foaie de calcul din Excel pe un calculator aflat la distan oriunde n Internet, program ce faciliteaz actualizarea unei foi de calcul inclus ntr-o pagin Web. - Protocolul XMSIG care permite codificarea i respectiv decodoficarea parametrilor i a comenzilor transmise unui motor pas cu pas interfaat cu un PC gazd din Internet - Definirea unui format de cadru ce poate fi generalizat prin extinderea cmpurilor unui cadru, permind extinderea controlului prin portul paralel a pn la 16 motoare pas cu pas, adresabile pe cei 4 bii ai portului LPT care au rmas nefolosii.(Protocolul XMSIG folosete doar liniile D0-D3 ale portului LPT).

25

- Posibilitatea conectrii simultane a mai multor Clieni la acelai proces Server care gestioneaz motorul pas cu pas - Protocolul XMSIG ofer independen total de hardware. - Este relativ uor de implementat la nivel local solicitnd ca resurse doar programul Excel - Obinerea controlului total al portului LPT fapt ce ofer aplicaii diverse n domeniul automatizrilor industriale - Pot fi comandate direct : relee, electrovalve, motoare pas cu pas etc. - Transmisia i recepia se fac n siguran datorit suportului TCP/IP n care au fost ncapsulate cadrele protocolului XMSIG - Actualizare instantanee a parametrilor. - Posibilitate feedback prin UDPLPT respectiv se pot transmite spre Client informaii culese local prin diverse traductoare. - Monitorizarea permanent a conexiunii.Odat stabilit conexiunea virtual ntre Client i server ea rmne activ pan la intervenia utilizatorului,n sensul nchiderii conexiunii. Dezvoltri ulterioare : - Utilizarea reelei GSM ca suport pentru transmiterea parametrilor i a comenzilor ctre MPP folosind formatul cadrului definit n protocolul XMSIG - Generalizare la orice format de cadru . - Conectare multipl pe acelai Server. - Controlul portului serial n Viual Basic. - Trimiterea unui SMS folosind Visual Basic. Capitolul 1 face o prezentare general a modalitilor de abordare posibile a temei acestei teze,trecnd n revist att abordri software ct i hardware. Se relev avantajele i dezavantajele diverselor metode existente n domeniu,i se expun pricipial soluiile originale introduse n tez. Capitolul 2 descrie stadiul actual al cunoaterii n domeniu,fcnd un studiu al modalitilor de comand a unui motor pas cu pas unipolar. Sunt tratate diverse posibiliti de comand att hardware ct i software. Concluzia este c n general este nevoie fie de folosirea limbajului de asamblare foarte greoi i fr disponibiliti grafice, fie de folosirea limbajului C sau a unor limbaje dedicate microcontrolerelor cum ar JAL.(Just Another Language). Folosirea microcontrolerelor sau a circuitelor integrate logice impune costruirea cablajelor,lipirea componentelor,testarea schemei,construirea surselor de alimentare,etc.Toate aceste elemente conduc la costuri mrite i la interfee hardware complexe cu utizatorul.

26

Capitolul 3 trateaz portul paralel ( LPT ) din perspectiva interfarii unui motor pas cu pas unipolar .Studiul descrie semnalele suportate de portul paralel,semnificaia acestora i trateaz interfaa hardware cu motorul pas cu pas.Se alege o interfa ct mai simpl avnd n vedere faptul c s-a urmrit maximizarea utilizrii resurselor disponibile ale oricrui calculator,deci utilizarea unui minim de componente hardware externe i suplinirea funciilor acestor componente prin software. Este tratat i posibilitatea de monitorizare prin software a semnalelor disponibile pe liniile de date ale portului paralel,descriind aici i programul lpt.exe. Capitolul 4 descrie protocoale de comunicaie folosite industrial pentru controlul la distan al motoarelor pas cu pas.Este descris protocolul X10, grefat pe reeaua de 220V existent n orice cldire.Protocolul folosete module transmitor receptor care moduleaz n frecven semnalele de date .Utilizarea protocolului presupune achiziia de echipamente de la productor. Alt protocol descris este Super Stepper,care interconecteaz un modul master controler la 32 de module sclav prin interfaa RS-422, i necesit achiziia att a echipamentelor de la productor ct i cumprarea de software dedicat acestei aplicaii.Dezavantajul major al acestor protocoale se refer la posibilitatea utilizrii lor pe o arie restrns de ordinul a 1-2km. Super Stepper presupune construirea n prealabil a reelei de 3 fire necesare transportului semnalelor interfeei RS- 422. Aceste considerente au dus la o contribuie esenial prin crearea unui protocol de comunicaie care s ofere posibilitatea controlului unui motor pas cu pas far limitri geografice. XMSIG permite controlul la distan al unui motor unipolar conectat local la un calculator prin intermediul portului paralel,care la rndul su este conectat n reeaua Internet.Este de la sine neles c este posibil cu att mai mult i controlul ntr-o reea local.Protocolul folosete ca suport protocolul TCP/IP i modelul Client - Server. Capitolul 5 conine contribuii personale ale autorului i descrie etapele software parcurse pentru implementarea protocolului XMSIG. n prima etap se expune soluia propus pentru transmiterea la distan n Internet a unui ir de caractere.Avnd n vedere faptul c interfaa local era creat folosind programul Excel s-a creat n etapa a doua un program care s transmit date ntr-o foaie de calcul creat n Excel i aflat la distan, pe un calculator conectat la Internet. Etapa 3 descrie protocolul XMSIG i aici este definit formatul unui cadru de date folosit de protocol.Ideea original se refer la asignarea cmpurilor unui
27

cadru al protocolului unor TextBox-uri introduse n formularul creat n Visual Basic 6.Mecanismul de codificare prin separarea cu caractere delimitatoare, i extragerea parametrilor i a codurilor de comand ofer o soluie ingenioas i eficient prin simplitatea implementrii. Autorul reface apoi interfaa cu utilizatorul n scopul ncapsulrii celor trei aplicaii create anterior .Este refcut i interfaa grafic cu utilizatorul n sensul asemnrii cu interfaa creat pentru comanda local,astfel nct utilizatorul s lucreaze la fel ca n modul local dei comand un motor aflat la distan oriunde n reeaua Internet. Capitolul 6 expune concluziile extrase din capitolele 1-5,relevnd aspectele care au condus la crearea protocolului XMSIG, precum i a interfeei locale de comand .Avantajele i dezavantajele soluiilor studiate n tez sunt enumerate n acest capitol de sintez . Sunt propuse i posibile dezvoltri ale tezei pentru situaia n care nu avem conectivitate la reeaua Internet.Se propune ca soluie folosirea reelelor GSM. Protocolul XMSIG poate fi folosit n continuare,dar cadrele de date ale protocolului vor fi transmise de la Client la Server prin intermediul unor mesaje scurte (SMS), care ns trebuie s respecte sintaxa protocolului XMSIG pentru a putea fi interpretate corect i a genera secvenele necesare de comand .
BIBLIOGRAFIE SELECTIV

1. Manolea Gh., Sisteme automate de acionare electromecanic, Editura Universitaria Craiova, 2004. 11. Baluta Gh., Acionri electrice cu motoare pas cu pas, Editura Gheorghe Asachi, Iasi, 2003. 16. Kernigham M.W., Ritchie D.M., The C Programming Language, Second Edition, Prentice Hall, Englewood Cliffs, New Jersey, 1988. 17. Kuo B.C., Kelemen A., Crivii M., Trifa V., Sisteme de comanda si reglare incrementala a pozitiei, Editura Tehnica, Bucuresti, 1981. 20. Industrial and Computer Peripheral ICs, SGS-THOMSON, Data Book, 1988. 21. Hybrid Step Motor Systems Catalog, PACIFIC SCIENTIFIC, Data Book, Rockford, 1991.

28

22. Integrated Circuits. Product & Applications, UNITRODE, Handbook, 1993-1994. 23.Industrial Circuits Data Book and Stepper Motor Control Handbook, ERICSSON COMPONENTS AB, 1995. 24. Matlab for Windows, Users Guide, 1992. 25. John Iovine - PIC Microcontroller Project Book McGraw-Hill 2000. 28. Michael Predko - Programming and Customizing the Pic Microcontroller Prentice Hall, 2000. 39. Copdean R., Bortos O.P.- Interfee standard pentru achiziia de date, Ed. Mediamira, Cluj-Napoca , 2003 43. National Instruments Lab PC+ : User's Manual 44. M. Popa: Sisteme cu microcontrolere orientate pe aplicaii, Editura Politehnica Timioara, 2003 53. Catalog SGS` THOMSON MICROELECTRONICS 54. Catalog NATIONAL SEMICONDUCTOR 67. Robot Builders Bonanza, 3rd Ed 68. Society of Mind , Marvin Minsky 69. PIC Microcontroller Project Book , John Iovine 70. Introduction to Autonomous Mobile Robots , Roland Siegwart and Illah R. Nourbakhsh 71. Robot Building for Beginners , Dave Cook 72. C Programming Language , Ritchie Kernighan 73. PIC Microcontroller: An Introduction to Software & Hardware Interfacing, Han-Way Huang 84. Programming Microsoft Visual Basic 6.0 Author: Francesco Balena Publisher: Microsoft Press 85.Visual Basic Programmer's Guide to the Win32 API,Author: Dan Appleman,Publisher: Sams 86. Programming Microsoft Visual Basic .NET,Author: Francesco

29

Balena Publisher: Microsoft Press 87. www.visualbasicbooks.com/courses.html 88. VB Net Guide for Experienced Programmers,Jonathan Morrison and Gary Cornell 89. VB & VBA in a Nutshell: The Language , Paul Lomax First Edition October 1998 90. Advanced Microsoft Visual Basic 6.0 By the Mandelbrot Set, Published by MS Press, November 1998, Paperback, 880 pages, ISBN 1572318937 91. neil.fraser.name/software/lpt/ 92. http://www.x10.com/support/technology1.htm 93. www.superstepper.com/Protocol/protocol.html 94. Retele de calculatoare (editia a IV-a),Andrew S. Tanenbaum,ed.Byblos2004

30