亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Linux平臺(tái)組態(tài)軟件圖形界面系統(tǒng)的設(shè)計(jì)研究

        2015-03-31 13:43:45劉思洋
        物聯(lián)網(wǎng)技術(shù) 2015年3期
        關(guān)鍵詞:組態(tài)軟件

        劉思洋

        摘 要:主要介紹了工業(yè)控制組態(tài)軟件開(kāi)發(fā)環(huán)境中圖元類(lèi)的設(shè)計(jì)思想,結(jié)合實(shí)時(shí)數(shù)據(jù)庫(kù)應(yīng)用,并利用QT集成開(kāi)發(fā)工具及C++面向?qū)ο蟮奶匦裕o出了在Linux平臺(tái)下組態(tài)人機(jī)界面中圖元類(lèi)的一種設(shè)計(jì)實(shí)現(xiàn)方法,實(shí)現(xiàn)了圖元控件的封裝性、獨(dú)立性和可重用性。

        關(guān)鍵詞:組態(tài)軟件;圖元設(shè)計(jì);組態(tài)動(dòng)畫(huà);Linux

        中圖分類(lèi)號(hào):TP316 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2015)03-00-03

        0 引 言

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

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

        1 組態(tài)介紹,結(jié)構(gòu)

        組態(tài)軟件系統(tǒng)需要適用于工業(yè)控制現(xiàn)場(chǎng)管理,其結(jié)構(gòu)主要是由組態(tài)開(kāi)發(fā)模塊,用戶界面運(yùn)行模塊,實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng),通信模塊以及I/O驅(qū)動(dòng)模塊等組件組成,結(jié)構(gòu)框圖如圖1所示。其中,用戶圖形界面系統(tǒng)將直觀的展示系統(tǒng)運(yùn)行狀態(tài),是最直觀,與用戶交互也最直接的主要模塊。

        圖1 組態(tài)軟件主要架構(gòu)

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

        組態(tài)軟件系統(tǒng)采用Qt/E集成開(kāi)發(fā)工具進(jìn)行設(shè)計(jì)開(kāi)發(fā)。Qt/E最初由奇趣科技開(kāi)發(fā),后來(lái)為諾基亞公司收購(gòu),是一個(gè)跨平臺(tái)的C++應(yīng)用程序以及UI開(kāi)發(fā)框架。它支持Linux操作系統(tǒng),具有跨平臺(tái)的優(yōu)勢(shì),同時(shí),也支持其他常見(jiàn)的如Windows操作系統(tǒng),真正實(shí)現(xiàn)了一次開(kāi)發(fā)而跨平臺(tái)運(yùn)行的目標(biāo)。

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

        Qt具有完備的圖形開(kāi)發(fā)工具,提供了雙緩沖機(jī)制,能夠把一個(gè)窗口部件渲染到一個(gè)脫屏QPixmap中,然后再把這個(gè)QPixmap復(fù)制到顯示屏幕上。因此,用于組態(tài)圖形運(yùn)行系統(tǒng)中就能夠消除屏幕的閃爍,更好地支持組態(tài)運(yùn)行系統(tǒng)中圖形界面的操作和展示,因此QT集成開(kāi)發(fā)環(huán)境非常適用于組態(tài)軟件的開(kāi)發(fā)目標(biāo)。

        2 組態(tài)圖形運(yùn)行系統(tǒng)的設(shè)計(jì)

        組態(tài)軟件中,構(gòu)成工業(yè)控制現(xiàn)場(chǎng)的圖形界面由各個(gè)簡(jiǎn)單的圖元對(duì)象組成,它們是組態(tài)運(yùn)行畫(huà)面的基礎(chǔ)單元,也是動(dòng)畫(huà)功能的基本元素,主要分為基本圖元和動(dòng)態(tài)圖元兩類(lèi)。每個(gè)圖元擁有影響和決定其外觀展示的各種屬性,用戶通過(guò)配置不同的屬性值,在進(jìn)入運(yùn)行系統(tǒng)后將體現(xiàn)為不同形式的外觀展示。Qt的視圖框架中包括QGraphicsView,QGraphicsScene, QGraphicsItem和Qpainter,能夠提供給用戶開(kāi)發(fā)圖形界面所需的必要元素,并且使用C++高級(jí)編程語(yǔ)言,支持面向?qū)ο箝_(kāi)發(fā)。能夠進(jìn)行圖元的圖形展示,可以繪制從簡(jiǎn)單的直線到復(fù)雜的和弦曲線等形狀和動(dòng)畫(huà)效果。

        從Qt 4.2開(kāi)始引入的QGraphicsView框架用來(lái)取代Qt 3中的Canvas模塊,并在很多地方進(jìn)行了改進(jìn),QGraphicsView能夠管理大量圖元,支持如碰撞檢測(cè)、坐標(biāo)變換等功能。QGraphicsView中的圖元能夠處理鍵盤(pán)事件、鼠標(biāo)事件,包括鼠標(biāo)按下,移動(dòng),釋放,雙擊事件,能夠跟蹤鼠標(biāo)移動(dòng)。在QGraphicsView框架中,通過(guò)二元空間劃分樹(shù)提供了快速的圖元查找,這樣就能夠?qū)崟r(shí)地顯示大場(chǎng)景??蚣苤邪齻€(gè)主要的類(lèi),分別是QGraphicsView,QGraphicsScene, QGraphicsItem,依次分別是視圖,場(chǎng)景和圖元。

        QGraphicsItem是在一個(gè)QGraphicsScene中最基本的圖形類(lèi),它是在QGraphicsScene 中繪制的各個(gè)圖形的項(xiàng)的基類(lèi),類(lèi)中包括聲明圖形項(xiàng)的位置,進(jìn)行碰撞檢測(cè),繪制的重載和進(jìn)行各個(gè)項(xiàng)之間的相互作用的事件處理等屬性。

        Qgraphicsscene進(jìn)行場(chǎng)景的展示,包含許多不同的項(xiàng)。場(chǎng)景(以及它的項(xiàng))在視圖中顯示,這樣用戶就可以看到了。QGraphicsView提供一個(gè)顯示QGraphicsScene內(nèi)容的窗口,可以在構(gòu)造時(shí)候把場(chǎng)景對(duì)象作為參數(shù),或者之后使用setScene()來(lái)設(shè)置View的場(chǎng)景,然后調(diào)用show()函數(shù)后,view就可以默認(rèn)的在場(chǎng)景的中心進(jìn)行圖形界面的顯示。

        2.1 簡(jiǎn)單靜態(tài)圖元

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

        由于不同圖元要求圖形有不同形狀,大小和顏色等,需要重寫(xiě)其paint函數(shù),對(duì)圖元類(lèi)的屬性值進(jìn)行賦值,畫(huà)出期望的圖形形狀和顏色,以矩形圖元為例:

        class MyRect: public QGraphicsObject{

        public:

        MyRect( );

        QRectF boundingRect() const;

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

        };

        重寫(xiě)paint函數(shù),對(duì)不同屬性進(jìn)行賦值,在函數(shù)定義中實(shí)現(xiàn)圖像的繪制。

        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);

        }

        即可構(gòu)造出自定義大小/形狀和顏色的平面矩形形狀。其他簡(jiǎn)單圖形例如圓形、直線、多邊形等,都可以使用類(lèi)似的方法進(jìn)行定義和重寫(xiě),就可以設(shè)計(jì)畫(huà)出不同的簡(jiǎn)單圖形元素。

        2.2 動(dòng)態(tài)圖元的設(shè)計(jì)實(shí)現(xiàn)

        系統(tǒng)中的動(dòng)態(tài)運(yùn)行圖元類(lèi)能夠靈活而直觀的顯示工業(yè)現(xiàn)場(chǎng)運(yùn)行狀態(tài),每一個(gè)動(dòng)態(tài)的控件有獨(dú)立的數(shù)據(jù)源,因而有特定的動(dòng)畫(huà)功能和效果。以動(dòng)態(tài)圖形水管流動(dòng)的圖元為例,可以使用QT/E中QGraphicsDropShadowEffect 類(lèi)并設(shè)置數(shù)據(jù)范圍使得管道流水具有陰影效果,并且將圖元項(xiàng)添加到動(dòng)畫(huà)組QParallelAnimationGroup中,則動(dòng)態(tài)圖元類(lèi)型具有陰影動(dòng)畫(huà)效果,以水管WaterPipe類(lèi)為例,實(shí)現(xiàn)代碼如下:

        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類(lèi)型圖元項(xiàng)的QGraphicsScene場(chǎng)景,進(jìn)行初始化和調(diào)用顯示函數(shù)后,在圖形界面運(yùn)行系統(tǒng)中便會(huì)顯示出水管動(dòng)態(tài)流動(dòng)的畫(huà)面效果,因此,對(duì)于類(lèi)似的具有動(dòng)態(tài)畫(huà)面效果的圖元類(lèi)型,可以采用上述方法設(shè)計(jì)實(shí)現(xiàn),并能夠在Linux平臺(tái)系統(tǒng)中得到良好應(yīng)用。

        3 結(jié) 語(yǔ)

        本文采用在Linux系統(tǒng)下Qt/E進(jìn)行開(kāi)發(fā)設(shè)計(jì),解決了組態(tài)圖形界面中的簡(jiǎn)單圖元設(shè)計(jì)和實(shí)現(xiàn)的問(wèn)題,提出了采用面向?qū)ο笤O(shè)計(jì)思想,對(duì)不同的靜態(tài)和動(dòng)態(tài)圖元控件類(lèi)的設(shè)計(jì)開(kāi)發(fā)和研究。隨著工業(yè)自動(dòng)化的發(fā)展和控制系統(tǒng)的規(guī)模不斷增大,使得組態(tài)軟件的功能需求日漸增多,系統(tǒng)變得更加復(fù)雜。由于組態(tài)軟件系統(tǒng)整體的復(fù)雜性,組態(tài)軟件系統(tǒng)中各個(gè)模塊之間的交互以及運(yùn)行展示仍需要根據(jù)實(shí)際應(yīng)用中的不同需求、不同情況進(jìn)行不斷的優(yōu)化和完善。

        參考文獻(xiàn)

        [1]王亞青,陳青,劉暢生,等. 組態(tài)軟件設(shè)計(jì)與開(kāi)發(fā)[M]. 西安:西安電子科技大學(xué)出版社,2003.

        [2]李冬梅. 基于Qt的組態(tài)軟件的設(shè)計(jì)與開(kāi)發(fā)[D].大連:大連理工大學(xué),2012.

        [3]段鵬,金敏. 嵌入式Linux組態(tài)軟件圖形界面設(shè)計(jì)實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2008(5):47-48.

        [4]譚曉鵬. 工業(yè)控制中嵌入式組態(tài)的研究[D]. 成都:電子科技大學(xué),2008.

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

        猜你喜歡
        組態(tài)軟件
        基于組態(tài)軟件的PLC仿真教學(xué)系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)
        車(chē)床自動(dòng)上下料機(jī)械手臂自動(dòng)化改造電控方案設(shè)計(jì)
        基于面向?qū)ο蟮慕M態(tài)軟件實(shí)時(shí)數(shù)據(jù)庫(kù)的設(shè)計(jì)
        PLC與組態(tài)軟件在空壓機(jī)氣源測(cè)控系統(tǒng)中的應(yīng)用
        科技傳播(2016年10期)2016-07-15 23:48:53
        基于MODBUS RTU協(xié)議的數(shù)據(jù)采集及控制模擬研究
        基于WebAccess的PLC遠(yuǎn)程控制系統(tǒng)設(shè)計(jì)
        久久精品岛国av一区二区无码| 自慰高潮网站在线观看 | 无码高清视频在线播放十区| 国产成人久久精品亚洲小说| 中文字幕乱码亚洲美女精品一区| 一区二区三区免费观看在线视频| 日本精品人妻一区二区| 91国产自拍精品视频| 色综合悠悠88久久久亚洲| 插上翅膀插上科学的翅膀飞| 内射中出日韩无国产剧情| 国产精品福利一区二区| 熟女少妇在线视频播放| 精品日韩欧美一区二区在线播放| 国产内射XXXXX在线| 日本一极品久久99精品| 成人久久精品人妻一区二区三区| 久久精品夜色噜噜亚洲a∨| 国产综合精品一区二区三区| 亚洲精品夜夜夜妓女网| 国产乱子伦视频大全| 日本丶国产丶欧美色综合| 成人特黄特色毛片免费看| 亚洲永久免费中文字幕| 久久久久久夜精品精品免费啦| 男女猛烈无遮挡免费视频| 亚洲国产成人久久综合电影| vr成人片在线播放网站| 久久精品国产久精国产69| 国产又大大紧一区二区三区| 精品国产精品三级在线专区| 久久国产色av免费观看| 熟妇人妻中文av无码| 亚洲色图视频在线播放| 热综合一本伊人久久精品| 亚洲一区二区三区乱码在线中国| 一本色道久久综合无码人妻| 亚洲免费天堂| 久久少妇呻吟视频久久久| 韩国三级黄色一区二区| 国产精品人人做人人爽人人添|