面向智能制造加工的虚拟调试系统开发与应用

2020-01-03 01:24
计算机测量与控制 2019年12期
关键词:数控车床插件工件

(浙江工业大学 信息工程学院,杭州 310023)

0 引言

21世纪以来,物联网、云计算、大数据、移动通信、人工智能等新技术在制造业广泛应用,制造系统集成式创新不断发展,形成新一轮工业革命的重要驱动力。面对新一轮工业革命,世界各国都在出台制造业转型战略,美国提出“先进制造业伙伴计划”、德国提出“工业4.0战略计划”,都将智能制造作为本国构建制造业竞争优势的关键举措[1-2]。与此同时,在“制造强国”和“网络强国”大战略背景下,我国也先后出台了“中国制造2025”和“互联网+”等制造业国家发展实施战略,其核心是促进新一代信息技术与制造业深度融合,大力发展智能制造[3-4]。数字孪生(Digital Twin)[5-7],作为实现物理世界与信息世界交互与融合的有效方法,是指通过数字技术来复制物理对象,模拟对象在现实环境中的行为,对整个工厂的生产过程进行虚拟仿真,从而提高制造企业产品研发、制造的生产效率。数字孪生正在成为智能制造新趋势,已经在2017、2018和2019年连续三年被世界领先的科技研究集团 Gartner评为年度十大战略性技术,预测在不久的将来将有数十亿台设备拥有数字双胞胎,并且到 2020 年,估计将有210亿个连接的传感器和端点投入使用。

虚拟调试(Virtual Commissioning)[8-10]是数字孪生最好的应用,虚拟调试技术是在虚拟环境中调试控制设备的代码,然后通过虚拟仿真来测试和验证系统方案的可行性,再将调试代码应用到真实的场景中。该虚实融合的虚拟调试技术的优势在于降低了调试成本和风险、减少了现场调试时间、提升了工作质量、验证PLC的逻辑及产品的可行性。国内外有很多学者对虚拟调试技术进行了研究,Koo提出了虚拟工厂模型框架,并应用于汽车装配线中,通过建模和仿真验证了PLC逻辑[11]。刘玉玲在Roboguide平台对焊接机器人增材制造进行了虚拟仿真,有效缩短了机器人焊接时间,提高了机器人工作效率[12]。黄永飞开发了一种面向三维虚拟生产线的PLC仿真控制系统,实现了基于PLC Editor的虚拟自动生产线的仿真控制[13]。杨大宇基于Autoform软件实现了对汽车覆盖件拉延模具的参数化虚拟调试,使模具在制造前就消除了成形缺陷[14]。王春晓采用Modelica进行数控机床多领域建模并虚拟调试,对机床实机调试具有指导意义[15]。

本文首先设计了面向智能制造加工的虚拟调试系统的总体方案,系统包括三部分:物理控制设备、交互控制软件和虚拟3D模型;其次根据系统的功能需求开发了PC端的交互控制软件,实现了物理与虚拟信号的交互融合;然后在RoboDK仿真软件中建立了机器人、立体仓库、数控车床加工中心等3D模型,通过PLC、机器人控制器、车床控制器及加工中心控制器进行虚拟调试,调试过程中发现了PLC程序设计的不合理之处并进行了改善;最后搭建了实验平台,通过实验对智能制造加工系统的可行性进行了验证。

1 系统总体方案设计

整个系统由物理控制设备、交互控制软件和虚拟3D模型三大部分组成。物理控制设备以PLC为中央控制器与机器人控制器、车床控制器、加工中心控制器接入同一交换机下,通过工业以太网进行通信。PC端设计一款交互控制软件,采集、监控物理设备的数据,同时实现系统中物理信号与虚拟信号的交互。在RoboDK软件中建立加工系统中机器人、立体仓库、数控车床及加工中心等3D模型,用来模拟真实的加工系统。系统总体方案如图1所示。

图1 系统总体方案图

