- 回首頁
- 機械工業雜誌
|機器手臂控制語言開發設計
作者
紀佃昀
刊登日期:
摘要:在機器手臂的控制器開發上,除了需要提供使用者簡易操作介面來操縱機器人外,對於複雜動作的問題,也要能夠提供平易近人的控制語言進行操作,類似於工具機上的NC語法,而我們將它稱之為機器人語言(Robot Language),利用Robot Language可以完成的工作包含有路徑規劃、數學方程、IO控制、同步控制、系統溝通等,也因此一個良好且功能豐富的機器人控制語言設計是非常重要的。
Abstract: The development of robot-arm’s controller should not only provide easy-to-use operation interface to control robots, but also provide friendly control-script for complicate actions. It’s like NC code and we call it Robot Language. Using Robot Language, we can do these works including path plan, math computing, I/O control, synchrotron control, and system communication. Therefore, a good and multi-function robot language is very important.
關鍵詞:機器人語言、解譯器、遞迴演算法
Keywords:Robot Language, Decoder, Recursive Algorithm
機器人控制語言設計規劃
在設計機器人控制語言之前,我們必須先了解一個完整的機器人系統包含了哪些功能,有哪些功能是必須要由Robot Language來控制的,也因此由整機系統的各個模組,其軟體的規格列表必須先被規劃出來,如圖1。
另外,根據我們所需要的各種功能我們可以設計相關指令,而為了便於工廠操作人員的習慣以及便利性,我們需要參考工具機NC語法的設計,這樣一來,使用者在使用Robot Language時,便較容易上手且不會產生排斥感,並且在全系統機電整合自動化設計也較不容易出錯,而圖2列出傳統一般的NC語法控制器畫面。
由圖2系統可以得知,在機器人語言的設計規劃上,必須制定標準命令如G01、G17、M01等指令,各指令包含移動命令、設定命令等,且程式由上而下順序執行,每筆命令後接續各個命令之參數,這是工具機的標準語言,而機器手臂雖然較為複雜了些,但是基本上仍可依照以上的準則去設計,所以我們規劃了包含以下功能以及相關指令的定義:
1. 運動控制功能:
(1)各軸快速移動及點到點直線移動,設計指令如MOVJ、MOVP、MOVL
(2)各軸速度控制,設計指令如SETPTPSPEED、SETLINESPEED
(3)各軸加減速時間控制,設計指令如SETACCTIME、SETDECTIME
(4)各軸加減速模式控制,設計指令如SETACCTYPE、SETDECTYPE
(5)運動等待,設計指令如WAIT、WAITMOTION
(6)整體速度比例控制,設計指令如SETSPEEDRATE
(7)得到目前位置角度,設計指令如GETDEG、GETPOS
(8)得到目前運動狀態,設計指令如GETMOTIONSTATUS
2. I/O控制功能:
(1)接收輸入訊號,含等待以及不等待運動完成,設計指令如INPUT、INPUT2
(2)立即輸出訊號,含等待以及不等待運動完成,設計指令如OUTPUT、OUTPUT2
3. 解譯器功能:
(1)變數系統,可宣告變數並進行運算,設計指令如DIM,設計型態如Number、String、Point分成數字、字串、座標點三種形態
(2)四則運算系統,可進行數學四則運算
(3)判別式系統,建立判別式,分析並選擇是否執行,設計指令如IF~ENDIF
(4)迴圈系統,建立迴圈可重複執行相同程式碼,設計指令如WHILE~LOOP
(5)數學函數計算,設計指令如SIN、COS、TAN、ASIN、SQRT、POW、LOG等指令
(6)系統程式碼運行、暫停、以及結束命令,如RUN、PAUSE、STOP
4. 外部溝通功能:
(1)UART、Ethernet功能,設計指令如NET_GETDEG、NET_GETPOS
(2)外部傳回值暫存器,設計指令如NETREG_GET
5. 視覺系統功能:
(1)攝影機的開關,設計指令如VS_OPEN、VS_CLOSE
(2)影像處理,設計指令如VS_BINARY、VS_PATSEARCH
6. 巨集設計系統:
使用者可將常用的程式段落編寫成巨集供重複使用。
7. 偵錯Robot Language系統:
在正式執行前需先進行指令偵錯,錯誤或模擬兩可的指令必須被排除,如此將可以確保機器手臂系統安全,避免公安傷害。
從以上可知,機器手臂的系統較為複雜,也因此在語法上定義也稍微與NC語法略有差異,其一是使用完整英文描述而非類似G01、G17等簡單描述,原因在於整個機器人系統控制上,我們亦可以透過網路或串列傳輸方式傳遞字串控制機器人,若機器語法採簡單描述,不但可讀性降低,且安全性也較差;而另一個差異則是可宣告變數、判別式、迴圈以及建立巨集,因機器手臂工作上的動作較為複雜,需進行許多數學運算,且為了記錄動作停止時的工作座標點,利用教點方式來完成手臂的相關運動,以及跟周邊I/O進行整合,所以Robot Language的功能需涵蓋許多功能,層次也必須更多更廣。
另外,從整條自動化生產線的觀點來看,一條正在工作的生產線必須安排好幾站,各站機器人皆有其特定工作並進行分工,而因此需要一台終控系統裝置進行整條自動化生產線的排程規劃,並同時控制多台機器手臂、工具機、供料系統等,所以藉由Robot Language,終控系統將可以簡單地控制並監視遠端的機器人,僅需要將執行之命令傳遞給該工作站即可,而整個系統架構則如圖3所示。
總括而言,不管是單機機器人控制抑或是多機自動化排程,一套良好的Robot Language設計可讓自動化生產線運作的更加順利,並且也可讓使用者使用起來得心應手。
更完整的內容歡迎訂購
2012年08月號
(單篇費用:參考材化所定價)
主推方案
無限下載/年 5000元
NT$5,000元
訂閱送出