Sunteți pe pagina 1din 51

Capitolul 8

SISTEME DE CONDUCERE
CU LOGICA FLEXBILĂ

Structurile de comandă în logica cablată discutate în capitolul anterior sunt


pretabile pentru conducerea unor roboţi sau manipulatoare caracterizată printr-o
rigiditate deosebită traiectoriilor de mişcare. În foarte dese cazuri, modificările
tehnologice ale instalaţiilor, alterarea unor parametrii ai sistemului mecanic,
condiţii noi impuse de o sporire a productivităţii, o modificare a sistemului de
restricţii etc, determină necesitatea unor corecţii ale parametrilor mişcării. O astfel
de corecţie reclamă existenta unor structuri de conducere de tip nou, flexibile,
capabile să preia fie modificări mici ale parametrilor legii de comandă sau chiar
schimbări totale ale acesteia.
În cadrul acestui capitol vor fi abordate configuraţiile de bază ale acestor
sisteme, configuraţii bazate pe implementarea automatelor de conducere prin
sisteme de memorii PROM (REPROM) sau prin structuri microprogramate.

8.1. Automate implementate prin memorii PROM


(REPROM)

8.1.1. Structura de bază

Cantitatea relativ mare de informaţii pe care o poate memora, posibilitatea


reactualizării acestei informaţii precum şi robusteţea generală a întregului sistem
fac ca memoriile de tip PROM (REPROM) să reprezinte un suport de stare ideal
pentru conducerea unui robot. Organizarea datelor în memorie, alocarea unor
câmpuri fixe pentru anumite tipuri de informaţie oferă, de asemenea, facilitaţi
deosebite atât în partea de proiectare a sistemului de conducere cât şi, în special, în
partea de analiză şi testare a acestuia.
Capitolul 8. Sisteme de conducere cu logică flexibilă 243

cuvânt intrare
adresă
x1
PROM D a
x
x 2
n
y
y 21
x' ys cuvânt ieşire comenzi rob.
z
z 21
z  Robot
tact RR ym1
y
y2s ...
PROM G ieşiri secv. rob.
ieşiri num. rob.

Figura 8.1

Automatul а este realizat în principiu din două memorii PROM, prima


denumită PROM decodificator (PROM D) furnizează vectorul de adresă pentru a
doua memorie, generatoare, PROM G. Acesta din urma determină prin vectorul sau
de ieşire atât comportarea robotului în momentul respectiv cât şi comportarea
viitoare a automatului.
Mărimile de intrare în automat sunt formate direct din mărimile de ieşire ce
definesc poziţia robotului. În general, aceste mărimi sunt grupate în variabile
binare,

x   x1 , x 2 ,..., x n 
T
(8.1)

şi variabilele numerice.

xx    x1 , x 2 ,.., x n 
T
(8.2)

Primele definesc starea unor elemente de măsurare de tipul “tot sau nimic”
(limitatoare de poziţie, întrerupătoare, etc.) iar celelalte reprezintă ieşirile unor
traductoare numerice de poziţie. Tot în prima categorie intră şi anumite mărimi de
comandă externe, variabile de iniţializare, anumite comenzi prioritare, întreblocări
etc.
244 Roboţi industriali

Vectorul de adresă al memoriei PROM D cuprinde în afara acestor două


seturi de mărimi x, x  şi vectorul y ce defineşte starea la momentul respectiv a
automatului,

y   y1 , y 2 ,..., y s 
T
(8.3)

Ansamblul acestor mărimi  x, x , y  constituie deci adresa memoriei


PROM D. Această memorie va realiza de fapt o decodificare a informaţiilor de
intrare şi stare şi va furniza la ieşire adresa pentru PROM G. Această memorie
generează la ieşire doua tipuri de mărimi, mărime de ieşire efectivă a automatului

z   z1 , z 2 ,..., z m 
T
(8.4)

ce determină evoluţia în momentul respectiv t a robotului şi vectorul funcţiilor


secundare

y   y1 , y 2 ,..., y s 
T
(8.5)

ce defineşte comportarea la momentul următor a automatului. Aceste ultime


mărimi sunt introduse în registrul de reacţie RR sub controlul unui generator de
tact de perioadă T ce determină noul vector de stare,

y t  T   y t 

Mărimea perioadei de tact T depinde de parametrii sistemului de acţionare ai


robotului şi în special de complexitatea traiectoriei parcurse de acesta.

{y1,y2,y3}
 IZ
0 X 1

a b
Figura 8.2
Capitolul 8. Sisteme de conducere cu logică flexibilă 245

Implementarea legii de conducere la un astfel de sistem se bazează pe


anumite modalităţi de interpretare a organigramelor ce definesc evoluţia robotului,
respectiv a automatului. Aceste organigrame sunt similare celor utilizate în
programarea calculatoarelor având câteva particularităţi în conformitate cu noua
direcţie de aplicabilitate. În figura 8.2 sunt prezentate principalele simboluri
utilizate. Figura 8.2a descrie simbolul de stare. Starea automatului este desemnată
printr-un index alfa-numeric  şi un cod de stare format din variabilele de stare
corespunzătoare  y1 , y 2 ,..., y s  . Indicativul IZ defineşte informaţia privind
ieşirea ce urmează a fi generate în starea respectivă.
Simbolul de decizie defineşte traseele logice într-o evoluţie secvenţiala
controlată printr-o decizie x. Aceasta poate fi o simplă variabilă de intrare sau
poate sintetiza o condiţie logică complexă. Dacă evoluţia automatului se produce
pe calea   x  0  , decizie nerealizată, ea este determinată ca evoluţie falsă. În
cazul în care decizia este realizată  x  1 , evoluţia este denumită ca adevărată.
Implementarea legii de conducere şi înscrierea memorii a informaţiilor
depind modul de codificare a stărilor automatului, de interpretarea deciziilor şi de
modalităţile finale prin care sunt generate semnalele de comandă către robot. În
funcţie de aceste elemente, din această informaţie generală de conducere se resping
câteva structuri particulare ce implică metode specifice şi oferă anumite facilitate
de realizare.

8.1.2. Configuraţie DSI (decodificator de stare şi intrare)

Această primă structură de conducere se obţine direct din configuraţia de


bază prin înlocuirea primei memorii PROM D cu un decodificator integrat realizat
de obicei în tehnologii MSI. Intrarea în acest bloc este formată din vectorul de
intrare x şi de stare y, deci ieşirea decodificatorului va selecta una din perechile
posibile stare-intrare (s-au considerat numai intrări secvenţiale). Transpusa la nivel
de organigramă, aceasta înseamnă că la ieşirea decodificatorului se va selecta orice
traseu logic definit de o stare precum şi deciziile ce condiţionează evoluţia din
starea respective. Se va nota prin

Q   q1 , q 2 ,..., q P 

vectorul tuturor traseelor logice astfel realizate. Întotdeauna un singur traseu logic
este active deci o singură componentă q1 este egală cu 1 logic, restul fiind 0.
246 Roboţi industriali

A doua memorie PROM G se păstrează ca şi în configuraţia generală,


adresarea ei realizându-se prin fiecare linie activă a unui anumit traseu logic.
Această memorie furnizează la ieşire un cuvânt in formatul

IY IZ

unde IY desemnează informaţia de stare succesoare, deci starea în care se


finalizează evoluţia automatului pe un anumit traseu logic, iar IZ reprezintă
informaţia de ieşire deci practic vectorul ieşirilor z

z   z1 , z 2 ,..., z m 
T

active pe traseul logic respective.


Procedura de implementare a unui automat în această configuraţie cuprinde
următoarele etape:
* Din traiectoria de mişcare impusă robotului se construieşte organigrama
de stări corespunzătoare. Aceasta presupune defalcarea traiectoriei în secvenţe
funcţionale, fiecărei secvenţe alocându-i-se o stare. Sunt determinate totodată
deciziile care realizează comutarea pe anumite secvenţe (trasee logice).
* Se codifică stările obţinute prin variabilele secundare  y1 , y 2 ,..., y s  . Se
stabilesc traseele logice  q1 , q 2 ,..., q p  ale organigramei şi se determină funcţiile
logice asociate.
* Se dimensionează componentele principale ale arhitecturii din figura 8.3.
Astfel, se aleg memoria, decodificatorul D şi registrul de reacţie RR acoperitoare
faţă de dimensiunile următoare:

PROM G: PROM (p x(s+m)).


