BogdanFrobital.ro SINTEZA ASISTATĂ, PROGRAMAREA ȘI [607622]

5/26/2017

[anonimizat] SINTEZA ASISTATĂ, PROGRAMAREA ȘI
SIMULAREA OFF -LINE A UNEI APLICAȚII
ROBOTIZATE PENTRU DESERVIREA UNOR MAȘINI
DE PRELUCRAT LENTILE UTILIZÂND MEDIUL DE
LUCRU
Student: [anonimizat]:
Prof.dr.ing.Gabriel JIGA ,
Prof. dr. ing. Adrian NICOLESCU

Dizertatie

FLORESCU I. Bogdan -Gabriel
2
Cuprins

Cuprins
Tema de proiect ………………………….. ………………………….. ………………………….. ……………… 3
Noțiuni generale despre manipulatoare si roboți industriali in aplicatii de deservire
mașini -unelte ………………………….. ………………………….. ………………………….. ………………………….. 3
Definirea fluxului de productie actual ………………………….. ………………………….. ……………….. 3
Date de intrare ………………………….. ………………………….. ………………………….. ……………… 10
Proiectarea celulei si stabilirea layoutului ………………………….. ………………………….. ….. 13
Imbunatatirea layoutului pana la o forma utila unei simulari ………………………….. …….. 14
Rezultate Simulare : ………………………….. ………………………….. ………………………….. ……… 42
Bibliogr afie ………………………….. ………………………….. ………………………….. …………………… 47

FLORESCU I. Bogdan -Gabriel

3
Tema de proiect

Noțiuni generale despre manipulatoare si roboți industriali in
aplicatii de deservire mașini -unelte

Mașina – în sensul larg al cuvântului, este construcția care transformă forma energiei
din mecanică în altă formă sau, în sens invers, din alta formă în energie mecanică.
Mașinile se clasifică în :
– Mașini de forță (energetice) ;
– Mașini de lucru .
Mașina de forță furnizează energie sub diferite forme, inclusiv mecanică.
Mașina de lucru este construcția ce efectuează lucrări de execuție parțial ă sau produse,
prin mișcări cu diferiți parametri și transformări de energie.
Mașina unealt ă este o mașin ă de lucru având rolul de a modifica forma și dimensiunile
unor corpuri, în general metalice, prin procesul de așchiere, cu o anumită capacitate de
producție, precizie dimensională și calitatea suprafeței. Mașinile unelte se pot utiliza
independent sau în g rupuri de mașini -unelte cu funcționare corelata succesiv prin o parte a
procesului de producție rezultând liniile tehnologice.
Există numeroase definiții ale robotului, el reprezentând un automat universal,
destinatefectuării unor funcții motoare sau intel ectuale ale omului. Printre diferitele clase de
roboțiuna dintre cele mai importante o formează roboții manipulatori, între care sunt
roboțiiindustriali.
Un robot industrial este un echipament care nu funcționeazã în mod izolat, ci
lucreazãîmpreunã cu alți roboți și/sau mașini unelte, benzi transportoare, ajungându -se
astfel lanoțiunea de celulã flexibilã de fabricație.
. Prin“deservire” se înțelege operația de introducere a obiectului de lucru în mașina /
utilajul / instalația /dispozitivul în care se prod uce operația de prelucrare și extragerea lui
după terminarea prelucrării.
Lucrarea de are următoarele obiective:
o Analiza integrarii unui robot industrial antropomorf intr -o aplicatie de deservire
masini unelte
o Analiza layoutului optim
o Determinarea realiz arii productiei cerute si la ce viteza a robotului
o Realizarea programarii robotului in modul ofline si testarea lui in K -roset

Definirea fluxului de productie actual

Echipamentele disponibile :

FLORESCU I. Bogdan -Gabriel
4
– 3 masini unelte VFT-orbit pentru prelucrarea lentilelor
Timpul minim pentru prelucrarea lentilelor 138s/ taviță
Masina se poate reconfigura din program, avand un conveior pe care se face
alimentarea, în așa fel încât să se poată interschimba intrarea tavitei in masina cu iesirea
acesteia . Acest lucru poate ajuta la definirea layoutului optim si la reducerea timpului de
deplasare cu tavitele pline.

Fig.1.1 Componentele mașinii ORBIT

FLORESCU I. Bogdan -Gabriel

5

Fig. 1.2 Cote de gabarit ale mașinii ORBIT

– 5 masini Duo-FLEX pentru slefuirea lentilelor
Timpul min im de slefuire este de 198s / tavita
Masina se poate reconfigura din program, avand un conveior pe care se face
alimentarea, să se poată interschimba intrarea tavitei in masina cu iesirea acesteia. Acest
lucru poate ajuta la definirea layoutului optim si la reducerea timpului de deplasare cu
tavitele pline.

FLORESCU I. Bogdan -Gabriel
6

Fig. Componentele exterioare ale masinii DUO -FLEX

FLORESCU I. Bogdan -Gabriel

7

Fig. Componentele interioare ale masinii DUO -FLEX

FLORESCU I. Bogdan -Gabriel
8

Fig. 1.2 Cote de gabarit ale mașinii ORBIT

– Masina de gravat cu laser avand timpul de prelucrare de 45s/ tavita
Fluxul productiei :
– Lentilele sunt pregatite de catre operatori. Acestea sunt lipite de un suport
metalic cu rolul de a sustine lentila in timpul prelucrarilor ulterioare. Doua cate
doua lentile sunt asezate apoi in niste tavite speciale pentru a putea fi introduse
in masinile de prelucrat direct.

