譚玉良,閆 立,蔣濤濤,葉舒顏
(蚌埠凱盛工程技術(shù)有限公司 ,蚌埠 233000)
在現(xiàn)代生產(chǎn)中,工業(yè)碼垛機器人逐步演變成新時代的機電一體化高科技產(chǎn)品,對于企業(yè)提高生產(chǎn)效率、保障產(chǎn)品質(zhì)量、降低生產(chǎn)成本和改善工作環(huán)境上起著很大的作用。而碼垛機器人的主要功能則是通過軟件控制系統(tǒng)來實現(xiàn)的,現(xiàn)在要求碼垛機器人的軟件控制系統(tǒng)必須具有可移植性、開放性、可擴展性,以適應(yīng)碼垛不同規(guī)格的物品[1]。因此,碼垛機器人軟件控制系統(tǒng)設(shè)計的重要性顯得十分突出。
目前,系統(tǒng)軟件設(shè)計的建模方法主要有功能分解法、數(shù)據(jù)流法、信息建模法和面向?qū)ο蠓ǎ渲?,面向?qū)ο蠓ㄍㄟ^建立對象與問題域的完整映射如實反映問題域中事物的關(guān)系,主要設(shè)計的方法有面向?qū)ο笙到y(tǒng)設(shè)計方法(Booch),對象建模技術(shù)(OMT),面向?qū)ο蟮能浖こ?OOSE)和UML[2]。此外,UML方法是其他三種面向?qū)ο蠓ǖ慕y(tǒng)一方法,是一種面向?qū)ο箝_發(fā)的通用語言[3]。同時,編程語言也是控制軟件設(shè)計不可或缺的一部分。在實際應(yīng)用中發(fā)現(xiàn),對實施相同的順序控制,順序功能圖SFC采用工藝流程編譯的方法進行編程,相對應(yīng)梯形圖(LD)程序而言,具有程序開發(fā)周期短、程序工藝過程清晰、語法規(guī)則精煉和可擴展性等優(yōu)點[4],另外SFC可以有效解決PLC軟件規(guī)模膨脹、LD編寫困難的問題。
龍門碼垛機器人軟件控制系統(tǒng)的功能需求包括4個方面:基本控制、參數(shù)設(shè)置、人機交互和作業(yè)保護。1) 基本控制:該功能需求主要以自動碼垛為核心,包括紙箱運輸節(jié)拍控制、推箱節(jié)拍控制、氣缸動作控制、托盤輸送裝置控制、光電信號檢測和系統(tǒng)通訊控制等。2) 參數(shù)設(shè)置:配方選擇、碼垛層數(shù)設(shè)置和執(zhí)行件運動速度設(shè)置。3) 人機交互:監(jiān)控運行狀態(tài)、監(jiān)控輸入信號、顯示生產(chǎn)信息等。4) 作業(yè)保護:防止生產(chǎn)錯誤或執(zhí)行誤操作和防止設(shè)備運行時人員進入非安全區(qū)等。
通過上述需求分析,可建立軟件系統(tǒng)的靜態(tài)模型[5]。靜態(tài)模型從系統(tǒng)內(nèi)部結(jié)構(gòu)和靜態(tài)角度描述系統(tǒng),約束和限定系統(tǒng)功能范圍[6]。靜態(tài)建模主要用到UML提供的用例圖、類圖等視圖。首先建立用例圖,辨別出系統(tǒng)外界的參與者和系統(tǒng)邊界,指出角色與角色、角色與用例和用例與用例之間的關(guān)系,然后建立類圖,呈現(xiàn)出參與者和用例之間的關(guān)系。
在對龍門碼垛機器人軟件控制系統(tǒng)編程中,主要涉及到角色有托盤管理員角色、物品送入系統(tǒng)角色、物品送出系統(tǒng)角色和碼垛機組管理員角色,涉及到用例有托盤供給用例、物品供給用例、設(shè)備維護用例和物品碼垛用例。不同的角色與控制軟件系統(tǒng)有不同的交互功能,其中,托盤管理員能夠向碼垛機器人提供空托盤,保證托盤輸送線中存有空托盤;物品送入系統(tǒng)能夠向碼垛機器人輸送需要碼垛的同種規(guī)格的物品;物品送出系統(tǒng)能夠在物品被碼垛完畢后接收碼垛好的物品,移入倉庫系統(tǒng)中;碼垛機組管理員主要負責設(shè)備維護,及監(jiān)督物品送入系統(tǒng)和物品送出系統(tǒng)的運行狀態(tài),監(jiān)督托盤輸送狀態(tài),保證碼垛機組良好的運行狀態(tài)。綜上所述,建立如圖1所示的龍門碼垛機器人軟件控制系統(tǒng)用例圖。
圖1中的物品碼垛用例是整個系統(tǒng)軟件的核心功能,為了分析其內(nèi)部具體的組成結(jié)構(gòu)和相互關(guān)系,將內(nèi)部結(jié)構(gòu)及關(guān)系抽象成類[7],建立如圖2所示的龍門碼垛機器軟件控制系統(tǒng)類圖。根據(jù)圖2分析,龍門碼垛機器軟件控制系統(tǒng)領(lǐng)域主要涉及到碼垛機組管理員類、碼垛裝置類、物品輸送裝置類、推箱裝置類、托盤輸送裝置類、物品類、托盤類、HMI類和PLC類。
其中碼垛機組管理員類主要監(jiān)控整個碼垛機器人控制運行;物品輸送裝置類主要能夠根據(jù)物品的屬性和碼垛物品擺放要求,具有物品輸送節(jié)拍、物品輸送速度和物品輸送個數(shù)等屬性,也可對物品進行轉(zhuǎn)箱、擋箱、輸送和計數(shù)等操作;推箱裝置類主要讀取PLC類地址寄存器中的數(shù)值進行推箱處理,具有推箱節(jié)拍、推箱速度和地址寄存器數(shù)值等屬性,對輸送擺放好的物品進行整排推箱、置位和復(fù)位地址和計數(shù)推箱次數(shù)等操作;托盤輸送裝置類主要根據(jù)托盤的屬性具有輸送托盤速度和托盤碼垛工位信息檢測等屬性,并可對執(zhí)行輸送托盤到碼垛工位等操作;碼垛裝置類根據(jù)物品和托盤屬性,具有碼垛層數(shù)、碼垛速度和地址寄存器數(shù)值等屬性,可具有接受和碼垛單層物品、置位和復(fù)位地址寄存器和計數(shù)當前層數(shù)等操作;PLC類主要控制物品輸送裝置類、推箱裝置類、托盤輸送裝置類和碼垛裝置類運行,具有運算速度、控制點數(shù)、兼容性和穩(wěn)定性等屬性,對三個裝置類進行參數(shù)設(shè)置和運動實時計算等操作;HMI類主要與PLC類相互通信,具有檢測碼垛機器運行狀態(tài)、設(shè)置控制參數(shù)和報警等操作。
動態(tài)模型主要用于描述系統(tǒng)的動態(tài)行為,動態(tài)建模主要用到UML提供的序列圖、合作圖、狀態(tài)圖和活動圖等四種視圖。其中,序列圖是描述軟件系統(tǒng)動態(tài)模型的主要手段[8],故這里擬建立龍門碼垛機器軟件控制系統(tǒng)的序列圖,用來描述其對象之間交互消息傳遞的時序關(guān)系。首先簡述序列圖的定義:
設(shè)序列圖OSD=(OS,LS,Σ,f),其中:
1)OS表示系統(tǒng)對象集合,即系統(tǒng)中的每個對象為集合的元素;
2)AOLS表示全部對象位點集合,AOLS={θ(n),θ∈OS∧n∈SL(θ),n∈N},其中,θ(n)表示對象θ生命線上發(fā)送或接受消息的點,即位點,SL(θ)表示單個對象θ的位點集合;
3)Σ表示對象消息集合,其語法格式為{[NO.][MN][PL]},其中[NO.]表示消息序號,[MN]表示消息名,[PL]表示參數(shù)列表,[PL]可缺??;
4)f表示消息與位點之間的映射,f:Σ×{msnd,mred}→AOLS,其中msnd,mred表示消息的發(fā)送和接受。
從靜態(tài)模型中可以看出龍門碼垛機器軟件控制系統(tǒng)以PLC對象為核心,主要與其交互的有托盤輸送裝置對象、物品輸送裝置對象、推箱裝置對象和碼垛裝置對象?,F(xiàn)以與PLC對象交互為基礎(chǔ),遵循上述定義原則,可對軟件控制系統(tǒng)進行如下描述:
1)托盤輸送裝置對象-PLC對象:碼垛控制系統(tǒng)運行前,PLC對象采集托盤碼垛工位信息,若碼垛工位無信息,則PLC對象向托盤輸送裝置對象發(fā)送信息,并彈出消息框,等待托盤輸送到位,若碼垛工位有信息,則PLC對象發(fā)送空指令信息,使托盤輸送裝置對象等待下一個指令信息;
2)物品輸送裝置對象-PLC對象:托盤輸送到位后,PLC對象根據(jù)物品輸送裝置對象采集的物品送入信息和PLC對象內(nèi)部算法,向物品輸送裝置返回轉(zhuǎn)箱信息或不轉(zhuǎn)箱信息;之后,擋箱光電信息檢測到物品到位信息并向PLC對象發(fā)送其信息后,PLC對象根據(jù)內(nèi)部算法向擋箱裝置對象返回擋箱信息或不擋箱信息;
3)推箱裝置對象-PLC對象: PLC對象采集擋箱光電計數(shù)信息和擋箱光電下降沿信息后,讀取內(nèi)部地址寄存器值進行整排推箱,將整排物品推至托架上或緩沖區(qū)中,其中,每推箱一次,PLC內(nèi)部地址寄存器0和地址寄存器1的值同時加1;
4)碼垛裝置對象-PLC對象:當?shù)刂芳拇嫫?值為2時,PLC對象向碼垛裝置對象發(fā)送碼垛信息,碼垛裝置對象首先將整層物品和托架移至一定高度后向PLC對象發(fā)送到位信息,PLC對象接收到位信息并返回將整層物品和托架水平移至碼垛工位的信息。PLC對象采集水平到位信息后再次返回夾緊信息,用于托架上物品的整形,之后碼垛裝置對象向PLC對象返回物品夾緊整形信息,最后,PLC對象向碼垛裝置對象返回托架復(fù)位信息進行托架恢復(fù)到碼垛之前狀態(tài)。待托架復(fù)位之后,碼垛裝置對象向PLC對象發(fā)送更新信息,用于復(fù)位PLC對象內(nèi)部算法程序。
IEC61131-3[9,10]從公共元素和編程語言兩個方面對PLC的編程進行了規(guī)范,且定義了SFC為編程語言的公共元素和拓撲程序框架[11],屬于圖形編輯模式。在程序設(shè)計中,步進點、轉(zhuǎn)移條件和動作是SFC必要元素[12],步進點只有在轉(zhuǎn)移條件成立時才能轉(zhuǎn)移到其他步進點。
在圖3中,UML序列圖中對象c向?qū)ο骴發(fā)送i:消息后,對象n由狀態(tài)e轉(zhuǎn)移到狀態(tài)f中,對象d的動作發(fā)生改變。在SFC中,當轉(zhuǎn)移條件XI成立后,原步進點SA及其伴隨動作被清除,步進點SB及其伴隨動作被驅(qū)動,控制動作發(fā)生改變。經(jīng)分析后可得,UML序列圖和SFC的狀態(tài)或動作的轉(zhuǎn)換都是在某一條件成立的情況下進行的。因此,序列圖與SFC有著內(nèi)在轉(zhuǎn)換關(guān)系,序列圖中對象d的狀態(tài)可轉(zhuǎn)換成SFC的步進點及其伴隨動作,序列圖中的i:消息可轉(zhuǎn)換成SFC中的轉(zhuǎn)移條件XI。故可從龍門碼垛機器軟件控制系統(tǒng)序列圖中抽取相應(yīng)的各個裝置對象的SFC。
根據(jù)對軟件控制系統(tǒng)的描述,PLC對象采集托盤輸送裝置對象的托盤碼垛工位信息時,PLC對象會根據(jù)采集信息返回供于托盤輸送裝置對象進行選擇分支的信息,控制碼垛裝置對象執(zhí)行不同的動作。所以,在從UML中序列圖中抽取SFC時,托盤碼垛工位信息可轉(zhuǎn)換成SFC中的轉(zhuǎn)移條件,控制托盤裝置對象轉(zhuǎn)移到不同的步進點中,并有不同的伴隨動作。這個控制流程可用SFC表示成如圖4所示,PLC型號選擇DVP-ES系列。
按照上述分析方法,可分別從完整的碼垛機器人軟件控制系統(tǒng)的UML序列圖中可抽取物品輸送裝置對象、擋箱裝置對象和碼垛裝置對象的順序功能圖SFC,如圖5,圖6和圖7所示,其中,擋箱裝置對象的動作分為前擋箱和后擋箱。各裝置對象的SFC程序參數(shù)意義解釋如表1所示。
為了便于主程序設(shè)計和修改,可將上述四個SFC程序轉(zhuǎn)換成LD,進行封裝成程序模塊,分別為托盤輸送程序模塊、物品輸送程序模塊、擋箱程序模塊和碼垛程序模塊。依據(jù)UML動態(tài)模型交互關(guān)系以及程序初始化條件,可匯編龍門碼垛機器人軟件控制系統(tǒng)的主控制程序框架,SFC,如圖8所示,其中S11為托盤輸送程序模塊,S12為物品輸送程序模塊,S13為擋箱程序模塊,S14為碼垛程序模塊。
表1 各裝置對象的SFC程序參數(shù)意義解釋
經(jīng)上述設(shè)計方法開發(fā)出的龍門碼垛機器人軟件控制系統(tǒng),在投入生產(chǎn)運行之前需進行硬軟件的聯(lián)合調(diào)試。調(diào)試環(huán)境是在某礦泉水公司,在其實際工作環(huán)境下進行調(diào)試,調(diào)試的內(nèi)容主要是針對物品轉(zhuǎn)箱調(diào)試、物品擋箱調(diào)試、物品推箱調(diào)試和物品碼垛調(diào)試。
物品輸送調(diào)試主要是對進入輸送線前端的物品進行轉(zhuǎn)箱調(diào)試,即調(diào)節(jié)旋轉(zhuǎn)裝置伸出的位移使物品旋轉(zhuǎn)到合理角度。如圖9,物品旋轉(zhuǎn)至90°。物品擋箱調(diào)試主要是依據(jù)碼垛物品擺放要求以及物品的型號,修改內(nèi)部算法來調(diào)整擋板位置,實現(xiàn)前擋箱動作和后擋箱動作。物品推箱調(diào)試主要是基于PLC內(nèi)部算法,調(diào)試推箱距離使得單排物品被推至托架上或緩沖區(qū),防止單排物品推至非工作區(qū)。物品碼垛調(diào)試主要是調(diào)試托架在碼垛和托架復(fù)位時運行平穩(wěn),使得托架上單層物品能夠較準確無錯誤的在碼垛工位處進行碼垛,如圖10所示。
經(jīng)上述硬軟件調(diào)試后,各個程序模塊都達到了所設(shè)定的控制功能要求,龍門碼垛機器軟件控制系統(tǒng)運行穩(wěn)定,達到了預(yù)期效果,也驗證了該文所提出設(shè)計方法的可靠性和合理性。
提出了一種基于UML方法和SFC的龍門碼垛機器軟件控制系統(tǒng)設(shè)計方法,得到了以下結(jié)論:
a.基于軟件控制系統(tǒng)的需求分析,建立了龍門碼垛機器軟件控制系統(tǒng)的UML靜態(tài)模型和UML動態(tài)模型,分別描述軟件控制系統(tǒng)的靜態(tài)結(jié)構(gòu)和動態(tài)行為。
b.基于建立的系統(tǒng)靜態(tài)模型和動態(tài)模型,采用PLC圖形編輯形式的順序功能圖SFC從UML模型中抽取各個裝置對象的動作程序,然后封裝成塊,設(shè)計龍門碼垛機器人軟件控制系統(tǒng)的主程序,實現(xiàn)軟件控制系統(tǒng)的所有控制功能。
c.經(jīng)龍門碼垛機器人的硬軟件聯(lián)合調(diào)試,龍門碼垛機器軟件控制系統(tǒng)達到了所設(shè)定控制功能要求。