D: DECOD (n+s)
RR: R (s)

* Se înscrie informaţia în PROM G în conformitate cu logica organigramei.


Pentru fiecare linie de adresă (traseu logic) se înscriu datele privind starea în care
va evalua automatul în vectorul de ieşire la momentul respectiv.
Pentru exemplificare se va trata implementarea automatului pentru
conducerea unui robot secvenţial ce execută o traiectorie simplă tip triunghiular
(fig). 8.4a).
Capitolul 8. Sisteme de conducere cu logică flexibilă 247

Robotul se deplasează în planul (X,Y) acţionat pe fiecare axă în ambele


1
sensuri (x+, x-, y+, y-), mişcările respective fiind controlate de limitatoarele L x ,
2 1 2
L x , L y .L y (pentru simplitatea traiectoriei s-a considerat că segmentul 23 este
paralel cu a doua bisectoare). Organigrama asociată acestei traiectorii este
prezentată în fig.8.4b. Se disting cinci stări din care starea 1 reprezintă o stare de
aşteptare corespunzătoare staţionarii robotului în punctual 1. Pornirea este dată
printr-o comandă START dar mişcarea este condiţionata de închiderea griperului
(decizia GRIPER ÎNCHIS, GI=1). Dacă această condiţie nu este realizată se trece
în starea 2 în care se execută ÎNCHIDEREA GRIPER, IG=1, după care se revine în
starea iniţială şi se reîncepe testarea celor 2 condiţii, START şi GI. Dacă ambele
decizii sunt îndeplinite, automatul trece în starea 3 în care se produce mişcarea
robotului pe axa x  până la satisfacerea condiţiei L x , L y  1 . Stările următoare 4
2 1

şi 5 realizează celelalte segmente de traiectorie după care se revine în starea iniţiala


1.
PROM G
q1
q2
q
q43
x q5
y


q p

cuvânt
TACT IY IZ
RR ieşire
y1yy2 3 y s
z1zz
23
zm
Figura 8.3
248 Roboţi industriali

(001)
1
q1
start
0 1 q3
q2 0
GI
1
(010) (011)

2 IG 3 x q5
q4 start 0

q61 
4 x , y (100)
q7
start 0

q81 
5 y (101)
q9
q10 1 start 0
a
y
3
L2y
L1y 2
1
L1x
START 2
Lx x
b

Figura 8.4

Cele cinci stări ale organigramei se pot codifica prin trei variabile secundare
 y1 , y2 , y3   y , codificarea fiind arbitrară (pentru comoditate s-a utilizat codul
binar natural).
Capitolul 8. Sisteme de conducere cu logică flexibilă 249

Traseu Simbol Funcţie logica


logic

q1 1 START y1 y 2 y 3  START
q2 1 START  GI
1 START  GI y1 y 2 y3  START  GI
q3
2 y1 y 2 y 3  START  GI
q4 3 L2x L1y
q5 2 1 y1 y 2 y3
3 Lx L y
q6 y1 y 2 y 3 L2x L1y
4 L1x L2y
q7 2 1
1 2
4 Lx L y y1 y 2 y 3 L X L y
q8
q9 5 L1x L1Y y1 y 2 y 3 L1x L2y
1 1
q10 5 L x LY y1 y 2 y 3 L1x L2y
y1 y 2 y 3 L1x L1y
y1 y 2 y 3 L1x L1Y

Tabelul 8.1

Organigrama conţine asemenea zece trasee logice

Q   q1 , q 2 ,..., q10 

primele trei trasee fiind generate din starea iniţială 1 (liniile punctate din fig 8.4b).
De exemplu, traseul q1 este generat de starea 1, este determinat de decizia
START nerealizată şi se închide tot în starea 1. Formal, aceasta poate fii scrisă prin

q1 : 1 START  y1 y 2 y 3 START

Similar, traseul q 2 este definit prin

q 2 : 1 START .GI  y1 y 2 y 3 .START .GI

În tabelul 8.1 sunt prezentate expresiile logice ale celorlalte trasee ale
organigramei.
250 Roboţi industriali

Fiecare traseu logic astfel constituit trebuie să conţină informaţiile privind


starea în care evoluează automatul la punctul final al traseului şi informaţia de
ieşire ce se generează în starea iniţială a acestuia. Ieşirile automatului sunt
reprezentate de cele patru comenzi de acţionare a mişcării şi închiderea griperului,


z  x  , x  , y  , y  .IG 
Stabilirea exacta a vectorilor Q,x,y,z permite dimensionarea elementelor
configuraţiei,

PROM G : PROM (10 x (3+5))


D : DECOD (8)
RR : R (3)

La realizarea circuitului se vor alege componente tipizate acoperite, de


exemplu, PROM (16 x 8) şi R (4). Introducerea unui DECOD (8) din care numai
10 linii sunt utile este nepracticată de aceea se va prefera sinteza logică a acestui
decodificator cu porţi logice elementare.
În figura 8.5a este prezentată arhitectura completă a automatului, informaţia
înscrisă în PROM reprezentând datele specificate pe fiecare traseu logic (punctul în
memorie reprezintă valoarea logica 1). De exemplu, pentru traseul logic q1 ,
informaţia este reprezentată de codul stării următoare, starea 1 codificată prin 001,
informaţia de ieşire neexistand. Pentru traseul q8 , starea viitoare este starea 5, cod
101 şi simultan sunt generate ieşirile x- si y+ etc.
Capitolul 8. Sisteme de conducere cu logică flexibilă 251

PRO
q1 M
START q2
GI q3
L2x L1y q4
q5
D q6
q7
q8
q9
RR q10

cuvânt
IY
ieşire
IZ
Y1 Y2
Y3
X+ X- Y+ Y- IG
a
252 Roboţi industriali

START
L L L

GI
2 1 1
x x x

L L L
1 2 1
y y y

q1

q2

q3

q4

.
.
y1 y2 y3 .
Figura 8.5

În figura 8.5b, este prezentată o modalitate de sinteză a decodificatorului cu


porţi logice, soluţia aceasta fiind întotdeauna referabilă sub raport economic.

8.1.3. Configuraţia DS (decodificator de stare)

Implementarea unui automat în această configuraţie se bazează pe o anumită


implementare a stărilor succesoare într-o evoluţie. Pentru exemplificare, să
considerăm stările 2 şi 3 ca succesoare stării 1 prin decizia x (fig. 8.6).
Capitolul 8. Sisteme de conducere cu logică flexibilă 253

1 1 4

0 1 0 x1 1 0 x2 1
x

2 3 3

a b

Figura 8.6

Starea 2 succesoare a stării 1 prin decizie x nerealizată (x=0) se numeşte


stare succesoare “falsă” în raport cu 1, iar starea 3 succesoare stării 1 prin decizie
realizată (x=1) se numeşte stare succesoare “adevărată” în raport cu 1 [92].
Definirea acestor stări este strâns legată de starea iniţială, în acest caz 1. Este
evident că aceeaşi stare poate fi stare succesoare prin doua decizii cu valori
complementare, de exemplu starea 3 (fig. 8.6b) care este adevărată cu starea 1 şi
falsă în raport cu starea 4.
Această împărţire a stării în cele doua clase F şi A constituie un factor de
prim ordin în exprimarea necesarului de informaţie pentru definirea evoluţiei unui
automat. La aceste date se mai adaugă, evident, cele referitoare la selecţia
deciziilor şi generarea ieşirilor dorite. Ca urmare, formatul cuvântului la ieşirea
memoriei PROM G va fi:

IT IY
IYF IYA

