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