1、本栏目责任编辑:唐一东人工智能Computer Knowledge and Technology电脑知识与技术第19卷第6期(2023年2月)第19卷第6期(2023年2月)基于C#语言的ABB机器人工作站的设计与实现钱新(无锡立信高等职业技术学校,江苏 无锡 214000)摘要:近几年,越来越多的公司采购并使用工业机器人,使得生产效率大幅提高。但是,传统的“示教器+控制柜+机器人本体”的组合在界面可视化、数据再处理部分有很大不足。基于此,文章依托ABB工业机器人设计了一种基于C#语言的工作站,可以实现工业机器人的基础控制、状态监测和数据读写与展示。关键词:C#语言;ABB工业机器人;二次开发
2、;工作站设计;工业应用中图分类号:TP311文献标识码:A文章编号:1009-3044(2023)06-0012-03开放科学(资源服务)标识码(OSID):0 引言在新一轮科技革命和产业变革背景下,越来越多的公司引入了工业机器人来优化产业结构,尤其在装配、码垛、搬运产线上,工业机器人得到了越来越多的应用1-2。作为机电一体化技术的集大成者,现有的工业机器人正随着数字化和人工智能的浪潮,朝着数字化、柔性化、智能化的方向发展,文献3指出了几条细分路径:1)以深度学习为代表的工业机器人技术来完成更高精度的人机协作任务;2)以多机器人协作为手段的工业机器人技术来应对复杂化的任务,值得指出的是,多机器
3、人协作的方式已经在许多行业中有所应用;3)可模块重构的技术来增加工业机器人的柔性制造本领;4)多传感器融合的工业机器人技术来补充非结构化机器人的缺陷;5)基于软件的工业机器人技术来扩展同一型号机器人的应用场景。虽然工业机器人诞生至今已有多年,但是,我国工业机器人技能培训和人才培养制度尚不完善,导致工业机器人应用型工程技术人员非常短缺,同时,传统工业机器人的示教器界面在数据可视化和数据再处理部分有一定短板,因此需要开发一款便捷的操作软件,既能减小工程技术人员使用工业机器人的难度,又能实现一定的数据可视化处理和安全操作。文献4针对现有机器人工程教育体系和行业痛点为着手点,提出了一整套理论与实践一体
4、化的线上线下教育体系,力求以一款多模块、多功能、多层次的可以适配多种厂家型号的软件来辅助教学,可见针对现有职校课程,也需要一款通用软件作为工业机器人专业的辅助工具,来减小职校教育与企业培训之间的隔阂。基于此,笔者使用Visual Studio 2022开发软件,依托ABB工业机器人和相关PCSDK开发包开发了一款PC端的机器人工作站,该工作站功能齐全而且操作便捷,界面友好,易于拓展,且软件有一定通用性,适合日常工作需要。1 软件需求分析1.1 WinForm与WPFWinForm 是.Net开发平台中对Windows Form 的一种称谓,和WPF一样,都适合用于桌面程序的开发和设计5,但是这
5、两种技术有一定的区别。第一点:界面的编写。WinForm采用拖动控件的方式进行界面编写,其本身集成了大量的封装控件,可以极大简化工作人员代码编写,从而把主要设计精力置于功能的实现上;而WPF则使用专门构建用户界面的XAML语言,从而可以更加容易制作出精美的页面,采取了前后端分离的方式,实现了代码的功能解耦。第二点:两者的驱动方式不同。WinForm由于使用了封装控件,其驱动方式多为“事件驱动”,通过按钮的点击或事件订阅进行动作;而WPF则是使用“数据驱动”的方式,当数据源变动时,进行主界面的数据更新,与此同时,用户操作界面时是直接对数据进行修改的,而数据和界面不进行直接接触6-8。综合考虑:由
6、于此次设计的工业机器人工作站对界面要求不高,因此采用WinForm来实现工业机器人的控制和数据再处理,同时,为了稍微美化传统的WinForm界面,此次设计引入了开源控件HZHControl。1.2 可扩展控制界面工业机器人工作站除了常规的连接控制、速度设置、状态显示、数据读写外,还应该有针对特定产线或者功能的界面,因此需要一种便于拓展的、易于区分内容的界面设计,同时,在代码编写过程当中要考虑到工业机器人的数据模型和关系模型。因此,本次设计参考了ABB的PCSDK工具包的命名空间划分,其主要命名空间为如表1所示:收稿日期:2023-01-25作者简介:钱新(1995),江苏无锡人,助教,硕士,主
7、要研究方向为电力电子与电力传动、智能装备与节能制造。E-mail:http:/Tel:+86-551-65690963 65690964ISSN 1009-3044Computer Knowledge and Technology电脑知识与技术Vol.19,No.6,February202312DOI:10.14004/ki.ckt.2023.0320人工智能本栏目责任编辑:唐一东Computer Knowledge and Technology电脑知识与技术第19卷第6期(2023年2月)第19卷第6期(2023年2月)表1 ABB工业机器人主要命名空间命名空间名称ABB.RoboticsA
8、BB.Robotics.ControllersABB.Robotics.Controllers.ConfigurationABB.Robotics.Controllers.DiscoveryABB.Robotics.Controllers.IOSystemDomainABB.Robotics.Controllers.MotionDomainABB.Robotics.Controllers.Rapid.Domain主要内容工业机器人本体异常信息工业机器人控制器信息工业机器人配置信息工业机器人连接信息工业机器人I/O信息工业机器人运动信息工业机器人Rapid信息在设计软件时,可以依照该命名空间设计
9、相关内容,便于软件后期的功能增添和代码维护。1.3 安全连接和控制界面由于工业机器人通常被应用在搬运、喷涂、装配等工况复杂的环境,因此对于工业机器的启动和控制要求较高,需要在满足各种安全条件下进行,防止出现工艺问题或导致人员伤亡。同时,运行过程当中应能实时显示工业机器人的IP地址、系统ID、控制柜软件版本、运行速度等基础信息,便于工作人员进行观察和设定,此外,针对工业机器人的基础控制可以实现点动测试。1.4 点位数据读写界面在工业机器人的作业中,被记录最多的数据就是各种工作点位,因此在上位机开发过程中,应能实现关键点位/点数组的空间姿态数据读写,以便在后期调试过程当中能够实现上位机的远程操作修
10、改,进行精密的点位修正。同时,在该界面应能实现部分数据的隐藏,易于操作人员观察。1.5 通用数据监控界面机器人工作站连接和控制点位数据读写网络搜寻工业机器人启停启动状态判断机器人运行速度设置单个点位姿态读取与修改数组点位姿态读取与修改通用数据监控常规数据监控实时位置显示关键数据更新图1 机器人工作站功能分解视图除了运动点位外,ABB工业机器人中还记录了bool、num、ExtJoint等类型的数据,因此这些数据也需要被操作人员读取并分析。同时针对工业机器人作业过程,应能实时显示机器人末端执行器的位置并图表展示以便观察,对于特定的工作任务,可以进行针对性的关键数据监控。基于1.11.5小结分析,
11、本次设计的机器人工作站系统功能分解视图如图1所示。2 系统整体设计2.1 界面设计由于本文采取WinForm进行开发设计,因此主要考虑在界面设计部分进行窗口的生成和复用,其主要思想是:在主窗口界面左侧布置功能图片,图片被点击时,绑定窗口生成事件,将新的窗口覆盖于主窗口之上,同时隐藏掉除了点击按钮以外的所有窗口,从而完成窗口的复用,其实现效果如图2所示,左侧功能栏采取不同图标来展示不同功能。图2 窗口切换显示效果图从图2可以看出,在采用了HZHControl控件后,传统的WinForm窗口也能实现不错的界面显示,同时窗口复用的设计极大方便了后续的功能开发,可以根据实际的使用需求,再进行有针对性的
12、开发。2.2 安全连接和控制界面设计现有的工业机器人都预留了网口作为主要通信,因此在此次工作站设计中采用有线网络进行通讯连接。ABB机器人的PCSDK包中主要通信函数在NetworkScanner类中,当PC在同一网段搜寻到机器人时,可以识别并读取机器人相应的硬件信息和软件版本号。机器人的运行主要有两大部分,一个是电机及控制器的上电,一个是程序的正式运行,因此在基础控制部分应该能分别实现这两个内容的启动和停止。本次设计的控制部分有启动(程序运行),复位(程序复位),电机上电,电机下电,工业机器人运动暂停和工业机器人运动急停,而这一部分的控制函数主要在Controllers类中。考虑到工业机器人
13、的特殊工作环境,工业机器人13本栏目责任编辑:唐一东人工智能Computer Knowledge and Technology电脑知识与技术第19卷第6期(2023年2月)第19卷第6期(2023年2月)启动时需要满足各种安全条件,此处设立了三个基本的安全要求:1)机器人控制状态应处于自动运行状态从而防止在人工操作时上位机误操作导致发生安全事故;2)机器人的启动I/O信号应满足启动要求,譬如安全栅栏信号应处于正常工作状态;3)机器人启动位置应该在原点位置。同时软件设计的时候也要考虑机器人连接成功与否,从而判断操作是否成功下达。图3展示了机器人连接控制界面的主要内容,图4展示了机器人安全动作的提
14、示内容。图3 机器人连接控制界面图4 机器人软件判断界面可以看出,该款上位机控制软件可以简化工作人员对机器人的操作,并且充分考虑到了实际工况中的安全问题。2.3 点位数据读写界面设计工业机器人运动过程当中,记录数据最多的就是各种点位数据。ABB中负责记录该数据的就是结构体RobTarget,在该结构体中操作人员更关注的是其中的位置和姿态数据。在这里位置X、Y、Z是工业机器人末端执行器相对坐标原点的距离,姿态数据 Rx、Ry、Rz则反映了末端执行器相对于各基准面的姿态。考虑到,在常规控制当中,一个动作通常以数组形式进行存放,因此该界面应该能实现数组的读取和修改。为了保证写入数据的正确性,在覆盖数
15、据前应有提示窗提示修改后的最终结果,防止数据的误写,同时,考虑到界面的简洁和美观,提供了数据隐藏功能,并针对组数据的数据类型进行了分类,这一部分的主要操作函数在Rapid类中。图5显示了单点的姿态修改界面,图6显示了数组的修改界面,可以看出,在覆盖旧数据前,提供了确认框供操作人员进行判断。图5 单点修改界面图6 数组修改界面2.3 通用数据监控界面设计正如1.5小节所描述的那样,普通操作工人使用点位数据读写界面就能完成日常工作所需,但是对于程序调试和后期维护而言,还需要更多数据进行辅助操作。在此设计界面,首先完成了类数据批量读取功能,可以实现当前工业机器人所用到的所有数据的读写,包括但不限于b
16、ool、num、pose、speeddata、ExtJoint。考虑到工业机器人的周期性维护,实现了工业机器人服务时间信息的读取,包括总运行时间、上次开机时间、本次服务总时间、校准时间等,这一部分的主要操作函数在MotionSystem类中。同时,实现了工业机器人的实时位置显示,并作出图表展示,方便操作人员的观察,在这里,图表部分采取了开源包HZHControl的Live Charts控件。图7和图8显示了通用数据监控界面的实现,其中左上角是机器人服务信息,左下角是类数据批量处理,右下角是机器人实时位置,右上角是曲线展示,可以看出,采用实时曲线显示的运动轨迹的方式可以极大方便工作人员的观察,并且相关报警信息进行了特殊颜色标记。图7 通用数据监控界面(a)图8 通用数据监控界面(b)值得注意的是,在该界面中实现了虚拟机器人和实物机器人的种类判断,并依据这些判断来进行软件的不同动作。3 结束语笔者使用了Visual Studio 2022为开发环境,依托ABB工业机器人和配套PCSDK工具包完成了工业机器人的工作站设计,可以实现机器人搜寻、机器人硬软件版本显示、机器人实时速度读写,机器人启