前言:想要寫出一篇引人入勝的文章?我們特意為您整理了計算機仿真的油料庫儲運模擬培訓范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:油料庫操作人員在上崗之前都要進行油庫的裝油和卸油專門培訓。采用真實的油罐進行操作培訓不但成本高,而且新學員操作容易引發事故而造成重大損失。采用軟硬件結合方式設計了一種基于計算機仿真的自動化油料庫作業模擬系統,該系統可以模擬油料庫的作業過程自動控制和手動操作,并實時監測油罐狀態和工藝參數,記錄與再現操作步驟。利用本系統可以提高油料存儲效益,降低在油料存儲中的人力成本,以及降低真實油罐操作的事故風險。
關鍵詞:監控系統;C#仿真;軟硬件結合
隨著信息技術、網絡技術、仿真技術、多媒體技術的飛速發展,為油庫油料儲運專業人員培訓系統設計的技術手段改革提供了強有力的支持。油庫中油料儲存罐和輸油管道所使用的各種控制閥門是油料儲運過程中必不可少的現場儀表,其智能化程度的高低、所含信息的多少和對故障的診斷與容錯能力直接影響到數據采集與監控系統的可靠性、穩定性和易用性。通常庫區中的控制閥數量眾多且分散,普通的控制閥所含信息量少而布線繁多,這在一定程度上使庫區監控系統的設計復雜化[1-2]。另外,硬件上檢測到的數據需要實時傳輸處理進入到計算機,并通過軟件界面顯示出來,給人以直觀的信息反饋,本系統就是采用軟硬件相結合的方式,把油罐加油與卸油儲運的過程動態反應到計算機軟件界面上來,讓人更直觀地進行模擬檢測與仿真控制。
1系統的整體邏輯結構
整個仿真模擬操作系統主要由以下幾部分構成:工業現場傳感器、現場信號轉換發送器(信息編碼及發送)、信號遠程傳輸(光纖傳輸)、信號接收轉換單元(光信號轉為電信號)、智能儀表和工業控制計算機[3]。整個油罐操作仿真模擬系統的邏輯結構油罐現場采用智能傳感器,傳感器采集油罐的液位和溫度信號(非電信號)并送給信號轉換裝置,通過信號轉換裝置將信息編碼變成光信號;采用光纖遠程傳輸信號,代替電信號的傳輸,這樣就可以防爆、防雷和防電磁干擾,排除傳輸過程中的各種干擾,對于石化等安全性很高的場合有很重要的意義;光信號經光纖傳到儀表室,由光電轉換裝置將光信號轉換為電脈沖信號,并送到智能儀表;智能儀表通過處理將其還原為相應的現場信號,按照RS232串口通信方式和計算機進行通信連接;工業控制計算機上的我們的監控管理軟件會從智能儀表處實時采集數據,進行數據分析,完成現場工況模擬和監控、數據存儲分析、重要參數設定、顯示和實時控制。
2仿真監控管理系統的功能設計
仿真監控管理系統的開發以邏輯功能模塊的實現為主線,下面通過用戶界面、系統管理、數據處理和通信傳輸等功能的實現,介紹程序設計思路。2.1系統管理系統管理是對仿真監控系統進行管理和維護的功能菜單項。為保證系統安全運行,系統實時要進行監控。系統管理包括登錄認證、登錄注銷、密碼修改、用戶管理和退出系統等。2.2用戶界面用戶界面是系統的主要功能界面,包括各種功能:1)系統主界面窗口,該窗口顯示油庫兩個油罐整體的模擬圖,根據現場傳感器傳來的實測值,通過計算與轉換,動態地顯示兩個油罐的閥門流速、液位和溫度等。兩個油罐模擬圖中建立了按鈕功能,在沒有初始化油罐的情況下是不能進行觸發的,只有在初始化成功之后才能點擊使用??梢栽O置每個油罐的流速或者卸速,還有油罐所進行的時間等,但是這一系列的操作時間都是建立在初始化成功的基礎上才能點擊觸發。系統的主界面窗口如圖2所示,要啟用系統,需要點擊油罐一模擬或油罐二模擬之后才可以使用。點擊油罐一模擬之后如圖3所示。2)油罐液位動態變化的動畫模擬,主要功能是模擬工業現場的油罐液位和溫度的實時變化,進出油的狀態、油泵、閥門及報警動畫。動畫模擬如圖4所示。圖中,油罐一正在以2m3/s的速度加油,油罐二正在以1m3/s的速度卸油。3)參數設定功能,傳感器會傳過來的各個數據,比如油罐的液位和溫度的報警界限值,如液位和溫度的上限、下限,一旦監測的時候達到這些值,系統會自動強制停止所在油罐的加油或者卸油狀態。4)狀態分析處理,狀態信息提示窗口,提供每個油罐所處的正在加油、正在卸油、將要加滿、將要卸完以及已加滿和已卸完等狀態,另外會提示報警,提供報警類型,報警來源等信息。比如油庫作業中常見的管線泄漏、閥門運轉故障、泵故障等。在實驗過程中,我們可以在加油主管道上設置手動閥門,手動控制閥門來模擬主管道泄漏情況;由“閥門限位故障設置按鈕”設置限位故障,模擬電動閥門開關不到位的故障現象;由故障模擬電機過載故障,泵通電后不能啟動,由故障開關來模擬泵電機缺相合斷電故障。2.3通信傳輸仿真監控系統分為現場監控工作模式和網絡多級工作組模式?,F場監控工作模式是單一的現場監控工作站點獨立工作,只有智能儀表和現場各控制面板之間通信,通信協議視儀表型號而定[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.
作者:李明 游福成 姜超 張董 曹越 張陳煒 單位:北京印刷學院信息工程學院