摘要:针对“现代电气控制技术”课程中可编程逻辑控制器(Programmable Logic Controller,PLC)教学实训条件存在高投入、高风险等问题,文章提出一种应用Unity 3D开发的“现代电气控制技术”课程的虚拟仿真实训系统,旨在帮助机电类学生学习“现代电气控制技术”课程时进行PLC梯形图编程实训。该系统能支持虚实结合和纯虚拟化两种实训模式,同时还能和实际的实训设备共同构成数字孪生模型。文章介绍了该虚拟仿真实训系统配合真实PLC或虚拟PLC进行编程实训的方法和该虚拟仿真实训系统的开发步骤以及应用的情况。经实际使用,该系统具有较好的应用价值。
关键词:虚拟仿真;PLC;虚实结合;数字孪生
中图分类号:TP393""文献标志码:A
0"引言
“现代电气控制技术”课程是高职机电类专业的一门核心课程,学生在该门课程中学到的可编程逻辑控制器程序设计能力非常关键,对学生后期岗位实习及工作起着至关重要的作用。然而,学生学习可编程逻辑控制器编程的被控对象(如机电一体化设备或生产线)价格贵,体积大,一般安装在固定的实训室,学生若要实训必须在实训室才能进行;学生虽然可以利用PLC的编程软件练习编程,但是不能直观看到被控对象的执行动作,不知道程序是否正确。随着虚拟现实技术的发展,学生可以利用虚拟现实技术虚拟化实训设备,结合各PLC厂家提供的虚拟PLC进行纯虚拟的实训,从而实现虚拟实训和虚拟教学。此方法可打破传统教学必须在实训室中进行的束缚,让学生在任何时间和地点,只要有电脑即可进行实训,从而增加学习的灵活性,有利于实现线上教学和学习。除此以外,还可以使用PLC实物结合虚拟设备实现半实物半虚拟的虚实结合实训,降低实训设施的投入。
经过实际应用,学校利用虚拟现实技术实现设备的数字孪生系统用于教学,能够大大提高学生自主学习积极性和兴趣,有效防止学生在操作不熟练的情况下进行实训对设备带来损坏和降低对自身安全的风险,同时能解决设备投入高、数量不足的问题,有效增加学生实训的时长,提高教学质量。
近年来,很多学者进行了虚拟实验或实训方面的研究,在智能制造领域实现数字孪生,如:陈立[1]开发了基于Unity 3D和AR技术的虚拟实验室系统,王佩玉等[2]提出了一种基于Unity 3D配合三菱虚拟PLC实现了生产线跨平台的虚拟调试系统设计方法,孙国锋等[3]利用Unity 3D上位机平台搭建了组合称模型,实现数字孪生。宫瑞哲等[4]利用数字孪生理论搭建堆垛机的数字孪生模型,实现多层次的监控与运维;赵永信等[5]利用西门子机电概念设计软件MCD对气动机械手进行概念设计并利用虚拟PLC和TCP实现通信对气动机械手的模型进行虚拟仿真调试,蔡文站等[6]利用西门子机电一体化概念设计软件MCD和TIA软件设计了机器人打磨联合虚拟调试系统,通过OPC UA协议同硬件进行通信实现软/硬件联合虚拟调试,严惠等[7]基于MCD机电一体化概念设计软件,利用KEPServerEX6 OPC服务器和SignalR即时通信技术设计了柔性生产线数字孪生的FMS运维监控系统,欧阳曙光等[8]利用Unity 3D开发了交互式化工虚拟仿真实习平台,用于演示设备结构和工作原理,以及操作培训和考核,李能菲等[9]利用RobotStudio软件实现了工业机器人自动生产线工作站的虚拟仿真教学。
从以上的情况分析可知,目前,在虚拟仿真实验实训和虚拟调试方面,一般都是基于Unity 3D、西门子MCD以及各类CAD软件或者专门开发的虚拟软件,实现各类设备的动作、场景模拟等。其中,西门子MCD除了能实现各类设备的物理特性及动作模拟外,还能够通过传感器设置与外部控制设备如PLC等实现电气与机械的联合仿真,具有工程属性,但MCD软件是在西门子UG NX建模软件的基础上集成了机电一体化概念设计模块,该软件不能单独运行,安装包巨大,运行环境对计算机性能要求较高。该软件为商业软件,价格不菲,不利于推广应用,而其他的仿真模式在电气控制方面的仿真能力存在欠缺,特别是不能很好地解析PLC梯形图程序。因此,文章提出一种基于Unity 3D和虚拟PLC联合开发设备数字孪生系统(虚拟设备),配合PLC编程软件实现电气控制系统编程实训的虚拟仿真资源开发方式。同时,该虚拟设备也能作为真实PLC的被控对象,实现虚实结合的虚拟仿真方式。本文以学校现有PLC实训室的气动机械手实训台为蓝本,开发了其数字孪生虚拟仿真实训资源,用于学生PLC程序设计实训的拓展训练资源。经测试,该系统能很好地用于学生实训,提高学生程序设计能力。
1"系统介绍
本虚拟仿真实训系统是基于Unity 3D按照PLC实训室的气动机械手实训平台1∶1开发的数字孪生虚拟仿真实训平台,可替代电气控制系统的被控对象,和实际被控对象具有相同电气响应特性。该系统包括一台气动机械手、各类工控按钮和指示灯等,界面如图1所示,能够满足学生学习“现代电气控制技术”课程的各类基础编程训练。
1.1"虚拟仿真实训系统的参数配置
本虚拟仿真实训系统实现了被控系统的虚拟化,能够被PLC等控制系统控制。软件设置了相应的参数配置窗口,包括工控按钮和工控指示灯的IO地址、气动机械手的各传感器、控制电磁阀的IO地址以及控制系统的IP地址等。用户点击下方蓝色的三角箭头,会弹出各类手动控制按钮及配置按钮,点击配置按钮即会弹出各IO地址的配置对话框如图2所示,用户可根据提示输入传感器及控制器的IO地址等信息,此信息需要和PLC程序中使用的地址相对应,若用户需要虚实结合调试或实现和实际被控对象构成数字孪生系统,则虚拟仿真系统和真实系统的配置必须一致,同时需要注意的是,由于按钮等输入装置,在实际设备中是连接的PLC输入端口,该端口为只读,在软件中无法控制,因此虚拟设备中的按钮不能设置为输入端口,需要使用中间继电器作为虚拟设备中按钮和传感的地址,因此在编写PLC程序时,需要对IO地址利用中间继电器进行中转。
1.2"虚拟仿真实训系统的实训方法
本虚拟仿真实训系统可以配合西门子、三菱等厂家的虚拟PLC实现纯虚拟编程实训,也可以配合真实PLC,以本软件为被控对象实现编程实训,提高学生的PLC程序编制能力。在此分别以西门子虚拟PLC(PLCSIM ADV)和真实PLC为例介绍其实训方法。
1.2.1"配合西门子虚拟PLC(PLCSIM ADV)实现程序的调试
传统的PLC编程实训,一般使用的是真实的PLC和真实的被控对象,通过PLC编程软件编制梯形图等程序,下载到PLC中实现对被控对象的控制,观察其响应是否符合预期,从而判断程序的正确性。本文所开发的虚拟仿真实训系统就是为了替代真实的被控对象,用户只需要电脑就可以实现PLC编程实训,其实训整体架构如图3所示。
西门子PLC的编程软件一般采用博途(TIA),为了实现虚拟调试,还需要使用西门子虚拟PLC软件(PLCSIM ADV),该软件可以实现PLC的所有功能,通过相应的协议能和外部设备进行通信,而本文所开发的虚拟仿真实训系统,通过以太网与虚拟PLC进行交互,从而实现相应的控制。
用户在虚拟仿真实训系统中设置好虚拟PLC的IP地址,根据任务规划好各传感器、控制阀等输入输出点的地址,此地址信息必须和梯形图中应用的地址一致(设置方法与真实设备编程流程和方法一致)。根据任务要求在TIA中进行PLC梯形图的编制,完成程序编制后,将PLC程序下载到虚拟PLC中,启动虚拟PLC的运行,虚拟仿真实训系统通过以太网和虚拟PLC进行通信,获取相应的控制信息,驱动虚拟模型进行相应的动作,同时对虚拟模型的操作信息,也通过网络反馈到虚拟PLC,从而根据编制的程序做出相应的反应。
1.2.2"配合真实PLC实现程序的调试
为了能更接近真实设备的调试效果,除了使用纯虚拟的仿真实训外,学生还可以采用虚实结合的方式进行实训,即被控对象采用本文所述的虚拟仿真实训系统,而PLC采用真实的PLC,通过TIA软件编写梯形图程序,直接下载到真实PLC中,使梯形图程序在真实环境中执行,相应的控制指令通过网络和虚拟仿真实训系统进行交互,从而对编写的梯形图的正确性进行测试。其架构如图4所示。
采用本方法,运行环境为真实设备,能清楚掌握真实PLC运行时的状态,更加明确真实PLC与各类被控对象的网络连接,但是此方案也因此限制了实训的地点并提高了设备的投入。
2"虚拟仿真实训系统的开发
本虚拟仿真实训系统的主要目的是实现一个能替代被控对象的虚拟设备,通过此设备解决传统PLC编程课程的教学和实训中对硬件设备的依赖,解决相关课程实训设备投入高、占地面积大、学生实训不便的问题。
2.1"设计开发步骤
虚拟仿真实训系统的设计一般包括以下基本的步骤。
第一步是根据专业实训课程体系,相关专业授课教师讨论在实训教学过程中存在的高投入、高损耗、高风险问题,分析确定哪些实训课程对应的问题可利用虚拟仿真技术解决,进而讨论确定需要开发的虚拟仿真实训项目。
第二步是在前期确定开发的实训项目基础上,开发团队进一步讨论该项目可以采用哪些技术,模拟什么样的具体场景或设备,需要应用什么样的虚拟仿真设备来支持,比如是使用计算机软件还是VR软件,需要根据不同项目的特点选择不同的载体,比如:各类拆装类实训,选择沉浸式操作体验的VR软件较好,而对于一些编程训练类的实训则采用计算机类软件较好。
第三步是根据需求,针对某一特定的实训设备进行软件开发。首先根据特定设备进行1∶1建模,导入3D开发引擎,构建模型中各部分的父子关系,添加灯光、纹理、合适的场景等效果,使软件环境更加具有科技感和真实感,提高学生实训的兴趣。然后,根据设备的运动和电气特性,利用脚本实现相应的功能,使虚拟仿真设备在接收到控制器的控制信息后,能做出和真实设备相同的响应。同时,虚拟仿真设备还应能记录用户实训过程中存在的问题,向虚拟仿真实训共享管理平台进行反馈,以便教师能获知学生在实训过程的信息统计数据,在后续的教学中加以改进或强调,从而提升教学效果。
2.2"开发过程
由于本虚拟仿真实训系统针对机电设备使用PLC控制的电气响应,模型主要为各类机械结构。因此,系统的模型主要采用SIEMENS UG NX、SolidWorks等三维建模软件完成模型的构建,这些三维软件的文件格式无法直接导入Unity 3D软件使用,因此将设计的三维模型文件转成STL文件格式,导入3DMAX软件,做好贴图和渲染、调整好各模型的坐标和单位等参数后,导出为Fbx格式,再导入Unity 3D编辑器,创建灯光及场景效果,设置父子关系等。模型的电气响应需要根据真实设备的功能需求利用C#语言编写脚本程序来进行控制,以实现虚拟设备、控制器(虚拟PLC或真实PLC)和用户之间的交互。设备和控制器之间采用网络通信实现数据交换。
在建立设备的模型时,开发人员要根据实际设备的尺寸1∶1建模,才能确保模型尺寸结构协调,符合用户习惯,特别是一些传感器的状态指示不能遗漏,否则会导致和实际设备操作时的响应不一致。同时,还要对模型进行贴图和渲染,以增加虚拟设备的真实感。另外,从SolidWorks或UG NX等软件中导入模型时,需要设置模型尺寸的单位和缩放比例,以便和Unity 3D中的单位相协调,不至于在Unity 3D中显得模型过大或过小。
在设计软件时,为了方便用户使用和让新用户熟悉设备的运动模式,开发人员可设计手动控制和联机控制模式,让用户可以利用按钮手动控制模型各部分的运动,快速了解设备的功能;同时,需要考虑不同品牌PLC的通信模式,应用软件开发中的单例模式和工厂模式实现通信和控制2个部分内容的解偶,在不对源代码进行修改的前提下实现对功能和通信模式的扩展,避免对现有代码修改而引入新的错误,符合软件开发中实现对修改封闭对扩展开放的原则。
由于在编写C#语言脚本控制模型运动时,需要按照PLC梯形图的逻辑来处理,而不能只是根据计算机程序控制模型运动。因此,编写脚本的人员最好具有PLC程序设计的经验,能更好地理解模型的运动模式和需求。
2.3"开发实例
本实例以学校现有的PLC基础实训室气动机械手实训平台为例进行开发介绍。气动机械手教学实训平台主要用于“现代电气控制技术”课程的PLC编程实训,包括可编程逻辑控制器PLC、工控按钮、指示灯和一台气动机械手,机械手上安装了吸盘,可实现平面物体的搬运。利用此平台可实现课程中的各类基础控制实训。经与相关专业教师交流讨论,此实训设备投入高、场地占用大,在教室中布置设备台套数有限。学生实训需要花费较长时间才能达到教学目标,而实训室工位数量有限,不能满足所有学生随时随地大量实训的需求。因此,将此实训室的气动机械手实训平台虚拟化,让学生进行虚拟实训具有迫切的需求。
经软件开发团队对此设备进行研究以及和相关老师进行讨论,此设备在实训中主要用于学生编写的PLC程序进行验证,确认被控对象运动状态是否符合预期,以判断PLC程序的正确性,因此主要功能是模拟设备在接收到PLC的控制信号后的响应和将响应反馈给PLC。由于PLC程序采用SIEMENS TIA软件在计算机上进行编制,全程需要使用计算机,因此为了方便后期使用,本虚拟仿真实训软件设计为计算机版本,而不需要使用VR版本。此设备主要动作为机械手的移动和旋转运动。设备包括按钮和工控指示灯,使用Unity 3D进行开发较容易实现,而且也很容易通过TCP同PLC进行通信。PLC可以采用西门子虚拟PLC(PLCSIM ADV)软件,也可以使用真实PLC。此设备利用以太网即可与虚拟设备进行通信。
本项目根据现有的气动机械手实训平台的尺寸,应用SolidWorks软件进行1∶1建模,建模时各运动部件进行单独建模,形成装配体,然后将其导入3DMAX软件,进行渲染贴图等,使模型看起来更加逼真,调整好坐标系、单位和缩放比例后导出为Fbx,然后将模型导入Unity 3D中使用。
本项目根据实训平台中各部件的运动要求,设置好各部件的父子关系,为每一个部件建立C#脚本控制其运动。在进行脚本开发的过程中,不需要加入各部件的运动逻辑,只需要在Update函数中根据相应的条件(如是否启动运动和到达极限等)简单控制各部件的运动,同时根据运动到极限位置设置各传感器的状态即可,如当某一部件运动到极限,则对应的传感器变量属性设置为真,否则设置为假。如气缸向下伸出控制逻辑如图5所示。
在前一步中各传感器的状态、各部件能否运动以及按钮的状态变化等数据需要和PLC进行交互,因此系统和PLC之间需要通过TCP通信来进行数据交互,可以将此数据定义在一个设备类中,使用单例模式,确保此设备类只有一个实例,实时和PLC通信更新数据,也确保在任何脚本中都能利用该设备类访问到此数据,而不必在每个类中都实例化设备类和PLC通信,保证软件的稳定性和可靠性。由于PLC的输入端口只读,因此在此软件中涉及传感器和按钮等作为输入的信号不能在软件中直接设置其输入端口的状态,利用中间继电器进行对接,而控制信号是可读可写可以直接与输出端口对接,在软件中设置好后通过网络传入PLC。
3"应用价值
本虚拟仿真实训系统主要用于PLC编程实训,虚拟化了被控对象,方便学生进行实训。PLC编程技能是机电一体化技术专业的一项非常重要的职业技能,对学生未来在工作中进行设备调试和开发起着非常重要的作用,学生进行PLC程序编程和调试需要进行大量的训练才能积累足够的经验。然而,传统的实训设施受限于投入和场地限制,学生只能利用有限的实训课时和课余时间在实训室进行训练,因此实训效果很难得到保证。将类似的机电一体化设备进行虚拟化,用于学生进行虚拟实训或虚实结合的实训,打破时间和空间的限制,大大提高学生实训的时长,学生通过虚拟实训后可以选择在真实设备上对编写的程序进行实际验证,从而提高学生学习效率和学习效果。
4"结语
利用Unity 3D开发机电一体化系统虚拟仿真实训资源,不需要复杂的控制逻辑,主要考虑对设备各部件进行简单的运动控制,机电一体化技术专业的老师和同学在接受较短时间的培训学习后就能够胜任软件的开发工作,为学校实训资源不足带来了新的解决方案。未来可对师生组建的开发团队进行培训,开发更为精致的实训资源,如各线缆、机械结构的安装与调整,实现与实际实训设备完全一致的物理特性和外观等操作特性,更好地用于学生实训。
参考文献
[1]陈立.基于Unity 3D和AR技术的虚拟实验室系统设计和仿真[J].山西财经大学学报,2022(增刊1):199-201.
[2]王佩玉,陈振中.一种基于Unity 3D的生产线跨平台虚拟调试系统设计方法[J].东华大学学报(自然科学版),2022(2):69-74,80.
[3]孙国锋,丁金华.一种数字孪生背景下的组合秤仿真技术[J].电子测量技术,2021(12):144-148.
[4]宫瑞哲,饶丰,任楠,等.堆垛机的数字孪生系统可视化模型搭建与实现[J].制造业自动化,2022(4):154-157.
[5]赵永信,度国旭,吴坚,等.基于TCP的气动手爪MCD模型虚拟调试的研究[J].机床与液压,2022(3):70-72.
[6]蔡文站,田建艳,王书宇,等.基于NX MCD与TIA的机器人打磨联合虚拟调试研究[J].现代制造工程,2022(7):37-42,120.
[7]严惠,邓小龙,李志远.基于数字孪生的FMS运维监控系统设计与研究[J].制造业自动化,2021(10):122-126.
[8]OUYANG S G,WANG G,YAO J Y,et al.A Unity3D-based interactive three-dimensional virtual practice platform for chemical engineering[J].Computer Applications in Engineering Education,2018(1):91-100.
[9]李能菲,黄琼,常辉.虚拟仿真在工业机器人自动生产线工作站教学中的应用[J].无线互联科技,2022(7):146-149.
(编辑"王永超)
Unity 3D-based virtual simulation training system design for the“Modern Electrical Control Technology”
WANG "Dong1, LIU "Chunjin2, YANG "Jie3
(1.School of Intelligent Manufacturing, Chongqing Industry amp; Trade Polytechnic, Chongqing 408000, China;
2.College of Engineering and Technology, Southwest University, Chongqing 400715, China;
3.School of Artificial Intelligence, Chongqing Industry amp; Trade Polytechnic, Chongqing 408000, China)
Abstract: Aiming at the problems of high cost and risk in the programmable logic controller (PLC) teaching and training conditions in the course of “Modern Electrical Control Technology”, the study proposes a virtual simulation training system for the course of “Modern Electrical Control Technology” developed by Unity 3D, in order to help electromechanical students learn “Modern Electrical Control Technology” course to carry out PLC ladder programming training. The system can support both the virtual reality and pure virtualization training modes, and also can form a digital twin with the actual training equipment. This paper also describes the virtual simulation training system with the real PLC or virtual PLC programming training method, and its development steps and application of the situation. The practical use shows that it has good application value.
Key words: virtual simulation; PLC; virtual reality integration; digital twin