劉玉倩,劉永進,宋文超
(中國電子科技集團公司第四十五研究所,北京101601)
機械手可在空間抓放物體,動作靈活,廣泛應用于工業自動化設備。目前許多商品化的機械手大都采用封閉結構的專用控制系統,一般采用專用計算機作為上層主控計算機,使用專用語言作為離線編程工具,采用專用微處理器,并將控制算法固化在EPROM 中,這種專用系統很難進行擴展、修改或再集成外部硬件和軟件。本文所研究的機械手以半導體設備為應用實例,開發了氣、電混合驅動的三自由度圓柱坐標型機械手,并根據其控制要求設計了基于CAN 總線的機械手通信協議,可實現自動運送硅片或晶圓片到各個工藝位置,并且可根據晶圓片尺寸及工藝要求更改相關控制參數。
在自動化生產線上,機械手一般由控制系統,驅動系統以及機械本體執行系統組成。執行和驅動系統主要是通過啟動或其他動力來驅動機械部件的運轉來實現取件的功能。控制系統是通過對驅動系統進行控制,使執行系統按照預定的工藝進行操作。本文所研究的機械手結構如圖1所示。

圖1 機械手結構圖
本文所研究的機械手采用安川MP2300 運動控制卡作為下位機,與上位機之間采用CANopen 總線通訊,其控制系統通信拓撲結構如圖2所示。

圖2 機械手CAN 總線通信原理圖
CANopen 為基于CAN 總線的高層協議,它基于CAN 總線的數據鏈路層和物理層,對應用層做出了相應的規定。一個CANopen 設備模型分成三部分:通訊接口、對象字典、應用程序。通訊接口提供在總線上發送和接收通訊對象的服務。對象字典描述了所有的數據類型、通訊對象以及設備制定的對象,是連接應用和通訊之間的媒介。應用層提供了內部控制功能,也提供了與硬件連接的接口。本文基于CANopen 協議實現機械手的通訊。
根據機械手的功能要求,設計PC 機與下位機之間的通信連接線,需要12 個輸入信號和12 個輸出信號來完成通信功能,具體的通信協議見下所述。PC 機輸出信號如表1所示。
PC 機輸入信號如表2所示。
軟件編程的實現,在Windows 平臺下,使用VC++6.0 作為開發工具。Copley 公司提供了功能強大的復層運動控制庫。本文主要使用CANopen類、IOModule 類以及Error 類來實現。主要的功能實現函數如下:
CANOpen 總線通信程序,打開CAN 卡并進行相關參數設置:

表1 上位機-〉下位機指令

表2 下位機-〉上位機指令


上位機輸出執行函數:
int Down_QuickStop(); //機械手緊急停止
int Down_DontMove(); //機械手不動作
int Down_LoadBoxGetWafer(UINT uLayer,UINT nSize); //送片盒取片
int Down_UnloadBoxSetWafer(UINT uLayer,UINT nSize); //放片盒放片
int Down_AjustGetWafer(UINT nSize); //定位機構取片
int Down_AjustSetWafer(UINT nSize); //定位機構放片
int Down_QiangGetWafer(UINT nSize); //腔體卡盤取片
int Down_QiangSetWafer(UINT nSize); //腔體卡盤放片
int Down_SearchHome(); //尋原點
int Down_GoHome(); //回原點
int Down_ScanWafer(UINT nSize); //硅片掃描
int Down_ALarmReset(); //報警復位
int Down_Vacum(bool m_bValue); //開關真空
上位機輸入信號狀態函數:
int Up_Error(); //機械手發生故障
int Up_Busy(); //機械手忙,不接受新指令
int Up_LoadBoxGetWaferSucess(UINT uLayer,UINT nSize); //送片盒取片成功
int Up_UnloadBoxSetWaferSucess(UINT uLayer,UINT nSize); //放片盒放片成功
int Up_AdjustGetWaferSucess(UINT nSize); //定位機構取片成功
int Up_AdjustSetWaferSucess(UINT nSize); //定位機構放片成功
int Up_QiangGetWaferSucess(UINT nSize); //腔體卡盤取片成功
int Up_QiangSetWaferSucess(UINT nSize); //腔體卡盤放片成功
int Up_SeachHomeSucess(); //尋原點成功
int Up_GoHomeSucess(); //回原點成功
int Up_ScanWaferSucess(UINT nSize); //硅片掃描成功
int Up_AlarmResetSucess(); //報警復位成功
int Up_ScanWaferResult(UINT nLayer); //硅片掃描結果
int Up_VacumSucess(bool m_bValue); //開關真空成功標志
利用CAN 總線技術,在Windows 環境下使用VC++6.0 進行軟件編程,提高了控制系統的實時性和可靠性。當機械手工藝位置增加時可增加IO節點,擴展通信協議,滿足設備工藝要求。通過在半導體設備中的應用表明,該機械手運行可靠,能夠完全滿足設計要求。
[1]陽憲惠.現場總線技術及應用[M].北京:清華大學出版社,2008.
[2]鄔寬明.CAN 總線原理與應用系統設計[M].北京:北京航空航天大學出版社,1996.