Você está na página 1de 7

Trabalho Grau A

Carlos Alberto Gasperin


Waypoints

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.

Você também pode gostar