劉海燕,林春蘭,吳雪穎,蘇宇
廣西科技大學(xué)職業(yè)技術(shù)教育學(xué)院,工業(yè)機(jī)器人技術(shù)中心(柳州 545006)
條碼,又稱(chēng)條形碼,是由一組寬度不同、反射率不同的平行相鄰的條和空按規(guī)定的編碼規(guī)則組合表示一定信息的代碼,也是一種能利用光電掃描閱讀設(shè)備識(shí)讀并實(shí)現(xiàn)將數(shù)據(jù)輸入計(jì)算機(jī)的特殊代碼[1-2]。條碼技術(shù)被廣泛應(yīng)用于商業(yè)、金融、交通、醫(yī)療衛(wèi)生、郵電、制造、食品、倉(cāng)儲(chǔ)等領(lǐng)域[3]。條碼是一種經(jīng)濟(jì)、實(shí)用的自動(dòng)識(shí)別技術(shù),具有輸入速度快、可靠性高、采集信息量大、靈活實(shí)用等優(yōu)點(diǎn)[4]。
采用Visual Studio(VS)對(duì)機(jī)器人進(jìn)行二次開(kāi)發(fā),張日紅等[5]在VS開(kāi)發(fā)環(huán)境下實(shí)現(xiàn)機(jī)器人離線編程控制的方法;李靜等[6]對(duì)用VS創(chuàng)建一種磁吸附履帶式爬壁機(jī)器人的人機(jī)交互界面,實(shí)現(xiàn)上下位機(jī)的實(shí)時(shí)通訊。采用Python實(shí)現(xiàn)設(shè)備間的通信,張西波[7]用Python編寫(xiě)串口程序,可實(shí)現(xiàn)對(duì)設(shè)備的集中控制和管理;呂煬[8]用Python完成USB通信和網(wǎng)絡(luò)通信開(kāi)發(fā)。采用RobotStudio(RS)離線編程軟件的Smart組件進(jìn)行機(jī)器人工作站的虛擬仿真;郝建豹等[9]通過(guò)SolidWorks構(gòu)建三維仿真模型并導(dǎo)入到RS中構(gòu)建機(jī)器人工作站的建模布局,通過(guò)創(chuàng)建Smart組件實(shí)現(xiàn)工作站的仿真運(yùn)行。
基于工業(yè)實(shí)際生產(chǎn)案例,采用Python下的Pyqt5工具包和Pycharm編輯器開(kāi)發(fā)串口通信軟件,實(shí)現(xiàn)對(duì)掃碼器掃描信號(hào)的讀取和發(fā)送;采用VS和RS的二次開(kāi)發(fā)工具PC SDK完成對(duì)虛擬機(jī)器人的控制;采用RS的Smart組件構(gòu)建仿真系統(tǒng),完成對(duì)平臺(tái)的仿真運(yùn)行。
平臺(tái)架構(gòu)包括硬件系統(tǒng)和軟件系統(tǒng):硬件系統(tǒng)主要由讀碼器組成;軟件系統(tǒng)由Python開(kāi)發(fā)的串口通訊軟件、VS開(kāi)發(fā)的虛擬機(jī)器人控制應(yīng)用程序和RS構(gòu)建的雙鏈仿真平臺(tái)構(gòu)成。平臺(tái)整體框架如圖1所示。
圖1 平臺(tái)框架圖
Python是一種動(dòng)態(tài)、面向?qū)ο蟮哪_本語(yǔ)言,是最流行的編程語(yǔ)言。它易于學(xué)習(xí),速度快、是一種免費(fèi)和開(kāi)源的高級(jí)語(yǔ)言,便于攜帶和解釋[10]。Pycharm是Python的一組工具,有助于使用者提高Python語(yǔ)言開(kāi)發(fā)的效率。試驗(yàn)應(yīng)用Python 3.6.4(64位)中的GUI界面,選用Pyqt5工具包,Pycharm 2018.3.5(64位)版本。串口通信流程圖如圖2所示。
圖2 串口通信流程圖
調(diào)用Python編程所需的模塊→控制優(yōu)先級(jí),先執(zhí)行初始化→接收掃碼數(shù)據(jù)→串口控件→掃碼數(shù)據(jù)顯示→網(wǎng)絡(luò)設(shè)置控件→機(jī)器人端串口發(fā)送程序。編碼完成后,運(yùn)行代碼進(jìn)行窗口檢驗(yàn),如圖3所示。
圖3 串口調(diào)試軟件界面
界面運(yùn)行完成后,進(jìn)行串口程序測(cè)試,測(cè)試結(jié)果如圖4所示。
圖4 串口測(cè)試
Visual Studio軟件[11]是一套完整的開(kāi)發(fā)工具,可生成ASP.NET Web應(yīng)用程序、桌面應(yīng)用程序、XML Web Services和移動(dòng)應(yīng)用程序。Visual Basic、Visual C#和Visual C++都使用相同的集成開(kāi)發(fā)環(huán)境(IDE),實(shí)現(xiàn)工具共享。創(chuàng)建新項(xiàng)目時(shí),Visual Studio會(huì)自動(dòng)生成一個(gè)解決方案,可根據(jù)需要將其他項(xiàng)目添加到解決方案中。系統(tǒng)使用Visual Studio Community 2017版本15.9.11,NET Framwork版本4.0以上。通過(guò)添加PC SDK動(dòng)態(tài)鏈接庫(kù),使用C#編寫(xiě)PC應(yīng)用程序控制RobotStudio中的機(jī)器人,實(shí)現(xiàn)與ABB機(jī)器人的通信及數(shù)據(jù)讀取和寫(xiě)入。
對(duì)ABB機(jī)器人進(jìn)行二次開(kāi)發(fā)的目的在于能夠在PC機(jī)上通過(guò)網(wǎng)絡(luò)對(duì)機(jī)器人進(jìn)行遠(yuǎn)程操控,可獲取機(jī)器人的工作狀態(tài)、程序數(shù)據(jù)、程序模塊、IO模塊等信息。ABB機(jī)器人為使用者提供大量便捷的二次開(kāi)發(fā)及應(yīng)用工具,PC SDK就是其中一項(xiàng)。利用PC SDK對(duì)ABB機(jī)器人進(jìn)行二次開(kāi)發(fā)時(shí),只需要在其官網(wǎng)上下載相應(yīng)版本的動(dòng)態(tài)鏈接庫(kù)文件,用到的PC SDK版本為6.07。
PC SDK的類(lèi)庫(kù)被封裝在不同的功能域中,其動(dòng)態(tài)鏈接庫(kù)文件通過(guò)編譯軟件Visual Studio(簡(jiǎn)稱(chēng)VS)引用至用C#建立的Winform項(xiàng)目,根據(jù)開(kāi)發(fā)需求在VS中構(gòu)建與PC SDK的類(lèi)庫(kù)相關(guān)的類(lèi),并建立起各個(gè)功能域之間的關(guān)系。
1) 通過(guò)創(chuàng)建Winform窗體,建立網(wǎng)絡(luò)掃描和連接等句柄,可顯示網(wǎng)絡(luò)上所有機(jī)器人信息。
2) VS與ABB Virtual Controller建立通信,獲取ABB機(jī)器人端的變量,并寫(xiě)入產(chǎn)品A和產(chǎn)品B的控制信號(hào),生成的控制應(yīng)用程序界面如圖5所示。
圖5 ABB機(jī)器人控制應(yīng)用程序
ABB模擬與離線編程軟件RS,可在辦公室PC機(jī)上完成機(jī)器人編程,無(wú)需中斷生產(chǎn)。RS基于ABB Virtual Controller,與機(jī)器人在生產(chǎn)中運(yùn)行的軟件相同。因此,RS可以執(zhí)行非常逼真的模擬,并且可在生產(chǎn)現(xiàn)場(chǎng)直接使用編程的機(jī)器人程序和配置文件[12]。
應(yīng)用UG 10.0軟件構(gòu)建簡(jiǎn)單的AGV小車(chē)模型和食品包裝產(chǎn)品A和B模型。簡(jiǎn)易AGV小車(chē)模型主要參數(shù)為:輪直徑80 mm,寬度150 mm,車(chē)身長(zhǎng)度1 600 mm,車(chē)身寬度1 000 mm,可用裝載車(chē)身長(zhǎng)度1 200 mm,離地高度135 mm。產(chǎn)品A和B模型為:長(zhǎng)度600 mm,寬度400 mm,高度200 mm。模型如圖6所示。
在機(jī)器人雙鏈路平臺(tái)仿真系統(tǒng)中,為更好地展示效果,從分析物料出發(fā)定義2條輸送鏈(產(chǎn)品A和產(chǎn)品B),創(chuàng)建輸送鏈子對(duì)象組件:要求物料在輸送鏈前端自動(dòng)顯現(xiàn);物料自動(dòng)輸送到輸送鏈末端,與傳感器發(fā)生碰撞后,發(fā)出產(chǎn)品到位信號(hào),從而啟動(dòng)機(jī)器人搬運(yùn)工作。
在企業(yè)實(shí)際生產(chǎn)案例中,PLC是中央控制單元,通過(guò)Profinet或Profibus等現(xiàn)場(chǎng)總線,將數(shù)控機(jī)床、工業(yè)機(jī)器人等設(shè)備連接起來(lái)進(jìn)行信號(hào)通信。而在仿真系統(tǒng)中,Smart組件可以看成是PLC,只需要將該組件的I/O信號(hào)與機(jī)器人的I/O信號(hào)進(jìn)行關(guān)聯(lián),模擬PLC與機(jī)器人的信號(hào)通信實(shí)現(xiàn)仿真效果。仿真I/O信號(hào)如表1所示。
圖6 平臺(tái)模型圖
表1 機(jī)器人自動(dòng)上下料生產(chǎn)線部分I/O信號(hào)
Smart組件中各子組件之間的邏輯控制,主要是通過(guò)I/O信號(hào)的連接來(lái)實(shí)現(xiàn),部分I/O信號(hào)邏輯連接如表2所示。
表2 Smart組件_輸送鏈的部分I/O信號(hào)邏輯關(guān)系
在搭建好各種模型和Smart組件后,可以根據(jù)工作流程要求,利用RS的離線編程功能編寫(xiě)和調(diào)試出相應(yīng)的程序,進(jìn)行模擬仿真查看結(jié)果是否滿(mǎn)足要求。在RS中主要是利用其RAPID對(duì)機(jī)器人進(jìn)行編程。RAPID是一種英文的編程語(yǔ)言,里面包含著可以移動(dòng)機(jī)器人、設(shè)置輸出、讀取輸入等指令,還能實(shí)現(xiàn)決策、重復(fù)其他指令、構(gòu)造程序、與系統(tǒng)操縱員交流等功能。部分主程序如下所示。
Main主程序:
搭建整個(gè)雙鏈平臺(tái)后,單擊“仿真控制”選項(xiàng)卡的“播放”,使機(jī)器人處于自動(dòng)仿真運(yùn)行狀態(tài)。在VS開(kāi)發(fā)的ABB機(jī)器人控制器應(yīng)用程序中啟動(dòng)程序,完成對(duì)虛擬控制柜的通信連接;產(chǎn)品A的掃碼數(shù)值發(fā)送給ABB機(jī)器人,機(jī)器人就啟動(dòng)產(chǎn)品A的搬運(yùn)和碼垛任務(wù);產(chǎn)品B的掃碼數(shù)值發(fā)送給ABB機(jī)器人,機(jī)器人就啟動(dòng)產(chǎn)品B的搬運(yùn)和碼垛任務(wù);若同時(shí)發(fā)送A和B的掃碼數(shù)值,ABB機(jī)器人就執(zhí)行搬運(yùn)先到達(dá)物料的任務(wù);AGV小車(chē)按照3×5的結(jié)構(gòu)進(jìn)行碼垛。仿真結(jié)果如圖7所示。
圖7 VS控制ABB機(jī)器人仿真結(jié)果
在此仿真系統(tǒng)中需要依次完成:1)在Python+Pyqt5+Pycharm中完成串口通信軟件的設(shè)計(jì)及界面搭建工作;2)在Visual Studio軟件下完成PCSDK動(dòng)態(tài)鏈接庫(kù)的引用、C#程序編寫(xiě)、Window窗口搭建、與機(jī)器人通信的建立等;3)在RobotStudio軟件下完成SMART組件的搭建,包括雙鏈路碼垛工作站I/O配置及邏輯信號(hào)搭建、機(jī)器人邏輯信號(hào)搭建、程序數(shù)據(jù)創(chuàng)建、目標(biāo)點(diǎn)示教、仿真程序編寫(xiě)及調(diào)試。
完成雙鏈路仿真實(shí)系統(tǒng)的上位機(jī)設(shè)計(jì)、下位機(jī)機(jī)器人工作站的仿真運(yùn)行。仿真環(huán)境下的搭建,使流水線的物料通過(guò)掃碼、分類(lèi)、ABB機(jī)器人裝載和AGV小車(chē)運(yùn)送、計(jì)算機(jī)總控的一整套視覺(jué)自動(dòng)化研究。該設(shè)計(jì)可節(jié)約人力成本,提高工作效率,為工控中的商品包裝倉(cāng)儲(chǔ)運(yùn)輸提供一套高效的視覺(jué)自動(dòng)化系統(tǒng)方案。