譚玉良,閆 立,蔣濤濤,葉舒顏
(蚌埠凱盛工程技術有限公司 ,蚌埠 233000)
在現代生產中,工業碼垛機器人逐步演變成新時代的機電一體化高科技產品,對于企業提高生產效率、保障產品質量、降低生產成本和改善工作環境上起著很大的作用。而碼垛機器人的主要功能則是通過軟件控制系統來實現的,現在要求碼垛機器人的軟件控制系統必須具有可移植性、開放性、可擴展性,以適應碼垛不同規格的物品[1]。因此,碼垛機器人軟件控制系統設計的重要性顯得十分突出。
目前,系統軟件設計的建模方法主要有功能分解法、數據流法、信息建模法和面向對象法,其中,面向對象法通過建立對象與問題域的完整映射如實反映問題域中事物的關系,主要設計的方法有面向對象系統設計方法(Booch),對象建模技術(OMT),面向對象的軟件工程(OOSE)和UML[2]。此外,UML方法是其他三種面向對象法的統一方法,是一種面向對象開發的通用語言[3]。同時,編程語言也是控制軟件設計不可或缺的一部分。在實際應用中發現,對實施相同的順序控制,順序功能圖SFC采用工藝流程編譯的方法進行編程,相對應梯形圖(LD)程序而言,具有程序開發周期短、程序工藝過程清晰、語法規則精煉和可擴展性等優點[4],另外SFC可以有效解決PLC軟件規模膨脹、LD編寫困難的問題。
龍門碼垛機器人軟件控制系統的功能需求包括4個方面:基本控制、參數設置、人機交互和作業保護。1) 基本控制:該功能需求主要以自動碼垛為核心,包括紙箱運輸節拍控制、推箱節拍控制、氣缸動作控制、托盤輸送裝置控制、光電信號檢測和系統通訊控制等。2) 參數設置:配方選擇、碼垛層數設置和執行件運動速度設置。3) 人機交互:監控運行狀態、監控輸入信號、顯示生產信息等。4) 作業保護:防止生產錯誤或執行誤操作和防止設備運行時人員進入非安全區等。
通過上述需求分析,可建立軟件系統的靜態模型[5]。靜態模型從系統內部結構和靜態角度描述系統,約束和限定系統功能范圍[6]。靜態建模主要用到UML提供的用例圖、類圖等視圖。首先建立用例圖,辨別出系統外界的參與者和系統邊界,指出角色與角色、角色與用例和用例與用例之間的關系,然后建立類圖,呈現出參與者和用例之間的關系。
在對龍門碼垛機器人軟件控制系統編程中,主要涉及到角色有托盤管理員角色、物品送入系統角色、物品送出系統角色和碼垛機組管理員角色,涉及到用例有托盤供給用例、物品供給用例、設備維護用例和物品碼垛用例。不同的角色與控制軟件系統有不同的交互功能,其中,托盤管理員能夠向碼垛機器人提供空托盤,保證托盤輸送線中存有空托盤;物品送入系統能夠向碼垛機器人輸送需要碼垛的同種規格的物品;物品送出系統能夠在物品被碼垛完畢后接收碼垛好的物品,移入倉庫系統中;碼垛機組管理員主要負責設備維護,及監督物品送入系統和物品送出系統的運行狀態,監督托盤輸送狀態,保證碼垛機組良好的運行狀態。綜上所述,建立如圖1所示的龍門碼垛機器人軟件控制系統用例圖。

圖1中的物品碼垛用例是整個系統軟件的核心功能,為了分析其內部具體的組成結構和相互關系,將內部結構及關系抽象成類[7],建立如圖2所示的龍門碼垛機器軟件控制系統類圖。根據圖2分析,龍門碼垛機器軟件控制系統領域主要涉及到碼垛機組管理員類、碼垛裝置類、物品輸送裝置類、推箱裝置類、托盤輸送裝置類、物品類、托盤類、HMI類和PLC類。

