石朝陽,徐世許,史世良
(青島大學 自動化學院,青島 266071)
伴隨著科技的不斷進步,當今社會的自動化、信息化、生產力水平、經濟水平也在不斷提高,工業生產進入了一個新時代。物料的搬運工作始終是工業生產中不可或缺的一部分,企業也對物料的搬運提出了新的要求。例如:高效穩定,實時監控、低功耗、低成本等??紤]到企業的實際需求和工業設備的不斷更新,選擇了開放性、實時性較高的OPC UA協議作為通信標準,設計了物料搬運監控系統。該系統將OPC UA技術、NX運功控制器、SQL sever數據庫緊密結合起來,代替了傳統的搬運方式,不僅提高了物料搬運的可靠性,同時減少了工作人員的任務量和使用數量,降低了企業的人力成本。使用SQL sever數據庫對箱體內物料信息進行及時的更新,保證箱體內實際物料信息與數據庫內物料信息一致,有利于操作人員實時掌握箱體內的物料信息,使錯誤率大大降低,提高了工業自動化水平。
物料搬運監控系統硬件主要有上位機、NX102-1200運動控制器、R88D-1SN08-ECT伺服驅動器、R88D-1M75030T-S2伺服電機、NX-ID5342輸入模塊等。系統上位機與NX運動控制器以OPC UA協議通信,上位機作為OPC UA客戶端,NX運動控制器利用內置的OPC UA模塊搭建OPC UA數據服務器。上位機監控軟件在Visual Studio2019平臺運用C#語言開發,利用OPC.Ua.Client類庫創建實例化對象完成節點的讀寫及訂閱操作[1]。當物料需要搬運時,上位機監控軟件向下位機NX控制器發送源位置、目標位置、啟動信號。下位機接收到啟動信號后,由3個伺服電機組成的三軸機械手先運動至源位置將物料吸起,再運動至目標位置將物料放下。物料的吸取與釋放由真空吸盤完成。在搬運的過程中,上位機監控軟件實時讀取NX運動控制器的狀態及伺服電機的速度、位置、轉矩等并顯示在上位機監控界面上,實現實時監控。物料搬運完成后,上位機監控軟件實時修改SQL sever數據庫,提高系統的可追溯型,代替了人工記錄,提高系統的自動化程度。傳感器主要有光電開關、接近開關等,接近開關用于限位保護及電機零點設定,光電開關用于檢測物料搬運過程中是否有脫落的情況。傳感器、急停按鈕、報警燈的使用是為了降低系統的故障率,提高系統的安全性。系統硬件結構如圖1所示。

圖1 系統硬件結構
系統通過OPC UA協議完成上位機與NX運動控制器間的數據交互[2]。OPC UA是OPC基金會推出的一種新技術,與以往的OPC規范不同的是,OPC UA新增了跨平臺能力且增強了命名空間的功能,解決了傳統OPC技術的一些弊端。
2.1.1 OPC UA服務器設置
NX運動控制器內置了OPC UA通信模塊,因此只需在NX運動控制器的開發環境Sysmac Studio進行簡單的配置即可完成對OPC UA服務器的設置。首先打開OPC UA設置,將服務器功能設為“使用”狀態,然后設置終點與端口號。點擊在線可查看服務器證書,確保服務器證書在有效期范圍內且終點與端口號設置無誤后,將當前配置下載至NX運動控制器。OPC UA服務器配置界面如圖2所示。

圖2 OPC UA服務器配置
2.1.2 OPC UA客戶端程序設計
OPC UA通信的數據讀取方式共有三種:同步、異步、訂閱。由于該系統需要通信的變量較多,且需要較高的通信效率,因此選用了異步通信的方式[3]。下面講述如何通過OPC.UA.Client連接OPC UA服務器,且對服務器中的節點進行讀寫及訂閱操作。
1)與OPC UA服務器連接。


3)在物料進行搬運的過程中,上位機監控界面需要實時顯示電機的位置、速度、轉矩等數據,因此要使用節點訂閱的方法批量訂閱服務器中的節點。


在添加多節點訂閱時,需要聲明一個回調方法SubCallback,當服務器上被訂閱的節點的值發生變化時就會產生通知,通知中包含的Value屬性就是被訂閱節點變化后的值。SubCallback方法如下

