999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于組件的小型分布式控制系統軟件的設計及應用

2012-05-11 00:45:26徐蘭春
微型電腦應用 2012年5期
關鍵詞:數據庫系統

徐蘭春

0 引言

當前雖然分布式控制系統軟件眾多,但是均由專門廠商開發,擁有龐大的軟件包,價格昂貴。對于中小型企業來說,他們需要的是一套小巧、經濟實用、操作起來簡明方便、運行穩定可靠、易于擴展因此的系統,因此靈活、易于擴展、集成、高內聚、低耦合的小型分布式控制系統軟件需求很強。

采用國際電工委員會的IEC61131-3開放型國際編程標準編寫控制系統軟件,因此通用性得到保證,并且采用面向對象和基于組件的開發思想,使得開發各個模塊簡明直觀、易于復用和擴展。實時數據庫數據分類存儲,提高了系統運行效率和實時性。使用XML技術存儲數據,使得其網絡上易于傳輸。

1 系統的總體設計

結合中小型企業對控制軟件要求小巧、經濟實用、穩定可靠、易于擴展等需求特點,本文設計了DCS軟件系統結構系統的典型模塊包括:集中應用程序管理器、人機界面模塊(包括開發和運行兩部分)、實時數據庫模塊、歷史數據庫模塊、I/O驅動模塊,如圖1所示:

圖1 系統總體結構

系統通過I/O驅動模塊從工業現場設備獲得數據,對數據進行必要轉換,送到實時數據庫后,一方面通過人機界面模塊把需要顯示的信息顯示在屏幕上,另一方面按照組態要求和操作員的指令將控制指令信息送到工業現場設備,對執行機構實施控制。對于需要存儲的歷史變量,周期地從實時數據庫中獲取。

2 人機界面的模塊設計

人機界面模塊完成系統和用戶之間的交互作用,主要包括以下功能:1)圖形顯示功能;2)圖形編輯功能;3)圖形文件管理。雖然工業現場設備種類繁多,外形各異,但是各種復雜設備的圖形均可由一些基本的圖元組成,我們可以用這些基本圖元構成復雜的工業流程畫面。用戶在人機界面模塊中的基本操作,如圖2所示:

圖2 人機界面模塊設計圖

2.1 各種圖元類的實現

本系統人機界面模塊采用C#編程語言,在Visual Studio 2010環境下開發,將圖元分為3種:基本圖元類、合成圖元類、動態圖元類。我們先抽象出一個抽象的抽象圖形類CGraphicObject,讓基本圖元類、合成圖元類、動態圖元類來繼承它,抽象圖形類有Color和Pen等字段,還有待實現的Draw()、SetData()、Inside()、Intersect()、DisplayFocus()等方法,用于保存圖元的數據、繪制圖元、和判斷圖元所處的位置。基本圖元類包括直線CLine、圓CCirc、方形CRect、折線Cbrok類等,他們繼承抽象圖形類CGraphicObject,實現父類的一些方法,并添加自己特有的字段和方法;下面是基本圖元類中方形類的定義:

public class CRectangle:CGraphicObject

{

public Point x;

public long w,h;

……

public CRectangle();

public CRectangle(Point x,long w,long h);

public CRectangle(Point x,Point y);

public override void SetData(Point x,Point y);

public override void Draw(Graphics g);

public override bool Inside(Rectangle R);

public override bool Intersect(Point p);

public override void DisplayFocus(Graphics g);

……

}

和基本圖元類一樣,合成圖元類仍然繼承基類CgraphicObject,所不同的是合成圖元類多了一些字段和方法:如字段Grapiclist用來存儲基本圖元對象,方法AddObj()和Remove(),用于增刪合成圖元內子對象;動態圖元類也是由基本圖元類CGraphicObject直接派生而得來的,它特有的屬性為sbdrawing和m_vnum等。Sbdrawing是一個數組,用來存儲大量的基本圖元對象,m_vnum是數組中具體某個圖元的下標,通過數它可以獲得相應的圖元,設置相應屬性,如是否顯示等。

2.2 基本圖元的存儲