unde IT desemnează instrucţiunea de test prin care se identifică decizia (mărimea


de intrare) ce intervine într-o anumită stare, IYF şi IYA definesc codurile
(informaţia stărilor false şi adevărate, respectiv, iar IZ reprezintă instrucţiunea de
ieşire generată în starea curentă a automatului.
Prelucrarea acestui format se realizează într-o structură destul de diferită de
cea anterioară, cu numeroase elemente specifice (fig.8.7).
254 Roboţi industriali

stare si
PROM G

y1

D
yS

cuvant
IT IY F IY A IZ iesire
TACT
RR
z1
x1 z2
DZ
x2 w
MUX1 MUX2
zm
xN y2
y1 yS

Figura 8.7

Se remarcă, în primul rând, că adresarea memoriei PROM G se realizează


prin decodificarea vectorului de stare deci fiecare linie de adresă identifică o stare a
automatului. În consecinţă, fiecare cuvânt adresat trebuie să conţină toată
informaţia asociată unei stări: intrare, stare succesoare, ieşire, în conformitate cu
formatul stabilit. Această informaţie este prelucrată într-o structură hardware la
ieşirea memoriei formată din: un multiplexor scalar MUX 1, un multiplexor
vectorial MUX 2 şi un decodificator DZ.
Primul multiplexor MUX 1 selectează o mărime de intrare x1 în
conformitate cu informaţia înscrisă în instrucţiunea de text IT ( k1 biţi) deci

k1  log 2 n

MUX 2 joacă rolul unui comunicator, transformând la ieşire fie codul stării
false IYF, fie adevărate IYA (s biţi), după cum variabila de control w este 0 şi
respectiv 1.
Ultimul circuit, decodificatorul de ieşire DZ, generează una din cele m
intrări conform codului oferit de cei k 2 biţi din instrucţiunea de ieşire IZ.
Capitolul 8. Sisteme de conducere cu logică flexibilă 255

k 2  log 2 m

Informaţia de stare IY (IYF sau IYA) este stocată într-un registru de reacţie
RR la ieşirea căruia, într-o nouă perioadă de tact, se obţine codul stării
 y1 , y 2 ,..., y s  .
Algoritmul de implementare a unui sistem de conducere în această
configuraţie cuprinde următoarele etape:
* Se determină, după aceeaşi procedură ca şi în configuraţia precedentă,
organigrama de stări a automatului.
* Se dimensionează formatul cuvântului din memorie stabilind necesarul de
variabile pentru codificarea intrărilor (test), stărilor şi intrărilor. Se alocă coduri
corespunzătoare tuturor mărimilor implicate.
* Se dimensionează toate componentele acestei configuraţiei alegându-se
întotdeauna valori acoperitoare:

PROM G : PROM  2 x k
s
1  2s  k 2  
MUX 1 : MUX  k1 x1
MUX 2 : MUX 1xs 
DZ : DECOD  k1 
RR : R  s 

* Se construieşte informaţia în PROM G astfel încât să acopere organigrama


stărilor.
* Se interconectează toate componentele de circuit într-o arhitectură de tipul
DS.
Observaţia 1. Anumite evoluţii impun trecerea de la o stare la alta fără
implicarea unei decizii, necondiţionat (fig.8.8). În această situaţie, starea
succesoare 2 poate fi considerată fie ca stare succesoare falsă (IYF) dacă o decizie
inexistentă este interpretată ca o decizie niciodată realizată, fie ca o stare
succesoare adevărată (IYA) dacă decizia inexistentă este interpretată ca o mărime
întotdeauna realizată (x=1). Această funcţionare poate fi obţinută relativ uşor
conectând borna de intrare a multiplexorului MUX 1 ce corespunde unei decizii
inexistente (de obicei codul 00…0) la valoarea permanentă 0 logic (pentru fals) şi 1
logic (pentru adevărat).
256 Roboţi industriali

2
Figura 8.8

Observaţia 2. O configuraţie de acest tip nu poate implementa organigrame


ce conţin structuri ierarhizate de decizii (fig.8.9a).
Pentru astfel de evoluţie este necesară modificarea organigramei prin
intercalarea unor stări suplimentare care să rupă lanţul decizional.

0 1
X1
rang 0
rang 1

0 1 0 1
X2 X2
q1 q2 q3 q4

2 3 4 5

0 1
X1

1* 1**

0 1 0 1
X2 X2

2 3 4 5

b
Figura 8.9

În figura 8.9b stările nou introduse 1’, 1” separă cele doua decizii x1 , x 2
determinând o decuplare a condiţiilor de evoluţie.
Capitolul 8. Sisteme de conducere cu logică flexibilă 257

Observaţia 3. Conform celor arătate mai sus, fiecărei stări s1 i se atribuie o


unică decizie x1 . Deci, numărul deciziilor este egal cu cel al stărilor (excludem
cazurile deciziilor inexistente discutate la Observaţia 1.). În consecinţă, codurile ce
identifică starea pot fi utilizate şi pentru identificarea mărimilor de intrare (decizii
x1 ). Formatul instrucţiunilor din memorie nu va conţine deci câmpul informaţiilor
de test [54].

IY
IZ
IYF IYA

În figura 8.10 este prezentat un automat implementat după acest


considerente. Se remarcă absenţa informaţiilor de test şi controlul direct al
multiplexorului MUX 1 prin variabilele de stare y1 .
S-a arătat că această configuraţie nu poate implementa structuri de
organigrame conţinând decizii ierarhizate. Acest lucru este determinat de faptul că
pe aceste lanţuri de decizii noţiunea de fals şi adevărat nu mai are sens. Dacă, însă,
se atribuie anumite funcţii logice evoluţiei pe diferite trasee ale lanţului decizional
iar stările succesoare pe aceste trasee capătă o semnificaţie logică corespunzătoare,
atunci implementare în această configuraţie devine posibilă [54].

D PROM G

y
cuvant
IYF IYA IZ iesire

TACT
RR X1
X2
MUX1 MUX2 DZ

Xn

y
Z1 Zm

Figura 8.10
258 Roboţi industriali

Pentru exemplificare să considerăm organigrama prezentată în figura 8.9a.


Aceasta conţine două decizii x1 , x 2 grupate în doua ranguri, 0 şi 1. Cele patru
trasee logice q1 , q 2 , q 3 , q 4 formate definesc patru condiţii logice,
Q1  x1 x 2
Q2  x1 x 2
Q3  x1 x 2
Q4  x1 x 2

În acest sens, putem defini starea 2 ca succesoare de tip Q1 a stării 1, starea


3 ca succesoare de tip Q2 a stării 1 s.a.m.d. Aceste noi tipuri de stării 1,
succesoare impun organizarea unui format de instrucţiuni corespunzător în
memorie.

IT1 IY
IT0 IZ
IYQ1 IYQ 2 IYQ 3 IYQ 4

Formatul cuprinde câmpuri distincte ce identifică mărimile de test după


rangul de care aparţin IT0 , IT1 precum şi codurile stărilor succesoare
IYQ1 , ITQ 2 , ITQ 3 , ITQ 4 definite în conformitate cu logica realizată.
Implementarea acestui tip de dată în figura 8.11. Selectarea deciziilor după
ranguri este realizată în două multiplexoare MUX 10 , MUX 11 , câte unul pentru
fiecare rang. Ieşirile lor controlează multiplexorul MUX 2 ce selectează una din
cele patru informaţii de stare IY.
Capitolul 8. Sisteme de conducere cu logică flexibilă 259

y
DZ PROM G

IT0 IT1 I I I I IZ cuvant


iesire

W0
TACT decizii 0
RR MUX1 MUX2 DZ
rang 0

W1 Z1 Z2 Zm

decizii 1
MUX1
rang 1

Figura 8.11

Procedura descrisă, valabilă numai pentru două ranguri de decizie, poate fi


extinsă la structuri oricât de complexe, bineînţeles sub rezerva complexităţii
arhitecturii sistemului.
În finalul acestei prezentări se va explica procedura de implementare a unui
automat în configuraţie DS pentru conducerea robotului din figura 8.4.
Organigrama de stări asociată cuprinde stări controlate prin decizii de cel
mult două ranguri ierarhice, rangurile zero şi unu. Se remarcă de asemenea,
evoluţia din starea 2 în starea 1 realizată direct, fără nici o decizie. Absenţa acestei
decizii va fi interpretată ca decizie întotdeauna zero, deci starea 1 devine starea
falsă în raport cu starea 2.
Într-o prima abordare a problemei, se va rupe lanţul decizional q 2 , q 3
(figura 8.4b) prin introducerea unei stări suplimentare 1’, cod 110. În acest sens,
formatul instrucţiunilor în memorie cuprinde câmpurile:

IT : K 1  3
IY : 2 s  2 x3
IZ : k 2  3
260 Roboţi industriali

PROM G
001
010
011
y1
100
y2
D 101
y3
110

cuvant
IT IYF IYA IZ iesire

0 IG
0 1 X+
START 1 2 X-,Y+
TACT DZ 3
RR GI 2 Y-
RR
3 4
MUX1 MUX2
L1x L2y 4 5
L1x L1y 5 6
7
6
7

Figura 8.12

Mărimi de intrare IT Mărimi de ieşire IZ

Intrare Ieşire
Inexistentă 000 inexistentă 000

START 001 IG 001

GI 010 X 010

L2x L1y 011 X  ;Y  011


100 100
L1x L2Y
101 Y
L1x L1Y

Tabelul 8.2

Conform cu cele prezentate mai sus, se vor selecta componente şi module de


circuite care să acopere valorile necesare. Astfel, se vor alege
Capitolul 8. Sisteme de conducere cu logică flexibilă 261

 
PROM G : PROM 2 3 x 3   2 x3   3   8 x12
MUX1 : MUX  3X 1
MUX2 : MUX 1x3
DZ : DECOD  3
RR : R  3

Cu aceste elemente se construieşte arhitectura generală a automatului de


conducere (fig. 8.12) şi se înscrie în memorie informaţia ce acoperă organigrama
de funcţionare a robotului conform codurilor impuse (tabelul 8.2).
Pentru exemplificare, să considerăm starea 3 din organigramă. Informaţia
corespunzătoare este înscrisă pe adresa 001 şi cuprinde: codul mărimii de intrare
selectat (IT=011), codurile stărilor false şi adevărate, 011 şi respectiv 100 precum
şi codul ieşirii selectate (IZ=010). Ultima adresă utilizată 110 corespunde stării nou
introdusa 1’ prin care se realizează interpretarea stărilor 2 şi 3 ca stări false, cod
010, şi respectiv adevărate, cod 011.
O a doua modalitate de tratare a acestei probleme de conducere constă în
abordarea lanţului de decizii în ansamblul lor fără ruperea succesiunii lor logice.
Cu toate că această procedura nu este recomandabilă la această organigramă întru-
cât aceste decizii condiţionează numai o singura stare, starea 1 şi deci abordarea
propusă este cu totul neeconomică, se va analiza şi acest mod de implementare
pentru a preciza în detaliu aspectele de proiectare solicitate de această metodă.
Într-o primă etapă se impune sortarea pe ranguri a deciziilor implicate. În
acest caz, aceasta revine la identificarea deciziei START ca decizie de rang 0 şi a
deciziei GI ca decizie de rang 1. Toate celelalte decizii se vor interpreta fie ca
decizii de rang 0 fie de rang 1, sortarea lor în una din cele două categorii fiind
arbitrară (tabelul 8.3).
Păstrând aceleaşi coduri pentru mărimile de stare şi ieşire (fig.8.5b) se obţine
următorul format în memorie

IT0 IT1 IYQ1 IYQ 2 IYQ 3 IYQ 4 IZ


2x2 biţi 4x3 biţi 3biţi

unde cele patru trasee logice posibile corespund următoarelor funcţii,

IYQ1  IT0  IT1


IYQ 2  IT0  IT0
IYQ 3  IT0  IT1
262 Roboţi industriali

IYQ 4  IT0  IT1

Decizii Decizii
de rang 0 IT0 de rang 1 IT1
Decizie Decizie
inexistentă 00 inexistentă 00

START 01 GI 01

L2X L1Y 10 L1X L1Y 10

11
L1X L2Y
Tabelul 8.3

Arhitectura completă a automatului este prezentată în figura 8.13. Selecţia


deciziilor se obţine prin două multiplexoare MUX 10 şi MUX 11 , câte unul pentru
fiecare rang. Înscrierea informaţiei se realizează conform formatului discutat mai
sus. De exemplu, pentru adresa 001 (starea 1) sunt active cele doua decizii de
ranguri diferite START şi GI. Informaţia de stare IY defineşte patru evoluţii
posibile în funcţie de valoarea logică a acestor decizii. Pentru START=0 şi GI=0
sau 1 (deci indiferent de decizia GI) evoluţia se produce în stare 1 (cod 001), pentru
START=1, GI=0 se obţine starea finala 2 (cod 010) iar pentru START=1, GI=1
rezultă starea 3 (cod 011). Pentru 010 (starea 2) evoluţia nu este condiţionată de
nici o mărime de intrare, deci ambele câmpuri sunt IT0  IT1  00 ceea ce
determină selecţia unică a stării succesoare 1 codificată IYQ1  001 . Într-o
manieră similară sunt implementate celelalte stări ale automatului.

8.1.4. Configuraţia DSCU (DS-cod unic)

Configuraţia DS, discutată în paragraful precedent, oferă o tehnică facilă


pentru implementarea oricăror structuri de conducere indiferent de gradul lor de
complexitate. Din păcate, ceea ce s-ar putea reproşa acestei metode se referă la
excesul de informaţie necesar pentru codificarea stărilor succesoare, exces care se
repercutează în utilizarea unor memorii de mari dimensiuni.
O îmbunătăţire considerabilă a acestei proceduri este realizată printr-o nouă
configuraţie, DSCU (Decodificarea de stare-cod unic) care păstrează avantajele de
Capitolul 8. Sisteme de conducere cu logică flexibilă 263

bază ale configuraţiei DS micşorând totodată câmpurile informaţiei de stare prin


utilizarea unor componente hardware suplimentare [92].
Pentru ilustrarea modului de implementare în această procedură, să
considerăm organigrama din fig. 8.14 în care stările 2 şi 3 sunt succesoare false şi
respective adevărate ale stării 1.

PROM G
001
010
011
y1 100
y2 101
y3 D

IT0 IT1 IYQ1 IYQ2 IYQ 3 IYQ4 IZ

0 MUX 0
TACT START 1 1
1 IG
RR L2x L1y 2 0 0 0 1 1
0 1 0 1 2 X+
L1x L2y 3 3 X-
MUX2 DZ 4 Y-
5
0 MUX 6
GI 1 1
7
L1x L1y 2 1
3 Y1 Y2 Y3

Figura 8.13

Datoria relaţiei de succesiune a acelor două stări, este posibil să determinăm


codul unei stări succesoare Y în funcţie de codul stării 1,

IF  f  y 

În acest caz codul stării 2 se va determina printr-un circuit specializat ce


calculează funcţia f(y), în memoria PROM G fiind introdus numai câmpul stării
adevărate. Deci, formatul utilizat va fi,

IT IYA IZ
(Format A)

În mod similar, în figura 8.14b, codul stării adevărate 3 este determinat după
264 Roboţi industriali

YA  g  y 

iar codul YF este extras din memorie după formatul,

IT IYF IZ
(Format F)

(y) (y)
1* 1*

0 1 1 0
X X

f(y) YA YF g(y)
2 3 2 3

a b
Figura 8.14

Pentru a nu mări în mod exagerat structura hardware utilizată în această


implementare, funcţiile f şi g se introduce sub forma celor mai simple funcţii
aritmetice sau logice. În mod frecvent, se utilizează în acest scop adunarea
numărului 1, incrementarea codului stării, deci

YF  Y  1

pentru Formatul A sau

YA  y  1

pentru Formatul F, respectiv.


Întru-cât tehnica de implementare este simplă, în continuare se va analiza
procedura de lucru pe Formatul A, rezultatele putând fi uşor extinse la cel de al
doilea format.
Capitolul 8. Sisteme de conducere cu logică flexibilă 265

Structura generală a sistemului de conducere în această configuraţie este


asemănătoare cu cea a configuraţiei DS remarcându-se în plus circuitele de
incrementare a codului de stare (fig.8.15).
Pentru generarea codului stării succesoare false YF, se utilizează un sumator
la care unul din operanzi este întotdeauna 0, al doilea este reprezentat chiar de
codul stării y iar variabila de transport c1 este permanent legată de valoarea logică
1.
Se remarcă reducerea memoriei, lungimea cuvântului la ieşirea ei fiind
numai de  k1  s  k 2  biţi.
O arhitectură mai economică se poate obţine după funcţia de incrementare a
stării este preluată de registrul de reacţie RR.
Întru-cât registrul memorează toate codurile stării succesive IY, prin această
nouă funcţie arbitrară se preiau şi funcţiile de selecţie realizate de MUX 2 (fig.
8.16).

PROM G

y D
cuvânt
IT IYA IZ
ieşire
∑ 1
ci [y+1]
TACT RR x1
x2
MUX
. MUX 2 DZ
. 1
.
xn
z1 z2 … z3

Figura 8.15

Pentru controlul registrului este introdus un circuit de selecţie CS care


determină cele două funcţii: incrementarea vectorului y sau încărcarea paralel fără
alterarea vectorului (load). Aceste regimuri de lucru se obţin direct din ieşirea w a
multiplexorului MUX 1; pentru w  0 se realizează incrementarea registrului
(generarea la ieşirea sa a codului stării false  y  1 ,iar pentru w  1 registrul
lucrează în regim de transparenţă, la ieşire transferându-se codul IYA din memorie.
Implementarea unui sistem de conducere în această configuraţie implica
anumite elemente specifice datorate restricţiilor impuse de codificarea stărilor.
Trebuie subliniat faptul că, dacă în toate configuraţiile precedente se acceptau orice
266 Roboţi industriali

modalităţi de codificare a stărilor, în configuraţia DSCU acestea sunt condiţionate


de necesitatea generării stărilor false prin incrementarea registrului RR.
Etapele specifice pentru implementarea acestei proceduri sunt:
* Se determină în organigrama stărilor toate traseele logice definite prin
decizii nerealizate. Pe aceste trasee, codul oricărei stării trebuie să fie egal cu cel al
stării precedente plus 1,

YF  y  1

Dacă, în anumite cazuri, apar situaţii conflictuale, se introduce stări sau


decizii suplimentare care să evite conflictul. Trebuie subliniat faptul că o decizie
inexistentă trebuie interpretată aici într-un singur sens, ca decizie întotdeauna
realizată (deci starea succesoare este adevărată).
* Se codifică celelalte stări, neaparţinând traseelor logice menţionate,
arbitrar, utilizând restul combinaţiilor de cod disponibile.
Celelalte faze ale implementări privind alegerea componentelor de circuit,
dimensionarea şi interconectarea lor sunt similare cu cele discutate la configuraţiile
precedente.

Y
PROM G

IT IYA IZ
Z1
Z2

RR incr/load
X1
DZ
X2 W
MUX1 CS Zm
X2

Xn

Figura 8.16
Capitolul 8. Sisteme de conducere cu logică flexibilă 267

Pentru exemplificarea procedurii se va reconsidera sistemul de conducere al


robotului secvenţial definit prin organigrama stărilor din figura 8.4b.
Analiza traseelor logice din organigrama indică 5 trasee definite prin decizii
nerealizate: q1 , q 2 , q 5 , q 7 , q 9 . Pe toate aceste trasee logice, codul oricărei stări
trebuie să respecte relaţia (8.7).
În primul rând se impune introducerea stări 1’ pentru ruperea lanţului
decizional START, GI. În acest fel, starea 2 devine succesoare falsă a lui 1’,
condiţie uşor de respectat. Dar starea 1 are succesor fals pe ea însăşi, situaţie de
conflict care se poate rezolva numai prin introducerea unei noi stări 1”.
O situaţie similară este întâlnită pe traseele q 5 , q 7 , q9 ceea ce impune
introducerea stărilor 3’, 4’, 5’. Noile stări introduse reclamă extinderea cuvântului
de cod de la 3 la 4 biţi.
Codificarea completă a stărilor se poate urmării în figura 8.17.
Starea 1, cod 0001, are succesor fals pe 1”, cod 0010, iar aceasta are ca
succesor adevărat (decizie inexistenta) starea 1. Analog, starea 2 are ca succesor
adevărat starea 1, situaţie neconflictuală. Codurile celorlalte stări respectă în
aceeaşi manieră toate condiţiile specificate.
268 Roboţi industriali

0001
1

0 1
Start
0011
1** 1*

0
GI
0100 0101 0111
2 3 X+ 3*

0
Lx2Ly2
q5
1

0111 1000
4 X-,Y+ 4 *

Lx1Ly2 qz
0
1
1001 1010
5 5*

1 0
Lx1Ly1 qg

Figura 8.17

În figura 8.18 este prezentat întregul sistem de conducere, structura


informaţiei în PROM G pentru fiecare stare şi legăturile directe cu sistemul de
acţionare sau de măsurare a robotului. Pentru intrări şi ieşiri s-au folosit codurile
stabilite anterior.
Trebuie remarcată conectarea bornei 0 de la MUX 1 la semnal logic 1
constant (+5 V) pentru a permite interpretarea deciziilor inexistente ca decizii
întotdeauna realizate.
Observaţie. Metoda de implementare analizată se referă la configuraţii
DSCU cu Format A. Procedura se păstrează şi în cazul cuvintelor în Format F cu
următoarele menţiuni:
- incrementarea stărilor se realizează pe traseele logice caracterizate prin
decizii realizate  x  1 ;
- deciziile inexistente sunt interpretate întotdeauna ca decizii false.

8.1.5. Configuraţia FV (format variabil)


Capitolul 8. Sisteme de conducere cu logică flexibilă 269

În toate procedurile discutate mai sus, fiecare bit din memorie avea o
semnificaţie unică, formatele de lucru fiind considerate fixe. O posibilitate de
reducere a spaţiului de memorie se poate obţine prin utilizarea formatelor variabile,
fiecare bit din formatul cuvântului având semnificaţii multiple în funcţie de tipul
formatului activ la un moment dat [92,77]. Precizarea formatului activ se obţine
printr-un câmp special INDICATOR DE FORMAT (IF) cu o lungime
corespunzătoare.

0 IZ Format 1
1 IT IYA Format 2

În formatul de mai sus, un bit poate defini fie codul IZ, fie codul intrării IT
sau al stării (IYA), identificarea fiind realizată printr-un singur bit în IF. Sunt
posibile, evident, şi alte structuri de cuvinte, pentru implementarea sistemelor de
conducere ale roboţilor utilizându-se frecvent formatele următoare:
Sistemul de conducere implementat în configuraţia FV este similar celui
utilizat la configuraţia DSCU conţinând în plus circuite de identificare ala
formatelor. În practică această operaţie se realizează uşor prin bituri de format BF
care, pentru valoarea 0 validează decodificatorul de ieşire DZ şi inhibă
multiplexorul MUX 1, iar pentru valoare 1 activează multiplexorul şi blochează
ieşirea.

0 IZ

1 IT IYF

IZ
IT
IF
IYF
IYA

Implementarea informaţiei în PROM G este diferită faţă de configuraţiile


precedente datorită formatului variabil prin care se operează. Aceste diferenţieri se
pot rezuma la:
270 Roboţi industriali

* Modificarea organigramei stărilor prin dublarea lor în conformitate cu cele


două formate utilizate. Prima stare implementează Formatul 1 şi generează ieşirea,
a doua stare determină mărimea de intrare (decizia) şi starea succesoare adevărată
(fig. 8.20).
* Se determină toate traseele logice determinate prin decizii nerealizate. Se
codifică stările de-lungul acestor trasee astfel încât codul unei stări este egal cu cel
al stării precedente plus 1. Deciziile inexistente se consideră decizii întotdeauna
nerealizate (borna 0 de la MUX 1 este legată la punctual de masă).
* Dacă codificarea anumitor stări creează situaţii conflictuale, se introduc
stări şi decizii suplimentare;
* Celelalte stări primesc codurile rămase disponibile, fără nici o restricţie în
procedura de atribuire.

PROM G
0001
0010
0011
Y1 0100
Y2 0101
Y3 D 0110
Y4 0111
1000
1001
1010

IT IYA IZ

TACT Incr/load +5V 0


RR START 1 1
GI1 IG
2 2 2
Y1 Y2 Y3 Y4 Lx L y 3 MUX 3
X+
L1x L2y 4 1
DZ 4 X-,Y+
Y-
L1x L1y 5 5
6 6
7 7
w
CS

Figura 8.18
Capitolul 8. Sisteme de conducere cu logică flexibilă 271

y
D PROM G

BF

VM

X1 DZ VD
RR
X2 MUX1 CS
Incr/load
Xn Z1 Z2 Zm
RR

Figura 8.19

1 IZ IZ
1*

0 1
X 1**
*

0 1

a b

Figura 8.20

Pentru exemplificare se va relua exemplul de la paragraful 8.1.2


(organigrama din fig. 8.4,b). Modificarea organigramei de stări discutată mai sus
impune apariţia a încă 6 stări (s-a considerat existenţa stării 1’, care realizează
decuplarea lanţului decizional START, GI (fig. 8.21). Pentru simplificarea
codificării anumite variabile de intrare au fost luate în forma complementată.
În acest fel, primul traseu logic cu stări succesoare false este format din: 1*,
1**, 1’* 1’** 2*, 2**. Situaţia de conflict creată de evoluţia de la 2** la 1* se
272 Roboţi industriali

poate rezolva prin introducerea unei intrări suplimentare notată cu a, în permanentă


conectată la valoarea logică 1, ceea ce face ca 1* să fie succesor adevărat al lui
2**. Al doilea lanţ de stări false 3*, 3**, …, 5** se rezolvă în aceeaşi manieră
excepţie făcând faptul că evoluţia din starea 5** în 1* nu este posibilă direct ceea
ce impune introducerea stării 6 ce preia condiţia de incrementare a codului stării 5
**.
Stării 6 îi succede prin aceeaşi decizie a=1 starea 1*, codurile acestor stări
nemaifiind supuse nici unei restricţii.
Dimensiunea memoriei necesare pentru implementarea acestei configuraţii
se obţine din relaţia:

PROM G :  2 s  p 

unde p  max k 2 ,  k1  s    1, k1k 2 , s fiind lungimea codurilor instrucţiunilor de


test, ieşirea şi starea, respectiv.
În fig. 8.22 este prezentată configuraţia completă a sistemului de conducere
şi informaţia din memorie pentru acoperirea organigramei de stări modificate.
Codurile utilizate sunt cele explicate în aplicaţiile precedente în plus fiind introdusă
decizia a=1 pentru combinaţia de cod 110. Se remarcă existenţa celor două formate
determinate prin indicatorul de format IF, în codul fiecăreia activându-se ieşirea
sau intrarea şi starea, respective.
Capitolul 8. Sisteme de conducere cu logică flexibilă 273

0001
1
0010

1 Start 0
0011

0100
1000

0 1

0101 0011
1
2k IG 000
a 3x X+
0110
0100

1
Lx2,Ly1
0

4x X-,Y+

11010
1
6 110 Lx1,Ly2
0

x
5 Y-

1
5k
x 1

Lx1,Ly2

Figura 8.21

Observaţie. Dublarea stărilor impusă în această configuraţie este necesară în


stările în care se generează o ieşire, deci în care trebuie declarat formatul 1. Dacă
anumite stări nu formează o mărime de ieşire, se poate renunţa la formatul
respective, eliminând stările corespunzătoare (de exemplu 1 x si 1' x in fig. 8.21).
274 Roboţi industriali

0001
0010
0011
0100
y1 0101
y2 0110
0111
y3
1000
y4 1001
1010
1011
1100
1101

0 IZ Format 1 cuvânt
TACT incr./load Format 2 ieşire
RR 1 IT IYA

IF
+5V
Start
GI

MUX 1 w CS

a
+5V

DZ VD
01234567

IG X+ Y-
X ,Y+
-

Figura 8.22

8.2. Automate microprogramate

Un automat este definit ca microprogramat dacă evoluţia sa în timp este


determinată de o secvenţa coerentă de microinstrucţiuni din memoria sa internă. În
acest caz, adresa microinstrucţiunii reprezintă codul stării automatului.
O microinstrucţiune trebuie să cuprindă următoarele părţi:(1) condiţia
externă (dacă exista) ce determină tranziţia de la o stare o adresa la adresa
următoare; (2) adresa următoare în care va evolua automatul; (3) mărimile de ieşire
care trebuiesc generate in fiecare faza.
În funcţie de tipul microinstrucţiunii utilizate şi de condiţiile externe impuse,
evoluţia se poate realiza:
Capitolul 8. Sisteme de conducere cu logică flexibilă 275

a) pas cu pas sau prin salt necondiţionat de factori externi.


b) pas cu pas prin salt sub controlul factorilor externi specificaţi în
microinstrucţiune.
Structura generală a unui astfel de automat cuprinde două părţi (fig.8.23):
memoria microprogram rezidentă a setului de microinstrucţiunii şi un control ce
realizează controlul evoluţiei automatului pe baza informaţiei furnizate de
microinstrucţiunea curentă şi a intrărilor primate din exterior (robot). Simultan,
automatul generează ieşirile necesare pentru comanda secvenţelor funcţionale ale
robotului.

aμP
Intrări Adresă Ieşiri
(senzori de poziţie) (cod stare) MEMORIE (comenzi robot)
CONTROLER MICROPRO- ROBOT
GRAMATĂ

Figura 8.23

În continuare vor fi analizate principalele structuri de automate


microprogramate insistându-se asupra modalităţilor de implementare a unor legi de
conducere pentru roboţi industriali.

8.2.1. Structura de bază

Configuraţia de bază a unui automat microprogramat derivă direct din cea


prezentată în fig.8.23 cuprinzând cele două blocuri principale: controlerul şi
memoria, precum şi circuitele suplimentare care facilitează interfaţarea cu sistemul
condus (fig.8.24).
În acest sens, se remarcă prezenţa, ca şi în automatele implementate cu
PROM-uri, a unui circuit general de multiplexare care sintetizează logica semnelor
de intrare sub forma unei condiţii generale FLAG. În funcţie de valoarea logică a
acestei variabile, se obţine evoluţia viitoare a automatului.
Bornele 0 şi 1 ale multiplexorului sunt conectate la 0 şi respectiv 1 logic
realizând condiţia fals şi adevărat în mod necondiţionat.
276 Roboţi industriali

Cuplarea cu robotul, pe ieşire, este realizată cu un decodificator DZ ce


selectează comenzile de acţionare ale robotului în conformitate cu
microinstrucţiunea curentă.
În mod normal, arhitectura unui astfel de automat este o arhitectură pe 4 biţi
dar, în funcţie de necesităţi, se pot adapta instrucţiuni cu formate convenabile
pentru acoperirea tuturor domeniilor variabilelor. Formatul curent al cuvântului în
memorie cuprinde patru câmpuri: codul de operare (codul microinstrucţiunii -
OPCOD), adresa variabilei de intrare, adresele salt si codul variabilelor de ieşire.

OP.COD ADR.INTRĂRI ADR.SALT ADR. IEŞIRE


3 biţi k1 biţi s biţi k 2 biţi

k1  log 2 N
k 2  log 2 M

Variabile de intrare

N 2 1 0
MUX

Flag
CONTROLER

3 Adresa
OPCOD

MEMORIE
MICROPROGRAM

DZ
0 1 2
M

Variabile de iesire

Figura 8.24
Capitolul 8. Sisteme de conducere cu logică flexibilă 277

Evoluţia simplă a acestor tipuri de automate face ca cinci tipuri de


microinstrucţiunii să fie, în general, suficiente pentru acoperirea tuturor condiţiilor
de funcţionare. Datorită acestui fapt, lungimea codului de operare este limitată la
trei biţi ceea ce permite realizarea următoarelor funcţii generale:
* incrementare condiţionată a adresei (codului de stare)-microinstrucţiunea
HIC;
* salt condiţionat la o adresă specificată - microinstrucţiunea HBC;
* incrementare necondiţionată a adresei- microinstrucţiunea IUC;
* salt necondiţionat la o adresă specificată - microinstrucţiunea BUC;
* incrementare pe o anumită valoare logică a deciziei Flag şi salt de adresă
pe valoarea complementara a deciziei – microinstrucţiunea IBC.
Cei trei biţi ce definesc OPCOD-ul împreună cu variabila Flag determină
funcţia controlerului şi implicit adresa finală generate de aceasta. Analiza
instrucţiunilor prezentate mai sus indică doua regimuri funcţionale de bază:
incrementarea codului adresei (realizata cu un proces de numărare (COUNT)) şi
salt la o adresa specificată BRANCH) (realizată printr-un proces de încărcare
(LOAD)).

Nr OPCOD
. OC2 OC1 OC0 Flag C L
Mnemonic Comentariu
crt
.
0 0 0 0 0  AU    AP 
0
1 HIC 1 1  AU    AP   1
0
0 0 1 0 0 0  AU    AP 
2 HBC 1 0 1  AU    ADR.BRANCH 
0 1 0 0 1 0
3 IUC
1 1 0 }  AU    AP   1
0 1 1 0 0 1
4 BUC
1 0 1 }  AU    ADR.BRANCH 
1 0 0 0 1 0  AU    AP   1
5 IBC 1 0 1  AU    ADR.BRANCH 
Tabelul 8.4

