如何在機器人執行程序時捕獲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元課程


分享到:


相關文章: