comanda motor pas cu pas

Upload: tzapore23

Post on 03-Apr-2018

363 views

Category:

Documents


8 download

TRANSCRIPT

  • 7/28/2019 comanda motor pas cu pas

    1/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

  • 7/28/2019 comanda motor pas cu pas

    2/30

    2

    Cuprins

    Cap1. Introducere.................................................................................................................2Cap2. Stadiul actual al cunoaterii n comanda motoarelor pas cu pas ..................................6 Motorul pas cu pas ............................... ................... ............................... ................... ...........6

    2.1 Definiie ........................... ...................... ............................ ................... ......................6Moduri de comand..........................................................................................................72.2 Comanda software ........................... ....................... .............................. .................... ..7

    2.2.1 Comanda folosind limbajul C.................................................................................82.2.2 Program2.Comanda cu jumtate de pas ...................... ............................... ..........8

    2.3 Comanda MPP cu microcontrolere ......................... ............................ ................... .....92.3.1 Comanda cu putere ntreag...............................................................................10Program1 ........................... ...................... ............................ ................... ....................10

    Cap3. Portul paralel LPT......................................................................................................10

    3.1 Exemplu de circuit de comand prin portul paralel....................................................113.2 Variant original de program pentru MPP unipolar..................................................12Cap4. Protocoale de comunicaie........................................................................................14

    4.1 Protocolul X10...........................................................................................................144.2 Protocolul Super Stepper...........................................................................................15

    Cap5. Contribuii la realizarea protocolului XMSIG .................... ............................... ...........175.1 Crearea unei ci de comunicaie ntre oricare dou PC-uri.........................................175.2 Trimiterea datelor la distan ntr-o foaie de calcul n Excel.......................................185.3 Crearea unui format de cadru al unui cuvnt de protocol ......................... .................20

    Cap.6 Concluzii....................................................................................................................23BIBLIOGRAFIE SELECTIV ........................... .......................... ........................... ....................28

    Cap1. Introducere

    Conectarea unui actuator cu motor pas cu pas la un calculator presupuneimplementarea unei interfee ntre cele dou componente.Industrial exist o mare varietate de interfee,fie cu circuite integratespecializate, fie cu microcontrolere, fie cu microprocesoare.

    Schema blocurilor funcionale ar fi :

    Translatorul care livreaz impulsurile de comand.

    Driverul care asigur curentul necesar nfurrilor

  • 7/28/2019 comanda motor pas cu pas

    3/30

    3

    Se face o prezentare general a motoarelor pas cu pas insistnd asupraregimurilor de comand ale motorului unipolar.Se evalueaz modaliti decomand hardware cu tranzistoare, cu circuite integrate specializate(LM297LM 298) sau cu microcontrolere.

    Centrul de greutate ns l reprezint partea de comand software,n ideea folosirii de hardware minimal i a suplinirii componentelor hardprin software.Se propune folosirea unui driver simplu cu tranzistoare conectat la portulparalel al calculatorului,acesta primind secvenele de comand necesare princontrolul software al portului paralel.Ideea a fost de a realiza o interfa ct mai simpl folosind doar facilitaileoferite de orice calculator, eliminnd pe ct posibil folosirea unor circuiteintegrate specializate i beneficiind de puterea calculatorului incomparabilmai mare dect a oricrui circuit integrat specializat.

    S-a folosit astfel editorul Visual Basic din programul Excel care esterezident n orice calculator deci nu e necesar instalarea unui softwarespecial pentru acionarea electric a motorlui conectat la calculator prinintermediul portului paralel ( LPT ).Pentru uurarea controlului s-a proiectat o interfa simpl cu utilizatorul,intuitiv, alocnd butoanelor de comand create semnificaiacorespunztoare tipurilor de comand posibile pentru un MPPunipolar.(monopolar,bipolari jumtate de pas).Comanda se poate face pas cu pas sau rotaii complete, iar viteza se poate

    regla prin modificarea duratei impulsurilor de comand folosindinstruciunea Sleep().Dezvoltnd posibilitatea conectarii mai multor actuatoare distribuite oriunden Internet,s-a impus crearea unui protocol de comunicare ntre centrulde comandi actuatoare.

    S-a studiat astfel Protocolul X10 care permite controlul diverselordispozitive electronice printr-un protocol de comunicaie grefat pecircuitul prizelor dintr-o cas.Protocolul permite adresarea dispozitivelorprecum i transmiterea de comenzi specifice doar dispozitivelor grupate

  • 7/28/2019 comanda motor pas cu pas

    4/30

    4

    ntr-o singur locaie.Formatul unui cadru conine cmpurile de Start,CodCasi 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 modulMaster Controler la 32 de module sclav pe o magistral de date (SSB-superstepper 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 nfuncie 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 distribuiteoriunde 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 decomunnicaie se poate face prin detecie sau prin corecia erorilor.Algoritmii de corecie consum ns mult timp i nu sunt folosii npractic.Este preferat detecia erorilor i retransmisia cadrelor eronatedeoarece 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 folosetealgoritmul CRC(Cyclic Redundancy Check) pentru detecia erorilorde transmisie.

    Utilizarea modelului Client-Server.

    Acesta ofer o suit de protocoale numit TCP/IP care faciliteazcomunicarea ntre oricare dou calculatoare conectate la reeaua Internet,pe baza adresei IP i respectiv MAC.S-a folosit pentru implementare modelul Client-Server.

  • 7/28/2019 comanda motor pas cu pas

    5/30

    5

    Acesta presupune crearea a dou socluri pe fiecare calculator i alocarea lafiecare 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 reeauatelefonic.Orice telefon are nevoie de alocarea unui numar la care abonatuls poat fi sunat.Prin analogie fiecrui soclu i va fi ataat un numr de portla care poate fi accesat.Crearea soclurilor n Visual Basic este realizat prin folosirea controluluiwinsock care trebuie inserat n formularul VB care va fi creat pentruaplicaia Server.Era nevoie ns de un protocol de nivel nalt care s fie ncapsulat n stivaTCP/IP i care s poat adresa i trimite comenzi,oricrui actuatorconectat la un calculator legat la Internet.Protocolul definete un format de cadru format din trei cmpuricorespunztoare parametrilor de comandi codurilor comenzilor pentruregimurile de comand monopolar,bipolari cu jumtate de pas crora lise aloc trei TextBox-uri n formularul creat n Visual Basic 6.Fiecare cmp are alocat un TextBox care conine valoarea parametrilor i acomenzilor.Comenzile i parametrii se transmit conacatenate sub forma unui ir decaractere delimitate prin caracterul spaiu.

    La recepie folosind instruciunea InStr (start characternumber,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 characternumber)sunt extrai parametrii de comandi codurile comenzilor.Sunt apelate acum rutinele de comand corespunztoare codurilorrecepionate, care vor transmite secvenele de comand motorului pas cupas.Comanda se face pas cu pas sau rotaii complete.Teza soluioneazi problema transmiterii la distana a datelor ntr-o foaiede calcul creat n Excel i aflat la distan pe un calculator conectat lareeaua Internet.Soluia poate fi folositi pentru actualizarea unei foi de calcul Excel creatde proprietar pe o pagin Web public.Protocolul elaborat rezolv aceast problemi va fi descris n tez.Teza ofer astfel dou soluii originale referitoare la interfaarea

  • 7/28/2019 comanda motor pas cu pas

    6/30

    6

    actuatoarelor cu calculatorul folosind programul Excel i la implementareaunui protocol de comunicaie (protocolul XMSIG) ntre un centru de

    comandi 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, comandndzona de vizualizare sau zoom-ul camerei.Se pot comanda la distan elemente de execuie, cum ar fi electrovalele saurelee sau motoare pas cu pas.Informaiile referitoare la parametrii procesului controlat pot fi transmisecentrului de comand folosind UDPLPT, coreciile necesare fiind apoiaplicate prin intermediul protocolului XMSIG.Putem crea orice automatizare care poate fi controlat prin portul paralelLPT.Gama de aplicii posibile este foarte variat datorit controlului total alportului paralel asigurat de aplicaiile descrise n tez.in s mulumesc i s-mi exprim recunotiina i cele mai calde mulumiriconductorului 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 saucontacte.n esen este un motor sincron al crui cmp electromagneticeste comutat electronic pentru a pune n micare rotorul motorlui.[1]

    2.1 Definiie

    Motorul electric pas cu pas este un convertor electromagnetic care realizeazconversia impulsurilor de comand aplicate fazelor motorului ntr-o micarede rotaie ce const din deplasri unghiulare discrete, de mrime egal icare reprezint paii motorului. Numrul pailor efectuai trebuie scorespund, n cazul unei funcionri corecte, cu numrul impulsurilor decomand aplicate nfurrilor motorului.

    Majoritatea motoarelor pas cu pas sunt bidirecionale i permit oaccelerare, oprire i reversare rapid fr pierderi de pai, dac suntcomandate cu o frecven inferioar frecvenei limit corespunztoare

  • 7/28/2019 comanda motor pas cu pas

    7/30

    7

    regimului respectiv de funcionare. Pentru extinderea funcionrii motoarelorpas cu pas la viteze mai mari dect viteza corespunztoare frecvenei limit,

    este necesar o accelerare prin cretere treptat a frecvenei impulsurilor decomand.Motoarele pas cu pas sunt utilizate n special n aplicaiile unde se

    dorete realizarea unei micri incrementale, folosind sisteme de comandnumeric.

    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 funcionrila 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 diverselimbaje cum ar fi :

  • 7/28/2019 comanda motor pas cu pas

    8/30

    8

    2.2.1 Comanda folosind limbajul C.

    Program1.Comanda cu putere ntreag [16]

    #include .#define stepper P1void delay();

    void main(){while(1){

    stepper = 0x0C;delay();stepper = 0x06;delay();stepper = 0x03;delay();stepper = 0x09;delay();

    }}void delay(){

    unsignedchar i,j,k;

    for(i=0;i

  • 7/28/2019 comanda motor pas cu pas

    9/30

    9

    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 suntconectate la un transistor NPN de tip Darlington.S-au folosit tranzistoareTIP120.

    Acestea lucreaz ca i comutatoare activnd pe rnd nfurrile MPP-ului.

  • 7/28/2019 comanda motor pas cu pas

    10/30

    10

    Datorit sarcinii inductive ce apare la comutarea de la o nfurare la altatrebuie s conectm n paralel cu jonciunea colector-emitor a

    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 serepet 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 ' use b0 as the delay variabledelay = 25 ' set the delay to 25 msloop:high 0 ' turn on Q1pause delay ' wait 25 mslow 0 ' turn off Q1high 1 ' turn on Q2pause delay ' wait 25 ms

    low 1 ' turn off Q2high 2 ' turn on Q3pause delay ' wait 25 mslow 2 ' turn off Q3high 3 ' turn on Q4pause delay ' wait 25 mslow 3goto loop ' turn off Q4' forever

    Cap3. Portul paralel LPT

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

  • 7/28/2019 comanda motor pas cu pas

    11/30

    11

    3.1 Exemplu de circuit de comand prin portul paralel

    Circuitul a fost proiectat pentru un MPP unipolar de 12V ; 1,8/pas i0,16A/faz(nfurare).Vom folosi ca driver circuitul ULN2803 pe 8 bii , care suport tensiuneamaxim de 50v i un current de ieire de 500mA,care accept intrriTTL.Pentru a izola placa de baz de interfaa cu MPP-ul vom folosi optocuploriIC4N35.[22]

    Figura2.

    Schema de conectare a motorului pas cu pas fr optocuplori este n figura 4

    :[39]

  • 7/28/2019 comanda motor pas cu pas

    12/30

    12

    Figura3.

    Programarea pentru motor unipolar

    Pentru a comunic cu portul paralel evitnd conflictele cu alte device-uriconectate la PC vom folosi inpout32.dll .Este o Rutina care permiteaccesarea portului paralel .Algoritmul rutinei este :

    3.2 Variant original de program pentru MPP unipolar

    Programul a fost scris n Microsoft Excel folosind editorul Visual Basicdin meniul macros->VB editor.[84].In fereastra ce apare se face click peInsert Module iar n modul se scrie codul :

    Public Declare Function Inp Lib "inpout32.dll" Alias "Inp32" _(ByVal PortAddress As Integer) _As IntegerPublic 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 Windows-ului i deschide portul paralel.Acum se creeaz n foaia excel butoanele de comand:[85]Se prezint doar rutina pentru comanda bipolar,restul fiind createasemntor corespunztor regimului de comand dorit :Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

    Private Sub CommandButton1_Click()

    countit = 0

  • 7/28/2019 comanda motor pas cu pas

    13/30

    13

    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, 12Sleep (myTimer)

    If countit = 0.75 Then

    Exit Sub

    End If

    Out 888, 9

    Sleep (myTimer)

    countit = countit - 1

    Loop

    Out 888, 0

    End Sub

  • 7/28/2019 comanda motor pas cu pas

    14/30

    14

    Figura 4.

    Cap4. Protocoale de comunicaie

    4.1 Protocolul X10

    Protocolul X10 folosete transmisia sincronizat cu momentul trecerii prinzero al tensiunii alternative a reelei de 220V.Important este ca transmisia sse fac ct mai aproape de momentul trecerii prin zero i nu mai tarziu de200 de microsecunde de la acest moment.[92]

    Cele dou module PSC04 transmittor i PSC05 transmittor-receptorgenereaz un semnal dreptunghiular de 60 hz cu o ntrziere maxim fa demomentul trecerii prin zero al tensiunii de reea de maxim 100 demicrosecunde.

    ntrzierea maxim ntre anvelopa semnalului de intrare i semnalul de

    ieire de 120 khz este de 50 de microsecunde fa de momentul trecerii prinzero a tensiunii reelei.

    Valoarea unu binar este reprezentat printr-un burst de 120khz cu duratade 1 milisecund fa de momentul trecerii prin zero iar un zero logic estereprezentat prin absena burstului .

    Cele dou module realizeaz modularea semnalului de intrare cu unsemnal de 120 khz ,deci la intrarea lor trebuie aplicat doar anvelopaburstului de 1 milisecund .

  • 7/28/2019 comanda motor pas cu pas

    15/30

    15

    Dac se lucreaz trifazat atunci burstul de 1 milisecunda trebuie transmisde 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 32de module sclav.[93]

    MC poate fi orice dispozitiv care posed un port UART cum gsim norice PC.

    Magistrala de date pe 3 fire e numit SSB super stepper bus i coninesemnalele : SSR super stepper receive

    SST super stepper transmitMasa 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 antetulcuvntului de protocol unde sunt plasate i codurile comenzilor.

    Spaiul de adrese conine 5 din cei 8 bii ai antetului deci se pot adresa 32de module sclav.

    Codurile de comenzi au alocai 3 bii din antet deci se pot codifica 8comenzi.

    Comenzile se refer la scrierea i citirea memoriei i la comenzi deexecuie.

  • 7/28/2019 comanda motor pas cu pas

    16/30

    16

    Figura 6.

    Formatul unui cadru este :

    Dup antet modulul sclav ateapt N operanzi .Modulul tie ci operanziurmeaz dup antet decodnd informaia din antet referitoare la codulcomenzilor.

  • 7/28/2019 comanda motor pas cu pas

    17/30

    17

    Dac toi octeii sunt receptionai corect,modulul sclav confirmrecepionarea lor corect i trece la executarea comenzilor,iar dac nu s-a

    recepionat corect trimite la MC o confirmare negativ n care specificicauza.Orice protocol de comunicaie trebuie s asigure trei cerine :

    1.Proiectarea protocolului trebuie sa ofere utilizatorului specificaii clarede utilizare astfel nct s poat folosi rutinele protocolului independent dehardware.

    2.Fiabilitatea : In cazul unei mediu de comunicaie cu zgomot trebuie sputem detecta i eventual corecta erorile de transmisie.

    3.Reziliena : Posibilitatea testrii ciclice a liniei de comunicaie astfelnct s poat fi refcut orice pachet de date care s-a pierdut sau a fosttransmis eronat.

    Toate aceste cerine sunt asigurte de protocolul TCP/IP folosit att nreelele locale ct i n Internet.

    Ideea a fost s folosesc acest protocol ca suport i s ncapsulezcomenzile 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 douPC-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 VBcu 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 distanspecificnd numele RemoteHost-ului precum i adresa portului la careRemoteHost ateapt cereri de conectare.S-au folosit adresele 1001 pentrugazda B i 1002 pentru gazda A.[94]

    Ataarea adreselor de port se face cu instruciunea Bind .

  • 7/28/2019 comanda motor pas cu pas

    18/30

    18

    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 nExcel care va prelua datele transmise de Client :

    Private Sub Form_Load()Set exapp = New Excel.ApplictionSet exbook = exapp.Workbooks.AddSet exsheet = exbook.Sheets(1)exsheet.Name = "Aici iau date de la client"

    c_line = 1Command1_ClickEnd Sub

    La sosirea unei cereri de conectare de la Client vom trece Serverul n stareaaccept :

    Private Sub sock_ConnectionRequest(ByVal requestID As Long)If sock.State = sckListening Thensock.Close

  • 7/28/2019 comanda motor pas cu pas

    19/30

    19

    sock.Accept (requestID)End If

    End SubAcum Serverul poate s preia datele de la Client.Acestea vor fi preluate nvariabila s de tip ir.In foaia Excel deschis anterior se va scrie n caseta A1 data i ora la care ausosit datele iar n caseta B1 datele transmise ca parametri de comand aimotorului MPP.

    Private Sub sock_DataArrival(ByVal bytesTotal As Long)Dim s As Stringsock.GetData sexsheet.Range("a" & c_line).Value = Date & " - " & Timeexsheet.Range("b" & c_line).Value = sc_line = c_line + 1Formularele create arat ca n figura :

    Figura 8.

    Figura 9.

  • 7/28/2019 comanda motor pas cu pas

    20/30

    20

    5.3 Crearea unui format de cadru al unui cuvnt de protocol

    Formatul cadrului este urmtorul :[85][89]

    Viteza Nr.Secvente de repetare ComenziTextBox1 TextBox2 TextBox3

    Formatul cadrului se compune din trei cmpuri reprezentate prinTextBox-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 codulcomenziiastfel nct serverul s poat decoda datele primite.

    Pentru a realiza acest deziderat s-a separat cmpul de date printr-unspaiu dup care s-au concatenat parametri i codul comenzii astfel :

    Private Sub bntSend_Click()On Error GoTo ttext = Viteza & " " & Repeta & " " & cod comandaunde 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 txtSendtext = Viteza & " " & Repeta & " "

    If putere11.Value = True Thentext = text & "putere/1"

    End IfIf putere12.Value = True Thentext = text & "-putere/1"

    End IfIf putere21.Value = True Then

    text = text & "putere/2"End IfIf putere22.Value = True Then

    text = text & "-putere/2"

  • 7/28/2019 comanda motor pas cu pas

    21/30

    21

    End IfIf pas21.Value = True Then

    text = text & "pas/2"End IfIf pas22.Value = True Then

    text = text & "-pas/2"End If

    sock1.SendData text 'trasmite irul text la ServerLa 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 1Start 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 cautString2 este irul cutat

    Compare opional valoarea 0 specific o cutare binar iar valoarea 1 ocutare text.

    Mid(string,start[,length])[84]

    Returneaz un numr specificat de caractere dintr-un ir.String irul din care sunt returnate caractereleStart specific poziia de unde ncepe returnarea caracterelorLength numrul de caractere ce se vor returna

    Rutina arat astfel :sock1(Index).GetData dat, vbString scrie datele n ir

    Dim pozViteza As IntegerDim pozRepeta As IntegerDim Tip As StringDim viteza As StringDim repeta As String

  • 7/28/2019 comanda motor pas cu pas

    22/30

    22

    pozViteza = InStr(1, dat, " ") caut apariia spaiului n irulde date primit de la client

    viteza = Mid(dat, 1, pozViteza - 1) returneaz un numr de caractereegal cu pozViteza -1 din irul dat primit.

    pozRepeta = InStr(pozViteza + 1, dat, " ") caut apariia unui nouspaiu n irul dat dar ncepe cutarea de la pozViteza+1repeta = Mid(dat, pozViteza + 1, pozRepeta - pozViteza)

    returneaz caracterele din irul dat de la pozViteza+1 pn lapozRepeta-pozViteza

    Tip = Mid(dat, pozRepeta + 1, (Len(dat) - pozRepeta)) returneazcaracterele din irul dat ncepnd de la pozRepeta+1 pn la Len(dat)-pozRepeta

    Acum variabila viteza va conine parametrul vitez transmis declient,variabila repeta va conine parametrul repetare secven transmis declient,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 = 0myTimer = 0countit = scountit

    Do While countit > 0myTimer = smyTimer

    Out 888, 1Do While myTimer > 0myTimer = myTimer - 1LoopmyTimer = smyTimer

    Out 888, 2Do While myTimer > 0myTimer = myTimer - 1Loop

    Out 888, 4

  • 7/28/2019 comanda motor pas cu pas

    23/30

    23

    myTimer = smyTimerDo While myTimer > 0

    myTimer = myTimer - 1LoopOut 888, 8myTimer = smyTimer

    Do While myTimer > 0myTimer = myTimer - 1Loop

    countit = countit - 1LoopOut 888, 0sock1(Index).SendData ("S-a rulat putere/1")txtLog = txtLog & "Client" & Index & "! Am terminat putere/1!!! "

    & vbCrLfEnd 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 pejumtate i respectiv comenzile monopolari bipolar.Rezult astfel secvenele de comand necesare a fi generate pentruasigurarea regimurilor de funcionare ale motorului pas cu pas.Avnd n vedere tema tezei i anume comanda prin calculator s-a urmarit nspecial aspectul software.Din acest punct de vedere, generarea secvenelor de comanda se poate facefolosind limbajul de asamblare, limbajul C sau limbaje special create pentrumicrocontrolere cum ar fi JAL.(just another language).Relevant este faptul c toate aceste limbaje necesiti implementarea dehardware necesar comutrilor ntre regimurile de comand sau schimbriisensului motorlui .Soluia propus n tez ca i contribuie personal pentru comanda localrezolv urmtoarele aspecte :

    - Asigur toate secvenele de impulsuri de comand necesare unuiMPP unipolar. Comutarea ntre regimurile de functionare se faceprintr-un simplu click pe butonul corespunztor regimului dorit,buton din formularul creat n Excel.

  • 7/28/2019 comanda motor pas cu pas

    24/30

    24

    - Generarea secvenelorlor prin software utiliznd instruciuni dineditorul Visual Basic for Applications disponibile n meniul

    Tools\Macro\Visual Basic Editor i transmiterea lor prin portulparalel 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 caX10 i Super Stepper .Studierea acestora a dus la concluzia c fiecare dintreele impune achiziionarea de hardware i software specializat de laproductor.Totodat aceste protocoale limitez posibilitatea de comand la ariirestrnse, interconectarea componentelor hardware se face prin construireaunei reele de cabluri de interconectare.

    Studierea acestor protocoale a generat ca i contribuie personal elaborareaprotocolului XMSIG .Este un protocol software al crui format de cadru afost asociat cu TextBox-uri din formularele Client create n Visual basic 6.mpachetarea cadrelor de date n pachetele TCP/IP a asigurat att rezilienct i fiabilitate protocolului.Implementarea protocolului este o realizare original concretizat nrezolvarea urmtoarele aspecte :

    - Trimiterea la distan a unui ir de caractere prin folosireaprotocolului TCP/IP n care au fost ncapsulate datele propriu-zise.

    - Aplicia UDPLPT rezolv aceast problem oferind i un feedbackdin 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 calculatordin Internet.

  • 7/28/2019 comanda motor pas cu pas

    25/30

    25

    - Aplicaia oferi posibilitatea actualizrii unei foi de calcul dintr-opagin Web

    - Aplicaia Server deschide o foaie de calcul n Excel, dup careateapt pe soclul creat cereri de conectare de la Client.- La sosirea cererii o accepti 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 cetrebuia comandat.

    - Parametrii i comenzile au fost concatenate i separate princaracterul ,selectarea comenzilor fcndu-se cu instruciunea If

    Then Else.- Codurile comenzilor au fost alocate fiecrui regim de funcionareal motorului pas cu pas unipolar.

    - Cu InStr(start, ir, caracter_control) au fost numrate caracterelepn la carcterul de control, iar cu Mid(ir, start, nr.caractere) s-auextras pe rnd parametrii (vitez,repet) i apoi tipul de comand.

    - n final s-a realizat implementarea celor trei proceduri ntr-ointerfa identic cu cea creat pentru comanda local, astfel nctutilizatorul 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 accesibileutilizatorului,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 decaractere ntre dou calculatoare conectate n reeaua Internet

    - Program de scriere ntr-o foaie de calcul din Excel pe un calculatoraflat la distan oriunde n Internet, program ce faciliteaz actualizarea unei

    foi de calcul inclus ntr-o pagin Web.- Protocolul XMSIG care permite codificarea i respectivdecodoficarea parametrilor i a comenzilor transmise unui motor pas cu pasinterfaat cu un PC gazd din Internet

    - Definirea unui format de cadru ce poate fi generalizat prinextinderea cmpurilor unui cadru, permind extinderea controlului prinportul paralel a pn la 16 motoare pas cu pas, adresabile pe cei 4 bii aiportului LPT care au rmas nefolosii.(Protocolul XMSIG folosete doarliniile D0-D3 ale portului LPT).

  • 7/28/2019 comanda motor pas cu pas

    26/30

    26

    - Posibilitatea conectrii simultane a mai multor Clieni la acelaiproces Server care gestioneaz motorul pas cu pas

    - Protocolul XMSIG ofer independen total de hardware.- Este relativ uor de implementat la nivel local solicitnd ca resursedoar programul Excel

    - Obinerea controlului total al portului LPT fapt ce ofer aplicaiidiverse 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 interveniautilizatorului,n sensul nchiderii conexiunii.Dezvoltri ulterioare :

    - Utilizarea reelei GSM ca suport pentru transmiterea parametrilor ia comenzilor ctre MPP folosind formatul cadrului definit n protocolulXMSIG

    - 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 atemei acestei teze,trecnd n revist att abordri software ct i hardware.Se relev avantajele i dezavantajele diverselor metode existente ndomeniu,i se expun pricipial soluiile originale introduse n tez.Capitolul 2 descrie stadiul actual al cunoaterii n domeniu,fcnd un studiual 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 deasamblare foarte greoi i fr disponibiliti grafice, fie de folosirealimbajului C sau a unor limbaje dedicate microcontrolerelor cum arJAL.(Just Another Language).Folosirea microcontrolerelor sau a circuitelor integrate logice impunecostruirea cablajelor,lipirea componentelor,testarea schemei,construireasurselor de alimentare,etc.Toate aceste elemente conduc la costuri mrite ila interfee hardware complexe cu utizatorul.

  • 7/28/2019 comanda motor pas cu pas

    27/30

    27

    Capitolul 3 trateaz portul paralel ( LPT ) din perspectiva interfarii unuimotor pas cu pas unipolar .Studiul descrie semnalele suportate de portul

    paralel,semnificaia acestora i trateaz interfaa hardware cu motorul pas cupas.Se alege o interfa ct mai simpl avnd n vedere faptul c s-a urmritmaximizarea utilizrii resurselor disponibile ale oricrui calculator,deciutilizarea unui minim de componente hardware externe i suplinireafunciilor acestor componente prin software.Este tratati posibilitatea de monitorizare prin software a semnalelordisponibile pe liniile de date ale portului paralel,descriind aici i programullpt.exe.Capitolul 4 descrie protocoale de comunicaie folosite industrial pentrucontrolul la distan al motoarelor pas cu pas.Este descris protocolul X10,grefat pe reeaua de 220V existent n orice cldire.Protocolul folosetemodule transmitor receptor care moduleaz n frecven semnalele dedate .Utilizarea protocolului presupune achiziia de echipamente de laproductor.Alt protocol descris este Super Stepper,care interconecteaz un modulmaster controler la 32 de module sclav prin interfaa RS-422, i necesitachiziia att a echipamentelor de la productor ct i cumprarea desoftware dedicat acestei aplicaii.Dezavantajul major al acestor protocoale serefer la posibilitatea utilizrii lor pe o arie restrns de ordinul a 1-2km.

    Super Stepper presupune construirea n prealabil a reelei de 3 fire necesaretransportului semnalelor interfeei RS- 422.Aceste considerente au dus la o contribuie esenial prin crearea unuiprotocol de comunicaie care s ofere posibilitatea controlului unui motorpas cu pas far limitri geografice.XMSIG permite controlul la distan al unui motor unipolar conectat local laun calculator prin intermediul portului paralel,care la rndul su esteconectat n reeaua Internet.Este de la sine neles c este posibil cu att maimult i controlul ntr-o reea local.Protocolul folosete ca suport protocolulTCP/IP i modelul Client - Server.Capitolul 5 conine contribuii personale ale autorului i descrie etapelesoftware parcurse pentru implementarea protocolului XMSIG.n prima etap se expune soluia propus pentru transmiterea la distan nInternet a unui ir de caractere.Avnd n vedere faptul c interfaa local eracreat folosind programul Excel s-a creat n etapa a doua un program care stransmit date ntr-o foaie de calcul creat n Excel i aflat la distan, pe uncalculator conectat la Internet.Etapa 3 descrie protocolul XMSIG i aici este definit formatul unui cadru dedate folosit de protocol.Ideea original se refer la asignarea cmpurilor unui

  • 7/28/2019 comanda motor pas cu pas

    28/30

    28

    cadru al protocolului unor TextBox-uri introduse n formularul creat nVisual Basic 6.Mecanismul de codificare prin separarea cu caractere

    delimitatoare, i extragerea parametrilor i a codurilor de comand ofer osoluie ingenioasi eficient prin simplitatea implementrii.Autorul reface apoi interfaa cu utilizatorul n scopul ncapsulrii celor treiaplicaii create anterior .Este refcuti interfaa grafic cu utilizatorul nsensul asemnrii cu interfaa creat pentru comanda local,astfel nctutilizatorul s lucreaze la fel ca n modul local dei comand un motor aflatla distan oriunde n reeaua Internet.Capitolul 6 expune concluziile extrase din capitolele 1-5,relevnd aspectelecare au condus la crearea protocolului XMSIG, precum i a interfeei localede comand .Avantajele i dezavantajele soluiilor studiate n tez suntenumerate n acest capitol de sintez .Sunt propuse i posibile dezvoltri ale tezei pentru situaia n care nu avemconectivitate la reeaua Internet.Se propune ca soluie folosirea reelelorGSM.Protocolul XMSIG poate fi folosit n continuare,dar cadrele de date aleprotocolului vor fi transmise de la Client la Server prin intermediul unormesaje scurte (SMS), care ns trebuie s respecte sintaxa protocoluluiXMSIG pentru a putea fi interpretate corect i a genera secvenele necesarede 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, EdituraGheorghe 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.

  • 7/28/2019 comanda motor pas cu pas

    29/30

    29

    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, EdituraPolitehnica Timioara, 2003

    53. Catalog SGS` THOMSON MICROELECTRONICS54. Catalog NATIONAL SEMICONDUCTOR67.Robot Builders Bonanza, 3rd Ed68.Society of Mind , Marvin Minsky69.PIC Microcontroller Project Book , John Iovine70. Introduction to Autonomous Mobile Robots , Roland Siegwart and

    Illah R. Nourbakhsh71. Robot Building for Beginners , Dave Cook72.C Programming Language , Ritchie Kernighan73.PIC Microcontroller: An Introduction to Software & Hardware

    Interfacing, Han-Way Huang

    84. Programming Microsoft Visual Basic 6.0 Author: Francesco BalenaPublisher: Microsoft Press

    85.Visual Basic Programmer's Guide to the Win32 API,Author: DanAppleman,Publisher: Sams

    86. Programming Microsoft Visual Basic .NET,Author: Francesco

  • 7/28/2019 comanda motor pas cu pas

    30/30

    30

    BalenaPublisher: Microsoft Press

    87. www.visualbasicbooks.com/courses.html88. VB Net Guide for Experienced Programmers,Jonathan Morrison andGary Cornell

    89. VB & VBA in a Nutshell: The Language , Paul LomaxFirst Edition October 1998

    90. Advanced Microsoft Visual Basic 6.0 By the Mandelbrot Set,Publishedby MS Press, November 1998, Paperback, 880 pages, ISBN

    157231893791. neil.fraser.name/software/lpt/92. http://www.x10.com/support/technology1.htm93.www.superstepper.com/Protocol/protocol.html94. Retele de calculatoare (editia a IV-a),Andrew S.

    Tanenbaum,ed.Byblos-2004