时间:2024-12-22
李 强,宓 超,王晨星,沈 阳
(1.天津港(集团)有限公司,天津 300461;2.上海海事大学,上海 201306)
在PLC控制系统的设计与应用过程中,程序的调试是必不可少的环节.若直接将程序应用于控制系统中进行调试,必然会给被控设备带来一定的风险,而且这样的调试需要硬件配合来进行,一旦硬件条件不满足或不在现场,调试将无法进行[1].
通常PLC都有自己的仿真调试软件,例如西门子的PLCSIM,可以进行离线仿真与调试;但是这种软件只能简单地验证PLC的输入与输出之间的逻辑关系,无法真实而又直观地得知被控对象的执行情况,如执行机构是否产生干涉等.虽然国内也出现了PLC控制程序的半实物仿真系统,例如轮机模拟器,但是这种模拟器只有信号仿真没有执行机构,调试者不能直观地知道机器的执行情况.另外,也有一些基于虚拟现实技术的半实物仿真系统,例如导弹的半实物视景仿真系统,但是这种系统是专门针对一个对象的仿真,并不是针对多个对象的通用型的半实物仿真系统[2].
因此,有必要开发一个通用型的半实物仿真系统来有效地解决这些问题,更好、更安全地调试电气控制程序,在较低成本、保证效率、保障安全的同时,更直观地呈现被控对象的执行效果.
半实物仿真,又称硬件在回路仿真,是指在对某些系统的研究中,把数学模型与物理模型或实物连接起来一起进行试验,即对系统的一部分建立数学模型,并编写程序在计算机运行,实现数学仿真;同时将所研究系统的部分实物接入到仿真回路,然后将它们连接成系统进行试验的过程.半实物仿真现在已经逐步在工业、交通领域应用起来.
半实物仿真具有物理仿真和数学仿真的共同优点,但也有不足,由于保证实时性是半实物仿真的必要前提,因而增加了仿真模型建立和仿真试验时间控制上的难度,而且半实物仿真花费的成本较数学仿真有所增加.与物理仿真和数学仿真相比,半实物仿真主要有以下特点:
(1)只能是实时仿真,即仿真模型的时间标尺和自然时间标尺相同,二者同步运行.
(2)需要解决控制器与仿真计算机之间的接口问题.例如在进行某PLC控制程序的半实物仿真时,在仿真计算机上显示的三维虚拟视景里的被控对象的运动受到PLC信号的控制,因而必须有信号接口或转换传输装置,这种转换和传输由硬件系统完成.
(3)半实物仿真的试验结果比纯数学仿真更接近实际情况.
在实际的控制过程中,半实物仿真通常有两种情况:一种是用计算机作为控制器,而将受控对象作为实物直接放置在仿真回路中构造半实物仿真系统;另一种控制器用实物,而受控对象使用数学模型[2].
在本文的系统中,采用第二种控制过程,用PC机作为仿真计算机,PLC作控制器来实现系统的半实物仿真.
虚拟现实(Virtual Reality,VR)是近年来出现的高新技术,也称灵境技术或人工环境.虚拟现实是利用电脑模拟产生一个三维空间的虚拟世界,提供使用者关于视觉、听觉、触觉等感官的模拟,让使用者如同身临其境一般,可以及时、没有限制地观察三度空间内的事物[4].目前虚拟现实技术主要应用于城市规划、医学、军事、航天以及工业等领域中.
虚拟现实的关键技术包括以下几个方面:
(1)动态环境建模技术.虚拟环境的建立是虚拟现实技术的核心内容,动态环境建模技术的目的是获取实际环境的三维数据,并根据应用的需要,利用获取的三维数据建立相应的虚拟环境模型.三维数据的获取对有规则的环境可以采用CAD技术,而更多的情况则需采用非接触式的视觉建模技术,二者的有机结合可以有效地提高数据获取的效率.
(2)实时三维图形生成技术.现今三维图形的生成技术已较为成熟,而关键点是如何做到“实时生成”.为了达到实时的目的,至少要保证图形的刷新频率不低于15fps,最好高于30fps.在不降低图形的质量和复杂程度的前提下,如何提高刷新频率将是该技术的研究内容.
(3)立体显示和传感器技术.虚拟现实的实现依赖于立体显示和传感器技术的发展.现有的虚拟现实设备还不能满足系统的需要,例如头盔式三维立体显示器有过重、分辨率低、刷新频率慢、跟踪精度低、视场不够宽、眼睛容易疲劳等缺点.同样,数据手套、数据衣等都有延迟大、分辨率低、使用不便等缺点.因此有必要开发新的三维显示技术.
(4)应用系统开发工具.虚拟现实技术应用的关键是寻找合适的场合和对象,即如何发挥想象力和创造性.选择适当的应用对象可以大幅度地提高效率,减轻劳动强度,提高产品质量.为了达到这一目的,必须研究虚拟现实的开发工具.
(5)系统集成技术.由于虚拟现实系统中包含大量的感知信息和模型,因此,系统的集成技术起着至关重要的作用.集成技术包括信息的同步、模型的标定、数据转换、数据管理模型、识别与合成等等技术.
本半实物仿真系统结合虚拟现实技术,建立了一个直观而又真实的沉浸式PLC控制程序的仿真平台.该系统主要由三部分组成:可编程控制器、高速的信号仿真器和三维视景仿真平台.该系统的总体结构见图1所示.
图1 系统总体结构Fig.1 Overall structure of the system
其中PLC的输出模块可以产生真实的控制信号,同时其输入模块接收PC机仿真平台传来的虚拟信号;高速的信号仿真器的输入和输出模块进行信号的采集和传输,实现PLC与PC机之间的数据的实时传输;在计算机里呈现出被控对象的视景,而视景里的对象模型根据接收到的控制信号,来模拟实际运行的效果.该半实物仿真系统的硬件部分如图2所示.
图2 半实物仿真系统硬件部分(信号采集及发生)Fig.2 Hardware of semi physical simulation system(electrical signal-receivers &generators)
半实物仿真系统开发主要运用虚拟现实技术,将建立好的三维模型,载入到三维虚拟场景中,并且快速地生成模型的三维场景.人们可以通过鼠标键盘操作对三维虚拟场景进行各个角度的浏览,三维场景里的对象模型根据传递来的信号进行动作的变化.根据被控对象的执行情况可以直观、准确和快速地验证PLC程序的正确性.
该PLC控制半实物仿真系统的软件系统主要由PLC控制器软件程序、高速的信号仿真器软件程序和PC机里的三维虚拟视景平台组成.
在开发该半实物仿真系统软件的过程中,应该解决以下2个关键问题:①信号的采集和传输;②三维虚拟视景的快速生成和显示.
PC机里的视景仿真平台只有接收到硬件系统传递过来的控制信号,才能通过分析信号来做出相应的动作.因此,实时精确地采集PLC的数字量输出信号,同时将上位机的虚拟信号实时精确地传输到PLC的数字量输入端成为整个硬件系统最重要的任务.具体信号的采集和传输系统流程图如图3所示.
通过单片机的输入模块来采集PLC里的输出模块信号,然后通过串口传输到视景平台中.同样通过单片机来接收视景平台发出的传感器信号,接着从单片机的输出模块传输到PLC的输入模块中,得以控制PLC的输入.
在三维虚拟视景平台中,完成对控制信号的采集和传输后,需要执行三维场景和被控制对象的三维模型的生成和渲染,使这些视景具有沉浸感和真实感,从而代替真实的设备和场景.同时执行被控对象模型的动作显示,使被控制对象能根据采集到的虚拟信号做出相应的执行动作.系统多线程编程的实现流程图如图4所示.
图3 信号采集和传输流程图Fig.3 Flow diagram of signal acquisition and transmission
图4 多线程编程的实现流程图Fig.4 Flow diagram of multi-threaded programming
主线程、线程1和线程2分别是程序中一个单一的顺序控制流程,其中主线程主要完成的是三维场景和被控制对象模型的生成和渲染,使用TV3D引擎来实现虚拟现实,使得代码的编写工作得到了大大的简化.很多底层的功能如:边缘检测、视角切换、物体的碰撞等,都由TV3D引擎自动实现.只需考虑如何使用调用TV3D所提供的函数,在虚拟场景中实现相应功能即可,这样极大地提高了开发的效率.主线程的程序流程图里的各个执行语句都可以通过调用TV3D所提供的函数来实现.
线程1完成的是被控对象模型的执行动作显示.每个采集到的信号会对应着一个被控对象的执行动作,根据对应信号的变化,被控对象的执行动作也会产生变化.线程1的被控对象模型的执行动作显示可以通过调用TV3D所提供的函数来实现.为了提高线程1的处理速度,进而提高整个平台的刷新频率,要尽量减少这部分图形变化和处理的内容,也就是将被控对象模型根据不同动作分割成不同的部分,只需将每个动作部分加载渲染即可,不需要加载渲染整个被控对象的三维模型.
线程2完成的是对高速的信号仿真器里存储的控制信号的采集.这里主要是利用VB.NET的SerialPort类.使用这个类函数就可创建串口对象,串口对象有很多属性,通过定义串口对象的属性,就能定义串口的通信模式,从串口对象属性也能了解串口的状态.
此外,在多线程中,需要考虑不同线程之间的数据同步和防止死锁.当2个或多个线程之间同时等待对方释放资源的时候就会形成资源之间的死锁.为了防止死锁的发生,在 VB.NET中使用SyncLock关键字来简化监视对象的访问,能很好地解决上述的问题.监视对象能确保代码块的运行不被运行在其他线程中的代码打断.
当三维模型建立完成、接收到的信号存储到了数组中,这时就需要将三维模型加载到虚拟视景中,并根据存储的信号来触发整个三维视景的动态显示.三维引擎能灵活简便地进行二次开发,非常适合快速开发,简化了3D程序的制作周期[5],所以采用三维引擎实现三维视景的生成和显示.主要有以下几个模块:
(1)场景的绘制.首先要创建所需要的灰度图,并且根据灰度图来创建平面.接着创建所需要的地面纹理图,再现所需的三维场景.
(2)三维模型的加载.在加载三维模型之前,还需要建立一个参考坐标系(x,y,z)T,根据坐标变换公式(1)计算出各个模型相对于参考坐标系的三维坐标位置(x1,y1,z1)T.然后再根据各个模型的坐标位置来加载三维模型到三维场景中.为了使三维模型看起来更加逼真,给人更多的沉浸感和真实感,需要给三维模型贴上纹理图.
式中:a1,a2,a3分别为参考点在x,y,z上的值;aij(i=1,2,3;j=1,2,3)为相对于参考点移动的x,y,z的值.
(3)场景的视角变换.在视景中主要是通过键盘或鼠标来控制摄像机的运动,以此来控制视角的变换.其中重要的是设置好场景中摄像机的位置和视角,当有键盘输入和鼠标移动的时候,摄像机会随之有相应程度的位置和视角的变化.
当整个三维场景和三维模型加载完毕后,再根据连续储存的信号的变换来不断更换被控对象的动作,这样就可以实现三维模型的动态显示了.
为了验证该半实物仿真系统的可行性及可靠性,以交通信号灯和双电梯的控制程序为例,采用虚拟现实技术设计出了半实物仿真系统平台,并且记录下了具体实验参数以及最后效果图.
交通信号灯的PLC控制半实物仿真系统与双电梯的PLC控制半实物仿真系统都由PLC、高速的信号仿真器和交通信号灯视景仿真平台3部分组成.由于双电梯的PLC程序更为复杂,需要的控制点比较多,1块高速的信号仿真器无法满足系统的要求,因此这里需要2块高速的信号仿真器并联起来,以增加输入输出点数.高速的信号仿真器与PLC直接进行电气连接,并由电源给高速的信号仿真器提供所需的5V和24V电压,给PLC提供220V电压.PC上位机与高速的信号仿真器通过RS-485串口通讯进行数据交换,主要实现的功能是将真实的控制信号转化成虚拟的控制信号传输到PC机里,同时将PC机里的虚拟信号转化成真实的控制信号传输到PLC里.
搭建好半实物仿真系统平台后,就开始运行整个系统.为了判断整个半实物仿真系统的实时性的好坏,需要获取系统运行的帧速率值(fps值),即每秒钟填充图像的帧数帧速率值愈多,所显示的动作就会愈流畅.通常,要避免动作不流畅的最低帧速率值是30fps.而当刷新率太低时人们肉眼都能感觉到屏幕的闪烁,不连贯,对图像的显示效果和视觉感观都产生不好的影响.
因此只有当帧速率值满足一定的要求时,三维虚拟视景中被控对象的显示和动作才能跟上PLC里的信号的变化,否则就会产生延迟,系统的实时性就得不到保证,运行就处于紊乱状态.
在交通灯和双电梯视景平台的运行过程中,画面上会显示帧速率值,每隔5s记录一个帧速率值,共记录下10组数据,根据这些数据可计算出平均的帧速率值,如表1所示.
其中交通信号灯的实验效果图如图5所示.
表1 实验参数表Tab.1 Parameters of the experiment
图5 交通信号灯效果图Fig.5 Effect of traffic signal lamp
双电梯的实验效果图如图6所示.由于PLC程序运行的扫描周期是20ms,所以三维视景至少要每秒刷新50次,即帧速率达到50fps,这样才能够满足半实物仿真的实时性,不会产生延时.从表1中可以明显看出两组实验的帧速率值均大于50 fps,因此在两组实验中三维视景的生成和显示都很流畅,而且系统运行速度快,信号响应程序流畅,调试者沉浸在图4和图5这样的视景中,根据被控对象的执行情况可以直观、准确和快速地验证PLC程序的正确性,符合PLC调试的需求.
基于虚拟现实技术的半实物仿真系统为PLC程序的调试和验证提供了一个安全、直观、经济、高效的环境.与其他调试平台相比,本系统具有良好的沉浸感,不仅可以验证PLC的输入输出情况,还可以更加直观地呈现被控对象的执行效果,并具有较高的安全性和经济性.由于机械部分由计算机来模拟,即使有不正当的指令,也不会造成设备的损坏和事故,同时也节约了大量的实验成本,缩短了研发周期.利用该系统可以在没有设备的情况下对电气控制程序进行调试,并且随时对程序进行验证和调整,极大地方便了教学,还可以用于培养电气调试工程师.未来可以考虑将3D投影技术应用到此半实物仿真系统中,更增加沉浸感.
图6 双电梯效果图Fig.6 Effect of double elevators
[1]袁云龙.基于组态软件的PLC控制系统仿真实现[J].自动化仪表,2006,27(5):57-61.
YUAN Yunlong.The simulation realization of PLC control system based on the configuration software[J].Automation Instrument,2006,27(5):57-61.
[2]吴家铸,党岗,刘华峰,等.视景仿真技术及应用[M].西安:西安电子科技大学出版社,2001.
WU Jiazhu,DANG Gang,LIU Huafeng,et al.Visual simulation technology and applications[M].Xi’an:Xidian University Press,2001.
[3]刘延斌,金光.半实物仿真技术的发展现状[J].仿真技术,2003,11(1):27-32.
LIU Yanbin,JIN Guang.The development status of loop simulation[J].Simulation Technology,2003,11(1):27-32.
[4]BURDEA G,COIFFET P.虚拟现实技术[M].北京:电子工业出版社,2005.
BURDEA G,COIFFET P.Virtual reality technology[M].Beijing:Publishing House of Electronics Industry,2005.
[5]郭建.基于Truevision3D的虚拟现实技术[J].现代计算机,2008,279(5):51-53.
GUO Jian.Virtual reality technology based on truevision3D[J].Modern Computer,2008,279(5):51-53.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!