本發(fā)明涉及工業(yè)機器人編程系統(tǒng),尤其涉及一種基于腳本可二次開發(fā)的工業(yè)機器人編程系統(tǒng)。
背景技術:
工業(yè)機器人是集機械、電子、控制、計算機、傳感器、人工智能等多學科先進技術于一體的自動化裝備。在發(fā)達國家中,工業(yè)機器人自動化生產線成套設備已成為自動化裝備的主流。
在工業(yè)機器人發(fā)展早期,一般只能執(zhí)行固定的程序,專用性強,且無法擴展。隨著工業(yè)自動化中對柔性作業(yè)的需求的增加,這種機器人已經很難滿足現代工業(yè)生產的要求,于是,用于機器人編程的機器人語言應運而生。如今,機器人語言已經成為機器人數控系統(tǒng)中的一個不可或缺的部分,機器人的作業(yè)在很大程度上都依靠用機器人語言編制的程序來完成。在工業(yè)機器人的發(fā)展過程中,機器人語言也不斷地發(fā)展和完善。
作為人機交互的重要接口和機器人實現其智能化的重要方式,機器人語言的重要性已經日益凸顯出來。和計算機語言用符號表示計算機進行的操作類似,機器人語言也用符號來描述機器人的動作,使機器人能按照編程者的意圖完成各種復雜的動作和操作。機器人編程語言不僅涉及到機器人技術,也和計算機編程語言密切相關,因此,它們的發(fā)展是相輔相成的。
隨著機器人技術的不斷發(fā)展,機器人語言也不斷地向前推進,其功能不斷擴展,使用上也更加容易理解和上手?,F在應用比較廣泛的且有代表性的工業(yè)機器人編程語言是ABB公司開發(fā)的RAPID語言。它是一種英文編程語言,所包含的指令可以移動機器人、設置輸出、讀取輸入、還能實現決策、重復其它指令、構造程序、與系統(tǒng)操作員交流等功能,是有較強功能的機器人語言。
機器人編程系統(tǒng)作為機器人控制系統(tǒng)的一部分,國外一直處于壟斷地位,國外廠商的控制系統(tǒng)及其控制終端一般只對自己品牌的機器人有一定的兼容性,其獨有的設備配件和高昂的維修費用讓國內相關產業(yè)耗費了大量的人力與財力。中國發(fā)明專利“工業(yè)機器人的編程系統(tǒng)和方法”(申請?zhí)枮?01210432301.2)公開了一種通用工業(yè)機器人編程系統(tǒng)和方法,但是沒有對可二次開發(fā)的機器人編程系統(tǒng)給出解決方案。郭顯金在碩士學位論文“工業(yè)機器人編程語言的設計與實現”中提出了一套工業(yè)機器人編程語言,使對機器人的編程變得簡單而高效,但該方法僅針對MOTORMAN SK6機器人控制系統(tǒng)作為研究對象,不具備可二次開發(fā)指令集的功能即根據需求編制專屬的指令集來滿足在具體應用中的需要。
技術實現要素:
本發(fā)明公開了一種基于腳本可二次開發(fā)的工業(yè)機器人編程系統(tǒng),解決了可以二次開發(fā)指令集的問題。
為實現上述發(fā)明目的,本發(fā)明采取的技術方案是:
一種基于腳本可二次開發(fā)的工業(yè)機器人編程系統(tǒng),包括以下步驟:
步驟1:定義系統(tǒng)配置數據,在系統(tǒng)配置腳本文件中定義基本的數據類型和指令集。
所述基本的數據類型包括:int型、bool型、real型、APOS型、CPOS型、TOOL型、USERCOOR型。
所述指令集包括:
a、運動指令MovJ、MovL、MovC
b、IO指令SetDO、SetAO、WaiDI、WaitAI
c、等待延時指令Wait
d、流程控制指令IF、ELSE、ENDIF、WHILE、ENDWHILE、CALL、GOTO、LABEL、RUN、KILL
e、表達式指令。
步驟2:在用戶配置腳本文件中定義二次開發(fā)的指令集和數據類型,該二次開發(fā)指令和數據類型運用了基于腳本可二次開發(fā)模塊,該模塊能根據用戶需求自定義指令和數據,用戶自定義的指令是由第一步中系統(tǒng)指令集的組合,用戶自定義的數據類型是由第一步中系統(tǒng)基本數據類型的組合。
步驟3:通過手持示教盒進行機器人編程,實現機器人的運動控制。
所述基于腳本可二次開發(fā)模塊,包括配置腳本文件管理模塊、工程及程序管理模塊、程序變量管理模塊、程序指令管理模塊。
配置腳本文件管理模塊,用來讀取系統(tǒng)配置和用戶配置腳本文件,將讀取出來的數據進行解析,將解析后的數據類型和指令集數據填充到結構體中,再將結構體數據通過以太網發(fā)送給示教盒,示教盒獲取到配置文件數據后加載到工程及程序管理模塊的界面。
工程及程序管理模塊,用來進行對程序工程和文件進行管理,對工程和程序進行新建、刪除、復制、粘貼、導入;如果是導入工程和程序,控制器就會讀取工程下面程序數據和程序指令文件,將讀取的程序數據和指令填充結構體傳給示教盒,示教盒進入程序指令管理模塊編輯界面。
所述程序指令管理模塊,用來進行指令的顯示、新建、修改、刪除、復制、粘貼、注釋;顯示系統(tǒng)支持的指令類型及每類中的指令列表該數據由配置腳本管理模塊獲得。
示教盒上切換到獲取變量界面,進行變量管理模塊處理,該模塊按層級獲取變量列表及變量值,一共三層:全局變量、工程局部變量、程序局部變量;變量新建、修改、刪除、復制、粘貼;顯示系統(tǒng)支持的變量種類及每類中的變量類型列表;顯示指定變量的組成細節(jié),即變量各字段的名稱和值。
本發(fā)明的解析方法采用腳本方式可以二次開發(fā)用戶需求的指令集,這使得該編程語言具有高度的靈活性,能根據自己的需要編制專屬的指令集來滿足在具體應用中的需要。該二次開發(fā)功能的優(yōu)點在于不需要為了開發(fā)新指令而重新編寫代碼進行燒寫程序從而減少很大的開發(fā)工作量。
附圖說明
圖1是本發(fā)明方法的系統(tǒng)框圖。
圖2是機器人程序指令的執(zhí)行流程圖。
圖3是基于腳本可二次開發(fā)模塊中配置文件管理模塊的處理流程圖。
圖4是基于腳本可二次開發(fā)模塊中工程及程序管理模塊的處理流程圖。
圖5是基于腳本可二次開發(fā)模塊中程序變量管理模塊的處理流程圖。
圖6是基于腳本可二次開發(fā)模塊中程序指令管理模塊的處理流程圖。
圖7和圖8是系統(tǒng)配置腳本文件示例和用戶自定義配置腳本文件示例圖。
圖9是工程文件結構圖。
圖10是數據文件示例圖。
圖11是程序指令文件示例圖。
圖12是二次開發(fā)指令示例圖。
具體實施方式
下面結合附圖和具體實施方式,對本發(fā)明作進一步詳細說明。
本發(fā)明處理的對象是工業(yè)機器人中基于腳本的可二次開發(fā)編程系統(tǒng),如圖12所示,現要二次開發(fā)一條指令MovX,具體流程如下:
第一步:定義系統(tǒng)配置數據,如圖7所示在系統(tǒng)配置腳本文件中制定基本的數據類型(int型、bool型、real型、APOS型、CPOS型、TOOL型、USERCOOR型)和指令集包括運動指令(MovJ,MovL,MovC)、IO指令(SetDO,SetAO,WaiDI,WaitAI)、等待延時指令(Wait)、流程控制指令(IF,ELSE,ENDIF,WHILE,ENDWHILE,CALL,GOTO,LABEL,RUN,KILL,表達式指令);
第二步:定義用戶自定義配置數據,如圖8所示,在用戶配置腳本文件中定義用戶自定義數據類型(ABC型和DEF型),自定義指令MovX,該指令調用了基本運動指令MovJ和IO指令SetDO來實現。
定義完成系統(tǒng)配置文件和用戶配置文件之后,經過配置腳本文件管理模塊數據處理后通過以太網發(fā)給示教盒進行顯示,工作流程圖如圖3所示。
示教盒獲取到配置文件數據后加載到工程及程序管理界面,進行工程及程序管理部分。
工程文件結構圖如圖9所示,工作流程圖如圖4所示,依次執(zhí)行以下步驟:
第一步:操作示教盒,下發(fā)命令給控制器。
第二步:示教盒上點擊新建工程命令,就在磁盤上新建該工程名的文件夾,并在文件夾內新建工程局部變量的數據文件。
第三步:示教盒上點擊新建程序命令,就先找到該程序對應的工程,在該工程文件夾內新建該程序的數據文件和執(zhí)行文件。
第四步:示教盒上點擊導入程序按鈕,導入第三步中新建的程序進入程序指令管理界面。
進入程序指令界面后,工作流程圖如圖6所示,依次執(zhí)行以下步驟:
第一步:操作示教盒,下發(fā)命令給控制器。
第二步:示教盒上點擊新建指令命令,示教盒上就會顯示配置文件里面定義的所有指令,包括用戶自己定義的指令MovX,控制器就先在當前工程下找到該指令文件,然后重新打開文件,插入一條新指令MovX,再重新寫入到磁盤中;示教盒上就會多顯示一條MovX指令。
指令新建完成之后,就可以開始進行程序指令的執(zhí)行,工作流程圖如圖2,執(zhí)行步驟如下:
第一步:在示教盒上設置程序指針,使得程序從第一行指令開始執(zhí)行。
第二步:控制器獲取指令行號,從該行加載執(zhí)行指令。
第三步:判斷該行是否是流程控制指令(IF,ELSE,WHILE,GOTO等指令),如果是就執(zhí)行流程控制修改指令行號,程序指針將進行跳轉。
第四步:如果該行不是流程控制指令(IF,ELSE,WHILE,GOTO等指令),就在腳本中執(zhí)行該條指令。
第五步:如果該行指令執(zhí)行成功,判斷是否是單步模式,如果不是就繼續(xù)判斷是否到達文件尾,如果不是就跳轉到第五步繼續(xù)執(zhí)行,如果是就跳轉到下一步。
第六步:執(zhí)行結束。
通過以上的方法步驟,就可以完成二次開發(fā)指令,該指令實現了機器人運動和設置IO的功能,將該文本寫入到配置文件中,系統(tǒng)重新上電加載,在示教盒上就可以看到該條指令(MovX),運行該條指令可以看到機器人實現了運動和設置IO的功能。
本發(fā)明中機器人的控制指令和數據都是基于腳本進行編寫,使得指令集可根據用戶需求進行編制,具有很大的靈活性,不需要為了開發(fā)新指令而重新編寫代碼進行燒寫程序;減少了很大的開發(fā)工作量。