基于iOpenWorks的虚拟调试***
技术领域
本发明涉及一种工控设备的虚拟调试***。
背景技术
信息技术正给传统制造业带来前所未有的变革,以工业4.0为代表新一轮产业升级正在展开。融合物联网、大数据、云计算、人工智能、虚拟现实、机器人、3D打印等多项技术,工厂的生产效率得到大幅提升。企业可以开展全新商业模式,为客户提供定制化服务等,同时工业4.0模式为制造业开创了新的机遇。
然而,在当前自动化车间的调试过程中,很多问题不断暴露出来。由于自动化车间设备多而且整个生产过程是一个动态变化的过程,造成控制策略更加复杂,很难去验证其合理可靠性,在现场调试不但会有调试风险而且还会增加现场调试的时间,造成整个项目投产时间过长。由于数字化工厂技术的发展,可以实现对整个生产过程进行模拟、评估和优化,但是在进行生产过程模拟的过程中,整个控制策略与过程模拟的耦合度很高不利于人员的分工合作;另外,当验证控制策略合理后,需要将此控制策略重新编写到应用程序中,工作效率较低。
如今,激烈的竞争和快速变化的市场需求给制造业提出了更多苛刻的要求,而新一代信息技术正是有助于提高制造的灵活性,使得制造商能够以更快的速度和更低成本制造出市场所需的产品。工业4.0是多项技术共同融合的结果,其中一项关键的技术叫做虚拟调试。
虚拟调试其实就是虚拟现实技术在工业领域的应用,通过虚拟技术创建出物理制造环境的数字复制品,以用于测试和验证产品设计的合理性。例如,在计算机上模拟整个生产过程,包括机器人和自动化设备、PLC、变频器、电机等单元。像机器人单元模型创建完成就可以在虚拟世界中进行测试和验证。
产品设计过程很难预测到生产和使用过程会不会出现问题,而虚拟调试带来许多好处之一就是验证产品的可行性。虚拟调试允许设计者在产品生产之前进行任何修改和优化,而不会造成硬件资源的浪费。而且这样可以节省时间,因为用户在测试过程中可以修复错误,及时对自动化***进行编程改进。数字模型的使用可以降低工厂更改流程的风险,使企业在生产方面取得了显著的改进。例如汽车制造工厂在制造与装配产品时,可以使用虚拟调试重新编程数百台机器人,而不需要花费大量时间在现场停机进行调试。
目前,针对工业虚拟调试***的设计主要集中在纯数字化工厂调试和单方向传送数据方面,针对PC客户端控制、数据交互和虚实融合方面研究较少。谭胜龙、丁亮、赵福臣等提出了一种基于数字化工厂的自动化车间虚拟调试方法(谭胜龙、丁亮、赵福臣等.一种基于数字化工厂的自动化车间虚拟调试方法:中国,108121216A[P].2018-06-05),给出了一种纯数字化的虚拟调试,未采集真实工控设备数据进行虚实融合,现场的一些真实情况难以模拟和测试;季益龙提出一种PLC虚拟调试方法(季益龙.一种PLC虚拟调试方法:中国,103163816A[P].2013-06-19),使PLC程序在实际生产前的实验室即可充分调试,但未结合仿真软件,不具备虚拟仿真模型运动的效果;廖胜波、李颖晴、丘平荣等提出了一种基于虚拟仿真调试机的自动化生产线的仿真调试方法(廖胜波、李颖晴、丘平荣等.基于虚拟仿真调试机的自动化生产线的仿真调试方法:中国,107490982A[P].2017-12-19),该***采集PLC和机器人数据并传送到仿真软件中驱动模型来虚拟调试,但是并没有没有设计良好交互性能的PC客户端,操作繁琐不便,也没有仿真软件向设备的反馈,不具有交互性。
发明内容
本发明针对现有技术的上述缺点,本发明提出一种基于iOpenWorks的虚拟调试***。
首先该***PC客户端基于iOpenWorks平台开发,工控设备操作以插件的形式存在,工控设备插件能够独立开发、测试和部署;每个工控设备都有数据采集模块,数据采集之间互不干扰,提高了数据采集的正确性;具有人性化的操作界面,能够方便地配置IP地址、端口号和创建I/O信号列表,并显示关节数据和I/O变量数据,实现了数据的实时监控;PC客户端通过以太网和工控设备进行通信连接,建立连接方便,数据的传输高速稳定;采用了Redis数据库以key-value的形式对数据进行了缓存,实现了工控设备与仿真软件的实时***互,又易于查看和管理数据;通过PC客户端使工控设备和仿真模块进行数据交互,完成了虚实融合。
本发明为解决现有技术问题所采用的技术方案是:
一种基于iOpenWorks的虚拟调试***,PC客户端安装在Windows电脑上,通过PC客户端中iOpenWorks框架的插件来采集多个工控设备的数据并且存入Redis数据库,仿真软件通过Python程序采集Redis数据库中数据来驱动机器人的模型,同时也将一些机器人模型状态信息写入Redis数据库以触发工控设备中的信号来运行进一步的程序,实现了对工控设备程序逻辑的检测并在虚拟环境中模拟真实的生产制造;所述的基于iOpenWorks的虚拟调试***,包括工业机器人***、PLC、工业嵌入式触摸屏、数据采集模块、交互界面模块、Redis数据库模块和仿真模块,具体如下:
工业机器人***,该***与PLC和PC端的数据采集模块连接,包括机器人控制器和机器人示教盒;与PLC的连接部分,其输入为PLC通过Mudbus TCP协议传输的I/O信号,包括机器人启动、停止和运行信号,同时该***的机器人控制器会发送I/O信号给PLC,再通过PLC的反馈执行其它机器人程序;与PC端的数据采集模块的连接部分,该***的机器人控制器通过Mudbus TCP协议发送关节数据给PC端的数据采集模块,然后数据采集模块对关节数据进行解析;该***中机器人控制器用于执行机器人程序,机器人示教盒用于选择机器人程序和查看机器人数据;
PLC,该设备与工业机器人***、工业嵌入式触摸屏和PC端数据采集模块连接,与工业机器人***的连接部分,其输入为机器人控制器中的I/O信号,同时PLC也输出I/O信号给机器人控制器来执行机器人程序;与工业嵌入式触摸屏的连接部分,其输入为工业嵌入式触摸屏通过Mudbus TCP协议发送的控制信号,包括机器人启动、停止、运动和复位信号,PLC输出状态反馈信号给工业嵌入式触摸屏,工业嵌入式触摸屏上将状态信息进行显示;与PC端数据采集模块的连接部分,其输入为数据采集模块通过TCP/IP协议发送的仿真设备中的I/O信号,PLC根据这些仿真中I/O信号作为反馈,然后发信号给机器人控制器运行其它机器人程序,PLC同时也输出I/O信号让PC端的数据采集模块进行采集,数据采集模块采集完成之后进行数据解析;
工业嵌入式触摸屏,该设备与PLC连接,其输出机器人控制信号给PLC,信号包括机器人启动、停止、运行和复位信号,然后PLC发送I/O信号给机器人控制器运行机器人程序,该设备的输入为PLC反馈的状态信号,接收信号后屏幕上将会对工业机器人***中的状态信息进行显示;
数据采集模块,该模块与工业机器人***、PLC、交互界面模块和Redis数据库模块连接,与工业机器人***的连接部分,其输入为机器人控制器发送的关节数据,该模块会将采集到的关节数据解析;与PLC的连接部分,其输入为PLC的I/O信号,然后对信号进行解析,该模块同时也将仿真中I/O信号输出到PLC,PLC再发送信号给机器人控制器运行其它机器人程序;与交互界面模块的连接部分,其输入为配置文件中工控设备的IP地址、信号的虚拟键名、I/O地址和信号名,根据IP地址和I/O地址信息来实时采集所连接工业机器人***的关节数据及PLC的I/O变量数据,一个线程负责将数据写入Redis数据库模块,另一个线程将数据读出并输出到交互界面模块,交互界面上将会实时显示数据,数据采集模块停止采集时,在交互界面的模块界面上能够修改设备IP地址、虚拟键名、I/O地址和信号名,这些修改会同步到配置文件中,数据采集模块再次启动时会重新匹配信息进行采集;与Redis数据库模块的连接部分,虚拟键名用来标识每条数据,该模块通过Redis序列化通信协议将采集到的关节数据及设备的输入输出信号序列化之后存储到Redis数据库模块,同时也读取Redis数据库模块中虚拟设备的输入输出信号反序列化后写入到PLC,读取关节数据、设备输入输出信号反序列化后输出到交互界面模块进行实时显示;
交互界面模块,该模块与数据采集模块连接,其输入为数据采集模块从Redis数据库实时读取的关节数据及I/O变量数据,接收数据后同步显示到交互界面上,交互界面模块上创建和修改的IP地址、虚拟键名、I/O地址和信号名将会写入配置文件,数据采集模块启动之后会匹配配置文件中更新的信息进行数据采集,交互界面模块还能对输入输出信息列表中的I/O信号进行强制,同时也能取消强制;
Redis数据库模块,该模块与数据采集模块和仿真模块连接,与数据采集模块连接的部分,其输入为数据采集模块通过Redis序列化通信协议发送的关节数据、设备输入输出信号,序列化之后存储到键值中去,数据采集模块同时读取Redis数据库虚拟仿真设备的输入输出信号,反序列化之后写入PLC;与仿真模块的连接部分,其输入为仿真模块中机器人的状态信号及传感器的信号,通过Python脚本程序将数据序列化之后写入Redis数据库模块,Python脚本程序通过Socket与仿真模块通信连接,读取Redis数据库中关节数据及设备输入输出数据,驱动仿真模块中的虚拟设备,使机器人完成喷涂、打磨及搬运工作;工控设备及仿真模块中的输入输出信号都存于Redis数据库中,通过读写Redis数据库完成虚拟和实际控制设备的数据交互;
仿真模块,该模块与Redis数据库连接,其输入为Python脚本程序读取的Redis数据库模块的关节数据、设备输入输出数据并,这些数据序列化后将会驱动仿真模块中的虚拟设备,使机器人完成喷涂、打磨及搬运工作,同时,仿真模块中虚拟设备的输入输出信号会通过Python脚本程序序列化后写入到Redis数据库中;新建的同类型工控设备插件仅通过拷贝即可实现重用,具有高度可重用性;
所述的PC端的数据采集模块和交互界面模块,集成于基于OSGI.NET插件框架的iOpenWorks平台,工业机器人***和PLC都有各自的PC端插件,功能都被封装到插件中,每一个设备插件都有数据采集模块和交互界面模块,因此每个设备插件可以独立开发、测试和部署;每一个工控设备插件模块都可被动态安装、启动、停止和卸载,具有热插拔性和动态性;数据采集模块的功能集成于插件中,每个工控设备的数据采集互不干扰,提高了数据传输的正确性;交互界面模块集成于插件中,每个工控设备都有自己的交互界面,可以根据需求来布局页面,避免了功能都集成于同一界面,降低了交互界面设计的复杂性;根据***需求能够选择合适的工控设备插件来进行虚拟调试,提高了***的灵活性。
本发明的优点和积极效果是:
首先该***PC客户端基于iOpenWorks平台开发,工控设备操作以插件的形式存在,工控设备插件能够独立开发、测试和部署;每个工控设备都有数据采集模块,数据采集之间互不干扰,提高了数据采集的正确性;具有人性化的操作界面,能够方便地配置IP地址、端口号和创建I/O信号列表,并显示关节数据和I/O变量数据,实现了数据的实时监控;PC客户端通过以太网和工控设备进行通信连接,建立连接方便,数据的传输高速稳定;采用了Redis数据库以key-value的形式对数据进行了缓存,实现了工控设备与仿真软件的实时***互,又易于查看和管理数据;通过PC客户端使工控设备和仿真模块进行数据交互,完成了虚实融合。
本发明中PLC与工业机器人***通过Mudbus TCP进行通信连接,并与工业嵌入式触摸屏接在同一交换机中,这些设备占用面积小,能够放置在普通的办公桌面进行调试,不需要真实机械臂,仿真软件里构建工作现场的模型与工控设备进行信号交互,模拟真实的工厂制造流程。相对于一般的工厂制造和产品装配等,本***节省了时间,几天内就能在办公室完成全部机器人及PLC逻辑检查,缩短了现场调试时间;降低了成本,减少现场团队出差时间及差旅费,并且部分设备能够用仿真模型替代;提高了工作质量,同一个团队可以处理所有任务、无任务交接问题、所有可能的检查在启动前即可完成及产品在客户面前将更可靠;降低了风险,在现场调试机器人等设备的时候,操作不慎就会发生意外,办公室调试不存在风险问题。同时本***还加入了PC客户端进行了控制,实现了工控设备的数据采集和解析,并且具有交互式界面,能够实时的显示机器人关节数据、机器人I/O变量状态及PLC的I/O变量状态,有效的进行了数据信息监控。PC客户端还与Redis数据库相连接,仿真软件通过Python程序与Redis数据库连接,实现了工控设备与仿真模型的交互,同时高性能的Redis数据库又让数据交互具有实时性。因此,一个团队中只需要PLC工程师、机器人工程师及仿真工程师在办公室编写程序及制作模型,然后通过PC客户端进行虚实交互,几天就能够在办公室完成工作现场的制作流程并验证产品的可行性。由于PC客户端基于iOpenWorks平台开发,极具扩展性,可以根据工作现场的设备,简单轻松地制作新的工控设备插件,然后启动相应的工控设备插件进行虚拟调试。
附图说明
图1为本发明的平台组成示意图。
图2为本发明的控制原理框图。
图3a~图3d为本发明的PC客户端交互界面图,其中图3a是插件管理界面;图3b是PLC配置IP界面;图3c是PLC添加信号界面;图3d是机器人配置IP和虚拟键名界面。
具体实施方式
以下结合附图对本发明做进一步详述。
一种基于iOpenWorks的虚拟调试***,如图1所示,平台组成主要包括PLC模块1、机器人控制器2、机器人示教盒3、工业嵌入式触摸屏4、交换机5、PC客户端6和仿真软件7。PLC模块1、机器人控制器2、机器人示教盒3和工业嵌入式触摸屏4一起使用网线接入交换机5中,其中PLC模块1与机器人控制器2和工业嵌入式触摸屏4都采用Mudbus TCP协议进行通信连接,机器人示教盒3负责选择机器人程序和查看I/O变量数据,工业嵌入式触摸屏4负责发送信号给PLC模块1;PC客户端6和仿真软件7安装在的电脑上,PC客户端6在PLC模块1和机器人控制器2的交互界面上配置连接的IP地址,然后创建需要采集的信号列表,启动采集之后,PC客户端6将会实时采集创建信号列表中PLC模块1的I/O变量数据和机器人控制器2中的关节数据,这些数据会显示在PC客户端6的交互界面上,同时也存储在Redis数据库中;仿真软件中的Python程序启动后,将会实时采集Redis数据库中存储的机器人控制器2中的关节数据及设备输入输出数据来驱动仿真软件7中的机器人模型进行喷涂、打磨及搬运,同时机器人模型驱动过程中也会将一些虚拟设备输入输出信息通过Python程序存储到Redis数据库中,由PC客户端6进行采集输入给PLC模块1,这样虚实结合,工控设备PLC模块1、机器人控制器2和仿真软件7中的模型进行了数据交互,达到了虚拟调试的效果。
结合图2和图3,本发明专利的具体实施方式如下:
PC客户端、Redis数据库和仿真软件安装在电脑上,按照对图1的描述搭好虚拟调试平台后,即可进行虚拟调试操作。
1)工业机器人***,采用KEBA工业机器人,包括KEBA机器人控制器和示教盒,由NDR-240导轨型电源供应器进行+24V的供电,将机器人程序利用CF读卡器载入到CF卡中,然后将CF卡装载到机器人控制器中,由机器人示教盒选择相应的机器人程序;与PLC和工业嵌入式触摸屏接入同一交换机下的局域网中,连接成功之后,KEBA工业机器人将和PLC进行Mudbus TCP通信连接,同时PC客户端的数据采集模块将采集关节数据。
2)PLC,采用SIMATIC S7-1200,由NDR-240导轨型电源供应器进行+24V的供电,利用TIA博途软件将PLC程序下载到PLC,PLC与工业机器人***和工业嵌入式触摸屏接入同一交换机下的局域网中,PLC与工业嵌入式触摸屏进行Mudbus TCP通信连接,接收工业嵌入式触摸屏的手动触发的机器人喷涂、搬运及打磨信号,然后PLC中触发条件发送信号给机器人控制器,执行运动的程序;PLC与工业机器人***进行Mudbus TCP通信连接,PLC决定工业机器人的运动时间,同时PC客户端的数据采集模块采集PLC的I/O变量数据。
3)工业嵌入式触摸屏,采用昆仑通态TPC1061Ti触摸屏,由NDR-240导轨型电源供应器进行+24V的供电,利用昆仑通态组态软件将组态程序下载到工业嵌入式触摸屏中,与PLC和工业机器人接入同一交换机下的局域网中,与PLC进行Mudbus TCP通信连接,通过按触摸屏上的启动、停止、喷涂、打磨和搬运按钮,信号将会传递给PLC,PLC中的I/O变量变化然后发送I/O信号给机器人控制器,执行触摸屏所给的动作,PLC也会将I/O信号反馈给触摸屏,触摸屏上显示机器人的运动状态。
4)数据采集模块,通过以太网与PLC和机器人控制器进行连接,打开PC客户端的插件管理界面,如图3a所示,选择机器人插件和PLC插件并且点击启动,插件将会出现在左侧的任务栏中,进入交互界面,数据采集模块将会读取配置文件中的设备IP地址、虚拟键名、I/O地址和信号名,将这些信息加载到交互界面上,点击交互界面上的启动按钮之后,数据采集模块将会根据IP地址、I/O地址,一个线程负责读取机器人控制器中的关节数据和PLC中的I/O变量数据并且存入Redis数据库模块,同时显示在交互界面上,另一个线程再结合虚拟键名读取Redis数据库模块中的虚拟设备的输入输出数据并且写入PLC。
5)交互界面模块,如图3b所示,打开PLC设备插件的交互界面,点击配置按钮,输入需要连接的目标PLC的IP地址;如图3c所示,在输入输出表中右击菜单中选择“添加”,填入Redis数据库虚拟键名、信号的地址、信号名备注和当前值,确认无误后表中将会添加一条输入或输出的信号,此时配置文件和Redis数据库中也会创建交互界面添加的键值对,数据采集启动后,会根据配置文件中的最新的信息来进行读写PLC和Redis数据库,同时将I/O变量的值实时更新到交互界面上;如图3d所示,打开机器人设备插件的交互界面,点击配置按钮配置目标工业机器人***的IP地址、关节虚拟键名,确认无误后配置文件和Redis数据库中也会创建关节数据的键值对,数据采集启动后,会根据关节虚拟键名采集机器人控制器中的关节数据并存入Redis数据库,同时将关节数据值实更新到交互界面上。
6)Redis数据库模块,***中的PLC的I/O数据、机器人关节数据和虚拟设备的输入输出数据都以key-value键值对的形式存储到Redis数据库中,其中value的数据类型为String字符串,数据采集模块通过将采集到的关节数据、I/O变量数据序列化之后存储到Redis数据库,然后由Python脚本程序读取这些数据并反序列化,通过Socket发送到仿真模块中,来运行仿真模块中机器人和传感器;Python脚本程序读取仿真模块中设备的输入输出数据序列化之后存储到Redis数据库中,然后数据采集模块采集这些数据并进行反序列化,最后写入到PLC中。
7)仿真模块:采用RoboDK仿真软件,在RoboDK仿真软件中建立工业机器人模型和工业机器人运行环境,从而模拟整个***的真实工作环境,通过执行Python脚本程序,首先与仿真模块建立Socket通信连接,然后与Redis数据库连接并读取关节数据和设备输入输出数据序列化后来驱动机器人,完成喷涂、打磨和搬运工作;仿真模块中工业机器人模型的状态信息和传感器信息也会通过Python脚本程序反序列化之后存储到Redis数据库中,让数据采集模块读取并发送给PLC,PLC触发条件并发送信号给机器人控制器,根据机器人状态信息和传感器信息来执行其它机器人程序。
以上是整个***的控制情况,PC客户端的交互界面模块的存在,让操作变得简单方便并且还能实时监控数据信息,Redis数据库的存在,让数据的传输更加具有实时性,RoboDK仿真软件中模型的运动更加的平滑,工控设备和仿真模型之间的数据更加具有交互性。
本说明书实施例所述的内容仅仅是对发明构思的实现形式的列举,本发明的保护范围不应当被视为仅限于实施例所陈述的具体形式,本发明的保护范围也及于本领域技术人员根据本发明构思所能够想到的等同技术手段。