久久久91-久久久91精品国产一区二区-久久久91精品国产一区二区三区-久久久999国产精品-久久久999久久久精品

最新廣告
關(guān)注中國自動化產(chǎn)業(yè)發(fā)展的先行者!
工業(yè)智能邊緣計算2025年會
CAIAC 2025
2025工業(yè)安全大會
OICT公益講堂
當(dāng)前位置:首頁 >> 案例 >> 案例首頁

案例頻道

基于QT圖形視圖框架的PLC梯形圖編輯器的設(shè)計
  • 企業(yè):和利時集團(tuán)     領(lǐng)域:PLC /PAC/PCC/RTU     領(lǐng)域:智能制造    
  • 點(diǎn)擊數(shù):5231     發(fā)布時間:2021-05-17 16:19:54
  • 分享到:
針對自主可控可編程控制器上位機(jī)組態(tài)軟件的梯形圖編程需求,本文設(shè)計了一種梯形圖語言編輯器。它基于QT下的圖形視圖框架,對接口進(jìn)行了二次封裝與擴(kuò)展,實(shí)現(xiàn)了梯形圖中各組件的創(chuàng)建、繪制與管理等功能。該梯形圖編輯器已成功應(yīng)用于和利時推出的新一代自主可控PLC編程軟件平臺,為PLC系統(tǒng)的梯形圖邏輯組態(tài)提供了支持。

1 引言

PLC作為工業(yè)控制系統(tǒng)的重要組成部分,是現(xiàn)代工業(yè)自動化的重要支柱。2006年,國務(wù)院在發(fā)布的《國家中長期科學(xué)和技術(shù)發(fā)展規(guī)劃綱要(2006-2020年)》中提出建設(shè)“核高基”重大科技專項,2015年又提出“中國制造2025”。在此背景下,國產(chǎn)化、自主化已經(jīng)成為PLC市場發(fā)展的重要趨勢。QT開發(fā)框架因其出色的跨平臺性和代碼開源的特點(diǎn),成為開發(fā)自主可控軟件的優(yōu)良選擇。

IEC 61131-3是旨在規(guī)范可編程控制器(Programmable Logic Controller,簡稱PLC)編程語言的國際標(biāo)準(zhǔn),經(jīng)過十多年的發(fā)展和完善,已被廣大PLC使用者和生產(chǎn)廠商所認(rèn)可和支持[1]。它是國際電工委員會(IEC)定義的PLC編程系統(tǒng)規(guī)范,也是工業(yè)控制領(lǐng)域的通用標(biāo)準(zhǔn)。梯形圖(Ladder Diagram, LD)被稱為PLC的第一編程語言,憑借其直觀易學(xué)的優(yōu)點(diǎn),成為最廣泛的編程語言[2]。它作為IEC 61131-3規(guī)定的PLC編程語言之一,沿襲自繼電器控制電路的術(shù)語和符號,具有形象、實(shí)用等特點(diǎn),被稱為是“面向生產(chǎn)過程的編程語言”。

和利時推出的新一代自主可控編程軟件平臺AutoThink V4提供了對梯形圖語言的編程支持,完整的LD編程組態(tài)支持包括前端的編輯和管理,以及后端的編譯和執(zhí)行。本文主要介紹LD前端編輯器的設(shè)計和實(shí)現(xiàn)。

2 QT下圖形視圖框架的介紹

2.1 框架組成

圖形視圖框架(The Graphic View Framework)是QT中基于MVC(Model View Controller)的軟件設(shè)計模型開發(fā)出來的一個圖元管理與交互平臺。圖1為框架的結(jié)構(gòu)圖,它由三部分組成:

(1)場景(QGraphicsScene)

場景是圖元對象存儲和管理的容器,也是圖元存在的邏輯場所,我們創(chuàng)建的圖元只有添加到場景中才能進(jìn)行顯示和操作。

(2)視圖(QGraphicsView)

