![如何在機器人執行程序時捕獲DI脈衝信號?](http://p2.ttnews.xyz/loading.gif)
1)機器人執行程序都是一行一行執行的,比如:
![如何在機器人執行程序時捕獲DI脈衝信號?](http://p2.ttnews.xyz/loading.gif)
2)如果機器人在執行第1行的時候,收到了cam_di信號,而運行到第3行的時候,cam_di信號被PLC置為FALSE了,那麼執行第4行的時候,機器人就會一直等待信號。
3)實際上,cam_di信號曾經有過,只是機器人沒有執行到waitdi語句。
4)可以使用中斷來實現上述要求
5)創建一個bool變量flag1,置為false
6)創建一箇中斷號int_cam
7)新建一個新的routine,類型為中斷trap,該類型routine不能直接運行,必須由IsignalXX類似指令觸發
中斷程序內容如下:
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元課程
閱讀更多 機器人學院 的文章