Sunteți pe pagina 1din 56

Capitolul 10

SISTEME DE CONDUCERE
CU MULTIPROCESOR

Complexitatea structurilor mecanice într-o serie de roboţi industriali, a


sistemelor senzoriale precum şi gradul ridicat de dificultate al operaţiilor
tehnologice conexe necesită sisteme de conducere cu rezerve hardware şi software
suficiente, care să acopere cerinţele impuse de regimurile specifice în care operează
aceste sisteme. Una din soluţiile cele mai curent utilizate în această direcţie constă
în implementarea sistemului de conducere pe o structură bazată pe
microprocesoare.
Microprocesorul acoperă relativ uşor cerinţele specificate mai sus şi asigură
în acelaşi timp o flexibilitate deosebită a domeniului de utilizare, o fiabilitate
ridicată şi, nu în ultimul rând, o soluţie economică în general unanim acceptabilă.

10.1. Principii generale

Caracteristica de bază a unui sistem robotic este mişcarea robotului în cicluri


reprogramabile şi capacitatea acestuia de a schimba, modifica, traiectoria şi
punctele esenţiale ale acesteia în conformitate cu modificarea cerinţelor de
operare. Aceasta presupune existenţa unor sisteme de conducere flexibile care să
asigure generarea unor legi de conducere adecvate si modificarea acestora când
este cazul. Implementarea lor necesită fie existenţa unui sistem de programare, cu
programe realizate off-line, fie a unui sistem de instruire specific. În ambele cazuri
va fi necesară introducerea unei memorii care să asigure informaţia de control
corespunzătoare.
Deci, aceste sisteme trebuie să fie dotate cu o memorie de dimensiuni
adecvate şi cu o structură hardware şi software de control a acesteia.
Roboţii generaţiilor recente sunt dotaţi cu structuri ierarhizate de conducere
ceea ce asigură o comportare adecvată la schimbările mediului de lucru. Aceasta
impune fie existenţa unui calculator puternic care să acopere întregul sistem de
conducere, fie a unor procesoare specializate ataşate fiecărui nivel ierarhic. Ultima
soluţie este de cele mai multe ori preferabilă, atât în ceea ce priveşte flexibilitatea
de ansamblu a configuraţiei, cât şi sub raport economic.
Capitolul 10. Sisteme de conducere cu multiprocesor 350

Roboţii actuali au în general un câmp de aplicaţie bine conturat, acesta fiind


definit de structura mecanică existentă şi, în special, de specificul sistemului de
calcul şi al programelor utilizate. Astfel, un robot destinat unor operaţii de vopsire
trebuie să fie echipat cu un sistem hardware - software care să-i permită
programarea prin instruire a traiectoriilor de mişcare, pe când un robot utilizat în
operaţii de asamblare cuprinde un sistem de măsurare şi senzorial de înaltă calitate
pentru a asigura conducerea compliantă adecvată.

10.2. Structura de bază

Soluţiile hardware implicate în orice sistem de conducere cu micrprocesor


pot fi grupate în două clase mari: arhitecturi microprocesor şi arhitecturi
multiprocesor.
Într-o structură multiprocesor, fiecărei axe de mişcare i se asociază câte un
procesor împreună cu modulele de interfaţă auxiliare către dispozitivul de acţionare
şi către sistemul de traductoare de deplasare. Un procesor specializat coordonează
şi supervizează întregul proces, acesta asumându-şi, în acelaşi timp, o serie de
sarcini ce nu pot fi distribuite procesoarelor locale.
Această distribuţie a funcţiilor de conducere între câteva procesoare are, în
primul rând, avantajul unei distribuţii a efortului de calcul care, într-o conducere în
timp real, este întotdeauna prioritar.Această soluţie va fi, deci, recomandabilă în
sistemele mai lente, cu un set de instrucţiuni redus, şi cu timpi de prelucrare mari.
Dacă procesoarele utilizate sunt microprocesoare pe 16 sau 32 biţi cu o
prelucrare rapidă de informaţie şi care conţin un set bogat de instrucţiuni, atunci o
arhitectură de tip multiprocesor nu este recomandată, întregul sistem de conducere
putând fi acoperit cu un singuur procesor.
Indiferent de tipul arhitecturii utilizate, o caracteristică de bază a acesteia
este modularitatea. Această modularitate trebuie privită sub două aspecte:
 Modularitate funcţională ce reflectă tendinţa sistemului de a rămâne
constant (ca structură) pentru orice extindere solicitată. Astfel, dacă se doreşte
introducerea unei bucle de conducere pentru încă o axă de mişcare, aceasta implică
integrarea unui set nou de funcţii (hardware şi software) fără a modifica structura
existentă.
 Modularitatea fizică indică integrarea uneia sau a mai multor unităţi
fizice într-o singură unitate funcţională. Această organizare oferă avantaje
deosebite în fazele de proiectare şi de explorare ale echipamentului.
În continuare va fi analizată detaliat o arhitectură tip monoprocesor a cărei
structură se va regăsi în toate configuraţiile uzuale de conducere (figura 10.1).
351 Roboţi industriali

TERMINAL TABLOU
OPERATOR INSTRUIRE

MEMORIE INTERFAŢĂ
MICROPROCESOR
RAM-EPROM OPERATOR

INTERFAŢĂ MEMORIE INTERFEŢE I/O INTERFAŢĂ MEMORIE


MAGNETICĂ MAGNETICĂ

FLOPPY DISK, CASETE INTERFAŢĂ MEMORIE


MAGNETICĂ

INTERFAŢĂ MEMORIE
MAGNETICĂ

Figura 10.1

Unitatea principală a sistemului este microprocesorul împreună cu unităţile


de memorie aferente. Caracteristicile microprocesorului determină direct puterea
unităţii de control şi flexibilitatea acesteia.
În principiu, performanţele microprocesorului trebuie să corespundă unui
standard ridicat, prin aceasta înţelegând:
 O unitate aritmetică şi logică capabilă să manipuleze date pe 16 biţi şi
să realizeze operaţii aritmetice complexe ca adunarea şi inmulţirea;
 Un sistem puternic de gestionare a intrărilor şi ieşirilor în timp real;
 Un set bogat de instrucţiuni cu mai multe moduri de adresare;
 Timpul asociat ciclurilor maşină să fie mic;
O serie de microprocesoare comerciale satisfac aceste deziderate.
Menţionăm în acest sens seria 9000 de la Texas Instruments, Motorola 6800, Intel
8086 etc.
Memoria sistemului este formată din componente ROM, PROM sau
EPROM ce memorează programul de control general al robotului şi componentele
Capitolul 10. Sisteme de conducere cu multiprocesor 352

RAM utilizate în fazele de execuţie şi pentru memorarea unor variabile în ciclurile


de instruire.
Arhitectura sistemului cuprinde un set de module de interfaţă prin care se
achiziţionează informaţiile traductoarelor de măsură sau ale sistemului senzorial şi
prin care se transmit comenzile de acţionare.
Informaţia de poziţie este primită de la un traductor incremental sau absolut
şi este convertită în circuitul de interfaţă în semnale compatibile cu
microprocesorul. Informaţia de comandă este obţinută în urma unei prelucrări
numerice a algoritmului de conducere sub forma unui semnal numeric şi este
convertită în sistemul de interfaţare într-un semnal, de obicei analogic, care
activează blocul de acţionare corespunzător.
Cele două mărimi, de poziţie şi de comandă, asigură legătura
microprocesorului cu obiectul condus, robotul, şi asigură funcţionalitatea
arhitecturii ca un sistem în circuit închis.
O funcţionare tipică de conducere a robotului pe o traiectorie dată se
realizează în modul următor. La intervale de timp egale, microprocesorul
calculează coordonatele necesare pentru deplasarea terminalului, cu o mărime
corespunzătoare intervalului de timp şi cu o orientare adecvată, în lungul
traiectoriei de lucru. Aceste coordonate sunt comparate cu cele primite de la
traductoare, eroarea rezultată este introdusă intr-un regulator PID (implementat
software) ai cărui coeficienţi sunt dependenţi de caracteristicile sistemului. Ieşirile
regulatorului comandă sistemul de acţionare prin circuitul de interfaţare. În scopul
obţinerii unei stabilităţi garantate în circuit închis, întregul sistem trebuie să
opereze la o frecvenţă ridicată.
Un modul de interfată specific acestei arhitecturi este cel care asigură
legătura cu operatorul. În mod normal operatorul acţionează asupra
microprocesorului prin două moduri: un pupitru (tablou) de comandă şi un panou
(pupitru de intruire).
Primul asigură o legătură permanentă cu robotul şi cu microprocesorul
semnalând diferitele regimuri funcţionale şi permiţând o intervenţie directă. Al
doilea sistem asigură funcţiile de instruire şi este realizat ca o unitate fizică
portabilă ce permite deplasarea operatorului în imediata vecinătate a robotului în
scopul obţinerii unei instrucţiuni concrete.
Ultimul modul în această configuraţie asigură legătura directă intrare - ieşire
cu spaţiul extern al microprocesorului, acesta fiind concretizat aici de structura
mecanică a robotului şi de mediul de operare al acestuia. Prin acest sistem de
interfaţă microprocesorul primeşte informaţiile senzorilor din structura robotului
sau a spaţiului de lucru al acestuia şi permite obţinerea unei comportări adaptive
faţă de orice modificare a parametrilor respectivi.
353 Roboţi industriali

A doua categorie de sisteme, cele de tip multiprocesor, corespund unor


arhitecturi mai avansate, adecvate unei conduceri evoluate a roboţilor.
În figura 10.2 este prezentată o astfel de structură bazată pe o ierarhizare
master – slave a procesoarelor. Procesorul master – slave stabileşte legile generale
de conducere a robotului, strategia de funcţionare a acestuia şi împarte fiecărui
procesor sclav sarcinile în conducerea fiecărui element. Astfel, un procesor sclav
coordonează funcţiile tactile ale mâinii, iar celelalte controlează mişcarea asociată
fiecărei articulaţii mecanice pe baza informaţiilor primite de la traductoarele şi
senzorii sistemului.

MAGISTRALĂ COMUNĂ

MASTER SLAVE 1 SLAVE 2 SLAVE 3

TERMINAL
OPERATOR
INTERTAŢA 1 INTERTAŢA 2 INTERTAŢA 3

TERMINAL
GRAFIC
Traducătoare Senzori deplasare Senzori deplasare
senzori forţă
MEMORIE
EXTERNĂ
Acţionare Acţionare Acţionare
terminal articulaţie articulaţie

Figura 10.2

Pe lângă caracteristicile menţionate mai sus, un astfel de sistem mai cuprinde


şi numeroase avantaje cum ar fi: supleţe tehnologică, posibilitatea interconectării
unor subsisteme de conducere specializată, testabilitate facilă etc.

10.3. Implementarea sistemelor de conducere

Indiferent de structura de conducere adoptată, una din funcţiile de bază ale


microprocesorului va consta în acoperirea controlerului numeric ce asigură
performanţele de regim staţionar şi dinamic ale elementelor mecanice. O
funcţionare corectă în acest sens este posibilă numai dacă controlerul realizat
operează în timp real ceea ce impune o prelucrare adecvată a semnalelor
Capitolul 10. Sisteme de conducere cu multiprocesor 354

(eşantionate şi cuantificate), o procesare internă conform algoritmului adoptat şi o


generare corespunzătoare a mărimilor de comandă necesare.
În anumite configuraţii standard, controlerul numeric nu reprezintă altceva
decât o transpunere digitală a clasicului regulator sau compensator utilizat în
buclele de reglare convenţionale. În acest caz efortul de calcul este minim şi
acoperirea este posibilă utilizând un suport hardware modest. În cazurile unor
abordări mai sofisticate a sistemului de conducere se impune mai întâi o
îmbunătăţire şi filtrare a acestuia utilizând tehnici de calcul corespunzătoare şi apoi
implementarea unor legi de conducere cu performanţe ridicate.
Indiferent de complexitatea soluţiilor abordate, structura generală a
sistemului de conducere are forma prezentată în figura 10.3. Un bloc de eşantionare
determină discretizarea mărimilor de tip analogic asigurând în acest fel
caracteristicile necesare prelucrării numerice ulterioare,

qi  q (iT )  q (t ) t  iT i  0,1,2.......
(10.1)

unde T este perioada de eşantionare.

q d (t) EŞANTIONARE ŞI ei CONTROLER ui


CALCULLUL ERORII EXTRAPOLATOR
NUMERIC

u α (t)

q (t)
ROBOT

Figura 10.3

Eroarea sistemului de conducere se determină din semnalele astfel formate:

ei  qdi  qi (10.2)

Controlerul numeric generează comenzile ui conform relaţiei:

ui  G (ei ) (10.3)

unde G reprezintă legea de control utilizată.


355 Roboţi industriali

Ambele funcţii de prelucrare numerică, a controlerului şi cea a blocului


comparator (calculul erorii) sunt acoperite de microprocesor. Acesta furnizează la
ieşire o mărime de comandă numerică ui incompatibilă în general cu sistemul de
acţionare al robotului. Conversia semnalului de comandă discret ui într-un semnal
continuu u  (t ) se realizează cu circuite de extrapolare. Se preferă utilizarea unor
extrapolare de ordin zero având în vedere facilităţile de realizare fizică a acestora.
Într-adevăr, datorită caracteristicilor specifice

u  (t )  ui pentru iT  t  (i  1)T
(10.4)

ele pot fi obţinute cu simple elemente de memorie analogică.


Principiile teoretice referitoare la găsirea celor mai adecvate soluţii privind
implementarea sistemului numeric de control au fost analizate într-un număr mai
mare de lucrări [3, 32, 89, 118]. În cele ce urmează vor fi abordate câteva metode
ce permit obţinerea unor soluţii relativ comode.

10.3.1. Proceduri de implementare convenţionale

Una din cele mai simple modalităţi de proiectare constă în utilizarea


procedurilor clasice de sinteză a sistemului de conducere pentru semnale continue
în timp şi conversia acestui sistem într-un sistem discret analizând toate implicaţiile
ce decurg din această transformare. Acestea se referă în general la efectele privind
deteriorarea stabilităţii sistemului ca urmare a eşantionării semnalelor.
Într-o formă simplificată, etapele ce definesc aceste proceduri sunt
următoarele:
i) Se proiectează structura de conducere a fiecărei articulaţii
mecanice astfel încât să se asigure performanţele de regim staţionar şi dinamice
impuse utilizând tehnicile specifice semnalelor continue. Aceste metode au fost
analizate în capitolul 5 şi corespund unor proceduri destul de familiare
proiectanţilor de sisteme automate. Reluând anumite aspecte discutate anterior, un
astfel de sistem va avea forma prezentată în figura 10.4,a. Mai exact, pentru cazul
unei articulaţii de rotaţie, în figura 10.4,b. sunt indicate funcţiile de transfer ale
elementului mecanic şi al sistemului de acţionare (motor de curent continuu
Y ( s )  km . Regulatorul YR (s ) va avea o funcţie de transfer mai mult sau mai
puţin complicată conform performanţelor impuse întregului sistem de conducere.
Capitolul 10. Sisteme de conducere cu multiprocesor 356

q d (s) e (s) u (s) u α (s) q (s)

Y R (s) Y SA (s) YROB (S)

q d (s) e (s) u (z) q (s)


Y R (s)

Figura 10.4

ii) Se alege perioada de eşantionare T a sistemului discretizat. Această


alegere este determinată atât din raţiuni de implementare tehnologică cât şi, în
special, din consideraţii privind păstrarea performanţelor staţionare şi dinamice sau
altfel spus, păstrarea răspunsului la impuls şi în frecvenţă al noului sistem
discretizat.
Prima condiţie implică practic determinarea uunei anumite lungimi a
cuvântului şi deci este corelată direct cu arhitectura sistemului de calcul, cu
resursele hardware disponibile. Asupra acestui aspect se va reveni ulterior.
Respectarea celei de a doua condiţii implică satisfacerea unor restricţii legate
de constantele de timp sau frecvenţele critice ale sistemului condus. În literatură
aceste restricţii sunt date sub forma [119],

f s  10 f b (10.5)

unde
1
fs 
T

iar f b este lărgimea de bandă a sistemului în buclă închisă.


Alte criterii [118] impun o soluţie de forma :
357 Roboţi industriali

T  0,1  Tfi (10.6)

unde T fi sunt constantele de timp principale ale părţii fixe, sau [82],

T  0,5 min T fi 
în care min { T fi } este cea mai mică constantă de timp a elementelor mecanice.
De asemenea, după [80] se propune

1 1 
T   ....  T f pricipală
5 2,5 
(10.7)

Toate aceste criterii mai mult sau mai puţin empirice permit alegerea unei
perioade de eşantionare T într-o primă etapă. Se impune ulterior verificarea
corectitudinii acestei selecţii printr-o analiză riguroasă a implicaţiilor introduse în
comportarea sistemului de conducere.
Plecând de la premisa că regulatorul şi elementele de comparaţie alanogică
sunt implementate corect sub raportul performanţelor prin controlerul numeric şi
blocurile de eşantionare şi de calcul al erorii (fig. 10.9.), diferenţierile între cele
două structuri de conducere, cea continuă şi cea discretă sunt date de blocul de
extrapolare. Se impune, deci, verificarea gradului de alterare al performanţelor prin
întârzierile introduse de extrapolare.

q d (s) e (s) u (s) u α (s) q (s)


Kf
Y R (s) Y EX (s)
s(s  a)

Figura 10.5

În practică, se analizează stabilitatea unui sistem de conducere de forma


prezentată in figura 10.5 în care s-a intercalat un bloc de extrapolare.
Capitolul 10. Sisteme de conducere cu multiprocesor 358

Tehnica curent utilizată constă în trasarea locului rădăcinilor pentru noul


sistem de conducere în circuit închis şi verificarea regimurilor stabile pentru o
funcţie de transfer YEx (s ) a extrapolarului.
De exemplu, dacă se consideră un extrapolar de ordin zero, atunci

1  e sT
YEx  s   (10.8)
s

În condiţiile în care această modificare structurală menţine calitativ


regimurile funcţionale dorite se poate trece le etapa următoare, în caz contrar o
modificare a perioadei de eşantionare T (micşorarea acesteia) fiind imperios
necesară.
iii) Se aplică transformanta Z funcţiei de transfer a regulatorului
determinând astfel funcţia de transfer directă a controlerului numeric.

YR  z   Z YR  s  (10.9)

De asemenea, notând prin

 kf 
Y1  z   Z YEx  s   (10.10)
 s s  a  

şi

e z   Z  e  s   (10.11)

q  z   Z  q  s 

se obţine forma discretă a sistemului de conducere (figura 10.6).


În această prezentare, funcţia de transfer YR  z  are forma generală,

a1  a2 z 1  ....  ak z  k
YR  z   , kn
1  b1 z 1  ....  bn z  n (10.12)
359 Roboţi industriali

Relaţia (10.2) constituie punctul de plecare al implementării controlerului


numeric.

iv) Se determină algoritmul de funcţionare al controlerului

u  z  a1  a2 z 1  ....  ak z  k

