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

基于Linux平臺組態軟件圖形界面系統的設計研究

2015-03-31 13:43:45劉思洋
物聯網技術 2015年3期

劉思洋

摘 要:主要介紹了工業控制組態軟件開發環境中圖元類的設計思想,結合實時數據庫應用,并利用QT集成開發工具及C++面向對象的特性,給出了在Linux平臺下組態人機界面中圖元類的一種設計實現方法,實現了圖元控件的封裝性、獨立性和可重用性。

關鍵詞:組態軟件;圖元設計;組態動畫;Linux

中圖分類號:TP316 文獻標識碼:A 文章編號:2095-1302(2015)03-00-03

0 引 言

隨著工業控制自動化水平的不斷提高,計算機應用技術在工業控制領域的應用也越來越廣泛。其中,組態軟件是用于管理、控制和監控工業生產現場的軟件平臺,主要是指控制數據采集與生產過程監控的專用軟件。組態軟件解決了以前在控制系統中的復雜流程設計、以及數據采集等功能需要依靠復雜編程來實現的問題。它可以為工程人員提供使用靈活的組態開發方式和運行環境,在工業控制系統中同時進行工業現場實時數據的采集處理和存儲,數據趨勢顯示、圖形動畫展示、報表、實時報警顯示等多種任務。并且能夠提供數據安全訪問機制,可以采用基于角色的多級關系安全訪問控制對實時數據庫進行操作,防止未授權用戶修改或刪除工業控制現場的有效數據,避免非法訪問系統而造成工業生產事故和損失。

工業控制應用的硬件平臺種類繁多,硬件平臺上的軟件系統需要有良好的可移植性。Linux操作系統是基于Unix設計理念發展出來的操作系統,其系統源代碼是開源的。雖然目前存在很多不同的Linux,但它們都使用了Linux內核并且具有廣泛的硬件支持,可以安裝在各種計算機硬件設備中,如臺式計算機,大型機、手機、平板電腦、路由器等,因此非常適合于工業控制領域。Linux內核功能全面,具備網絡管理、網絡服務等方面的功能,可使用戶很方便地建立高效穩定的通信,非常適用于工業控制領域自動化中的設備通信需求。其系統設計模塊化程度高,代碼的開源性也為用戶提供了很高的自由度,對于工業控制領域中多樣的需求,開發者可以根據個性化需求而有針對性的對操作系統源代碼進行修改和優化,綜合各方面優勢,使得Linux操作系統能夠在工業控制領域取得廣泛的使用。

1 組態介紹,結構

組態軟件系統需要適用于工業控制現場管理,其結構主要是由組態開發模塊,用戶界面運行模塊,實時數據庫系統,通信模塊以及I/O驅動模塊等組件組成,結構框圖如圖1所示。其中,用戶圖形界面系統將直觀的展示系統運行狀態,是最直觀,與用戶交互也最直接的主要模塊。

圖1 組態軟件主要架構

從用戶使用的角度來看,組態軟件一般由開發環境和運行環境組成。工程人員在開發環境下,根據不同的工業現場設計需求,進行個性化的組態和配置,進入運行系統后,將已經設計好的組態程序進行運行,圖形界面運行系統通過通信模塊與實時數據庫通信,數據庫通過I/O通信模塊采集現場設備數據并進行處理。一方面,實時數據庫通過IO通信模塊獲取工業現場產生的實時生產數據,經過數據庫處理后傳送回組態運行界面,組態運行系統能夠以圖形或數據直觀展示工業現場的生產情況,能夠進行報警處理,顯示趨勢曲線等多種方式向用戶提供工業控制解決方案。另一方面,用戶也可以通過修改運行環境中的圖形元素和參數配置,通過通信接口向圖元對應的工控現場設備發送指令。組態軟件就可以使用戶能夠以直觀簡潔、便于操作的方式管理和監控工業現場的生產情況和相關數據。

組態軟件系統采用Qt/E集成開發工具進行設計開發。Qt/E最初由奇趣科技開發,后來為諾基亞公司收購,是一個跨平臺的C++應用程序以及UI開發框架。它支持Linux操作系統,具有跨平臺的優勢,同時,也支持其他常見的如Windows操作系統,真正實現了一次開發而跨平臺運行的目標。

Qt提供的信號和槽(Signal/Slot)機制是其核心特征機制之一。它可以讓編程人員把一些互不了解的對象綁定在一起,用于對象之間的通信,槽可以和信號連接在一起,每當發射信號時,就會自動調用槽函數。它和普通C++成員函數幾乎是一樣的,可以是虛函數,可以被重載,可以是共有的、保護的或者私有的,并且也可以被其他C++函數直接調用,參數也可以是任意類型。而且,編程人員在開發時可以設計自己的信號和槽,將信號聯系到某個槽上,則槽會在正確的時間,以正確的信號參數被調用。

