直接在程序最后加一行"WaitDI 信号,1",没信号就一直卡在那儿,有信号了就跳回main循环。不用搞什么PLC,省掉两千多块没问题。WaitDI的输入信号接客户那个启动按钮就行,常开点按下去通一下程序就走了。停机的话再加个停止信号的中断,让机器人走完当前轨迹后停。
具体路径:主程序最后一行写
WaitDI di1_start,1;
TPWrite "循环中...";
GOTO main_loop;
main_loop是主程序开头的一个Label,程序结构就是
PROC main()
main_loop:
! 抓取逻辑
MoveJ p10,v1000,z50,tool1;
SetDO do1_grip,1;
WaitTime 0.5;
MoveJ p20,v1000,z50,tool1;
SetDO do1_grip,0;
WaitTime 0.3;
! 回到开头
WaitDI di1_start,1;
GOTO main_loop;
ENDPROC
停机中断用STOP或者做个Trap,把那个DI信号拦下来。客户那个按钮接到安全回路里就好,别用普通的自复位按钮,用带自锁的旋钮或者钥匙开关,避免误触发。