Analiza detaliată a microinstrucţiunilor este prezentată în tabelul 8.4. Pentru


exemplificare , să considerăm microinstrucţiunea HIC, OPCOD 000. Pentru
Flag=0, adresa următoare (AU) este identică cu adresa prezentă (AP) (funcţia
HOLD) iar pentru Flag=1 conţinutul adresei prezente este incrementat (funcţia
COUNT). La microinstrucţiunea HBC, pentru Flag=0 se păstrează adresa (HOLD)
278 Roboţi industriali

iar pentru Flag=1se realizează încărcarea paralel cu adresa de salt (BRANCH),


funcţia LOAD. Următoarele doua microinstrucţiunii realizează fie incrementarea
(IUC), fie încărcarea (BUC) indiferent de valoarea logică a deciziei. Ultima
instrucţiune IBC determină o funcţie LOAD pentru Flag=1.

OC1 OC1
OC OC0
2
OC2 OC0
Flag 0 0 1 0 Flag 1 0

Flag - - - Flag - - -

C L

Figura 8.25

Cele două funcţii de bază COUNT (C) şi LOAD (L)din tabelul 8.4 pot fii
redate sintetic în tabelele de sinteza logică (fig. 8.25).
Implementarea controlerului este posibilă printr-una din procedurile curente
de proiectare logică. S-a preferat sinteza prin circuite multiplexoare, câte unul
pentru fiecare funcţie C respectiv L (fig. 8.26), ieşirile acestora controlând funcţiile
de numărare şi respectiv încărcare ale unui numărător NUM. Starea numărătorului
poate fi deci obţinută fie prin incrementarea (C) fie prin încărcarea paralel (L) a
adresei de salt (BRANCH).