Qt具有完備的圖形開發工具,提供了雙緩沖機制,能夠把一個窗口部件渲染到一個脫屏QPixmap中,然后再把這個QPixmap復制到顯示屏幕上。因此,用于組態圖形運行系統中就能夠消除屏幕的閃爍,更好地支持組態運行系統中圖形界面的操作和展示,因此QT集成開發環境非常適用于組態軟件的開發目標。

2 組態圖形運行系統的設計

組態軟件中,構成工業控制現場的圖形界面由各個簡單的圖元對象組成,它們是組態運行畫面的基礎單元,也是動畫功能的基本元素,主要分為基本圖元和動態圖元兩類。每個圖元擁有影響和決定其外觀展示的各種屬性,用戶通過配置不同的屬性值,在進入運行系統后將體現為不同形式的外觀展示。Qt的視圖框架中包括QGraphicsView,QGraphicsScene, QGraphicsItem和Qpainter,能夠提供給用戶開發圖形界面所需的必要元素,并且使用C++高級編程語言,支持面向對象開發。能夠進行圖元的圖形展示,可以繪制從簡單的直線到復雜的和弦曲線等形狀和動畫效果。

從Qt 4.2開始引入的QGraphicsView框架用來取代Qt 3中的Canvas模塊,并在很多地方進行了改進,QGraphicsView能夠管理大量圖元,支持如碰撞檢測、坐標變換等功能。QGraphicsView中的圖元能夠處理鍵盤事件、鼠標事件,包括鼠標按下,移動,釋放,雙擊事件,能夠跟蹤鼠標移動。在QGraphicsView框架中,通過二元空間劃分樹提供了快速的圖元查找,這樣就能夠實時地顯示大場景。框架中包含三個主要的類,分別是QGraphicsView,QGraphicsScene, QGraphicsItem,依次分別是視圖,場景和圖元。

QGraphicsItem是在一個QGraphicsScene中最基本的圖形類,它是在QGraphicsScene 中繪制的各個圖形的項的基類,類中包括聲明圖形項的位置,進行碰撞檢測,繪制的重載和進行各個項之間的相互作用的事件處理等屬性。

Qgraphicsscene進行場景的展示,包含許多不同的項。場景(以及它的項)在視圖中顯示,這樣用戶就可以看到了。QGraphicsView提供一個顯示QGraphicsScene內容的窗口,可以在構造時候把場景對象作為參數,或者之后使用setScene()來設置View的場景,然后調用show()函數后,view就可以默認的在場景的中心進行圖形界面的顯示。

2.1 簡單靜態圖元

圖形運行系統簡單的靜態圖元,例如直線、圓形、多邊形等,在繪制此類圖形時,需要用到QPainter類,自定義圖元類繼承QWidget類并重載paintEvent ( QPaintEvent * )方法,可以在派生的圖元類中重新實現繪圖事件。

由于不同圖元要求圖形有不同形狀,大小和顏色等,需要重寫其paint函數,對圖元類的屬性值進行賦值,畫出期望的圖形形狀和顏色,以矩形圖元為例:

class MyRect: public QGraphicsObject{

public:

MyRect( );

QRectF boundingRect() const;

void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);

};

重寫paint函數,對不同屬性進行賦值,在函數定義中實現圖像的繪制。

void MyRect::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget){

Q_UNUSED(option);

Q_UNUSED(widget);

painter->setPen(QPen(Qt::black,2));

painter->setBrush(QColor(255,80,60));

painter->drawRect(-50,-50,50,20);

}

即可構造出自定義大小/形狀和顏色的平面矩形形狀。其他簡單圖形例如圓形、直線、多邊形等,都可以使用類似的方法進行定義和重寫,就可以設計畫出不同的簡單圖形元素。

2.2 動態圖元的設計實現

系統中的動態運行圖元類能夠靈活而直觀的顯示工業現場運行狀態,每一個動態的控件有獨立的數據源,因而有特定的動畫功能和效果。以動態圖形水管流動的圖元為例,可以使用QT/E中QGraphicsDropShadowEffect 類并設置數據范圍使得管道流水具有陰影效果,并且將圖元項添加到動畫組QParallelAnimationGroup中,則動態圖元類型具有陰影動畫效果,以水管WaterPipe類為例,實現代碼如下:

WaterPipe::WaterPipe(QGraphicsItem *parent)

: WaterPipePart(parent)

