日本在线www-日本在线播放一区-日本在线不卡免费视频一区-日本在线不卡视频-成人影院久久久久久影院-成人影院一区二区三区

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

案例頻道

基于QT圖形視圖框架的PLC梯形圖編輯器的設(shè)計(jì)
  • 企業(yè):和利時(shí)集團(tuán)     領(lǐng)域:PLC /PAC/PCC/RTU     領(lǐng)域:智能制造    
  • 點(diǎn)擊數(shù):5184     發(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年,國(guó)務(wù)院在發(fā)布的《國(guó)家中長(zhǎng)期科學(xué)和技術(shù)發(fā)展規(guī)劃綱要(2006-2020年)》中提出建設(shè)“核高基”重大科技專項(xiàng),2015年又提出“中國(guó)制造2025”。在此背景下,國(guó)產(chǎn)化、自主化已經(jīng)成為PLC市場(chǎng)發(fā)展的重要趨勢(shì)。QT開發(fā)框架因其出色的跨平臺(tái)性和代碼開源的特點(diǎn),成為開發(fā)自主可控軟件的優(yōu)良選擇。

IEC 61131-3是旨在規(guī)范可編程控制器(Programmable Logic Controller,簡(jiǎn)稱PLC)編程語言的國(guó)際標(biāo)準(zhǔn),經(jīng)過十多年的發(fā)展和完善,已被廣大PLC使用者和生產(chǎn)廠商所認(rèn)可和支持[1]。它是國(guó)際電工委員會(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)場(chǎng)景(QGraphicsScene)

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

(2)視圖(QGraphicsView)

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

(3)圖元(QGraphicsItem)

圖元是場(chǎng)景中的最基本元件,單個(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)來組織和管理其中的圖元,能夠支持大場(chǎng)景下百萬數(shù)量級(jí)別的2D圖元的快速查找、排序以及實(shí)時(shí)顯示。

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

圖形視圖框架中存在三個(gè)坐標(biāo)系統(tǒng):場(chǎ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ì)場(chǎng)景中圖元進(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)場(chǎng)工程的邏輯設(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)自己的視圖、場(chǎng)景和各元件類。

16237458461.png

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

視圖類中放開了鼠標(biāo)鍵盤及拖拽等消息的接收,并在其中通過右鍵菜單響應(yīng)創(chuàng)建圖元管理的交互接口。圖元管理與邏輯信息存儲(chǔ)在場(chǎng)景類中完成,視圖類中的右鍵菜單響應(yīng)與場(chǎng)景類通過“信號(hào)/槽”機(jī)制進(jìn)行連接,當(dāng)鼠標(biāo)點(diǎn)擊右鍵菜單中的命令時(shí),視圖類發(fā)出信號(hào),場(chǎng)景類接收到該信號(hào)開始進(jìn)行元件的創(chuàng)建、刪除、復(fù)制粘貼等的操作。為了實(shí)現(xiàn)圖元的撤銷恢復(fù)編輯動(dòng)作,場(chǎng)景類中設(shè)計(jì)了兩個(gè)棧結(jié)構(gòu)用于存儲(chǔ)撤銷與恢復(fù)的元件指針。考慮到場(chǎng)景關(guān)閉及打開時(shí)的內(nèi)容保存與重建,場(chǎng)景類還繼承了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)一的接口,便于分層管理和降低耦合,簡(jiǎn)化開發(fā)過程難度,提高開發(fā)效率。

4.2 主要接口封裝

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

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

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

(2)圖元繪制渲染

因?yàn)閳D形視圖框架特有的坐標(biāo)系統(tǒng),編輯器中場(chǎ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)常添加自定義或庫(kù)中的函數(shù)和功能塊,為了使用方便,需要實(shí)現(xiàn)拖拽添加函數(shù)塊和功能塊。因此,在場(chǎng)景、視圖和元件類中都分別重載了拖拽系列的函數(shù)dragEnterEvent、dragMoveEvent和dropEvent,同時(shí),圖元中調(diào)用setAcceptDrops函數(shù)允許接收拖拽事件。