以中央控制器PLC为核心,对整个系统进行逻辑控制,并通过交互控制软件,进行物理信号与虚拟信号的匹配,实现以下功能:1)实现与机器人模型运动指令、运行状态及数据的交互;2)实现数控车床模型安全门开关、卡盘松紧及加工工艺的执行;3)实现加工中心模型安全门开关、卡盘松紧及加工工艺的执行;4)实现与立体仓库模型中工件状态信息的交互。信号匹配完成后对加工系统进行虚拟调试来完成加工任务,加工任务由以下几部分组成:1)机器人夹取立体仓库中毛坯工件进行工件出库;2)机器人往数控车床上料;3)数控车床加工;4)机器人夹取加工完成的半成品往加工中心上料;5)加工中心加工;6)机器人夹取成品入库。

2 交互控制软件设计

交互控制软件在Visual Studio 2015平台上进行开发,基于OSGI.NET插件框架进行软件设计,数据层采用C#编程语言编写,显示层采用WinForm高效而又强大的控件集设计。OSGi.NET插件框架, 是OSGi R4.2规范移植到.NET平台的实现。具有面向服务架构、动态模块化和模块扩展三大功能。支持控制台、WinForm、WPF、ASP.NET和移动平台等任意.NET应用环境,其体系结构如图2所示。

图2 OSGI.NET体系结构图

交互控制软件的总体设计框架如图3所示。根据OSGI.NET插件框架的模块化和插件化的功能,将每个设备驱动做成插件,每个插件被独立开发,设计了相应的采集层、显示层和数据层。采集层:通过相应设备的应用编程接口(API),做成数据采集器,实时采集设备的数据;显示层:实时显示物理信号和虚拟信号的详细信息;数据层:将物理信号存储到Redis数据库,同时读取Redis数据库中的虚拟信号写入物理设备。使用Redis高性能数据库,将物理信号和虚拟信号进行缓存,保证了信号交互的实时性。使用Python脚本程序读取Redis数据库中物理信号来驱动RoboDK中3D模型,同时将模型的虚拟信号存储到Redis数据库中,最终反馈到物理控制设备中。

图3 交互控制软件总体设计框架图

交互控制软件由系统插件和设备插件组成。其中系统插件用于管理设备插件的生命周期,负责启动、停止及卸载设备插件,能够挑选任意的插件组装进行虚拟调试。机器人插件能够实现与目标机器人控制进行连接、对关节角及对输出信号读取。PLC插件能够与目标PLC进行连接,对IO信号进行读写。数控车床插件能够与数控车床控制器进行连接,对IO信号进行读写,省去了数控车床与PLC的硬件IO接线。加工中心插件能够与加工中心控制器进行连接,对IO信号进行读写,省去了加工中心与PLC的硬件IO接线。具体功能如图4所示。

图4 交互控制软件功能图

软件中每一个设备驱动都由独立的插件所生成,拥有自己的业务逻辑及交互界面。插件具有动态性和隔离性,能够被动态安装、启动、停止及卸载,同时有独立的类型加载器和类型空间。OSGi.NET插件框架启动时,通过BundleRuntime即插件运行时,它是插件的运行容器,会从各个插件目录中逐一加载和启动所有插件。

以开发PLC插件为例,基于OSGI.NET插件框架在winform下开发插件步骤如下:1)首先在Visual Studio 2015中创建一个winform主应用程序,作为启动OSGI运行时环境的入口程序;2)添加核心的UIShell.OSGI引用;3)在Program.cs文件的程序入口点Main函数中创建启动插件运行时BundleRuntime,从插件框架获取PageFlowService服务,利用该服务获取主界面,然后创建该界面实例,并运行;4)在主程序的输出目录下创建一个Plugins文件夹,在该文件夹下建立一个winform工程项目,这个项目即为PLC插件,BundleRuntime会自动从Plugins目录下加载并启动插件。插件由一个清单文件(Manifest.xml)、插件本地程序集、插件所需资源和其他文件组成。清单文件Manifest.xml可以定义插件的基本信息、插件的激活状态信息、插件类加载的运行时信息及插件的扩展定义信息;5)PLC插件的界面设计采用两个listView控件来进行PLC的IO信号的更新显示,每行信号包括信号名、虚拟键名、输入/输出地址及当前值属性,信号名为当前信号的描述,虚拟键名为当前信号在Redis中的键名,输入/输出地址为PLC的输入/输出地址,当前值为输入/输出地址中的信号值,该值会根据键名存储到Redis中对应的键值中。在listView的输入输出列表范围内进行右击,能够选择添加信号、修改信号、删除信号、强制信号及取消强制等功能,信号的信息会写入到.ini配置文件中,PLC插件操作界面如图5所示;6)PLC插件的后台创建了3个线程设计来提高软件的执行速度和运行效率,分别为读PLC线程、写PLC线程、刷新界面线程。读PLC线程的任务是负责连接目标PLC,实时读取PLC的输出信号并存储到Redis数据库中。写PLC线程的任务是负责连接目标PLC,从Redis数据库中实时获取设置中所需的信号值并写入到PLC对应的输入地址中。刷新界面线程的任务是从Redis数据库中获取设置信号值并实时显示在界面上,便于观察信号的变化。

