錢新
關(guān)鍵詞:C#語言;ABB工業(yè)機(jī)器人;二次開發(fā);工作站設(shè)計(jì);工業(yè)機(jī)器人日常維護(hù)
0 引言
工業(yè)機(jī)器人被譽(yù)為“制造業(yè)皇冠頂端的明珠”,它是一種集機(jī)械、電子、控制、計(jì)算機(jī)、人工智能等多學(xué)科于一體的智能機(jī)器。隨著我國工業(yè)制造智能化轉(zhuǎn)型的深入,越來越多的企業(yè)開始在搬運(yùn)、碼垛、裝配、焊接等生產(chǎn)線上運(yùn)用工業(yè)機(jī)器人,極大地解放了生產(chǎn)力[1-2]。文獻(xiàn)[3]從工業(yè)機(jī)器人的規(guī)模化市場應(yīng)用、主機(jī)成本與運(yùn)行可靠性、關(guān)鍵零部件及技術(shù)業(yè)務(wù)創(chuàng)新四個(gè)方面指出了我國工業(yè)機(jī)器人的主要發(fā)展方向。
文獻(xiàn)[4]針對(duì)工業(yè)機(jī)器人軟件技術(shù)部分提出,需要開發(fā)出具有項(xiàng)目針對(duì)性的上位機(jī)軟件,以滿足界面美觀、操作方便、功能齊全的要求,幫助零基礎(chǔ)操作人員快速掌握操作。文獻(xiàn)[5]從工業(yè)機(jī)器人從業(yè)者的技能培訓(xùn)角度進(jìn)行了探討:在新技術(shù)浪潮下,低技能勞動(dòng)者需要接受多類別、簡易化的職業(yè)技能培訓(xùn),以幫助從業(yè)者快速上手,降低失業(yè)風(fēng)險(xiǎn)。文獻(xiàn)[6]和文獻(xiàn)[7]探究了高職院校工業(yè)機(jī)器人專業(yè)課程體系的建設(shè),其核心在于利用真實(shí)的企業(yè)項(xiàng)目和開發(fā)相應(yīng)的教材學(xué)材,以幫助學(xué)生快速理解知識(shí),降低學(xué)習(xí)難度,并加強(qiáng)職校教學(xué)與企業(yè)內(nèi)容的聯(lián)系。
文獻(xiàn)[8]從實(shí)際項(xiàng)目出發(fā),依托ABB工業(yè)機(jī)器人及相關(guān)PC SDK包實(shí)現(xiàn)了基礎(chǔ)的工作站設(shè)計(jì),降低了相關(guān)從業(yè)者的學(xué)習(xí)成本,也在一定程度上實(shí)現(xiàn)了職教教學(xué)內(nèi)容與企業(yè)內(nèi)容的聯(lián)結(jié)。然而,其功能較為基礎(chǔ),需要進(jìn)行更深入的開發(fā)以填補(bǔ)實(shí)際應(yīng)用中的空白。
基于此,筆者依托ABB工業(yè)機(jī)器人和Visual Stu?dio 2022開發(fā)軟件深入設(shè)計(jì)了一款工作站。該工作站根據(jù)實(shí)際工作場景,可以實(shí)現(xiàn)ABB工業(yè)機(jī)器人的預(yù)防維護(hù)、事件日志讀取和Rapid代碼在線編寫。軟件界面友好,通用性強(qiáng),既可以作為企業(yè)培訓(xùn)的配套軟件,也可以作為職業(yè)學(xué)校的教學(xué)軟件,有效縮短了學(xué)校教學(xué)與企業(yè)培訓(xùn)之間的“技術(shù)邊界”。
1 軟件需求分析
1.1 WinForm 界面優(yōu)化和代碼整潔規(guī)范
C# WinForm擁有強(qiáng)大的GUI控件庫,使用戶能夠快速設(shè)計(jì)出界面豐富的軟件。由于其成熟的軟件框架和較低的學(xué)習(xí)成本,WinForm在工業(yè)軟件開發(fā)中占據(jù)了主流位置。與WPF相比,WinForm采用事件驅(qū)動(dòng)方式工作,這非常符合工業(yè)過程的控制邏輯。然而,由于WinForm底層依賴于傳統(tǒng)的Win32 API,在UI界面表現(xiàn)上不如依賴于Direct3D的WPF。綜合考慮界面優(yōu)化和代碼工作量,本次設(shè)計(jì)引入了開源界面庫HZHControls,該開源庫對(duì)觸屏操作支持良好,便于后續(xù)觸摸屏界面的開發(fā)。
考慮到本工作站后續(xù)開發(fā)的可擴(kuò)展性和代碼可讀性,以下列出了本次軟件開發(fā)所遵守的幾種編寫邏輯:
1) 遵守SOLID原則。單一職責(zé)原則、開閉原則、里式替換原則、接口隔離原則和依賴倒置原則。鑒于軟件涉及ABB PC SDK庫的多個(gè)命名空間,良好的軟件編寫規(guī)范將方便功能的后續(xù)擴(kuò)展。
2) 異常有用原則。即程序捕捉到的異常應(yīng)能提供易讀的信息,從而方便軟件的后期維護(hù)。
3) DRY原則。避免重復(fù)的代碼。由于ABB工業(yè)機(jī)器人中常使用robtarget、jointtarget等類型數(shù)據(jù),應(yīng)盡可能對(duì)相似代碼進(jìn)行重構(gòu),并在系統(tǒng)層面進(jìn)行統(tǒng)一調(diào)用,以簡化整個(gè)項(xiàng)目。
總之,本次工作站的優(yōu)化設(shè)計(jì)編程思想遵循“高內(nèi)聚低耦合”原則:功能間的內(nèi)聚與界面間的數(shù)據(jù)、內(nèi)容耦合,從而提升系統(tǒng)的重用性、可維護(hù)性和可擴(kuò)展性,便于軟件的后續(xù)開發(fā)。
1.2 可擴(kuò)展控制界面
在實(shí)際應(yīng)用場景中,除了本次設(shè)計(jì)的機(jī)器人日常預(yù)防維護(hù)、事件日志處理和Rapid代碼在線編寫外,還應(yīng)考慮其他特殊場景所需的控制界面。因此,需要設(shè)計(jì)一款易于擴(kuò)展功能的軟件。本次設(shè)計(jì)參考了ABB 的PC SDK工具包中對(duì)各功能的劃分,主要涉及的命名空間如表1所示。
在軟件的編寫過程當(dāng)中可以參照ABB提供的PCSDK包中的分類,依據(jù)實(shí)際的功能需要進(jìn)行二次封裝,方便代碼的拓展。
1.3 工業(yè)機(jī)器人預(yù)防與維護(hù)界面
“安全第一”是安全生產(chǎn)的基本方針。在實(shí)際生產(chǎn)過程中,首先要確保勞動(dòng)者的安全,其次是設(shè)備和產(chǎn)線的安全。鑒于工業(yè)機(jī)器人的工作環(huán)境惡劣,每次運(yùn)行前都應(yīng)進(jìn)行相應(yīng)的檢查和維護(hù),以保障生產(chǎn)安全。在軟件層面,應(yīng)設(shè)計(jì)相應(yīng)的檢修功能,確保維護(hù)人員在完成檢修后才能運(yùn)行設(shè)備。此外,檢修項(xiàng)目應(yīng)能實(shí)現(xiàn)電子檔案的備份,便于后期的檢查。
1.4 事件日志界面
ABB工業(yè)機(jī)器人在運(yùn)行過程中會(huì)實(shí)時(shí)記錄運(yùn)行日志和故障日志,以便于工藝調(diào)整。因此,當(dāng)采用上位機(jī)軟件進(jìn)行控制時(shí),其日志信息也需要被實(shí)時(shí)讀取和查看,以滿足調(diào)試人員的需求。同時(shí),借助PCSDK,上位機(jī)軟件還應(yīng)支持對(duì)ABB機(jī)器人操作系統(tǒng)的備份和恢復(fù),從而優(yōu)化傳統(tǒng)的USB升級(jí)方法。
1.5 Rapid 代碼在線編輯和自動(dòng)調(diào)速界面
ABB的傳統(tǒng)編程方式采用示教器,但示教器的輸入速度慢且代碼補(bǔ)充能力弱,給調(diào)試人員帶來較大的工作量。因此,上位機(jī)軟件應(yīng)具備程序的讀取、上傳和下載功能,以優(yōu)化編程手段。通常情況下,ABB工業(yè)機(jī)器人的工作溫度范圍為5~50℃,溫度過高會(huì)縮短設(shè)備壽命。因此,上位機(jī)軟件還應(yīng)具備示教器所不具備的功能:實(shí)時(shí)監(jiān)測溫度并調(diào)整工業(yè)機(jī)器人的運(yùn)行速度,以保證機(jī)器人的高效運(yùn)行。
綜上所述,結(jié)合1.1~1.5小節(jié)的分析,本次ABB 機(jī)器人工作站系統(tǒng)的功能分解視圖如圖1所示。
2 系統(tǒng)整體設(shè)計(jì)
2.1 界面設(shè)計(jì)
本次工作站主要在主界面環(huán)節(jié)進(jìn)行設(shè)計(jì),以滿足功能的擴(kuò)展和UI的美觀性。功能復(fù)用的核心思路是:在主界面的右端設(shè)置若干功能按鈕,點(diǎn)擊后將生成不同的用戶控件。將主控件置于最上層,而其他控件置于下層,可以實(shí)時(shí)顯示當(dāng)前所需的功能畫面,從而實(shí)現(xiàn)功能的復(fù)用。值得注意的是,當(dāng)控件置于最上層時(shí),界面需要手動(dòng)刷新一次,以防控件顯示不完整。所實(shí)現(xiàn)的效果如圖2所示,左側(cè)的不同按鈕畫面代表不同的功能,而右側(cè)則可以顯示當(dāng)前用戶控件的畫面。
從圖2可以看出,在采取了開源控件HZHControl 后,傳統(tǒng)的WinForm畫面也能實(shí)現(xiàn)很好的UI顯示。
2.2 工業(yè)機(jī)器人預(yù)防與維護(hù)界面設(shè)計(jì)
合理的檢修計(jì)劃可以延長工業(yè)機(jī)器人的使用壽命。對(duì)于ABB工業(yè)機(jī)器人,可以采用設(shè)備點(diǎn)檢的方式進(jìn)行維護(hù)。設(shè)備檢查主要分為日點(diǎn)檢和定期點(diǎn)檢。日點(diǎn)檢主要是對(duì)工業(yè)機(jī)器人本體的清潔、環(huán)境通風(fēng)、安全防護(hù)裝置的正確運(yùn)作以及電機(jī)/氣閥的正常工作等進(jìn)行外部常規(guī)檢查。定期點(diǎn)檢則主要針對(duì)電纜線束、電池組、同步帶等關(guān)鍵核心器件進(jìn)行重要檢查。考慮到工業(yè)機(jī)器人的運(yùn)行環(huán)境,重要檢查還需要進(jìn)行有針對(duì)性的調(diào)整??傊?,合理的檢修計(jì)劃是保障產(chǎn)線正常運(yùn)作的有效手段之一。在工業(yè)機(jī)器人上電運(yùn)行前,需要調(diào)試人員手動(dòng)確認(rèn)后,才準(zhǔn)許程序運(yùn)行。
因此,在工業(yè)機(jī)器人點(diǎn)檢部分,已加入開機(jī)日檢提醒和定期點(diǎn)檢提醒。調(diào)試人員需要確保所有點(diǎn)檢完成后,才能運(yùn)行程序。同時(shí),已加入了Microsoft.Of?fice.Interop.Excel插件來保存點(diǎn)檢記錄,便于進(jìn)行電子文檔整理。對(duì)于重要的安全提醒,例如機(jī)器人電池電量低等,系統(tǒng)會(huì)及時(shí)彈窗提醒,以便調(diào)試人員對(duì)機(jī)器進(jìn)行維護(hù)。圖3和圖4分別展示了工業(yè)機(jī)器人日檢和定期點(diǎn)檢的操作目錄,圖5是檢查后保存的Excel表格,圖6展示了重要安全提醒。
值得注意的是,維護(hù)人員應(yīng)使用專業(yè)的維護(hù)工具以防工業(yè)機(jī)器人硬件損壞。
2.3 事件日志界面設(shè)計(jì)
ABB機(jī)器人在自動(dòng)運(yùn)行時(shí),現(xiàn)場通常沒有工作人員。為了實(shí)時(shí)記錄工業(yè)機(jī)器人的重要操作步驟以及方便故障排除,工業(yè)機(jī)器人系統(tǒng)會(huì)自動(dòng)保存事件信息,供操作人員檢查和維修。在ABB工業(yè)機(jī)器人中,事件日志被劃分為15個(gè)類別,并以“日志類別號(hào)+錯(cuò)誤號(hào)”的形式保存報(bào)警代碼。因此,用戶可以根據(jù)現(xiàn)場工況的需要,進(jìn)行針對(duì)性的日志讀取。由于事件日志數(shù)量較多,為了提升軟件的人機(jī)交互體驗(yàn),本次工作站采用并行讀取的方式來顯示事件日志,其讀取效果如圖7和圖8所示。
在日常的生成調(diào)試過程中,定期對(duì)工業(yè)機(jī)器人進(jìn)行系統(tǒng)備份是非常重要的。傳統(tǒng)的備份通常借助示教器和U盤等存儲(chǔ)介質(zhì)進(jìn)行線下備份,操作較為復(fù)雜。本次設(shè)計(jì)的工作站借助PC SDK可以對(duì)工業(yè)機(jī)器人系統(tǒng)進(jìn)行快速的備份和恢復(fù)。針對(duì)ABB工業(yè)機(jī)器人,除了備份常規(guī)的軟件和選項(xiàng)信息外,還備份了機(jī)器人系統(tǒng)中的程序模塊、配置文件和校準(zhǔn)數(shù)據(jù),并提供了備份路徑選擇,方便對(duì)工業(yè)機(jī)器人集群進(jìn)行統(tǒng)一的備份。圖9和圖10分別展示了工業(yè)機(jī)器人備份系統(tǒng)和恢復(fù)系統(tǒng)的過程。
2.4 Rapid 代碼在線編輯和自動(dòng)調(diào)速界面設(shè)計(jì)
ABB工業(yè)機(jī)器人的核心代碼被存儲(chǔ)在Rapid中。傳統(tǒng)方式采用示教器或RobotStudio仿真軟件進(jìn)行代碼編輯。為了方便工作人員遠(yuǎn)程調(diào)試和修改代碼,工作站集成了Rapid代碼的加載和修改功能,并提供了程序模塊的選擇功能,以應(yīng)對(duì)復(fù)雜代碼的局部編寫。圖11展示了程序在線編輯的界面。
在實(shí)際的工業(yè)現(xiàn)場,溫度和濕度的變化范圍較大。然而,ABB工業(yè)機(jī)器人本體的操作溫度推薦在5~50℃ 之間。當(dāng)環(huán)境溫度超出正常范圍時(shí),需要對(duì)工業(yè)機(jī)器人進(jìn)行降速操作,以提高工作效率并延長使用壽命。本次工作站針對(duì)溫度問題提供了自動(dòng)運(yùn)行速度調(diào)節(jié)功能。工作站會(huì)在讀取環(huán)境溫度和本體溫度后,依據(jù)專家系統(tǒng)自動(dòng)調(diào)節(jié)速度,其自動(dòng)調(diào)速功能如圖12所示。
3 結(jié)束語
本文根據(jù)實(shí)際工況需求,設(shè)計(jì)了一款適用于ABB 工業(yè)機(jī)器人的上位機(jī)工作站,以工業(yè)機(jī)器人的日常維護(hù)為切入點(diǎn),利用PC SDK工具包實(shí)現(xiàn)了對(duì)工業(yè)機(jī)器人的預(yù)防性維護(hù)、事件日志讀取和Rapid代碼的在線編寫。本系統(tǒng)的創(chuàng)新之處體現(xiàn)在:
1) 系統(tǒng)可用于工業(yè)機(jī)器人的日常維護(hù),界面友好,操作便捷,且所有操作都充分考慮了運(yùn)行安全。
2) 系統(tǒng)采用可擴(kuò)展的形式,功能開發(fā)和擴(kuò)展較為方便,并可用于機(jī)器人集群,生成的文檔便于整理。
3) 所有操作均可擺脫傳統(tǒng)示教器,通過聯(lián)網(wǎng)方式進(jìn)行,從而克服地理限制。
后續(xù)工作將重點(diǎn)圍繞機(jī)器人的遠(yuǎn)程操作和“機(jī)器人+外設(shè)”的聯(lián)動(dòng)操作兩大方向進(jìn)行功能更新,實(shí)現(xiàn)機(jī)器人工作站操作的數(shù)字化、可視化和智能化。這將降低工業(yè)機(jī)器人的使用門檻,輔助操作人員進(jìn)行現(xiàn)場調(diào)試,進(jìn)而縮短學(xué)校教學(xué)與企業(yè)培訓(xùn)之間的“技術(shù)邊界”。