李亞軍,吳振強,楊 鵬,劉 寧,劉 貝
(北自所(北京)科技發(fā)展有限公司,北京 100120)
化纖行業(yè)歷來具有勞動密集的典型特征,自動化、智能化的需求尤為迫切。同時隨著我國勞動力成本的快速上漲,工業(yè)機器人工作站系統(tǒng)及相關產品及服務在化纖的絡絲系統(tǒng),上線系統(tǒng),碼垛系統(tǒng),物流倉儲和分揀系統(tǒng)中得到快速推廣和頻繁應用。
工業(yè)機器人的結構化程序設計要求在程序設計時分清工藝過程,先總體后細節(jié),對復雜工藝過程先設計一些主程序模塊,逐步細化子程序模塊進行模塊化的編程。對于化纖行業(yè)來說,無論上線系統(tǒng)、絡絲系統(tǒng)或者碼垛系統(tǒng)都可以分為抓取和放置兩個主程序模塊,抓取過程模塊可以分為抓取調度,抓取計算,抓取過程和抓取完成的信息處理4個子程序模塊;放置過程模塊可以分為放置調度,放置計算和放置過程和放置完成后的信息處理4個子程序模塊。工業(yè)機器人系統(tǒng)在抓取和放置時,無論采用夾抱式,手抓式,鉤爪式,真空吸盤式卡具或其他形式卡具,都包括取料動作和放料動作兩個子程序模塊。通過利用這種模塊化編程的獨特優(yōu)勢,掌握編程的思路,這樣可以在安裝調試階段減少大量的人力物力,降低勞動強度,提高生產效率,節(jié)約成本,極大地提高程序的可讀性和可移植性。
本文以某化纖工程項目MOTOMAN工業(yè)機器人碼垛系統(tǒng)工作站工藝流程為例說明,即人工將一摞棧板(8~15個)放置在拆盤機入口輸送機上,拆盤機拆分一個棧板自動送至輸送機上,棧板稱重后由輸送機輸送到碼垛工位。機器人根據絲餅規(guī)格批號從工位1(隔板工位),工位2(頂板工位)和工位3(底板工位)抓取不同的隔板,與絲餅間隔放置,一起堆垛成垛。
碼垛垛形如圖1所示。碼垛的底層為棧板,它可以為木棧板或者塑料棧板等;棧板上放置一層底板,底板一般為木紙板;在木紙板上放置第一層隔板,其次放置一層絲餅,絲餅放置于隔板的孔徑中,防止碼垛運輸過程中絲餅晃動,損壞絲餅,隔板和絲餅交替放置;在碼垛絲餅的最高層處放置一層頂板。一般情況下,隔板和頂板為不同的泡沫隔板或者蜂窩板。
工業(yè)機器人工作站在結構化程序設計過程中,受到影響的主要因素有:
1)機器人卡具的影響。常用的機器人卡具有鉤爪式,真空吸盤式和夾抱式等。
圖1 碼垛垛形
2)箱子尺寸的影響。箱子的尺寸應在機器人卡具的工作變徑范圍內,若箱子的長度小于機器人卡具的長度時,箱子被夾在卡具內部,在放置時應考慮卡具對已碼垛型的影響,進而影響作業(yè)調度中放置位置的計算程序。
3)現場抓取工位和放置工位的數量和布置。
4)生產效率和生產節(jié)拍的要求。
程序結構組成,根據實際需要一般分為一般作業(yè)程序結構和分步作業(yè)程序結構如圖2、圖3所示。
圖2 一般作業(yè)程序結構
圖3 分步作業(yè)程序結構
圖4 一般作業(yè)程序流程圖
圖5 分步作業(yè)程序流程圖
在實際應用中,機器人結構化程序設計一般采用如圖4所示一般作業(yè)程序流程圖和如圖5所示的分步作業(yè)程序流程圖,其主要區(qū)別在于調度程序和位置計算程序的不同。
調度程序一般分為:作業(yè)調度,抓取調度,放置調度;位置計算程序一般分為作業(yè)計算,抓取計算和放置計算。而每種調度程序又可分為順序形式結構的調度程序和令牌形式結構的調度程序。本文以抓取調度為例說明,其余不再詳述。
結構化程序設計流程圖無論采用順序結構,選擇結構還是循環(huán)結構,它的起始位置都要調用初始化程序,用于復位機器人位置,輸出信號,中間變量和數據。執(zhí)行初始化程序后,進入無限循環(huán)結構,將機器人需要重復運動的動作與初始化程序隔離開來,重復執(zhí)行抓取和放置動作,完成機器人信號的交互。
如圖4所示的一般作業(yè)程序流程圖是常規(guī)的程序結構,在作業(yè)生成前,判斷抓取位置的允許抓取信號和放置位置的允許放置信號應同時滿足條件后,生成作業(yè)去向后,執(zhí)行機器人程序,抓取動作和放置動作連續(xù)執(zhí)行,中間不出現停頓。它又有明顯的缺點:事件前判斷抓取條件,工作效率較低;機器人抓取完成后,不再進行放置位置放置信號的校驗。
如圖5所示的分步作業(yè)程序流程圖中,抓取過程和放置過程分步執(zhí)行,抓取條件滿足執(zhí)行抓取程序,動作完畢后進入放置程序塊,放置條件滿足,執(zhí)行放置程序,抓取和放置分步循環(huán)進行,先判斷后執(zhí)行。程序執(zhí)行效率高,產量大。
初始化程序主要包括必要的程序注釋,布爾量的初始化,IO信號的初始化,位置變量的初始化和重要數值標志的初始化如自定義取板標志B0001,令牌指令標志B0002,抓取次數標志B0003和放貨標志B0004等。
抓取調度有兩種形式,即順序形式抓取調度和令牌形式抓取調度。對搬運工作站,為了簡化程序,可以只設置抓取調度就可以。
3.4.1 順序形式抓取調度
順序形式抓取調度如圖6所示,程序周期循環(huán)檢查,每個掃描周期,先從第一個工位判斷是否有允許抓取信號,如果沒有允許抓取信號,則按工位順序依次判斷,最后根據生成的允許抓取信號,對作業(yè)標志B0001進行賦值,生成作業(yè)標志。最后對作業(yè)標志進行判斷,只有作業(yè)標志在正常數值范圍內才允許執(zhí)行后續(xù)的計算程序和作業(yè)程序,如果不在范圍內則重新判斷賦值。
圖6 順序形式抓取調度流程圖
3.4.2 令牌形式抓取調度
圖7 令牌形式抓取調度流程圖
令牌形式抓取調度如圖7所示。程序循環(huán)執(zhí)行。上一工位抓取和放置過程執(zhí)行完畢后,為令牌指令標志B0002賦值。在下一掃描周期,先根據令牌指令標志B0002的值判斷指定工位有沒有允許抓取信號,如果沒有允許抓取信號,根據令牌生成的順序依次執(zhí)行判斷,最后根據生成允許抓取信號的工位,為作業(yè)標志B0001進行賦值,生成作業(yè),同時生成指定的令牌標志值。令牌指令標志B0002的值可以順序生成,也可以錯序生成。最后判斷作業(yè)標志是否在正常數值范圍內,如果在正常范圍,則往下執(zhí)行計算程序和抓取程序,如果不在范圍內則重新判斷,對令牌指令標志重新賦值。
抓取流程圖如圖8所示。
圖8 抓取流程圖
放置調度流程圖如圖9所示。機器人抓取完畢,信息交互正確無誤后機器人移動到放置等待點,首先從第一個工位判斷對應站臺是否放貨準備好,即是否有允許放貨信號。如果沒有允許放貨信號,則按鏈式機站臺順序依次判斷,最后生成放置工位作業(yè)標志B0004并進行賦值;另外也可以預先讀取絲餅的信息,根據絲餅信息,逆向判斷放置工位是否準備好。最后對放置工位作業(yè)標志B0004進行合理化值判斷,防止手動干預機器人的運行,只有作業(yè)標志B0004在正常數值范圍內才允許執(zhí)行后續(xù)的計算程序和作業(yè)程序,如果不在范圍內則重新判斷。放置工位準備好后,要讀取絲餅信息,批次,紙管筒型和放置層數,進行校驗,信息校驗不合格時暫停機器人程序執(zhí)行,防止混批。
圖9 放置調度流程圖
放置流程圖如圖10所示,主要包括常用的碼垛算法,放置完成信息交互,軌跡移動和機器人輔助卡具的動作。常用的碼垛算法,是用來計算碼垛放置點和碼垛減速點等過渡點的程序,主要包括基于放置位置的碼垛算法和基于棧板位置的碼垛算法。基于放置位置的碼垛算法:碼垛放置程序計算簡單;易于理解;前期工作量比較大;示教基準點較多,示教位置點工作量較大;增加箱型比較麻煩,需知道棧板的尺寸,箱子尺寸,需要畫詳細碼放跺型圖,測量放置基準點到棧板邊緣的距離,示教基準點,修改地面站程序和作業(yè)調度,可實踐性差,程序繼承性不好;調整跺型不便。此方式適用于箱型少,品種規(guī)格較少的碼垛方式?;跅0逦恢玫拇a垛算法:跺型放置程序編寫復雜;前期工作量不大,根據每種箱子的尺寸,只需知道碼放跺型即可;示教基準點比較少;由于示教基準點位置,考慮了棧板的位置的因素影響,調整跺型方便。此方式適用于適用于箱型多,品種規(guī)格較多的碼垛方式。
因此可以根據項目實際應用的要求,針對具體的作業(yè)方案,選擇具體的算法。
圖10 放置流程圖
一般程序流程圖:常用于簡單的單一品種,無信息交互的搬運碼垛系統(tǒng);它先執(zhí)行作業(yè)調度,作業(yè)生產后抓取過程和放置過程連續(xù)執(zhí)行,中間不進行外部條件判斷;工作效率低。
分步程序流程圖:適用于多品種、多工位和有信息交互的有復雜工藝要求的工業(yè)機器人工作站系統(tǒng);作業(yè)調度分為抓取調度和放置調度,抓取前,先進行抓取條件判斷,生產作業(yè)后進行抓取作業(yè);放置前,先進行放置條件判斷,生產作業(yè)后進行放置作業(yè)。此過程執(zhí)行前先判斷外部信息條件,分步執(zhí)行;工作效率高。
順序形式抓取調度,一般適用與單一工位或者兩個工位的工業(yè)機器人工作站系統(tǒng)。令牌形式抓取調度:適用于多工位的工業(yè)機器人工作站系統(tǒng),效率高。
總之,工業(yè)機器人結構化程序設計不僅適用于工藝單一程序短小的工程項目,而且對于工藝復雜程序規(guī)模較大程序復雜的情況更能起到良好的執(zhí)行效果,工業(yè)機器人結構化程序設計就顯的更有必要性,這樣不僅可提高程序可讀性、易維護性、可調性和擴展性,而且操作簡單,節(jié)約成本,提高工作效率。因此,在實際應用中,工業(yè)機器人結構化程序設計要做到主次分明,層次清晰,在編程方面,把握總體結構,針對具體工程方案,進行機器人程序編寫。