如何在机器人执行程序时捕获DI脉冲信号?

如何在机器人执行程序时捕获DI脉冲信号?

1)机器人执行程序都是一行一行执行的,比如:

如何在机器人执行程序时捕获DI脉冲信号?

2)如果机器人在执行第1行的时候,收到了cam_di信号,而运行到第3行的时候,cam_di信号被PLC置为FALSE了,那么执行第4行的时候,机器人就会一直等待信号。

3)实际上,cam_di信号曾经有过,只是机器人没有执行到waitdi语句。

4)可以使用中断来实现上述要求

5)创建一个bool变量flag1,置为false

如何在机器人执行程序时捕获DI脉冲信号?

6)创建一个中断号int_cam

7)新建一个新的routine,类型为中断trap,该类型routine不能直接运行,必须由IsignalXX类似指令触发

如何在机器人执行程序时捕获DI脉冲信号?

中断程序内容如下:

如何在机器人执行程序时捕获DI脉冲信号?

如何在机器人执行程序时捕获DI脉冲信号?

8)上述例子22-24行为设置语句,只需要运行一遍即可。

9) 22行删除中断号

10) 23行把中断号int_cam和中断程序cam_trap连接

11)24行设置触发条件,即cam_di由0变1,会自动触发运行cam_trap程序(对于cam_di的扫描,后台一直运行,所以即使机器人没有运行到相关di语句,有了信号也会触发)

12) 这样即使程序运行到25行,PLC 发过信号,机器人运行到26行di信号没有,但执行过中断程序(执行中断过程,机器人运动不停),flag1被置为true。

13)机器人运行到27行,由于flag1为true,即收到过信号,机器人可以运行

14)28行,把flag1重新置为false。

免费领取价值3000元课程


分享到:


相關文章: