(浙江工業(yè)大學 信息工程學院,杭州 310023)
21世紀以來,物聯(lián)網(wǎng)、云計算、大數(shù)據(jù)、移動通信、人工智能等新技術在制造業(yè)廣泛應用,制造系統(tǒng)集成式創(chuàng)新不斷發(fā)展,形成新一輪工業(yè)革命的重要驅(qū)動力。面對新一輪工業(yè)革命,世界各國都在出臺制造業(yè)轉(zhuǎn)型戰(zhàn)略,美國提出“先進制造業(yè)伙伴計劃”、德國提出“工業(yè)4.0戰(zhàn)略計劃”,都將智能制造作為本國構建制造業(yè)競爭優(yōu)勢的關鍵舉措[1-2]。與此同時,在“制造強國”和“網(wǎng)絡強國”大戰(zhàn)略背景下,我國也先后出臺了“中國制造2025”和“互聯(lián)網(wǎng)+”等制造業(yè)國家發(fā)展實施戰(zhàn)略,其核心是促進新一代信息技術與制造業(yè)深度融合,大力發(fā)展智能制造[3-4]。數(shù)字孿生(Digital Twin)[5-7],作為實現(xiàn)物理世界與信息世界交互與融合的有效方法,是指通過數(shù)字技術來復制物理對象,模擬對象在現(xiàn)實環(huán)境中的行為,對整個工廠的生產(chǎn)過程進行虛擬仿真,從而提高制造企業(yè)產(chǎn)品研發(fā)、制造的生產(chǎn)效率。數(shù)字孿生正在成為智能制造新趨勢,已經(jīng)在2017、2018和2019年連續(xù)三年被世界領先的科技研究集團 Gartner評為年度十大戰(zhàn)略性技術,預測在不久的將來將有數(shù)十億臺設備擁有數(shù)字雙胞胎,并且到 2020 年,估計將有210億個連接的傳感器和端點投入使用。
虛擬調(diào)試(Virtual Commissioning)[8-10]是數(shù)字孿生最好的應用,虛擬調(diào)試技術是在虛擬環(huán)境中調(diào)試控制設備的代碼,然后通過虛擬仿真來測試和驗證系統(tǒng)方案的可行性,再將調(diào)試代碼應用到真實的場景中。該虛實融合的虛擬調(diào)試技術的優(yōu)勢在于降低了調(diào)試成本和風險、減少了現(xiàn)場調(diào)試時間、提升了工作質(zhì)量、驗證PLC的邏輯及產(chǎn)品的可行性。國內(nèi)外有很多學者對虛擬調(diào)試技術進行了研究,Koo提出了虛擬工廠模型框架,并應用于汽車裝配線中,通過建模和仿真驗證了PLC邏輯[11]。劉玉玲在Roboguide平臺對焊接機器人增材制造進行了虛擬仿真,有效縮短了機器人焊接時間,提高了機器人工作效率[12]。黃永飛開發(fā)了一種面向三維虛擬生產(chǎn)線的PLC仿真控制系統(tǒng),實現(xiàn)了基于PLC Editor的虛擬自動生產(chǎn)線的仿真控制[13]。楊大宇基于Autoform軟件實現(xiàn)了對汽車覆蓋件拉延模具的參數(shù)化虛擬調(diào)試,使模具在制造前就消除了成形缺陷[14]。王春曉采用Modelica進行數(shù)控機床多領域建模并虛擬調(diào)試,對機床實機調(diào)試具有指導意義[15]。
本文首先設計了面向智能制造加工的虛擬調(diào)試系統(tǒng)的總體方案,系統(tǒng)包括三部分:物理控制設備、交互控制軟件和虛擬3D模型;其次根據(jù)系統(tǒng)的功能需求開發(fā)了PC端的交互控制軟件,實現(xiàn)了物理與虛擬信號的交互融合;然后在RoboDK仿真軟件中建立了機器人、立體倉庫、數(shù)控車床加工中心等3D模型,通過PLC、機器人控制器、車床控制器及加工中心控制器進行虛擬調(diào)試,調(diào)試過程中發(fā)現(xiàn)了PLC程序設計的不合理之處并進行了改善;最后搭建了實驗平臺,通過實驗對智能制造加工系統(tǒng)的可行性進行了驗證。
整個系統(tǒng)由物理控制設備、交互控制軟件和虛擬3D模型三大部分組成。物理控制設備以PLC為中央控制器與機器人控制器、車床控制器、加工中心控制器接入同一交換機下,通過工業(yè)以太網(wǎng)進行通信。PC端設計一款交互控制軟件,采集、監(jiān)控物理設備的數(shù)據(jù),同時實現(xiàn)系統(tǒng)中物理信號與虛擬信號的交互。在RoboDK軟件中建立加工系統(tǒng)中機器人、立體倉庫、數(shù)控車床及加工中心等3D模型,用來模擬真實的加工系統(tǒng)。系統(tǒng)總體方案如圖1所示。
圖1 系統(tǒng)總體方案圖
以中央控制器PLC為核心,對整個系統(tǒng)進行邏輯控制,并通過交互控制軟件,進行物理信號與虛擬信號的匹配,實現(xiàn)以下功能:1)實現(xiàn)與機器人模型運動指令、運行狀態(tài)及數(shù)據(jù)的交互;2)實現(xiàn)數(shù)控車床模型安全門開關、卡盤松緊及加工工藝的執(zhí)行;3)實現(xiàn)加工中心模型安全門開關、卡盤松緊及加工工藝的執(zhí)行;4)實現(xiàn)與立體倉庫模型中工件狀態(tài)信息的交互。信號匹配完成后對加工系統(tǒng)進行虛擬調(diào)試來完成加工任務,加工任務由以下幾部分組成:1)機器人夾取立體倉庫中毛坯工件進行工件出庫;2)機器人往數(shù)控車床上料;3)數(shù)控車床加工;4)機器人夾取加工完成的半成品往加工中心上料;5)加工中心加工;6)機器人夾取成品入庫。
交互控制軟件在Visual Studio 2015平臺上進行開發(fā),基于OSGI.NET插件框架進行軟件設計,數(shù)據(jù)層采用C#編程語言編寫,顯示層采用WinForm高效而又強大的控件集設計。OSGi.NET插件框架, 是OSGi R4.2規(guī)范移植到.NET平臺的實現(xiàn)。具有面向服務架構、動態(tài)模塊化和模塊擴展三大功能。支持控制臺、WinForm、WPF、ASP.NET和移動平臺等任意.NET應用環(huán)境,其體系結(jié)構如圖2所示。
圖2 OSGI.NET體系結(jié)構圖
交互控制軟件的總體設計框架如圖3所示。根據(jù)OSGI.NET插件框架的模塊化和插件化的功能,將每個設備驅(qū)動做成插件,每個插件被獨立開發(fā),設計了相應的采集層、顯示層和數(shù)據(jù)層。采集層:通過相應設備的應用編程接口(API),做成數(shù)據(jù)采集器,實時采集設備的數(shù)據(jù);顯示層:實時顯示物理信號和虛擬信號的詳細信息;數(shù)據(jù)層:將物理信號存儲到Redis數(shù)據(jù)庫,同時讀取Redis數(shù)據(jù)庫中的虛擬信號寫入物理設備。使用Redis高性能數(shù)據(jù)庫,將物理信號和虛擬信號進行緩存,保證了信號交互的實時性。使用Python腳本程序讀取Redis數(shù)據(jù)庫中物理信號來驅(qū)動RoboDK中3D模型,同時將模型的虛擬信號存儲到Redis數(shù)據(jù)庫中,最終反饋到物理控制設備中。
圖3 交互控制軟件總體設計框架圖
交互控制軟件由系統(tǒng)插件和設備插件組成。其中系統(tǒng)插件用于管理設備插件的生命周期,負責啟動、停止及卸載設備插件,能夠挑選任意的插件組裝進行虛擬調(diào)試。機器人插件能夠?qū)崿F(xiàn)與目標機器人控制進行連接、對關節(jié)角及對輸出信號讀取。PLC插件能夠與目標PLC進行連接,對IO信號進行讀寫。數(shù)控車床插件能夠與數(shù)控車床控制器進行連接,對IO信號進行讀寫,省去了數(shù)控車床與PLC的硬件IO接線。加工中心插件能夠與加工中心控制器進行連接,對IO信號進行讀寫,省去了加工中心與PLC的硬件IO接線。具體功能如圖4所示。
圖4 交互控制軟件功能圖
軟件中每一個設備驅(qū)動都由獨立的插件所生成,擁有自己的業(yè)務邏輯及交互界面。插件具有動態(tài)性和隔離性,能夠被動態(tài)安裝、啟動、停止及卸載,同時有獨立的類型加載器和類型空間。OSGi.NET插件框架啟動時,通過BundleRuntime即插件運行時,它是插件的運行容器,會從各個插件目錄中逐一加載和啟動所有插件。
以開發(fā)PLC插件為例,基于OSGI.NET插件框架在winform下開發(fā)插件步驟如下:1)首先在Visual Studio 2015中創(chuàng)建一個winform主應用程序,作為啟動OSGI運行時環(huán)境的入口程序;2)添加核心的UIShell.OSGI引用;3)在Program.cs文件的程序入口點Main函數(shù)中創(chuàng)建啟動插件運行時BundleRuntime,從插件框架獲取PageFlowService服務,利用該服務獲取主界面,然后創(chuàng)建該界面實例,并運行;4)在主程序的輸出目錄下創(chuàng)建一個Plugins文件夾,在該文件夾下建立一個winform工程項目,這個項目即為PLC插件,BundleRuntime會自動從Plugins目錄下加載并啟動插件。插件由一個清單文件(Manifest.xml)、插件本地程序集、插件所需資源和其他文件組成。清單文件Manifest.xml可以定義插件的基本信息、插件的激活狀態(tài)信息、插件類加載的運行時信息及插件的擴展定義信息;5)PLC插件的界面設計采用兩個listView控件來進行PLC的IO信號的更新顯示,每行信號包括信號名、虛擬鍵名、輸入/輸出地址及當前值屬性,信號名為當前信號的描述,虛擬鍵名為當前信號在Redis中的鍵名,輸入/輸出地址為PLC的輸入/輸出地址,當前值為輸入/輸出地址中的信號值,該值會根據(jù)鍵名存儲到Redis中對應的鍵值中。在listView的輸入輸出列表范圍內(nèi)進行右擊,能夠選擇添加信號、修改信號、刪除信號、強制信號及取消強制等功能,信號的信息會寫入到.ini配置文件中,PLC插件操作界面如圖5所示;6)PLC插件的后臺創(chuàng)建了3個線程設計來提高軟件的執(zhí)行速度和運行效率,分別為讀PLC線程、寫PLC線程、刷新界面線程。讀PLC線程的任務是負責連接目標PLC,實時讀取PLC的輸出信號并存儲到Redis數(shù)據(jù)庫中。寫PLC線程的任務是負責連接目標PLC,從Redis數(shù)據(jù)庫中實時獲取設置中所需的信號值并寫入到PLC對應的輸入地址中。刷新界面線程的任務是從Redis數(shù)據(jù)庫中獲取設置信號值并實時顯示在界面上,便于觀察信號的變化。
圖5 PLC插件操作界面
開發(fā)完成之后運行插件, PLC插件具體的運行流程圖如圖6所示。首先設置目標PLC的IP地址,界面上會加載配置文件中已有的信號信息,還需添加信號可以在右擊菜單中進行逐行添加,信號添加完成之后運行插件,成功連接PLC之后將啟動3個線程。
圖6 PLC插件運行流程圖
基于PLC插件的開發(fā),同樣實現(xiàn)了機器人、數(shù)控車床及加工中心插件,數(shù)控車床和加工中心插件開發(fā)過程與PLC插件類似,機器人插件開發(fā)中只對機器人關節(jié)角數(shù)據(jù)及輸出信號進行讀取,顯示在界面上的同時存儲到Redis數(shù)據(jù)庫。系統(tǒng)管理插件在界面上使用DataGridView控件將插件目錄中的插件列出,并且使用了3個按鈕,分別實現(xiàn)設備插件的啟動、停止和卸載。系統(tǒng)管理與其他設備插件操作界面如圖7所示。
圖7 系統(tǒng)管理及其他插件操作界面
虛擬調(diào)試可以在項目開始的早期,利用物理控制設備和虛擬的3D模型來模擬整個加工過程,不僅減少了調(diào)試的時間和成本,而且在辦公室就能對控制設備程序進行邏輯檢查,最終驗證產(chǎn)品設計的可行性。在RoboDK軟件上建立加工系統(tǒng)的模型,然后通過交互控制軟件來調(diào)試該模型。RoboDK軟件中加工系統(tǒng)工作站如圖8所示。
圖8 加工系統(tǒng)工作站示意圖
加工系統(tǒng)工作站由以下幾部分組成:匯博20 kg型機器人、機器人夾爪、Neway數(shù)控車床、Neway加工中心、立體倉庫、控制柜、機器人軌道及圍欄。立體倉庫中每個倉位存放著工件,機器人負責搬運工件進行出庫、上料及入庫,立體庫中使用傳感器來模擬RFID,記錄工件的狀態(tài),數(shù)控車床負責加工毛坯工件,加工中心負責加工半成品。
中央控制器PLC的控制程序用梯形圖語言編寫,機器人控制器的執(zhí)行程序由匯博機器人腳本語言編寫,在數(shù)控車床和加工中心的控制主板中使用G代碼編程。
加工系統(tǒng)的虛擬調(diào)試環(huán)境搭建完成后,通過交互控制軟件實現(xiàn)物理控制設備與工作站中模型的信號交互,與每個設備程序中相對應的輸入輸出信號如圖9所示。
圖9 設備輸入輸出信號圖
圖10 工作站運行流程圖
加工系統(tǒng)工作站運行流程圖如圖10所示。程序啟動,首先是系統(tǒng)的初始化,機器人回到初始位置,數(shù)控車床和加工中心的卡盤緊和安全門關閉。初始化完成之后PLC根據(jù)指令調(diào)度機器人去立體倉庫的相應倉位取毛坯工件,取件時候?qū)⒐ぜ臓顟B(tài)寫入倉位中的傳感器,即RFID寫入,然后PLC調(diào)度機器人夾取毛坯件往數(shù)控車床上料,完成后進行RFID寫入,更新工件狀態(tài),PLC請求執(zhí)行相應的數(shù)控車床加工程序,數(shù)控車床開始對毛坯工件加工,加工完成之后,再進行RFID寫入,更新工件狀態(tài),PLC調(diào)度機器人去數(shù)控車床取件,然后夾取半成品放置到加工中心,完成后進行RFID寫入,更新工件狀態(tài),PLC請求執(zhí)行相應的加工中心加工程序,加工中心對半成品加工,加工完成之后,RFID寫入,更新工件狀態(tài),PLC調(diào)度機器人去加工中心取件,機器人夾取成品進行入庫,RFID寫入,更新工件狀態(tài),此時機器人處于等待狀態(tài),如果還有工件需要加工,PLC會繼續(xù)調(diào)度機器人執(zhí)行下一個加工任務,直到所有工件加工完畢。
在虛擬調(diào)試的過程中,不可避免地會出現(xiàn)一些問題,如圖11所示,第一個問題是機器人往數(shù)控車床上料,此時數(shù)控車床的安全門處于關閉狀態(tài),導致機器人直接撞擊在安全門上;第2個問題是機器人往加工中心放件,加工中心的卡盤處于緊閉狀態(tài),導致工件無法正常放入;第3個問題是機器人直接繞過了數(shù)控車床,將毛坯工件送到了加工中心;第4個問題是數(shù)控車床加工完成后,機器人沒有去取件。
圖11 工作站虛擬調(diào)試問題
上述問題如果發(fā)生在工作現(xiàn)場,會損壞加工設備及或者造成加工過程無序。經(jīng)過檢查,前兩個問題出現(xiàn)的原因是PLC梯形圖程序設計存在問題,機器人往數(shù)控車床上料之前沒有給安全門開信號,往加工中心上料之前沒有給卡盤松信號。后兩個問題出現(xiàn)的原因是RoboDK中的信號初始化及地址發(fā)送錯誤,數(shù)控車床的加工完成信號初始化為已完成狀態(tài),導致機器人提前往加工中心上料;數(shù)控車床加工完成之后,發(fā)出的加工完成信號的地址不是PLC梯形圖程序中設定的加工完成信號地址。針對問題的具體原因,進行了PLC梯形圖程序的改正及RoboDK中正確的初始化及信號的匹配,最后虛擬調(diào)試中,工作站能夠按照工序正常的運行,工作站正常運行如圖12所示。
圖12 工作站虛擬調(diào)試過程圖
通過虛擬調(diào)試對系統(tǒng)進行了穩(wěn)定性和可靠性測試,在工廠搭建了智能制造加工系統(tǒng)的實驗平臺進行實驗。實驗平臺包括PC機、控制柜、立體倉庫、匯博機器人、機器人夾爪、RFID讀寫器、KND數(shù)控車床及加工中心。其中PC機負責下載機器人和PLC程序,控制柜中包括SIMATIC S7-1200和匯博機器人控制器,RFID讀寫器負責對立體倉庫對應倉位中芯片進行讀寫,更新工件狀態(tài)。系統(tǒng)實驗平臺如圖13所示。
圖13 系統(tǒng)實驗平臺
將PC機、PLC、機器人、RFID讀寫器、數(shù)控車床及加工中心接入同一交換機下的局域網(wǎng)中,并分配相應的IP地址,在機器人示教盒中載入機器人程序,操作模式調(diào)成自動并且啟動機器人, PC機通過博途軟件載入PLC梯形圖程序,啟動智能制造加工系統(tǒng),運行流程和虛擬調(diào)試中一樣,系統(tǒng)運行實驗如圖14所示。其中數(shù)控車床和加工中心信號在虛擬調(diào)試中是通過工業(yè)以太網(wǎng)與其它設備交互的,省去了與PLC的硬件IO接線,在實驗場景中,主控PLC配置了2個16入/16出的繼電器輸出型的輸入/輸出模塊,分別用于與數(shù)控車床及加工中心進行信號交互。系統(tǒng)運行中與虛擬調(diào)試對應的機器人倉庫取件、數(shù)控車床上料、數(shù)控車床加工、加工中心上料、加工中心加工以及成品入庫任務均能夠完成,沒有發(fā)生異常,驗證了系統(tǒng)的穩(wěn)定性與可靠性。
圖14 系統(tǒng)運行實驗
本文設計并實現(xiàn)了面向智能制造加工的虛擬調(diào)試系統(tǒng),以PLC為中央控制器,通過工業(yè)以太網(wǎng)與機器人控制器、數(shù)控車床及加工中心控制器進行通訊。交互控制軟件采用插件化模式進行開發(fā),降低了設備驅(qū)動之間的耦合度,每個設備插件能夠被獨立地開發(fā)、測試和部署。Redis數(shù)據(jù)庫實現(xiàn)了物理信號與虛擬信號的緩存,保證了信號交互的實時性。在加工系統(tǒng)的虛擬調(diào)試的過程中發(fā)現(xiàn)并解決了PLC編程及信號匹配的問題,避免了在現(xiàn)場調(diào)試中對設備的損害。通過現(xiàn)場的實驗驗證了加工系統(tǒng)方案的可行性。結(jié)果表明,通過虛擬調(diào)試技術降低了智能制造加工系統(tǒng)的調(diào)試成本,縮短了調(diào)試的周期,并且給系統(tǒng)加工準備提供了有效的解決方案。