其中碼垛機組管理員類主要監控整個碼垛機器人控制運行;物品輸送裝置類主要能夠根據物品的屬性和碼垛物品擺放要求,具有物品輸送節拍、物品輸送速度和物品輸送個數等屬性,也可對物品進行轉箱、擋箱、輸送和計數等操作;推箱裝置類主要讀取PLC類地址寄存器中的數值進行推箱處理,具有推箱節拍、推箱速度和地址寄存器數值等屬性,對輸送擺放好的物品進行整排推箱、置位和復位地址和計數推箱次數等操作;托盤輸送裝置類主要根據托盤的屬性具有輸送托盤速度和托盤碼垛工位信息檢測等屬性,并可對執行輸送托盤到碼垛工位等操作;碼垛裝置類根據物品和托盤屬性,具有碼垛層數、碼垛速度和地址寄存器數值等屬性,可具有接受和碼垛單層物品、置位和復位地址寄存器和計數當前層數等操作;PLC類主要控制物品輸送裝置類、推箱裝置類、托盤輸送裝置類和碼垛裝置類運行,具有運算速度、控制點數、兼容性和穩定性等屬性,對三個裝置類進行參數設置和運動實時計算等操作;HMI類主要與PLC類相互通信,具有檢測碼垛機器運行狀態、設置控制參數和報警等操作。
動態模型主要用于描述系統的動態行為,動態建模主要用到UML提供的序列圖、合作圖、狀態圖和活動圖等四種視圖。其中,序列圖是描述軟件系統動態模型的主要手段[8],故這里擬建立龍門碼垛機器軟件控制系統的序列圖,用來描述其對象之間交互消息傳遞的時序關系。首先簡述序列圖的定義:
設序列圖OSD=(OS,LS,Σ,f),其中:
1)OS表示系統對象集合,即系統中的每個對象為集合的元素;
2)AOLS表示全部對象位點集合,AOLS={θ(n),θ∈OS∧n∈SL(θ),n∈N},其中,θ(n)表示對象θ生命線上發送或接受消息的點,即位點,SL(θ)表示單個對象θ的位點集合;
3)Σ表示對象消息集合,其語法格式為{[NO.][MN][PL]},其中[NO.]表示消息序號,[MN]表示消息名,[PL]表示參數列表,[PL]可缺省;
4)f表示消息與位點之間的映射,f:Σ×{msnd,mred}→AOLS,其中msnd,mred表示消息的發送和接受。
從靜態模型中可以看出龍門碼垛機器軟件控制系統以PLC對象為核心,主要與其交互的有托盤輸送裝置對象、物品輸送裝置對象、推箱裝置對象和碼垛裝置對象。現以與PLC對象交互為基礎,遵循上述定義原則,可對軟件控制系統進行如下描述:
1)托盤輸送裝置對象-PLC對象:碼垛控制系統運行前,PLC對象采集托盤碼垛工位信息,若碼垛工位無信息,則PLC對象向托盤輸送裝置對象發送信息,并彈出消息框,等待托盤輸送到位,若碼垛工位有信息,則PLC對象發送空指令信息,使托盤輸送裝置對象等待下一個指令信息;
2)物品輸送裝置對象-PLC對象:托盤輸送到位后,PLC對象根據物品輸送裝置對象采集的物品送入信息和PLC對象內部算法,向物品輸送裝置返回轉箱信息或不轉箱信息;之后,擋箱光電信息檢測到物品到位信息并向PLC對象發送其信息后,PLC對象根據內部算法向擋箱裝置對象返回擋箱信息或不擋箱信息;
3)推箱裝置對象-PLC對象: PLC對象采集擋箱光電計數信息和擋箱光電下降沿信息后,讀取內部地址寄存器值進行整排推箱,將整排物品推至托架上或緩沖區中,其中,每推箱一次,PLC內部地址寄存器0和地址寄存器1的值同時加1;
4)碼垛裝置對象-PLC對象:當地址寄存器1值為2時,PLC對象向碼垛裝置對象發送碼垛信息,碼垛裝置對象首先將整層物品和托架移至一定高度后向PLC對象發送到位信息,PLC對象接收到位信息并返回將整層物品和托架水平移至碼垛工位的信息。PLC對象采集水平到位信息后再次返回夾緊信息,用于托架上物品的整形,之后碼垛裝置對象向PLC對象返回物品夾緊整形信息,最后,PLC對象向碼垛裝置對象返回托架復位信息進行托架恢復到碼垛之前狀態。待托架復位之后,碼垛裝置對象向PLC對象發送更新信息,用于復位PLC對象內部算法程序。
IEC61131-3[9,10]從公共元素和編程語言兩個方面對PLC的編程進行了規范,且定義了SFC為編程語言的公共元素和拓撲程序框架[11],屬于圖形編輯模式。在程序設計中,步進點、轉移條件和動作是SFC必要元素[12],步進點只有在轉移條件成立時才能轉移到其他步進點。
在圖3中,UML序列圖中對象c向對象d發送i:消息后,對象n由狀態e轉移到狀態f中,對象d的動作發生改變。在SFC中,當轉移條件XI成立后,原步進點SA及其伴隨動作被清除,步進點SB及其伴隨動作被驅動,控制動作發生改變。經分析后可得,UML序列圖和SFC的狀態或動作的轉換都是在某一條件成立的情況下進行的。因此,序列圖與SFC有著內在轉換關系,序列圖中對象d的狀態可轉換成SFC的步進點及其伴隨動作,序列圖中的i:消息可轉換成SFC中的轉移條件XI。故可從龍門碼垛機器軟件控制系統序列圖中抽取相應的各個裝置對象的SFC。
根據對軟件控制系統的描述,PLC對象采集托盤輸送裝置對象的托盤碼垛工位信息時,PLC對象會根據采集信息返回供于托盤輸送裝置對象進行選擇分支的信息,控制碼垛裝置對象執行不同的動作。所以,在從UML中序列圖中抽取SFC時,托盤碼垛工位信息可轉換成SFC中的轉移條件,控制托盤裝置對象轉移到不同的步進點中,并有不同的伴隨動作。這個控制流程可用SFC表示成如圖4所示,PLC型號選擇DVP-ES系列。