FLORESCU I. Bogdan -Gabriel

9

– Lentilele astfel pregatite sunt introduse in masinile de prelucrat ORBIT, aceastea
prelucr eaza lentilele pentru a ajunge la forma dorita si apoi tavita cu amandoua
lentilele este evacuata pe partea opusa intrarii .
– Lentilele prelucrate sunt mutate apoi in urmatoarea masina DUO -FLEX in
vederea slefuirii si indepartarii oricaror urme posibile lasate de la sculele de
prelucrat anterioare. Dupa slefuire acestea sunt evacuate pe partea o pusa
intrarii la fel ca la ORBIT.
– Acum lentilele mai au nevoie doar de gravarea cu laser pentru a avea o
identificare a lor, a lotului de productie si datei realizarii lor.

FLORESCU I. Bogdan -Gabriel
10
Date de intrare

Pentru realizarea acestei teme am preluat de la client urmatoarele date care sunt
necesare:
– Productivitatea ceruta este de 1800tavite / 24 ore
– marimea suportului pentru lentile si cateva suporturi preluate ca model ;

Fig Tavita / suport lentile
– timpul d e prelucrare cel mai scurt pentru fiecare masina in parte: Orbit: 2,3
minute, duo flex 3 ,3 minute , masina laser 45 s;
– ambele masini i, ORBIT si DUO -FLEX, pot fi programate pentru a interschimba
intrarea pieselor cu iesirea;

FLORESCU I. Bogdan -Gabriel

11

Fig. Exemplificare intrare/ies ire masina ORBIT
– spatiul de lucru in care se doreste a fi asamblata celula flexibila de fabricatie

Fig. Layout fabrica actual

FLORESCU I. Bogdan -Gabriel
12
Pentru acest proiect se modifica hala, eliminand ziduri interioare, pentru a crea spatiul de lucru
pentru celula robotizata conform marcajului galben din fig de mai sus. Rezulta un spatiu cu o
lungime de 18m si o latime de 4,7m intr -un capat si 8,3m in cel alat capat.

– CAD pentru masinile de prelucrat lentile DUO -FLEX si ORBIT

FLORESCU I. Bogdan -Gabriel

13
Proiectarea celulei si stabilirea layoutului

Pentru realizarea obiectivului avem nevoie de un layout care sa ne ajute in
scurtarea miscarilor robotului si a avea un traseu cat mai scurt in timpul unui ciclu complet.

Etape parcurse :
1.1 Stabilirea tipului de robot si a celulei initiale : robot brat art iculat cu translatie la
baza , a saptea ax ă;
1.2 Stabilirea layoutului initial in 2D ;

Fig. Layout initial

Prima idee pentru layout a fost aceea de a pune o sina comuna pentru doi roboti
care sa lucreze sincronizat pentru realizarea productivitatii.
De la aceasta idee s -a putu t continua si imbunatati i layoutul pana la o forma acceptabila
pentru inceperea simularii.

FLORESCU I. Bogdan -Gabriel
14
Imbunatatirea layoutului pana la o forma utila unei simulari

Fig. Layout initial modificat

La o analiza mai amanuntita s -a constatat ca nu se putea determina daca doi roboti
pe aceeasi sina cresc productivitatea sau se incura pe aceeasi banda . Pentru ca din punct
de vedere financiar un singur robot este mai ieftin ca doi, s-a decis ca este nevoi e de o
simulare pentru a determina daca doar un singur robot poate face fata productivitatii
masinilor de prelucrat si anume 1800 de tavite/ 24ore .

Fig. Imbunatatire layout 2d

FLORESCU I. Bogdan -Gabriel

15

Fig. Imbunatatire layout 2d , micsorare axa de translatie robot

Layoutul a fost imbunatatit prin adaugarea laserului de gravat si mutatea uneia dintre
masini le DUO -FLEX .Prin aceste modificare s -a putut reduce lungimea axei de translatie
necesara pentru robot la 14500mm, avand ca rezultat un cost mai scazut pentru realizarea
aplicatiei.

FLORESCU I. Bogdan -Gabriel
16
Inceputul simu lării o ffline a aplicatiei si continuarea imbunatatirii
layoutului in mediu 3D, direct in programul de simulare K -roset

Dupa stabilirea unui layout cat de cat acceptabil s -a trecut la mediu de lucru 3D in K –
roset si inceputul simularii o ffline. Pe masura ce programul robotului a avansat, s-a putut
determina si traseul si layoutul robotului optim pentru a se putea atinge productivitatea
ceruta.

Versiunea 1 :

Fig. Varianta 1 in K -roset

Descriere poza :
– 3 masini ORBIT, masrcate cu rosu
– 5 masini DUO -FLEX marcate cu alb
– 4 conveioare gravitationale Robital ( 3 de intrare, 1 iesire catre masina de g ravat )

FLORESCU I. Bogdan -Gabriel

17

Fig. Conveior gravitational cu role
Conveiorul gravitational Robital este construit din profile Maytec de aluminiu pr ofilate,
capace din plastic pentru profilele maytec, role rollven tip 28a, baza de plastic pentru
preluarea denivelarilor de la nivelul solului, piese de legatura proiectate special pentru
preluarea inclinatiei conveiorului.
Lungime conveior = 1500mm, h i ntrare= 1200, h iesire = 1100

Fig. Vedere laterala conveior gravitational

