程嘉豪,杜寶江
(200093 上海市 上海理工大學(xué) 機(jī)械工程學(xué)院)
隨著自動(dòng)化生產(chǎn)的不斷發(fā)展,工業(yè)機(jī)器人和PLC 已經(jīng)成為現(xiàn)代工業(yè)生產(chǎn)中不可或缺的一部分。在高校,對(duì)學(xué)生在工業(yè)機(jī)器人PLC 控制應(yīng)用能力上的培養(yǎng)變得越來(lái)越重要。高校開(kāi)展PLC 控制實(shí)驗(yàn)的目的在于培養(yǎng)學(xué)生在機(jī)電自動(dòng)控制中的理論結(jié)合實(shí)踐的工程應(yīng)用能力。在前期階段,考慮到電氣設(shè)備的危險(xiǎn)性和學(xué)生對(duì)電氣原理及操作的不熟練,使用虛擬PLC 控制虛擬設(shè)備來(lái)進(jìn)行教學(xué)與實(shí)驗(yàn)。之后,學(xué)生需要進(jìn)一步使用實(shí)物PLC來(lái)進(jìn)行接線編程的實(shí)操訓(xùn)練。但由于學(xué)生實(shí)操編程經(jīng)驗(yàn)不足,往往容易發(fā)生誤操作和控制錯(cuò)誤[1],引起設(shè)備損壞,尤其是高成本的大型設(shè)備,如工業(yè)機(jī)器人等[2]。
目前,高校里的實(shí)物PLC 控制實(shí)驗(yàn)的控制對(duì)象主要為一些簡(jiǎn)易被控裝置,如電機(jī)、信號(hào)燈等。對(duì)于接近實(shí)際的被控對(duì)象,如機(jī)器人、自動(dòng)生產(chǎn)線等大型設(shè)備,由于成本、場(chǎng)地以及實(shí)操存在危險(xiǎn)等原因,難以大量應(yīng)用[3]。考慮到制造業(yè)的發(fā)展趨勢(shì),工業(yè)機(jī)器人PLC 控制實(shí)驗(yàn)大量應(yīng)用于高校教學(xué)中就顯得尤為重要。
針對(duì)實(shí)物機(jī)器人難以大批量用于學(xué)生PLC控制實(shí)驗(yàn)的問(wèn)題,廈門(mén)大學(xué)航空航天學(xué)院的卓勇教授提出了借助虛擬現(xiàn)實(shí)技術(shù)、Unity3D 來(lái)構(gòu)建虛擬機(jī)器人仿真環(huán)境的方法解決實(shí)物機(jī)械手的場(chǎng)地、成本以及機(jī)械傷害的問(wèn)題[4]。基于該思路,本文進(jìn)一步探討了虛實(shí)交互功能的開(kāi)發(fā),并應(yīng)用于學(xué)生實(shí)驗(yàn)的可行性。
本文提出了構(gòu)建基于Unity3D 的虛機(jī)實(shí)電機(jī)械手PLC 控制實(shí)驗(yàn)平臺(tái)的方案,滿足了學(xué)生實(shí)驗(yàn)的通用性和使用的便捷性,有效地降低實(shí)驗(yàn)的危險(xiǎn)性以及設(shè)備的損耗。學(xué)生可以在編寫(xiě)完程序后,通過(guò)搭建實(shí)物PLC 控制系統(tǒng)并掛接虛擬樣機(jī)的方式來(lái)模擬運(yùn)行,使用校驗(yàn)?zāi)K來(lái)進(jìn)行測(cè)試校驗(yàn)。
本平臺(tái)用于PLC 控制實(shí)驗(yàn)。對(duì)于虛擬環(huán)境的創(chuàng)建,應(yīng)有真實(shí)的物理引擎及豐富的UI 交互開(kāi)發(fā)工具,所以本平臺(tái)選用Unity3D 引擎搭建,使用C#來(lái)進(jìn)行編程開(kāi)發(fā)。選用高校常用的三菱PLC 應(yīng)用于實(shí)物PLC 控制系統(tǒng)。
學(xué)生在實(shí)驗(yàn)中,首先需要編寫(xiě)PLC 程序,然后完成實(shí)電部分實(shí)驗(yàn)裝置的搭建,再配合實(shí)驗(yàn)平臺(tái)的虛機(jī)部分進(jìn)行模擬運(yùn)行[5]。整個(gè)實(shí)驗(yàn)流程如圖1 所示。