e z  1  b1 z 1  ....  bn z  n
   
u  z   a1  a2 z 1  ....  ak z  k e z   b1 z 1  ....  bn z  n u  z 

sau, în domeniul timp

u  t   a1e t   a2 e t  T   ....  ak e t  kT   b1u  t  T   ....  bn u  t  nT 


(10.13)

v) Se adoptă o soluţie hardware pentru întregul sistem de conducere.


Se implementează prin software-ul procesorului algoritmul (10.13).

q d (z) e (z) u (z) q (z)


Y R (z) Y 1 (z)

Figura 10.6

În figura 10.7 este prezentată structura generală a sistemului de conducere.


În afara elementelor discutate se remarcă prezenţa unui convertor analog-numeric
ce realizează eşantionarea şi cuantificarea mărimilor de reacţie q (t ) . S-a
constatat, de asemenea, că valorile prescrise qd (t ) sunt introduse direct în forma
discretă qd (iT ) .
Capitolul 10. Sisteme de conducere cu multiprocesor 360

PROCESOR

q d (iT) e (iT) u (iT)

CALCULUL ERORII ALGORITMUL (10.13) EXTRAPOLATOR

u α (iT)

q α (iT) q (t)
CONVERTOR A/N ROBOT

Figura 10.7

Pentru exemplicarea procedurii se va aborda sistemul de conducere al unei


articulaţii de rotaţie descrisă prin funcţia de transfer (inclusiv acţionarea).

10
Y f ( s) 
s ( s  2.67)
(10.14)

Performanţele solicitate sistemului sunt :


Supraurmărirea σ  7 .5 %
Eroarea staţionară nulă pentru semnalul treaptă unitar

E 0 (10.15)

Eroare staţionară la semnale rampa unitara

E1  0.02 (10.16)

Lărgimea de bandă

f b  50 Hz (10.17)

În conformitate cu cele prezentate în capitolul v) şi în [93] soluţia problemei


de conducere este dată de introducerea unui regulator cu fucţia de transfer.

( s  3.64)
YR ( s )  252.3
( s  71.07)
(10.18)
361 Roboţi industriali

Pentru alegerea perioadei de eşantionare T se determină constanta de timp a


elementelor mecanice.

1
τf   0.37 s
2.67

Utilizând drept criteriu de selecţie realţia (10.7) rezultă

1
T τ f  0.063s
5

În acest sens se alege perioada de eşantionare la valoarea T  0.02s .


Funcţia de transfer a extrapolarului de ordin zero, se poate aproxima printr-o
dezvoltare Pade de ordin 1 sub forma:

1  e sT T 2 2
  
s sT 2 s  100
1 s
2 T

Funcţia de transfer a căii directe va deveni în acest caz (figura 10.5)

5064( s  3.64)
Y (s) 
s ( s  71.07)(s  2.67)(S  100)

Analiza stabilităţii implică trasarea locului rădăcinilor funcţiei de transfer :

( s  3.64)
Y ( s ) 
s ( s  71.07)( s  2.67)( s  100)

În figura 10.8 sunt prezentate comparativ locul rădăcinilor pentru cazul


prezenţei extrapolarului în funcţia de transfer în circuit deschis şi în cazul
eliminării acestuia. Este evidentă înrăutăţirea stabilităţii datorită întârzierii
introdusă de extrapolator dar se observă uşor că ramura critică determinată de cei
doi poli p0  0 şi p1  2.67 determină instabilitate pentru un factor general de
amplificare k  10.000  5046 (punctele M si N). Se poate aprecia deci că
Capitolul 10. Sisteme de conducere cu multiprocesor 362

eşantionarea cu perioada T  0.02 s nu afectează stabilitatea sistemului de


conducere.
În continuare se determină funcţia de transfer discretă a regulatorului.
Tinând cont de forma acesteia (10.18) se poate utiliza metoda transformării directe
[119] astfel încât:

( s  a j )
YR ( z ) 
( s  b j )
(10.19)

unde:

lim YR ( s)
k  S O
limYR ( s)
S 1
(10.20)

Din (10.18) rezultă:

1  z 1e 3.64T
YR ( z )  k
1  z 1e  71.07T

Pentru T  0.02 s , se obţine:

z  0.9297
YR ( z )  k
z  0.2414

Utilizând relaţia (10.4) se determină k :

3.64
252.3
k 71.07  139.42
1  0.9297
1  0.2414

Deci :
363 Roboţi industriali

z  0.9297
YR ( z )  139.42 (10.21)
1  0.2414

sau

u( z) 1  0.9297  z 1
 139.42
e( z ) 1  0.2414  z 1

Trecând în domeniul discret se obţine:

ui  0.2414  ui 1  139.42  ei  129.24  ei 1


(10.22)

Pentru implementarea numerică a relaţiei (10.6) se impune utilizarea


coeficienţilor subunitari. Definind, pentru aceasta, variabila:
Plan S Plan S

M
(k=10000)
P3=-100 -38 Z1=-3,64 -3,64

 
6 6
P2=-71,07 P1=-2,67 P0=0 -71,07 -38 -2,67
N
(k=10000)
Capitolul 10. Sisteme de conducere cu multiprocesor
364
365 Roboţi industriali

Figura 10.8
1
wi  ui
256
(10.23)

rezultă:

0.2414 139.42 129.24


wi  u i 1  ei  ei 1 (10.24)
256 256 256

Structura generală de implementare poate fi urmărită în figura 10.9.


Multiplicarea prin 256 solicitată este usor şi rapid realizată prin software-ul
procesorului.

PROCESOR
q di
q di  q im e i ECUAŢIA (10.24) wi x 256 u i EXPLORATOR
u i*
ROBOT
q i*
ECUAŢIA (10.24) q t 
Figura 10.9

10.3.2. Proiectarea directă în domeniul timp

Această metodă de proiectare specifică sistemelor discrete permite


determinarea directă a funcţiei de transfer a regulatorului numeric pe baza
răspunsului dorit, impus la un semnal de referinţă dat (de obicei o treaptă unitară
discretă sau o rampă unitară discretă). Procedura are avantajul unei simplităţi
remarcabile ea eliminând tehnicile laborioase de alocare a zerourilor şi polilor în
domenii specificate unor metode ce implică un calcul pretenţios şi nu întotdeauna
exact [118,119].
Pentru exemplificarea procedurii să considerăm schema ganerală de reglare a
poziţiei printr-o articulaţie de rotaţie (figura 10.6). Sistemul de conducere
urmăreşte obţinerea unei comportări impuse, unei evoluţii dorite a variabilei q
pentru un semnal tipizat pe intrare, de exemplu treapta unitară (figura 10.10).
Capitolul 10. Sisteme de conducere cu multiprocesor 366

Fie deci {q i} mulţimea valorilor discrete ale răspunsului dorit, un semnal
treaptă. Cu aceste date se poate obţine transformata în Z a mărimii de ieşire.

q( z 1 )  q 1 z 1  q  2 z 2  .....  q  p z  p  z  ( p1)  z  ( p 2)  ...........


(10.25)
unde:

q  p 1  q p  2   ...............  1

datorită atingerii valorii staţionare după p paşi.

qd*

t
*
q
T 2T 3T 4T 5T 6T 7T …………..

1
q3* q4* q5*
q2*
q1* t

T 2T 3T 4T 5T 6T 7T 8T 9T …………..

Figura 10.10

Relaţia (10.25) poate fi rescrisă sub forma:

z  ( p 1)
q( z 1 )  q 1 z 1  q  2 z 2  .....  q  p z  p 
1  z 1
(10.26)

sau:
367 Roboţi industriali

q 1 z 1  (q  2  q *1 ) z 2  .....  (q  p  q * p1 ) z  p  (1  q * p ) z  ( p 1)


q( z 1 ) 
1  z 1
(10.27)

Pe de altă parte, dacă Y0 ( z 1 ) este funcţia de transfer corespunzătoare în


circuitul închis, atunci răspunsul la un semnal treaptă unitară :

1
qd ( z 1 ) 
1  z 1
(10.28)

este :

1
qd ( z 1 )  Y0 ( z 1 ) (10.29)
1  z 1

Comparând relaţiile (10.27) şi (10.29) rezultă funcţia de transfer în circuit


închis dorită:

Y0 ( z 1 )  q 1 z 1  (q  2  q *1 ) z 2  .....  (1  q  p ) z (11)
(10.30)

Funcţia de transfer a regulatorului se obţine din :

YR ( z 1 )Y f ( z 1 )
Y0 ( z 1 ) 
1  YR ( z 1 )Y f ( z 1 )
(10.31)

1
unde Y f ( z ) rezultă din figura (10.6) sub forma :

1  e Ts kf
Y f ( z 1 )  Z 
s s( s  a)
(10.32)
Capitolul 10. Sisteme de conducere cu multiprocesor 368

Aplicând tehnicile cunoscute de transformare, rezultă:

kf
Y f ( z 1 ) 
(1  z )(1  z 1e aT )
1

(10.33)

1
Întrucât Y f ( z ) nu conţine zerouri, există riscul introducerii unor
elemente instabile în circuit închis, deci YR ( z 1 ) se poate determina direct din
(10.31):

Y0 ( z 1 )
YR ( z 1 ) 
Y f ( z 1 )(1  Y0 ( z 1 ))
(10.34)

Pentru exemplificare, să considerăm că evoluţia dorită a semnalului de ieşire


este dată prin valorile:

q1  q 2   0; q 3   0.28; q 4   0.6;


q 5   0.8; q 6   1; q 7   1;......... ....

Primele două valori nule se datorează timpului mort apreciat la acest sistem:

  2T

Utilizând aceleaşi valori ca şi în aplicaţia precedentă, pentru T=0.02s din


