公務(wù)員期刊網(wǎng) 論文中心 正文

計算機(jī)仿真的油料庫儲運(yùn)模擬培訓(xùn)

前言:想要寫出一篇引人入勝的文章?我們特意為您整理了計算機(jī)仿真的油料庫儲運(yùn)模擬培訓(xùn)范文,希望能給你帶來靈感和參考,敬請閱讀。

計算機(jī)仿真的油料庫儲運(yùn)模擬培訓(xùn)

摘要:油料庫操作人員在上崗之前都要進(jìn)行油庫的裝油和卸油專門培訓(xùn)。采用真實的油罐進(jìn)行操作培訓(xùn)不但成本高,而且新學(xué)員操作容易引發(fā)事故而造成重大損失。采用軟硬件結(jié)合方式設(shè)計了一種基于計算機(jī)仿真的自動化油料庫作業(yè)模擬系統(tǒng),該系統(tǒng)可以模擬油料庫的作業(yè)過程自動控制和手動操作,并實時監(jiān)測油罐狀態(tài)和工藝參數(shù),記錄與再現(xiàn)操作步驟。利用本系統(tǒng)可以提高油料存儲效益,降低在油料存儲中的人力成本,以及降低真實油罐操作的事故風(fēng)險。

關(guān)鍵詞:監(jiān)控系統(tǒng);C#仿真;軟硬件結(jié)合

隨著信息技術(shù)、網(wǎng)絡(luò)技術(shù)、仿真技術(shù)、多媒體技術(shù)的飛速發(fā)展,為油庫油料儲運(yùn)專業(yè)人員培訓(xùn)系統(tǒng)設(shè)計的技術(shù)手段改革提供了強(qiáng)有力的支持。油庫中油料儲存罐和輸油管道所使用的各種控制閥門是油料儲運(yùn)過程中必不可少的現(xiàn)場儀表,其智能化程度的高低、所含信息的多少和對故障的診斷與容錯能力直接影響到數(shù)據(jù)采集與監(jiān)控系統(tǒng)的可靠性、穩(wěn)定性和易用性。通常庫區(qū)中的控制閥數(shù)量眾多且分散,普通的控制閥所含信息量少而布線繁多,這在一定程度上使庫區(qū)監(jiān)控系統(tǒng)的設(shè)計復(fù)雜化[1-2]。另外,硬件上檢測到的數(shù)據(jù)需要實時傳輸處理進(jìn)入到計算機(jī),并通過軟件界面顯示出來,給人以直觀的信息反饋,本系統(tǒng)就是采用軟硬件相結(jié)合的方式,把油罐加油與卸油儲運(yùn)的過程動態(tài)反應(yīng)到計算機(jī)軟件界面上來,讓人更直觀地進(jìn)行模擬檢測與仿真控制。

1系統(tǒng)的整體邏輯結(jié)構(gòu)

整個仿真模擬操作系統(tǒng)主要由以下幾部分構(gòu)成:工業(yè)現(xiàn)場傳感器、現(xiàn)場信號轉(zhuǎn)換發(fā)送器(信息編碼及發(fā)送)、信號遠(yuǎn)程傳輸(光纖傳輸)、信號接收轉(zhuǎn)換單元(光信號轉(zhuǎn)為電信號)、智能儀表和工業(yè)控制計算機(jī)[3]。整個油罐操作仿真模擬系統(tǒng)的邏輯結(jié)構(gòu)油罐現(xiàn)場采用智能傳感器,傳感器采集油罐的液位和溫度信號(非電信號)并送給信號轉(zhuǎn)換裝置,通過信號轉(zhuǎn)換裝置將信息編碼變成光信號;采用光纖遠(yuǎn)程傳輸信號,代替電信號的傳輸,這樣就可以防爆、防雷和防電磁干擾,排除傳輸過程中的各種干擾,對于石化等安全性很高的場合有很重要的意義;光信號經(jīng)光纖傳到儀表室,由光電轉(zhuǎn)換裝置將光信號轉(zhuǎn)換為電脈沖信號,并送到智能儀表;智能儀表通過處理將其還原為相應(yīng)的現(xiàn)場信號,按照RS232串口通信方式和計算機(jī)進(jìn)行通信連接;工業(yè)控制計算機(jī)上的我們的監(jiān)控管理軟件會從智能儀表處實時采集數(shù)據(jù),進(jìn)行數(shù)據(jù)分析,完成現(xiàn)場工況模擬和監(jiān)控、數(shù)據(jù)存儲分析、重要參數(shù)設(shè)定、顯示和實時控制。