圖1 實(shí)驗(yàn)流程Fig.1 Experiment process
針對(duì)整個(gè)實(shí)驗(yàn)流程,本系統(tǒng)分成了4 個(gè)部分來(lái)構(gòu)建,分別是機(jī)械手虛擬樣機(jī)的構(gòu)建、實(shí)物PLC 控制系統(tǒng)的搭建方案、虛實(shí)通訊模塊以及PLC 編程及校驗(yàn)?zāi)K,整體的方案框如圖2 所示。

圖2 整體方案Fig.2 Overall program
機(jī)械手虛擬樣機(jī)的建立是虛機(jī)實(shí)電中虛機(jī)部分的構(gòu)建,通過(guò)建立模型并參照實(shí)物機(jī)械手的運(yùn)動(dòng)特性,確立虛擬機(jī)械手各軸之間的運(yùn)動(dòng)關(guān)系,最終構(gòu)建出能夠按照實(shí)物機(jī)械手的工作方式來(lái)運(yùn)行的虛擬機(jī)械手。
PLC 實(shí)物控制系統(tǒng)是虛機(jī)實(shí)電中實(shí)電部分的實(shí)驗(yàn)裝置搭建。對(duì)于實(shí)物PLC 控制系統(tǒng)掛接虛擬樣機(jī)模擬運(yùn)行的實(shí)驗(yàn)方式,學(xué)生通過(guò)搭建實(shí)物PLC 控制系統(tǒng)來(lái)完成實(shí)電部分操作,并用于與虛機(jī)配合完成實(shí)驗(yàn)。
虛實(shí)通訊模塊是虛擬機(jī)械手和實(shí)物PLC 控制系統(tǒng)連接通訊的重要技術(shù)手段,虛擬機(jī)械手通過(guò)接收通訊模塊發(fā)出的數(shù)據(jù)來(lái)驅(qū)動(dòng)運(yùn)行。
PLC 編程及校驗(yàn)?zāi)K是學(xué)生實(shí)驗(yàn)的內(nèi)容設(shè)計(jì)部分。學(xué)生在編程模塊按要求編寫(xiě)PLC 程序來(lái)用于控制實(shí)驗(yàn)。校驗(yàn)?zāi)K在學(xué)生編寫(xiě)完P(guān)LC 程序,搭建完實(shí)物PLC 控制系統(tǒng)接入PC 機(jī)進(jìn)行模擬運(yùn)行時(shí)配合使用,用于校驗(yàn)PLC 程序以及控制系統(tǒng)。
針對(duì)實(shí)物機(jī)械手的虛擬樣機(jī)設(shè)計(jì),通過(guò)分析實(shí)物機(jī)械手的運(yùn)動(dòng)特性,完成了虛擬機(jī)械手模型的建立,確立了虛擬機(jī)械手的運(yùn)行方式,從而完成了虛機(jī)的構(gòu)建。
本文選用ABB IRB1600 來(lái)進(jìn)行虛擬樣機(jī)設(shè)計(jì)。IRB1600 機(jī)器人為六軸多關(guān)節(jié)串聯(lián)機(jī)械手,6個(gè)關(guān)節(jié)均為轉(zhuǎn)動(dòng)副,常用于上下料、弧焊等領(lǐng)域。在實(shí)際運(yùn)動(dòng)中,各關(guān)節(jié)間存在父子關(guān)系,比如:1 軸轉(zhuǎn)動(dòng)會(huì)帶動(dòng)23456 軸轉(zhuǎn)動(dòng),3 軸轉(zhuǎn)動(dòng)會(huì)帶動(dòng)456 軸一起轉(zhuǎn)動(dòng)等。
機(jī)械手各軸的模型使用工業(yè)軟件完成建模裝配即可。由于機(jī)械手各軸之間存在轉(zhuǎn)動(dòng)關(guān)系,所以虛擬機(jī)械手各軸需要確定旋轉(zhuǎn)軸的方向和位置。使用3DMAX 來(lái)調(diào)整虛擬機(jī)械手各軸模型的自身坐標(biāo)系位置及方向。根據(jù)Unity3D 的模型格式要求,導(dǎo)出FBX 格式。導(dǎo)入U(xiǎn)3D 后,模型效果如圖3 所示。

