Escolar Documentos
Profissional Documentos
Cultura Documentos
1,3
7
2
4,6 8,10
5 9
ESTEIRA A
SENSOR A
SENSOR B
ESTEIRA B SENSOR C
ESTEIRA C
Programa do Robô
• Se SensorA igual a HI //sensor da esteira A • Se não se SensorB igual a HI //sensor da
• Movimento J esteira B
• waypoint_1 • Movimento J
• Movimento L • waypoint_4
• waypoint_2 • Movimento L
• seta Gripper=On • waypoint_5
• espera: 1.0 • seta Gripper=On
• waypoint_3 • espera: 1.0 //espera 1 segundo
• executa coloca_na_caixa //definido • waypoint_6
no proximo slide • executa coloca_na_caixa
• senão //se nenhum sensor for ativado
• Movimento J
• waypoint_7
Put_in_box
Put_in_box
MoveJ
Waypoint_8
Wait SensorC=HI
MoveL
Waypoint_9
Set Gripper=Off
Wait: 1.0 //espera 1 segundo
Waypoint_10
InBox:=True
Counter:=Counter+1 //conta quantas peças foram colocadas nas caixas
Threads
Thread 1 //controla a esteira A Thread 3 //controla a esteira C
Set ConveyorA=On
Wait SensorA=HI Set ConveyorC=On
Set ConveyorA=Off Wait SensorC=HI
Wait SensorA=LO
sync() Set ConveyorC=Off
Wait InBox=True
Thread 2 //controla a esteira B
Set ConveyorB=On
InBox:=False
Wait SensorB=HI Set ConveyorC=On
Set ConveyorB=Off
Wait SensorB=LO
Wait SensorC=LO
sync() sync()
Explicação
• O programa usa um if/else, como visto no módulo 9 do treinamento da Universal Robots, para verificar se
os sensores das esteiras A e B foram ativados. Se tiver uma peça esperando na esteira A, o robô vai pegá-la
e levá-la até a caixa. Se tiver uma peça esperando na esteira B e não na A, a peça na esteira B será levada
até a caixa. Caso não haja uma peça em nenhuma das esteiras, o robô se direciona ao ponto determinado
(Waypoint 7) que fica no meio entre os Waypoints 1 e 4, esperando uma peça chegar;
• É utilizado um subprograma (técnica vista também no módulo 9 do treinamento da Universal Robots) para
levar a peça até a caixa, evitando assim a repetição de código. O subprograma Put_in_box é chamado após
o robô pegar uma peça da esteira A ou da esteira B;
• Cada uma das threads controla uma das esteiras;
• A variável Counter é atribuída com o valor de 0 no início do programa e a variável InBox é atribuída com
False.
• Obs: no treinamento, o símbolo usado para comparar os parâmetros do if/else estava inlegível. Portanto
eu usei '==' no lugar do símbolo de comparação, assim como '//' para comentários, apenas como meios de
representação neste trabalho.