2仿真監(jiān)控管理系統(tǒng)的功能設(shè)計

仿真監(jiān)控管理系統(tǒng)的開發(fā)以邏輯功能模塊的實現(xiàn)為主線,下面通過用戶界面、系統(tǒng)管理、數(shù)據(jù)處理和通信傳輸?shù)裙δ艿膶崿F(xiàn),介紹程序設(shè)計思路。2.1系統(tǒng)管理系統(tǒng)管理是對仿真監(jiān)控系統(tǒng)進(jìn)行管理和維護(hù)的功能菜單項。為保證系統(tǒng)安全運(yùn)行,系統(tǒng)實時要進(jìn)行監(jiān)控。系統(tǒng)管理包括登錄認(rèn)證、登錄注銷、密碼修改、用戶管理和退出系統(tǒng)等。2.2用戶界面用戶界面是系統(tǒng)的主要功能界面,包括各種功能:1)系統(tǒng)主界面窗口,該窗口顯示油庫兩個油罐整體的模擬圖,根據(jù)現(xiàn)場傳感器傳來的實測值,通過計算與轉(zhuǎn)換,動態(tài)地顯示兩個油罐的閥門流速、液位和溫度等。兩個油罐模擬圖中建立了按鈕功能,在沒有初始化油罐的情況下是不能進(jìn)行觸發(fā)的,只有在初始化成功之后才能點擊使用??梢栽O(shè)置每個油罐的流速或者卸速,還有油罐所進(jìn)行的時間等,但是這一系列的操作時間都是建立在初始化成功的基礎(chǔ)上才能點擊觸發(fā)。系統(tǒng)的主界面窗口如圖2所示,要啟用系統(tǒng),需要點擊油罐一模擬或油罐二模擬之后才可以使用。點擊油罐一模擬之后如圖3所示。2)油罐液位動態(tài)變化的動畫模擬,主要功能是模擬工業(yè)現(xiàn)場的油罐液位和溫度的實時變化,進(jìn)出油的狀態(tài)、油泵、閥門及報警動畫。動畫模擬如圖4所示。圖中,油罐一正在以2m3/s的速度加油,油罐二正在以1m3/s的速度卸油。3)參數(shù)設(shè)定功能,傳感器會傳過來的各個數(shù)據(jù),比如油罐的液位和溫度的報警界限值,如液位和溫度的上限、下限,一旦監(jiān)測的時候達(dá)到這些值,系統(tǒng)會自動強(qiáng)制停止所在油罐的加油或者卸油狀態(tài)。4)狀態(tài)分析處理,狀態(tài)信息提示窗口,提供每個油罐所處的正在加油、正在卸油、將要加滿、將要卸完以及已加滿和已卸完等狀態(tài),另外會提示報警,提供報警類型,報警來源等信息。比如油庫作業(yè)中常見的管線泄漏、閥門運(yùn)轉(zhuǎn)故障、泵故障等。在實驗過程中,我們可以在加油主管道上設(shè)置手動閥門,手動控制閥門來模擬主管道泄漏情況;由“閥門限位故障設(shè)置按鈕”設(shè)置限位故障,模擬電動閥門開關(guān)不到位的故障現(xiàn)象;由故障模擬電機(jī)過載故障,泵通電后不能啟動,由故障開關(guān)來模擬泵電機(jī)缺相合斷電故障。2.3通信傳輸仿真監(jiān)控系統(tǒng)分為現(xiàn)場監(jiān)控工作模式和網(wǎng)絡(luò)多級工作組模式?,F(xiàn)場監(jiān)控工作模式是單一的現(xiàn)場監(jiān)控工作站點獨立工作,只有智能儀表和現(xiàn)場各控制面板之間通信,通信協(xié)議視儀表型號而定[2]。多級網(wǎng)絡(luò)工作組模式是多層次監(jiān)控系統(tǒng),上級工作站管理監(jiān)控下級工作站,實現(xiàn)工作站聯(lián)網(wǎng)監(jiān)控。除現(xiàn)場計算機(jī)和智能儀表通信外,各級計算機(jī)也有通信鏈路相互連接。2.4操作記錄與再現(xiàn)在仿真監(jiān)控運(yùn)行期間,計算機(jī)將記錄操作員在計算機(jī)界面上所做的每一個操作,包括選擇、輸入、設(shè)置等操作動作,設(shè)置的參數(shù)和操作時間等,同時系統(tǒng)每隔一段時間就會記錄泵轉(zhuǎn)速、管路各處壓力、液位、閥門開關(guān)位置、流量等數(shù)據(jù)。這些數(shù)據(jù)將會保存在系統(tǒng)的數(shù)據(jù)庫中,系統(tǒng)可以讀取這些數(shù)據(jù),再現(xiàn)操作過程和系統(tǒng)參數(shù)變化情況,以便分析在操作過程中存在的問題。