繪制好的基本圖元,我們需要將它以文件的形式保存,在開發模塊中,圖元信息應保存在內存中以便用戶對圖元進行修改。一般有數組、鏈表、關系數據庫文件的保存方式。鏈表優點插入圖元和刪除圖元比較方便、缺點實現起來比較復雜。關系數據庫文件方式優點使用起來比較方便,缺點系統開銷太大,另外保密性不好。本系統采用數組的方式,這個方法實現起來比較容易。我們定義一個圖形數組類,包含一個List類型的字段list,用于在內存中保存已繪制的圖形(各個CgraphicObject對象),還有一些對字段list中對象進行操作的方法。繪圖完成時需要將所繪制的圖形保存起來以便下次使用,使用XmlSerializer進行串行化,將圖元對象以文件的形式保存起來,當需再次打開圖形使用時,通過Deserialize操作,再在把圖形對象繪制出來。

3 實時數據庫模塊的設計

實時數據庫除了具有傳統數據庫的功能外,還有自己的特有的性質,主要實時性方面的要求。實時系統數據庫要求在規定的時間內完成指定的任務。

3.2 實時數據庫模塊的實現

1.實時數據庫中數據的面向對象分析。在分布式控制軟件中,實時數據庫處理的對象一般是各種“點”(或稱為變量)。一個點由若干參數組成,系統以點的參數保存各種信息。一般來說,標準的點類型有:模擬I/O點類型、數字I/O點類型、模擬內存點類型、數字內存點類型、累計點類型等[1]。結合所有類型“點”的性質抽象出一個基類,基類直接派生出I/O點和內存點;I/O點派生出I/O數字點和I/O模擬點,內存點派生出內存數字點和內存模擬點。

2.實時數據庫系統數據的存儲策略。實時數據庫系統綜合采用了傳統數據庫系統、文件系統和內存數據庫系統。采用的存儲策略是:(1)對于長期需要保存的非共享數據,采用文件的方式存儲在磁盤或者其他可以移動的設備上,具體方法與本文基本圖元存儲類似。(2)對于工業控制過程中有些數據量很大,但又不經常使用的數據,將其存放在外存中,采用微軟的SQL Server,可以通過LINQ to SQL對數據進行存取操作。(3)對于每個采樣周期都要更新的數據采用內存數據庫系統存取。本文采用紅黑樹來組織這類數據,紅黑樹在二叉樹定義的基礎上,增加了自己的5條規則:1)任何一個節點不是紅色就是黑色;2)根節點為黑色;3)如果節點是紅色,則子節點必為黑色;4)任意一個葉子節點必須為黑色;5)任何以節點至NULL(樹尾端)的任何路徑,所含黑節點的個數必須相同。以上5條性質的強約束使得這棵樹是大致平衡的,因此對紅黑樹元素的操作(如查找)在最壞的情況下都是高效的。在一棵有100萬個節點的樹中查找任意元素最多需要約30次比較,實時性得到保證。為了便于對底層數據進行操作,采用C++開發實時數據庫。下面是紅黑樹類的定義:

class Rb_Tr

{

private:

Tr_node*root;//根指針

Tr_node*Nil;//哨兵結點指針

public:

Rb_Tr();

~Rb_Tr();

void Leaf_Rotate(Tr_node*x);//左旋轉

void Right_Rotate(Tr_node*x);//右旋轉

bool RB_Search(int k,Tr_node*&x);//搜索

bool RB_Insert(Tr_node*x);//插入

void RB_Insert_Fixup(Tr_node*z);//插入后調整紅黑樹結構

void RB_Create(int A[],int n);//創建紅黑樹

Tr_node *RB_Successor(Tr_node*x);//返回結點x的直接后繼

bool RB_Delete(int k);//刪除

void RB_Delete_Fixup(Tr_node*x);//刪除后調整紅黑樹結構

void LevelOrder_Traverse();//層次遍歷紅黑樹

void InOrder_Traverse();//中序遍歷紅黑樹

};

這樣,通過外存數據庫(SQL Server 2008)、文件管理系統、內存數據庫,既保證了數據的共享性、完整性、又節約了內存,保證了系統的響應速度。

4 歷史數據庫模塊的設計