圖3 機(jī)械手虛擬樣機(jī)Fig.3 Manipulator virtual prototype
參照機(jī)械手的實(shí)際運(yùn)動(dòng)特性,在U3D 中進(jìn)一步調(diào)節(jié)各軸模型間的父子關(guān)系,調(diào)整后結(jié)果如圖3 右側(cè),保證六軸角度的變化能夠驅(qū)動(dòng)虛擬機(jī)械手如實(shí)運(yùn)動(dòng)。
虛機(jī)接收到實(shí)電部分的運(yùn)行數(shù)據(jù),經(jīng)字符串分解后可得序號(hào)、角速度和轉(zhuǎn)向。在Unity3D 中,機(jī)械手的運(yùn)動(dòng)使用Rotate()函數(shù)來(lái)完成。序號(hào)決定了需要驅(qū)動(dòng)的機(jī)械手的軸,角速度和轉(zhuǎn)向確定了Rotate()中參數(shù)的數(shù)值和正負(fù)。通過(guò)逐幀地解析接收到運(yùn)行數(shù)據(jù)并調(diào)用Rotate(),可驅(qū)動(dòng)機(jī)械手運(yùn)行。
本段通過(guò)完成機(jī)械手模型的構(gòu)建和運(yùn)行方式,實(shí)現(xiàn)了對(duì)實(shí)物機(jī)械手的虛擬化,能用于被實(shí)電部分的數(shù)據(jù)驅(qū)動(dòng)運(yùn)行。
針對(duì)學(xué)生搭建實(shí)電控制裝置的實(shí)驗(yàn)流程以及虛機(jī)實(shí)電中對(duì)運(yùn)行數(shù)據(jù)的采集需要,本段分析了實(shí)機(jī)實(shí)電的實(shí)際控制對(duì)象,提出了一套用于虛機(jī)實(shí)電的實(shí)物PLC 控制系統(tǒng)的搭建方案。
在實(shí)機(jī)實(shí)電中,PLC 程序的實(shí)際控制對(duì)象是機(jī)械手各軸的步進(jìn)電機(jī),在機(jī)械手為虛擬樣機(jī)的情況下,本文提出直接搭建實(shí)物PLC 控制實(shí)物步進(jìn)電機(jī)的電路,再在此基礎(chǔ)上加入傳感器和數(shù)據(jù)交換模塊來(lái)對(duì)步進(jìn)電機(jī)的運(yùn)行狀態(tài)進(jìn)行數(shù)據(jù)采集,用于驅(qū)動(dòng)虛擬機(jī)械手。整體方案如圖4 所示。

