前言:想要写出一篇引人入胜的文章?我们特意为您整理了计算机仿真的油料库储运模拟培训范文,希望能给你带来灵感和参考,敬请阅读。
摘要:油料库操作人员在上岗之前都要进行油库的装油和卸油专门培训。采用真实的油罐进行操作培训不但成本高,而且新学员操作容易引发事故而造成重大损失。采用软硬件结合方式设计了一种基于计算机仿真的自动化油料库作业模拟系统,该系统可以模拟油料库的作业过程自动控制和手动操作,并实时监测油罐状态和工艺参数,记录与再现操作步骤。利用本系统可以提高油料存储效益,降低在油料存储中的人力成本,以及降低真实油罐操作的事故风险。
关键词:监控系统;C#仿真;软硬件结合
随着信息技术、网络技术、仿真技术、多媒体技术的飞速发展,为油库油料储运专业人员培训系统设计的技术手段改革提供了强有力的支持。油库中油料储存罐和输油管道所使用的各种控制阀门是油料储运过程中必不可少的现场仪表,其智能化程度的高低、所含信息的多少和对故障的诊断与容错能力直接影响到数据采集与监控系统的可靠性、稳定性和易用性。通常库区中的控制阀数量众多且分散,普通的控制阀所含信息量少而布线繁多,这在一定程度上使库区监控系统的设计复杂化[1-2]。另外,硬件上检测到的数据需要实时传输处理进入到计算机,并通过软件界面显示出来,给人以直观的信息反馈,本系统就是采用软硬件相结合的方式,把油罐加油与卸油储运的过程动态反应到计算机软件界面上来,让人更直观地进行模拟检测与仿真控制。
1系统的整体逻辑结构
整个仿真模拟操作系统主要由以下几部分构成:工业现场传感器、现场信号转换发送器(信息编码及发送)、信号远程传输(光纤传输)、信号接收转换单元(光信号转为电信号)、智能仪表和工业控制计算机[3]。整个油罐操作仿真模拟系统的逻辑结构油罐现场采用智能传感器,传感器采集油罐的液位和温度信号(非电信号)并送给信号转换装置,通过信号转换装置将信息编码变成光信号;采用光纤远程传输信号,代替电信号的传输,这样就可以防爆、防雷和防电磁干扰,排除传输过程中的各种干扰,对于石化等安全性很高的场合有很重要的意义;光信号经光纤传到仪表室,由光电转换装置将光信号转换为电脉冲信号,并送到智能仪表;智能仪表通过处理将其还原为相应的现场信号,按照RS232串口通信方式和计算机进行通信连接;工业控制计算机上的我们的监控管理软件会从智能仪表处实时采集数据,进行数据分析,完成现场工况模拟和监控、数据存储分析、重要参数设定、显示和实时控制。
2仿真监控管理系统的功能设计
仿真监控管理系统的开发以逻辑功能模块的实现为主线,下面通过用户界面、系统管理、数据处理和通信传输等功能的实现,介绍程序设计思路。2.1系统管理系统管理是对仿真监控系统进行管理和维护的功能菜单项。为保证系统安全运行,系统实时要进行监控。系统管理包括登录认证、登录注销、密码修改、用户管理和退出系统等。2.2用户界面用户界面是系统的主要功能界面,包括各种功能:1)系统主界面窗口,该窗口显示油库两个油罐整体的模拟图,根据现场传感器传来的实测值,通过计算与转换,动态地显示两个油罐的阀门流速、液位和温度等。两个油罐模拟图中建立了按钮功能,在没有初始化油罐的情况下是不能进行触发的,只有在初始化成功之后才能点击使用。可以设置每个油罐的流速或者卸速,还有油罐所进行的时间等,但是这一系列的操作时间都是建立在初始化成功的基础上才能点击触发。系统的主界面窗口如图2所示,要启用系统,需要点击油罐一模拟或油罐二模拟之后才可以使用。点击油罐一模拟之后如图3所示。2)油罐液位动态变化的动画模拟,主要功能是模拟工业现场的油罐液位和温度的实时变化,进出油的状态、油泵、阀门及报警动画。动画模拟如图4所示。图中,油罐一正在以2m3/s的速度加油,油罐二正在以1m3/s的速度卸油。3)参数设定功能,传感器会传过来的各个数据,比如油罐的液位和温度的报警界限值,如液位和温度的上限、下限,一旦监测的时候达到这些值,系统会自动强制停止所在油罐的加油或者卸油状态。4)状态分析处理,状态信息提示窗口,提供每个油罐所处的正在加油、正在卸油、将要加满、将要卸完以及已加满和已卸完等状态,另外会提示报警,提供报警类型,报警来源等信息。比如油库作业中常见的管线泄漏、阀门运转故障、泵故障等。在实验过程中,我们可以在加油主管道上设置手动阀门,手动控制阀门来模拟主管道泄漏情况;由“阀门限位故障设置按钮”设置限位故障,模拟电动阀门开关不到位的故障现象;由故障模拟电机过载故障,泵通电后不能启动,由故障开关来模拟泵电机缺相合断电故障。2.3通信传输仿真监控系统分为现场监控工作模式和网络多级工作组模式。现场监控工作模式是单一的现场监控工作站点独立工作,只有智能仪表和现场各控制面板之间通信,通信协议视仪表型号而定[2]。多级网络工作组模式是多层次监控系统,上级工作站管理监控下级工作站,实现工作站联网监控。除现场计算机和智能仪表通信外,各级计算机也有通信链路相互连接。2.4操作记录与再现在仿真监控运行期间,计算机将记录操作员在计算机界面上所做的每一个操作,包括选择、输入、设置等操作动作,设置的参数和操作时间等,同时系统每隔一段时间就会记录泵转速、管路各处压力、液位、阀门开关位置、流量等数据。这些数据将会保存在系统的数据库中,系统可以读取这些数据,再现操作过程和系统参数变化情况,以便分析在操作过程中存在的问题。
3系统关键技术
本系统主要采用C#界面仿真语言进行开发,在开发过程中主要用到了GDI+图形程序设计、多线程、跨线程访问UI组件、C#与串口通信等关键技术。1)GDI+图形程序设计图形装置接口(GDI+,GraphicsDeviceInter-facePlus)是Microsoft.NET中进行二维向量图形、图像及文字等方面处理的Win32API。所有GDI+的功能都包含在System.Drawing、System.Drawing.Imaging、System.Drawing.Drawing2D、System.Draw-ing.Text这些名称空间的各个类中。C#通过这些名称空间所提供的功能进行图形设计和图形处理[4-5]。用GDI+创建图形图像需要首先创建Graphics对象,然后才可以用GDI+绘制线条和形状、处理文本及进行图像的显示和处理。这里Graphics是一个用于创建图形图像的对象。一般而言,图形设计过程分为两步:一是创建Graphics对象;二是使用Graphics对象绘画、显示文本或处理图像。本系统中主要的图形程序设计代码如下(我们这里只展示一个图形的主要代码):Graphicsg=pictureBox1.CreateGraphics();intheight=pictureBox1.ClientSize.Height-40;intwidth=pictureBox1.ClientSize.Width-20;intvHeigth=150;intvwidth=40;for(inti=height;i>0;i--)g.DrawEllipse(pen1,(width-2*vwidth)/2,i,vHeigth,vwidth);g.FillEllipse(brush1,(width-2*vwidth)/2,0,vHeigth,vwidth);代码含义如下:第一行表示获取控件picture-Box1的Graphics对象,为之后的绘制线条和形状做准备;第2、
3行表示获取控件pictureBox1的Height和Width属性,为之后的绘制线条和形状做准备;第4、5行是定义所绘制的图形的宽度和高度;第6、7行表示用Graphics对象g进行循环画线;第8行表示为该圆柱的顶部填充颜色,使圆柱显的更为立体。2)多线程在使用C#编写任何程序时,都有一个入口:Main()方法。程序从Main()方法的第一条语句开始执行,直到这个方法返回为止。这样的程序结构非常适合于一个可识别的任务序列的程序,但程序常常需要同时完成多个任务[6]。例如在使用文字处理软件的时候,用户在输入文字的同时,软件能同步进行拼写检查而不需要用户的等待。在C#中多线程功能是封装在System.Thread命名空间中。在本系统中,程序需要再运行主程序的同时,需要去对硬件接口进行监测,而又不需要影响主程序的运行,所以需要用到多线程。先对监测油罐的代码做了封装,在开辟新的线程的时候直接调用封装的函数,下面是在监测油罐一的时候,开辟新的线程的主要部分代码:Threadt1=newThread(newThreadStart(zonghe1));t1.Start();3)跨线程访问UI组件因为在此系统中我们使用了多线程,使用了多线程之后,就需要了解Windows窗体中最重要的一条线程规则:除了极少数的例外情况,否则都不要在它的创建线程以外的线程中使用控件的任何成员[6]。这适用于其类派生自System.Windows.Forms.Control的任何对象,其中包括几乎所有的UI元素。此外,这条规则的结果是一个被包含的控件必须与包含它的控件位处于同一个线程中。也就是说,一个窗口的所有控件属于同一个UI线程。但是在此系统中我们需要在按钮触发的监控事件中来访问控制UI组件,这里我们就需要来跨线程访问UI组件来达到这一目的,其中有设置程序不检查线程的调用是否合法和使用委托delegate的方法,在此仿真系统中我们是把访问UI控件的代码封装成一个函数,此函数是不带参数的,使用MethodInvoker来解决此问题。System.Windows.Forms.MethodInvoker类型是一个系统定义的委托,用于调用不带参数的方法。使用具体的代码如下:MethodInvokermi=newMethodInvoker(jiayouTishi);BeginInvoke(mi);4)C#串口通信在VisualStudio.NET中编写串口通信程序,一般都使用MicrosoftCommunicationControl(简称MSComm)的通信控件,只要通过对此控件的属性和事件进行相应编程操作,就可以轻松地实现串口通信。但在Microsoft.NET技术广泛应用的今天,VisualStudio.NET没有将此控件加入控件库,所以现在采用3种方法在VisualStudio.NET中编写串口程序:第一种方法是通过采用MSComm控件,这是最简单的,最方便的方法,但需要注册;第二种方法是采用微软在.NET中推出的一个串口控件Se-rialPort,可方便地实现所需要串口通信的多重功能;第三种方法是用API函数进行串口通信,虽然难度高,但可以方便实现在即想要的各种功能[7]。在本仿真系统中我们采用第二种方法,通过RS-232接口实现了油罐的阀门流速信号、油泵开关信号的采集与控制。
4结束语
本文针对油罐的加油卸油过程分析,采用软硬件相结合的方法研究开发了基于实时监控可操控的一种自动化的油料储运操作仿真系统,它对于灌区生产和管理提供了更高的可靠性和准确性,可提高工作效率,降低培训成本和操作中事故出现的风险,对于油料储运操作专业人员的实训培养有重要的作用。
参考文献:
[1]刘锦华.油罐群远程实时监测系统的设计与实现[D].成都:电子科技大学,2012.
[2]苏梦,冯达,陆朝荣,等.基于PLC的油料储运监控系统的设计和实现[J].微计算机信息,2006,22(6):9-1.
[3]苏义鑫,吕华阳.基于MCGS组态软件的油库监控管理软件开发[J].工业控制计算机,2003,16(7):30-31.
[4]JohnSharp.VisualC#从入门到精通[M].周靖,译.8版.北京:清华大学出版社,2016.6.
[5]李兰友,韩广峰,裘旭光.VisualC#图形程序设计实例[M].北京:国防工业出版社,2003.4.
[6]AndrewTroelsen.ProC#5.0andthe.NET4.5FrameworkSixthEdition精通C#[M].姚琪琳,朱晔,肖逵,等,译.6版.北京:人民邮电出版社,2014.5.
[7]李江全,邓红涛,刘巧,李伟,等.VisualC#.NET串口通信及测控应用典型实例[M].北京:电子工业出版社,2012:5.
作者:李明 游福成 姜超 张董 曹越 张陈炜 单位:北京印刷学院信息工程学院