基于Unity3D的PLC教学实训平台研究

时间:2022-08-10 10:48:12

基于Unity3D的PLC教学实训平台研究

摘要:针对各高等院校PLC教学实训平台的不足,为满足学生在各种应用场所都能调试PLC程序的需求,应用虚拟现实技术,开发了一个PLC半实物虚拟仿真实训平台。平台由可编程控制器、通信模块和虚拟场景组成,采用3Ds Max对场景和设备进行建模,V-Ray渲染器对模型进行渲染,通过Unity3D三维引擎开发平成虚拟场景构建,通过通信模块实现PLC与虚拟场景的通信。经过多个虚拟场景的控制实验测试,平台可稳定运行。学生能够实时高效地编写并调试程序,直观感受被控对象的运行,增强现场体验感,加深对PLC的认识,降低了同程度下的教学成本。

关键词:虚拟现实;PLC;实训平台;Unity3D

DOIDOI:10.11907/rjdk.161661

中图分类号:TP319

文献标识码:A文章编号:16727800(2016)010011104

0引言

PLC是集自动化、计算机、通信3种技术于一体的高科技产物。随着科技的不断发展,急需大量熟练应用PLC的人才[1]。不容忽视的是调试程序环节在PLC控制系统的设计与应用中至关重要。目前,PLC的传统教学方式主要有3种:①通常PLC编程软件会提供仿真调试功能用来调试程序,学生编写程序并下载到PLC中,并观察输出端口状态验证程序,由于缺少实际被控对象,无法直观感受被控对象的执行效果;②现有的PLC专用实验平台控制模式多样化,实验生动形象,但费用较高,设备更新困难,维护需请专业人员[2];③现场实操,直接在实际控制系统中调试程序,效果显著,但具有很大的危险性,并且现场实操需要一定的硬件设施,倘若设施不完备,实训教学将不能正常开展[3]。

针对PLC传统教学存在的问题,基于集模拟性、沉浸性、交互性于一体的虚拟现实技术,设计了基于Unity3D的PLC半实物虚拟仿真实训平台。利用三维模型搭建、三维交互设计、通信模块设计等技术为学生提供了一个直观、经济、安全、高效的PLC学习环境,成本低、易维护、可扩展性强。通过该平台学生可以实时地编写并调试程序,动态分析各种被控对象的执行效果,加以真实的环境音效,增强现场体验感,激发学习兴趣,提高学习效率。同时减少了同程度下的教学成本,避免了设备损坏,保障了人身安全,具有较高的经济性和安全性。

1虚拟仿真实训平台总体框架

1.1半实物仿真

半实物仿真(semiphysical simulation)又称硬件在回路仿真,是将数学模型与物理模型或实物模型相结合进行实验[4]。保证实时性是硬件在回路仿真的关键,仿真平台的实物部分与仿真部分之间的接口设计也尤为重要。例如本平台中实物PLC和三维虚拟场景之间数据的转换和传输需要通信接口来完成。

通常情况下有两种方式可以实现半实物仿真平台设计:①将PC机作为控制器,被控装置作为实物部分放置在仿真平台的回路中;②控制器(如PLC)为实物,被控装置通过建立数学模型来实现[5]。针对PLC虚拟仿真实训平台的特点,本文选用第二种方式来设计半实物仿真平台。以PLC控制器为实物,建立被控装置三维模型,通过观察虚拟场景的执行状态来调试PLC程序。

1.2虚拟现实技术

虚拟现实(Virtual Reality)又称灵境技术,利用三维图形生成技术、多传感交互技术等模拟实际三维空间,让使用者如身临其境一般在视觉、听觉、触觉上感受虚拟场景[68]。例如本实训平台中的PC机虚拟场景,利用动态环境建模、三维交互设计、虚拟传感器以及系统集成等技术来完成PLC虚拟仿真实训平台的构建。

1.3实训平台总体设计

PLC虚拟仿真实训平台主要由PLC、PC机虚拟场景和通信模块组成。PLC发出真实控制信号,通过通信模块传输给PC机,此外PLC接收虚拟场景输出的虚拟传感信号。PC机虚拟场景采用3Ds Max和Unity3D设计,显示被控对象各种运行状态。通信模块主要是虚拟现实数据接口,本系统利用单片机来完成PLC与计算机之间数据的转换与传输。平台整体设计如图1所示,具体的数据流图如图2所示。PLC输出控制信号通过虚拟现实数据接口传送到Unity3D虚拟场景,虚拟设备根据接收到的虚拟控制信号来模拟实际设备的运行效果。运行过程中,Unity3D中的虚拟传感信号经过通信模块传送给PLC,PLC接收到信号后检测虚拟设备的运行情况并发出控制信号进行相应的调整,实现虚拟仿真实训平台的正常运行。

2PLC实训平台开发

PLC虚拟仿真实训平台开发主要包括三维模型搭建、交互开发、理论测试模块、硬件平台开发4部分。

2.1三维模型搭建

