• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于C#語言的ABB機器人工作站的設計與實現(xiàn)

    2023-04-14 17:40:19錢新
    電腦知識與技術(shù) 2023年6期
    關(guān)鍵詞:二次開發(fā)語言

    錢新

    摘要:近幾年,越來越多的公司采購并使用工業(yè)機器人,使得生產(chǎn)效率大幅提高。但是,傳統(tǒng)的“示教器+控制柜+機器人本體”的組合在界面可視化、數(shù)據(jù)再處理部分有很大不足?;诖?,文章依托ABB工業(yè)機器人設計了一種基于C#語言的工作站,可以實現(xiàn)工業(yè)機器人的基礎控制、狀態(tài)監(jiān)測和數(shù)據(jù)讀寫與展示。

    關(guān)鍵詞:C#語言;ABB工業(yè)機器人;二次開發(fā);工作站設計;工業(yè)應用

    中圖分類號:TP311? ? ? 文獻標識碼:A

    文章編號:1009-3044(2023)06-0012-03

    開放科學(資源服務)標識碼(OSID)

    0 引言

    在新一輪科技革命和產(chǎn)業(yè)變革背景下,越來越多的公司引入了工業(yè)機器人來優(yōu)化產(chǎn)業(yè)結(jié)構(gòu),尤其在裝配、碼垛、搬運產(chǎn)線上,工業(yè)機器人得到了越來越多的應用[1-2]。作為機電一體化技術(shù)的集大成者,現(xiàn)有的工業(yè)機器人正隨著數(shù)字化和人工智能的浪潮,朝著數(shù)字化、柔性化、智能化的方向發(fā)展,文獻[3]指出了幾條細分路徑:1)以深度學習為代表的工業(yè)機器人技術(shù)來完成更高精度的人機協(xié)作任務;2)以多機器人協(xié)作為手段的工業(yè)機器人技術(shù)來應對復雜化的任務,值得指出的是,多機器人協(xié)作的方式已經(jīng)在許多行業(yè)中有所應用;3)可模塊重構(gòu)的技術(shù)來增加工業(yè)機器人的柔性制造本領;4)多傳感器融合的工業(yè)機器人技術(shù)來補充非結(jié)構(gòu)化機器人的缺陷;5)基于軟件的工業(yè)機器人技術(shù)來擴展同一型號機器人的應用場景。

    雖然工業(yè)機器人誕生至今已有多年,但是,我國工業(yè)機器人技能培訓和人才培養(yǎng)制度尚不完善,導致工業(yè)機器人應用型工程技術(shù)人員非常短缺,同時,傳統(tǒng)工業(yè)機器人的示教器界面在數(shù)據(jù)可視化和數(shù)據(jù)再處理部分有一定短板,因此需要開發(fā)一款便捷的操作軟件,既能減小工程技術(shù)人員使用工業(yè)機器人的難度,又能實現(xiàn)一定的數(shù)據(jù)可視化處理和安全操作。

    文獻[4]針對現(xiàn)有機器人工程教育體系和行業(yè)痛點為著手點,提出了一整套理論與實踐一體化的線上線下教育體系,力求以一款多模塊、多功能、多層次的可以適配多種廠家型號的軟件來輔助教學,可見針對現(xiàn)有職校課程,也需要一款通用軟件作為工業(yè)機器人專業(yè)的輔助工具,來減小職校教育與企業(yè)培訓之間的隔閡。

    基于此,筆者使用Visual Studio 2022開發(fā)軟件,依托ABB工業(yè)機器人和相關(guān)PCSDK開發(fā)包開發(fā)了一款PC端的機器人工作站,該工作站功能齊全而且操作便捷,界面友好,易于拓展,且軟件有一定通用性,適合日常工作需要。

    1 軟件需求分析

    1.1 WinForm與WPF

    WinForm是.Net開發(fā)平臺中對Windows Form的一種稱謂,和WPF一樣,都適合用于桌面程序的開發(fā)和設計[5],但是這兩種技術(shù)有一定的區(qū)別。第一點:界面的編寫。WinForm采用拖動控件的方式進行界面編寫,其本身集成了大量的封裝控件,可以極大簡化工作人員代碼編寫,從而把主要設計精力置于功能的實現(xiàn)上;而WPF則使用專門構(gòu)建用戶界面的XAML語言,從而可以更加容易制作出精美的頁面,采取了前后端分離的方式,實現(xiàn)了代碼的功能解耦。第二點:兩者的驅(qū)動方式不同。WinForm由于使用了封裝控件,其驅(qū)動方式多為“事件驅(qū)動”,通過按鈕的點擊或事件訂閱進行動作;而WPF則是使用“數(shù)據(jù)驅(qū)動”的方式,當數(shù)據(jù)源變動時,進行主界面的數(shù)據(jù)更新,與此同時,用戶操作界面時是直接對數(shù)據(jù)進行修改的,而數(shù)據(jù)和界面不進行直接接觸[6-8]。綜合考慮:由于此次設計的工業(yè)機器人工作站對界面要求不高,因此采用WinForm來實現(xiàn)工業(yè)機器人的控制和數(shù)據(jù)再處理,同時,為了稍微美化傳統(tǒng)的WinForm界面,此次設計引入了開源控件HZHControl。

    1.2 可擴展控制界面

    工業(yè)機器人工作站除了常規(guī)的連接控制、速度設置、狀態(tài)顯示、數(shù)據(jù)讀寫外,還應該有針對特定產(chǎn)線或者功能的界面,因此需要一種便于拓展的、易于區(qū)分內(nèi)容的界面設計,同時,在代碼編寫過程當中要考慮到工業(yè)機器人的數(shù)據(jù)模型和關(guān)系模型。因此,本次設計參考了ABB的PCSDK工具包的命名空間劃分,其主要命名空間為如表1所示:

    表1? ABB工業(yè)機器人主要命名空間

    [命名空間名稱 主要內(nèi)容 ABB.Robotics 工業(yè)機器人本體異常信息 ABB.Robotics.Controllers 工業(yè)機器人控制器信息 ABB.Robotics.Controllers.Configuration 工業(yè)機器人配置信息 ABB.Robotics.Controllers.Discovery 工業(yè)機器人連接信息 ABB.Robotics.Controllers.IOSystemDomain 工業(yè)機器人I/O信息 ABB.Robotics.Controllers.MotionDomain 工業(yè)機器人運動信息 ABB.Robotics.Controllers.Rapid.Domain 工業(yè)機器人Rapid信息 ]

    在設計軟件時,可以依照該命名空間設計相關(guān)內(nèi)容,便于軟件后期的功能增添和代碼維護。

    1.3 安全連接和控制界面

    由于工業(yè)機器人通常被應用在搬運、噴涂、裝配等工況復雜的環(huán)境,因此對于工業(yè)機器的啟動和控制要求較高,需要在滿足各種安全條件下進行,防止出現(xiàn)工藝問題或?qū)е氯藛T傷亡。同時,運行過程當中應能實時顯示工業(yè)機器人的IP地址、系統(tǒng)ID、控制柜軟件版本、運行速度等基礎信息,便于工作人員進行觀察和設定,此外,針對工業(yè)機器人的基礎控制可以實現(xiàn)點動測試。

    1.4 點位數(shù)據(jù)讀寫界面

    在工業(yè)機器人的作業(yè)中,被記錄最多的數(shù)據(jù)就是各種工作點位,因此在上位機開發(fā)過程中,應能實現(xiàn)關(guān)鍵點位/點數(shù)組的空間姿態(tài)數(shù)據(jù)讀寫,以便在后期調(diào)試過程當中能夠?qū)崿F(xiàn)上位機的遠程操作修改,進行精密的點位修正。同時,在該界面應能實現(xiàn)部分數(shù)據(jù)的隱藏,易于操作人員觀察。

    1.5 通用數(shù)據(jù)監(jiān)控界面

    除了運動點位外,ABB工業(yè)機器人中還記錄了bool、num、ExtJoint等類型的數(shù)據(jù),因此這些數(shù)據(jù)也需要被操作人員讀取并分析。同時針對工業(yè)機器人作業(yè)過程,應能實時顯示機器人末端執(zhí)行器的位置并圖表展示以便觀察,對于特定的工作任務,可以進行針對性的關(guān)鍵數(shù)據(jù)監(jiān)控。

    基于1.1~1.5小結(jié)分析,本次設計的機器人工作站系統(tǒng)功能分解視圖如圖1所示。

    2 系統(tǒng)整體設計

    2.1 界面設計

    由于本文采取WinForm進行開發(fā)設計,因此主要考慮在界面設計部分進行窗口的生成和復用,其主要思想是:在主窗口界面左側(cè)布置功能圖片,圖片被點擊時,綁定窗口生成事件,將新的窗口覆蓋于主窗口之上,同時隱藏掉除了點擊按鈕以外的所有窗口,從而完成窗口的復用,其實現(xiàn)效果如圖2所示,左側(cè)功能欄采取不同圖標來展示不同功能。

    從圖2可以看出,在采用了HZHControl控件后,傳統(tǒng)的WinForm窗口也能實現(xiàn)不錯的界面顯示,同時窗口復用的設計極大方便了后續(xù)的功能開發(fā),可以根據(jù)實際的使用需求,再進行有針對性的開發(fā)。

    2.2 安全連接和控制界面設計

    現(xiàn)有的工業(yè)機器人都預留了網(wǎng)口作為主要通信,因此在此次工作站設計中采用有線網(wǎng)絡進行通訊連接。ABB機器人的PCSDK包中主要通信函數(shù)在NetworkScanner類中,當PC在同一網(wǎng)段搜尋到機器人時,可以識別并讀取機器人相應的硬件信息和軟件版本號。

    機器人的運行主要有兩大部分,一個是電機及控制器的上電,一個是程序的正式運行,因此在基礎控制部分應該能分別實現(xiàn)這兩個內(nèi)容的啟動和停止。本次設計的控制部分有啟動(程序運行),復位(程序復位),電機上電,電機下電,工業(yè)機器人運動暫停和工業(yè)機器人運動急停,而這一部分的控制函數(shù)主要在Controllers類中。

    考慮到工業(yè)機器人的特殊工作環(huán)境,工業(yè)機器人啟動時需要滿足各種安全條件,此處設立了三個基本的安全要求:1)機器人控制狀態(tài)應處于自動運行狀態(tài)從而防止在人工操作時上位機誤操作導致發(fā)生安全事故;2)機器人的啟動I/O信號應滿足啟動要求,譬如安全柵欄信號應處于正常工作狀態(tài);3)機器人啟動位置應該在原點位置。同時軟件設計的時候也要考慮機器人連接成功與否,從而判斷操作是否成功下達。圖3展示了機器人連接控制界面的主要內(nèi)容,圖4展示了機器人安全動作的提示內(nèi)容。

    可以看出,該款上位機控制軟件可以簡化工作人員對機器人的操作,并且充分考慮到了實際工況中的安全問題。

    2.3 點位數(shù)據(jù)讀寫界面設計

    工業(yè)機器人運動過程當中,記錄數(shù)據(jù)最多的就是各種點位數(shù)據(jù)。ABB中負責記錄該數(shù)據(jù)的就是結(jié)構(gòu)體RobTarget,在該結(jié)構(gòu)體中操作人員更關(guān)注的是其中的位置和姿態(tài)數(shù)據(jù)。在這里位置X、Y、Z是工業(yè)機器人末端執(zhí)行器相對坐標原點的距離,姿態(tài)數(shù)據(jù)Rx、Ry、Rz則反映了末端執(zhí)行器相對于各基準面的姿態(tài)??紤]到,在常規(guī)控制當中,一個動作通常以數(shù)組形式進行存放,因此該界面應該能實現(xiàn)數(shù)組的讀取和修改。為了保證寫入數(shù)據(jù)的正確性,在覆蓋數(shù)據(jù)前應有提示窗提示修改后的最終結(jié)果,防止數(shù)據(jù)的誤寫,同時,考慮到界面的簡潔和美觀,提供了數(shù)據(jù)隱藏功能,并針對組數(shù)據(jù)的數(shù)據(jù)類型進行了分類,這一部分的主要操作函數(shù)在Rapid類中。圖5顯示了單點的姿態(tài)修改界面,圖6顯示了數(shù)組的修改界面,可以看出,在覆蓋舊數(shù)據(jù)前,提供了確認框供操作人員進行判斷。

    2.3 通用數(shù)據(jù)監(jiān)控界面設計

    正如1.5小節(jié)所描述的那樣,普通操作工人使用點位數(shù)據(jù)讀寫界面就能完成日常工作所需,但是對于程序調(diào)試和后期維護而言,還需要更多數(shù)據(jù)進行輔助操作。在此設計界面,首先完成了類數(shù)據(jù)批量讀取功能,可以實現(xiàn)當前工業(yè)機器人所用到的所有數(shù)據(jù)的讀寫,包括但不限于bool、num、pose、speeddata、ExtJoint??紤]到工業(yè)機器人的周期性維護,實現(xiàn)了工業(yè)機器人服務時間信息的讀取,包括總運行時間、上次開機時間、本次服務總時間、校準時間等,這一部分的主要操作函數(shù)在MotionSystem類中。同時,實現(xiàn)了工業(yè)機器人的實時位置顯示,并作出圖表展示,方便操作人員的觀察,在這里,圖表部分采取了開源包HZHControl的Live Charts控件。圖7和圖8顯示了通用數(shù)據(jù)監(jiān)控界面的實現(xiàn),其中左上角是機器人服務信息,左下角是類數(shù)據(jù)批量處理,右下角是機器人實時位置,右上角是曲線展示,可以看出,采用實時曲線顯示的運動軌跡的方式可以極大方便工作人員的觀察,并且相關(guān)報警信息進行了特殊顏色標記。

    值得注意的是,在該界面中實現(xiàn)了虛擬機器人和實物機器人的種類判斷,并依據(jù)這些判斷來進行軟件的不同動作。

    3 結(jié)束語

    筆者使用了Visual Studio 2022為開發(fā)環(huán)境,依托ABB工業(yè)機器人和配套PCSDK工具包完成了工業(yè)機器人的工作站設計,可以實現(xiàn)機器人搜尋、機器人硬軟件版本顯示、機器人實時速度讀寫,機器人啟??刂?、單個點位和數(shù)組點位的讀取和修改,機器人服務信息讀取,機器人類數(shù)據(jù)批量讀取,機器人實時位置更新和曲線顯示。該系統(tǒng)創(chuàng)新之處在于:

    1)所有功能實現(xiàn)都充分考慮到了安全因素,保證了工業(yè)機器人數(shù)據(jù)安全和操作人員的人身安全;

    2)系統(tǒng)有一定可拓展性,該系統(tǒng)在設計之初就考慮到了軟件本身的功能拓展,方便后續(xù)應用的開發(fā),同時本軟件能適配大多數(shù)型號的ABB工業(yè)機器人;

    3)應用了開源控件HZHcontrol,在不增加代碼工作量的情況下實現(xiàn)了界面的美化。

    隨著我國現(xiàn)代化建設的發(fā)展,工業(yè)機器人從一開始依托外國技術(shù),到現(xiàn)在逐步走出國產(chǎn)道路,這是一個值得欣慰的過程。但不可忽略的一點是,我國培養(yǎng)相關(guān)人才的產(chǎn)業(yè)鏈還未完善,依舊需要研究和突破。本文所做設計一方面對于工業(yè)機器人產(chǎn)業(yè)有極大幫助:縮短了操作人員的培養(yǎng)周期,優(yōu)化了數(shù)據(jù)讀寫和顯示,也為相關(guān)機器人工業(yè)軟件開發(fā)做出參考;另一方面對職校的工業(yè)機器人教學做出了一定貢獻:該軟件能有效服務硬件+軟件的混合式教學,能有機集成工業(yè)機器人課程體系,培養(yǎng)理實一體化的高技術(shù)人才。當然,本軟件仍然有很大的改進空間,比如能增添上位機對工業(yè)機器人代碼編寫功能來減少對示教器的使用,增添運維功能來滿足不同產(chǎn)線需要,增添機器人讀取種類,來適配其他機器人廠家的設備等。

    參考文獻:

    [1] 計時鳴,黃希歡.工業(yè)機器人技術(shù)的發(fā)展與應用綜述[J].機電工程,2015,32(1):1-13.

    [2] 樊澤明,余孝軍,王鵬博,等.面向工業(yè)機器人專業(yè)的混合式教學系統(tǒng)[J].高等工程教育研究,2021(6):183-189.

    [3] 韓峰濤.工業(yè)機器人技術(shù)研究與發(fā)展綜述[J].機器人技術(shù)與應用,2021(5):23-26.

    [4] 蔣正炎,檀祝平.高職工業(yè)機器人技術(shù)專業(yè)課程教學資源開發(fā)路徑研究[J].中國職業(yè)技術(shù)教育,2018(11):47-52.

    [5] 張宇廷,王宗彥,趙鵬宇,等.基于C#的橋式起重機數(shù)字化設計與云開發(fā)[J].機床與液壓,2022,50(8):115-120.

    [6] 王彬.基于C#的WinForm窗體傳值方法探討[J].電腦知識與技術(shù),2013,9(17):3999-4000,4004.

    [7] 姜拓,張劍平.基于C#的數(shù)據(jù)采集系統(tǒng)上位機軟件設計與實現(xiàn)[J].電子測試,2009(9):58-61.

    [8] 于同亞.用C#設計基于.NET框架的應用程序——ASP.NET購物網(wǎng)站的設計與實現(xiàn)[J].電腦知識與技術(shù),2009,5(18):4907-4908.

    【通聯(lián)編輯:謝媛媛】

    猜你喜歡
    二次開發(fā)語言
    語言是刀
    文苑(2020年4期)2020-05-30 12:35:30
    淺談基于Revit平臺的二次開發(fā)
    甘肅科技(2020年20期)2020-04-13 00:30:02
    西門子Operate高級編程的旋轉(zhuǎn)坐標系二次開發(fā)
    淺談Mastercam后處理器的二次開發(fā)
    模具制造(2019年3期)2019-06-06 02:11:02
    讓語言描寫搖曳多姿
    多向度交往對語言磨蝕的補正之道
    累積動態(tài)分析下的同聲傳譯語言壓縮
    Micaps3.2 版本二次開發(fā)入門淺析
    西藏科技(2015年12期)2015-09-26 12:13:51
    我有我語言
    ANSYS Workbench二次開發(fā)在汽車穩(wěn)定桿CAE分析中的應用
    汽車零部件(2014年5期)2014-11-11 12:24:32
    平乐县| 泾源县| 筠连县| 富源县| 新兴县| 灌云县| 五莲县| 巴彦淖尔市| 遂宁市| 牙克石市| 江口县| 遵化市| 神农架林区| 陵水| 庐江县| 大邑县| 丰原市| 凌海市| 白玉县| 泰安市| 龙陵县| 泊头市| 长垣县| 册亨县| 青铜峡市| 定兴县| 汤原县| 巴彦县| 卓资县| 高碑店市| 苏尼特右旗| 肥城市| 上林县| 类乌齐县| 武威市| 安宁市| 阳信县| 响水县| 宝坻区| 措勤县| 义马市|