Flag
+5V +5V

7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0

Adresa de salt OPCOD


MUX (BRANCH) MUX

OPCOD 3

C NUM L

Adresa

Spre memoria
microprogramata
Capitolul 8. Sisteme de conducere cu logică flexibilă 279

Figura 8.26

Celelalte elemente ale arhitecturii automatului reprezintă componente


integrate curente de tip MSI sau LSI şi care pot fii preluate direct sau cu mici
adaptări. În general, se caută realizarea acestor automate sub forma unor arhitecturi
standard organizate în jurul unor magistrale pe 4 biţi, pentru eventuale extensii
preferându-se conexiuni de tip bit-slice.
Implementarea sistemului de conducere a unui robot cu un automat de acest
tip necesită parcurgerea aceloraşi etape ca cele determinate la automatele cu
PROM-uri, având în plus câteva particularităţi specifice:
* Se construieşte organigrama stărilor, din protocolul de funcţionare al
robotului, şi se modifica structura acesteia pentru a obţine compatibilitatea
traseelor logice cu instrucţiunile automatului. Eventualele incompatibilităţi se
rezolvă prin introducerea unor stări suplimentare. Fiecare cod de stare defineşte o
adresa a memoriei.
* Se codifică toate variabilele de intrare (de la robot) şi de ieşire (spre
comenzile robotului).
* Se determină formatul microinstrucţiunilor utilizate ţinând cont de
lungimea codurilor adoptate.
* Pentru fiecare cuvânt de adresa de determină microinstrucţiunea
corespunzătoare.
* Se înscrie întreaga informaţie în memorie şi se interconectează toate
componentele conform arhitecturii de bază.
Pentru exemplificarea procedurii se va relua problema implementării
sistemului de conducere al robotului descris în 8.1.2. Organigrama modificată şi
codurile de stare adaptate sunt prezentate in fig. 8.27.
280 Roboţi industriali