3系統(tǒng)關(guān)鍵技術(shù)

本系統(tǒng)主要采用C#界面仿真語言進(jìn)行開發(fā),在開發(fā)過程中主要用到了GDI+圖形程序設(shè)計、多線程、跨線程訪問UI組件、C#與串口通信等關(guān)鍵技術(shù)。1)GDI+圖形程序設(shè)計圖形裝置接口(GDI+,GraphicsDeviceInter-facePlus)是Microsoft.NET中進(jìn)行二維向量圖形、圖像及文字等方面處理的Win32API。所有GDI+的功能都包含在System.Drawing、System.Drawing.Imaging、System.Drawing.Drawing2D、System.Draw-ing.Text這些名稱空間的各個類中。C#通過這些名稱空間所提供的功能進(jìn)行圖形設(shè)計和圖形處理[4-5]。用GDI+創(chuàng)建圖形圖像需要首先創(chuàng)建Graphics對象,然后才可以用GDI+繪制線條和形狀、處理文本及進(jìn)行圖像的顯示和處理。這里Graphics是一個用于創(chuàng)建圖形圖像的對象。一般而言,圖形設(shè)計過程分為兩步:一是創(chuàng)建Graphics對象;二是使用Graphics對象繪畫、顯示文本或處理圖像。本系統(tǒng)中主要的圖形程序設(shè)計代碼如下(我們這里只展示一個圖形的主要代碼):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對象,為之后的繪制線條和形狀做準(zhǔn)備;第2、

