Capitolul 9
SISTEME DE CONDUCERECU AUTOMATE
PROGRAMABILE
Flexibilitatea, fiabilitea, insensibilitea la perturbaţii precum şi o serie de cerinţe privind facilităţile oferite la introducerea sau la modificarea programelor de lucru sunt câteva din caracteristicile de bază ce se impun la ora actuală echipamentelor de conducere pentru majoritatea aplicaţiilor ce utilizează roboţi industriali.
Într-o mare măsură, aceste cerinţe sunt acoperite de automatele programabile.
Un automat programabil este un sistem specializat destinat pentru tratarea problemelor de logică secvenţială şi combinaţională, simulând structurile logice de comandă prîntr-o configuraţie elastică, programabilă. Prin concepţia sa, automatul programabil este adaptabil pentru funcţionarea în mediu industrial, poate opera într-o plajă largă de temperatură şi umiditate, este uşor adaptabil la interfaţarea cu orice proces şi nu pune probleme deosebite privind formarea personalului de deservire datorită facilităţilor de programare oferite. Toate aceste caracteristici, la care se mai pot adăuga robusteţea generală a echipamentului şi preţul de cost relativ redus, fac ca automatele programabile să constituie o pondere importantă în sistemele de conducere ale roboţilor industriali.
9.1 Caracteristici generale
Arhitectura generală a unui automat programabil este desfăşurată în jurul unei magistrale de date la care sunt conectate circuitele de intrare – ieşire, unitatea centrală şi memoria sistemului (fig. 9.1).
Variabilele de intrare sunt realizate sub forma diverselor elemente de comandă şi măsurare incluse în sistemele operaţionale şi auxiliare ale roboţilor: limitatoare de pozitie, mărimi mecanice de la traductoare de deplasare incrementale sau absolute sau chiar de la sisteme de măsurare analogică după o conversie analog-numerică.
Capitolul 9. Sisteme de conducere cu automate rogramabile
Variabilele de ieşire dirijează acţionarea elementelor de execuţie de tipul contactoarelor, electrovalvelor, elementelor de afişare, etc.
Figura 9.1
Circuitele de interfaţă intrare-ieşire au rolul de a converti semnalele de intrare de diverse forme în semnale logice adaptate unitaţii centrale şi de a transforma semnalele logice ale unitaţii în semnale de ieşire corespunzătoare acţionării impusă de sistemul de forţă al robotului.
Unitatea de comandă coordonează toate transformările de date furnizate de proces, efectuează operaţii logice asupra datelor recepţionate şi asigură alocarea corespunzătoare a rezultatelor obţinute la ieşirile programate. De asemenea, executa şi o prelucrare de informaţie numerică de la proces, rezultatul acestor operaţii condiţionand starea operatorilor logici ai unităţii de control.
Unitatea de programare permite introducerea şi definitivarea programului în raport cu evoluţia robotului şi cu modificările impuse în secvenţele funcţionale de bază ale acestuia. Soluţiile adoptate de proiectanti cuprind două versiuni; o consolă autonomă cu memorie proprie sau o consolă ce opereaza împreuna cu automatul utilizând memoria acestuia. Prima variantă oferă avantajul unei programări simple, într-un birou de proiectare, a doua implică cuplarea directă la automat deci implicit programarea se realizează nemijlocit în intimitatea procesului tehnologic condus.
Unitatea centrală este, în principiu, o unitate logică capabilă să interpreteze un număr mic de instrucţiuni care exprimă funcţiile de bază într-un proces de conducere; instrucţiuni de evaluare a unor expresii booleeene cu păstrarea rezultatului la o variabilă din memorie sau la o ieşire, instrucţiuni de numărare sau temporizare, instrucţiuni aritmetice de adunare, scădere, comparaţie, etc. De
Memorie
Bloc de control
Bloc de oper logic
Unitate de programare
Unitate centrală
Unitate de comandă
Cir
cuit
e de
in
terf
aţă
ieşi
re
Cir
cuit
e de
in
terf
aţă
intr
are
Variabile de intrare Variabile
de ieşire
294
Roboţi industriali
asemenea, pot fi utilizate instrucţiuni de salt condiţionat, instrucţiuni de subrutine şi instrucţiuni de indexare.
Executarea instrucţiunilor este ciclică, ceea ce determină o simplificare considerabila a structurii logice interne şi evită introducerea unui sistem de întreruperi prioritare. Ţinănd cont de constantele de timp proprii acţionării roboţilor industriali, se impune ca timpul de baleaj al unui program de conducere să fie inferior celei mai mici constante de timp. În acest fel, se asigura preluarea tuturor informaţiilor privind elementele semnificative ale mişcarii şi interpretarea lor imediată.
Memoria automatelor programabile stocheaza programe de date şi este, în generel, o memorie de dimensiune mica, între 1k şi 16k cuvinte, standardizate de obicei la 8 sau 16 biţi. Memoria este segmantată în zone: una rezervată variabilelor de intrare-ieşire, alta variabilelor ce definesc starea internă a automatului şi ultima este destinata programului ce urmează să fie executat.
O caracteristică esenţială a automatelor o constituie simplitatea limbajului de programare. O persoană, nefamiliarizartă cu tehnici specifice de informatică, poate sa programeze usor şi rapid un automat. Programarea constă într-o scriere directă a unor secvenţe de instrucţiuni sau de ecuatii plecând de la o diagramă, organigrame de stări, expresii logice, etc. Unele automate utilizează, pentru programare, un limbaj similar unei logici cablate, altele preferă limbaje simbolice de tip boolean, ceea ce le conferă o suplete deosebită.
9.2 Sistemul de interfaţă automat - robot
Conectarea unui automat la dispozitivele de intrare – ieşire ale unui robot se realizeză prin intermediul unor circuite de interfată ce asigură compatibilitatea între tensiune şi putere a semnalelor transmise. Aceste circuite primesc de la sistemele de măsurare şi senzoriale ale robotului informaţia de măsurare corespunzătoare sau genereazaăcatre sistemul de acţionare al acestuia mărimile de comandă adecvate. Primul tip de circuite defineşte sistemul de interfaţare pe intrare al automatului, iar al doilea pe ieşire.
Mărimile transmise pot reprezenta variabile de tip secvenţial sau variabile numerice în conformitate cu structura algoritmilor de comandă utilizaţi şi cu modalităţile de prelucrare internă, în automat, a informaţiei de operare. Aceste mărimi sunt captate de la robot sau sunt transmise către acestea în mod periodic, conform procedurii de dialogare utilizată de automat. Trebuie subliniată, înca odata, absenţa unui sistem de întreruperi în structura internă a automatului ceea ce
295
Capitolul 9. Sisteme de conducere cu automate rogramabile
impune interogarea periodică a mărimilor de intrare (de la robot) şi activarea tot periodicaă a canalelor de ieşire (spre robot).
Figura 9.2
Pentru realizarea unor facilităţi privind sistemul de adresare a acestor variabile, mărimile corespunzătoare sunt organizate pe module, un modul cuprinzând un număr bine precizat de variabile în corelaţie cu dimensiunile magistralelor utilizate şi cu mărimea câmpului de variabile.
Dialogul automat – robot poate fi realizat în trei moduri: 1) la fiecare început de ciclu program sunt achiziţionate toate mărimile de intrare, se generează toate iesirile determinate în ciclul precedent iar ulterior se tece la execuţia programului propriu-zis; 2) sunt achiziţionte intâi intrările, se execută programul şi se generează ieşirile obţinute după noua execuţie a programului; 3) intrările şi ieşirile sunt achiziţionate sau generate la cerere, în conformitate cu structura logică a programului.
9.2.1. Sistemul de interfaţă pe intrare
Informaţiile de intrare în automat sunt reprezentate de o serie de variabile de tipul “tot sau nimic” ce definesc anumite poziţii sau stări funcţionale ale robotului precum şi de variabilele numerice obţinute la ieşirea traductoarelor de deplasare. Aceste mărimi definesc, în ansamblu, cămpul de variabile de intrare ( I ) ce constituie sursa unor operanzi primari în prelucrarea ulterioară a informaţiei.
Selecţia acestor mărimi se obţine prin mai multe nivele de adresare în funcţie de numărul de intrări aplicate şi modul lor de organizare. În figura 9.3 este
Magistrală de date
Magistrală de adrese
Magistrală de control
INTERFAŢĂ IEŞIRE
INTERFAŢĂ INTRARE
Intrări secvenţiale
Intrări numerice
Ieşirisecvenţiale
Ieşirinumerice
296
Roboţi industriali
prezentată o schemă generală de adresare pe doua nivele. Cei biţi ai vectorului
de adresă sunt defalcaţi în
unde şi realizează adresarea pe cele două nivele de adresa, respectiv.
Activarea celor două linii de multiplexoare este controlataă prin semnalele de validare şi .
Figura 9.3
Pentru realizarea compatibilităţii electrice cu magistralele automatului semnalele primare de la intrare sunt prelucrate în circuite specializate CI. Acestea asigură adaptarea de impedanţa necesară , separarea galvanică a sursei primare, traductorul, de circuitele interne ale automatului, formarea semnalului electric în tensiune la parametrii acceptaţi de logică interna a acestuia etc.
Circuitul reprzentat în fig. 9.4 constituie o configuraţie utilizată pe larg în acest scop [21,54]. Acesta contine un prim grup de elemente ce asiguraă detecţia semnalelor pozitive cu o amplitudine suficient de mare (deci eliminarea semnalelor pozitive de amplitudine redusă), diodele D şi DZ şi un circuit de filtrare de tip
trece-jos, , , . A doua parte a circuitului este obţinută dîntr-un formator cu
prag de tip trier Schmit ce permite obţinerea caracteristicilor rectangulare şi de nivel constant pentru semnalele prelucrate. Cele două părţi sunt cuplate prîntr-un
Magistrală de date
Magistrală de adrese
Magistrală de control
Ak
1k2k1v 1
2MUX
11MUX 2
1MUX PMUX1
CI CI CI CI CI CI
11I 1
kI 21I 2
kI pI1p
kI
2v
297
Capitolul 9. Sisteme de conducere cu automate rogramabile
element optocuplor OC ce asigură totodată separarea galvanică fată de sursa primară.
Sistemul acesta asigură transferul mărimilor de intrare pe magistrala de date a automatului. Dacă prelucrarea logică internă a automatului este numai de tip secvenţial, magistrala de date cuprinde o singură linie pe care vehiculează informaţia respectivă. În cazul în care procesorul automatului este de tip numeric
atunci magistrala cuprinde în mod curent 8 linii . Variabilele de
intrare de tip secvenţial sunt preluate de linia iar vectorul de intrare numeric
este transferat în paralel pe cele 8 linii ale magistralei.
Figura 9.4
Robotul poate accepta ca variabile de tip secvenţial toate mărimile generate după principiul “tot sau nimic’, deci limitatoare de poziţie, limitatoare de cap de cursă, senzori de proximitate, anumiti senzori tactili, traductoare de forţă – moment cu prag etc. Toate aceste mărimi sunt organizate pe module şi conectate direct, sau dupa câteva adaptări, la bornele de intrare ale interfeţei.
Variabilele numerice provin direct din traductoarele de măsurare absolute sau din circuitul numeric (numărătorul de impulsuri) asociat măsurii incrementale. În această categorie pot fi incluse, de asemenea, mărimile furnizate de traductoare senzoriale de tip analogic după conversia acestora în mărimi numerice. Se pot enumera astfel traductoarele de deplasare de tip potentiometric, majoritatea senzorilor tactili de tip “piele artificială”, traductoarele de fortă – moment etc.
9.2.2. Sistemul de interfaţă pe ieşire
Transferul datelor de la automat spre sistemul de acţionare al robotului sau spre anumite dispozitive ale instalaţiei tehnologice se realizează prin tehnici de demultiplexare succesivă, în funcţie de numarul de variabile controlate . Variabilele de ieşire furnizate de automat pot fi de tip secvenţial pentru acţionarea unor circuite de forţă cu sistem de comandă pe poartă (tiristoare, triacuri), a unor
D DZ R1 R2
C1ui OC
+
TS
uo
298
Roboţi industriali
relee intermediare, contractoare, etc., fie de tip numeric pentru controlul unor bucle de reglare din sistemul de conducere al robotului.
În fig. 9.5 este prezentat un sistem de interfaţă cu decodificarea paralel a
vectorului de adresă. Cei biţi de adresă fiind segmentati în două grupe cu şi
respectiv biţi. Fiecare segment serveşte pentru adresarea demultiplexoarelor
DMUX1, DMUX2, funcţionarea în paralel a acestora permiţând selecţia simultană a căilor de activare pentru circuitele ieşirilor secvenţiale şi numerice. Propriu-zis, informaţia de ieşire veehiculată pe magistrala de date este înscrisă în circuite de
memorie de tipul bistabilelor D (componentele secvenţiale cuplate la linia ) şi în
registre de ieşire (commponentele numerice). Activarea funcţiei de scriere în aceste componente se obţine prin controlul semnalului de tact cu circuitele demultiplexoare menţionate şi prin semnalele de validare VM emise de magistrala de control.
Figura 9.5
Cuplarea sistemului de interfaţă la robot se realizează prin circuite de ieşire specializate CE ce permit adaptarea electrică cu sistemul de acţionare al robotului, realizarea niveleului de putere solicitat de circuitele de fortă precum şi separarea galvanică a etajelor .
Circuitul este construit sub forma unui etaj amplificator de tip Darlington (fig. 9.6) la care comanda este dată prîntr-un element optocuplor OC. În ieşirea
Magistrală de controlMagistrală de adreseMagistrală de date
DMUX1 DMUX2VM VM
kA
k2k1
D0
MCEMCE
DQ
DQ
DQ
DQ
DQ
DQ
DQ
MCE
E0 E1 Ep-110EN 1
7EN pEN 0pEN 7
Ieşiri scalare Ieşiri numericee
299
Capitolul 9. Sisteme de conducere cu automate rogramabile
amplificatorului este montată sarcina propriu-zisă, protejată la supratensiuni prîntr-o diodă de protecţie D.
Aceste configuraţii de circuite sunt utilizate de obicei la transferul variabilelor de tip secvential, informaţiile numerice sunt transferate direct în circuitele de control numeric, forma acestora fiind compatibilă cu sistemele de prelucrare utilizate în buclele de conducere numerică.
Ansamblul acestor mărimi defineşte câmpul variabilelor de ieşire secvenţiale E sau numerice EN. În majoritatea programelor de conducere, aceste mărimi sunt generate la sfârsitul unor operaţii logice sau aritmetice şi marchează de obicei finalizarea unor secvenţe funcţionale. În unele cazuri, prelucrarea logică executată într-o anumită fază necesită apelarea unor variabile de ieşire determinate într-o fază necesită apelarea unor variabile de ieşire determinate într-o fază anterioară. Pentru a facilita aceste operaţii, unele automate conţin o memorie suplimentară (RAM) în care se înscriu valorile ieşirilor simultan cu înscrierea în circuitele de ieşire. Se obţine astfel în memorie o imagine a mărimilor de ieşire ce poate constitui o sursă pentru operanzii implicaţi în programele automatului.
Figura 9.6
9.3. Automate programabile cu operare scalară
Automatele din această clasă de sisteme realizează prelucrarea logică a unor variabile secvenţiale scalare a căror reprezentare numerică este redată într-un singur bit. Aceste variabile sunt intâlnite frecvent într-o clasă largă de roboţi şi manipulatoare atât ca mărimi de comandă pentru sisteme de acţionare de tipul contactelor, releelor, tiristoarelor sau electroventilelor cât şi ca mărimi de intrare, furnizte de o serie de traductoare sau senzori ce operează după principiul “tot sau nimic”.
OC
D
Rsarcină
T
ui
300
Roboţi industriali
Din punct de vedere funcţional, aceste echipamente acoperă toate structurile de comandă asimilabile unor automate finite combinaţionale sau secvenţiale, structuri intâlnite la numeroase tipuri de roboţi industriali. Toate aceste elemente, la care se adaugă facilitaţile deosebite de implementare a programelor de conducere, robusteţea echipamentului precum şi preţul de cost destul de modest fac ca automatele din această categorie să reprezinte o soluţie atractivă pentru utilizarea lor într-un sistem de conducere.
9.3.1. Structura de bază
Configuraţia de bază a acestui automat derivă din caracteristicile generale ale unei prelucrări scalare de informaţie [54,77]: evaluarea rapidă a semnalelor furnizate de robot, prelucrarea logică a acestor semnale, memorarea rezultatelor acestor prelucrări sau generarea unor comenzi spre ieşire, către sistemul condus. În acest sens, arhitectura acestui automat va cuprinde: modul de intrare-ieşire pentru interfaţarea cu exteriorul, un procesor pentru prelucrare logică şi blocuri de memorie pentru inmagazinarea programelor şi datelor prelucrate.
Structura generală a acestui automat se poate urmări în figura 9.7. Toate blocurile sistemului sunt conectate la o magistrală (linie) de date pe care vehiculează informaţia de intrare-ieşire şi informaţiile stocate în memorie sau prelucrate în unitaţile interne ale automatului.
Programele sunt introduse într-o memorie MP (EPROM – 4k x 16) adresabilă de la un numărător de adrese NA. Instrucţiunile sunt transferate într-un registru RI şi decodificate în decodificatorul DI. În funcţie de tipul instrucţiunii prelucrate, un circuit de control CC asigură transferul necesar de informaţie iar unitatea logică UL realizează prelucrarea logică specificată. Sistemul conţine o memorie MI 91k x 1) ce permite stocarea rezultatelor operaţiilor logice efectuate. Aceasta constituie suportul de stare pentru implementarea modelelor de automate finite ce constituie baza algoritmilor de conducere.
Dialogul cu exteriorul automatului este realizat cu module de interfaţă pentru variabile de intrare şi ieşire, de tipul celor discutate în paragraful precedent. Sistemul cuprinde, de asemenea, un bloc de temporizare ce permite programarea unor regimuri de lucru dependente de o bază de timp sau a unor funcţii de contorizare a unor evenimente de la proces.
301
Capitolul 9. Sisteme de conducere cu automate rogramabile
Figura 9.7
O instrucţiune a automatului are 16 biţi şi cuprinde trei părţi principale: codul operatiei, câmpul variabilei apelate (operandul) şi adresa acesteia [21].
Cod operaţie Câmp operand Adresă operand
Primii patru biţi desemnează codul operaţiei ce urmează a fi
efectuată, urmatorii biţi identifică câmpul operandului, variabila
respectivă putând fi o variabilă de intrare I, o variabilă de ieşire E, o variabilă internă, din memorie, M, sau o variabilă obţinută prin operaţii de numărare – temporizare T. (tabelul 9.1). Ultimii 10 biţi definesc adresa efectivă a operanzilor, deci aceste sisteme pot opera cu cel mult 1024 mărimi de intrare, ieşire şi interne.
Cei patru biţi de cod permit selectarea a 16 operaţii logice, interpretarea acestora şi execuţia lor fiind realizate în blocuri RI, DI şi unitatea logică UL. Unitatea logică este realizată în sistemul cu acumulator astfel incât rezultatul fiecărei prelucrări logice este memorat într-un registru specializat, un acumulator. Ţinând cont de variabilele de tip scalar implicate în aceste operaţii, rolul de
Magistrală (linie de date)
Magistrală de adrese
Magistrală control
GTGS
CC DI RI MP
NA
CONSOLĂ
PROGRAM
MIUL
bloc N/T Module I Module E
I1 Ik E1 Ek
302
Roboţi industriali
acumulator îl va juca la aceste sisteme un bistabil, notat convenţional prin A (acumulator).
Tabelul 9.1. Variabilele automatului
Prelucrarea informaţiei continută într-o instrucţiune cuprinde un număr bine precizat de secvenţe, executate ciclic într-o succesiune impusă. Aceste cicluri, definite în mod curent ca cicluri masină, servesc pentru structurarea circuitelor de control, a generatoarelor de stări şi de tact (GS şi GT). Ţinând cont de simplitatea operaţiilor realizate, un astfel de automat opereaza într-un singur ciclu masină definit prin secvenţele:
1) se extrage instrucţiunea din memorie;2) se decodifică câmpurile instrucţiunii;3) se extrag datele din adresele specificate ;4) se execută operaţia logică specifică şi se memorează rezultatul;Ultima secvenţă implică memorarea rezultatului fie în bistabilul acumulator
A, fie în memorie sau în modulele ieşire şi temporizare.
9.3.2. Instrucţiunile automatului
Cei patru biţi ai codului de operare indică posibilitatea utilizarii a 16 instrucţiuni. Aceste instrucţiuni pot fi grupate în:
- instrucţiuni de transfer de date;- instrucţiuni de prelucrare logică;- instrucţiuni speciale;Instrucţiunile de transfer determină o deplasare dirijata a informţiei,
existentă într-o zonă a automatului, spre anumite elemente de memorie. Prin acest transfer se realizează, pe de o parte, detectarea schimbărilor de stare a unor
303
Capitolul 9. Sisteme de conducere cu automate rogramabile
semnale de intrare sau ieşire (memorate temporar) sau din memorie iar, pe de altă parte, acestea permit salvarea unui rezultat al unei operaţii logice anterioare.
Aceste modalităţi de transfer sunt realizate prin instrucţiunile:
1) LD Adr XLDC Adr X
2) STO Adr XSTOC Adr X
Instrucţiune LD (LCD) realizează încărcarea în bistabilul A a ultimei valori (sau a complementului ei) ce defineste o variabila de intrare I, memorie internă M, numărare – temporizare T sau iesire E (imaginea canalelor de ieşire în memoria automatului), identificate prin adresa generală (adr X).
A doua instrucţiune determină transferul valorii logice memorate în bistabilul A într-o locaţie de adresă ( ), unde X poate fi o variabila de ieşire, memorie sau de numărare-temporizare.
Instrucţiunile logice ale automatului permit executarea unui număr minim de operaţii logice ce asigură acoperirea complectă a oricărei funcţii booleene. Aceste instrucţiuni definesc o operaţie logică în care un operand este intotdeauna bistabilul A, al doilea operand X este o variabilă de intrare, memorie, numărare-temporizare sau imaginea în memorie a canalelor de ieşire , iar rezultatul final este memorat în A.
3) AND adr XANDC adr X
Instrucţiunea realizează funcţia ŞI între conţinutul bistabilului A şi operandul X (sau complementul acestuia).
304
Roboţi industriali
4) OR adr XORC adr X
unde se realizează funcţiile
5) XOR adr X
determină funcţia logică SAU EXCLUSIV
6) CMAZA
Aceste instrucţiuni sunt asociate bistabilului A determiând complementarea
acestuia ,
sau aducerea sa la valoarea logică 0.
Implementarea printr-un automat a unor funcţii de tip secvenţial impune condiţionarea explorării instrucţiunilor din program de anumite rezultate ale unor operaţii anterioare. Acestea implică introducerea unor instrucţiuni speciale de salt.
7) J AdrJC Adr
Instrucţiunea J şi JC determină salt în desfăsurarea programului la adresa definită prin Adr. Prima provoacă salt necondiţionat de conţinutul bistabilului A. Dacă A=1 saltul se produce , dacă A=0 , se execută instrucţiunea următoare .
Pentru facilitarea unor operaţii de ieşire se utilizează un set de instrucţiuni care aduc o variabilă adresată în starea logică 1 sau 0 .
305
Capitolul 9. Sisteme de conducere cu automate rogramabile
8) S Adr XR Adr X
Instrucţiunile determinţ funcţia SET (inscriere 1 logic) respectiv RESET (înscriere 0 logic) asupra locaţiei definită prin ( ) în funcţie de starea logică a bistabilului A.
Dacă conţinutul bistabilului este 0 funcţiile respective devin inoperante.
9.3.3. Implementarea programelor de conducre
Având ca referinţă configuraţia hardware oferită de automat şi setul de instrucţiuni al acestuia se poate trece la construirea programelor de conducere ale unui robot. Această implementare poate fi sintetizată în câteva etape
1) descrierea complectă a condiţiilor de funcţionare ale robotului, precizarea tuturor secvenţelor funcţionale, a circuitelor de lucru precum şi a regimurilor specifice de operare. Trebuie prezentate detaliat toate variabilele ce definesc poziţia robotului, traductoarele utilizate, aspecte legate de calitatea semnalelor furnizate şi modul lor de interpretare. În condiţiile existenţei unui sistem senzorial, trebuiesc analizate semnalele generate de acesta şi modificările impuse regimurilor de lucru normale. Se impune o analiză riguroasă a sistemului de acţionare al robotului precizându-se modalitaţile de comandă, caracteristicile semnalelor, parametrii acestora etc.
2) analiza configuraţiei automatului astfel încât acesta să acopere cantitativ şi calitativ funcţionarea robotului. Acesta revine la stabilirea necesarului de memorie, a dimensiunii modulelor de intrare-ieşire şi a compatibilităţii electrice a semnalelor. Se impune, de asemenea precizarea condiţiilor industriale de lucru ale automatului, nivelul perturbaţiilor externe, regimurile de alimentare electrice etc.
3) elaborarea documentului sursă sub forma unei organigrame de stări care să acopere toate condiţiile formulate în etapa 1. În acest sens organigrama trebuie să redea detaliat stările funcţionale, condiţiile de comutare de la o stare la alta, mărimile de ieşire generate în fiecare stare, ciclurile, regimurile de lucru de tip subrutina etc.
306
Roboţi industriali
4) se aloca variabile în automat I,E,M care să acopere semnalele de intrare furnizate de robot, variabilele de comandă pentru sistemul de acţionare al robotului şi variabilele de stare, respectiv.
5) Se scrie programul de conducere cu setul de instrucţiuni al automatului. În principiu, această scriere trebuie să parcurgă urmatoarele etape:
a) instrucţiuni pentru iniţializarea stărilor;b) instrucţiuni pentru acoperirea fiecărei stări;c) instrucţiuni pentru simularea tuturor traseelor logice
din organigramă.
Figura 9.8
De obicei, condiţiile de iniţializare impun aducerea în starea 1 logică a variabilei din memoria M asociată stării iniţiale a automatului şi stergerea tuturor celorlalate variabile de stare.
Instrucţiunile pentru acoperirea unei strări trebuie să redea toată informaţia continută în această condiţiile de activare a stării în momentul când robotul intră în ea şi dezactivarea acesteia când este depăsita şi generarea funcţiilor de ieşire către sistemul de comandă al robotului, specificându-se fazele de anclasare (valoarea 1) ale acestora şi de declanclaşare (valoarea 0).
Z1
X1
Z2
X2
Z4
X3
Z3
3
1
4
3
0 1
0 1 1 0
a b
Stări Variabile M1 M 0012 M 0023 M 0034 M 004
Intrări Variabile Ix1 I 001x2 I 002x3 I 003x4 I 004
Ieşiri Variabile EZ1 E 001Z2 E 002Z3 E 003Z4 E 004
307
Capitolul 9. Sisteme de conducere cu automate rogramabile
Aceste condiţii sunt realizate prin scrierea unui set de instrucţiuni ce implementează:
- apelarea din memorie a variabilei M ce corespunde stării;- stergerea conditionată a tuturor variabilelor M asociate stărilor ce preced
starea respectivă;- stergerea conditionată a tuturor variabilelor de ieşire E generate în stările
precedente;- generarea variabilei de ieşire E asociată stării.
Pentru exemplificare, se va considera o evolutie descrisă prin organigrama de stări din figura 9.8.a.
Organigrama cuprinde patru stări 1-4, fiecare generând o ieşire proprie ,
evoluţia stărilor fiind realizată prin variabilele de intrare specificate. Alocarea
variabilelor în automat corespunzator variabilelor din organigramă este realizată în figura 9.8.b. Implementarea programului se obţine în conformitate cu etapele specificate mai sus.
0001 ZA2 STOC M0013 STO M0024 STO M0035 STO M004
Primele instrucţiuni definesc iniţializarea stărilor, introducându-se în starea M001 valoarea logică 1 iar în celelălte variabile M002-M004 valoarea 0. Deci, automatul îsi va începe evoluţia plecând din starea iniţială 1. Instrucţiunile următoare implementează pentru fiecare stare informaţia asociată şi traseele logice ce derivă din ea.
0006 LD M001 Apelul variabilei de stare I 7 M002 Sterge starea precedenta8 R E002 Sterge iesirea precedenta9 S E001 Genereaza iesirea starii I0010 ANDC I001 Traseul logic 1 S M0022 LD M0013 AND I001 Traseul logic 4 S M0035 LD M002
308
Roboţi industriali
6 R M001 Starea 27 R E0018 S E002 Traseu logic 9 ANDC I0020020 S M0011 LD M0022 AND I0023 S M0014 LD M0035 R M001 Starea 36 R E0017 S E0038 AND I003 Traseul logic 9 S M0020030 LD M0041 R M002 Starea 42 R E0023 S E0044 S M003 Traseul logic 0025 J 0006
Instrucţiunile asociate traseelor logice descriu practic funcţia logică a traseului. Existenţa unor trasee multiple face necesarţ actualizarea bistabilului A cu informaţia ultimei stări, întrucât conţinutul acestuia poate fi alterat de prelucrarea impusă de ultimul traseu logic implementat. Astfel, în instrucţiunea 0012 se reîncarcă A cu valoarea logică a stării 1.
Trebuie remarcat, de asemenea, că traseul logic nu este implementat, acesta fiind realizat intrinsec prin stabilirea locaţiei de memorie M003 în absenţa oricăror modificări a variabilei de intrare I003 ce condiţionează evoluţia stării.
309
Capitolul 9. Sisteme de conducere cu automate rogramabile
Figura 9.9
Ultima instrucţiune 0025 determină un salt în program la prima instrucţiune ce succede zonei de iniţializare.
6) programul este introdus prin consola de programare a automatului în memoria internă a consolei, în regim de verificare. Dupa efectuarea verificării şi corectarea eventualelor erori, acesta este introdus în memoria program pentru utilizare.
9.4. Conducerea unui manipulator în instalaţii de tratare termică
Analiza detaliată a procedurilor de implementare este ilustrată prin programul de conducere a unui manipulator utilizat în manipularea pieselor la punctele de încărcare ale unor cuptoare pentru tratarea termică. În figura 9.9 este
RÂ
ND
1
RÂ
ND
2
RÂ
ND
3
EVACUARE
Încărcare
L1L2L3L4L5
M
AM
RM
CLD
CLI
BT
RC
OC
310
Roboţi industriali
prezentată schema tehnologică a unui cuptor rotativ de tratare şi funcţiile de manipulare solicitate.
Piesele supuse tratării termice sunt dispuse pe sectoare axiale, în trei rânduri (zone), astfel încât să se asigure o incărcare optimă a suprafeţei cuptorului. Acţionarea cuptorului este astfel calculată încât o rotaţie completă corespunde timpului necesar pentru efectuarea procesului de tratare. Mişcarea cuptorului este discontinuă, de fiecare dată când un sector ajunge în dreptul punctului de încărcare, cuptorul se opreşte şi manipulatorul avansează realizând încărcarea completă cu piese a sectorului.
Alimentarea cuptorului este realizată cu o banda transportoare BT, cu avans controlat, ce poziţionează câte o piesa în dreptul punctului de încărcare. Prezenţa piesei într-o poziţie corectă este semnalată de traductorul PP.
Pentru transferul pieselor în cuptor, manipulatorul M execută cicluri funcţionale fixe, corespunzător operaţiilor de prindere, transfer şi depunere ale pieselor în celel trei zone, succesiv. Poziţionarea manipulatorului se realizează prin limitatoarele , primele trei indicând poziţia în cele trei zone ale cuptorului, limitatorul L4 specificând poziţia în dreptul benzii transportoare iar L5 desemnând poziţia retrasă, neoperaţională a acestuia. De asemenea, funcţia de manipulare implică utilizarea a doi senzori, GRD, GRI indicând starea deschisă sau inchisă a griperului.
Fazele tehnologice şi secvenţele de manipulare sunt:- manipulatorul este retras în poziţie L5; banda transportoare avansează
şi aduce o noua piesă în punctul de încărcare;- manipulatorul avansează în poziţia L4; se închide griperul;- manipulatorul avansează în zona disponibilă a cuptorului (încărcarea
începe cu zona cea mai depărtată, zona 1), griperul se deschide şi piesa este depusă;
- manipulatorul se retrage în poziţia iniţială L5;- se testează încărcarea sectorului. Dacă acesta nu este plin, se reîncepe
ciclul de încărcare de la secvenţa întâi. Dacă sectorul este plin, se roteste cuptorul aducând un nou sector în punctul de încărcare.
Poziţionarea cuptorului este realizată cu un limitator OC antrenat de o camă a sistemului de acţionare.
Trebuie subliniat faptul că similar operaţiei de încărcare se produce descărcarea pieselor, după ce cuptorul a executat o rotaţie de cca 315 grade.
Tabelul 9.2. cuprinde lista variabilelor de intrare şi ieşire afectate acestui sistem precum şi codificarea lor pentru implementarea pe un automat programabil.
311
Capitolul 9. Sisteme de conducere cu automate rogramabile
VariabileDe intrare
Cod Specificatii Variabila de ieşire
Cod Specificatii
OC I 001 Oprire cuptor RRRC E001 Reglaje cuptorPP I 002 Prezenta
piesaAB E002 Avans bandă
L1 I 003Limitatoare de pozitie brat manipulator
AM E003 Avans manipulator
L2 I 004 RM E004 Retragere manipulator
L3 IGR E005 Închidere griperL4 I 006 DGR E006 Deschidere
griperI 009 Griper
deschis
Validare numarator
GRI I 008 Griper inchis IN E008 Incrementare numarator
GRD
În figura 9.10 este prezentată oganigrama stărilor. Se observă existenţa a 11 stări, trecerea dintr-o stare în alta fiind condiţionată de comutarea unor variabile. Astfel, în starea 1 se initiază avansul benzii transportoare, tranziţia în starea 2 fiind determinată de aducerea piesei în punctul de încărcare (PP=1). În această stare începe avansul manipulatorului (AM) până la atingerea poziţiei de încărcare L4 ce determină trecerea în starea 3. Manipulatorul se opreşte şi se comandă închiderea griperului (IGR) până se atinge condiţia de griper închis (GRI=1) ce indică tranziţia în starea 4. Se validează (VN) un sistem de 3 număratoare NUM1, NUM2, NUM3, ce identifică depunerile în zonele 1, 2 şi 3, respectiv. Aceste număratoare pot fi incrementate printr-un semnal provocat de fiecare depunere în cuptor, de exemplu GRD. Dacă secvenţa de lucru corespunde manipulării primei piese, ce se va depozita în rândul 1, atunci NUM1=0 şi evoluţia automatului se produce în starea 5.
Dacă se pune a doua piesă, NUM1=1 şi NUM2=0, tranziţia se realizează în starea 6. A treia piesă determină o evoluţie pe traseul NUM=1, NUM2=1 în starea 7.
Cele trei număratoare sunt realizate în cadrul modulelor de numărare ale automatului şi vor fi apelate ca variabile cu adresele T001, T002 şi T003 respectiv.
312
Roboţi industriali
Poziţionarea manipulatorului la capătul cursei este identificată prin starea 8, indiferent de zona în care s-a efectuat depozitarea piesei. După depunerea piesei (DGR=1), manipulatorul se retrage, starea 9, până în poziţia iniţială atinsă în starea 10. În această stare se testează NUM3. Dacă NUM3=0, nu au fost efectuate cele trei depuneri şi procesul se reia de la starea 1. Dacă NUM3=1, toate piesele s-au depus în sectorul respectiv, se trece în starea 11 determinând rotaţia cuptorului şi trecerea într-un nou sector după care se revine în starea iniţiala 1. În starea 11 se sterge totodată adresarea numaratoarelor pentru a permite o noua număratoare.
313
Capitolul 9. Sisteme de conducere cu automate rogramabile
AB
PP
AM
L4
IGR
GRI
VN
NUM1
AM AM
L1 L3
NUM2
AM
L2
DGR
GRD
RM
L5
NUM3
RC,VN
OC
1
2
3
4
5 7 6
8
9
10
11
1
0
1
0
1
0
1 0
1
0
1
0
1
0
1
0
0 1
1 0
0
1
01
314
Roboţi industriali
Figura 9.10
Pentru acoperirea celor 11 stări, în automat se vor aloca variabilele interne. Cu aceste elemente, tinând cont de codificarea variabilelor de intrare şi ieşire (tabelul 9.2) şi de regulile de implementare stabilite mai sus, instrucţiunile programului de conducere vor fi:
0001 ZA2 STOC M0012 STOC M002 Initializare0012 STO M0113 LD M0014 R M0115 R M010 Starea 16 R E0017 S E0028 AND I002 Transfer în starea 29 S M0020020 LD M0021 R M0012 R E002 Starea 23 S E0034 AND I006 Transfer în starea 35 S M0036 LD M0037 R M002 Starea 38 R E0039 S E0050030 AND I008 Transfer în starea 41 S M0042 LD M0043 R M003 Starea 34 R E0055 S E0076 ANDC T001 Transfer în starea 57 S M0058 LD M0049 AND T001 Transfer în starea 6
315
Capitolul 9. Sisteme de conducere cu automate rogramabile
0040 ANDC T0021 S M0062 LS M0043 AND T001 Transfer în starea 74 AND T0025 S M0076 LD M0057 R M004 Starea 58 S E0039 LD M0060050 R M004 Starea 61 S E0032 LD M0073 R M004 Starea 74 S E0035 LD M0056 AND I003 Transfer 7 S M0088 LD M0069 AND I004 Transfer 0060 S M0081 LD M0072 AND I00 Transfer 3 S M0084 LD M0085 R M0056 R M006 Starea 87 R M0078 R E0039 S E0060070 AND I009 Transfer în starea 91 S M0092 LD M0093 R M0084 R E006 Starea 95 S E0046 AND I007 Transfer în starea 107 S M010
316
Roboţi industriali
8 LD M0109 R M009 Starea 100080 R E0041 ANDGC T003 Transfer 2 S M0013 LD M0104 AND T003 Transfer 5 S M0116 LD M0117 R M010 Starea 118 R E0079 S E0010090 AND I001 Transfer în starea 11 S M0012 J 0013
9.5. Automate programabile cu operare vectorială
Complexitatea algoritmilor de conducere pentru o gamă largă de roboţi şi manipulatoare, formele specifice de semnale generate de unele echipamente de măsurare sau senzoriale ca şi modalitaţile caracteristice de interpretare a acestora impun extinderea operaţiilor de prelucrare de la nivel de bit la o prelucrare aritmetică şi logică de tip cuvânt, vectorială. Aceste automate sunt realizate de obicei prin configuraţii de microprocesoare de 8 sau 16 biţi, folosind eficient facilităţile oferite de acestea atât în ceea ce priveste capacitatea de memorie, operaţii logico-aritmetice şi interfaţarea cu mediul extern.
Utilizarea unor operanzi vectoriali în aceste automate nu exclude prelucrarea logică a unor operanzi scalari la nivel de bit. Aceste operaţii se mentin în continuare întrucât foarte multe funcţii de manipulare specifice unor clase de roboţi implică, pe langă controlul numeric al traiectoriei, operaţii logice asupra unor mărimi secvenţiale (scalare).
Din acest motiv, una din configuraţiile cele mai întâlnite de automate din aceste clase conţine structura de tip biprocesor pentru operanzi scalari şi unul pentru operanzi vectoriali (numerici) cu o gestionare adecvată a resurselor comune. O structură de acest fel este prezentată în figura 9.11[22,54].
317
Capitolul 9. Sisteme de conducere cu automate rogramabile
Figura 9.11a
Programul utilizator este realizat din instrucţiuni pe 16 biţi şi este rezident într-o memorie de tip EPROM. Controlul programului este realizat de o unitate UC ce permite avansarea pas cu pas a instrucţiunilor sau prin salt.
1I pI 1E pE1EN rEN 1IN rIN
MI MIS MES MEN MIN
UC NA MPConsolă program
instrucţiune16
12 4
Controler ULpUC RAM ROM
Linie date
IM
Magistrală de adrese
Magistrală de date (D0 – D7)Magistrală de contrtol
B15 B11 B0
Cod instrtucţiune
Adresă operand
B11 = 0 Instrucţiune scalară
B15 B11 B8
Cod instrtucţiune
0
1
B11
Adresă operand 1
Adresă operand p
B11
B11 = 1 Instrucţiune numerică
318
Roboţi industriali
Figura 9.11b
Instrucţiunile extrase din MP au o destinaţie precisă, către procesorul scalar sau către cel numeric, în funcţie de tipul acesteia. Indentificarea este realizată pîntr-un bit, B11 în formatul fiecărei instrucţiuni.
Dacă instrucţiunea este de tip scalar ( ), în acest caz primii patru biţi ce definesc codul sunt prelucraţi într-o unitate logică a procesorului
scalar iar ultimii biţi sunt interpretaţi într-un controler. Operaţiile executate de procesor sunt de acelasi tip ca la orice automat
sacvenţial, ele implicând transferuri de date şi operaţii logice asupra unor variabile din memoria internă MI şi din modulele de intrare şi ieşire scalară, MIS şi respectiv MES.
Instrucţiunile numerice sunt interpretate în unitatea centrală UC a microprocesorului ce serveşte ca suport procesorului vectorial. Aceste instrucţiuni definesc o serie de operaţii aritmetice şi de transfer asupra unor mărimi de format vectorial ce au ca sursă unul din canalele de intrări numerice din MIN, o variabilă din memoria internă RAM sau ROM sau o variabilă de tip imediat rezidentă în instrucţiuni. Destinaţia prelucrărilor poate fi o ieşire numerică din MEN sau o locaţie din memoria internă RAM.
Trebuie subliniat faptul că, deşi operaţiile de prelucrare logică şi aritmetică sunt realizate de câte un procesor specializat, resursele scalare şi vectoriale ale sistemului sunt gestionate în comun. În acest sens, procesorul numeric are acces la informaţiile de tip scalar rezidente în modulele procesorului respectiv, aceste mărimi condiţionând efectuarea operaţiilor aritmetice şi logice. Această gestionare se obţine printr-un control eficient al vehiculării de informaţie pe magistralele celor două procesoare, control realizat cu modulul IM (interfaţă de magistrale).
Aceste posibilitaţi de apelare la resursele scalare şi vectoriale permit utilizarea unor instrucţiuni complexe în care sunt implicate ambele tipuri de mărimi. În mod curent, variabila scalară obţinută în procesorul scalar condiţionează prelucrarea logico-aritmetică din procesorul vectorial. O astfel de variabilă este numită în mod curent “variabila martor”.Pentru exemplificare, să considerăm
instrucţiunea AND ce realizează funcţia logică între doi operanzi vectoriali
aflaţi al adresele numerice AN1, AN2, respectiv, şi cu memorarea rezultatului în AN3. Această instrucţiune se scrie sub forma AND AS, AN1,AN2,AN3.
AS defineşte adresa variabilei scalare ce funcţionează ca martor în sensul următor :
319
Capitolul 9. Sisteme de conducere cu automate rogramabile
Utilizarea unor astfel de instrucţiuni facilitează implementarea unui program de conducere întrucât acesta sintetizează atât condiţia de generare a stării sistemului la un moment dat cât şi pe cea de transfer în starea urmatoare. Setul de instrucţiuni al unui astfel de automat cuprinde în general toate operaţiile logice curente NU, ŞI, SAU, ŞI-NU, SAU-NU, SAU-EXCLUSIV efectuate asupra unor operanzi scalari sau vectoriali precum şi gama de operaţii aritmetice utilizate în mod curent în implementări numerice. Ca referinţă se poate consulta setul de instrucţiuni al automatului AP-117 produs de intreprinderea Automatica-Bucuresti (Anexa 1).
Aceste instrucţiuni asigură, de asemenea, o serie de facilitaţi în organizarea programelor, a ciclurilor funcţionale, a programelor de iniţializare şi a regimurilor de lucru de tip subrutină. În acest fel, limbajul acestor automate constituie un suport software adecvat pentru implementarea legilor de conducere la o gamă de roboţi industriali.
De asemenea, compatibilitatea hardware la nivelul sistemelor de acţionare şi de măsurare este pe deplin realizabilă prin intermediul interfeţelor scalare sau numerice prezentate mai sus.
9.6. Conducerea unui robot în liniile automate de sudură pentru caroserii auto
Una din aplicaţiile cele mai solicitate de conducere robotizată şi care reprezintă totodata una din primele încercări de implementare a roboţilor în sistemele de fabricaţie industriala o constituie sudarea automată a caroseriilor de autoturisme în liniile de montaj.
Din punce de vedere al sistemului de conducere, o astfel de aplicaţie impune programarea robotului să execute o traiectorie impusă prin punctele implicate de operaţiile de sudură şi corelarea acestor miscări cu evoluţia generală a liniei de asamblare.
Pentru exemplificare se va analiza sistemul de programe necesar pentru o celula de sudură utilată cu un robot în coordonate cilindrice condus cu un automat în configuraţie biprocesor (AP – 117), (fig. 9.12.).
320
Roboţi industriali
Figura 9.12
Robotul posedă 6 grade de libertate din care operaţiile de sudura solicitate
cer numai 4: , , şi . Miscările pe fiecare grad de libertate sunt măsurate
cu traductoare de deplasare de tip incremental pentru miscările de translaţie şi
şi de tip absolut pentru miscările de rotaţie , .
Traiectoria completă a robotului este prezentată în figura 9.13. Starea iniţială, de pornire, corespunde punctului A. Traiectoria este defalcată pe segmente, fiecare segment corespunzând unei secvenţe funcţionale precise definită printr-un singur grad de libertate al miscării.
Pentru a facilita implementarea legii de control, pe fiecare segment s-au
notat prin variabilele parametrii de bază ai deplasării. Astfel, indicele I
desemnează gradul de libertate în sensul pozitiv sau negativ iar valoarea din paranteză defineşte cota mişcării.
Figura 9.13
Linie sudură
1q 2q
3q4q
5q
6q
13 kq
22 kq
35 kq 35 kq
35 kq 35 kq
35 kq 35 kq
4152 , kqkq 81 kq
73 kq
mF
1mF
1F
C
BA
H G1D
2D
mD
Puncte de sudură
Linie de sudură
y
z
x0
321
Capitolul 9. Sisteme de conducere cu automate rogramabile
În prima faza a miscării robotul execută o apropiere de linia tehnologică, pe
traseul A,B,C,pintr-o miscare de translaţie în sens pozitiv pe o cotă şi o
miscare de translaţie în sens negativ pe cota . În punctul C este rotit
terminalul cu o miscare în sens negativ până ce electrodul de sudură atinge
caroseria (cota ), punctul . Acest punct reprezintă primul punct de sudură,
atingerea lui anclasând cuplarea sursei de curent a generatorului de sudură.Dupa un timp prestabilit, curentul este decuplat, terminalul se roteste în sens invers
revenind în punctul C. În faza următoare se produce reorientarea braţului
către următorul punct de sudură, operaţie realizată din doua miscări şi
(punctul F1).
Noul punct de sudură implică din nou rotaţia terminalului în sens negativ
la cota . Aceste faze sunt reluate ciclic până se acoperă intreaga linie de sudură (m
puncte). Dupa revenirea din ultima sudură (punctul ), robotul revine în
punctul iniţial al traiectoriei ( GHA) prin trei secvenţe definite prin
parametrii , .
Analiza detaliată a traiectoriei permite realizarea, în etapa următoare, a organigramei de stări pentru construcţia programului utilizator.
Organigrama stărilor (fig. 9.14) cuprinde 13 stări. Prima stare, starea 1 realizează legatura între miscarea robotului şi cea a liniei de montaj.
322
Roboţi industriali
AC
PC
AC
PC
3q
1
2
3
4
6
5
7
8
9
10
11
12
13
b
a
k4
k2
k3
k3
2q
k5
m
k6
k7
k8
0
0
0
0
0
0
0T1
0
1
1
1
1
1
1 1
0
1
0
1
0
1
1
k1
SUDURA
5q
5q
1q
3q
2q
3q
1q
INCR
0
a
323
Capitolul 9. Sisteme de conducere cu automate rogramabile
Figura 9.14
În aceasta stare, se comandă avansul carasoriei AC până la poziţionarea corectă a acesteia în punctul de lucru (PC=1).
Stările următoare 2-4 determină miscarea robotului până la primul punct de
sudură . Fiecare stare este asociată miscării pe câte un grad de libertate, condiţia
de trecere la o nouă stare fiind obţinută la realizarea cotei prescrise în decizia ce succede stării.
Starea 5 realizează funcţia tehnologică (SUDURĂ) prin cuplarea curentului
în circuitul electrodului de sudură un timp prestabilit . După acest interval de
timp automatul comută în starea 6 ceea ce înseamnă decuplarea curentului şi reînceperea miscării terminalului şi braţului. Stările 6-8 acoperă segmentele de
traiectorie D C corespunzătoare retragerii terminalului şi reorientării braţului.
Analiza traiectoriei indică existenţa unor cicluri de miscare între puncte de
tipul . Aceste cicluri pot fi acoperite prin formarea unui contor
incrementat la sfârsitul fiecărui ciclu, starea 9, şi testat în starea 10. Dacă numărul de cicluri m nu este realizat se execută un salt în starea 5 cu reluarea ciclului tehnologic, dacă condiţia este indeplinită se trece in stările 11,12,13 prin care se controlează revenirea robotului în poziţia iniţială A.
Implementarea sistemului de conducere impune executarea a doua programe, unul desemnând programul utilizator realizat prin transpunerea în limbajul automatului a organigramei de stări şi al doilea, programul de iniţializare necesar pentru generarea condiţiilor iniţiale ale mărimilor de stare şi numerice.
Rezervarea în automat a unor variabile scalare şi numerice pentru acoperirea mărimilor implicate în sistemul fizic al robotului se realizează după o procedură similară cu cea utilizată în 9.4.
Stări Variabile în AP1 M0012 M0023.
M0003.
IntrăriScalare
VariabileÎn AP
324
Roboţi industriali
.
...
δq2
δq3
PC
E 011
I 001I 002I 003I 004
13 M013
Intrărinumerice
VariabileÎn AP
δq1
δq5
ÎN 0001ÎN 0002
Iesiri scalare
Variabile în AP
Cote numerice prescrise
Adrese numerice
ACSUDURAINCR
E 001 E 002
E 003E 004E 005
E 006E 007E 008
E 009E 010E 011
K1
K2
K3
K4
K5
K6
K7
K8
T1
m
o
MN 0001MN 0002MN 0003MN 0004MN 0005MN 0006MN 0007MN 0008MN 0009MN 0010MN 0011
Fiecărei stări se alocă o variabilă în memoria secvenţială M001-M013.
Traductoarele de tip increment ce oferă mărimile de tip scalar , sunt
325
Capitolul 9. Sisteme de conducere cu automate rogramabile
conectate la intrările scalare I001 şi I002. Traductoarele de tip absolut ,
sunt cuplate pe doua intrări numerice IN0001 şi IN0002.Iesirile automatului sunt numai de tip scalar (E001-E011), miscările pe
traiectorie neimplicând un algoritm de reglare numeric. Pentru atingerea parametrilor traiectoriei, în memoria numerică a automatului sunt introduse date ce definesc cotele miscărilor MN001-MN0008.
În cotinuare, se va expune detaliat structura programului utilizator şi a celui de iniţializare(notaţiile şi simbolurile sunt prezentate în Anexa 1).
0000 ! M0011 R M0132 R E0013 S E009
Aceste instrucţiuni realizează apelul variabilei din memorie asociat stării 1, stergerea stării precedente M013 şi iesirea corespunzătoare E001 precum şi generarea iesiri de comandă, avansul caroseriei E009.
4 . I0035 S M002
Se obţine transferul condiţionat în starea 2(M002) dacă variabila scalară PC este în 1, în caz contrar păstrându-se starea activă 1 (M001=1)
67890010
!RRSCSC
M002M001E009E005M002, I002, MN 0001, MN 0101, M003
Acest set de instrucţiuni asociat stării 2 controlează evoluţia pe segmentul AB al traiectoriei. Instrucţiunea CSC determină o contorizare în sens crescător a variabilei I002, condiţionată de variabila scalară M002. La atingerea valorii prescrise în MN001, variabila scalară M003 devine 1 asigurând astfel tranziţia în starea 3.
0011234
!RRS
M003M002E005E004
326
Roboţi industriali
56789
CSC!RRCID
M003, I001, MN0002, MN0102, M004M004M003E004M004, MN0003, IN0002, E008, M005
Prima stare a acestui grup de instrucţiuni implementează starea 3 cu transfer
condiţionat în starea 5 de contorizarea impulsurilor traductorului (I001). A
doua parte, defineşte starea 4 în care se realizează rotaţia terminalului, miscarea .
Controlul miscării este obţinut prin instrucţiunea CID ce realizează comparaţia cotei numerice prescrise în MN0003 cu cea oferită de traductorul absolut IN0002. Dacă aceasta identitate nu este realizată, variabilele scalare de ieşire au valorile E0008=1, M005=0. La atingerea valorii prescrise, E008=0, M005=1 realizând deci tranziţia în starea următoare 5 şi totodată anularea miscării generată în starea 4.
0020123
!RSTMP2
M005M004E010M005, MN0009, MN0103, M006
Aceste instrucţiuni acoperă starea 5 prin care se cuplează operaţia de sudură (E010). Durata operaţiei este controlată de o instrucţiune de temporizare TMP2 ce anclansează un generator de impulsuri software cu perioada 0.1s, contorizarea impulsurilor find realizată la adresa numerică NM0103. Atingerea valorii prescrise T1 rezidentă la adresa MN0009 determină comutarea variabilei de stare M006.
002456789301234
!RRCID!RCID!RSCSC
M006M005E010M006, MN0003, IN0002, E007, M007M007M006M007, MN0004, IN0001, E002, M008M008M007E005M008, I002, MN0005,MN0103, M009
327
Capitolul 9. Sisteme de conducere cu automate rogramabile
Ultimul set de instrucţiuni determină evoluţia pe segmentele de traiectorie
DC F1, prin doua rotaţii ai parametrilor şi şi o translaţie prin . Se obţine
astfel starea 9 ce încheie un ciclu funcţional şi generează un semnal de incrementare E011.
00356789401234567895012
!RRSSRRCSC!./S!.STRADTRADTRADTRAD
M009M008E005E011M010M009E011M010, I004, MN0010, MN0104, M101M010M101M004M010M101M011M010, MN0011, MN0101M010, MN0011, MN0102M010, MN0011, MN0103M010, MN011, MN0104
Aceste instrucţiuni evaluează valoarea contorului creat prin reintroducerea ieşirii E011 ca variabilă de intrare I004 şi contorizarea ei. Atingerea valorii prescrise m(MN0010) determină comutarea unei variabile intermediare M101. În funcţie de valoarea logică a acesteia, se determină două trasee logice, unul ce indică transferul prin salt în starea 4, iar al doilea indică continuarea evoluţiei (când numărul de cicluri s-a încheiat) în starea 11. Pentru a asigura un calcul numeric corect, în fiecare nou ciclu se şterg locaţiile de memorie utilizate pentru contorizare (MN0101 – MN0104) prin instrucţiunea TRAD.
005345
!RR
M011M 010M101
328
Roboţi industriali
678960123456789
SCSC!RRSCSC!RRCIDTRADTRADEND
E003M011, I001, MN0006, MN0105, M012, M012M011E003E006M012, I002, MN0007, MN0106, M013M013M012E006M013, MN0008, IN0001, E001M013, MN0011, MN0105M013, MN0011, MN0106
Ultimele instrucţiuni determină evoluţia pe segmentele finale , G, H, A,
cu ştergerea corespunzătoare a adreselor numerice MN0105 şi MN0106 în vederea unei reutilizări a programului.
Partea de iniţializare a programului cuprinde instrucţiunile de iniţializare a stărilor (mărimi scalare) şi a adreselor numerice implicate în memorarea parametrilor traiectoriei. În mod normal, punerea în funcţiune a automatului implică stergerea tuturor locaţiilor din memoria scalară, deci iniţializarea înseamnă înscrierea valorii logice 1 în starea iniţiala M001 a automatului. Programul de iniţializare este înscris începând cu adresa 0100 (aleasă din considerente de spaţiu de programare).
01001234
Z/=ATVEND
M001MN0001,0011,”K1”,…”Kg”,”T1”,”m”,”0”
Ultima instrucţiune, în ambele părti ale programului,este END ceea ce determină revenirea automată la adresa 0000.
9.7. Conducerea unui robot în coordonate carteziene
329
Capitolul 9. Sisteme de conducere cu automate rogramabile
În capitolul @ a fost studiată comportarea cinematică şi dinamică a unui robot ce operează în coordonate carteziene (fig.2.8). Aceste tipuri de roboţi constitue soluţia cea mai utilizată în manipularea pieselor pentru operaţii de sortare, depozitare în magazii, câmpuri de stocaj, etc. Schema simplificată a unui astfel de robot este prezentată în figura 9.16.
Figura 9.16
Pentru aceste sisteme, cerinţele de manipulare uzuale solicită o poziţionare
numerică în coordonate , controlul pe axa Z fiind realizat de obicei prin
variabile scalare, limitatoare de poziţie. În acest sens, măsurarea distanţei pe axele x,y se va efectua cu traductoare incrementate de poziţie, iar pe axa Z, două
limitatoare , vor marca cele două poziţii extreme, superioară şi respectiv
inferioară ale griperului de manipulare.În mod normal, automatul ce controlează acest robot este conectat într-o
relaţie de subordonare master-slave cu un alt automat ce supervizează un sistem complet de prelucrare şi transport, acesta dictând coordonatele de manipulare, în funcţie de anumite criterii specifice automatului slave iar acesta, la rândul lui, executând poziţionarea robotului.
z
xy
zonă de stocare
sj zyxA ,,1
jji zyxA ,, 11
x
y
z
330
Roboţi industriali
Stări Variabile în AP
12
M 001M 002
CTD
Z
DSD
Poz. Poz.
AD
TD
Final cotă
jZ0
1
1
0
0
1
1
2
3
4
5
6
a
331
Capitolul 9. Sisteme de conducere cu automate rogramabile
.
.
.6
.
.
.M 006
Intrări scalare
Variabile în AP
I 001
I 002
I 003
I 004
I 005
Intrări numerice
Variabile în AP
Cota IN 0001
Cota IN 0002
Intrări scalare
Variabile în AP
CTD E 001
Avans E 002
Avans E 003
Avans E 004
Avans E 005
Avans E 006
Avans E 007
Adrese numerice
Variabile în AP
CTD MN 0001
MN 0002
332
Roboţi industriali
MN 0003
MN 0004
E 005
bFigura 9.17
Pentru exemplificare se va considera traiectoria între două puncte
şi , o evoluţie de acest fel constituind o structura
tipică în orice operaţie de manipulare.Organigrama de stări ce permite implementarea unui astfel de program este prezentată în figura 9.17,a.
În starea iniţială 1 se generează iesirea CTD (Cerere Transfer Date) către automatul master care transferă aceste date sub protocolul TD (Transfer Date). În consecinţă, automatul slave trece în starea 2 în care se realizează acceptarea datelor (AD). Pentru transferul datelor numerice se folosesc două intrări numerice IN0001 şi IN0002, câte una pentru fiecare dintre axele X,Y.
Pentru a delimita sensul de evoluţie al robotului, adreselor numerice, ce definesc poziţia actuală şi cea viitoare, li se vor rezerva locaţii diferite în memorie.
Astfel, cotele , , vor fi memorate în MN0001 şi MN0002 iar cotele ,
(cota următoare) în MN0003 şi MN0004, respectiv figura 9.17,b.Implementarea acestor stări, şi a transferului de date implicate în ele se
obţine pintr-o procedură similara cu cea utilizată în paragraful precedent:
000012345678910
!RRS.S!RRTRADTRAD
M001M005E007E001I005M002M002M001E001M002, IN0001, MN0003 M002, IN0002, MN0004
333
Capitolul 9. Sisteme de conducere cu automate rogramabile
Dupa această actualizare a datelor, automatul determină sensul de deplasare,
00112345
S!RCOMCOM
M003M003M002M003, MN0001, MN0003, M101, M102M003, MN0002, MN0004, M103, M104
Instrucţiunile COM realizează următoarele condiţii logice:
(MN0001)> (MN0003) atunci M101=1, M102=0, x-=1(MN0002)≤ (MN0004) atunci M103=0, M104=1, y+=1(MN0002)> (MN0004) atunci M103=1, M104=0, y-=1
În acest mod, variabilele M101 – M104 identifică sensul de deplasare iar distanţele impuse pe fiecare axă se obţin din diferenţele de coordonate între stările iniţiale şi finale:
00156
SUB SUB
M003, MN0001, MN0003, M111, MN0005M003, MN0002, MN0004, M112, MN0006
Miscările pe axe se obţin având ca referinţa variabilele M101 – M104 prin instrucţiunile:
0017892012345
!SCSC!SCSC!SCSC
M101E003M101, I001, MN0005, MN0101, M004M102E002M102, I001, MN0005, MN0102, M004M103E005M103, I002, MN0006, MN0103, M005
334
Roboţi industriali
67893012345678
!SCSC!RRR!RRR.S
M104E004M104, I002, MN0006, MN0103, M005M004M003E003E002M005M003E004E005M004M006
Atingerea cotei( ) este marcata de comutarea variabilelor M004 şi M005
în 1 logic, ceea ce determina anularea tuturor miscarilor precedente şi trecerea în starea 6.
0039401234567
!RRS.STRADTRADEND
M006M004M005E007I004M001M006, MN0003, MN0001M006, MN0002, MN0004
Ultimele instrucţiuni desemnează coborarea griperului în poziţia inferioară,
deci atingerea punctului B pe traiecorie. De asemenea, se realizează un transfer de date în sensul:
ceea ce permite trecerea la o nouă stare.
Programul de iniţializare începe de la adresa 0100 şi are forma:
335
Capitolul 9. Sisteme de conducere cu automate rogramabile
01001234
Z/=ATVEND
M001MN0001, 0002, “0”, “0”
Iniţializarea variabilelor numerice impune numai memorarea poziţiei iniţiale
a robotului presupusă la cota .
9.8. Programare prin instruire
9.8.1. Principii generale
În capitolul 2 al lucrării s-a specificat că una din cele mai eficiente metode de determinare a legii de control cinematice a unui robot este programarea prin instruire. Această metodă repezintă o procedură realistă de tratare a problemelor de conducere în condiţiile existenţei, fie a unei informaţii incomplete asupra spaţiului de operare, fie a unei structuri funcţionare cu un grad de complexitate deosebit. În astfel de cazuri, determinarea legii de conducere prin procedurile curente este, dacă nu imposibilă, în orice caz extrem de dificilă.
Figura 9.18
Instruirea reprezintă, în esentă, o metodă prin care legea de conducere se determină pe baza informaţiei furnizată în timpul evoluţiei robotului sub comandă manuală, pe o traiectorie dorită, informaţiile obţinute prin măsurători directe în
a R
I
a RPROGRAM
336
Roboţi industriali
această mişcare servind ce elemente de referinţă pentru regenerarea ei în condiţii de lucru operaţionale.
Pentru a pune în evidenţă particularitaţile specifice ale unui proces de instruire, se vor analiza comparativ cele două sisteme de conducere, conducere prin program şi prin instruire (fig 9.18).
In prima variantă legea de conducere este specificată în intregime în program. Aceasta conţine toată strategia de mişcare, pentru orice situaţie previzibilă a variabilelor în care evoluează robotul impunându-se aprioric o comportare corespunzătoare. Se cere, deci, o cunoastere perfectă a tuturor condiţiilor de operare şi determinarea anticipată a unei strategii adecvate.
Într-o conducere prin instruire, robotul, într-o primă etapă, execută sub control manual o traiectorie dorită. Mărimile de comandă acţionează direct atâta asupra robotului, impunândui-se miscarea, cât şi asupra automatului. Parametrii traiectoriei sunt măsurati şi automatul asociază în fiecare fază, coordonatele mişcării cu variabilele de instruire active (fig 9.18).
Într-o etapa ulterioară, datele acumulate de automat vor reprezenta informaţia de bază pentru regenerarea traiectoriei iniţiale.
Se disting astfel două faze ale unui proces de instruire: instruirea propriu-zisă şi execuţia instruirii.
9.8.2. Mărimi în procesul de instruire
Variabilele de instruire reprezintă ansamblul mărimilor de intrare prin care robotul execută o funcţie dorită şi care sunt interpretate simultan de automat pentru definirea secvenţelor de instruire.
Aceste mărimi determină pe de o parte mişcarea robotului , iar pe de altă parte, prin asocierea cu alte mărimi specifice procesului de instruire, permit identificarea exactă a tuturor momentelor procesului de instruire.
În mod normal, instruirea este realizată prin setul de variabile de intrare prin care se comandă manual poziţia robotului. În acest caz, se spune ca instruirea este obţinută prin variabile externe.
În unele situaţii, mişcarea robotului este executată direct de operator, prin acţiunea sa nemijlocită asupra braţului robotului. În aceste cazuri, variabila de instrure asociată secvenţei este dedusă intrinsec de automat, o astfel de funcţionare desemnând o instruire prin variabile interne.
Variabilele de instruire se exprimă printr-un vector de instruire
337
Capitolul 9. Sisteme de conducere cu automate rogramabile
Variabilele de ieşire sunt variabile generate in procesul de instruire prin care se execută nemijocit comanda robotului. Acestea sunt definite printr-un vector de ieşire:
În cele mai dese cazuri, dimensiunile vectorului de instruire I şi de ieşire E coincid ( ). De asemenea, există o corespondenţă strânsă între componentele
celor doi vectori, fiecărei variabile de instruire asociidu-se o variabilă de ieşire
.
Secvenţa de instruire reprezintă o fază de miscare în intervalul căreia vectorul variabilelor de instruire este constant. Acest lucru impune păstrarea constantă a parametrilor ce definesc segmentul de traiectorie corespunzător, ceea ce în cele mai dese cazuri, revine la menţinerea nemodificată a vectorului variabilelor de ieşire E.
Secvenţele de instruire sunt identificate de automat în faza de instruire şi servesc pentru regenerarea traiectoriei în faza de execuţie. Deci, secvenţele de instruire realizează legatura între cele doua faze ale instruirii.
O secvenţa de instruire este identificată prin două mărimi: vectorul de instruire şi parametrii ce definesc segmentul de traiectorie.
unde reprezintă vectorul de instruire al secvenţei j, iar desemnează vectorul parametrilor segmentului de traiectorie asociat. Aceştia din urma pot fi parametri de pozitie (distanţă, mărime unghiulară) sau viteză şi chiar acceleraţie.
O traiectorie “instruită” nu va putea fi reprezentată ca o mulţime ordonată de secvenţe,
unde desemnează relaţia strictă de ordine a mulţimii.
Regenerarea traiectoriei în faza de execuţie presupune utilizarea unei proceduri care, pe de o parte să reconstituie secvenţa şi, pe de alta parte, să păstreze relaţia de ordine stabilită. Pentru facilitarea acestor operaţii se introduc două mărimi: matricea de instruire şi matricea de date.
Matricea de instruire este un tablou de dimensiune (m x p) ce redă sintetic variabilele de instruire asociate fiecărei secvenţe. Numarul de linii m corespunde numerului de secvenţe al procesului iar numărul de coloane p este egal cu dimensiunea vectorului de instruire.
338
Roboţi industriali
Propriu-zis, matricea de instruire (fig. 9.19) este o matrice binară (cu
elemente 0 şi 1) unde un element reprezintă variabila de instruire în
secvenţa .
Figura 9.19
Implementarea celor două faze ale procesului de instruire impune rezervarea într-o zonă de memorie scalară a spaţiului necesar pentru memorarea acestei matrici. În acest fel se obţine, faza de instruiere, imaginea complectă a mărimilor ce au fost implicate în operaţia respectivă iar, în a două faza, această imagine constitue suportul pentru regenerarea miscărilor.
Matricea de date defineste parametrii segmentului de traiectorie pe care evoluează robotul în fiecare secvenţa de instruire.
Un element dij reprezintă valoarea parametrului ce caracterizează mişcarea
pe axa j în secvenţa . Dimensional, această matrice este identică cu cea de
339
Capitolul 9. Sisteme de conducere cu automate rogramabile
instruire, fiecare coloană a matricei reprezentând deci multimea valorilor coordonatelor generalizate pentru o evoluţie complectă pe traiectorie.
9.8.3. Structura programelor de instruire
Un program de instruire cuprinde două părti principale: implementarea procesului de instruire propiu-zisă şi execuţia instruirii(fig.9.20).
Elaborarea programului de instruire implică în principiu construirea unei structuri software ce acoperă matricele de instruire şi de date. Schema logică a acestor programe este prezentată în figura 9.21.
În programele de instruire se implementează matricea de instruire U linie cu
linie prin explorarea secvenţială a vectorului de instruire . Daca într-o anumită
secvenţă o variabilă este activă, variabila asociată devine 1, în caz
contrar căpătând valoarea 0. Simultan, în memoria numerică se intoduce
parametrul asociat mişcării respective. Procedura continuă până la epuizarea
tuturor secvenţelor de instruire.În procesul de execuţie, matricele U şi D vor fi eplorate şi vor genera
mişcările corespunzătoare. Dacă este 1, atunci în secvenţa i se va activa
variabila de iesire , controlul mişcării fiind realizat prin parametrul . Dacă
este 0, atunci iesirea va fi ignorată în secvenţa respectivă.
Cele doua programe sunt precedate de un program de iniţializare în care, pe de o parte sunt aduse la valorile logice şi numerice dorite anumite locaţii ale variabilelor interne iar, pe de alta parte, se prefigurează o rezervare a spaţiilor de memorie necesare implementării programelor.
Din analiza prezentată se poate remarca că implementarea acestor programe implică poceduri curente de tratare logică şi numerică.
340
Roboţi industriali
Figura 9.20
Structura detaliată a fiecarei părti din program va depinde de resursele software ale automatelor utilizate. În cele ce urmează, această procedură va fi ilustrată pe automatul AP-117 descris anterior.
EXECUŢIA INSTRUIRII
END
EXECUŢIA INSTRUIRII
END
EXECUŢIA INSTRUIRII
END
0000:
Adr. Instr:
Adr. Iniţială:
341
Capitolul 9. Sisteme de conducere cu automate rogramabile
STARTINSTRUIRE
p, m
i = 1, j = 1
Secvenţa Si
Citeşte Ij(i)
Se calculeazăuij, dij
pj
mi
STOPINSTRUIRE
j = j + 1 i = i + 1
342
Roboţi industriali
Figura 9.21
9.8.4 Programarea prin instruire a unui robot în coordonate cilindrice
Se va considera robotul în coordonate cilindrice (9.8.3) la care, pentru simplitatea analizei, se va studia numai funcţia de instruire a braţului (fig. 9.22,a).
i = 1, j = 1
Secvenţa Si
Citeşte uij
Citeşte dij
Execută Ej(i)
pj
mi
STOP
j = j + 1
i = i + 1
STARTEXECUŢIE INSTRUIRE
Final Ej(i)
DA
DA
DA
NU
343
Capitolul 9. Sisteme de conducere cu automate rogramabile
Punctul terminal al bratului T I se impune o mişcare ciclica pe traiectoria A
B C D E F G H A utilizând cei trei parametri ai mişcării , , pe fiecare
articulaţie. Fiecare ciclu cuprinde opt segmente de traiectorie, fiecare segment fiind
definit printr-o coordonată specifică . Aceste elemente permit construirea
principalelor mărimi din procesul de instruire:
Figura 9.22
Variabilele de instruire sunt asociate mişcărilor în sensul urmator: şi
definesc instruirea pe coordonatele în sens pozitiv şi negativ, respectiv şi
pe iar şi pe . Într-un mod similar, sunt alocate variabilele de ieşire .
Matricea de instruire şi de date va avea dimensiunule (8 x 6) şi vor necesită rezervări corespunzătoare în memoria scalară şi cea numerică. De exemplu, spaţiul alocat matricei de instruire va fi definit prin variabile de memorie.
Pentru a simplifica tratarea procedurii, se va considera că în fiecare secvenţă este activă o singură variabilă de miscare, deci segmentul de traiectorie
1q 2q
3qT
z
yx 0
A B
C
D
E
FG
H
344
Roboţi industriali
corespunzător va fi definit printr-un singur parametru. În consecinţă, matricea de date D devine un vector de date cu următoarea alocare în memoria numerică:
Variabile de intrare calare
Variabile în AP
Variabile de Iseire scalare
Variabileîn AP
I1
I2
.
.
.I6
δq1
δq2
δq3
STEP
I 101I 201...I 601I 001I 002I 003I 020
E1
E2
.
.
.E6
E 101E 201...E 601
Variabilele scalare ce intervin în construcţia programelor sunt codificate
după criteriile expuse anterior (tabelul 9.4). În această implementare, parametrii
, , se consideră măsuraţi prin traductoare incrementale ale caror semnale ,
, sunt interpretate ca mărimi scalare. O mărime specifică acestei faze este
variabila de salt STEP. Aceasta este utilizată pentru delimitare, în faza de instruire,
a unei secvenţe , şi iniţializarea procesului de transfer la . Semnalul STEP
este furnizat în mod curent de operator după fiecare segment de traiectorie parcurs de robot.
În afara variabilelor precizate, implementarea programelor cere exploatarea secvenţelor de instruire pas cu pas. Această operaţie se realizează printr-un vector de secvenţa S obţinut din variabilele de memorie scalară M,
Programul de instruire propriu-zisă începe la o adresă specifică ADRESA DE INSTRUIRE şi are forma
345
Capitolul 9. Sisteme de conducere cu automate rogramabile
ADR. INSTR: !.S!.S...!.S
M001I101M101M001I201M201
M001I601M601
Aceste instrucţiuni explorează prima linie a matricei de instruire inscriind în variabilele respective valori 0 sau 1 după cum variabilele de instruire respective sunt active sau nu.
În continuare, se determină primul element al vectorului de date D prin
contorizarea impulsurilor traductoarelor de măsurare.
!++=CSCTRAD
I001I002I003M011M011, M301,FFFF, MN0001, M012I020, MN0001, MN0101
Se consideră că un singur traductor de deplasare este activ, deci impulsurile necesare se pot obţine printr-un operator SAU pe cele trei intrări I001, I002, I003 cu stocare finală în variabila M011. Comutarea acestei variabile este contorizată în locaţia MN0001. La închiderea secvenţei, prin variabila I020 (STEP) valoarea stocată în MN0001 este transferată în vectorul de date MN0101. Valoarea FFFF introdusă mai sus desemnează limita maximă de impulsuri ce pot fi contorizate în locaţia numerică respectivă, limită semnalată de conutarea variabilei M012.
SNARPT
I020, M002I020, ADR. INSTR., 0001, 0008
346
Roboţi industriali
END
Ultimele instrucţiuni determină saltul la a două celulă a registrului de secvenţe (M002) şi repetarea ciclului de instrucţiuni de mai sus de 8 ori cu o valoare index egala cu 1.
A doua parte a programului, partea de execuţie a instructiunii se realizează într-o manieră similară.
0000: !S!S...!S
M101E101M201E201
M601E601
Prin aceste instrucţiuni este explorată matricea de instruire U. Locaţiile ce conţin valoarea logică 1 comută variabila de ieşire corespunzătoare determinând deci mişcarea pe un anumit parametru.
!++=CSC
I001I002I003M013M001, M013, MN0101, MN010, M014
Acest set de instrucţiuni determină coordonatele mişcării, comparând valoarea măsurată de traductoare cu cea înscrisă în vectorul de date (MN0101). La atingerea cotei, variabila M014 comută în starea 1.
!RR...
M014E101E201
347
Capitolul 9. Sisteme de conducere cu automate rogramabile
RSNSRPTEND
E601M014, M002M014, 0000, 0001, 0008
Ultimele instrucţiuni desemnează anularea iesirilor active în secvenţa anterioară, comutarea registrului de secvenţă pe o noua poziţie şi repetarea întegului set de instrucţiuni de opt ori, lungimea completă a traiectoriei instruite.
348