(10.32) rezultă :

z 3 (1  z 1 )(1  0.92 z 1 )(0.028  0.0320z 1  0.02 z 2  0.02 z 3 ) u ( z 1 )


YR ( z )  
(1  0.28z 3  0.32 z  4  0.20 z 5  0.2 z 6 ) e( z 1 )

Prelucrarea acestei relaţii determină algoritmul final:

u I  0.28u i 3  0.32u i 4  0.2u i 5  0.2u i 6  0.028ei 3  0.025ei  4  0.011ei 5 


 0.011ei 6  0.02ei 7  0.018ei 8
369 Roboţi industriali

10.4. Implementarea sistemului de măsurare al mărimilor


analogice

Numeroase criterii concurează la stabilirea componentelor şi dimensiunilor


sistemului de conducere. Între aceste elemente putem amintii:
 Acoperirea performanţelor impuse;
 Eliminarea incertitudinilor funcţionale în condiţii reale de operare;
 Facilitaţi de testare;
 Preţuri de cost rezonabile pe componente şi pe întreaga structura, etc.
Toate aceste criterii permit stabilirea unui cadru general în care trebuie
cuprinsă arhitectura viitorului sistem. Alegerea exactă a unor soluţii hardware de
implementare se realizează prin utilizarea unor metode specifice, bazate pe o
analiză amănunţita a semnalelor prelucrate şi a algoritmului implementat.
În cele ce urmează vom aborda principalele etape ce intervin în aceste
proceduri.

10.4.1 Dimensionarea convertorului analog-numeric

Implementarea oricărui algoritm de conducere presupune, în primul rând,


determinarea parametrilor elementului de conversie al mărimilor măsurate de
traductoarele de poziţie, în speţă convertorul analog-numeric.
Parametrul principal al acestui convertor îl reprezintă numărul de biţi ce
defineşte conversia analog-numerică. Dacă se notează prin S min şi S max valoarea
minimă (rezoluţia) şi respectiv maximă semnalului analogic, atunci numărul de biţi
necesari pentru acoperirea conversiei sunt determinaţi din relaţia [119].

smax
q nCAN  (10.35)
smin

deci

smax
nCAN  log 2 (10.36)
smin
Capitolul 10. Sisteme de conducere cu multiprocesor 370

De exemplu, presupunând un semnal normalizat, deci S max  1V şi o


rezoluţie 1% atunci :

1
nCAN  log 2 ;
0.01
6  nCAN  7

Se alege deci nCAN  7 . Într-o reprezentare în complement faţă de 2 se


alocă un bit pentru semn, deci în final :

nCAN  7  1  8

În figura 10.11.a este prezentată schema generală a unui astfel de convertor


precum şi semnalele principale aferente acestuia.
Ponderea bitului cel puţin semnificativ LSB este :

2
1 LSB   7.812 mV
28

Caracteristica generală a conversiei şi câteva mărimi semnificative sunt


prezentate în figura 10.11.b

Iesire
digitala

0.1111111
Intrare
analogica 1 2
3,906  LSB 1V 1LSB 0.9922V
CS -1V2    Intrare
START CA 1
analogica
ST N    3,906mV  LSB
t D7 D6 D0 2
c
1.0000000

Figura 10.11
371 Roboţi industriali

Funcţionarea convertorului este realizată prin aplicarea unor semnale de


control. Amorsarea mecanismului conversiei se obţine prin semnalul START
conversie. Conversia propiu-zisă este realizată sub controlul unui semnal de tact ce
permite prin tehnici specifice (aproximaţii succesive) secvenţierea procesului.
Starea operaţiei de conversie este accesibilă utilizatorului sub forma
semnalului ST care devine 1 logic la începerea conversiei şi se anulează odată cu
terminarea ei. Ieşirea digitală se obţine după acest interval de timp (t c) de ordinul
15 μs la convertoarele rapide. Captarea acestei informaţii se realizează prin
activarea semnalului CS care aduce în regim de transparenţă părţile de ieşire tri-
state ale convertorului.

10.4.2. Conectarea convertorului analog-numeric la procesor

Interfaţarea cu un microprocesor a convertorului cere executarea unui dialog


între cele două sisteme. Acest dialog se poate rezuma în executarea următoarelor
operaţii :
 UC-ul microprocesorului trimite un semnal de START convertorului
pentru iniţializarea procesului;
 UC analizează bitul de stare ST pentru a aprecia închiderea conversiei;
 UC încarcă într-un registru intern informaţia numerică .
Capitolul 10. Sisteme de conducere cu multiprocesor 372

Intrare analogica
A15
Magist D
A0 rala P2
A0 CS
adrese
A1 START CONVERTOR A/N
MEMR P ST
A1 3
D7 D6 D0
UC A0

A1 P1
A0 P4
D7
D6
D5
D4
D3
D2
D1
D0

Figura 10.12

O astfel de soluţie este prezentată în figura 10.12. S-a utilizat un procesor cu


16 linii de adresă, convertorul fiind cuplat în spaţiul de adresare rezervat paginii
FD din memorie. Semnalele CS, START şi controlul porţii P 1 de acces al stării ST
se obţin prin adresele FD00, FD01, FD02.
Ieşirile D7…D0 sunt legate la magistrala de date a microprocesorului şi pot
deveni accesibile la formarea semnalului CS (adresa FD00 prin poarta P 1). Testarea
stării convertorului se realizează prin deschiderea porţii P 1 şi transferarea
conţinutului semnalului de stare ST pe linia D7 (adresa FD02 prin poarta P4).
Activarea tuturor porţilor este condiţionată de decodificarea paginii de adrese FD
în decodificatorul D şi executarea de către UC a operaţiei de citire din memorie
(MERM=1).
373 Roboţi industriali

De exemplu, utilizând instrucţiunile specifice microprocesorului 8080,


programul de achiziţie este următorul :

NRX: DW 0001H; ETICHETEAZĂ ADRESELE DE LUCRU


NRA: DW 00FDH;
LDA NRA+1; GENEREAZĂ SEMNALUL START
TEST MVI AOFFH; INTRODUCE SET PE REGISTRU A
MOV A,NRA+2; ÎNCARCĂ BITUL ST
RAL
JNC DATA; TESTEAZĂ BITUL ST
JMP TEST;
DATA LDA NRA; GENEREAZĂ CS ŞI ÎNCARCA ÎN A VALOREA
STA NRX; CONVERSIEI
ÎNCARCĂ DATELE LA ADRESA DORITĂ

În unele cazuri, în locul testului efectuat asupra bitului de stare se preferă


realizarea unei întârzieri software de 25 μs după care se transferă rezultatul
conversiei [120].

LDA NRA+1; GENEREAZĂ SEMNALUL START


MVI A,0; SE REALIZEAZĂ ÎNTÂRZIEREA DORITĂ
MVI A,0;
MVI A,0;
MVI A,0;
MVI A,0;
MVI A,0;
MVI A,0;
MVI A,0;
LDA NRA; SE ÎNCARCĂ VALOAREA CONVERSIEI
STA NRX; SE ÎNCARCĂ DATELE LA ADRESA DORITĂ

10.5. Implementarea controlerului numeric

Funcţia de bază a microprocesorului constă în generarea secvenţelor de


comandă în conformitate cu algoritmul de control stabilit. Propriu-zis, realizarea
acestui deziderat implică dimensionarea corectă a structurii hardware necesare şi
apoi implementarea software a algoritmului ce generează secvenţele dorite.
Capitolul 10. Sisteme de conducere cu multiprocesor 374

Un prim factor important în stabilirea configuraţiei sistemului îl constituie


determinarea corectă a lungimii cuvântului de date. Desigur, în estimarea
numărului de biţi necesar pentru acoperirea operaţiilor matematice concură
numeroşi factori cum ar fi: frecvenţa de eşantionare, complexitatea algoritmului
utilizat, disponibilităţile hardware etc. În cadrul acestei secţiuni vor fi analizate
elementele ce derivă din implementarea numerică a algoritmului în contextul
existenţei unor restricţii privind lungimea maximă de cuvânt acceptată de suportul
hardware al sistemului.

10.5.1 Dimensionarea lungimii cuvântului de date

În conformitate cu cele discutate în secţiunile precedente, forma generală a


funcţiei de transfer a controlerului numeric este (relaţia 10.12)

a z i
i

YR  z   i 0
n (10.37)
i  bj z j

j 0

unde coeficientii ai, bj sunt mărimi cuantificate, exprimate într-un cod numeric.
Să presupunem că n biţi sunt utilizaţi pentru reprezentarea acestor
coeficienţi. În acest caz, utilizarea unui cuvânt de lungime impusă n poate
determina o reprezentare eronată. Fie

*
ai  ai   i (10.38)

b*i  bi   i (10.39)

* *
unde ai si bi desemnează valorile obţinute prin reprezentarea numerică în n biţi
a coeficienţilor reali ai, bi, respectiv iar αi, βi sunt erorile corespunzătoare.
Într-o reprezentare în complement faţă de doi, mărimea treptei de
discretizare numerică Δ corespunde valorii

  2  n 1

Din figura 10.11 se obţine imediat condiţia:


375 Roboţi industriali


i  (10.40)
2

i 
2
 i  2n
deci (10.41)
 i  2 n

Ţinând cont de alterarea coeficienţilor ai şi bi funcţia de transfer a


controlerului devine:

a
*
i z i
YR  z  
* i 0
m (10.42)
1 b z *
j
j

j 0