图5 PLC插件操作界面

开发完成之后运行插件, PLC插件具体的运行流程图如图6所示。首先设置目标PLC的IP地址,界面上会加载配置文件中已有的信号信息,还需添加信号可以在右击菜单中进行逐行添加,信号添加完成之后运行插件,成功连接PLC之后将启动3个线程。

图6 PLC插件运行流程图

基于PLC插件的开发,同样实现了机器人、数控车床及加工中心插件,数控车床和加工中心插件开发过程与PLC插件类似,机器人插件开发中只对机器人关节角数据及输出信号进行读取,显示在界面上的同时存储到Redis数据库。系统管理插件在界面上使用DataGridView控件将插件目录中的插件列出,并且使用了3个按钮,分别实现设备插件的启动、停止和卸载。系统管理与其他设备插件操作界面如图7所示。

图7 系统管理及其他插件操作界面

3 系统的虚拟调试

虚拟调试可以在项目开始的早期,利用物理控制设备和虚拟的3D模型来模拟整个加工过程,不仅减少了调试的时间和成本,而且在办公室就能对控制设备程序进行逻辑检查,最终验证产品设计的可行性。在RoboDK软件上建立加工系统的模型,然后通过交互控制软件来调试该模型。RoboDK软件中加工系统工作站如图8所示。

图8 加工系统工作站示意图

加工系统工作站由以下几部分组成:汇博20 kg型机器人、机器人夹爪、Neway数控车床、Neway加工中心、立体仓库、控制柜、机器人轨道及围栏。立体仓库中每个仓位存放着工件,机器人负责搬运工件进行出库、上料及入库,立体库中使用传感器来模拟RFID,记录工件的状态,数控车床负责加工毛坯工件,加工中心负责加工半成品。

中央控制器PLC的控制程序用梯形图语言编写,机器人控制器的执行程序由汇博机器人脚本语言编写,在数控车床和加工中心的控制主板中使用G代码编程。

加工系统的虚拟调试环境搭建完成后,通过交互控制软件实现物理控制设备与工作站中模型的信号交互,与每个设备程序中相对应的输入输出信号如图9所示。

图9 设备输入输出信号图

图10 工作站运行流程图

加工系统工作站运行流程图如图10所示。程序启动,首先是系统的初始化,机器人回到初始位置,数控车床和加工中心的卡盘紧和安全门关闭。初始化完成之后PLC根据指令调度机器人去立体仓库的相应仓位取毛坯工件,取件时候将工件的状态写入仓位中的传感器,即RFID写入,然后PLC调度机器人夹取毛坯件往数控车床上料,完成后进行RFID写入,更新工件状态,PLC请求执行相应的数控车床加工程序,数控车床开始对毛坯工件加工,加工完成之后,再进行RFID写入,更新工件状态,PLC调度机器人去数控车床取件,然后夹取半成品放置到加工中心,完成后进行RFID写入,更新工件状态,PLC请求执行相应的加工中心加工程序,加工中心对半成品加工,加工完成之后,RFID写入,更新工件状态,PLC调度机器人去加工中心取件,机器人夹取成品进行入库,RFID写入,更新工件状态,此时机器人处于等待状态,如果还有工件需要加工,PLC会继续调度机器人执行下一个加工任务,直到所有工件加工完毕。

