劉魏晉 , 胡 琛 , 陳俊杰 , 唐 洋 , 李樹(shù)杰
(1.武漢交通職業(yè)學(xué)院,湖北 武漢 430000;2.湖北交投科技發(fā)展有限公司,湖北 武漢 430000)
自動(dòng)化生產(chǎn)線從20世紀(jì)初開(kāi)始問(wèn)世,機(jī)械制造也開(kāi)始向機(jī)械自動(dòng)化技術(shù)方向發(fā)展。20世紀(jì)中期自動(dòng)化生產(chǎn)線開(kāi)始蓬勃發(fā)展。自動(dòng)化生產(chǎn)與原有的生產(chǎn)線相比,降低了生產(chǎn)成本,減少了生產(chǎn)時(shí)間,省去了一些人為操作過(guò)程,節(jié)省了場(chǎng)地空間,在制作工藝上可以極大地提升產(chǎn)品的質(zhì)量、精確性、穩(wěn)定性以及效率,達(dá)到了事半功倍的效果。自動(dòng)化生產(chǎn)線主要包括機(jī)械部分、控制部分、傳感器部分、檢測(cè)部分、執(zhí)行部分和電源部分,而機(jī)器人就屬于其中的執(zhí)行部分,工業(yè)機(jī)器人的引入,可以大幅提升制造業(yè)自動(dòng)化生產(chǎn)水平[1]。它是自動(dòng)化生產(chǎn)線中不可或缺的一部分,它的種類繁多,功能齊全。例如,對(duì)機(jī)械零件的加工與裝配,生產(chǎn)線中的噴漆、焊接、電鍍,產(chǎn)品的分揀,貨物的搬運(yùn)等,這些功能都充分證明了它的重要性。
Unity3D是Unity Technologies公司于2005年發(fā)布的一款創(chuàng)作引擎,可實(shí)現(xiàn)各種3D內(nèi)容形式的交互,大多數(shù)人使用他的目的和使用Unreal引擎一樣都是以開(kāi)發(fā)游戲?yàn)橹?。Unity引擎發(fā)展了10多年,現(xiàn)已成為一個(gè)非常強(qiáng)大的開(kāi)發(fā)引擎。Unity提供了一個(gè)功能齊備、容易操作的開(kāi)發(fā)環(huán)境[2]。Unity應(yīng)用十分廣泛,不僅僅是游戲開(kāi)發(fā),一些模型設(shè)計(jì)、策劃行業(yè)、教育行業(yè)、電影行業(yè)、工業(yè)等都可以用到Unity?;诖?,本文以Unity3D場(chǎng)景集成的方式對(duì)智能化機(jī)器人和設(shè)備進(jìn)行數(shù)字化三維建模,并完成虛擬現(xiàn)實(shí)的人機(jī)交互[3]。
SIMATIC S7-1500PLC是目前西門(mén)子公司對(duì)中國(guó)發(fā)布的最新一款PLC,它為使用者提供了最強(qiáng)的性能、內(nèi)置以及強(qiáng)大的電源、更多的通信方式等。由于S7-1500系列PLC自帶模塊化結(jié)構(gòu),使用者可以將一些非常復(fù)雜的機(jī)械設(shè)計(jì)變?yōu)楝F(xiàn)實(shí),而且可以為使用者在數(shù)字化轉(zhuǎn)換的過(guò)程中提供一些可靠的幫助。相比于西門(mén)子S7-1200系列PLC,則顯得更加靈活,其中,位、字、實(shí)數(shù)指令的運(yùn)算都要比S7-1200系列的指令運(yùn)算快。網(wǎng)口數(shù)也比S7-1200系列多,S7-1500最多可以拓展31個(gè)模塊,這是S7-1200系列無(wú)法比擬的。所以,大多數(shù)情況都選取S7-1500作為控制系統(tǒng)的主站。
隨著虛擬現(xiàn)實(shí)技術(shù)迅速發(fā)展,虛擬裝配在產(chǎn)品開(kāi)發(fā)、實(shí)訓(xùn)教學(xué)中得到了廣泛應(yīng)用[4]。Unity3D的虛擬現(xiàn)實(shí)技術(shù)可以不受場(chǎng)地和空間限制,在虛擬場(chǎng)景中實(shí)現(xiàn)和現(xiàn)實(shí)自動(dòng)化生產(chǎn)線一樣的流程工藝控制,Unity3D與虛擬仿真PLC相結(jié)合完成虛擬仿真機(jī)器人控制,一共裝配3把三軸孔明鎖,1個(gè)孔明鎖需要3個(gè)物料組成。3個(gè)物料按原材料庫(kù)——暫存庫(kù)——伺服托盤(pán)放料位——伺服托盤(pán)檢測(cè)位——伺服托盤(pán)取料位——成品庫(kù)的流程來(lái)完成裝配。原材料庫(kù)、暫存庫(kù)、成品庫(kù)中共有15個(gè)傳感器,檢測(cè)物料是否到該位置,以便執(zhí)行下一步動(dòng)作。
將虛擬機(jī)器人包導(dǎo)入U(xiǎn)nity項(xiàng)目中,在進(jìn)行產(chǎn)線搭建前需得到官方授權(quán),在驗(yàn)證窗口里將機(jī)器碼復(fù)制給官方人員進(jìn)行授權(quán),方可對(duì)導(dǎo)入包進(jìn)行操作。授權(quán)后在場(chǎng)景選項(xiàng)中進(jìn)入產(chǎn)線搭建,將場(chǎng)景布局變更為官方的布局,在本地模型中對(duì)模型進(jìn)行位置搭建。虛擬場(chǎng)景運(yùn)行模式下可以在設(shè)備選項(xiàng)選中仿真機(jī)器人,對(duì)機(jī)器手臂進(jìn)行自由拖動(dòng)結(jié)合,項(xiàng)目界面可以設(shè)置機(jī)器人每一步的動(dòng)作點(diǎn)位。圖1為Unity3D虛擬仿真機(jī)器人。
圖1 Unity3D虛擬仿真機(jī)器人
在藍(lán)圖的邏輯關(guān)系中,藍(lán)圖起到操作虛擬仿真機(jī)器人的作用,藍(lán)圖是腳本編寫(xiě)而成的,將仿真機(jī)器人的每一步信號(hào)在藍(lán)圖上編輯出來(lái),圖2為仿真機(jī)器人操作面板藍(lán)圖。藍(lán)圖一共分為四個(gè)部分,原料位到緩存位部分、原料傳感器部分、緩存位傳感器部分和加工位部分。原料位到緩存位部分主要是指機(jī)器人移動(dòng)原材料至?xí)捍鎺?kù)的控制流程。加工位部分由伺服模組、機(jī)器人和成品庫(kù)的傳感器組成。藍(lán)圖編輯過(guò)程中要將藍(lán)圖對(duì)應(yīng)裝配流程順序依次連接。藍(lán)圖中的控制面板可以直接控制仿真機(jī)器人的動(dòng)作。按下啟動(dòng),系統(tǒng)開(kāi)始按照流程運(yùn)行。運(yùn)行時(shí)對(duì)應(yīng)指示燈亮起。
圖2 仿真機(jī)器人操作面板藍(lán)圖
虛擬仿真機(jī)器人是連接西門(mén)子S7-1500PLC進(jìn)行控制的,需要用到TIA portal 軟件,控制本次裝配流程的程序指令都是需要從DB塊里面調(diào)用的。
創(chuàng)建好與Unity藍(lán)圖對(duì)應(yīng)的DB塊,根據(jù)藍(lán)圖上的信號(hào)在DB塊中添加相應(yīng)的變量。虛擬仿真場(chǎng)景中的伺服托盤(pán)需要給他標(biāo)定位置,用ADD和IN_RANGE指令對(duì)伺服托盤(pán)模組進(jìn)行原點(diǎn)位、裝配位以及檢測(cè)位的定位。確保機(jī)器人能夠正確將物料放到伺服托盤(pán)對(duì)應(yīng)位置。圖3為伺服托盤(pán)程序段。
圖3 伺服托盤(pán)程序段
當(dāng)原料傳感器檢測(cè)到原料庫(kù)有物料時(shí),傳感器將電信號(hào)傳給機(jī)器人,機(jī)器人接收到信號(hào)開(kāi)始動(dòng)作,將原材料抓取至?xí)捍鎺?kù),暫存庫(kù)內(nèi)也裝有傳感器,當(dāng)內(nèi)部的傳感器檢測(cè)到原材料就會(huì)將信號(hào)傳給機(jī)器人,這時(shí)機(jī)器人就會(huì)按照流程繼續(xù)去抓取原材料按部就班地放到暫存庫(kù),機(jī)器人會(huì)按照程序編號(hào)的順序去抓取原材料。當(dāng)暫存庫(kù)的3個(gè)位都滿時(shí),機(jī)器人會(huì)再次接收到傳感器的信號(hào),就會(huì)把原材料轉(zhuǎn)移到伺服托盤(pán)上,伺服托盤(pán)也有3個(gè)位置,并且每個(gè)位置上都有傳感器,一旦檢測(cè)到物料,伺服托盤(pán)就會(huì)移動(dòng)到檢測(cè)位,檢測(cè)相機(jī)檢測(cè)完成后,伺服托盤(pán)會(huì)再回到放料位等待下個(gè)物料,依此步驟執(zhí)行3次后伺服托盤(pán)就會(huì)移動(dòng)到裝配位開(kāi)始進(jìn)行三軸孔明鎖的組裝。機(jī)器人會(huì)根據(jù)程序去到相應(yīng)的點(diǎn)位來(lái)完成孔明鎖的組裝,組裝完成后機(jī)器人會(huì)將孔明鎖放到成品庫(kù),3個(gè)成品庫(kù)也設(shè)有傳感器,成品被移動(dòng)到成品庫(kù)時(shí)機(jī)器人就會(huì)放置下個(gè)成品,直至3個(gè)成品全部放置完畢,最后機(jī)器人再回至原點(diǎn),整個(gè)工藝流程才全部結(jié)束。
機(jī)器人開(kāi)始取料需要幾個(gè)條件,機(jī)器人要處于空閑狀態(tài),庫(kù)存位里面的傳感器要檢測(cè)到物料,即物料要放在庫(kù)存位。這樣程序中相應(yīng)的常開(kāi)指令就會(huì)置1,常閉指令保持置0,使得“機(jī)器人取第一根料至?xí)捍鎺?kù)啟動(dòng)”的指令被置位。程序段中的物料檢測(cè)開(kāi)關(guān)對(duì)應(yīng)的就是原材料庫(kù)中所安裝的接近開(kāi)關(guān)傳感器。在機(jī)器人抓取第一根料的程序中,為了保證機(jī)器人正常運(yùn)行,將程序第三條“物料檢測(cè)開(kāi)關(guān)2”的常開(kāi)指令前面放1個(gè)“物料檢測(cè)開(kāi)關(guān)1”的常閉指令,這樣原材料庫(kù)的1號(hào)接近開(kāi)關(guān)傳感器檢測(cè)到原料時(shí)“物料檢測(cè)開(kāi)關(guān)1”的常閉指令就會(huì)置1而斷開(kāi),機(jī)器人就會(huì)專一的取抓取第一個(gè)原料。
同樣的道理,將第四條程序中的“物料檢測(cè)開(kāi)關(guān)3”前面也分別加上“物料檢測(cè)開(kāi)關(guān)1、2”的常閉指令??杀苊獬霈F(xiàn)3條抓取不同物料的指令在執(zhí)行程序的過(guò)程中發(fā)生沖突。值得一提的是,當(dāng)機(jī)器人接收到信號(hào)時(shí),控制虛擬機(jī)器人執(zhí)行動(dòng)作的程序需要與Unity中所設(shè)置的機(jī)器人動(dòng)作點(diǎn)位一一對(duì)應(yīng)。圖4為機(jī)器人取料程序段。
圖4 機(jī)器人取料程序段
S7-PLCSIM Advanced是西門(mén)子針對(duì)S7-1500PLC所打造的虛擬仿真軟件,相當(dāng)于S7-1500PLC的數(shù)字雙胞胎。軟件操作也是十分容易上手,勾選上PLCSIM,就可以給虛擬仿真的PLC設(shè)置通信IP地址,虛擬仿真PLC的IP地址盡量和Portal軟件中的PLC地址相同。否則會(huì)導(dǎo)致連接不上。當(dāng)Advanced軟件的虛擬PLC亮綠燈,表明連接成功。
關(guān)于Opc通信,Opc ua起到了虛擬仿真機(jī)器人和PLC之間的通信作用,相當(dāng)于機(jī)器人間的交流。在Unity中的窗口中找到Opc ua連接,勾選Portal軟件中的S7-1500設(shè)備中的激活Opc ua服務(wù)器,將服務(wù)器地址輸入到Unity的Opc ua界面中。連接成功后進(jìn)行藍(lán)圖信號(hào)與PLC程序中變量的綁定,完成Opc ua的連接。圖5為Opc ua通信。
圖5 Opc ua通信
虛擬仿真技術(shù)將物理世界與數(shù)字世界虛實(shí)相映,可以突破硬件設(shè)備的限制,基于Unity虛擬仿真讓虛擬機(jī)器人和PLC相結(jié)合,在虛擬世界中進(jìn)行工藝路徑規(guī)劃、物流設(shè)計(jì),實(shí)現(xiàn)在虛擬環(huán)境中生產(chǎn)工藝。