Funcţia astfel obţinută diferă cantitativ de cea iniţială şi acest lucru poate
duce la modificări substanţiale în comportarea în frecvenţă a sistemului şi implicit
la schimbarea caracteristicilor de lucru . Pentru aprecierea, de exemplu, a efectelor
asupra stabilităţii sistemului se pot analiza modificările survenite în polii funcţiei
de transfer. În [32] se arată că polii pi se deplasează la pi  pi conform relaţiei:

m
p ij 1
p i   
(10.43)
j
 pi 

j i

1  p  
i 1  r 
m j

Este evident că în condiţiile plasării unor poli în apropierea cercului unitate


în planul Z deplasarea polilor poate fi suficient de pronunţată pentru a determina o
instabilitate a sistemului.
Este interesant de precizat care este numărul minim de biţi care menţine
stabilitatea sistemului. În [32] se arată că dacă perioada de eşantionare este T şi
funcţia de transfer are m poli distincţi, stabilitatea este garantată dacă:
Capitolul 10. Sisteme de conducere cu multiprocesor 376

 5 m m 
n  INTREG  log 2  m  2  z r T  (10.44)
 2 r 1 

unde e-zrT, r=1,2,… m sunt polii sistemului.


Pentru exemplificare, să considerăm funcţia de transfer (10.21) rescrisă sub
forma:

z  e 3,64T
YR  z   k
z  e 71,07T

cu T=0,02s. Există un singur pol z1 = e-71,07T deci relaţia (10.44) devine

 5 
n  INTREG  - log 2 3 71,07.0,02)   3,6
 2 

Deci o lungime de cuvânt de 4 biţi este suficientă pentru asigurarea condiţiei


de stabilitate numerică.
Tinând cont de acest rezultat şi având în vedere că s-a obţinut o lungime de
cuvânt de 8 biţi pentru convertorul analog-numeric, se poate considera ca un
microprocesor de 8 biţi acoperă în totalitate cerinţele de implementare numerică a
sistemului de conducere.

10.5.2. Implementarea algoritmului de control

Funcţia de control a microprocesorului constă în calculul erorii sistemului de


conducere şi generarea pe baza acesteia a mărimii de comandă.
Eroarea este obţinută prin diferenţa între valoarea prescrisă şi cea măsurată şi
convertită de CAN. Toate mărimile sunt subunitare şi reprezentate numeric în
complement faţă de 2. Întrucât calculul diferenţei poate determina uneori erori prin
depăşirea capacităţii registrelor, se impune semnalizarea acestor cazuri.
În continuare se va prezenta un subprogram de calcul; utilizând instrucţiunile
microprocesorului 8080.

NRX: DW 0001H; ADRESA DATELOR CONVERTITE DIN CAN


NRQ: DW 1001H; ADRESA DATELOR PRESCRISE
NRF: DW 0004H; ADRESA MĂRIMII DE EROARE
NRP: DW 0006H; ADRESA SEMNALULUI DE DEPĂŞIRE
LDA NRQ; ÎNCARCĂ ÎN ACC VALOAREA PRESCRISĂ
377 Roboţi industriali

SUI NRX SCADE MĂRIMEA MĂSURATĂ


STANRF SALVEAZĂ VALOAREA ERORII

Pentru identificarea situaţiilor de depăşire se compară biţii de semn ai


fiecărui termen cu cel obţinut prin adunare. În acest scop se execută o funcţie
logică SAU – EXCLUSIV între mărimile analizate urmată de o deplasare la stânga
ceea ce permite izolarea bitului de semn.

LHLD NRX; SE COMPARĂ BITUL DE SEMN


XRA H; ÎNTRE UN TERMEN ŞI REZULTAT
RLC
JC IMPR1
CONT: LDA NRF; SE COMPARĂ BITUL DE SEMN
LHLD NRQ; ÎNTRE AL DOILEA TERMEN
XRA H; ŞI REZULTAT
RLC
JC IMPR2
JMP CALC
IMPR1: MVI C, OFFH; ÎN PRIMUL CAZ SE ÎNSCRIE
JMP CONT; ÎN C NUMARUL FFH
IMPR2: MVI D, OFFH; ÎN AL DOILEA CAZ SE
CALC: LDA D; ÎNSCRIE ÎN D NUMĂRUL FFH
CMP C; SE COMPARĂ REZULTATELE
UZ INCORECT
JMP CORECT
INCORECT: MVI NRF, OFFH;
CORECT: REVENIREA DIN SUBPROGRAM

Pentru implementarea în continuare a algoritmului de calcul vom considera


sistemul de control definit prin relatţile (10.23), (10.24), care va fi reluat sub forma

wi  c1u i 1  c 2 ei  c3 ei 1
(10.45)

u i  256 wi (10.46)

Coeficienţii c1, c2, c3 sunt numere subunitare ce vor fi definite prin:


Capitolul 10. Sisteme de conducere cu multiprocesor 378

C1 : DB 4H
C2 : DB 83H
C3 : DB 4AH
Relaţia (10.45) poate fi rescrisă pentru o implementare numerică sub forma:

W 2  P1 * U 1  P 2 * E 2  P3 * E1
(10.47)

Unde U1 si E1 poate fi rescrisă pentru o implementare într-o fază anterioară.


Pentru iniţializare se va considera:

U 1 : DB 00H
E1 : DB 00H

Generarea mărimii W2 se obţine după trei operaţii de înmulţire şi două de


adunare.
Operatia de înmultire se va realiza după algoritmul clasic de înmulţire al
numerelor subunitare exprimate în complement faţă de 2[32,120]. În acest scop se
defineşte o microinstrucţiune specifică MULT.

MULT MACRO P, U, Z

unde P este un parametru ce exprimă coeficienţii utilizati in (10.47) iar U


reprezintă variabila asociată fiecărui termen. Rezultatul fiecărui produs este
desemnat prin Z:

U: DW 2200H
P: DW 3000H
Z; DW 2000H

Se iniţializează registrele:

MOV B, U
MOV P, C1
MOV C, P
MVI D, 07H
START: MOV A, B; SE TESTEAZĂ BITUL CEL MAI PUTIN
RAR; SEMNIFICATIV AL LUI U
379 Roboţi industriali

MOV B, A;
MOV A, H
JNC ADR1;
ADD C; DACĂ ACEST BIT=1 SE ADUNĂ C
ADR1: RLC;
RRC; SE DEPLASEAZĂ LA DREAPTA CONŢINUTUL
RAR REGISTRELOR
MOV H, A;
MOV A, L; H SI L CONSIDERATE IN PRELUNGIRE SI
RAR RESPECTÂND REGULA DEPLASĂRII
MOV L, A BITUL DE SEMN
DCR D;
JNZ START;
MOV A, B; SE VERIFICĂ CONTINUTUL CONTOARULUI
RAR;
JNC FINAL; SE TESTEAZĂ BITUL CEL MAI SEMNIFICATIV
MOV A, H;
SUI U DACĂ B7=1 SE SCADE DIN ULTIMA
MOV H, A VALOARE NUMĂRUL U
FINAL: MOV Z, H;
MOV Z+1,H
END M
REZULTATUL ESTE STOCAT IN Z

Produsul rezultat pe 16 biţi în perechea de regiştri h-l este stocat în adresele


Z, Z+1. Întrucât fiecare factor este subunitar la această operatie nu apar riscurile
unei depăşiri ale capacităţii registrelor. Operaţia se repetă pentru celalalte două
produse în mod similar modificând parametrii macroinstructiunii MULT.
Pentru implementarea operaţiei de adunare este utilizată o procedură de tipul
celei prezentate în calculul erorii, înlocuind funcţia de scădere cu cea de adunare si
păstrând aceleaşi reguli de protejare al calculului în cazul depăşirii capacităţii
registrelor.
Generarea comenzii finale necesită de asemena multiplicarea rezultatului cu
256 (relaţia 10.46). Operatia se poate obţine simplu prin deplasarea virgulei cu 8
biţi.

10.5.3.Formarea semnalelor de ieşire pentru acţionare electrică

Comanda finală a dispozitivelor de acţionare (motoare de c.c.) necesită


refacerea analogică a semnalului numeric. Această conversie de semnal este
Capitolul 10. Sisteme de conducere cu multiprocesor 380

realizată prin blocuri specializate CNA care genereaza la ieşire un semnal continuu
corespunzător ponderii coeficienţilor ce apar în expresia numerică prelucrată.
Domeniul tensiunii de ieşire este bipolar şi poate fi ales, în funcţie de o
mărime de referinţă aplicată Uref în gama ±2.5 V, ±5 V, ±10 V.
Cuplarea unui astfel de convertor la microprocesor este prezentată în figura
10.13.
Magistrala de date este cuplată pe intrarea convertorului, conversia fiind
realizată pe 8 biţi prin trunchierea celor 16 biţi rezidenţi în zonele Z, Z+1 de
memorie. Dacă se doreşte o conversie pe 16 biţi, cuplarea se realizează prin două
porturi şi prin utilizarea unui convertor de construcţie specială.
381 Roboţi industriali

MEMW
UC

CS CNA
U ref
u0
a
DATA

t
ts
CS tpw
t

U0
t

b
Figura 10.13

Iniţializarea conversiei este obtinută prin activarea bornei CS a


convertorului, comanda este obţinută de obicei prin decodificarea adresei căreia îi
este asociat convertorul şi prin generarea unuia din semnalele de control ale
memoriei, de exemplu MEMW.
Capitolul 10. Sisteme de conducere cu multiprocesor 382

ADR

Acţionare element 1

DMUX Acţionare element 2


u0
Acţionare element n

CE
Figura 10.14

CNA: DW FFOAH
LDA Z
STA CNA

In condiţiile în care procesorul comandă mai multe dispozitive analogice, se