圖4 實(shí)物PLC 控制系統(tǒng)的搭建方案Fig.4 Construction plan of physical PLC control system
其中,PLC 選用FX2N 系列,步進(jìn)驅(qū)動(dòng)器選用ND556,步進(jìn)電機(jī)選用60BYG250A,數(shù)據(jù)交換模塊選用Arduino 單片機(jī)。在數(shù)據(jù)的采集和處理上,本文選用霍爾傳感器和Arduino 單片機(jī)來(lái)完成。霍爾傳感器在磁場(chǎng)變化時(shí),會(huì)發(fā)出脈沖信號(hào),根據(jù)此原理配合Arduino 的中斷功能,即可測(cè)出電機(jī)轉(zhuǎn)動(dòng)一圈所用的時(shí)間,從而算出轉(zhuǎn)速和轉(zhuǎn)向[6]。
學(xué)生在搭建完實(shí)物PLC 控制實(shí)物步進(jìn)電機(jī)的部分后,將霍爾傳感器放在帶有磁鐵的電機(jī)轉(zhuǎn)盤(pán)的旁邊,用于對(duì)電機(jī)的運(yùn)行數(shù)據(jù)進(jìn)行采集,即可完成實(shí)電裝置的搭建。
本段通過(guò)分析實(shí)機(jī)實(shí)電的控制對(duì)象,提出了一套用于虛機(jī)實(shí)電的實(shí)物PLC 控制系統(tǒng)的搭建方案。在無(wú)實(shí)物機(jī)械手的情況下,較好地完成了對(duì)學(xué)生實(shí)操能力的訓(xùn)練,同時(shí)能夠用于驅(qū)動(dòng)虛擬機(jī)械運(yùn)行,完成機(jī)械手PLC 控制實(shí)驗(yàn)。
針對(duì)虛機(jī)與實(shí)電部分的數(shù)據(jù)通訊問(wèn)題,本段分析了虛實(shí)通訊過(guò)程中的輸入輸出,提出了硬件與軟件部分的設(shè)計(jì)方案,實(shí)現(xiàn)了以實(shí)物PLC 控制系統(tǒng)驅(qū)動(dòng)虛擬機(jī)械手的技術(shù)。
驅(qū)動(dòng)虛擬機(jī)械手運(yùn)行需要提供轉(zhuǎn)動(dòng)軸的序號(hào)、轉(zhuǎn)動(dòng)方向以及角速度。其中,角速度可以通過(guò)計(jì)算步進(jìn)電機(jī)轉(zhuǎn)動(dòng)一圈所需時(shí)間來(lái)得出。轉(zhuǎn)動(dòng)時(shí)間和轉(zhuǎn)向直接使用傳感器來(lái)測(cè)得,轉(zhuǎn)動(dòng)軸的序號(hào)在數(shù)據(jù)交換模塊中直接指定。數(shù)據(jù)交換模塊完成輸入與輸出的轉(zhuǎn)換并發(fā)送給虛擬機(jī)械手,用于驅(qū)動(dòng)虛擬機(jī)械手運(yùn)行。

表1 通訊模塊的輸入與輸出Tab.1 Input and output of communication module
硬件設(shè)計(jì)部分由實(shí)電部分的數(shù)據(jù)采集、數(shù)據(jù)的處理輸出以及虛機(jī)部分接收數(shù)據(jù)3 個(gè)部分構(gòu)成,具體的數(shù)據(jù)傳遞流程如圖5 所示。

圖5 虛實(shí)通訊中的數(shù)據(jù)傳遞流程Fig.5 Data transfer process in virtual and real communication
對(duì)輸入數(shù)據(jù)的采集,本文中使用2 個(gè)霍爾傳感器來(lái)配合完成,分別用于測(cè)電機(jī)轉(zhuǎn)向和記錄轉(zhuǎn)動(dòng)時(shí)間。對(duì)輸入數(shù)據(jù)的處理及輸出選用Arduino單片機(jī)來(lái)完成。虛機(jī)部分通過(guò)創(chuàng)建虛擬接口來(lái)完成數(shù)據(jù)的接收。
軟件設(shè)計(jì)部分用于處理采集到的數(shù)據(jù),并發(fā)送給虛擬機(jī)械手。
在輸出中,角速度的值通過(guò)t1和t2運(yùn)算得出。編寫(xiě)Arduino 程序來(lái)計(jì)算時(shí)間差?t=t2-t1,得電機(jī)轉(zhuǎn)動(dòng)一圈所需的秒數(shù),通過(guò)換算得步進(jìn)電機(jī)的角速度度2π/?t rad/s。轉(zhuǎn)向通過(guò)判斷監(jiān)測(cè)轉(zhuǎn)向的霍爾傳感器的高低電平來(lái)得出。當(dāng)轉(zhuǎn)速傳感器觸發(fā)中斷時(shí),通過(guò)Arduino 判斷轉(zhuǎn)向傳感器電位的高低,得出順時(shí)針或逆時(shí)針,使用1或0來(lái)標(biāo)識(shí)輸出。
Arduino 完成數(shù)據(jù)處理后,將角速度、轉(zhuǎn)向和需要轉(zhuǎn)動(dòng)軸的序號(hào)以字符串“序號(hào)+‘:’+角速度+‘|’+轉(zhuǎn)向”的格式用Println 指令發(fā)送給PC 機(jī)。
PC 端需根據(jù)Arduino 的串口屬性,初始化一個(gè)屬性相應(yīng)的虛擬接口。使用Readline()接收單片機(jī)向串口發(fā)出的數(shù)據(jù)。通過(guò)遍歷接收到的字符串,分別取出序號(hào)、角速度以及轉(zhuǎn)向3 個(gè)子字符串,即可用于驅(qū)動(dòng)虛擬機(jī)械手。
本段通過(guò)對(duì)虛實(shí)通訊模塊的輸入輸出需求的分析,提出了硬件設(shè)計(jì)和軟件設(shè)計(jì)方案,完成了輸入數(shù)據(jù)的采集、數(shù)據(jù)處理、數(shù)據(jù)輸出整個(gè)流程,實(shí)現(xiàn)了以實(shí)電的運(yùn)行數(shù)據(jù)驅(qū)動(dòng)虛擬機(jī)械手運(yùn)動(dòng)的功能。
針對(duì)學(xué)生編寫(xiě)PLC 程序以及結(jié)合虛機(jī)實(shí)電完成程序校驗(yàn)的實(shí)驗(yàn)流程,本段提出PLC 編程及校驗(yàn)?zāi)K的設(shè)計(jì)方案。
本模塊以一軸為例,要求學(xué)生編寫(xiě)PLC 程序控制虛擬機(jī)械手的1 軸逆時(shí)針轉(zhuǎn)動(dòng)90°。實(shí)驗(yàn)中,給出了機(jī)械手1軸步進(jìn)電機(jī)的步距角為1.8°、軸的轉(zhuǎn)動(dòng)速率為22.5°/s,以及減速器的傳動(dòng)比為25,學(xué)生需根據(jù)公式(ω×i)/θ和(α×i)/θ算出機(jī)械手1 軸轉(zhuǎn)動(dòng)所需的脈沖數(shù)和脈沖速率,并編寫(xiě)控制程序,界面如圖6 所示。