視圖是整個框架的對外交互接口,負(fù)責(zé)將場景中特定區(qū)域的內(nèi)容顯示出來。在實(shí)際使用中,可以對一個場景只添加一個視圖,也可以將多個視圖附加到同一個場景來顯示其不同區(qū)域或不同縮放旋轉(zhuǎn)變換下的狀況。

(3)圖元(QGraphicsItem)

圖元是場景中的最基本元件,單個圖元支持各種事件響應(yīng),多個圖元之間可以生成父子組合等層級關(guān)系。

16237459081.png

圖1 圖形視圖框架結(jié)構(gòu)

2.2 框架特點(diǎn)

(1)圖元管理

QT圖形視圖架構(gòu)使用了BSP(二叉空間分割樹)的數(shù)據(jù)結(jié)構(gòu)來組織和管理其中的圖元,能夠支持大場景下百萬數(shù)量級別的2D圖元的快速查找、排序以及實(shí)時顯示。

(2)坐標(biāo)系統(tǒng)

圖形視圖框架中存在三個坐標(biāo)系統(tǒng):場景坐標(biāo)、視圖坐標(biāo)及圖元坐標(biāo),每個系統(tǒng)都以自己的中心點(diǎn)為原點(diǎn)分別管理自己的坐標(biāo),三套系統(tǒng)之間使用映射來進(jìn)行坐標(biāo)轉(zhuǎn)換。

(3)圖形渲染

框架設(shè)計的坐標(biāo)系統(tǒng)使每個圖元僅需負(fù)責(zé)自己的圖形渲染,圖形視圖框架基于仿射矩陣變換的運(yùn)算處理能夠快速響應(yīng)縮放、旋轉(zhuǎn)等高級渲染需求。

除此之外,框架支持圖元間的z-order深度排序、碰撞檢測,以及動畫、OpenGL等高級應(yīng)用,便于之后的高級應(yīng)用擴(kuò)展 。

(4)事件處理

圖形視圖框架中包含一套事件傳播架構(gòu),支持對場景中圖元進(jìn)行雙精度的精確交互[3] 。

3 LD編輯器在AutoThink V4組態(tài)軟件中的功能

AutoThink V4是和利時研發(fā)的自主可控可編程控制系統(tǒng)的上位機(jī)軟件,它作為系統(tǒng)中的控制算法組態(tài)工具,運(yùn)行于工程師站中,技術(shù)人員通過它來進(jìn)行現(xiàn)場工程的邏輯設(shè)備組態(tài)。AutoThink V4基于QT環(huán)境進(jìn)行開發(fā),整體模塊結(jié)構(gòu)如圖2所示,其中框架管理和變量管理主要負(fù)責(zé)軟件的UI展示與人機(jī)交互,IEC組態(tài)與硬件配置負(fù)責(zé)編程語言與硬件模塊及協(xié)議的組態(tài),數(shù)據(jù)源通過組態(tài)、語法分析、指令翻譯等一系列處理,經(jīng)過編譯生成二進(jìn)制形式的目標(biāo)文件,最終通過在線模塊下發(fā)給PLC下位機(jī)執(zhí)行指令。

LD組態(tài)模塊是IEC組態(tài)部分的子模塊,分為前端編輯器及后端邏輯轉(zhuǎn)換與處理兩部分。梯形圖編輯器負(fù)責(zé)梯形圖中元件的創(chuàng)建、刪除、選中、繪制、語法檢查等管理操作,編輯器中的組態(tài)數(shù)據(jù)經(jīng)過語法檢查無誤后,將被LD后端轉(zhuǎn)換為一種預(yù)定好的中間語法結(jié)構(gòu)傳遞給編譯模塊進(jìn)行處理,生成目標(biāo)文件下裝到硬件設(shè)備端,并在在線監(jiān)控狀態(tài)下通過編輯器進(jìn)行調(diào)試。

16237458781.png

圖2 AutoThink V4模塊結(jié)構(gòu)圖

4 基于QT圖形視圖框架的梯形圖編輯器的設(shè)計

