孟鑫 張聰超 韓警賢

摘要:隨著“1+X”證書制度在高等職業教育中開展,越來越多的學校開設了工業機器人操作與編程這門課程,但在教學中發現,學生們在做機器人編程時邏輯不清晰,寫出的程序雜亂無章?,F依據教學經驗,提出一種“數據+邏輯+進化”的編程思想,并通過一個搬運實例進行深入講解,使機器人編程規范化,找出機器人程序編程內在的規律,使學生們能快速掌握機器人編程技巧。
關鍵詞:工業機器人編程;數據+邏輯+進化;編程思想
引言:
當前,我國經濟和科技均得到了高速發展,以此為基礎,我國現代化制造業不斷向智能化、信息化以及數字化的方向高速發展,隨之,工業機器人技術得到了越來越廣泛的應用,相關專業也應運而生[1]。其中《工業機器人操作與編程》這門課程是機器人專業的核心課程,在教學中發現學生在學習機器人編程的時候邏輯混亂,不知道從哪里入手,程序可讀性也很差,不具備通用性。因此,本文提出一種“數據+邏輯+進化”編程思想,通過對一個搬運實例進行深入講解,使機器人編程規范化,使學生學習機器人編程時邏輯清晰,能夠快速掌握機器人編程技巧,做到舉一反三。
1.機器人品牌的選擇
目前多數高職院校采用ABB機器人進行教學,原因是ABB機器人品牌口碑好,性能好,得到了很多企業的認可[2]。近年來隨著國產機器人的崛起,越來越多國產機器人相關公司與高職院校進行合作共同培養人才,國產機器人的特點是性價比高,編程語言風格更符合中國人的邏輯[3]。我們學校與華中數控有限公司進行校企合作建立了一個“1+X工業機器人操作與編程”考證培訓基地,平時學生的理論學習和實操練習使用的都是華數工業機器人,因此本文是在華數工業機器人操作與編程的基礎上講解論述“數據+邏輯+進化”的編程思想。
2.“數據+邏輯+進化”編程思想
我們先對數據、邏輯和進化這三個名詞進行解釋,然后再結合機器人操作編程論述“數據+邏輯+進化”的編程思想。
數據的定義:對客觀事物的性質、狀態以及相互關系等進行記載的物理符號。不僅僅是數字,也可以是具有一定意義的文字、圖形、視頻等。
邏輯的定義:是指思維的規律和規則,就是事情的因果規律。引入“邏輯”一詞,就是要建立數據之間的因果關系。
進化的定義:又稱為演化,在生物學中是指種群里的基因在世代之間的變化。引入“進化”一詞,就是要說明程序的編寫要從簡單到復雜,從已有的向未知的逐步迭代演化。
2.1機器人編程中的數據
以華數機器人為例,它包含的數據類型有:UT[i]:工具坐標系變量;UF[i]:基坐標系變量;R[i]:數值型變量;JR[i]:關節型坐標變量LR[i]:笛卡爾型坐標變量;I[i]:數字輸入型變量;O[i]:數字輸出型變量。
本文以將工件從A位置搬運到B位置為例來說明數據的建立。將工件從A位置搬運到B位置是一個最簡單的搬運編程,通過分析知此程序至少需要5個基礎數據:
(1)機器人原點:JR[0](通過直接輸入數值獲得)
(2)兩個示教點位:取料點LR[10],放料點LR[11](通過示教器示教獲得)
(3)一個常量點位:抬起高度LR[15](通過直接輸入數值獲得)
(4)一個IO點位:DO[1],吸盤工具開與關。(通過配置IO獲得)
至此,我們已經知道了此任務需要的基礎數據及獲取方式,在后續編程過程中需要的數據要么是基礎數據,要么是利用基礎數據運算得到的計算數據。
2.2 機器人編程中的邏輯
2.1節已對程序需要的數據類型、數量及獲取方式進行了詳細說明,下面論述將工件從A位置搬運到B位置的編程邏輯。
邏輯建立的第一步是對數據的規劃與存儲。由2.1節中我們知道此程序需要獲取5個基礎數據,但在邏輯建立的過程中還需要必要的計算點位,如:
取料點安全高度(LR[20])=取料點(LR[10]) +抬起高度(LR[15])
放料點安全高度(LR[21])=放料點(LR[11]) +抬起高度(LR[15])
此任務編程需要的全部數據為:
(1)機器人原點:JR[0]
(2)兩個示教點位:取料點LR[10],放料點LR[11]
(3)兩個計算點位:取料點安全高度LR[20],放料點安全高度LR[21]
(4)一個IO點位:DO[1],吸盤工具開與關
邏輯建立的第二步是路徑規劃及動作規劃。如下圖,圖中點位位置和箭頭指向表明了運動的邏輯關系,即機器人以何種方式到達哪一個點位,然后執行何種動作,完成何種任務。
至此,我們已經表述清楚了此任務的邏輯關系。
2.3機器人編程中的進化
在我們知道了完成此任務需要的數據,和此任務的編程邏輯后,我們可以立即寫出此任務的程序。我們將程序命名為“MVONE.PRG”,程序內容如下:
MVONE.PRG:
J JR[0] //機器人在原點
LR[20]=LR[10]+LR[15] //定義機器人取料點安全高度
LR[21]=LR[11]+LR[15] //定義機器人放料點安全高度
J LR[20] //機器人運動到取料點安全高度
L LR[10] //機器人運動到取料點
WAIT TIME=500 //等待500毫秒
DO[10]=ON //吸盤開,吸工件
WAIT TIME=500 //等待500毫秒
L LR[20] //機器人運動到取料點安全高度
J LR[21] //機器人運動到放料點安全高度
L LR[11] //機器人運動到放料點
WAIT TIME=500 //等待500毫秒
DO[10]=OFF //吸盤關閉,放工件
WAIT ITME=100 //等待500毫秒
L LR[21] //機器人運動到放料點安全高度
J JR[0] //機器人運動到原點
下面我們對程序進行第一層進化,通過主程序調用子程序的方式實現搬運任務。主程序命名為“MAIN1.PRG”,程序內容如下:
MAIN1.PRG:
CALL “MVONE”
則運行主程序“MAIN1.PRG”后,通過主程序調用子程序的方式來實現搬運。
下面我們對程序進行第二層進化,通過在主程序中對子程序賦值的方式來編程。同樣定義主程序為“MAIN2.PRG”,程序內容如下:
MAIN2.PRG:
LR[10]=LR[30]
LR[11]=LR[31]
CALL “MVONE”
則運行“MAIN2.PRG”,表明主程序調用子程序,其中示教點位保存在LR[30]和LR[31]中,這里實現了子程序點位在主程序中賦值,也就是帶參調用子程序。改進后的程序,層次分明,實現了模塊化編程,為后續程序的修改和擴展提供了方便。
這三段程序體現了,三種不同的編程思想:
(1)“MVONE.PRG”只是實現了工作任務。
(2)“MAIN1.PRG”實現了模塊化編程中的子程序的概念,在主程序中可以隨時取消調用,提高了修改機器人流程的效率
(3)“MAIN2.PRG”不僅實現了模塊化編程的概念,而且實現了帶參數子程序的調用,模塊的通用性更強。
這就是機器人編程中的進化,在教學生編程時,先從最直接的編程思路入手,要完成什么樣的任務,然后在主程序中直接編程,然后再考慮如何優化程序。對于有規律的多次搬運,特別是碼垛搬運,進化程序會體現出它的簡潔性。
下面我們將搬一放一這樣的編程任務擴展到搬三放三。即需要連續搬運3個工件然后放置到三個不同位置,假設三個取料點和三個放料點都是在X方向一字排放,且相鄰間隔都是60mm,我們將間隔距離存放到LR[25]中,主程序命名為“MAIN3.PRG”,程序內容如下:
MAIN2.PRG:
R[10]=0
WHILE R[10]<3 //采用循環結構實現循環3次搬運
LR[10]=LR[30+R[10]* LR[25]]
LR[11]=LR[31+R[10]* LR[25]]
CALL “MVONE”
R[10]=R[10]+1
通過上面的搬三放三程序我們發現,只要我們理解了帶參數子程序調用的方法,并且學會搬運一個工件的程序操作,那么搬運三個工件是很簡單的事情。我們只需要把搬運三個工件的邏輯理清楚,三個工件的取料點和放料點之間的聯系理清楚,然后在主程序中體現出來就可以。
總之,程序進化是從易到難的一個過程,也是一個不斷使用已有知識發現新知識的過程。
最根本的還是要理解機器人程序的本質:
(1)機器人的運動的點位邏輯是什么
(2)機器人在什么地方做了什么樣的工作,即IO邏輯是什么。
3.結束語
上述的“數據+邏輯+進化”編程思想是在實踐教學中總結出來的,上述的機器人搬運編程實例,從搬一放一到搬三放三再到搬九放九是“數據+邏輯+進化”編程思想的典型運用。在“工業機器人操作與編程”教學實踐中,按照這種編程思想進行教學,學生們的編程思路變的清晰了,程序的可讀性移植性也得到了提升,在機器人編程中做到了循序漸進,舉一反三。
參考文獻:
[1]盧峰,官文. 高職院校工業機器人編程與操作課程教學思考[J]. 科研與教育,2020,4:211-212
[2]邵軍.離線編程示教的工業機器人教學研究[J]. 湖北農機化,2019,16:118-119
[3]嚴偉青.淺談中職數學課堂教與學的策略[J].現代企業教育,2014(6):210.