4.3 事件傳遞

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

作者簡(jiǎ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ì)的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 亚洲午夜久久久久中文字幕,欧美精品久久久久久久久大尺度,91精品推荐,九九久久99综合一区二区,哪里有毛片,精品亚洲一区二区三区 精品国产91乱码一区二区三区,成人国产一区二区三区精品,亚洲一区免费在线观看,日韩在线一区二区三区免费视频,波多野吉衣在线观看,日韩一级精品久久久久 | 久久久无码精品亚洲日韩按摩,天天摸夜夜摸夜夜狠狠摸,久久99精品久久久久久牛牛影视,妻色成人网,色丁香六月,aa黄色片 | 7788理论片在线观看-7788av-777午夜精品免费播放-777奇米影视一区二区三区-蜜桃传媒在线-蜜桃成熟时1997在线看免费看 | 日韩成人A片一区二区三区-日韩成人黄色片-日韩成人在线视频-日韩吃奶摸下AA片免费观看-日韩大片免费看-日韩大片在线观看 | 中文字幕第一页亚洲-中文字幕第一页国产-中文字幕第38页永久乱码-中文字幕不卡在线观看-久久久久青草大香线综合精品-久久久久青草 | 久久久久久一级毛片免费野外-久久久久久一级毛片免费无遮挡-久久久久久亚洲精品影院-久久久久久亚洲精品不卡-午夜久久精品-午夜精品在线视频 | 亚洲精品色情影片-亚洲精品沙发午睡系列-亚洲精品深夜AV无码一区二区-亚洲精品天堂在线观看-亚洲精品偷拍AV一区二区-亚洲精品偷拍影视在线观看 | 精品欧美小视频在线观看-精品欧美18videosex欧美-精品免费在线视频-精品免费视在线视频观看-亚洲视频区-亚洲视频欧美在线专区 | 99久久中文字幕,五月天激激婷婷大综合丁香,欧美老女人性视频,精品午夜一区二区三区在线观看,99成人免费视频,2020国产精品永久在线观看 | 黄色片网站免费观看-黄色片网站观看-黄色片网站大全-黄色片视频网-色偷偷网址-色偷偷网站 | 日韩久久精品一区二区三区-日韩久久精品视频-日韩久草视频-日韩久草-国产成人短视频-国产成人调教视频在线观看 | 美女搞j-美女干骚-美女范冰冰hdxxxx-美女吊逼-亚洲欧美在线观看-亚洲欧美一区二区三区在线 | 麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a | 亚洲综合在线视频-亚洲综合在线观看视频-亚洲综合视频网-亚洲综合色秘密影院秘密影院-日本三区四区免费高清不卡 | 亚洲1卡二卡3卡四卡不卡-亚洲1卡2卡三卡3卡4卡网站-亚洲18gay1069-亚洲18gay video-国内精品久久久久久-国内精品久久久久激情影院 | 国产视频xxxx-国产视频www-国产视频a区-国产视频99-香港一级纯黄大片-香港一级a毛片在线播放 | 黄色在线免费播放-黄色在线免费-黄色在线看网站-黄色在线观看网站-色综合小说天天综合网-色综合小说久久综合图片 | 久久久精品视频免费观看,非会员体验60秒试看福利区,免费福利在线观看,国内免费视频成人精品,久久久中文字幕日本,婷婷激情五月 | 九九国产在线视频-九九国产在线观看-九九国产在线-九九国产视频-亚洲夜色夜色综合网站-亚洲羞羞视频 | 天天插天天搞,国产99在线,九七视频在线观看,2020国产成人精品视频网站,日本久久网,人人澡人人澡人人看青草 | 北条麻妃在线观看,国产播放器一区,日本丶国产丶欧美色综合,亚洲一区二区三区高清,九九九国产,亚洲欧美久久精品一区 | 91久久福利国产成人精品-91久久国产-91久久国产成人免费观看资源-91久久国产精品-91久久国产精品视频-91久久国产口精品久久久久 国产偷抇久久精品A片蜜臀A-国产偷抇久久精品A片蜜臀AV-国产偷抇久久精品A片图片-国产偷窥熟妇高潮呻吟-国产凸凹视频熟女A片-国产玩弄放荡人妇系列 | 在线观看 一区-在线观看 亚洲-在线观看 日韩-在线观看 免费高清视频-久久婷婷国产一区二区三区-久久婷婷国产五月综合色啪最新韩国 | 欧美亚洲国产一区-欧美亚洲国产视频-欧美亚洲国产日韩综合在线播放-欧美亚洲国产日韩一区二区三区-jizzjizz免费大全-jizzjizz免费 | 国产91av视频在线-国产91av在-国产91av在线-国产91av在线播放-国产91chinese在线观看-国产91l在线播放 | 欧美日韩 国产区 在线观看-欧美日操-欧美日本综合一区二区三区-欧美日本中文字幕-欧美日本中文-欧美日本在线一区二区三区 | 在线亚洲激情,免费看电影网站,奇米影音先锋,99免费视频观看,国产成人aa视频在线观看,久久久蜜桃 欧美人成在线视频-欧美人成一本免费观看视频-欧美人xxxxxbbbb-欧美区在线-在线不卡免费视频-在线播放周妍希国产精品 | 人人狠狠综合久久亚洲,超大乳首授乳一区二区,五月天视频网,久久综合成人网,久草视频免费播放,漂亮的保姆4-bd国语在线观看 | 香蕉成人啪国产精品视频综合网-香蕉草草久在视频在线播放-香蕉a视频-香蕉69精品视频在线观看-国产视频1区-国产视频1 | 亚洲1卡二卡3卡四卡不卡-亚洲1卡2卡三卡3卡4卡网站-亚洲18gay1069-亚洲18gay video-国内精品久久久久久-国内精品久久久久激情影院 | 欧美日韩亚洲一区二区三区在线观看-欧美日韩亚洲第一区在线-欧美日韩亚洲成人-欧美日韩午夜群交多人轮换-bbwvideos欧美老妇-bbwvideoa欧美老妇 | 欧美激情中文字幕一区二区-欧美激情在线精品video-欧美激情影院-欧美激情一区二区三区在线-欧美激情一区二区三区视频高清-欧美激情一区二区三区视频 | 国产精品三级不卡电影-国产精品三级高清在-国产精品三级国产电影-国产精品三级国产精品高-国产精品三级国语在线看-国产精品三级九九 | 国产亚洲精品a在线观看app-国产亚洲精品A久久777777-国产亚洲精品AV片在线观看播放-国产亚洲精品AV麻豆狂野-亚洲 欧美 国产在线视频-亚洲 欧美 国产 综合五月天 日韩精品免费观看,亚洲精品国产综合一线久久,99精品国产高清一区二区三区香蕉,亚洲图区欧美,日韩电影免费在线观看中文字幕,999国产精品999久久久久久 | 婷婷综合激情五月中文字幕,美国性网站,国产精品亚洲欧美日韩久久,每日更新在线观看,久久免费视屏,www.成年人视频 | 国产成人av网站网址-国产成人av无码精品-国产成人av无码精品天堂-国产成人av无码片在线观看-国产成人av无码一区二区三区不卡-国产成人av无码永久免费 | 天堂视频在线观看免费-天堂视频在线-天堂视频免费-天堂色区-国产精品一区二区欧美视频-国产精品一区二区免费 | 日韩美在线-日韩美一区二区三区-日韩美女在线视频-日韩美女视频在线观看-亚洲无线一二三四区手机-亚洲无专砖码直接进入 | 精品午夜一区二区三区在线观看-精品午夜视频-精品午夜寂寞影院在线观看-精品午夜寂寞黄网站在线-日夜啪啪一区二区三区-日日摸天天爽天天爽视频 | 久久就是精品-久久看片网-久久蝌蚪-久久老熟女一区二区三区-久久老司机波多野结衣-久久乐国产综合亚洲精品 | 人人狠狠综合久久亚洲,超大乳首授乳一区二区,五月天视频网,久久综合成人网,久草视频免费播放,漂亮的保姆4-bd国语在线观看 |