在虚拟调试的过程中,不可避免地会出现一些问题,如图11所示,第一个问题是机器人往数控车床上料,此时数控车床的安全门处于关闭状态,导致机器人直接撞击在安全门上;第2个问题是机器人往加工中心放件,加工中心的卡盘处于紧闭状态,导致工件无法正常放入;第3个问题是机器人直接绕过了数控车床,将毛坯工件送到了加工中心;第4个问题是数控车床加工完成后,机器人没有去取件。

图11 工作站虚拟调试问题

上述问题如果发生在工作现场,会损坏加工设备及或者造成加工过程无序。经过检查,前两个问题出现的原因是PLC梯形图程序设计存在问题,机器人往数控车床上料之前没有给安全门开信号,往加工中心上料之前没有给卡盘松信号。后两个问题出现的原因是RoboDK中的信号初始化及地址发送错误,数控车床的加工完成信号初始化为已完成状态,导致机器人提前往加工中心上料;数控车床加工完成之后,发出的加工完成信号的地址不是PLC梯形图程序中设定的加工完成信号地址。针对问题的具体原因,进行了PLC梯形图程序的改正及RoboDK中正确的初始化及信号的匹配,最后虚拟调试中,工作站能够按照工序正常的运行,工作站正常运行如图12所示。

图12 工作站虚拟调试过程图

4 实验验证

通过虚拟调试对系统进行了稳定性和可靠性测试,在工厂搭建了智能制造加工系统的实验平台进行实验。实验平台包括PC机、控制柜、立体仓库、汇博机器人、机器人夹爪、RFID读写器、KND数控车床及加工中心。其中PC机负责下载机器人和PLC程序,控制柜中包括SIMATIC S7-1200和汇博机器人控制器,RFID读写器负责对立体仓库对应仓位中芯片进行读写,更新工件状态。系统实验平台如图13所示。

图13 系统实验平台

将PC机、PLC、机器人、RFID读写器、数控车床及加工中心接入同一交换机下的局域网中,并分配相应的IP地址,在机器人示教盒中载入机器人程序,操作模式调成自动并且启动机器人, PC机通过博途软件载入PLC梯形图程序,启动智能制造加工系统,运行流程和虚拟调试中一样,系统运行实验如图14所示。其中数控车床和加工中心信号在虚拟调试中是通过工业以太网与其它设备交互的,省去了与PLC的硬件IO接线,在实验场景中,主控PLC配置了2个16入/16出的继电器输出型的输入/输出模块,分别用于与数控车床及加工中心进行信号交互。系统运行中与虚拟调试对应的机器人仓库取件、数控车床上料、数控车床加工、加工中心上料、加工中心加工以及成品入库任务均能够完成,没有发生异常,验证了系统的稳定性与可靠性。

图14 系统运行实验

5 结束语

本文设计并实现了面向智能制造加工的虚拟调试系统,以PLC为中央控制器,通过工业以太网与机器人控制器、数控车床及加工中心控制器进行通讯。交互控制软件采用插件化模式进行开发,降低了设备驱动之间的耦合度,每个设备插件能够被独立地开发、测试和部署。Redis数据库实现了物理信号与虚拟信号的缓存,保证了信号交互的实时性。在加工系统的虚拟调试的过程中发现并解决了PLC编程及信号匹配的问题,避免了在现场调试中对设备的损害。通过现场的实验验证了加工系统方案的可行性。结果表明,通过虚拟调试技术降低了智能制造加工系统的调试成本,缩短了调试的周期,并且给系统加工准备提供了有效的解决方案。

猜你喜欢
数控车床插件工件
带服务器的具有固定序列的平行专用机排序
带冲突约束两台平行专用机排序的一个改进算法
工业机器人视觉引导抓取工件的研究
基于CTK插件框架的太赫兹人体安检系统软件设计
数控车床加工精度的工艺处理及优化试析
我国数控车床技术发展的现状及思考
一类带特殊序约束的三台机流水作业排序问题
自编插件完善App Inventor与乐高机器人通信
基于OSGi的军用指挥软件插件机制研究
基于jQUerY的自定义插件开发