NX運動控制器控制由三個伺服電機組成的三軸機械手完成物料的搬運工作。上位機向NX運動控制器發送源位置、目標位置、啟動信號。下位機收到啟動信號后,利用多軸聯動技術,機械手的XX軸和XY軸同時移動,移動至出料箱的源位置,到位后XZ下降到指定位置,通過真空吸盤對源位置的物料進行吸取。吸盤吸取500ms后XZ軸上升至零點位置,到位后機械手移動至接料箱的目標位置。到達目標位置后,XZ軸下降到指定位置將物料釋放。釋放完成后XZ軸再次回到零點位置,到位后就完成了物料的單次搬運。機械手的物料搬運流程如圖3所示。

圖3 機械手搬運流程
在物料搬運的過程中,由于機械振動很容易導致丟料現象。為避免此情況的發生,要調整好各軸速度、加速度、加加速度的關系,一般將比例調整為1∶2∶8的關系就可大幅度的減小機械振動。當然也可以通過使用歐姆龍封裝好的振動抑制功能塊來減小機械振動。除了調整好各軸速度、加速度、加加速度外,也要根據設備的運行環境、電機的應用場合調整機械剛性、慣量比、伺服PID參數等,使設備平穩安全的運行。
為讓工作人員可以實時了解物料搬運情況及各軸電機的運行情況,設計了上位機監控軟件。上位機監控軟件在Visual Studio2019平臺運用C#語言開發,利用OPC.Ua.Client類庫創建實例化對象實現與NX運動控制器的OPC通信[4]。當物料需要搬運時,上位機監控軟件向NX運動控制器發送待搬運物料的源位置、目的位置、啟動信號,物料搬運過程中在各軸電機監控界面上實時顯示各軸電機的速度、位置、轉矩,物料搬運完成后修改SQL sever數據庫,便于之后的查詢與追溯,實現了控制與監視的緊密結合。
在物料搬運過程中,若速度、加速度、加加速度設定不合適很容易出現轉矩過載的情況,長期如此會導致齒輪磨損嚴重,機械精度降低,因此在上位機監控軟件中設計了各軸電機運行情況監視界面,可監視各軸電機的速度、位置、轉矩等。伺服驅動器作為從站通過EtherCAT網絡向主站NX運動控制器實時發送電機的實際速度、位置、坐標等信息,上位機監管軟件作為OPC UA客戶端訂閱這些節點后便可在界面上實時顯示。如圖4所示,左側為實物圖,右側為各軸電機運行情況監視圖。

圖4 實物及各軸電機運行情況監視界面
有些物料搬運環境是封閉式的,工作人員很難實時了解到物料的搬運情況,因此在上位機監控軟件上設計了物料搬運監視界面。物料需要搬運時,會在監視界面上顯示接料箱與出料箱的物料信息,物料搬運過程中,出料箱中的源位置與接料箱的目標位置會以虛框的形式顯示,上位機監控軟件會根據各軸電機的實際坐標顯示出物料在監控界面上的相對位置,并且被搬運的物料會在監視界面中顯示特殊顏色,物料搬運完成后使用二次封裝的sqlHelper類庫完成SQL sever數據庫的修改,修改完成后使用DataGridView控件顯示出接料箱與出料箱的物料搬運信息。物料搬運監視界面如圖5所示。

圖5 物料搬運監視界面
sqlHelper類庫封裝的是對數據庫的一系列操作,封裝的目的是降低代碼的重復率。sqlHelper類庫封裝完成后,開發人員只需向類庫中的方法傳入一些參數即可完成對數據庫的操作,節省了開發時間,提高了代碼利用率。部分代碼如下:


針對箱體內物料的搬運問題,本文設計了基于OPC UA技術的物料搬運監控系統[5]。上位機監控軟件在Visual Studio2019平臺運用C#語言開發,代替了傳統的組態軟件。該系統將OPC UA技術與高級語言C#緊密結合起來,為運動控制提供了使用方案,不僅實現了功能的擴展,同時也降低了開發難度和開發成本。目前該系統已應用于實際工業生產線中,系統平穩運行,未來該系統還會不斷更新,會基于OPC UA技術逐漸向云端發展,逐步成為更加智能、可靠、簡單的系統。