模型与场景搭建是设计一个虚拟现实平台的必要前提[9],PLC虚拟仿真实训平台使用几何建模和物理建模来创建三维模型。当前有许多三维建模软件,比如3Ds Max、CATIA、UG等,其中3Ds Max具有很多插件,操作灵活、运行流畅、性价比高、模型制作容易上手,故采用3Ds Max软件进行建模。为增强真实感,需到工艺现场收集相关资料(比如设备照片、尺寸、声音等)作为标准来建立设备模型。建模时要尽量使各模型在外形、尺寸上与工艺现场相一致[1011]。

交互系统的真实度和流畅性对于用户体验都非常重要。模型越精细就越真实,但生成的数据量就越大,影响系统运行的流畅性,从而降低用户体验。因此,要对模型进行优化:①建模过程中在不影响整体效果的情况下尽量减少模型面数,删除看不见的面和重叠的面,另外尽量减少运用布尔命令以减少面的个数,避免计算错误[12];②将现场采集的照片经过Photoshop处理赋给模型,既能增加真实感又可以减少多边形的数量,达到简化模型的目的;③利用LOD(Level of Detail)技术,即细节层次模型,在不同层次、不同视觉条件下,为每个物体建立不同精细程度的模型,当物体离视点远时就调用相对简单的模型,而近距离观察时调用相对复杂的模型(这样可以在逼真性和速度之间达到均衡),以提高场景的显示速度[13]。模型优化处理后,需将模型位置复制到世界坐标系原点,然后利用V-Ray渲染器进行烘焙渲染,并导出“.fbx”格式文件。

2.2交互开发

3Ds Max软件中建立的模型是静态的,要达到更好的教学效果,还需要为系统提供交互功能。为方便学生多视角观察被控对象,利用多方位相机实现视角的切换,并添加User Input模块,双击该模块选择“鼠标右键按下”选项,再将该模块连接到ExpressionValue模块下,把ExpressionValue的表达式改成“A*B*C”,避免相机随鼠标晃动,方便控制视角。添加碰撞检测(Collision Object)模块,避免行走相机因受重力作用下落穿过设备进入设备内部。

PC机接收到的数据利用Unity3D中的虚拟模型Transform下Parent属性来控制模型的移动、旋转等运动,主要通过Translate和Rotate函数实现。对于一些无规则物体(例如水),不能使用常规方法建模,可利用粒子发射系统Particle System实现。通过Particle System通道为粒子设置合适的材质和贴图,通过ReceiveData和DealData判断单片机缓冲区数据后,在物体数据的顶点上通过循环发射粒子来模拟。为了增强沉浸感,需到现场采集真实声音,并以3Dsound的形式导入Unity3D来模拟工艺现场的声音。

Unity3D串口接收使用多线程和数据池的设计模式,采用数据结构队列避免线程阻塞。其中Unity3D利用C#命名空间System.IO.Ports中的SerialPort类来接收数据[14]。在Start函数内实例化一个SerialPort类sp串口,并设置串口号为COM2、波特率为9 600、数据位为8、校验位为IO.Ports.Parity.None、停止位为IO.Ports.StopBits.One[15],与下位机串口保持一致[1516]。通过Thread函数开启一个线程ReceData接收数据帧。在RecData线程内通过sp的Read函数循环读取缓冲区数据,并将结果传送给数组buf进行判定。若buf长度为0直接返回,若不为0将数据赋予UserData。虚拟场景按照UserData的数值控制虚拟设备的运行。在系统退出时利用Close函数关闭串口,以免下次启动因串口无法打开而影响系统正常运行。RecData内部处理程序和关闭串口程序如下:

2.3理论测试模块

理论测试模块主要用来测试学生对PLC理论知识的了解程度,其设计主要包括UI和Access数据库两部分。其中,UI用于向学生呈现测试内容及结果,Access数据库用于标识管理员(如教师)和学生信息、录入试题库、随机抽取试题、展示测试结果。创建数据库文件database.accdb,并建立管理员表AdminTable、学员表UserTable、试题库表QuestionTable(创建部分试题和对应答案)。管理员可按课程安排选择实训内容和理论测试题,并且有更新试题库的权利,学员表由学生自行注册添加。学生登录后点击“开始测试”,系统随机抽取试题并形成试卷,答题结束后,系统通过和正确答案对比判定成绩。最后将理论测试模块为“.exe”文件,Unity3D利用System.Diagnostics命名空间的Process类调用理论测试模块。其中连接数据库程序和试卷读写部分程序如下:

2.4硬件平台开发