FLORESCU I. Bogdan -Gabriel
18

Fig. Vedere cale de rulare conveior gravitational

– Robot RS005L

– Fig. Specificatii robot RS005 L

– Axa de translatie robot ( cu negru dimensiunea sinei de translatie, cu alb
dimensiunea de gabarit)
S-a inceput prin a introduce cel mai mic robot care ar putea ridica tavita cu cele
două lentile in gr eutate de 1 kg cât si a efectorului. Din acest motiv s-a inceput testar ea cu
robotul RS 005L cu masa portanta de 5kg , montat pe un stativ, care, la rândul său a fost
montat pe axa de trans latie la baza. Acest lucru permite ridicarea robotului la 1m deasupra
axei de translatie si atingerea punctelor de preluare necesare. S-a continuat în același
timp și o ptimizarea layoutului .

FLORESCU I. Bogdan -Gabriel

19

Fig. Axa de translatie robot F972000

Axa de translatie la baza este modulara si este produsa de Tiesse Robot. Masa
portanta maxima este de 600 kg, acceleratia maxima este de 2m/s2.

FLORESCU I. Bogdan -Gabriel
20
Versiunea 2 :

Fig. Versiunea 2 K -roset

S-a putut constata ca pentru aceasta aplicatie desi RS005L poate face fata din
punct de vedere al masei portante, el nu poate atinge cu usurinta pozitiile de preluare de
pe masini , chiar si cu ridicarea robotului pe un suport de 1m, necesitand inlocuirea
acestuia cu robotul RS006L , avand masa portanta de . In acelasi timp s -a modificat pozitia
conve ioarelor de intrare pentru a facilita traseul robotului in aplicatie.

Fig. Specificatii robot RS006L

FLORESCU I. Bogdan -Gabriel

21
Versiunea 3 :

Fig. Versiunea 3 K-roset

S-a continuat cu optimizarea layoutului prin mutarea celor trei conveioare de intrare
cat mai aproape de masinile ORBIT pentru scurtarea drumului robotului. In acelasi timp a
fost calculat ă si pozitia sinei in partea stanga , astfe l încat sa permita robotului sa atinga
toate punctele nesesare de pe masini.

Versiunea 4 :

Fig. Versiunea 4 K-roset

Studiul a fost continuat prin a muta din nou conveioarele in raport cu masinile Orbit
din acelasi princip iu. Conveioarele fiind acum pozitionate intre 2 masini Orbit, robotul poate
prelua tavita de pe conveior si sa o depuna pe oricare din cele doua masini fara a se
deplasa pe axa 7.

FLORESCU I. Bogdan -Gabriel
22

Versiunea 5 :

Fig. Versiunea 5 K-roset

Au fost apoi adaug ate mici conveioare gravitationale pentru asigurarea unui buffer de 1
tavita pe intrarile si iesirile din masini.

Versiunea 6 :

Fig. Versiunea 6 K -roset

A fost testat ă atingerea tuturor punctelor de pe mas ini cu ajutorul afisarii spatiului de
lucru in k -roset . In acelasi timp s-a continuat si optimizarea layoutului prin suprapunerea

FLORESCU I. Bogdan -Gabriel

23
celor treiconveioare de intrare pentru a avea m ai mult spatiu si micsorarea tras eului
robotului pe axa 7.

Versiunea 7 :

Fig. Versiunea 7 K -roset

A fost stabilită lungimea minima a sinei , 11268mm, prin verificarea atingerii
punctelor de pe capetele acesteia. Deoarece axa de transaltie este modulara din module
cu lungimea de 800mm plus capetele incative ale acesteia ne rezul ta marimea minima a
echipamentului de 11900mm .
In acelasi timp pentru optimizare a u fost stabilite intrarile si iesirile din masini pentru
a micsora si mai mult traseul de parcurs al robotului pe axa 7. Intrarile in masini au fost
marcate cu verde, repre zentand conveiorul pentru buffer de 1 tavita. Iesirile au fost
marcate cu maro , de asemenea avand conveior de buffer de 1 tavita. In acest fel robotul
din pozitia afisata in poza poate ajunge sa preia tavite de pe cele 3 conveioare si sa le
depuna pe cele doua masini orbit apropiate fara a efectua miscare de translatie la baza.
Acest lucru mareste viteza de manipulare a pieselor pentru incarcarea pieselor in cele
doua masini si scade uzura axei de translatie.

FLORESCU I. Bogdan -Gabriel
24

Versiunea 8 :

Fig. Versiunea 8 K-roset

De la aceasta versiune a sistemului s-a inceput dezvoltarea si testarea progr amului
pentru simulare .

Versiunea 9 :

Fig. Versiunea 9 K -roset

Au fost introduse tavite pentru a simula miscarea lor in program.

FLORESCU I. Bogdan -Gabriel

25

Versiunea 10 :

Fig. Versiunea 10 K -roset

S-a inceput optimizarea traseului robotului pentru ca in timpul miscarii sa nu
loveasca masinile.

Versiunea 11 :

Fig. Versiunea 11 K -roset
S-au salvat punctele pentru preluare si depunere tavite.

FLORESCU I. Bogdan -Gabriel
26
Versiunea 12 :

Fig. Versiunea 12 K -roset
Au fost adaugate notatii pentru masini, pentru a putea identifica si in program fiecare
masina in parte

Versiunea 13 :

