錢新



摘要:近幾年,越來越多的公司采購并使用工業機器人,使得生產效率大幅提高。但是,傳統的“示教器+控制柜+機器人本體”的組合在界面可視化、數據再處理部分有很大不足。基于此,文章依托ABB工業機器人設計了一種基于C#語言的工作站,可以實現工業機器人的基礎控制、狀態監測和數據讀寫與展示。
關鍵詞:C#語言;ABB工業機器人;二次開發;工作站設計;工業應用
中圖分類號:TP311? ? ? 文獻標識碼:A
文章編號:1009-3044(2023)06-0012-03
開放科學(資源服務)標識碼(OSID)
0 引言
在新一輪科技革命和產業變革背景下,越來越多的公司引入了工業機器人來優化產業結構,尤其在裝配、碼垛、搬運產線上,工業機器人得到了越來越多的應用[1-2]。作為機電一體化技術的集大成者,現有的工業機器人正隨著數字化和人工智能的浪潮,朝著數字化、柔性化、智能化的方向發展,文獻[3]指出了幾條細分路徑:1)以深度學習為代表的工業機器人技術來完成更高精度的人機協作任務;2)以多機器人協作為手段的工業機器人技術來應對復雜化的任務,值得指出的是,多機器人協作的方式已經在許多行業中有所應用;3)可模塊重構的技術來增加工業機器人的柔性制造本領;4)多傳感器融合的工業機器人技術來補充非結構化機器人的缺陷;5)基于軟件的工業機器人技術來擴展同一型號機器人的應用場景。
雖然工業機器人誕生至今已有多年,但是,我國工業機器人技能培訓和人才培養制度尚不完善,導致工業機器人應用型工程技術人員非常短缺,同時,傳統工業機器人的示教器界面在數據可視化和數據再處理部分有一定短板,因此需要開發一款便捷的操作軟件,既能減小工程技術人員使用工業機器人的難度,又能實現一定的數據可視化處理和安全操作。
文獻[4]針對現有機器人工程教育體系和行業痛點為著手點,提出了一整套理論與實踐一體化的線上線下教育體系,力求以一款多模塊、多功能、多層次的可以適配多種廠家型號的軟件來輔助教學,可見針對現有職校課程,也需要一款通用軟件作為工業機器人專業的輔助工具,來減小職校教育與企業培訓之間的隔閡。
基于此,筆者使用Visual Studio 2022開發軟件,依托ABB工業機器人和相關PCSDK開發包開發了一款PC端的機器人工作站,該工作站功能齊全而且操作便捷,界面友好,易于拓展,且軟件有一定通用性,適合日常工作需要。
1 軟件需求分析
1.1 WinForm與WPF
WinForm是.Net開發平臺中對Windows Form的一種稱謂,和WPF一樣,都適合用于桌面程序的開發和設計[5],但是這兩種技術有一定的區別。第一點:界面的編寫。WinForm采用拖動控件的方式進行界面編寫,其本身集成了大量的封裝控件,可以極大簡化工作人員代碼編寫,從而把主要設計精力置于功能的實現上;而WPF則使用專門構建用戶界面的XAML語言,從而可以更加容易制作出精美的頁面,采取了前后端分離的方式,實現了代碼的功能解耦。第二點:兩者的驅動方式不同。WinForm由于使用了封裝控件,其驅動方式多為“事件驅動”,通過按鈕的點擊或事件訂閱進行動作;而WPF則是使用“數據驅動”的方式,當數據源變動時,進行主界面的數據更新,與此同時,用戶操作界面時是直接對數據進行修改的,而數據和界面不進行直接接觸[6-8]。綜合考慮:由于此次設計的工業機器人工作站對界面要求不高,因此采用WinForm來實現工業機器人的控制和數據再處理,同時,為了稍微美化傳統的WinForm界面,此次設計引入了開源控件HZHControl。
1.2 可擴展控制界面
工業機器人工作站除了常規的連接控制、速度設置、狀態顯示、數據讀寫外,還應該有針對特定產線或者功能的界面,因此需要一種便于拓展的、易于區分內容的界面設計,同時,在代碼編寫過程當中要考慮到工業機器人的數據模型和關系模型。因此,本次設計參考了ABB的PCSDK工具包的命名空間劃分,其主要命名空間為如表1所示:
表1? ABB工業機器人主要命名空間
[命名空間名稱 主要內容 ABB.Robotics 工業機器人本體異常信息 ABB.Robotics.Controllers 工業機器人控制器信息 ABB.Robotics.Controllers.Configuration 工業機器人配置信息 ABB.Robotics.Controllers.Discovery 工業機器人連接信息 ABB.Robotics.Controllers.IOSystemDomain 工業機器人I/O信息 ABB.Robotics.Controllers.MotionDomain 工業機器人運動信息 ABB.Robotics.Controllers.Rapid.Domain 工業機器人Rapid信息 ]
在設計軟件時,可以依照該命名空間設計相關內容,便于軟件后期的功能增添和代碼維護。
1.3 安全連接和控制界面
由于工業機器人通常被應用在搬運、噴涂、裝配等工況復雜的環境,因此對于工業機器的啟動和控制要求較高,需要在滿足各種安全條件下進行,防止出現工藝問題或導致人員傷亡。同時,運行過程當中應能實時顯示工業機器人的IP地址、系統ID、控制柜軟件版本、運行速度等基礎信息,便于工作人員進行觀察和設定,此外,針對工業機器人的基礎控制可以實現點動測試。
1.4 點位數據讀寫界面
在工業機器人的作業中,被記錄最多的數據就是各種工作點位,因此在上位機開發過程中,應能實現關鍵點位/點數組的空間姿態數據讀寫,以便在后期調試過程當中能夠實現上位機的遠程操作修改,進行精密的點位修正。同時,在該界面應能實現部分數據的隱藏,易于操作人員觀察。
1.5 通用數據監控界面
除了運動點位外,ABB工業機器人中還記錄了bool、num、ExtJoint等類型的數據,因此這些數據也需要被操作人員讀取并分析。同時針對工業機器人作業過程,應能實時顯示機器人末端執行器的位置并圖表展示以便觀察,對于特定的工作任務,可以進行針對性的關鍵數據監控。
基于1.1~1.5小結分析,本次設計的機器人工作站系統功能分解視圖如圖1所示。
2 系統整體設計
2.1 界面設計
由于本文采取WinForm進行開發設計,因此主要考慮在界面設計部分進行窗口的生成和復用,其主要思想是:在主窗口界面左側布置功能圖片,圖片被點擊時,綁定窗口生成事件,將新的窗口覆蓋于主窗口之上,同時隱藏掉除了點擊按鈕以外的所有窗口,從而完成窗口的復用,其實現效果如圖2所示,左側功能欄采取不同圖標來展示不同功能。
從圖2可以看出,在采用了HZHControl控件后,傳統的WinForm窗口也能實現不錯的界面顯示,同時窗口復用的設計極大方便了后續的功能開發,可以根據實際的使用需求,再進行有針對性的開發。
2.2 安全連接和控制界面設計
現有的工業機器人都預留了網口作為主要通信,因此在此次工作站設計中采用有線網絡進行通訊連接。ABB機器人的PCSDK包中主要通信函數在NetworkScanner類中,當PC在同一網段搜尋到機器人時,可以識別并讀取機器人相應的硬件信息和軟件版本號。
機器人的運行主要有兩大部分,一個是電機及控制器的上電,一個是程序的正式運行,因此在基礎控制部分應該能分別實現這兩個內容的啟動和停止。本次設計的控制部分有啟動(程序運行),復位(程序復位),電機上電,電機下電,工業機器人運動暫停和工業機器人運動急停,而這一部分的控制函數主要在Controllers類中。
考慮到工業機器人的特殊工作環境,工業機器人啟動時需要滿足各種安全條件,此處設立了三個基本的安全要求:1)機器人控制狀態應處于自動運行狀態從而防止在人工操作時上位機誤操作導致發生安全事故;2)機器人的啟動I/O信號應滿足啟動要求,譬如安全柵欄信號應處于正常工作狀態;3)機器人啟動位置應該在原點位置。同時軟件設計的時候也要考慮機器人連接成功與否,從而判斷操作是否成功下達。圖3展示了機器人連接控制界面的主要內容,圖4展示了機器人安全動作的提示內容。
可以看出,該款上位機控制軟件可以簡化工作人員對機器人的操作,并且充分考慮到了實際工況中的安全問題。
2.3 點位數據讀寫界面設計
工業機器人運動過程當中,記錄數據最多的就是各種點位數據。ABB中負責記錄該數據的就是結構體RobTarget,在該結構體中操作人員更關注的是其中的位置和姿態數據。在這里位置X、Y、Z是工業機器人末端執行器相對坐標原點的距離,姿態數據Rx、Ry、Rz則反映了末端執行器相對于各基準面的姿態。考慮到,在常規控制當中,一個動作通常以數組形式進行存放,因此該界面應該能實現數組的讀取和修改。為了保證寫入數據的正確性,在覆蓋數據前應有提示窗提示修改后的最終結果,防止數據的誤寫,同時,考慮到界面的簡潔和美觀,提供了數據隱藏功能,并針對組數據的數據類型進行了分類,這一部分的主要操作函數在Rapid類中。圖5顯示了單點的姿態修改界面,圖6顯示了數組的修改界面,可以看出,在覆蓋舊數據前,提供了確認框供操作人員進行判斷。
2.3 通用數據監控界面設計
正如1.5小節所描述的那樣,普通操作工人使用點位數據讀寫界面就能完成日常工作所需,但是對于程序調試和后期維護而言,還需要更多數據進行輔助操作。在此設計界面,首先完成了類數據批量讀取功能,可以實現當前工業機器人所用到的所有數據的讀寫,包括但不限于bool、num、pose、speeddata、ExtJoint。考慮到工業機器人的周期性維護,實現了工業機器人服務時間信息的讀取,包括總運行時間、上次開機時間、本次服務總時間、校準時間等,這一部分的主要操作函數在MotionSystem類中。同時,實現了工業機器人的實時位置顯示,并作出圖表展示,方便操作人員的觀察,在這里,圖表部分采取了開源包HZHControl的Live Charts控件。圖7和圖8顯示了通用數據監控界面的實現,其中左上角是機器人服務信息,左下角是類數據批量處理,右下角是機器人實時位置,右上角是曲線展示,可以看出,采用實時曲線顯示的運動軌跡的方式可以極大方便工作人員的觀察,并且相關報警信息進行了特殊顏色標記。
值得注意的是,在該界面中實現了虛擬機器人和實物機器人的種類判斷,并依據這些判斷來進行軟件的不同動作。
3 結束語
筆者使用了Visual Studio 2022為開發環境,依托ABB工業機器人和配套PCSDK工具包完成了工業機器人的工作站設計,可以實現機器人搜尋、機器人硬軟件版本顯示、機器人實時速度讀寫,機器人啟停控制、單個點位和數組點位的讀取和修改,機器人服務信息讀取,機器人類數據批量讀取,機器人實時位置更新和曲線顯示。該系統創新之處在于:
1)所有功能實現都充分考慮到了安全因素,保證了工業機器人數據安全和操作人員的人身安全;
2)系統有一定可拓展性,該系統在設計之初就考慮到了軟件本身的功能拓展,方便后續應用的開發,同時本軟件能適配大多數型號的ABB工業機器人;
3)應用了開源控件HZHcontrol,在不增加代碼工作量的情況下實現了界面的美化。
隨著我國現代化建設的發展,工業機器人從一開始依托外國技術,到現在逐步走出國產道路,這是一個值得欣慰的過程。但不可忽略的一點是,我國培養相關人才的產業鏈還未完善,依舊需要研究和突破。本文所做設計一方面對于工業機器人產業有極大幫助:縮短了操作人員的培養周期,優化了數據讀寫和顯示,也為相關機器人工業軟件開發做出參考;另一方面對職校的工業機器人教學做出了一定貢獻:該軟件能有效服務硬件+軟件的混合式教學,能有機集成工業機器人課程體系,培養理實一體化的高技術人才。當然,本軟件仍然有很大的改進空間,比如能增添上位機對工業機器人代碼編寫功能來減少對示教器的使用,增添運維功能來滿足不同產線需要,增添機器人讀取種類,來適配其他機器人廠家的設備等。
參考文獻:
[1] 計時鳴,黃希歡.工業機器人技術的發展與應用綜述[J].機電工程,2015,32(1):1-13.
[2] 樊澤明,余孝軍,王鵬博,等.面向工業機器人專業的混合式教學系統[J].高等工程教育研究,2021(6):183-189.
[3] 韓峰濤.工業機器人技術研究與發展綜述[J].機器人技術與應用,2021(5):23-26.
[4] 蔣正炎,檀祝平.高職工業機器人技術專業課程教學資源開發路徑研究[J].中國職業技術教育,2018(11):47-52.
[5] 張宇廷,王宗彥,趙鵬宇,等.基于C#的橋式起重機數字化設計與云開發[J].機床與液壓,2022,50(8):115-120.
[6] 王彬.基于C#的WinForm窗體傳值方法探討[J].電腦知識與技術,2013,9(17):3999-4000,4004.
[7] 姜拓,張劍平.基于C#的數據采集系統上位機軟件設計與實現[J].電子測試,2009(9):58-61.
[8] 于同亞.用C#設計基于.NET框架的應用程序——ASP.NET購物網站的設計與實現[J].電腦知識與技術,2009,5(18):4907-4908.
【通聯編輯:謝媛媛】