王佩玉,陳振中
(東華大學(xué) 機(jī)械工程學(xué)院,上海 201620)
近年來,在物聯(lián)網(wǎng)、大數(shù)據(jù)、人工智能等新技術(shù)被廣泛應(yīng)用于制造業(yè)的背景下,制造系統(tǒng)集成式創(chuàng)新不斷發(fā)展,基于虛擬調(diào)試技術(shù)對(duì)制造系統(tǒng)的有效監(jiān)督和控制,逐漸成為國(guó)內(nèi)外技術(shù)人員研究的熱點(diǎn)[1-4]。Lechler等[5]概述了虛擬調(diào)試的科學(xué)方法以及應(yīng)用實(shí)例;Vermaak等[6]通過虛擬調(diào)試優(yōu)化了可重構(gòu)裝配系統(tǒng);Metzner等[7]將虛擬調(diào)試的適用性進(jìn)一步擴(kuò)展到員工或客戶培訓(xùn)、混合系統(tǒng)分析和安全驗(yàn)證等領(lǐng)域;鄭魁敬等[8]將虛擬調(diào)試技術(shù)應(yīng)用到工業(yè)機(jī)器人磨削系統(tǒng);禹鑫燚等[9]研究了面向智能制造加工的虛擬調(diào)試技術(shù);王春曉[10]將虛擬調(diào)試應(yīng)用到數(shù)控機(jī)床領(lǐng)域。
目前國(guó)外的虛擬調(diào)試技術(shù)較為成熟,Tecnomatix公司開發(fā)的一款用于虛擬調(diào)試解決方案的軟件Process Designer &Process Simulate,可以在虛擬環(huán)境中調(diào)試自動(dòng)化控制邏輯和PLC(programmable logic controller)代碼,支持與西門子虛擬PLC通信,但與其他平臺(tái)的虛擬PLC存在通信瓶頸。Emulate3D公司開發(fā)的Demo3D仿真軟件,可以通過其PLC虛擬電控技術(shù),展示PLC控制邏輯,更專注于物流運(yùn)動(dòng)過程中的調(diào)試與仿真,卻難以實(shí)現(xiàn)該軟件與工業(yè)機(jī)器人的交互?;谖鏖T子PLM(product lifecycle management)工業(yè)軟件NX所集成的機(jī)電一體化概念設(shè)計(jì)系統(tǒng)MCD(mechatronics concept designer),側(cè)重于對(duì)機(jī)械設(shè)計(jì)結(jié)構(gòu)的合理性以及控制程序正確性的分析,并可結(jié)合西門子博途軟件平臺(tái)進(jìn)行虛擬調(diào)試驗(yàn)證,但難以與其他平臺(tái)的軟件進(jìn)行聯(lián)合調(diào)試。
上述虛擬調(diào)試軟件所偏向的領(lǐng)域各有差別,難以滿足與自動(dòng)化系統(tǒng)中不同平臺(tái)虛擬控制器交互的需要,也難以實(shí)現(xiàn)與工業(yè)機(jī)器人的一體化虛擬調(diào)試。因此,本文提出一種基于Unity 3D引擎的跨平臺(tái)虛擬調(diào)試系統(tǒng)設(shè)計(jì)方法,在Unity 3D中建立工業(yè)設(shè)備模型庫(kù),并通過腳本實(shí)現(xiàn)設(shè)備的動(dòng)作。利用D-H(Denavit-Hartenberg)參數(shù)法對(duì)安川MH-12工業(yè)機(jī)器人進(jìn)行數(shù)學(xué)分析,完成了機(jī)器人的虛擬建模和運(yùn)動(dòng)控制?;赩isual Studio 2017平臺(tái),采用C#語言開發(fā)了交互控制軟件,并利用TCP/IP(transmission control protocol /internet protocol)協(xié)議下的Socket通信實(shí)現(xiàn)了三菱虛擬PLC與Unity 3D的數(shù)據(jù)交互。通過生產(chǎn)線調(diào)試驗(yàn)證系統(tǒng)設(shè)計(jì)的有效性。
在自動(dòng)化生產(chǎn)線上,需要PLC、工業(yè)機(jī)器人、工控設(shè)備等協(xié)同工作,一方面需要在虛擬調(diào)試系統(tǒng)中構(gòu)建虛擬模型,另一方面要實(shí)現(xiàn)控制器I/O(input/output)信號(hào)的交互。虛擬模型采用SolidWorks軟件建模,經(jīng)過3ds Max進(jìn)行處理后,可導(dǎo)入U(xiǎn)nity 3D進(jìn)行開發(fā);控制器的I/O信號(hào)由虛擬PLC模擬,并通過開發(fā)的交互控制軟件與Unity 3D的數(shù)據(jù)實(shí)現(xiàn)交互。虛擬調(diào)試系統(tǒng)的總體框架如圖1所示。
圖1 虛擬調(diào)試系統(tǒng)總體框架Fig.1 General framework of virtual commissioning system
由圖1可知,虛擬調(diào)試系統(tǒng)主要由通信模塊、工業(yè)設(shè)備模型庫(kù)、工業(yè)機(jī)器人模塊、用戶界面、搭建虛擬生產(chǎn)線組成。通信模塊主要負(fù)責(zé)虛擬PLC的I/O信息與Unity 3D交互;工業(yè)設(shè)備模型庫(kù)包含傳感器、電機(jī)、輸送帶等自動(dòng)化生產(chǎn)線中常用的設(shè)備;工業(yè)機(jī)器人模塊首先對(duì)工業(yè)機(jī)器人進(jìn)行數(shù)學(xué)分析,其次完成虛擬工業(yè)機(jī)器人的建模,最后編寫腳本實(shí)現(xiàn)機(jī)器人的運(yùn)動(dòng)并設(shè)計(jì)機(jī)器人的控制界面;用戶界面的設(shè)計(jì)旨在提升虛擬系統(tǒng)的用戶體驗(yàn),主要包括登錄界面和主界面;通過搭建虛擬生產(chǎn)線以完成調(diào)試任務(wù)。
基于.NET框架并采用C#語言在Visual Studio 2017平臺(tái)中開發(fā)交互控制軟件,利用TCP/IP協(xié)議下的Socket通信,以交互控制軟件為服務(wù)端和Unity 3D為客戶端,建立服務(wù)端與客戶端之間的連接,進(jìn)行數(shù)據(jù)信息的交互。
采用C#命名空間System.Net.Sockets中的Socket類來接收和發(fā)送數(shù)據(jù),完成交互控制軟件與Unity 3D的通信,數(shù)據(jù)交互程序時(shí)序流程如圖2所示。由圖2可知:交互控制軟件作為服務(wù)端,首先創(chuàng)建負(fù)責(zé)監(jiān)聽的Socket,并通過Bind函數(shù)綁定IP地址和端口號(hào),然后通過Listen函數(shù)開啟監(jiān)聽,等待客戶端的連接請(qǐng)求;Unity 3D客戶端創(chuàng)建負(fù)責(zé)通信的Socket,IP地址和端口號(hào)與服務(wù)端保持一致,通過Connect函數(shù)向服務(wù)端發(fā)送連接請(qǐng)求,此時(shí)服務(wù)端響應(yīng)客戶端的Socket請(qǐng)求,通過Accept函數(shù)與客戶端建立連接,用于傳輸數(shù)據(jù)信息。
圖2 數(shù)據(jù)交互程序時(shí)序圖Fig.2 Program timing of data interaction
選擇在Visual Studio平臺(tái)上采用C#語言開發(fā)交互控制軟件,Visual Studio是目前應(yīng)用廣泛的Windows平臺(tái)應(yīng)用程序的集成開發(fā)環(huán)境,擁有完善的開發(fā)工具集以及軟件開發(fā)生命周期中所需要的大部分工具,軟件設(shè)計(jì)主要包括登錄驗(yàn)證、主界面、調(diào)試功能以及通信設(shè)置共4個(gè)模塊。
工業(yè)設(shè)備模型庫(kù)包含傳感器、電機(jī)、輸送帶等自動(dòng)化生產(chǎn)線中常用的設(shè)備,生產(chǎn)線上的設(shè)備采用SolidWorks繪制,并需要轉(zhuǎn)化為Unity 3D支持的fbx文件。Unity 3D支持多種語言作為腳本語言,目前C#語言的使用最為廣泛,并且開發(fā)得最為完善,因此采用C#語言對(duì)模型腳本進(jìn)行開發(fā)[11]。通過編寫C#腳本并將其掛載到設(shè)備模型上,實(shí)現(xiàn)虛擬設(shè)備的執(zhí)行動(dòng)作,然后建立執(zhí)行機(jī)構(gòu)的動(dòng)作與PLC信息的映射關(guān)系,在項(xiàng)目運(yùn)行期間即可實(shí)現(xiàn)所需的功能。
以輸送機(jī)為例,首先在SolidWorks中建立其三維模型,并通過3ds Max處理,在不影響整體效果的前提下,盡量減少模型的面數(shù),刪除看不見的面或重疊的面以提高系統(tǒng)仿真的流暢性[12],然后將模型保存為fbx文件并導(dǎo)入到Unity 3D中。輸送機(jī)模型如圖3所示。在自動(dòng)化生產(chǎn)上往往需要重復(fù)使用一些工業(yè)設(shè)備,為了提高開發(fā)效率以及方便模型管理,可以采用Unity 3D中的預(yù)制體(Perfab)來輔助開發(fā)。在Assets目錄下創(chuàng)建預(yù)制體庫(kù),將制作好的預(yù)制體放入,調(diào)用Instantiate()方法即可生成生產(chǎn)線所需要的設(shè)備。輸送機(jī)的輸送動(dòng)作采用表面貼圖的方式實(shí)現(xiàn),使其發(fā)生偏移,視覺上產(chǎn)生轉(zhuǎn)動(dòng)的效果[13]。
圖3 輸送機(jī)模型Fig.3 Conveyor model
以安川MH-12工業(yè)機(jī)器人為研究對(duì)象,利用D-H參數(shù)法建立連桿坐標(biāo)系[14]。連桿坐標(biāo)系如圖4所示,其中,a1=155 mm,a2=614 mm,a3=200 mm,d4=640 mm,連桿參數(shù)如表1所示。連桿的參數(shù)定義如下:
表1 MH-12機(jī)器人的連桿參數(shù)Table 1 Link parameters of MH-12 robot
圖4 MH-12機(jī)器人連桿坐標(biāo)系Fig.4 Link-pole coordinate of MH-12 robot
ai為沿Xi軸從Zi移動(dòng)到Zi+1的距離;
αi為繞Xi軸從Zi旋轉(zhuǎn)到Zi+1的角度;
di為沿Zi軸從Xi-1移動(dòng)到Xi的距離;
θi為繞Zi軸從Xi-1旋轉(zhuǎn)到Xi的角度。
虛擬工業(yè)機(jī)器人的建模需要通過模型樹來實(shí)現(xiàn),采用建立空對(duì)象的方法,將工業(yè)機(jī)器人的模型關(guān)節(jié)作為空對(duì)象的子物體,并將空對(duì)象的坐標(biāo)系方向和位置與關(guān)節(jié)模型保持一致[15]。根據(jù)D-H參數(shù)來設(shè)置工業(yè)機(jī)器人模型的Transform數(shù)值,最終建立起正確的模型父子關(guān)系。虛擬工業(yè)機(jī)器人的模型如圖5所示。
圖5 虛擬工業(yè)機(jī)器人模型Fig.5 Virtual industrial robot model
虛擬工業(yè)機(jī)器人的6個(gè)關(guān)節(jié)軸需要用按鍵或者以滑動(dòng)條滑動(dòng)的方式單獨(dú)調(diào)節(jié)轉(zhuǎn)動(dòng),使機(jī)器人運(yùn)動(dòng)到指定的關(guān)節(jié)角度。基于Unity 3D的圖形用戶界面系統(tǒng)(UGUI)進(jìn)行機(jī)器人控制界面的設(shè)計(jì)。在UGUI中所有控件都會(huì)成為畫圖(Canvas)的子對(duì)象,并且每一個(gè)控件都會(huì)包含一個(gè)Rect Transform組件,該組件繼承自Transform類,可用于控制UI(user interface)元素的Transform信息。機(jī)器人控制界面的設(shè)計(jì)主要使用UGUI下的Button控件,并在Inspect面板上綁定C#編寫的腳本代碼,以響應(yīng)Button的觸發(fā)。機(jī)器人控制界面如圖6所示。機(jī)器人的運(yùn)動(dòng)控制主要通過transform.Rotate()函數(shù)來實(shí)現(xiàn),末端的位姿信息通過transform.position()以及transform.eulerAngles()函數(shù)實(shí)現(xiàn)。
圖6 機(jī)器人控制界面Fig.6 Robot control interface
在滿足系統(tǒng)功能的前提下,設(shè)計(jì)虛擬調(diào)試系統(tǒng)的交互界面,以提升系統(tǒng)的用戶體驗(yàn),是系統(tǒng)開發(fā)的重要環(huán)節(jié)[16]?;赨nity 3D中的開源圖形界面系統(tǒng),設(shè)計(jì)虛擬調(diào)試系統(tǒng)的登錄界面和主界面。
登錄界面主要使用InputField控件,Placehoulder和Text是InputFiled子對(duì)象,Placehoulder用于顯示默認(rèn)提示信息的文本框,Text用來顯示用戶輸入的文本框,用戶需要輸入正確的用戶名和密碼才能夠登錄系統(tǒng),當(dāng)用戶輸入錯(cuò)誤的賬號(hào)和密碼進(jìn)行登錄時(shí)系統(tǒng)會(huì)提示登錄失敗的信息。主界面主要使用 Button控件,用戶通過主界面選擇目標(biāo)場(chǎng)景并進(jìn)行后續(xù)的操作。
本文選用三菱虛擬PLC,采用三菱官方MX Component組件,實(shí)現(xiàn)虛擬PLC與PC機(jī)的通信。MX Component組件是三菱官方用于PC與PLC進(jìn)行通信的組件,握手通信方式簡(jiǎn)潔并且兼容多種高級(jí)語言。在應(yīng)用MX Component時(shí),首先將設(shè)置界面上的PC side I/F項(xiàng)選擇為GX Simulator 2項(xiàng),Target Simulator項(xiàng)選擇為Simulator A,CPU Series項(xiàng)用戶可自主選用,然后在Target setting選擇中設(shè)置邏輯站號(hào),最后通過Connect test項(xiàng)進(jìn)行通信檢測(cè),當(dāng)通信建立成功后可以看到連接成功的提示。
基于開發(fā)的交互控制軟件,實(shí)現(xiàn)三菱GXWorks 2與Unity 3D的通信連接,完成虛擬調(diào)試,具體流程如圖7所示。由圖7可知,首先打開GXWorks 2編寫控制程序,進(jìn)入模擬狀態(tài),然后打開MX Component設(shè)置通信并測(cè)試,最后啟動(dòng)交互控制軟件,實(shí)現(xiàn)三菱GXWorks 2與Unity 3D的通信連接,進(jìn)行生產(chǎn)線的虛擬調(diào)試。若按照預(yù)期的程序運(yùn)動(dòng),則結(jié)束調(diào)試,否則檢查并修改程序,繼續(xù)調(diào)試。
圖7 虛擬調(diào)試流程圖Fig.7 Flow chart of virtual commissioning
生產(chǎn)線的總體布局如圖8所示。由圖8可知,生產(chǎn)線主要包括加工中心(CNC)、安川MH-12工業(yè)機(jī)器人(RB)、板鏈機(jī)、輸送機(jī)以及外圍的圍欄和DX200控制柜等設(shè)備。其中,板鏈機(jī)負(fù)責(zé)傳送待加工工件,加工中心對(duì)工件進(jìn)行加工,輸送機(jī)輸送工件,安川MH-12工業(yè)機(jī)器人固定在地面的底座上,其主要功能是從板鏈機(jī)上夾持待加工的工件到加工中心,等加工中心完成工件加工后,再將工件夾持至輸送機(jī)輸送。
圖8 生產(chǎn)線總體布局圖Fig.8 General layout of production line
生產(chǎn)線的功能流程如圖9所示。由圖9可知:程序開始時(shí)執(zhí)行檢測(cè)各設(shè)備是否處于原點(diǎn)狀態(tài),如果處于原點(diǎn)狀態(tài),板鏈機(jī)開始輸送工件至抓取位置并進(jìn)入等待狀態(tài);當(dāng)傳感器檢測(cè)到工件到達(dá)抓取位置后,RB從板鏈機(jī)抓取工件至CNC,CNC開始啟動(dòng)加工;RB繼續(xù)從板鏈機(jī)抓取工件,并等待CNC加工完成后將已加工工件取下,再將待加工工件放入,CNC繼續(xù)加工;RB將已加工的工件放入輸送機(jī),輸送機(jī)進(jìn)行工件輸送,完成一個(gè)加工流程。
圖9 生產(chǎn)線功能流程圖Fig.9 Flow chart of production line function
基于跨平臺(tái)虛擬調(diào)試系統(tǒng)的設(shè)計(jì),完成生產(chǎn)線的虛擬調(diào)試工作,部分調(diào)試過程如圖10所示,并最終確定虛擬控制器軟元件與機(jī)器人輸入輸出的握手信號(hào)關(guān)系,如表2所示。
表2 握手信號(hào)Table 2 Handshake signals
圖10 虛擬調(diào)試部分過程Fig.10 Partial processes of virtual commissioning
在虛擬調(diào)試過程中,通過觀察系統(tǒng)中工業(yè)機(jī)器人以及其他工業(yè)設(shè)備的工作狀態(tài),驗(yàn)證了PLC程序的正確性,并確定虛擬控制器輸入輸出與機(jī)器人輸入輸出的握手信號(hào)關(guān)系,提前解決了實(shí)際調(diào)試過程中可能存在的問題,提高了自動(dòng)化生產(chǎn)線項(xiàng)目的整體效率。
本文基于Unity 3D開發(fā)的跨平臺(tái)生產(chǎn)線虛擬調(diào)試系統(tǒng),有效實(shí)現(xiàn)了三菱虛擬PLC與安川MH-12工業(yè)機(jī)器人、傳感器等虛擬設(shè)備的信號(hào)交互,完成了自動(dòng)化生產(chǎn)線的虛擬調(diào)試。在 C#窗體應(yīng)用程序中開發(fā)了交互控制軟件,實(shí)現(xiàn)了三菱虛擬PLC與Unity 3D的數(shù)據(jù)交互。對(duì)工業(yè)設(shè)備完成了虛擬建模和功能定義,建立了工業(yè)設(shè)備模型庫(kù),用戶可通過簡(jiǎn)單的拖拽式操作,完成生產(chǎn)線的搭建。此外,針對(duì)安川MH-12工業(yè)機(jī)器人進(jìn)行數(shù)學(xué)分析,設(shè)計(jì)控制界面并實(shí)現(xiàn)了虛擬仿真功能。為提高用戶的系統(tǒng)體驗(yàn)感,設(shè)計(jì)了虛擬調(diào)試系統(tǒng)的人機(jī)交互界面。本文僅對(duì)三菱虛擬PLC和安川MH-12工業(yè)機(jī)器人進(jìn)行了研究,基于Unity 3D開發(fā)的跨平臺(tái)調(diào)試系統(tǒng),可以集成其他平臺(tái)的虛擬PLC以及工業(yè)機(jī)器人,對(duì)于研究其他平臺(tái)的虛擬控制器以及工業(yè)機(jī)器人具有一定的實(shí)用意義和參考價(jià)值,為實(shí)現(xiàn)不同平臺(tái)虛擬控制器與工業(yè)機(jī)器人的自動(dòng)化生產(chǎn)線調(diào)試提供了一種新思路。
東華大學(xué)學(xué)報(bào)(自然科學(xué)版)2022年2期