0001
1

0 1
Start
0010
*
1

0 1
GI
0010 0011
+
2 IG 3 X

0
Lx2,Ly1
1
0100
4 X ,Y+
-
0110

6 0
Lx1,Ly2
1
0101
5 Y-

1
1 1 0
Lx1Ly2
a

OPCOD ADR.MUX ADR.BRANCH COD IESIRI


3b 4b 4b 4b
b
Capitolul 8. Sisteme de conducere cu logică flexibilă 281

Variabile de intrare Cod Variabile de iesire Cod

START 0 0 1 0 IG 0 0 0 1
GI 0 0 1 1 X+ 0 0 1 0
2
Lx Ly
1
0 1 0 0 X  ,Y  0 0 1 1
Lx L
1 2 Y
y
0 1 0 1 0 1 0 0
1 1
L x L y
0 1 1 0
c
Figura 8.27

S-a utilizat un format asociat unei arhitecturi pe 4 biţi (nu neapărat necesar)
din considerentele expuse mai sus.
Implementarea organigramei utilizează două tipuri de microinstrucţiunii:
IBC în stările 1, 1’, 3, 4, 5 şi BUC în stările 2 şi 6. Starea este introdusă
suplimentar pentru a permite aplicarea microinstrucţiunii IBC în starea 5 unde
funcţia de salt se realizează pe traseul 5  5 iar incrementarea pe traseul 5  6 .
Întregul sistem de conducere este prezentat în fig. 8.28. Se observă că
mărimile de intrare sunt introduse prin complementare întru-cât codificarea prin
IBC este realizată complementar definirii acestei microinstrucţiunii (tabelul 8.4). În
figură este prezentată detaliat şi informaţia conţinută în memorie. De exemplu,
adresa 0001 (starea 1) identifică un cuvânt în care primul câmp (3 biţi) determină
microinstrucţiunea IBC, următorul câmp (4 biţi) identifică codul mărimii de intrare
START, al treilea câmp determină adresa de salt 0001 (starea 1) iar ultimul câmp,
asociat variabilei de ieşire primeşte cod 0000 întru-cât stării 1 nu i se asociază nici
o ieşire. Toate celelalte cuvinte din memorie sunt construite după aceeaşi
procedură.
282 Roboţi industriali

