石朝陽(yáng),徐世許,史世良
(青島大學(xué) 自動(dòng)化學(xué)院,青島 266071)
伴隨著科技的不斷進(jìn)步,當(dāng)今社會(huì)的自動(dòng)化、信息化、生產(chǎn)力水平、經(jīng)濟(jì)水平也在不斷提高,工業(yè)生產(chǎn)進(jìn)入了一個(gè)新時(shí)代。物料的搬運(yùn)工作始終是工業(yè)生產(chǎn)中不可或缺的一部分,企業(yè)也對(duì)物料的搬運(yùn)提出了新的要求。例如:高效穩(wěn)定,實(shí)時(shí)監(jiān)控、低功耗、低成本等??紤]到企業(yè)的實(shí)際需求和工業(yè)設(shè)備的不斷更新,選擇了開放性、實(shí)時(shí)性較高的OPC UA協(xié)議作為通信標(biāo)準(zhǔn),設(shè)計(jì)了物料搬運(yùn)監(jiān)控系統(tǒng)。該系統(tǒng)將OPC UA技術(shù)、NX運(yùn)功控制器、SQL sever數(shù)據(jù)庫(kù)緊密結(jié)合起來(lái),代替了傳統(tǒng)的搬運(yùn)方式,不僅提高了物料搬運(yùn)的可靠性,同時(shí)減少了工作人員的任務(wù)量和使用數(shù)量,降低了企業(yè)的人力成本。使用SQL sever數(shù)據(jù)庫(kù)對(duì)箱體內(nèi)物料信息進(jìn)行及時(shí)的更新,保證箱體內(nèi)實(shí)際物料信息與數(shù)據(jù)庫(kù)內(nèi)物料信息一致,有利于操作人員實(shí)時(shí)掌握箱體內(nèi)的物料信息,使錯(cuò)誤率大大降低,提高了工業(yè)自動(dòng)化水平。
物料搬運(yùn)監(jiān)控系統(tǒng)硬件主要有上位機(jī)、NX102-1200運(yùn)動(dòng)控制器、R88D-1SN08-ECT伺服驅(qū)動(dòng)器、R88D-1M75030T-S2伺服電機(jī)、NX-ID5342輸入模塊等。系統(tǒng)上位機(jī)與NX運(yùn)動(dòng)控制器以O(shè)PC UA協(xié)議通信,上位機(jī)作為OPC UA客戶端,NX運(yùn)動(dòng)控制器利用內(nèi)置的OPC UA模塊搭建OPC UA數(shù)據(jù)服務(wù)器。上位機(jī)監(jiān)控軟件在Visual Studio2019平臺(tái)運(yùn)用C#語(yǔ)言開發(fā),利用OPC.Ua.Client類庫(kù)創(chuàng)建實(shí)例化對(duì)象完成節(jié)點(diǎn)的讀寫及訂閱操作[1]。當(dāng)物料需要搬運(yùn)時(shí),上位機(jī)監(jiān)控軟件向下位機(jī)NX控制器發(fā)送源位置、目標(biāo)位置、啟動(dòng)信號(hào)。下位機(jī)接收到啟動(dòng)信號(hào)后,由3個(gè)伺服電機(jī)組成的三軸機(jī)械手先運(yùn)動(dòng)至源位置將物料吸起,再運(yùn)動(dòng)至目標(biāo)位置將物料放下。物料的吸取與釋放由真空吸盤完成。在搬運(yùn)的過(guò)程中,上位機(jī)監(jiān)控軟件實(shí)時(shí)讀取NX運(yùn)動(dòng)控制器的狀態(tài)及伺服電機(jī)的速度、位置、轉(zhuǎn)矩等并顯示在上位機(jī)監(jiān)控界面上,實(shí)現(xiàn)實(shí)時(shí)監(jiān)控。物料搬運(yùn)完成后,上位機(jī)監(jiān)控軟件實(shí)時(shí)修改SQL sever數(shù)據(jù)庫(kù),提高系統(tǒng)的可追溯型,代替了人工記錄,提高系統(tǒng)的自動(dòng)化程度。傳感器主要有光電開關(guān)、接近開關(guān)等,接近開關(guān)用于限位保護(hù)及電機(jī)零點(diǎn)設(shè)定,光電開關(guān)用于檢測(cè)物料搬運(yùn)過(guò)程中是否有脫落的情況。傳感器、急停按鈕、報(bào)警燈的使用是為了降低系統(tǒng)的故障率,提高系統(tǒng)的安全性。系統(tǒng)硬件結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)硬件結(jié)構(gòu)
系統(tǒng)通過(guò)OPC UA協(xié)議完成上位機(jī)與NX運(yùn)動(dòng)控制器間的數(shù)據(jù)交互[2]。OPC UA是OPC基金會(huì)推出的一種新技術(shù),與以往的OPC規(guī)范不同的是,OPC UA新增了跨平臺(tái)能力且增強(qiáng)了命名空間的功能,解決了傳統(tǒng)OPC技術(shù)的一些弊端。
2.1.1 OPC UA服務(wù)器設(shè)置
NX運(yùn)動(dòng)控制器內(nèi)置了OPC UA通信模塊,因此只需在NX運(yùn)動(dòng)控制器的開發(fā)環(huán)境Sysmac Studio進(jìn)行簡(jiǎn)單的配置即可完成對(duì)OPC UA服務(wù)器的設(shè)置。首先打開OPC UA設(shè)置,將服務(wù)器功能設(shè)為“使用”狀態(tài),然后設(shè)置終點(diǎn)與端口號(hào)。點(diǎn)擊在線可查看服務(wù)器證書,確保服務(wù)器證書在有效期范圍內(nèi)且終點(diǎn)與端口號(hào)設(shè)置無(wú)誤后,將當(dāng)前配置下載至NX運(yùn)動(dòng)控制器。OPC UA服務(wù)器配置界面如圖2所示。
圖2 OPC UA服務(wù)器配置
2.1.2 OPC UA客戶端程序設(shè)計(jì)
OPC UA通信的數(shù)據(jù)讀取方式共有三種:同步、異步、訂閱。由于該系統(tǒng)需要通信的變量較多,且需要較高的通信效率,因此選用了異步通信的方式[3]。下面講述如何通過(guò)OPC.UA.Client連接OPC UA服務(wù)器,且對(duì)服務(wù)器中的節(jié)點(diǎn)進(jìn)行讀寫及訂閱操作。
1)與OPC UA服務(wù)器連接。
3)在物料進(jìn)行搬運(yùn)的過(guò)程中,上位機(jī)監(jiān)控界面需要實(shí)時(shí)顯示電機(jī)的位置、速度、轉(zhuǎn)矩等數(shù)據(jù),因此要使用節(jié)點(diǎn)訂閱的方法批量訂閱服務(wù)器中的節(jié)點(diǎn)。
在添加多節(jié)點(diǎn)訂閱時(shí),需要聲明一個(gè)回調(diào)方法SubCallback,當(dāng)服務(wù)器上被訂閱的節(jié)點(diǎn)的值發(fā)生變化時(shí)就會(huì)產(chǎn)生通知,通知中包含的Value屬性就是被訂閱節(jié)點(diǎn)變化后的值。SubCallback方法如下
NX運(yùn)動(dòng)控制器控制由三個(gè)伺服電機(jī)組成的三軸機(jī)械手完成物料的搬運(yùn)工作。上位機(jī)向NX運(yùn)動(dòng)控制器發(fā)送源位置、目標(biāo)位置、啟動(dòng)信號(hào)。下位機(jī)收到啟動(dòng)信號(hào)后,利用多軸聯(lián)動(dòng)技術(shù),機(jī)械手的XX軸和XY軸同時(shí)移動(dòng),移動(dòng)至出料箱的源位置,到位后XZ下降到指定位置,通過(guò)真空吸盤對(duì)源位置的物料進(jìn)行吸取。吸盤吸取500ms后XZ軸上升至零點(diǎn)位置,到位后機(jī)械手移動(dòng)至接料箱的目標(biāo)位置。到達(dá)目標(biāo)位置后,XZ軸下降到指定位置將物料釋放。釋放完成后XZ軸再次回到零點(diǎn)位置,到位后就完成了物料的單次搬運(yùn)。機(jī)械手的物料搬運(yùn)流程如圖3所示。
圖3 機(jī)械手搬運(yùn)流程
在物料搬運(yùn)的過(guò)程中,由于機(jī)械振動(dòng)很容易導(dǎo)致丟料現(xiàn)象。為避免此情況的發(fā)生,要調(diào)整好各軸速度、加速度、加加速度的關(guān)系,一般將比例調(diào)整為1∶2∶8的關(guān)系就可大幅度的減小機(jī)械振動(dòng)。當(dāng)然也可以通過(guò)使用歐姆龍封裝好的振動(dòng)抑制功能塊來(lái)減小機(jī)械振動(dòng)。除了調(diào)整好各軸速度、加速度、加加速度外,也要根據(jù)設(shè)備的運(yùn)行環(huán)境、電機(jī)的應(yīng)用場(chǎng)合調(diào)整機(jī)械剛性、慣量比、伺服PID參數(shù)等,使設(shè)備平穩(wěn)安全的運(yùn)行。
為讓工作人員可以實(shí)時(shí)了解物料搬運(yùn)情況及各軸電機(jī)的運(yùn)行情況,設(shè)計(jì)了上位機(jī)監(jiān)控軟件。上位機(jī)監(jiān)控軟件在Visual Studio2019平臺(tái)運(yùn)用C#語(yǔ)言開發(fā),利用OPC.Ua.Client類庫(kù)創(chuàng)建實(shí)例化對(duì)象實(shí)現(xiàn)與NX運(yùn)動(dòng)控制器的OPC通信[4]。當(dāng)物料需要搬運(yùn)時(shí),上位機(jī)監(jiān)控軟件向NX運(yùn)動(dòng)控制器發(fā)送待搬運(yùn)物料的源位置、目的位置、啟動(dòng)信號(hào),物料搬運(yùn)過(guò)程中在各軸電機(jī)監(jiān)控界面上實(shí)時(shí)顯示各軸電機(jī)的速度、位置、轉(zhuǎn)矩,物料搬運(yùn)完成后修改SQL sever數(shù)據(jù)庫(kù),便于之后的查詢與追溯,實(shí)現(xiàn)了控制與監(jiān)視的緊密結(jié)合。
在物料搬運(yùn)過(guò)程中,若速度、加速度、加加速度設(shè)定不合適很容易出現(xiàn)轉(zhuǎn)矩過(guò)載的情況,長(zhǎng)期如此會(huì)導(dǎo)致齒輪磨損嚴(yán)重,機(jī)械精度降低,因此在上位機(jī)監(jiān)控軟件中設(shè)計(jì)了各軸電機(jī)運(yùn)行情況監(jiān)視界面,可監(jiān)視各軸電機(jī)的速度、位置、轉(zhuǎn)矩等。伺服驅(qū)動(dòng)器作為從站通過(guò)EtherCAT網(wǎng)絡(luò)向主站NX運(yùn)動(dòng)控制器實(shí)時(shí)發(fā)送電機(jī)的實(shí)際速度、位置、坐標(biāo)等信息,上位機(jī)監(jiān)管軟件作為OPC UA客戶端訂閱這些節(jié)點(diǎn)后便可在界面上實(shí)時(shí)顯示。如圖4所示,左側(cè)為實(shí)物圖,右側(cè)為各軸電機(jī)運(yùn)行情況監(jiān)視圖。
圖4 實(shí)物及各軸電機(jī)運(yùn)行情況監(jiān)視界面
有些物料搬運(yùn)環(huán)境是封閉式的,工作人員很難實(shí)時(shí)了解到物料的搬運(yùn)情況,因此在上位機(jī)監(jiān)控軟件上設(shè)計(jì)了物料搬運(yùn)監(jiān)視界面。物料需要搬運(yùn)時(shí),會(huì)在監(jiān)視界面上顯示接料箱與出料箱的物料信息,物料搬運(yùn)過(guò)程中,出料箱中的源位置與接料箱的目標(biāo)位置會(huì)以虛框的形式顯示,上位機(jī)監(jiān)控軟件會(huì)根據(jù)各軸電機(jī)的實(shí)際坐標(biāo)顯示出物料在監(jiān)控界面上的相對(duì)位置,并且被搬運(yùn)的物料會(huì)在監(jiān)視界面中顯示特殊顏色,物料搬運(yùn)完成后使用二次封裝的sqlHelper類庫(kù)完成SQL sever數(shù)據(jù)庫(kù)的修改,修改完成后使用DataGridView控件顯示出接料箱與出料箱的物料搬運(yùn)信息。物料搬運(yùn)監(jiān)視界面如圖5所示。
圖5 物料搬運(yùn)監(jiān)視界面
sqlHelper類庫(kù)封裝的是對(duì)數(shù)據(jù)庫(kù)的一系列操作,封裝的目的是降低代碼的重復(fù)率。sqlHelper類庫(kù)封裝完成后,開發(fā)人員只需向類庫(kù)中的方法傳入一些參數(shù)即可完成對(duì)數(shù)據(jù)庫(kù)的操作,節(jié)省了開發(fā)時(shí)間,提高了代碼利用率。部分代碼如下:
針對(duì)箱體內(nèi)物料的搬運(yùn)問(wèn)題,本文設(shè)計(jì)了基于OPC UA技術(shù)的物料搬運(yùn)監(jiān)控系統(tǒng)[5]。上位機(jī)監(jiān)控軟件在Visual Studio2019平臺(tái)運(yùn)用C#語(yǔ)言開發(fā),代替了傳統(tǒng)的組態(tài)軟件。該系統(tǒng)將OPC UA技術(shù)與高級(jí)語(yǔ)言C#緊密結(jié)合起來(lái),為運(yùn)動(dòng)控制提供了使用方案,不僅實(shí)現(xiàn)了功能的擴(kuò)展,同時(shí)也降低了開發(fā)難度和開發(fā)成本。目前該系統(tǒng)已應(yīng)用于實(shí)際工業(yè)生產(chǎn)線中,系統(tǒng)平穩(wěn)運(yùn)行,未來(lái)該系統(tǒng)還會(huì)不斷更新,會(huì)基于OPC UA技術(shù)逐漸向云端發(fā)展,逐步成為更加智能、可靠、簡(jiǎn)單的系統(tǒng)。