Fig. Versiunea 13 K -roset
A fost efectuata o prima simulare in care s-a putut observa ca traiectoriile nu sunt optime si
se pierde mult timp in timpul miscarii pe axa 7.

FLORESCU I. Bogdan -Gabriel

27
Versiunea 14 :

Fig. Versiunea 14 K -roset

In versiunea finala punctele de preluare si de depunere au fost salvate in asa fel
incat robotul sa efectueze cat mai putine deplasari pe axa 7. Pentru acest lucru au fost
alese 5 puncte pe axa 7 de unde robotul poate ajunge la mai multe masini odata. De
exemplu din punctul 1 pe axa 7, robotul poate ajunge si la masina A si la masina 3, din
punctul 3 robotul poate ajunge la cele 3 conveioare si cele 4 masini 1,2,B,C.
Pentru a verifica daca pe traiectoria robotului loveste vreo masina, a fost folosit
plug-in-ul colision check cu distanta coliziune setata la 10mm. In acest fel s -a putut
observa foarte usor daca robotul, pe parcursul celor 23 de manipulari ale tavitelor sau a
miscarilor fara tavita, se apropie la mai putin de 10mm de alte obiecte.
A fost obs ervat in timpul testarilor ca robotul pierde timp daca intr -o miscare are
puncte intermediare pentru a putea, de exemplu, sa efectueze o miscare de la iesirea
masinii 1 la intrarea masinii D, care este pe partea opusa. Intr -un astfel de punct robotul
incet ineste pentru a atinge punctul si apoi accelereaza pentru a ajunge la urmatorul punct.
Pentru a optimiza aceste miscari a fost folosita comanda de setare a acuratetii prin care
robotul confirma ca atinge punctul respectiv chiar daca se afla la o anumita di stanta de
acesta. Am folosit comanda „ ACCURACY 100 ALWAYS ” prin care robotul confirma ca
atinge toate punctele din timpul miscarii la o distanta de 100mm. S -a mai folosit si
activarea functiei „ continous path „ cu ajutorul careia robotul se misca fluid atu nci cand are
de atins mai multe puncte, fara opriri. Atunci cand robotul trebuie sa preia sau sa depuna
tavita, a fost folosita comanda „ ACCURACY 1 FINE ” care seteaza acuratetea robotului
doar pentru urmatoarea miscare, cea de preluare, la 1mm.
Tot pentru optimizarea traseului a fost realizata o prioritizare a miscarilor intre
masini. Astfel robotul verifica prima data daca masina 1, 2,3 (in aceasta ordine) poate primi
1

5

4

3

2

FLORESCU I. Bogdan -Gabriel
28
tavita. Daca masinile respective pot fi alimentate acestea sunt alimentate tot in ordine a
1,2,3. Apoi sunt verificate iesirile din masinile 1,2,3. Daca exista piese prelucrate, acestea
sunt luate din masinile respective si duse catre cea mai apropiata masina libera care
efectueaza a cea de -a doua prelucrare. Pentru acest lucru a fost efectuat a urmatoarea
prioritizare:
– Cand exista piesa prelucrata in masina 1, se virifica in urmatoarea ordine
masinile : E,D,C,B,A
– Cand exista piesa prelucrata in masina 2, se verifica in urmatoarea ordine
masinile : B,A,C,D,E
– Cand exista piesa prelucrata in masina 3, se verifica in urmatoarea ordine
masinile: A,B,C,D,E
In acest fel sunt evitate traseele mai lungi precum 1 -A sau 2 -E si rezulta o economie de
timp prin reducerea distantei de deplasare a robotului.

FLORESCU I. Bogdan -Gabriel

29
Concluzie asupra simularii

Au fost in total 2 1 de versiuni, in unele dintre ele nu se pot observa diferente in modelul 3D
pentru ca diferentele constau in modificarile aduse programului de simulare.

Astfel s -a ajuns la varianta finala in care am putut face simularea completa si am avut un
rezultat pozitiv in ceea ce priveste productivitatea :

Fig. Layout final

In versiunea finala au fost adaugate pentru fiecare masina conveioare suplimentare
pentru a fi folosite pe post de buffer, masinile au fost pozitionate optim si intrarile lor
exemplificate pentru a fi executat un traseu cat mai scurt. In poza conveioarele verzi
reprezinta partea de intrare in masina, iar celelalte partea de iesire.
De asemenea i n aceasta versiune dupa cum se poate vedea s -a determinat
marimea minima necesara pentru cursa translatiei la baza ( banda neagra) si partea
transparenta reprezinta dimensiunea de gabarit a echipamentului care arata asa :

FLORESCU I. Bogdan -Gabriel
30

Fig. Dimensiuni axa de translatie la baza

Fig. Prinderea robotului pe axa de translatie

FLORESCU I. Bogdan -Gabriel

31

Fig. Vedere laterala axa de translatie

Fig. Vedere frontala axa de translatie

FLORESCU I. Bogdan -Gabriel
32

Acest echipament este produs de catre Tiesse Robot, special conceput pentru a
fi compatibil cu robotii kawasaki.
De asemenea in simulare am numerotat masinile, s -a constatat din calcule ca
productivitatea ce mai mica o au cele 3 masini orbit fata de cele 5 duoflex, asa ca in
program a fost prioritizata alimentarea celor trei masini pentru a nu ajunge in situatia ca
acele masini sa ramana in repaus din cauza robotului.

Fig. Vedere k -roset, teach pendant virtual

