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

ABB
關(guān)注中國自動(dòng)化產(chǎn)業(yè)發(fā)展的先行者!
CAIAC 2025
2025工業(yè)安全大會(huì)
OICT公益講堂
當(dāng)前位置:首頁 >> 案例 >> 案例首頁

案例頻道

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

1 引言

PLC作為工業(yè)控制系統(tǒng)的重要組成部分,是現(xiàn)代工業(yè)自動(dòng)化的重要支柱。2006年,國務(wù)院在發(fā)布的《國家中長期科學(xué)和技術(shù)發(fā)展規(guī)劃綱要(2006-2020年)》中提出建設(shè)“核高基”重大科技專項(xiàng),2015年又提出“中國制造2025”。在此背景下,國產(chǎn)化、自主化已經(jīng)成為PLC市場發(fā)展的重要趨勢(shì)。QT開發(fā)框架因其出色的跨平臺(tái)性和代碼開源的特點(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]。它是國際電工委員會(huì)(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ù)語和符號(hào),具有形象、實(shí)用等特點(diǎn),被稱為是“面向生產(chǎn)過程的編程語言”。

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

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

2.1 框架組成

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

(1)場景(QGraphicsScene)

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

(2)視圖(QGraphicsView)

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

(3)圖元(QGraphicsItem)

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

16237459081.png

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

2.2 框架特點(diǎn)

(1)圖元管理

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

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

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

(3)圖形渲染

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

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

(4)事件處理

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

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

AutoThink V4是和利時(shí)研發(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è)計(jì)

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

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

4.2 主要接口封裝

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

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

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

(2)圖元繪制渲染

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

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

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

4.3 事件傳遞

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

16237457941.png

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

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

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

16237457321.png

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

5 結(jié)論

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

作者簡介

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

參考文獻(xiàn):

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

[2] 陳雪, 劉蔭忠, 徐恩松. 基于Qt的軟PLC梯形圖編輯軟件的設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(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大片 | 看片在线 | 91欧美激情一区二区三区成人 | 国产成人精品一区二三区 | 福利入口在线观看 | 亚洲成人国产精品 | 国产美女久久久久 | 国产性生活视频 | 国产免费私拍一区二区三区 | 曰批免费动漫视频播放免费 | 天天套图| 亚洲黄色片子 | 亚洲国产精品午夜电影 | 性色xxx视频 | 草妞视频 | 久久久久一区二区三区 | 丰满大乳女啪啪中文字幕 | 日韩欧美一区二区久久黑人 | 在线观看欧洲成人免费视频 | a一级特黄日本大片 s色 | 成年人网站在线观看视频 | 国产精品久久国产三级国不卡顿 | 亚洲成a人片在线观看中文动漫 | 亚洲精品国产美女在线观看 | 日本r级在线中文在线播放 日本tv欧美tv天堂 | 亚洲日韩中文字幕在线播放 | av播播 | 国产污片在线观看 | 国产黄网在线观看 | 国产精品成人aaaaa网站 | 日日夜夜噜 | 好男人在线影院www 好看的一级毛片 | 欧美性色xo影院在线观看 | 中国精品一级毛片免费播放 | 91精品国 | 日产免费线路一页二页 | 草草线禁成18年在线视频 | 999精品久久久中文字幕蜜桃 |