START
L2XL1Y
L1XL2Y
L1XL1Y

+5V
GI
15 ……….6 5 4 3 2 1
MUX
0

CONTROLER

MEMORIE
0001 100 0010 0001 0000
0010 100 0011 0111 0000
0011 100 0100 0011 0010
0100 100 0101 0100 0011
0101 100 0110 0101 0100
0110 011 0001 0001 0000
0111 011 0001 0001 0001

DZ
0 1 2 3 4 5 …. 15

-
IG X+ Y+ Y
X-
Figura 8.28

8.2.2. Automate cu stivă

Evoluţiile unui robot industrial reprezintă, de foarte dese ori, cicluri


tehnologice, condiţionate de factori externi sau de mărimi interne proprii robotului.
Într-o interpretare mai generală a acestor evoluţii, acestea pot fi considerate ca
secvenţe funcţionale de tip subrutină în cadrul unor programe de conducere cu o
structură riguros definită.
Capitolul 8. Sisteme de conducere cu logică flexibilă 283

De exemplu, evoluţiile de tipul celor prezentate în figura 8.29 necesită apelul


succesiv al unor subrutine şi revenirea din acestea ori de câte ori condiţiile de
finalizare (CF) sunt realizate.

s1

s2

s3
s6'

s4 s1"
'
s 2
' s2"
s5 s 3

s6 s4' s3"

s5' CF” s4"


s6'
CF’

Figura 8.29

Nr. OPCOD Flag Comentariu


crt. OC2 OC1 OC0
6 1 0 1 0  AU    AP   1
1  AU    ADR.BRANCH ; STIVA   AP   1
7 1 1 0 0  AU    ADR.BRANCH 
1  AU    STIVA 
Tabelul 8.5

Implementarea unor automate care să asigure o funcţionare pe principiul


stivei reclamă în primul rând introducerea, pe lângă instrucţiunile folosite în mod
curent, a unor instrucţiuni specifice funcţiilor de tip subrutină. În mod curent, se
utilizează două instrucţiuni de acest fel (tabelul 8.5), BSR (BRANCH
SUBRUTINE) şi RSR (RETURN SUBRUTINE).
284 Roboţi industriali

În microinstrucţiunea BRS este testată condiţia Flag, dacă Flag=0 se


realizează incrementarea normală a adresei, dacă Flag=1 se face un salt la adresa de
început a subrutinei, în stivă memorandu-se codul (AP)+1. A doua
microinstrucţiune asigură revenirea din subrutină: pentru FLAG=0 se rămâne în
subrutină executându-se un salt la adresa de început a subrutinei, iar pentru
FLAG=1 se revine în subrutina superioară pe baza adresei memorată în stivă.
Se observă deci, că funcţiile implicate de lucrul în subrutină al acestui
automat sunt aceleaşi cu ale oricărui calculator numeric. Diferenţa este numai de
ordin cantitativ dimensiunile registrului stivă fiind mult mai modeste. În mod
curent, se poate utiliza o stivă de 4 registre a 4 biţi (pentru o magistrală similară)
fig.8.30.