Pentru verificarea programului de simulare a fost realizata o interfata pe teach pendantul
virtual din K -roset. Aceasta interfata cuprinde :
– Cu rosu intrarile si iesirile din masinile ORBIT 1,2,3 asa cum sunt ele marcate in
program, m 11i (intrare masina 1 ), m1 1o (iesire/output masina 1) , etc
– Intrarile si iesirile din cele 5 masini DUO -FLEX , m21i/m21o (intrare/iesire masina
A), etc.
– Numarul de piese e vacuate catre laser de la fiecare masina DUO -FLEX in parte,
e1,e2,e3,e4,e5
– Numarul total de piese intrate in sistem „i”
– Buffer pentru masinile ORBIT (a fost folosit pentru test)

FLORESCU I. Bogdan -Gabriel

33
– Timpul de lucru al masinilor ORBIT SI DUO -FLEX t1,t2
– Ecran pe care am afisat timpul de simulare si un ceas cu timpul real
Simularea in K -roset nu ruleaza la viteza de 1 la 1 fata de timpul real, ci ruleaza in functie
de puterea procesorului si de resursele disponibile pe calculatorul unde ruleaza simularea.
Acest lucru inseamna c a pe un calculator performant o simulare de 2 ore poate dura
cateva minute, sau pe un calculator slab mai mult de 2 ore. Chiar si aplicatiile deschise pe
langa k -roset poate influenta viteza de simulare. De aceea am adaugat acest ecran galben
cu timpul de simulare si cu timpul real. K -roset la sfarsitul simularii calculeaza timpul real
de simulare si poate afisa timpul real exact pentru fiecare miscare efectuata in parte.

Fig. Teach pendant virtual

FLORESCU I. Bogdan -Gabriel
34
1.3 Crearea programului pentru simulare

Pentru realizarea simularii este nevoie a fi creat programul pentru robot. Dar in acest
caz a fost nevoie ca in interiorul programului robotului sa se introduca si functionarea
masinilor pentru a putea simula corect. Asadar s -a inceput prin a fi creata o schita a
programului dupa care sa ma ghidez si care sa o tra nsform ulterior in program AS.
Am continuat prin verificarea programului scris si rezolvarea problemelor pentru a fi
sigur ca simularea este 100% reala. Pentru aceasta a m introdus pe teachpendantul virtua l
o serie de variabile prin care am putut sa verific productivitatea si mai ales functionarea
corecta a programului. Am adaugat un cronometru prin care sa pot vedea timpul de
simulare ( timpul de simulare nu corespunde cu timpul real, el depinzand de puter ea de
procesare a calculatorului si de resursele disponibile, iar la finalul simularii este calculat
timpul de simulare real pe baza timpului de procesare, dar pentru a putea vedea in timp
real cronometru a fost nevoie de aceasta solutie cu afisarea lui pe teachpend ant printr -un
program supliment ar).
Pozitiile de preluare ale robotului au fost si ele optimizate si realizat un program
corezpunzator pentru a micsora timpul de deplasare intre masini. Au fost folosite doar 5
pozitii pe axa 7, cea care ar putea incetinii robotul. De exemplu pentru preluarea de pe
conveioarele de intrare, si punerea pe piesei pe primele 2 masini s -a folosit o singura
pozitie pe axa 7. Asa ca cand este executata o preluare de pe conveior si depunere pe
masina robotul nu se misca si pe axa 7 ci doar pe cele 6 axe principale ale lui, ceea ce
mareste timpul de deplasare considerabil.

Principiul de functionare al programului
Programul functioneaza porneste prin resetarea tuturor celor 34 de variabile folosite
si a celor 30 de semnale interne. Apoi programul intra intr -o bucla continua in care verifica
mereu semnale (virtuale) atribuite fiecarei masini. Cand un semnal este acti v robotul
porneste programul de miscare si realizeaza miscarea corespunzatoare semnalelor
primite. De exemplu daca semnalul de la intrare masina orbit 1 este activ, robotul pleaca si
preia piesa de pe conveiorul de intrare si se duce sa depuna pe masina ORBIT 1.
Pentru intelegerea usoara a principiului de functionarea a programului am realizat
schema bloc a acestuia :

FLORESCU I. Bogdan -Gabriel

35

Fig. Schema logică a programului de simulare

Dupa pornirea programului pe robot, acesta ramane intr -o bucla continua unde verifica
mereu semnale de la masinile deservite (bucla este verificata odata la cateva fractiuni de
secunda) . Cand una din masini este libera, robotul primeste un semnal si executa
programul de miscare necesar. Daca nici o masina nu este libera sau are piesa termi nata
de prelucrat robotul ramane in bucla si verifica la fiecare 4us cate o linie de program.

