钱新
关键词: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工业机器人,可以采用设备点检的方式进行维护。设备检查主要分为日点检和定期点检。日点检主要是对工业机器人本体的清洁、环境通风、安全防护装置的正确运作以及电机/气阀的正常工作等进行外部常规检查。定期点检则主要针对电缆线束、电池组、同步带等关键核心器件进行重要检查。考虑到工业机器人的运行环境,重要检查还需要进行有针对性的调整。总之,合理的检修计划是保障产线正常运作的有效手段之一。在工业机器人上电运行前,需要调试人员手动确认后,才准许程序运行。
因此,在工业机器人点检部分,已加入开机日检提醒和定期点检提醒。调试人员需要确保所有点检完成后,才能运行程序。同时,已加入了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) 所有操作均可摆脱传统示教器,通过联网方式进行,从而克服地理限制。
后续工作将重点围绕机器人的远程操作和“机器人+外设”的联动操作两大方向进行功能更新,实现机器人工作站操作的数字化、可视化和智能化。这将降低工业机器人的使用门槛,辅助操作人员进行现场调试,进而缩短学校教学与企业培训之间的“技术边界”。