impune o demultiplexare analogică controlată (figura 10.14).
De asemenea, în cazul în care nivelele în putere si tensiune ale semnalelor
furnizate depăşesc resursele circuitelor utilizate, se pot utiliza circuite speciale
pentru adaptare.

10.6. Controlul interfaţării microprocesor-robot printr-


un limbaj evoluat

Sistemul de conexiuni microprocesor-robot se bazează pe existenţa unuia sau


mai multor circuite de intrare-ieşire (PIA-Peripheral Interface Adaptor) care
realizează interfaţa între porturile microprocesorului şi perifericile robotului.
Programarea microprocesorului în scopul realizării interfeţei dorite se poate realiza
fie în limbajul de asamblare al microprocesorului, fie într-un limbaj de nivel înalt,
de exemplu în Basic, limbaj facil şi uşor implementabil. Utilizarea asamblorului
oferă avantaje deloc neglijabile cum ar fi:
 O viteză de execuţie de 10-100 ori mai mare, ceea ce poate constitui
un element esenţial într-o serie de aplicaţii de conducere
 Un spaţiu de memorie redus, sub 2k.
383 Roboţi industriali

Dacă însa aceste caracteristici nu sunt prioritare, utilizarea limbajului Basic,


sau a altui limbaj evoluat, este recomandabilă.

10.6.1. Tehnici intrare-ieşire

Orice port al microprocesorului cuprinde un registru de date D şi un registru


de control al sensului de propagare S. Registrul D memorează valorile achiziţionate
din exterior (port de intrare) sau stochează datele înainte de emiterea lor în exterior
(port de ieşire).

Microprocesor S0 = 0 : port intrare


I S0 = 1 : port iesire
D0
eşire

S0
Figura 10.15

În Basic, controlul portului ca port de intrare se poate realiza uşor prin


instrucţiunile

10 D  56577 : S  56579
20 POKE S ,0

S-a presupus că adresa registrului D este 56577 iar a registrului de control


56579.Similar, utilizarea ca port de ieşire se realizează prin
20 POKE S ,255
ceea ce inseamnă încărcarea registrului S cu valoarea (255) 10 =(1111 1111)2,deci
schimbarea sensului de deplasare în porţile liniilor de date (fig.10.15).
În multe situaţii, complexitatea problemelor de control cere ca anumite linii
de date să fie utilizate pentru achiziţie iar altele pentru generarea unor ieşiri. În
acest caz controlul va fi obţinut prin
20 POKE S ,15
unde s-a considerat că liniile D0-D3 operează ca ieşiri iar D4-D7 ca intrări.
Capitolul 10. Sisteme de conducere cu multiprocesor 384

În general, numărul mare de variabile implicat în conducerea unui robot este


incompatibil cu posibilităţile de interfaţare directă intrare-ieşire al unui
microprocesor.Din acest motiv se utilizează frecvent proceduri de extensie.O
soluţie larg utilizată este cea prezentată în figura 10.16.

...... ...... ......

Cartelă Cartelă Cartelă Cartelă


3 P
2 1 de
bază

Magistrală de date
Linii
selecţie
Figura 10.16

Sistemul cuprinde o serie de circuite de extensie modularizate în cartele.O


cartelă cuprinde circuite specializate pentru prelucrarea intrărilor sau a ieşirilor,
numerice sau analogice.O cartelă principală sau de bază asigură cuplarea directă cu
microprocesorul. Ea permite identificarea cartelelor de serviciu prin activarea unor
linii de selecţie.
În general sistemul este format din patru cartele de achiziţie şi patru cartele
de ieşiri.Cuplarea se realizează printr-o magistrală internă de date.Dacă se
consideră că adresele acestor cartele sunt 56832-56835, atunci selecţia unei cartele
de ieşire se face prin instrucţiunea

POKE adresă (56832 - 56835), valoarea (0 - 255)

ceea ce va determina transmiterea valorii dorite pe magistrala cartelei adresate.De


asemenea, adresarea unei cartele de intrare se realizează prin
PEEK adresă (56832 - 56835)

În acest caz, pe magistrala internă se va transmite combinaţia binară,


ponderată, a variabilei conectate.
În figura 10.17 sunt prezente două cartele pentru variabile binare.Astfel,
instrucţiunea
385 Roboţi industriali

PEEK 56832

va însemna transferul în microprocesor a valorii 00 110 100 iar instrucţiunea

POKE 56833.3

va determina anclaşarea motorului de curent continuu şi a releului R prin


comanda 00000011.
R

7654321 0 7654321 0
Cartela Cartela
de de
iesiri iesiri
binare binare
(56832) (56833)
Magistrala
Magistrala date interne
date interne
Selecţie Selecţie
Figura 10.17

În afara cartelelor pentru variabile binare, sistemul poate conţine şi cartele


pentru prelucrarea unor mărimi analogice. De exemplu, cartela pentru intrări
continue din figura 10.18 este utilizată pentru achiziţionarea semnalelor în gama 0-
5 V furnizate de traductoarele de măsurare analogică ale poziţiilor
unghiulare.Cartela conţine opt borne de conexiune deci poate prelucra simultan opt
mărimi.După o conversie analog-numerică pe opt biţi (domeniul 0-255), valoarea
numerică rezultată este transmisa prin magistrala de date catre microprocesor.
Programarea cartelei se realizează în două etape:

POKE 56834, nr. Canal (0 - 7)


PEEK 56834

Prima instrucţiune selectează un anumit canal analogic şi lansează conversia


A/N iar a doua citeşte valoarea convertită anterior.
Capitolul 10. Sisteme de conducere cu multiprocesor 386

Iesire
continuă
. . . . . .
7. 6 5 4 3 2 1 0
Cartela
Cartela pentru
pentru iesiri
intrari continue
continue 56835
56834

Magistrală Magistrală
date interna date
Selecţie Selecţie

Figura 10.18

Cartela pentru iesiri analogice formează un semnal continuu utilizat în


reglarea motoarelor de c.c. ale sistemelor de acţionare.Conversia se realizează
printr-o scară liniară, fiecarui bit fiindu-i alocat 1 mV semnal continuu, deci
semnalul maxim generat este de 2,56 V. De exemplu, comanda unei tensiuni de 50
mV se realizează prin

POKE 56835.50

iar a unei tensiuni de 2 V

POKE 56835.200

10.6.2. Comanda accelerarii unui motor de c.c.

Ca o primă aplicaţie se va lua în considerare sistemul de accelerare-


decelerare al unui motor de c.c. Se va utiliza cartela de ieşiri analogice conectată pe
adresa 56835. Întrucât semnalul furnizat nu corespunde parametrilor ceruţi de
motor, se utilizează un amplificator de putere intermediar (figura 10.19b.)
Diagrama tensiunii de comandă pentru un regim de accelerare dorit este
prezentată în figura 10.19a. Panta regimului este
387 Roboţi industriali

U
P
T1

unde U este aptitudinea palierului semnalului (echivalentă cu un semnal


numeric de valoare 255) iar T1 este timpul real de evoluţie. Apreciind că scara de
timp a procesorului este mult mai mare ca a elementului comandat

t p  1000t motor
ui R2
R1
ui R

U R3
Mc
T1 t
c

(a) (b)

Figura 10.19

relaţia de mai sus devine:

255
P
1000T1

Programul complet de conducere va fi :

10 REM-ACCELERARE-
20 T = 1000* T1
30 P = 255/T
40 FOR UI = 0 TO 255 STEP P
50 POKE 56835,UI
60 NEXT UI
70 END
Capitolul 10. Sisteme de conducere cu multiprocesor 388

10.6.3. Controlul unui manipulator ce deserveşte un punct de


tratare chimică

Se propune, în continuare, analiza posibilităţii de implementare a sistemului


de control pentru un manipulator cu dublă acţionare: electrică şi hidraulică.
Manipulatorul alimentează cu piese grele o cuvă cu soluţii preparate pentru
tratarea chimică.Tratarea se realizează la o temperatură prescrisă şi pe o durată de
timp predeterminată (figura 10.20).

R
C

S D

L
L0
P0 P1 T

L1
V Th

M
Figura 10.20

Manipulatorul se deplasează pe orizontală pe o linie L printr-o acţionare


electrică şi ridică sau coboară piesele printr-o acţionare hidraulică. Temperatura
cuvei este măsurată cu un termometru Th şi poate fi controlată prin deschiderea
unei conducte de vapori de apă V. Un sistem de limitatoare P 0, P1, L0, L1 permite
controlul poziţiei. Organigrama întregului proces este prezentată în figura 10.21.
389 Roboţi industriali

Rezervarea variabilelor şi cartelelor utilizate este următoarea :

 Cartela de intrări binare (adresa 56832) : 0 – Limitator P 0


1 – Limitator P1
2 – Limitator L0
3 – Limitator L1
 Cartela de ieşiri binare (adresa 56833) : 0 – Mers dreapta D
1 – Mers stânga S
2 – Electroventil ridicare R
3 – Electroventil coborâre C
4 – Electroutil abur V
5 – Melanjor M

 Cartela intrări analogice (adresa 56834) : 0 – Termometru Th


Programul de conducere va avea forma următoare :

10 REM – CONTROLUL MANIPULATOR-


20 TO = T0
30 POKE 556833,1
40 X=PEEK 56832 AND 2↑1
50 IF X=0 THEN 40
60 POKE 56833, 2↑3 + 2↑5
70 Y=PEEK 56832 AND 2↑3
80 IF Y=0 THEN 70
90 POKE 56833, 2↑4
100 POKE 56834, 2↑0
110 TL=PEEK 56834
120 TA=20+TL * 180/250
130 IF TA < TO THEN 100
140 POKE 56832, 2↑5
150 T1=3600*1000
160 FOR I=1 to T1: NEXT I
170 POKE 56833, 2↑2
180 Y=PEEK 56832 AND 2↑2
190 IF Y=0 THEN 180
200 POKE 56833, 2↑1
210 X=PEEK 56832, 2↑0
220 IF X=0 THEN 210
230 POKE 56833, 0
Capitolul 10. Sisteme de conducere cu multiprocesor 390