歷史數據庫用于存儲實時數據庫中需要長期保存的數據,它按照一定的周期定時從實時數據庫中獲取數據。該模塊的設計主要用到了LINQ to SQL,它是.NET Framework 3.5版的一個組件,提供了用于將關系數據作為對象管理的運行時基礎結構[3]。在 LINQ to SQL 中,關系數據庫的數據模型映射到用開發人員所用的編程語言表示的對象模型。我們在SQL Server 2008中建立歷史數據庫,建立所需要存儲各類點的表,然后在Visual Studio 2010環境下使用對象關系設計器,把歷史數據庫中的數據模型映射到我們編程語言表示的對應模型上,從而實現歷史數據庫中的數據與編程語言(C#或C++)表示的對像模型數據(人機界面模塊中的數據和實時數據庫中的數據)交互。

5 小型控制系統軟件的應用

本軟件開發的某船舶控制系統的壓載系統監控界面,圖中為自動控制模式下的壓載水置換模式工況。該模式下船的左舷向右舷排水或右舷向左舷排水以平衡船在水中的姿態。使用情況表明該系統穩定可靠、界面直觀易懂、實時性良好,并能根據各種工況進行相應的處理,如圖3所示:

圖3 壓載系統人機界面

6 結論

本文結合中小企業對分布式控制系統軟件需求的特點,設計了一個小型的分布式控制系統軟件。文中重點論述了人機界面開發和實時數據庫兩個核心模塊,采用了面向對象的思想來設計分析各個模塊底層的數據結構,對高層軟件架構采用了基于組件開發的思想,使得軟件結構清晰合理,易于開發、便于擴展,同時使用起來穩定可靠、經濟適用。

[1]李建偉,郭宏.監控組態軟件的設計與開發[M].冶金工業出版社.2007.

[2]馬國華.監控組態軟件及其應用[M].清華大學出版社.2001.

[3]王小科,王軍.C#開發實戰1200例[M].清華大學出版社.2011.6.

[4]程潔.大話設計模式[M].清華大學出版社.2007.12.

[5]廖勇,李新峰,付志濤.Visual C#學習筆記[M].電子工業出版社.2008.5.

[6]付釗,呂海峰.組態軟件中實時數據庫的研究[J].計算機時代.2011.7.

猜你喜歡
數據庫系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
主站蜘蛛池模板: 人妻精品全国免费视频| 国产乱人免费视频| 亚洲欧美一级一级a| 少妇被粗大的猛烈进出免费视频| 亚洲中文精品久久久久久不卡| 天堂成人在线| 99久久这里只精品麻豆| 国产v精品成人免费视频71pao | 久久人搡人人玩人妻精品| 91免费国产在线观看尤物| 日韩av电影一区二区三区四区| 伊伊人成亚洲综合人网7777 | 美美女高清毛片视频免费观看| 激情无码视频在线看| 97久久超碰极品视觉盛宴| 不卡无码h在线观看| 亚洲福利一区二区三区| 久久综合婷婷| 亚洲成人精品| 麻豆精选在线| 99re66精品视频在线观看 | 亚洲第一黄片大全| 亚洲一级毛片免费观看| 亚洲欧美不卡| 国产精品专区第1页| 在线观看91香蕉国产免费| 欧美日韩国产高清一区二区三区| 国产在线一区二区视频| 国产在线无码一区二区三区| 91无码视频在线观看| 91精品国产无线乱码在线 | 色婷婷综合在线| 欧美日韩另类国产| 日韩欧美中文字幕在线韩免费| 一本视频精品中文字幕| 免费A级毛片无码免费视频| 午夜福利在线观看入口| 女人18一级毛片免费观看| 国产亚洲精| 天天综合亚洲| 乱人伦中文视频在线观看免费| 男女精品视频| 亚洲欧美在线综合图区| 欧美人与性动交a欧美精品| 国产欧美视频一区二区三区| 国产99在线| 国产精品一区在线麻豆| 久久综合色天堂av| 亚洲日韩AV无码精品| 天天躁夜夜躁狠狠躁躁88| 无码一区中文字幕| 亚洲天堂.com| 国产va欧美va在线观看| 91尤物国产尤物福利在线| 国产乱子伦手机在线| 三级国产在线观看| 成人免费一级片| 免费精品一区二区h| 免费网站成人亚洲| 国产内射一区亚洲| 亚洲免费成人网| 国产精品视频公开费视频| 国产精品自拍合集| 无码aaa视频| 中文无码影院| 免费一级无码在线网站| 无码专区第一页| 色呦呦手机在线精品| 亚洲综合香蕉| 国产精品妖精视频| 男女男免费视频网站国产| 在线欧美日韩| 欧美中文一区| 亚洲国产成人在线| 国产精品爽爽va在线无码观看| 青青草原国产一区二区| 欧美日韩一区二区在线免费观看| 片在线无码观看| 国产成人h在线观看网站站| 欧美一区二区三区香蕉视| 亚洲香蕉伊综合在人在线| 色综合久久综合网|