圖6 程序設(shè)計(jì)模塊Fig.6 Programming module
本模塊用于校驗(yàn)學(xué)生編寫(xiě)的PLC 程序是否滿足要求。學(xué)生通過(guò)實(shí)物PLC 驅(qū)動(dòng)虛擬機(jī)械手的方式配合程序校驗(yàn)?zāi)K來(lái)進(jìn)行模擬運(yùn)行。該模塊會(huì)實(shí)時(shí)檢測(cè)虛擬機(jī)械手各軸轉(zhuǎn)動(dòng)的角度,通過(guò)與控制要求的角度作對(duì)比,判斷是否滿足要求,如圖7 所示。

圖7 運(yùn)行校驗(yàn)Fig.7 Run and check
機(jī)械手各軸轉(zhuǎn)動(dòng)角度的檢測(cè)直接通過(guò)使用U3D 的反射來(lái)獲取模型面板上的Rotation 值來(lái)實(shí)現(xiàn)。通過(guò)判斷機(jī)械手轉(zhuǎn)動(dòng)的角度和目標(biāo)角度的差值來(lái)確認(rèn)是否滿足控制要求,最終的差值小于5%,則編寫(xiě)的PLC 控制程序基本滿足了控制要求。
本文針對(duì)實(shí)物機(jī)械手由于場(chǎng)地、安全、成本限制而難以用于學(xué)生PLC 控制實(shí)驗(yàn)的問(wèn)題,研究了實(shí)物PLC 控制虛擬機(jī)械手的虛機(jī)實(shí)電控制技術(shù),提出了以實(shí)物PLC 控制虛擬機(jī)械手完成PLC控制實(shí)驗(yàn)的方案。目前相關(guān)方案已經(jīng)初步應(yīng)用于高校的虛擬仿真實(shí)驗(yàn)中。使用結(jié)果表明,該系統(tǒng)能夠在無(wú)實(shí)物機(jī)械手的情況下完成機(jī)械手的PLC控制實(shí)驗(yàn),有效降低了實(shí)驗(yàn)的成本,提高了學(xué)生的實(shí)操能力,并以PLC 驅(qū)動(dòng)虛擬機(jī)械手運(yùn)動(dòng)的方式直觀地展示PLC 控制系統(tǒng)的模擬運(yùn)行。
農(nóng)業(yè)裝備與車(chē)輛工程2021年11期