基于机器视觉的食品自动化产线仿真平台的设计

2021-05-08 08:41刘海燕林春兰吴雪颖苏宇
食品工业 2021年4期
关键词:二次开发扫码串口

刘海燕,林春兰,吴雪颖,苏宇

广西科技大学职业技术教育学院,工业机器人技术中心(柳州 545006)

条码,又称条形码,是由一组宽度不同、反射率不同的平行相邻的条和空按规定的编码规则组合表示一定信息的代码,也是一种能利用光电扫描阅读设备识读并实现将数据输入计算机的特殊代码[1-2]。条码技术被广泛应用于商业、金融、交通、医疗卫生、邮电、制造、食品、仓储等领域[3]。条码是一种经济、实用的自动识别技术,具有输入速度快、可靠性高、采集信息量大、灵活实用等优点[4]。

采用Visual Studio(VS)对机器人进行二次开发,张日红等[5]在VS开发环境下实现机器人离线编程控制的方法;李静等[6]对用VS创建一种磁吸附履带式爬壁机器人的人机交互界面,实现上下位机的实时通讯。采用Python实现设备间的通信,张西波[7]用Python编写串口程序,可实现对设备的集中控制和管理;吕炀[8]用Python完成USB通信和网络通信开发。采用RobotStudio(RS)离线编程软件的Smart组件进行机器人工作站的虚拟仿真;郝建豹等[9]通过SolidWorks构建三维仿真模型并导入到RS中构建机器人工作站的建模布局,通过创建Smart组件实现工作站的仿真运行。

基于工业实际生产案例,采用Python下的Pyqt5工具包和Pycharm编辑器开发串口通信软件,实现对扫码器扫描信号的读取和发送;采用VS和RS的二次开发工具PC SDK完成对虚拟机器人的控制;采用RS的Smart组件构建仿真系统,完成对平台的仿真运行。

1 平台架构设计

平台架构包括硬件系统和软件系统:硬件系统主要由读码器组成;软件系统由Python开发的串口通讯软件、VS开发的虚拟机器人控制应用程序和RS构建的双链仿真平台构成。平台整体框架如图1所示。

图1 平台框架图

2 Python+Pyqt5+Pycharm串口通讯软件

Python是一种动态、面向对象的脚本语言,是最流行的编程语言。它易于学习,速度快、是一种免费和开源的高级语言,便于携带和解释[10]。Pycharm是Python的一组工具,有助于使用者提高Python语言开发的效率。试验应用Python 3.6.4(64位)中的GUI界面,选用Pyqt5工具包,Pycharm 2018.3.5(64位)版本。串口通信流程图如图2所示。

图2 串口通信流程图

调用Python编程所需的模块→控制优先级,先执行初始化→接收扫码数据→串口控件→扫码数据显示→网络设置控件→机器人端串口发送程序。编码完成后,运行代码进行窗口检验,如图3所示。

图3 串口调试软件界面

界面运行完成后,进行串口程序测试,测试结果如图4所示。

图4 串口测试

3 VS和PC SDK二次开发

3.1 Visual Studio 2017

Visual Studio软件[11]是一套完整的开发工具,可生成ASP.NET Web应用程序、桌面应用程序、XML Web Services和移动应用程序。Visual Basic、Visual C#和Visual C++都使用相同的集成开发环境(IDE),实现工具共享。创建新项目时,Visual Studio会自动生成一个解决方案,可根据需要将其他项目添加到解决方案中。系统使用Visual Studio Community 2017版本15.9.11,NET Framwork版本4.0以上。通过添加PC SDK动态链接库,使用C#编写PC应用程序控制RobotStudio中的机器人,实现与ABB机器人的通信及数据读取和写入。

3.2 PC SDK二次开发

对ABB机器人进行二次开发的目的在于能够在PC机上通过网络对机器人进行远程操控,可获取机器人的工作状态、程序数据、程序模块、IO模块等信息。ABB机器人为使用者提供大量便捷的二次开发及应用工具,PC SDK就是其中一项。利用PC SDK对ABB机器人进行二次开发时,只需要在其官网上下载相应版本的动态链接库文件,用到的PC SDK版本为6.07。

3.3 与ABB虚拟控制柜建立通讯

PC SDK的类库被封装在不同的功能域中,其动态链接库文件通过编译软件Visual Studio(简称VS)引用至用C#建立的Winform项目,根据开发需求在VS中构建与PC SDK的类库相关的类,并建立起各个功能域之间的关系。

1) 通过创建Winform窗体,建立网络扫描和连接等句柄,可显示网络上所有机器人信息。

