程式設計的概要
下面說明Part Feeding程式設計的概要。詳細內容將在本章之後說明。
在大多數的應用程式中,送料器的運作是由系統自動執行的。此外,基本的SPEL程式是自動生成的。該程式由生成的SPEL函數(稱為回呼函數)所組成。
執行時,由系統呼叫回呼函數。滿足以下條件時,會進行呼叫:
| PF_Robot函數 | 送料器上有可拾取的零件時 |
| PF_Status函數 | 狀態改變時 |
| PF_Vision函數 | 在使用PF_Vision callback進行視覺處理時 |
| PF_Feeder函數 | 進行自訂的送料器控制時 |
| PF_Control函數 | 控制料斗或前側光等時 |
| PF_MobileCam函數 | 使用移動式攝影機,為了檢測零件而將攝影機移動到送料器上方時 |
| PF_CycleStop函數 | 停止Part Feeding的運作時 |
若為了處理特定需求,則需要修改回呼函數。
在大多數應用程式中,需要使用PF_Robot和PF_Status回呼函數。
以下為各回呼函數的概要:
PF_Robot回呼函數
當送料器的運作和視覺處理完成且判斷可以拾取零件時,會自動執行PF_Robot回呼函數。編寫實現零件取放動作的程式碼。在單純的應用程式中,會編寫幾行實現機器人取放動作和夾爪(抓住零件的結構)運作的程式碼。PF_Robot回呼函數結束後,將會執行PF_Status回呼函數。
PF_Status回呼函數
各回呼函數完成後,會自動執行PF_Status回呼函數。PF_Status將會根據各回呼的回傳值,向系統指示繼續執行的方法。或是PF_Status將向操作員通知發生錯誤狀態。該錯誤內容可能是機器人過載扭矩錯誤等系統層級的錯誤,或是料斗供料太少、太多等Part Feeding的錯誤。PF_Robot回呼函數中需記載如何因應發生的錯誤。針對簡單的應用程式,無需修改PF_Status回呼函數的程式碼。
而針對更複雜的應用程式,則可能需由您自行編寫視覺處理的程序。於此情況下,則需要使用PV_Vision回呼函數。以下為PF_Vision回呼函數的概要:
PF_Vision回呼函數
若要由您進行零件送料器的視覺處理而非由系統進行視覺處理,則在PF_Vision回呼函數中編寫必要的處理。需要從攝影機擷取影像、執行檢測零件的序列、取得結果,並將結果新增到零件座標佇列中。在簡單的應用程式中,會由系統進行視覺處理,因此無需編寫PF_Vision回呼函數。
如需詳細資訊,請參閱以下內容。
PF_Vision
在極少數情況下,需要使用您自行準備的照明而非內建的背光。PF_Control回呼函數用於控制您準備的照明。而您所準備料斗的控制也是透過PF_Control回呼函數執行的。此外,本公司料斗(選購品)的控制也是透過PF_Control回呼函數執行的。以下為PF_Control回呼函數的概要:
PF_Control回呼函數
當系統判斷需要從料斗供料,或判斷需要開啟/關閉照明時,將會自動執行PF_Control回呼函數。使用EPSON的料斗(選購品)時,需要對PF_Control回呼函數中註解掉的PF_OutputONOFF命令取消註解。
PF_MobileCam回呼函數
若要使用安裝在機器人上的移動式攝影機,而非安裝在送料器上方的朝下攝影機,則會自動執行PF_MobileCam回呼函數。在PF_MobileCam回呼函數中,編寫讓機器人將攝影機移動到送料器上方的程式碼。此外,也要編寫在檢測到零件並將零件資料新增到Part Feeding佇列後,讓機器人從送料器上方退避的動作。使用朝下固定的攝影機時,無需編寫PF_MobileCam回呼函數。
PF_CycleStop回呼函數
執行PF_Stop後,會自動執行PF_CycleStop回呼函數。PF_CycleStop回呼函數可用於編寫結束處理的程序,例如將機器人退避到安全位置或開啟/關閉輸出等操作。在簡單的應用程式中,無需編寫PF_CycleStop回呼函數。
PF_Feeder回呼函數
當您的設備或零件無法透過自動送料器控制進行處理時,則可在PF_Feeder回呼函數中使用PF_Flip命令或PF_Shift命令等,以SPEL程式碼編寫送料器運作。一般而言,不需要編寫PF_Feeder回呼函數。
所有回呼函數都需要設定回傳值。若要透過函數回傳數值,則將數值指派給函數名稱(例如,PF_Robot = PF_CALLBACK_SUCCESS,其中PF_CALLBACK_SUCCESS是定義為值0的常數)。正常結束時,回傳值為PF_CALLBACK_SUCCESS。PF_Status會在任一回呼函數完成或發生錯誤之後,向系統指示繼續執行的方法。系統需要辨別欲執行的操作(繼續、結束、重新啟動等)。例如,可藉由將回傳值設為常數PF_EXIT的方式來結束。在簡單的應用程式中,可以直接使用自動生成的回呼函數之回傳值。
如需詳細資訊,請參閱以下內容。
Part Feeding回呼函數
下一頁為執行取放時的程式整體流程圖。