{

//setFlag(ItemHasNoContents);

QGraphicsDropShadowEffect *effect = new QGraphicsDropShadowEffect;

effect->setBlurRadius(1);

this->setGraphicsEffect(effect);

QGraphicsObject *flowItem = new Flow(this);

QGraphicsObject *pipeItem = new Pipe(this);

pipeItem->setPos(0,20);

flowItem->setPos(20,21);

QParallelAnimationGroup *animation = new QParallelAnimationGroup(this);

QPropertyAnimation *flowAnimation = new QPropertyAnimation(flowItem, “pos”);

flowAnimation->setStartValue(QPointF(63,0));

flowAnimation->setEndValue(QPointF(117,0));

animation->addAnimation(flowAnimation);

animation->setLoopCount(-1);

animation->start();

}

在視圖QGraphicsView中添加包含有WaterPipe類型圖元項的QGraphicsScene場景,進行初始化和調用顯示函數后,在圖形界面運行系統中便會顯示出水管動態流動的畫面效果,因此,對于類似的具有動態畫面效果的圖元類型,可以采用上述方法設計實現,并能夠在Linux平臺系統中得到良好應用。

3 結 語

本文采用在Linux系統下Qt/E進行開發設計,解決了組態圖形界面中的簡單圖元設計和實現的問題,提出了采用面向對象設計思想,對不同的靜態和動態圖元控件類的設計開發和研究。隨著工業自動化的發展和控制系統的規模不斷增大,使得組態軟件的功能需求日漸增多,系統變得更加復雜。由于組態軟件系統整體的復雜性,組態軟件系統中各個模塊之間的交互以及運行展示仍需要根據實際應用中的不同需求、不同情況進行不斷的優化和完善。

參考文獻

[1]王亞青,陳青,劉暢生,等. 組態軟件設計與開發[M]. 西安:西安電子科技大學出版社,2003.

[2]李冬梅. 基于Qt的組態軟件的設計與開發[D].大連:大連理工大學,2012.

[3]段鵬,金敏. 嵌入式Linux組態軟件圖形界面設計實現[J].微計算機信息,2008(5):47-48.

[4]譚曉鵬. 工業控制中嵌入式組態的研究[D]. 成都:電子科技大學,2008.

[5]安吉宇. 基于Qt的Linux組態軟件研究與開發[J]. 電子器件,2006(2):29-35.

主站蜘蛛池模板: 精品91在线| 欧亚日韩Av| 蜜桃视频一区二区| 日本在线视频免费| 秋霞国产在线| 国产色婷婷| 国产欧美网站| 国产三级a| 国产精品亚洲片在线va| 中文无码毛片又爽又刺激| 亚卅精品无码久久毛片乌克兰| 无码'专区第一页| 欧美一区二区啪啪| 狠狠ⅴ日韩v欧美v天堂| 谁有在线观看日韩亚洲最新视频| 欧美成人综合在线| 欧美精品在线免费| 香蕉在线视频网站| 天天做天天爱天天爽综合区| 久久久亚洲色| 91精品国产一区自在线拍| 久久精品国产免费观看频道| 欧美午夜一区| 日本人真淫视频一区二区三区| 99久视频| 热久久综合这里只有精品电影| 日韩精品一区二区三区视频免费看| 国产精品林美惠子在线观看| 国产精品久久久久久影院| 青青网在线国产| 中字无码av在线电影| 亚洲精品不卡午夜精品| 2021国产精品自拍| 91网址在线播放| 久久婷婷六月| 亚洲国内精品自在自线官| 成年免费在线观看| 国产原创演绎剧情有字幕的| 中文天堂在线视频| 欧美亚洲网| 在线观看亚洲精品福利片| 日本妇乱子伦视频| 在线精品欧美日韩| 东京热高清无码精品| 成人小视频在线观看免费| 在线观看免费人成视频色快速| 免费福利视频网站| 国产亚洲精品精品精品| 国产精品乱偷免费视频| 亚洲国产精品日韩av专区| 视频一区视频二区中文精品| 国产白浆一区二区三区视频在线| 欧美一级99在线观看国产| 日韩国产欧美精品在线| 亚洲床戏一区| 男人天堂伊人网| 欧美午夜网| 欧美成a人片在线观看| 欧美日韩国产成人高清视频| 日本人又色又爽的视频| 尤物在线观看乱码| 国产情精品嫩草影院88av| 亚洲五月激情网| 就去色综合| 日日噜噜夜夜狠狠视频| 中文字幕一区二区人妻电影| 久久精品只有这里有| 女人av社区男人的天堂| 亚洲黄色成人| 色亚洲激情综合精品无码视频| 欧亚日韩Av| 精品无码国产自产野外拍在线| 国产情侣一区| 亚洲综合婷婷激情| 国产香蕉一区二区在线网站| 国产99视频在线| 亚洲欧洲日韩国产综合在线二区| 久久亚洲国产最新网站| 亚洲资源站av无码网址| 午夜丁香婷婷| 久久动漫精品| 国产精品女熟高潮视频|