3行表示獲取控件pictureBox1的Height和Width屬性,為之后的繪制線條和形狀做準(zhǔn)備;第4、5行是定義所繪制的圖形的寬度和高度;第6、7行表示用Graphics對象g進(jìn)行循環(huán)畫線;第8行表示為該圓柱的頂部填充顏色,使圓柱顯的更為立體。2)多線程在使用C#編寫任何程序時,都有一個入口:Main()方法。程序從Main()方法的第一條語句開始執(zhí)行,直到這個方法返回為止。這樣的程序結(jié)構(gòu)非常適合于一個可識別的任務(wù)序列的程序,但程序常常需要同時完成多個任務(wù)[6]。例如在使用文字處理軟件的時候,用戶在輸入文字的同時,軟件能同步進(jìn)行拼寫檢查而不需要用戶的等待。在C#中多線程功能是封裝在System.Thread命名空間中。在本系統(tǒng)中,程序需要再運(yùn)行主程序的同時,需要去對硬件接口進(jìn)行監(jiān)測,而又不需要影響主程序的運(yùn)行,所以需要用到多線程。先對監(jiān)測油罐的代碼做了封裝,在開辟新的線程的時候直接調(diào)用封裝的函數(shù),下面是在監(jiān)測油罐一的時候,開辟新的線程的主要部分代碼:Threadt1=newThread(newThreadStart(zonghe1));t1.Start();3)跨線程訪問UI組件因為在此系統(tǒng)中我們使用了多線程,使用了多線程之后,就需要了解Windows窗體中最重要的一條線程規(guī)則:除了極少數(shù)的例外情況,否則都不要在它的創(chuàng)建線程以外的線程中使用控件的任何成員[6]。這適用于其類派生自System.Windows.Forms.Control的任何對象,其中包括幾乎所有的UI元素。此外,這條規(guī)則的結(jié)果是一個被包含的控件必須與包含它的控件位處于同一個線程中。也就是說,一個窗口的所有控件屬于同一個UI線程。但是在此系統(tǒng)中我們需要在按鈕觸發(fā)的監(jiān)控事件中來訪問控制UI組件,這里我們就需要來跨線程訪問UI組件來達(dá)到這一目的,其中有設(shè)置程序不檢查線程的調(diào)用是否合法和使用委托delegate的方法,在此仿真系統(tǒng)中我們是把訪問UI控件的代碼封裝成一個函數(shù),此函數(shù)是不帶參數(shù)的,使用MethodInvoker來解決此問題。System.Windows.Forms.MethodInvoker類型是一個系統(tǒng)定義的委托,用于調(diào)用不帶參數(shù)的方法。使用具體的代碼如下:MethodInvokermi=newMethodInvoker(jiayouTishi);BeginInvoke(mi);4)C#串口通信在VisualStudio.NET中編寫串口通信程序,一般都使用MicrosoftCommunicationControl(簡稱MSComm)的通信控件,只要通過對此控件的屬性和事件進(jìn)行相應(yīng)編程操作,就可以輕松地實現(xiàn)串口通信。但在Microsoft.NET技術(shù)廣泛應(yīng)用的今天,VisualStudio.NET沒有將此控件加入控件庫,所以現(xiàn)在采用3種方法在VisualStudio.NET中編寫串口程序:第一種方法是通過采用MSComm控件,這是最簡單的,最方便的方法,但需要注冊;第二種方法是采用微軟在.NET中推出的一個串口控件Se-rialPort,可方便地實現(xiàn)所需要串口通信的多重功能;第三種方法是用API函數(shù)進(jìn)行串口通信,雖然難度高,但可以方便實現(xiàn)在即想要的各種功能[7]。在本仿真系統(tǒng)中我們采用第二種方法,通過RS-232接口實現(xiàn)了油罐的閥門流速信號、油泵開關(guān)信號的采集與控制。

4結(jié)束語

本文針對油罐的加油卸油過程分析,采用軟硬件相結(jié)合的方法研究開發(fā)了基于實時監(jiān)控可操控的一種自動化的油料儲運(yùn)操作仿真系統(tǒng),它對于灌區(qū)生產(chǎn)和管理提供了更高的可靠性和準(zhǔn)確性,可提高工作效率,降低培訓(xùn)成本和操作中事故出現(xiàn)的風(fēng)險,對于油料儲運(yùn)操作專業(yè)人員的實訓(xùn)培養(yǎng)有重要的作用。

參考文獻(xiàn):

[1]劉錦華.油罐群遠(yuǎn)程實時監(jiān)測系統(tǒng)的設(shè)計與實現(xiàn)[D].成都:電子科技大學(xué),2012.

[2]蘇夢,馮達(dá),陸朝榮,等.基于PLC的油料儲運(yùn)監(jiān)控系統(tǒng)的設(shè)計和實現(xiàn)[J].微計算機(jī)信息,2006,22(6):9-1.

[3]蘇義鑫,呂華陽.基于MCGS組態(tài)軟件的油庫監(jiān)控管理軟件開發(fā)[J].工業(yè)控制計算機(jī),2003,16(7):30-31.

[4]JohnSharp.VisualC#從入門到精通[M].周靖,譯.8版.北京:清華大學(xué)出版社,2016.6.

[5]李蘭友,韓廣峰,裘旭光.VisualC#圖形程序設(shè)計實例[M].北京:國防工業(yè)出版社,2003.4.

[6]AndrewTroelsen.ProC#5.0andthe.NET4.5FrameworkSixthEdition精通C#[M].姚琪琳,朱曄,肖逵,等,譯.6版.北京:人民郵電出版社,2014.5.

[7]李江全,鄧紅濤,劉巧,李偉,等.VisualC#.NET串口通信及測控應(yīng)用典型實例[M].北京:電子工業(yè)出版社,2012:5.

作者:李明 游福成 姜超 張董 曹越 張陳煒 單位:北京印刷學(xué)院信息工程學(xué)院