按照上述分析方法,可分別從完整的碼垛機器人軟件控制系統的UML序列圖中可抽取物品輸送裝置對象、擋箱裝置對象和碼垛裝置對象的順序功能圖SFC,如圖5,圖6和圖7所示,其中,擋箱裝置對象的動作分為前擋箱和后擋箱。各裝置對象的SFC程序參數意義解釋如表1所示。


為了便于主程序設計和修改,可將上述四個SFC程序轉換成LD,進行封裝成程序模塊,分別為托盤輸送程序模塊、物品輸送程序模塊、擋箱程序模塊和碼垛程序模塊。依據UML動態模型交互關系以及程序初始化條件,可匯編龍門碼垛機器人軟件控制系統的主控制程序框架,SFC,如圖8所示,其中S11為托盤輸送程序模塊,S12為物品輸送程序模塊,S13為擋箱程序模塊,S14為碼垛程序模塊。

表1 各裝置對象的SFC程序參數意義解釋
經上述設計方法開發出的龍門碼垛機器人軟件控制系統,在投入生產運行之前需進行硬軟件的聯合調試。調試環境是在某礦泉水公司,在其實際工作環境下進行調試,調試的內容主要是針對物品轉箱調試、物品擋箱調試、物品推箱調試和物品碼垛調試。
物品輸送調試主要是對進入輸送線前端的物品進行轉箱調試,即調節旋轉裝置伸出的位移使物品旋轉到合理角度。如圖9,物品旋轉至90°。物品擋箱調試主要是依據碼垛物品擺放要求以及物品的型號,修改內部算法來調整擋板位置,實現前擋箱動作和后擋箱動作。物品推箱調試主要是基于PLC內部算法,調試推箱距離使得單排物品被推至托架上或緩沖區,防止單排物品推至非工作區。物品碼垛調試主要是調試托架在碼垛和托架復位時運行平穩,使得托架上單層物品能夠較準確無錯誤的在碼垛工位處進行碼垛,如圖10所示。

經上述硬軟件調試后,各個程序模塊都達到了所設定的控制功能要求,龍門碼垛機器軟件控制系統運行穩定,達到了預期效果,也驗證了該文所提出設計方法的可靠性和合理性。
提出了一種基于UML方法和SFC的龍門碼垛機器軟件控制系統設計方法,得到了以下結論:
a.基于軟件控制系統的需求分析,建立了龍門碼垛機器軟件控制系統的UML靜態模型和UML動態模型,分別描述軟件控制系統的靜態結構和動態行為。
b.基于建立的系統靜態模型和動態模型,采用PLC圖形編輯形式的順序功能圖SFC從UML模型中抽取各個裝置對象的動作程序,然后封裝成塊,設計龍門碼垛機器人軟件控制系統的主程序,實現軟件控制系統的所有控制功能。
c.經龍門碼垛機器人的硬軟件聯合調試,龍門碼垛機器軟件控制系統達到了所設定控制功能要求。