240 END

Interfaţa de putere
3

B0 F0

B1 F1
0 1
B2 F2

B3 F3 2

Figura 10.21

Instrucţiunea 120 actualizează valoarea temperaturi TL care este convertită


numeric în gama 0-255 considerând că domeniul de temperatură 20-200° (al cuvei)
este un domeniu liniar.

10.6.4. Controlul acţionării prin motoare pas cu pas.

Se va aborda în continuare controlul în buclă deschisă al acţionărilor


robotice cu motoare pas cu pas discutate în capitolul 3.1.2. Se va considera un
motor p.p. cu patru înfăşurări statorice alimentate prin intermediul unei interfeţe de
putere cu circuite Darlington (figura 3.18). Microprocesorul va asigura controlul
alimentării fazelor conform unei logici impuse (figura 10.22).
391 Roboţi industriali

START a b

Închide C Oprire melanjor


T0
M

Deplasare D Desch vap V Ridicare

Citeşte trad. Citeşte T Citeşte trad.


0 0
P1 L0
P1 Conversie A/N L0
Orice depl. D 0 Oprire ridicare
T
T00
Porn. melanj M Depl. stânga
Închide V
Coborâre C
Citeşte trad.
Citeşte Anclaşare temp.
0
trad. 0 P0P0
1=G
0 Oprire depl. S
LL1
1
b
a STOP
STOP

Figura 10.22.a

Logica de control a Pondere binară Vectorul de control


fazelor
0,2 F(0)=5
1,2 F(1)=6
1,3 F(2)=10
0,3 F(3)=9

Figura 10.22(b)

Pentru început se va lua în consideraţie comanda simetrică dublă a fazelor


motorului (figura 3.14.b).
În acest caz se poate defini un vector de alimentare al fazelor F=(F(0), F(1),
F(2), F(3)) care va lua succesiv valorile 5, 6, 10, 9 (figura 10.22b).
Microprocesorul va acţiona bornele B 0, B1, B2, B3 ale interfeţei de putere astfel
Capitolul 10. Sisteme de conducere cu multiprocesor 392

încât să asigure valorile dorite ale fazelor F(I). Programul corespunzător va fi


următorul :

10 S=56579 : D=56577
20 DIM F(4)
30 FOR I=0 TO 3
40 READ F(I)
50 NEXT I
60 DATA 5,6,10,9
70 POKE S, 15
80 FOR I=0 TO 3
90 POKE D, F(I)
100 NEXT I
110 END

Instrucţiunile de mai sus generează alimentarea fazelor în ordinea solicitată


fară a asigura sensul de deplasare sau al distanţei parcurse. O variantă imbunătaţită
a programului, completă cu elementele suplimentare de comandă, este prezentată
mai jos:

10 S=56579 : D=56577
20 DIM F(4)
30 FOR I=0 TO 3
40 READ F(I)
50 NEXT I
60 DATA 5,6,10,9
70 POKE S, 15
80 IF PEEK(D) AND 2↑6 THEN 80
90 DI=”DISTANŢA”
100 SENS=”SENS”
110 V=”VITEZA”
120 V=256-V
130 IF SENS=1 THEN W=-1: ROT=1: GO TO 150
140 IF SENS=0 THEN W=0 :ROT=-1
150 FOR I=1 TO DI
160 W=W+ROT
170 POKE D, F(W AND3)
180 FOR J=1 TO V:NEXT J
190 NEXT I
200 END
393 Roboţi industriali

Instrucţiunile 20-60 definesc , ca şi în programul anterior, logica de


comutare a fazelor. Instrucţiunea 80 introduce o condiţie de oprire a deplasării
motorului printr-o variabilă, un buton de presiune ce cuplează linia D 6 la masă.
Dacă acest întrerupător este deschis (valoarea 1) atunci programul rămâne blocat la
linia 80. La închiderea întrerupătorului, linia de date se cuplează la masă (valoarea
0) şi programul trece la instrucţiunea următoare. Instrucţiunile 90-100 permit
introducerea valorilor dorite ale distanţei (echivalentă în număr de paşi de motor), a
sensului de deplasare şi a vitezei.
Sensul de deplasare este o mărime binară cu valori 0,1 corespunzând rotaţiei
inverse sau normale a motorului.
Instrucţiunea de viteză introduce o variabilă V ce determină durata
impulsurilor aplicate pe fazele motorului. Această valoare se complementează în
raport cu 256 (instrucţiunea 120) pentru a asigura corelarea acestei valori cu viteza
rezultată: durata mare a impulsurilor corespunde unor viteze mici şi invers.
Instrucţiunea 180 formează efectiv semnalul în durată prin blocarea avansului
programului până se atinge valoarea dorită.
Instrucţiunile 130 – 190 generează, în funcţie de sensul impus, logica
semnalelor ce activează fazele motorului. În acest scop sunt introduse două
variabile W şi ROT care, prin instrucţiunea 170, determină valoarea vectorului F
în fiecare secvenţă. Pentru exemplificare se vor considera câteva secvenţe de lucru.

a) Sens pozitiv de rotaţie (W=-1, ROT=1)


 Secvenţa 1: I=1, W=-1+1=0, D=F(0 AND 3)=F(0)
 Secvenţa 2: I=2, W=0+1=1, D=F(1 AND 3)=F(1)
AND se calculează vectorial între componentele 1 şi 3 deci
(00000001) AND (00000011) = (00000001) = 1;
 Secvenţa 3: I=3, W=1+1=2, D=F(2 AND 3)=F(2) pentru că
(00000010) AND (00000011) = (00000010) = 2;
 Secvenţa 4: I=4, W=-2+1=3, D=F(3 AND 3)=F(3):
 Secvenţa 5: I=5, W=3+1=4, D=F(4 AND 3)=F(0) pentru că
(00000100) AND (00000011)=(00000000)=0 etc.
b) Sens negativ de rotaţie (W=0, ROT=-1)
 Secvenţa 1: I=1, W=0-1=-1, D=F (-1 AND 3) = F (3). În acest caz se
realizează funcţia AND între –1(exprimată în complement faţa de 2) si 3 deci
-1 AND 3 = (11111111) AND (00000011) = (00000011) = 3
 Secvenţa 2: I=2, W=-1-1=-2, D=F (-2 AND 3) = F (2) pentru că
-2 AND 3 = (11111110) AND (00000011) = (00000010) = 2 etc.
Capitolul 10. Sisteme de conducere cu multiprocesor 394

O procedură similară poate fi utilizată pentru alte moduri de comandă a


fazelor motorului. Astfel, în figura 10.23 este determinată logica de comandă
pentru controlul numeric al fazelor (figura 3.14,c).

10 S=56579: D=56577: DIM F(4)


20: POKE S,15
30: FOR I=0 TO 7
40: READ F(I)
50: NEXT I
60: DATA 1,5,4,6,,2,10,8,9


Logica de control Pondere Vectorul de


a fazelor Binară Control
0 F(0)=1
0,2 F(1)=5
2 F(2)=4
1,2 F(3)=6
1 F(4)=2
1,3 F(5)=10
3 F(6)=8
0,3 F(7)=9
Figura 10.23

În numeroase aplicaţii, efectul de programare este considerabil simplificat


prin utilizarea unor module “inteligente” care preiau o parte din funcţiile cerute.
Astfel introducerea circuitului integrat SAA 1027 asigură automat logica de
comutare a fazelor, prin programare introducându-se numai parametrii esenţiali:
distanţa şi sens.
Circuitul SAA 1027 este format dintr-un distribuitor în inel urmat de o
logică de generare a semnalelor de tip “simetrie dublă” (figurile 3.15 si 3.16)
precum şi de amplificatoarele de putere corespunzătoare (figura 10.24) [24] .
Controlul circuitului se realizează prin bornele T(triger) si R(rotaţie), acestea
desemnând impulsurile de tact ale distribuitorului şi respectiv semnul de rotaţie.
Aceste semnale sunt controlate direct de micrprocesor prin liniile de date D 0 si D1.
Două porţi cu colector în gol asigură compatibilitatea electrică între magistrala de
date şi circuit.
395 Roboţi industriali

+12V
+12V +12V
Mpp
F3
Q3
D0 T F2
Q2
 SAA 1027
F1
Q1
D1 R
F0
Q0

+12V
Figura 10.24 (a)

Secv. Q0 Q1 Q 2 Q3
T1 1 0 0 1
T2 1 0 1 0
T3 0 1 1 0
T4 0 1 0 1

Figura 10.24.(b)

Ieşirile circuitului alimentează fazele motorului F0 , F1 , F2 , F3 , după


o logică corespunzătoare (tabelul 10.24,b).Programarea microprocesorului se va
rezuma la generarea semnalelor T si R astfel încât să se realizeze rotaţia motorului
cu o viteză impusă, într-un sens specificat, si să acopere o distanţă de deplasare
dorită.

10 S=56579 : D=56577
20 POKE S, 3
30 DI = “DISTANŢA”
40 SENS = “SENS”
50 IF SENS=1 THEN R=2
Capitolul 10. Sisteme de conducere cu multiprocesor 396

60 IF SENS=0 THEN R=0


70 FOR I=1 TO DI
80 POKE D, 1+R
90 POKE D, 0+R
100 NEXT I
110 END.

Instrucţiunile 80 si 90 determină transmisia pe liniile de date, succesiv, a