2) VS与ABB Virtual Controller建立通信,获取ABB机器人端的变量,并写入产品A和产品B的控制信号,生成的控制应用程序界面如图5所示。

图5 ABB机器人控制应用程序

4 RS离线编程软件

ABB模拟与离线编程软件RS,可在办公室PC机上完成机器人编程,无需中断生产。RS基于ABB Virtual Controller,与机器人在生产中运行的软件相同。因此,RS可以执行非常逼真的模拟,并且可在生产现场直接使用编程的机器人程序和配置文件[12]。

4.1 工作站模型

应用UG 10.0软件构建简单的AGV小车模型和食品包装产品A和B模型。简易AGV小车模型主要参数为:轮直径80 mm,宽度150 mm,车身长度1 600 mm,车身宽度1 000 mm,可用装载车身长度1 200 mm,离地高度135 mm。产品A和B模型为:长度600 mm,宽度400 mm,高度200 mm。模型如图6所示。

4.2 动态Smart组件的设计

在机器人双链路平台仿真系统中,为更好地展示效果,从分析物料出发定义2条输送链(产品A和产品B),创建输送链子对象组件:要求物料在输送链前端自动显现;物料自动输送到输送链末端,与传感器发生碰撞后,发出产品到位信号,从而启动机器人搬运工作。

4.3 机器人生产线仿真I/O信号

在企业实际生产案例中,PLC是中央控制单元,通过Profinet或Profibus等现场总线,将数控机床、工业机器人等设备连接起来进行信号通信。而在仿真系统中,Smart组件可以看成是PLC,只需要将该组件的I/O信号与机器人的I/O信号进行关联,模拟PLC与机器人的信号通信实现仿真效果。仿真I/O信号如表1所示。

图6 平台模型图

表1 机器人自动上下料生产线部分I/O信号

4.4 Smart组件的I/O信号设置及连接

Smart组件中各子组件之间的逻辑控制,主要是通过I/O信号的连接来实现,部分I/O信号逻辑连接如表2所示。

表2 Smart组件_输送链的部分I/O信号逻辑关系

5 RAPID程序编译及仿真

在搭建好各种模型和Smart组件后,可以根据工作流程要求,利用RS的离线编程功能编写和调试出相应的程序,进行模拟仿真查看结果是否满足要求。在RS中主要是利用其RAPID对机器人进行编程。RAPID是一种英文的编程语言,里面包含着可以移动机器人、设置输出、读取输入等指令,还能实现决策、重复其他指令、构造程序、与系统操纵员交流等功能。部分主程序如下所示。

Main主程序:

6 仿真运行

搭建整个双链平台后,单击“仿真控制”选项卡的“播放”,使机器人处于自动仿真运行状态。在VS开发的ABB机器人控制器应用程序中启动程序,完成对虚拟控制柜的通信连接;产品A的扫码数值发送给ABB机器人,机器人就启动产品A的搬运和码垛任务;产品B的扫码数值发送给ABB机器人,机器人就启动产品B的搬运和码垛任务;若同时发送A和B的扫码数值,ABB机器人就执行搬运先到达物料的任务;AGV小车按照3×5的结构进行码垛。仿真结果如图7所示。

图7 VS控制ABB机器人仿真结果

7 结语

在此仿真系统中需要依次完成:1)在Python+Pyqt5+Pycharm中完成串口通信软件的设计及界面搭建工作;2)在Visual Studio软件下完成PCSDK动态链接库的引用、C#程序编写、Window窗口搭建、与机器人通信的建立等;3)在RobotStudio软件下完成SMART组件的搭建,包括双链路码垛工作站I/O配置及逻辑信号搭建、机器人逻辑信号搭建、程序数据创建、目标点示教、仿真程序编写及调试。

完成双链路仿真实系统的上位机设计、下位机机器人工作站的仿真运行。仿真环境下的搭建,使流水线的物料通过扫码、分类、ABB机器人装载和AGV小车运送、计算机总控的一整套视觉自动化研究。该设计可节约人力成本,提高工作效率,为工控中的商品包装仓储运输提供一套高效的视觉自动化系统方案。

猜你喜欢
二次开发扫码串口
脐橙连上物联网 扫码便知“前世今生”
山之高
浅谈AB PLC串口跟RFID传感器的通讯应用
浅谈基于Revit平台的二次开发
浅谈Mastercam后处理器的二次开发
中国进入“扫码”时代
西门子Easy Screen对倒棱机床界面二次开发
扫码看直播
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信