2. Programul final pentru simulare :
Programul utilizat pentru simulare este realizat din 3 programe care sunt aratate mai
jos.
Programul principal este programul in care robotul ramane in bucla si verifica semnalele
de la masini.
Programul autostart este un program care se executa automat si functioneaza in
paralel cu programul principal. Acesta functioneaza pe acelasi principiiu de bucla, doar ca
acum acesta simuleaza timpii de prelucrare pentru fiecare masina in parte . Acest tip de
program “autostart” nu poate realiza miscari pentru robot ci doar calcule si temoporizari
pentru a ajuta programul principal.
Urmatorul program est e programul de miscare care realizeaza toate miscarile
robotului in functie de cum este acesta chemat din programul principal
“move(#iesire12,#intrare24)” .

FLORESCU I. Bogdan -Gabriel
36
Programul principal :

.PROGRAM principal()
#17
PCABORT 1:
PCABORT 2:
TWAIT 0.1
PCEXECUTE 1:
autostart.pc
TWAIT 0.1
PCEXECUTE 2:
testare3
; SPEED 70 ALWAYS
ACCEL 50 ALWAYS
DECEL 50 ALWAYS
ACCURACY 100
ALWAYS
SIGNAL -2001, -2002, –
2003, -2004, -2005, -2006, –
2007, -2008, -2009, -2010, –
2011, -2012
SIGNAL -2013, -2014, –
2015, –
2016,2030,2031,2032, –
2090, -2091, -2092, -2093, –
2094, -2095, -2096, -2097
SIGNAL -9,10
i = 0
m11i = 0
m12i = 0
m13i = 0
m21i = 0
m22i = 0
m23i = 0
m24i = 0
m25i = 0
m11o = 0
m12o = 0
m13o = 0 m21o = 0
m22o = 0
m23o = 0
m24o = 0
m25o = 0
e1 = 0
e2 = 0
e3 = 0
e4 = 0
e5 = 0
UTIMER @piesa11 = 0
UTIMER @piesa12 = 0
UTIMER @piesa13 = 0
UTIMER @piesa21 = 0
UTIMER @piesa22 = 0
UTIMER @piesa23 = 0
UTIMER @piesa24 = 0
UTIMER @piesa25 = 0
flag1 = 0
flag2 = 0
flag3 = 0
flag4 = 0
flag5 = 0
10;HOME
CALL intrare11
i = i+1
UTIMER @piesa11 = 0
; DLYSIG 2004,t1
m11i = m11i+1
TYPE "Prima piesa M11
in lucru."
CALL intrare12
i = i+1
; DLYSIG -2002,t1
; DLYSIG 2005,t1
; DLYSIG 2031,t1
m12i = m12i+1 UTIMER @piesa12 = 0
TYPE "Prima piesa M12
in lucru."
CALL intrare13
i = i+1
; DLYSIG -2003,t1
; DLYSIG 2005,t1
; DLYSIG 2032,t1
m13i = m13i+1
UTIMER @piesa13 = 0
TYPE "Prima piesa M13
in lucru."
; END
load:
; IF SIG( -2001) THEN
; CALL intrare11
; m11i= m11i+1
; END
; IF SIG( -2002) THEN
; CALL intrare12
; m12i=m12i+1
; END
; IF SIG(-2003) THEN
; CALL intrare13
; m13i=m13i+1
; END
begin:
SIGNAL 1
IF (m11i<b1) THEN
CALL intrare11
i = i+1
SIGNAL 2001
m11i = m11i+1
END
BREAK
IF (m12i<b1) THEN
CALL intrare12

FLORESCU I. Bogdan -Gabriel

37
i = i+1
SIGNAL 2002
m12i = m12i+1
GOTO begin
END
IF (m13i<b1) THEN
CALL intrare13
i = i+1
SIGNAL 2003
m13i = m13i+1
GOTO begin
END
BREAK
IF (m11o>0 AND
(m21i==0 OR m22i==0
OR m23i==0 OR
m24i==0 OR m25i==0))
THEN
IF m25i==0 THEN
IF flag5==0 THEN
UTIMER @piesa25
= 0
flag5 = 1
END
CALL move1125
BREAK
SIGNAL -2004
SIGNAL 2015
m25i = m25i+1
m11o = m11o -1
TYPE
UTIMER(@piesa11)
GOTO begin
END
IF m24i==0 THEN
IF flag4==0 THEN
UTIMER @piesa24
= 0
flag4 = 1 END
CALL
move(#iesire11,#intrare2
4)
SIGNAL -2004
SIGNAL 2013
m24i = m24i+1
m11o = m11o -1
GOTO begin
END
IF m23i==0 THEN
IF flag3==0 THEN
UTIMER @piesa23
= 0
flag3 = 1
END
CALL
move(#iesire11,#intrare2
3)
SIGNAL -2004
SIGNAL 2011
m23i = m23i+1
m11o = m11o -1
GOTO begin
END
IF m22i==0 THEN
IF flag2==0 THEN
UTIMER @piesa22
= 0
flag2 = 1
END
CALL
move(#iesire11,#intrare2
2)
SIGNAL -2004
SIGNAL 2009
m22i = m22i+1
m11o = m11o -1
GOTO begin END
IF m21i==0 THEN
IF flag1==0 THEN
UTIMER @p iesa21
= 0
flag1 = 1
END
CALL
move(#iesire11,#intrare2
1)
SIGNAL -2004
SIGNAL 2007
m21i = m21i+1
m11o = m11o -1
GOTO begin
END
END
IF (m12o> 0 AND
(m21i==0 OR m22i==0
OR m23i==0 OR
m24i==0 OR m25i==0))
THEN
IF m22i==0 THEN
IF flag2==0 THEN
UTIMER @piesa22
= 0
flag2 = 1
END
CALL
move(#iesire12,#intrare2
2)
SIGNAL -2005
SIGNAL 2009
m22i = m22 i+1
m12o = m12o -1
GOTO begin
END
IF m21i==0 THEN
IF flag1==0 THEN

FLORESCU I. Bogdan -Gabriel
38
UTIMER @piesa21
= 0
flag1 = 1
END
CALL move1221
SIGNAL -2005
SIGNAL 2007
m21i = m21i+1
m12o = m12o -1
GOTO begin
END
IF m23i==0 THEN
IF flag3==0 THEN
UTIMER @piesa23
= 0
flag3 = 1
END
CALL
move(#iesire12,#intrare2
3)
SIGNAL -2005
SIGNAL 2011
m23i = m23i+1
m12o = m12o -1
GOTO begin
END
IF m24i==0 THEN
IF flag4==0 THEN
UTIMER @piesa24
= 0
flag4 = 1
END
CALL
move(#iesire12,#intrare24)
SIGNAL -2005
SIGNAL 2013
m24i = m24i+1
m12o = m12o -1
GOTO begin END
IF m25i==0 TH EN
IF flag5==0 THEN
UTIMER @piesa25
= 0
flag5 = 1
END
CALL
move(#iesire12,#intrare2
5)
SIGNAL -2005
SIGNAL 2015
m25i = m25i+1
m12o = m12o -1
GOTO begin
END
END
IF (m13o> 0 AND
(m21i==0 OR m22i==0
OR m23i==0 OR
m24i==0 OR m25i==0))
THEN
IF m21i==0 THEN
IF flag1==0 THEN
UTIMER @piesa21
= 0
flag1 = 1
END
CALL
move(#iesire13,#intrare2
1)
SIGNAL -2006
SIGNAL 2007
m21i = m21 i+1
m13o = m13o -1
GOTO begin
END
IF m22i==0 THEN
IF flag2==0 THEN UTIMER @piesa22
= 0
flag2 = 1
END
CALL
move(#iesire13,#intrare2
2)
SIGNAL -2006
SIGNAL 2009
m22i = m22i+1
m13o = m13o -1
GOTO begin
END
IF m23i==0 THEN
IF flag3==0 THEN
UTIMER @piesa23
= 0
flag3 = 1
END
CALL
move(#iesire13,#intrare2
3)
SIGNAL -2006
SIGNAL 2011
m23i = m23i+1
m13o = m13o -1
GOTO begin
END
IF m24i==0 THEN
IF flag4==0 THEN
UTIMER @piesa24
= 0
flag4 = 1
END
CALL
move(#iesire13,#intrare2
4)
SIGNAL -2006
SIGNAL 2013

FLORESCU I. Bogdan -Gabriel

39
m24i = m24i+1
m13o = m13o -1
GOTO begin
END
IF m25i==0 THEN
IF flag5==0 THEN
UTIMER @piesa25
= 0
flag5 = 1
END
CALL
move(#iesire13,#intrare2
5)
SIGNAL -2006
SIGNAL 2015
m25i = m25i+1
m13o = m13o -1
GOTO begin
END
END
IF (m21o>0 OR m22o>0
OR m23o>0 OR m24o>0
OR m25o>0) THEN
IF m21o>0 THEN CALL
move(#iesire21,#evacuar
e)
SIGNAL ( -2008)
m21o = m21o -1
e1 = e1+1
TYPE "Piesa M21
evacuata"
END
IF m22o>0 THEN
CALL move22e
SIGNAL ( -2010)
m22o = m22o -1
e2 = e2+1
TYPE "Piesa M22
evacuata"
END
IF m23o>0 THEN
CALL move23e
SIGNAL ( -2012)
m23o = m23o -1
e3 = e3+1
TYPE "Piesa M23
evacuata"
END
IF m24o>0 THEN CALL
move(#iesire24,#evacuar
e)
SIGNAL ( -2014)
m24o = m24o -1
e4 = e4+1
TYPE "Piesa M24
evacuata"
END
IF m25o>0 THEN
CALL
move(#iesire25,#evacuar
e)
SIGNAL ( -2016)
m25o = m25o -1
e5 = e5+1
TYPE
UTIMER(@piesa25)
TYPE "Piesa M25
evacuata"
END
END
GOTO begin
30
.END

Programul de miscare parametrizat:

.
PROGRAM move(.#prel,.#dep)
#1109
DECOMPOSE a[1] = #HERE
DECOMPOSE b[1] = .#prel
DECOMPOSE d[1] = .#dep
DECOMPOSE h[1] = #h ;home
ACCURACY 100 ALWAYS
; point #
xtrail = b[7] -a[7] drive1 = b[1] -a[1]
; DRIVE 7,xtrail
IF (ABS(a[1])>=140 OR
ABS(b[1])>=140) THEN
CP ON
JMOVE
#PPOINT(a[1],h[2],h [3],h[4],h[5],h[6],a[7])
JMOVE
#PPOINT(h[1],h[2],h[3],h[4],h[5],h[6],b[7])

FLORESCU I. Bogdan -Gabriel
40
; JMOVE
#PPOINT(b[1],h[2],h[3],h[4],h[5],h[6],b[7])
JAPPRO .#prel,500
CP OFF
ELSE
JAPPRO .#prel,500
END
SPEED 20
ACCURACY 1 FINE
JMOVE .#prel
BREAK
SIGNAL 9, -10
TWAIT 0.6
JDEPART 500
;JMOVE
#PPOINT(h[1],h[2],h[3],h[4],h[5],h[6],b[7])
DECOMPOSE a[1] = #HERE
; DECOMPOSE b[1] = .#dep
xtrail = d[7] -a[7]
; DRIVE 7,xtrail
drive1 = d[1] -a[1]
IF (ABS(a[1])>=140 OR
ABS(d[1])>=140) THEN
CP O N JMOVE
#PPOINT(a[1],h[2],h[3],h[4],h[5],h[6],a[7])
JMOVE
#PPOINT(h[1],h[2],h[3],h[4],h[5],h[6],d[7])
JMOVE
#PPOINT(d[1],h[2],h[3],h[4],h[5],h[6],d[7])
JAPPRO .#dep,500
TYPE ABS(d[1]),ABS(b[1])
CP OFF
ELSE
JAPPRO .#dep,500
END
; JAPPRO .#dep,100
SPEED 20
ACCURACY 1 FINE
JMOVE .#dep
BREAK
SIGNAL -9,10
TWAIT 0.6
; SIGNAL 2001
JDEPART 500
;JMOVE
#PPOINT(h[1],h[2],h[3],h[4],h[5],h[6],b[7])
RETURN
.END

Programul autostart care simuleaza fun ctionarea masinilor

.PROGRAM autostart.pc() #0
UTIMER @piesa11 = 0
10 IF (UTIMER(@piesa11)>t1
AND (m11i>0)) THEN
DLYSIG (2004),t1
SIGNAL -2001
m11i = m11i -1
TWAIT 0.01
m11o = m11o+1
TYPE "Piesa M11 gata" TYPE UTIMER(@piesa11)
UTIMER @piesa11 = 0
END
IF (UTIMER(@piesa12)>t1 AND
(m12i>0)) THEN
DLYSIG (2005),t1
SIGNAL -2002
m12i = m12i -1
TWAIT 0.01
m12o = m12o+1

FLORESCU I. Bogdan -Gabriel

41
TYPE "Piesa M12 gata"
TYPE UTIMER(@piesa12)
UTIMER @piesa12 = 0
END
IF (UTIMER(@piesa13)>t1 AND
(m13i>0)) THEN
DLYSIG 2006,t1
SIGNAL -2003
m13i = m13i -1
TWAIT 0.01
m13o = m13o+1
TYPE "Piesa M13 gata"
TYPE UTIMER(@piesa13)
UTIMER @piesa13 = 0
END
IF (UTIMER (@piesa21)>t2 AND
(m21i>0)) THEN
; DLYSIG 2008,t2
SIGNAL -2007
;PULSE 2093,t2
m21i = m21i -1
TWAIT 0.01
m21o = m21o+1
TYPE "Piesa M21 gata"
TYPE UTIMER(@piesa21)
UTIMER @piesa21 = 0
END
IF (UTIMER(@piesa22)>t2 AND
(m22i> 0)) THEN
SIGNAL -2009
m22i = m22i -1
TWAIT 0.01
m22o = m22o+1
TYPE "Piesa M22 gata"
TYPE UTIMER(@piesa22) UTIMER @piesa22 = 0
END
IF (UTIMER(@piesa23)>t2 AND
(m23i>0)) THEN
SIGNAL -2011
m23i = m23i -1
TWAIT 0.01
m23o = m23o+1
TYPE "Piesa M23 gata"
TYPE UTIMER(@piesa23)
UTIMER @piesa23 = 0
END
IF (UTIMER(@piesa24)>t2 AND
(m24i>0)) THEN
SIGNAL -2013
m24i = m24i -1
TWAIT 0.01
m24o = m24o+1
TYPE "Piesa M24 gata"
TYPE UTIMER(@piesa24)
UTIMER @piesa24 = 0
END
IF (UTIMER(@piesa25)>t2 AND
(m25i>0)) THEN
SIGNAL -2015
m25i = m25i -1
TYPE UTIMER(@piesa25)
TWAIT 0.01
m25o = m25o+1
TYPE "Piesa M25 gata"
TYPE UTIMER(@piesa25)
UTIME R @piesa25 = 0
END
GOTO 10
.END

FLORESCU I. Bogdan -Gabriel
42
Rezultate Simulare :

Prima data s -a simulat robotul la viteza de 50% si am avut urmatoarele rezultate :

Fig. Viteza 50%, timp scurs 1803 secunde

FLORESCU I. Bogdan -Gabriel

43

Fig. Viteza 50%, timp scurs 3603 secunde

Fig. Viteza 50%, timp scurs 5401 secunde

FLORESCU I. Bogdan -Gabriel
44

Fig. Viteza 50%, timp scurs 7200 secunde

Se observa ca dupa 2 ore de simulare au fost evacuate 122 de piese, dar au ramas
acumulate pe traseu alte 32 de piese.
Pentru ca nu s -a atins obiectivul la aceasta viteza, a mai fost facuta o simulare la
viteza de 60%:

FLORESCU I. Bogdan -Gabriel

45

Fig. Viteza 60%, timp scurs 1802 secunde

Fig. Viteza 60%, timp scurs 3697 secunde

FLORESCU I. Bogdan -Gabriel
46

Fig. Viteza 60%, timp scurs 7208 secunde

Se poate observa ca au fost evacuate dupa 2 ore spre laser 151 de piese si nu s -a
mai produs acumulare de piese pe traseu. Pentru asigurarea productivitatii era nevoie de o
medie de 75 de piese/ ora asa ca se poate spune ca productivitatea ceruta a sistemului
este atinsa la o viteza de 60%.
Programul folosit in simularea ofline poate fi folosit si la aplicatia reala prin
modificarea semnalelor virtuale cu semnale rea le de la senzorii amplasati in punctele de
preluare si depunere a tavitelor.

FLORESCU I. Bogdan -Gabriel

47
Bibliografie

Home


https://robotics.kawasaki.com/
http://www.rollven.com

Startseite

Similar Posts