valorilor 3,2,3,2,3,2,… (pentru SENS=1) si 1,0,1,0,… (pentru SENS=0) deci în
binar 11, 10, 11, 10,…sau 01, 00, 01, 00,… formând deci bitul de sens D1 la
valoarea 1 şi respectiv 0 iar bitul de tact D0 sub forma unui impuls cu o perioadă
egală cu cea a explorării instrucţiunilor 70-100. Modificarea frecvenţei de tact
necesită introducerea unor instrucţiuni de întârziere de aceeaşi formă ca cele
utilizate în programele anterioare.

10.6.5.1 Comanda unui robot în coordonate carteziene

Ca o aplicaţie directă a celor prezentate în paragraful anterior se va aborda


problema comenzii unui robot ce asigură manipularea unei piese într-un depozit
(fig. 9.16). Acţionarea robotului pe axele X-Y se obţine prin motoare p.p iar pe axa
Z prin motoare de curent continuu.

Ls
B
C

y1 y2 Y
Lj

x1 A
x2 E

X
397 Roboţi industriali

Figura 10.25

În figura 10.25 este prezentat un segment al unei traiectorii de lucru. Robotul


prinde o piesă în punctul A (închide griperul), se ridică în punctul B, se deplasează
pe axa Y pe distanţa  y 2  y1  până în punctul C, se deplasează pe axa X pe
distanţa  x 2  x1  până în punctul D, coboară în E şi depune piesa (deschide
griperul).
Deplasările pe axele X şi Y se obţin prin controlul numărului de impulsuri
aplicat motoarelor p.p.,

x 2  x1  N1 impulsuri
y2 - y1  N 2 impulsuri

iar deplasarea pe axa Z este restricţionată de limitatoarele de jos L j şi Ls.


În tabelul 10.1 este prezentată rezervarea variabilelor. Porturile cu adresele
56577 si 56573 sunt utilizate pentru comanda acţionărilor pe cele trei axe ale
griperului, respectiv pentru acţionarea limitatoarelor de poziţie. Acestor porturi li
se asociază porturile de adrese 56575 si 56579 ce controlează sensul propagării
informaţiei prin porturile de date. Codificarea completă a comenzilor generate prin
portul 56577, ţinând cont de comenzile cu dublu sens ale fiecărei axe, este
prezentată în tabelul 10.2.

10 REM – CONTROL ROBOT XYZ -


20 POKE 56575,0
30 POKE 56579, 255
40 DI1 = N1: DI2=N2: V=”VITEZA”
50 IF PEEK(56573) AND 22 THEN 50
60 POKE 56577, 64+16
70 IF PEEK(56573) AND 21 THEN 70
80 FOR I=1 TO DI2
90 POKE 56577,4
100 FOR J=1 TO V: NEXT J
110 POKE 56577,0
120 FOR J=1 TO V: NEXT J
130 NEXT I
Capitolul 10. Sisteme de conducere cu multiprocesor 398

Port Variabilă Rezervare


Comandă X
Sens pe X
Comandă Y
Adr. 56577 Sens pe Y
(ieşire) Comandă Z
Sens pe Z
Închide griper
Deschide griper
Adr. 56573 Buton primire
(intrare)
Tabelul 10.1

Comanda Date Valoare numerică


X+ 00000001 1
X- 00000011 3
Y+ 00000100 4
Y- 00001100 12
Z+ 00010000 16
Z- 00100000 32
G inchis 01000000 64
G deschis 10000000 128
Tabelul 10.2
399 Roboţi industriali

START a

Iniţializare
registre şi date Comandă X +

Citeşte buton
pornire 0
N1
0
BP
1
Anulare X +
Închide griper

Comadă Z + Comandă Z +

Citeşte Ls Citeşte Lg

0
Ls 0
Lg
1

Anulare Z +
Anulare Z +

Comandă Y +
Deschide griper

N2

STOP
a
Figura 10.26

140 FOR I=1 TO DI1


Capitolul 10. Sisteme de conducere cu multiprocesor 400

150 POKE 56577,1


160 FOR J=1 TO V: NEXT J
170 POKE 56577,0
180 FOR J=1 TO V: NEXT J
190 NEXT I
200 POKE 56577,32
210 IF PEEK (56573) AND 20 THEN 210
220 POKE 56577,128
330 END

Organigrama din figura 10.26 şi programul asociat sunt determinate conform


procedurilor stabilite.
Instrucţiunile 20, 30 definesc portul 56573 ca port de intrare şi 56577 ca port
de ieşire. Instrucţiunea 40 introduce valorile distanţelor pe axele X si Y precum şi
viteza V, de fapt durata impulsului de tact al motoarelor p.p.
Pentru interpretarea variabilelor asociate limitatoarelor şi butonului de
pornire s-a considerat că acestea prin închidere transmit potenţialul masei (0 logic)
iar prin deschidere formează semnal logic 1. În acest sens, instrucţiunile 70 si 210
blochează avansul programului până la închiderea contactelor respective.
Instrucţiunile 80-130 generează comanda motorului p.p al axei Y în sens
pozitiv pe o distanţă echivalentă cu N 2 impulsuri. Impulsul de tact este transmis
prin linia D2 (sensul rotaţiei este linia D3  0 ) prin instrucţiunile 90 si 110 cu
durata egală cu V cicluri FOR – TO- : NEXT- (figura 10.27)
401 Roboţi industriali

TACT (Linia O2)

V cicluri FOR:-NEXT-

V cicluri FOR:-NEXT

Figura 10.27.

În mod similar, prin instrucţiunile 140 – 190 este comandat motorul axei X
în sens pozitiv pe distanţa N1 .

10.6.5. Comanda acţionărilor cu motor de curent continuu

a) Reglajul “tot sau nimic” al poziţiei liniare


În conditiile în care masele elementelor mecanice sunt mici iar
performanţele impuse sistemului de reglare sunt modeste se poate accepta acest
sistem de reglare, remarcabil prin simplitatea sa. Microprocesorul compară
valoarea prescrisă a poziţiei cu cea măsurată de un traductor analogic si aplică
motorului tensiunea nominală de comandă atâta timp cât nu s-a realizat cea dorită.
Schema completă de control este prescurtată în figura 10.28. Sunt utilizate
două cartele: 56834 pentru achiziţionarea mărimilor de intrare şi 56835 pentru
generarea ieşirii. Pe borna 0 a lui 56834 este conectat
traductorul de poziţie T iar pe borna 1 potenţiometrul valorii prescrise.
Programul de comandă al motorului va fi:

10 REM – REGLAJ TOT SAU NIMIC -


Capitolul 10. Sisteme de conducere cu multiprocesor 402

20 U=”TENSIUNE NOMINALĂ”
30 POKE 56834,1
40 W = PEEK(56834)
50 POKE 56834,0
60 X = PEEK(56834)
70 IF X<W THEN POKE 56835,U
80 IF X>=W THEN POKE 56834,0
90 GO TO 30

Instrucţiunea 20 introduce tensiunea nominală de comandă a motorului.


Valoarea prescrisă W este obţinută prin instrucţiunile 30,40 iar cea măsurată prin
50,60. Ultimele instrucţiuni definesc logica de generare a tensiunii de ieşire.

Valoare
prescrisa W

μP 56834 56834

Figura 10.28

O astfel de soluţie de reglare este aplicabilă în general articulaţiilor de


translaţie orizontale (mecanisme de culisare) la care, odată cu atingerea cotei
prescrise si decuplarea tensiunii, se păstrează poziţia. Soluţia este mai puţin
aplicabilă articulaţiilor de rotaţie.

b) Reglajul poziţiei unghiulare

În acest caz se utilizează o schemă de comandă de tipul celei din figura


10.29. Motorul este controlat printr-o tensiune de comandă în domeniul [0,10V]
prin intermediul unui amplificator al cărui semnal de referinţă este fixat la
jumătatea domeniului, 5V. La atingerea valorii prescrise, microprocesorul
generează un semnal de 5V (după A1) ceea ce va determina blocarea motorului.
Abateri într-un sens sau altul faţă de valoarea prescrisă vor produce tensiuni
corespunzătoare în jurul tensiunii de 5V.
403 Roboţi industriali

Cartela de ieşiri analogice 56835 formează o tensiune în domeniul


0  2.56V după o conversie numeric – analogică a unei mărimi binare în
domeniul 0-155 biţi, valoare amplificată de A1 în domeniul [0,10V].
Logica de generare a ieşirii este următoarea:
 Dacă W<X se generează un semnal de comandă de forma

X W
Y  128 
2
Într-adevăr, dacă X=W rezultă Y=128 deci 1,28 V după conversia A/N si 5V
după A1. Dacă X-W  [0;255] se obţine o tensiune finală în gama [5;10V].
 Dacă W>X, semnalul de comandă va fi

WX
Y  128 
2
W

μP 56834 56834 A2
A1 +5V Mcc
uE[0,2,5 6V]
uE[010V]

Figura 10.29

Pentru X=W se obţine la ieşirea lui A1 o tensiune de 5V iar pentru W-X


[0;255] conversia A / N si A1 va forma o tensiune in domeniul [5;10V].
Programul complet are forma:

10 REM – REGLAJ DE POZIŢIE UNGHIULARĂ -


20 POKE 56834,1
30 W=PEEK(56834)
40 POKE 56834,0
50 X=PEEK(56834)
60 IF W>X THEN Y=128+(W-X)/2: GO TO 90
70 IF W<X THEN Y=128-(W-X)/2: GO TO 90
80 IF W=X THEN Y=128
Capitolul 10. Sisteme de conducere cu multiprocesor 404

90 POKE 56835,Y
100 GO TO 20

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