4.1 梯形圖編輯器的模塊結(jié)構(gòu)

本文實(shí)現(xiàn)的梯形圖編輯器模塊結(jié)構(gòu)如圖3所示,它基于QT的圖形視圖框架,采用三層結(jié)構(gòu)。編輯器分別從QGraphicsView、QGraphicsScene、QGraphicsItem繼承并實(shí)現(xiàn)自己的視圖、場景和各元件類。

16237458461.png

圖3 梯形圖編輯器的模塊功能圖

視圖類中放開了鼠標(biāo)鍵盤及拖拽等消息的接收,并在其中通過右鍵菜單響應(yīng)創(chuàng)建圖元管理的交互接口。圖元管理與邏輯信息存儲在場景類中完成,視圖類中的右鍵菜單響應(yīng)與場景類通過“信號/槽”機(jī)制進(jìn)行連接,當(dāng)鼠標(biāo)點(diǎn)擊右鍵菜單中的命令時,視圖類發(fā)出信號,場景類接收到該信號開始進(jìn)行元件的創(chuàng)建、刪除、復(fù)制粘貼等的操作。為了實(shí)現(xiàn)圖元的撤銷恢復(fù)編輯動作,場景類中設(shè)計了兩個棧結(jié)構(gòu)用于存儲撤銷與恢復(fù)的元件指針。考慮到場景關(guān)閉及打開時的內(nèi)容保存與重建,場景類還繼承了QObject,以實(shí)現(xiàn)對數(shù)據(jù)的序列化操作。本文實(shí)現(xiàn)了IEC61131-3規(guī)定的所有梯形圖元件,為了便于元素的管理和組織,還創(chuàng)建了一組抽象的邏輯元件用于表示不同元件之間的連接關(guān)系,元件之間可以存在父子包含關(guān)系,并以樹形結(jié)構(gòu)向下擴(kuò)展直至到達(dá)終端的葉子節(jié)點(diǎn)元件,當(dāng)父元件被刪除的時候,它將會遍歷刪除所有的子元件之后再釋放自身資源。除了繼承自QGraphicsItem,本文還為所有的梯形圖元件定義了一個基類CElement,用于記錄其工程所要用到的其他基本特性。

使用這種三層架構(gòu)很好地將數(shù)據(jù)的處理與表示進(jìn)行分離,為數(shù)據(jù)的組織管理提供了統(tǒng)一的接口,便于分層管理和降低耦合,簡化開發(fā)過程難度,提高開發(fā)效率。

4.2 主要接口封裝

本文實(shí)現(xiàn)的梯形圖編輯器,主要針對以下方面進(jìn)行了接口的二次封裝:

(1)鼠標(biāo)鍵盤消息響應(yīng)

在視圖、場景和圖元中均重載了keyPressEvent及mousePressEvent函數(shù),用于實(shí)現(xiàn)元件在離線狀態(tài)的選中判斷及快捷鍵等的響應(yīng)。

(2)圖元繪制渲染

因為圖形視圖框架特有的坐標(biāo)系統(tǒng),編輯器中場景和視圖類并不負(fù)責(zé)整體圖形的繪制,而是由每個元件單獨(dú)處理自己的圖元渲染。圖元在繪制時將以局部坐標(biāo)系作為參考,以自身包圍盒范圍為限定進(jìn)行圖形的渲染處理。因此,本文中所有的可見節(jié)點(diǎn)元件都重載了paint和boundingRect函數(shù),用于實(shí)現(xiàn)選中、離線、在線等不同狀況下的圖元顯示。

(3)拖拽動作響應(yīng)

梯形圖編輯器中需要經(jīng)常添加自定義或庫中的函數(shù)和功能塊,為了使用方便,需要實(shí)現(xiàn)拖拽添加函數(shù)塊和功能塊。因此,在場景、視圖和元件類中都分別重載了拖拽系列的函數(shù)dragEnterEvent、dragMoveEvent和dropEvent,同時,圖元中調(diào)用setAcceptDrops函數(shù)允許接收拖拽事件。

