孔艷艷
(閩江師范高等??茖W(xué)校 機(jī)電工程系,福建 福州 350018)
在智能制造大環(huán)境下,我國(guó)醫(yī)藥行業(yè)產(chǎn)值雖然逐年增長(zhǎng),但是智能化低、專業(yè)人才缺口大等問(wèn)題,已成為必須要解決的難題。疫情期間,許多制造類企業(yè)都在產(chǎn)業(yè)升級(jí),朝著智能化方向發(fā)展。文獻(xiàn)[1] 在藥品包裝自動(dòng)化方面進(jìn)行了研究,采用模塊化結(jié)構(gòu),由PLC、觸摸屏(HMI)、動(dòng)力驅(qū)動(dòng)裝置等實(shí)現(xiàn)泡罩藥品自動(dòng)化包裝;但存在包裝的藥品單一,無(wú)法滿足市場(chǎng)上包裝多樣化的需求。文獻(xiàn)[2-3]采用RobotStudio仿真軟件搭建工作站,Smart組件動(dòng)畫(huà)模擬工廠產(chǎn)線。這2種生產(chǎn)線在應(yīng)用行業(yè)還是智能制造,工業(yè)機(jī)器人技術(shù)人才是有儲(chǔ)備的;但在醫(yī)藥行業(yè),工業(yè)機(jī)器人的應(yīng)用較少,相關(guān)技術(shù)人員更是緊缺。在這種情況下,醫(yī)藥包裝行業(yè)即使有相應(yīng)資金采購(gòu)機(jī)器人,也會(huì)因?yàn)榫幊膛c調(diào)試人員的緊缺,短時(shí)間內(nèi)無(wú)法通過(guò)修改機(jī)器人的RAPID程序滿足包裝工藝的多樣性。
本文基于藥瓶搬運(yùn)工藝的實(shí)際生產(chǎn)要求,采用RobotStudio仿真軟件,結(jié)合PC SDK二次開(kāi)發(fā)包和Visual Studio編程軟件,實(shí)現(xiàn)多樣化藥瓶搬運(yùn)的二次開(kāi)發(fā),操作人員只需要在二次開(kāi)發(fā)界面輸入相應(yīng)工藝參數(shù),即可滿足多種規(guī)格的藥瓶包裝,對(duì)降低操作人員的調(diào)試難度、提高包裝效率的研究具有指導(dǎo)意義。
RobotStudio是ABB機(jī)器人的仿真軟件,它是建立在ABB虛擬控制器之上,相當(dāng)于一個(gè)機(jī)器人生產(chǎn)運(yùn)行的精確副本,能非常逼真地模擬生產(chǎn)運(yùn)行。
ABB機(jī)器人為用戶提供了大量便捷的二次開(kāi)發(fā)和應(yīng)用工具。對(duì)于它的二次開(kāi)發(fā),通訊模式的選擇非常關(guān)鍵,主要的通訊方式有5種:套接字通訊(Socket)、PC SDK、消息隊(duì)列RAPID Message Queue(RMQ)、Robot Web Service(RWS)、OPC Server[4]。本文采用PC SDK通訊,可以實(shí)現(xiàn)PC與IRC5間的通訊,主要用到其Controller API,采用逐級(jí)訪問(wèn)的方式,調(diào)用控制器的某個(gè)功能,實(shí)現(xiàn)在二次開(kāi)發(fā)界面上掃描和連接機(jī)器人、軌跡規(guī)劃、變量設(shè)置和事件日志等功能。RobotStudio二次開(kāi)發(fā)總體框架如圖1所示。
圖1 RobotStudio二次開(kāi)發(fā)框架
2.1.1 開(kāi)發(fā)接口引用
要實(shí)現(xiàn)控制ABB機(jī)器人的前提是:在C#建立的基于.NET的二次開(kāi)發(fā)窗體應(yīng)用程序中引用3個(gè)動(dòng)態(tài)鏈接庫(kù)文件:ABB.Robotics.Controllers.PC.dll、Robotstudio.Services.RobApi.dll和Robotstudio.Services.RobApi.Desktop.dll。
然后,在二次開(kāi)發(fā)窗體應(yīng)用程序的全局變量聲明中聲明要使用的功能,其聲明方式如下:
using ABB.Robotics;
using ABB.Robotics.Controllers;
using ABB.Robotics.Controllers.Discovery;
using ABB.Robotics.Controllers.EventLogDomain;
using ABB.Robotics.Controllers.RapidDomain ;
using ABB.Robotics.Controllers.MotionDomain;
using ABB.Robotics.Controllers.FileSystemDomain;
2.1.2 窗口布局
根據(jù)藥瓶搬運(yùn)的控制要求,主要包括:藥瓶搬運(yùn)、變量設(shè)置和事件日志3部分。其中,藥瓶搬運(yùn)有3個(gè)區(qū)域:控制器通訊區(qū)、軌跡規(guī)劃區(qū)和目標(biāo)點(diǎn)數(shù)據(jù)顯示區(qū)。主要用到的窗體控件有:ListView、Button、DataGridView和TextBox等。在控制器通訊區(qū),掃描控制器按鈕可以搜索到現(xiàn)有的機(jī)器人控制器信息,并將機(jī)器人控制器信息顯示在列表里。連接控制器按鈕可以實(shí)現(xiàn)用戶選擇的機(jī)器人登錄和注銷(xiāo)。軌跡規(guī)劃區(qū),是根據(jù)控制要求設(shè)置取放瓶軌跡參數(shù)。目標(biāo)點(diǎn)數(shù)據(jù)顯示區(qū),顯示的是機(jī)器人工作站在軌跡規(guī)劃參數(shù)設(shè)置完成后,機(jī)器人運(yùn)動(dòng)的坐標(biāo)點(diǎn)。二次開(kāi)發(fā)后的窗口布局如圖2所示。
圖2 二次開(kāi)發(fā)窗體布局
為實(shí)現(xiàn)二次開(kāi)發(fā)系統(tǒng)與機(jī)器人端數(shù)據(jù)交互,機(jī)器人系統(tǒng)配置時(shí),必須在通信類選項(xiàng)中勾選“616-1 PC Interface”選項(xiàng),它是PC機(jī)上開(kāi)發(fā)用戶界面來(lái)控制機(jī)器人的選項(xiàng)。
ABB機(jī)器人使用的機(jī)器語(yǔ)言是RAPID,易學(xué)易用,靈活性強(qiáng),包含了一連串控制機(jī)器人的指令,這些指令可以移動(dòng)機(jī)器人、設(shè)置輸出、讀取輸入等。PC SDK二次開(kāi)發(fā)包不支持直接調(diào)用機(jī)器人中的運(yùn)動(dòng)指令,而是通過(guò)修改RAPID程序中的變量間接控制機(jī)器人。
當(dāng)二次開(kāi)發(fā)的系統(tǒng)界面與機(jī)器人端實(shí)現(xiàn)了數(shù)據(jù)交互,就可以用Robotstudio預(yù)編寫(xiě)的RAPID程序完成藥瓶搬運(yùn)的任務(wù)。
2.3.1 目標(biāo)點(diǎn)位姿數(shù)據(jù)
對(duì)ABB機(jī)器人來(lái)說(shuō),其運(yùn)動(dòng)軌跡是由若干個(gè)目標(biāo)點(diǎn)按次序連線組成,即
CONSTrobtargetputini:=
目標(biāo)點(diǎn)數(shù)據(jù)類型由4部分組成:trans、rot、robconf和extax。其中:trans組件表示工具中心點(diǎn)TCP(Tool Center Point)的位置;rot組件表示當(dāng)前點(diǎn)位時(shí)工具姿態(tài);robconf組件表示機(jī)械臂的軸配置; extax組件表示附加軸的位置。
rot即機(jī)器人姿態(tài)采用四元數(shù)來(lái)表示,是為了避免機(jī)器人姿態(tài)運(yùn)動(dòng)學(xué)方程在大角度時(shí)出現(xiàn)奇異現(xiàn)象。四元法是實(shí)數(shù)和復(fù)數(shù)以及三維空間點(diǎn)矢量的擴(kuò)充。其表達(dá)式為
q=q4+q1i+q2j+q3k,
(2)
對(duì)于Z-Y-X變換,轉(zhuǎn)換表達(dá)式為
(3)
展開(kāi)得
式中:α、β、γ分別為繞Z、Y、X軸的旋轉(zhuǎn)角。
2.3.2 流程圖
近年來(lái),持續(xù)穩(wěn)產(chǎn)的原油量使得已經(jīng)飽和的油田電網(wǎng)負(fù)荷越來(lái)越大,每年油田電網(wǎng)的變電站數(shù)量不斷增加,導(dǎo)致傳統(tǒng)的油田電網(wǎng)模式已經(jīng)不能適應(yīng),因此,需要擁有智能化、信息化、數(shù)字化和自動(dòng)化的全新管理模式來(lái)提高工程效率,降低工程成本。采用智能變電站技術(shù)不僅可以實(shí)現(xiàn)油田電網(wǎng)無(wú)人值守、進(jìn)一步推行電網(wǎng)調(diào)度變自動(dòng)化,在調(diào)整管理模式后,有效減少崗位用工緊張問(wèn)題。另一方面,因?yàn)橛吞镫娋W(wǎng)規(guī)模的不斷擴(kuò)大,全面檢修工作量不斷增大,也很難保證質(zhì)量,利用自動(dòng)化的變電站技術(shù)后,科學(xué)的對(duì)停電時(shí)間進(jìn)行設(shè)定,打造可靠、堅(jiān)強(qiáng)的供電電網(wǎng),提升油氣生產(chǎn)供電工程。
藥瓶搬運(yùn)流程如圖3所示,由主程序(main)、PC SDK通訊、初始化子程序、算法子程序和運(yùn)行軌跡子程序等組成。
圖3 藥瓶搬運(yùn)流程
藥瓶包裝工作站所需要的模型由SOLIDWORKS建模,并保存后綴名為*.step格式,導(dǎo)入到RobotStudio仿真環(huán)境下。按要求布局的工作站如圖4所示,主要包括ABB IRB120機(jī)器人、傳感器、藥盒、藥瓶、藥瓶分揀輸送鏈、藥盒輸送鏈以及光柵報(bào)警裝置等。
1—ABB IRB120機(jī)器人;2—傳感器;3—光柵報(bào)警裝置; 4—藥瓶分揀輸送鏈;5—藥瓶;6—藥盒;7—藥盒輸送鏈圖4 仿真工作站布局
在仿真軟件下,建立工具坐標(biāo)系,目的是將工具坐標(biāo)系置于真空吸盤(pán)的中心處,便于機(jī)器人工作過(guò)程中TCP的姿態(tài)調(diào)整。在對(duì)應(yīng)的吸盤(pán)工具坐標(biāo)系下,創(chuàng)建工件坐標(biāo)系,采用的是三點(diǎn)法,確定坐標(biāo)系原點(diǎn)、X正方向和Y正方向,再根據(jù)右手定則判斷Z正方向。
1) 創(chuàng)建動(dòng)態(tài)輸送鏈。
建立輸送Smart組件(sc-infeeder),所需要的組件有:Source、Queue、PlaneSensor和LogicGate[NOT]。其工作流程為:?jiǎn)?dòng)信號(hào)(start)置1,觸發(fā)1次Source,使其產(chǎn)生1個(gè)藥瓶(YP)復(fù)制品。產(chǎn)生的藥瓶復(fù)制品自動(dòng)加入到設(shè)定好的隊(duì)列Queue中,則藥瓶復(fù)制品隨著Queue一起沿著輸送鏈運(yùn)動(dòng)。藥品復(fù)制品到達(dá)輸送鏈末端,觸發(fā)面?zhèn)鞲衅?PlaneSensor),退出隊(duì)列Queue,并將產(chǎn)品到位信號(hào)do_ok置1。通過(guò)非門(mén)的中間連接,實(shí)現(xiàn)當(dāng)藥瓶被機(jī)器人搬運(yùn)走后,自動(dòng)觸發(fā)Source再產(chǎn)生1個(gè)藥瓶復(fù)制品,進(jìn)入下一個(gè)循環(huán)。IO設(shè)置如表1所示。
表1 輸送鏈組件 I/O連接
2) 創(chuàng)建動(dòng)態(tài)吸盤(pán)工具。
吸盤(pán)Smart組件是仿真吸盤(pán)工具,實(shí)現(xiàn)吸放動(dòng)作,需要的子組件有:LineSensor、Attacher、Detacher、LogicGate[NOT]和LogicSRLatch,如圖5所示。
圖5 吸盤(pán)Smart組件
完成Smart組件的動(dòng)態(tài)效果后,需要設(shè)定Smart組件與機(jī)器人端的信號(hào)通信,才能實(shí)現(xiàn)藥瓶搬運(yùn)的仿真動(dòng)畫(huà)[5]。圖6是工作站的邏輯設(shè)定,其工作流程為:發(fā)出啟動(dòng)輸送鏈信號(hào),藥瓶傳送;藥瓶到位后,機(jī)器人開(kāi)始運(yùn)動(dòng);機(jī)器人到達(dá)抓取點(diǎn),Y4置1,并將信號(hào)傳送給Smart-xipan的輸入INY4,吸盤(pán)吸取藥瓶;機(jī)器人到達(dá)放置點(diǎn),Y4置0,吸盤(pán)放下藥瓶。信號(hào)傳送給機(jī)器人輸入X1,等待下一次運(yùn)行指令。
圖6 工作站邏輯設(shè)定
1) 合理規(guī)劃目標(biāo)點(diǎn)。首先,目標(biāo)點(diǎn)運(yùn)動(dòng)指令的選擇遵循:不需要保證直線運(yùn)動(dòng)的路徑,盡量用MoveJ指令代替MoveL指令。抓放點(diǎn)前后的非作業(yè)點(diǎn),不僅要使用MoveJ指令,還要統(tǒng)一使用較大的轉(zhuǎn)彎半徑,減少轉(zhuǎn)角時(shí)的速度衰減。其次,在保證安全的前提下,盡量減少中間過(guò)渡點(diǎn)、合理選擇安全點(diǎn)到取放瓶點(diǎn)間距。
2) 調(diào)整機(jī)器人位姿。在保證避開(kāi)奇異點(diǎn)的情況下,以最少的關(guān)節(jié)運(yùn)動(dòng)到達(dá)目標(biāo)點(diǎn)。
3) 合理使用延時(shí)指令。在IO信號(hào)與運(yùn)動(dòng)指令之間,適當(dāng)增加延時(shí)指令,保證抓放的準(zhǔn)確率。
經(jīng)過(guò)優(yōu)化和反復(fù)調(diào)試,1個(gè)藥瓶搬運(yùn)軌跡可縮短4.5 s。仿真結(jié)果表明,這種優(yōu)化方法是可行的,可以在有限的時(shí)間內(nèi),規(guī)劃出相對(duì)合理的工藝路線。
完成藥瓶搬運(yùn)的二次開(kāi)發(fā)后,驗(yàn)證仿真結(jié)果。首先,在機(jī)器人仿真示教器中,打到“自動(dòng)模式”檔,加載二次開(kāi)發(fā)的窗體。在出現(xiàn)如圖7(a)所示運(yùn)行界面下,掃描控制器,選中需要連接的控制器,一鍵連接,出現(xiàn)“登錄成功”提示。然后,就可以按要求的藥瓶和藥盒尺寸,規(guī)劃相應(yīng)的運(yùn)動(dòng)軌跡。如圖7(b)所示,在機(jī)器人運(yùn)動(dòng)過(guò)程中,RobotStudio會(huì)監(jiān)控機(jī)器人的位姿和IO信號(hào),可根據(jù)運(yùn)動(dòng)要求和輸出的事件日志,調(diào)整相應(yīng)參數(shù)。如圖7(c)所示,經(jīng)過(guò)反復(fù)驗(yàn)證:仿真環(huán)境與現(xiàn)場(chǎng)環(huán)境雖然有誤差,但通過(guò)編輯工具和工件坐標(biāo)系,糾正仿真與現(xiàn)場(chǎng)之間的誤差,并不影響規(guī)定尺寸藥盒的包裝;抓放瓶準(zhǔn)確率高。
(a) 窗體運(yùn)行
(b) 抓取藥瓶點(diǎn)運(yùn)動(dòng)
(c) 放置藥瓶點(diǎn)運(yùn)動(dòng)圖7 二次開(kāi)發(fā)仿真調(diào)試驗(yàn)證
本文以藥瓶搬運(yùn)工藝為例,闡述了RobotStudio二次開(kāi)發(fā)的思路及開(kāi)發(fā)過(guò)程。通過(guò)二次開(kāi)發(fā),可以將工業(yè)機(jī)器人編程過(guò)程中的繁瑣部分智能化,有效縮短了調(diào)試周期,降低操作員操作難度的同時(shí),增加產(chǎn)線柔性。經(jīng)現(xiàn)場(chǎng)驗(yàn)證:準(zhǔn)確率高,操作簡(jiǎn)單,效率高,完全滿足企業(yè)生產(chǎn)實(shí)際需求,對(duì)實(shí)現(xiàn)醫(yī)藥包裝的智能化發(fā)展具有一定的參考意義。