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

S-ar putea să vă placă și