4.3 事件傳遞

圖4顯示了梯形圖編輯器中的事件傳遞流程,視圖類接收來自鼠標(biāo)鍵盤等外部設(shè)備事件或其他視圖的拖拽事件,然后將事件傳遞給場景類,場景類是整個事件傳播的中間層,負(fù)責(zé)將接收到的事件封裝后再次傳遞給對應(yīng)的元件,并在傳遞的過程中將自動對事件包含的坐標(biāo)進(jìn)行映射轉(zhuǎn)換。如果一個事件在場景中進(jìn)行了阻塞,那么對應(yīng)位置的元件將不會再接收到事件。

16237457941.png

圖4 梯形圖編輯器中的事件傳遞流程

4.4 實(shí)現(xiàn)效果

圖5為AutoThink V4實(shí)際運(yùn)行時的梯形圖編輯器效果圖,該編輯器支持梯形圖中不同元件的管理操作,支持離線和在線狀態(tài)下的圖形繪制,并能正確處理各種事件的響應(yīng),滿足梯形圖組態(tài)編程的前端需求。

16237457321.png

圖5 梯形圖編輯器的實(shí)際應(yīng)用效果圖

5 結(jié)論

本文基于QT中的圖形視圖框架設(shè)計了一種支持IEC 61131-3標(biāo)準(zhǔn)的梯形圖編輯器,并已成功添加到和利時AutoThink V4自主可控PLC編程軟件中。該編輯器使用方便、直觀,能夠?qū)μ菪螆D程序進(jìn)行邏輯組態(tài),滿足工程現(xiàn)場的使用需求。

作者簡介

吳錦雯(1982-),女,碩士,工程師,就職于北京和利時智能技術(shù)有限公司,主要研究方向為PLC技術(shù)、上位機(jī)軟件。

參考文獻(xiàn):

[1] 張海偉. 和利時IEC 61131-3編程軟件平臺[J]. 自動化博覽, 2016, (6) : 42 - 44.

[2] 陳雪, 劉蔭忠, 徐恩松. 基于Qt的軟PLC梯形圖編輯軟件的設(shè)計與實(shí)現(xiàn)[J]. 計算機(jī)系統(tǒng)應(yīng)用, 2011, 20(12): 64 - 69.

[3] Graphics View Framework. https://doc.qt.io/archives/qt-4.8/graphicsview.html.

熱點(diǎn)新聞

推薦產(chǎn)品

x
  • 在線反饋
1.我有以下需求:



2.詳細(xì)的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 亚洲国产精品欧美日韩一区二区| 久久中文字幕久久久久| 一级一级 a爱片免费视频| 亚洲黄色中文字幕| 国内一区二区三区精品视频| 黄色免费在线观看网址| 国产精品日韩欧美一区二区三区| 极品欧美人体xxxx图片| 国产高清在线视频伊甸园| 精品欧美一区二区在线观看| 国产性色视频在线高清| 日本亚洲一区二区三区| 1000部末满18在线观看黄| 久久婷婷五色综合夜啪| 可以免费看黄的网站| 色拍拍在线精品视频在线观看| 国产99热久久这里有精品999| 国产精品欧美亚洲韩国日本不卡| 91国内视频在线观看| 国产欧美日韩精品a在线观看高清| 欧美在线一区二区三区不卡| 亚洲精品综合久久| 911国产自产精品a| 一级全黄男女免费大片| 日本一级成人毛片免费观看| 可以免费观看的一级毛片| 成人免费视频在线观看| 免费碰碰碰视频在线看| 国产一区二区三区在线影院| 国产高清一区二区三区四区| 草草视频在线| 特级做人爱c级特级aav毛片| 精品久久中文网址| 91啦视频在线| free china 麻豆 hd video| 国产网站免费| 国产在线视频不卡| 精品久久久久久午夜| 久久人人青草97香蕉| 免费视频片在线观看大片| 欧美日韩在线播一区二区三区|