PLC作为主控制器选择性能优良、性价比高、应用广泛的西门子S7-200CPU224XP可编程控制器,集成了14点输入/10点输出共24个数字量I/O。通信模块的主要部件选用STC12C5A60S2单片机,它是PLC和虚拟场景之间的通信桥梁。单片机和PLC之间电气连接,单片机需要5V和24V电压,PLC需要220V电压,单片机和PC机利用RS-232串口通信实现信号传输。图3是通信模块内部结构图[17],PLC输出控制信号,经过单片机数模转换器ADC转换成数字量,再由输入输出端口DIO传给PC机的虚拟场景,控制虚拟设备运行。虚拟传感器信号通过System.IO.Ports和单片机将运行数据反馈给PLC,实现系统的闭环控制。单片机通过循环检测PLC的输出信号并将数据传给缓冲区,再通过串口通信将数据送往PC机,虚拟现实系统判断接收到的数据控制虚拟设备完成相关运行。Unity3D中的虚拟传感信号经电平转换电路转换成TTL电平后传送给单片机,通信模块传送给PLC,PLC接收到信号后检测虚拟设备的运行情况并发出控制信号进行相应调整,实现虚拟仿真实训平台的正常运行。

3虚拟仿真实训平台实验测试

PLC虚拟仿真实训平台功能结构如图4所示,为测试平台是否可行,以恒压供水系统和燃气锅炉系统为例,利用虚拟现实技术搭建虚拟场景,正确连接PLC、通信模块、PC机虚拟场景,将Unity3D软件中建立的虚拟现实系统成“.exe”格式并运行,调试PLC程序,并记录部分效果图。

3.1恒压供水系统

依照变频器工作过程,在3D场景中虚拟变频器运行模式,对频率的上下限进行设置。PLC进行逻辑控制,传感器采集管道内压力,经过PLC的PID运算后,由变频器进行水泵速度凋节;同时PLC控制水泵切换,实现恒压供水的自动调节,虚拟视景则全方位展现恒压供水系统的工作流程。图5为系统运行效果,此时系统状态为“频率超限,1#水泵由变频转工频运行”,PLC启动2#水泵变频运行,形成反馈。

3.2燃气锅炉系统

PLC发出控制信号,单片机通过循环检测PLC的输出信号并将数据传给缓冲区,再通过串口通信将数据送往PC机,虚拟现实系统判断接收到的数据控制虚拟设备完成相关运行。Unity3D中的虚拟传感器负责检测进水量、温度、氧浓度等数据,并将数据即时传送给单片机。单片机将数据处理后送给PLC供PLC检测分析,检测虚拟设备的运行情况并发出控制信号进行相应调整,从而控制虚拟燃气锅炉的稳定运行。图6为燃气锅炉系统点火果。

3.3理论考试结果

使用学号登录进入理论测试模块,点击“开始测试”按钮,系统随机抽取试题形成试卷。试卷包含50道选择题,每题2分,共计100分,答题时间为30分钟。答题结束后,点击“提交答卷”按钮,测试结束,系统给出判定结果。若规定时间内仍未答完,不能继续作答,考卷将自动提交。系统判定的测试结果如图7所示,显示本次测试成绩以及近最近5次的测试成绩。

4结语

测试结果表明,基于Unity3D的PLC虚拟仿真实训平台运行流畅,为学生进行PLC学习提供了一个直观、经济、安全、高效的环境,解决了部分院校PLC实训平台欠缺的教学难题。通过该平台学生可以快速、准确地编写并调试程序,动态分析各种被控对象的执行效果,同时能更多地了解各种工艺的工作流程,加上真实的环境音效,可增强现场体验感,激发学习兴趣,提高学习效率。同时减少了同程度下的实训教学成本,避免了现场实操的设备损坏和安全隐患,具有较高的经济性和安全性。

将此平台作进一步改善,考虑利用以太网技术使其实现远程实验[1820]的功能,让学生不仅能在实验室使用,只要能联网的地方(如教室、宿舍)均能使用,达到方便学习和充分利用资源的目的;同时考虑加入先进的三维投影技术进行三维立体化展示,增强沉浸感。进一步完善实训平台,实现智能化,如在实训中自动判断并记录学生练习过程,根据个人的学习情况自动调整学习进度和学习内容等。

参考文献参考文献:

[1]王啸东.PLC虚拟实验室的研究与建设[J].实验室研究与探索,2012,31(9):210213.

[2]曾洋.PLC仿真实验平台研究[D].杭州:杭州电子科技大学,2011.

[3]袁云龙.基于组态软件的PLC控制系统仿真实现[J].自动化仪表,2006,27(5):5758,61.

[4]黄建强,鞠建波.半实物仿真技术研究现状及发展趋势[J].舰船电子工程,2011(7):57,25.

[5]吴家铸,党岗,刘华峰.视景仿真技术及应用[M].西安:西安电子科技大学出版社,2001.

[6]周凯,韩芳.虚拟现实仿真在《过程控制》课程教学中的应用[J].软件导刊,2015,14(9):192194.

[7]李强,宓超,王晨星,等.基于虚拟现实技术的沉浸式PLC控制程序的半实物仿真系统[J].中国工程机械学报,2013,11(1):4145.

[8][美]GRIGOREC.BURDEA,[法]PHILIPPECOIFFET.虚拟现实技术[M].魏迎梅,栾悉道,译.北京:电子工业出版社,2005.

[9]杨克俭,刘舒燕,陈定方.虚拟现实中的建模方法[J].武汉理工大学学报,2001,23(6):4750.

上一篇:长龙100,来电了! 下一篇:通往善良的距离