Stiva (4x4)

B S0 A Functie
Stare
S0 0 0 neschimbata
CONTROL
S1 0 1 PUSH
C 1 0 POP
1 1 *

Figura 8.30

Arhitectura automatului (fig.8.31) este similară cu cea discutată în cadrul


configuraţiei de bază, aceasta conţinând în plus o magistrală pentru adrese, în cazul
lucrului cu o consolă sau întru-un sistem de întreruperi (adrese de fortaj). În
schimb, apare cu totul diferită structura controlerului (fig.8.32). Se remarcă în
primul rând complexitatea configuraţiei şi numărul relativ mare de variabile de
control implicate.
Controlerul este realizat sub forma unei configuraţii de circuite grupate în
jurul unui multiplexor MUX. Sursa multiplexorului poate fi construită de: adrese
de fortaj, adrese de salt (BRANCH), adresa curenta şi stivă. Stiva, la rândul ei, este
încărcată de la un bloc sumator funcţionând în regim de incrementare prin controlul
variabilei de transport c. Ieşirea multiplexorului este preluată de un numărător care
realizează funcţiile uzuale de încărcare şi incrementare. Controlul acestor circuite
Capitolul 8. Sisteme de conducere cu logică flexibilă 285

este realizat de un decodificator D implementat, în mod curent, printr-un PROM.


Aceasta primeşte ca vector de adresă variabila.

Intrari
+5V

N 2 1 0 Adrese de salt
Adrese de fortaj
MUX

Flag
OPCOD CONTROLER

MEMORIE

DZ

Iesiri

Figura 8.31
286 Roboţi industriali

ci


Flag S0
Adresa Adresa
OC2 S1 STIVA salt de fortaj

OC1 D
A
OC0
3 2 1 0
B
MUX

C
L NUM

Adresa

Figura 8.32

Flag şi OPCOD-ul microinstrucţiunii şi generează la ieşire cele şapte


semnale de control interne, c1 , S, S, A, B, C, L conform cu funcţiile impuse de
fiecare microinstrucţiune (tabelul 8.6).
Primele şapte microinstrucţiunii au funcţii deja analizate, ultima LJA
(LOAD JAM ADRESS) este utilizată în regimuri de lucru cu operator realizând
incrementarea normală a adresei în cazul în care FLAG=0 sau salt la o adresa de
forţare (JAM) cu memorarea în stivă a adresei următoare dacă condiţia FLAG este
1.

Mnemonic OPCOD Flag C L A B S0 S1


OC 2 OC1 OC 0 C1
1 HIC 0 0 0 0 0110------
1 10----------
2 HBC 0 0 1 0 0110----
Capitolul 8. Sisteme de conducere cu logică flexibilă 287

1 0101----
3 IUC 0 1 0 0 10--------
1 10-------
4 BUC 0 1 1 0 0101-----
1 0 1 0 1- - - - - -
5 IBC 1 0 1 0 10------
1 0101---
6 BSR 1 0 1 0 1 0 - - -- - -
1 0101011
7 RSR 1 0 1 0 10------
1 0111100
8 LJA 1 1 1 0 10-------
1 0100011
Tabelul 8.6

8.2.3. Conducerea unui robot-manipulator prin automate cu stivă.

Pentru ilustrarea modului de utilizare a acestui automat, se va considera


sistemul de conducere al unui robot manipulator ce deserveşte o linie de acoperiri
galvanice (fig.8.38).

T1 T2 T3

J C1 C2 C3 C4 C5 C6 C7
Figura 8.33

În conformitate cu analiza efectuată în capitolul precedent, robotul preia piese


dintr-o cuvă, execută un ciclu de ridicare, deplasare la dreapta cu un pas, coborâre
cu menţinerea poziţiei în cuvă un timp prestabilit etc. Acest ciclu poate fi
interpretat ca o subrutină tehnologică în care parametrii sunt menţinuţi constanţi cu
excepţia timpului de tratare în cuvă. În fig. 8.34, organigrama de stări este defalcată
în două părţi: stările asociate fluxului tehnologic principal (1, 2, 3, ……, 7,….) şi
stările subrutinei (1’, 2’, 3’, 4’). Condiţia de trecere pe subrutină este dată de
decizia FT (final-timp), condiţie care marchează în acelaşi timp şi sfârşitul
subrutinei.
288 Roboţi industriali

0001 (subrutină)
1 D
a

0 1000
C1 R
1’
0010
2 Timp1 0
s

1 1001
FT b 2’ D
001 a
3 1 D 0
C*

0 1010
C3 3’ C
0100
4 Timp2 0
J
101
FT b 4’ 1 TIMP
0101 a
5 D 0
FT
0
C6
0110 b
6 Timp3

1
FT b
0111 a
7 D

Figura 8.34

Valoarea temporizării impuse din motive tehnologice diferă în fiecare ciclu, ceea
ce face necesara introducerea ei, în afara subrutinei, în starea ce precede subrutina.
Capitolul 8. Sisteme de conducere cu logică flexibilă 289

Datorită rolului deosebit al informaţilor de temporizare, acestora li se vor


aloca un timp special în formatul cuvântului din memorie. Se va considera ca o
lungime de 4 biţi este suficientă pentru acoperirea temporizărilor solicitate (tabelul
8.7). În consecinţă, formatul microinstrucţiunilor va fi

OPCOD ADR.INTR ADR.BRANCH COD COD


IEŞIRE TEMP
3b 4b 4b 4b 4b

Variabile de Cod Variabile Cod


intrare de
ieşire
C1 0010 D 0001
C2 0011 R 0010
0100 C 0011
C3
0100 TIMP 0100
C4 0101 L TIMP 0101
C5 0110 0110
C6 0111
1000
C7
1001
J 1010
s 1010
FT 1100
C*

Temporizări Cod timp


T3 T2 T1 T0
TIMP 1 1 0 1 0
TIMP 2 1 1 0 0
TIMP 3 0 1 1 0
290 Roboţi industriali

7
C  *
Uc
i 1
i

OPCOD ADR.INTRĂRI ADR.BRANCH COD IEŞIRI COD


TEMPORIZĂRI
3b 4b 4b 4b 4b
Tabelul 8.7

Adresa Structura cuvintelor în memorie


0001 100 0010 0001 0001 0000
0010 101 1011 1000 0110 1010
0011 100 0100 0011 0001 0000
0100 101 1011 1000 0110 1100
0101 100 0111 0101 0001 0000
0110 101 1011 1000 0110 0110
.
.
.
1000 100 1010 1000 0011 0000
1001 100 1100 1001 0001 0000
1010 100 1 0 0 1 1 01 0 0100 0000
1011 110 1011 1011 0101 0000
Tabelul 8.8
Capitolul 8. Sisteme de conducere cu logică flexibilă 291

ADR. C FT s J C7C6 C5 C4C3C2 C1 +5V


INTRĂRI
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

ADR. SALT

OPCOD CONTROLER

MEMORIE

INF. TEMPORIZARE

L TIMP N
DZ GT
0 1 2 3 4 5 6 7 …. 15

FT
TIMP
Figura 8.35

Variabile de ieşire cuprind cele patru comenzi D  S  R  C


pentrtu acţionarea robotului, o variabilă TIMP ce determină declanşarea
generatorului de tact ce formează baza de timp a sistemului şi o variabilă LTIMP
ce încecarcă codul temporizării dorite.
Configuraţia completă a sistemului de conducere este prezentată în fig. 8.35
iar structura detaliată a informaţiei în memorie se poate urmării în tabelul 8.8. Se
remarcă prezenţa unui circuit specializat pentru marcarea temporizărilor format
dintr-un numărător N încărcat în paralel din câmpul corespunzător al memoriei sub
controlul variavilei de încărcare LTIMP. În generatorul de tact GT ale cărui
impulsuri decrementează valoarea memorată în numărător. La atingerea timpului
impus, numărătorul N devine zero şi un circuit logic detectează starea respectivă
292 Roboţi industriali

formând totodată un semna FT (final timp) utilizat în logica de control a


automatului.
O remarcă deosebită trebuie alocată spaţiului redus de memorie utilizată
având în vedere complexitatea circuitului funcţional impus. Este o consecinţă
firească a utilizării facilităţilor oferite de configuraţiile cu stivă care asigură o mai
judicioasă utilizare a resurselor interne ale automatelor.

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