日本在线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ì)的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 国产高清在线精品一区在线-国产高清在线精品一区二区三区-国产高清在线精品一区a-国产高清在线精品一区-日韩在线a视频免费播放-日韩在线2020专区 | 成人综合网久久-成人综合网亚洲伊人-成人综合网站-成人综合网站一区二区三区四区-成人综合网站在线-成人综合网址 | 一个色综合网-一个色综合高清在线观看-一个色在线视频-一个色亚洲-一个人在线观看的www-一个人在线观看www中国 | 极品白丝-激性欧美激情在线播放16页-激情综合五月天丁香婷婷-激情伊人网-亚洲天堂久久精品成人-亚洲天堂久久精品 | 波多野结衣中文字幕教师-波多野结衣中文字幕2022免费-波多野结衣中文在线观看-波多野结衣中文在线播放-波多野结衣中文一区-波多野结衣中文丝袜字幕 | 成人av免费视频在线观看-成人av鲁丝片一区二区免费-成人av精品一区二区三区四区-成人aⅴ综合视频国产-成人aⅴ片-成年网站免费观看精品少妇人妻av一区二区三区 | 在线观看日本视频-在线观看日本免费-在线观看日本www-在线观看日本-久久亚洲精品成人-久久亚洲精品tv | 香蕉成人啪国产精品视频综合网-香蕉草草久在视频在线播放-香蕉a视频-香蕉69精品视频在线观看-国产视频1区-国产视频1 | 久草热在线视频-久草热在线观看-久草热线视频-久草热视频在线-无码人妻丰满熟妇A片护士电影-无码欧美毛片一区二区三在线视频 | 老司机亚洲精品影院-老司机午夜在线视频-老司机午夜影院-老司机午夜网站-亚洲国产精品热久久2022-亚洲国产精品毛片∧v卡在线 | 色网在线免费观看-色网在线观看-色网在线播放-色网在线-黄色片网址大全-黄色片网站在线观看 | 国产亚洲精品a在线观看app-国产亚洲精品A久久777777-国产亚洲精品AV片在线观看播放-国产亚洲精品AV麻豆狂野-亚洲 欧美 国产在线视频-亚洲 欧美 国产 综合五月天 日韩精品免费观看,亚洲精品国产综合一线久久,99精品国产高清一区二区三区香蕉,亚洲图区欧美,日韩电影免费在线观看中文字幕,999国产精品999久久久久久 | 佐藤遥希在线播放一二区-佐山爱巨大肥臀在线-佐山爱痴汉theav-佐良娜被爆漫画羞羞漫画-麻豆视频传媒二区-麻豆视频传媒 | 日韩中文字幕视频在线观看-日韩中文字幕视频在线-日韩中文字幕视频-日韩中文字幕久久久经典网-亚洲不卡高清免v无码屋-亚洲成_人网站图片 | 欧美精品综合-欧美精品自拍-欧美精品专区免费观看-欧美精品在线一区二区三区-欧美精品在线一区-欧美精品在线视频观看 | 久久亚洲精品中文字幕-久久亚洲精品永久网站-久久亚洲精品无码A片大香大香-久久亚洲精品成人综合-在线观看视频中文字幕-在线观看视频一区 | 国产一级免费-国产一级毛片网站-国产一级毛片潘金莲的奶头-国产一级毛片大陆-日本中文字幕免费-日本中文字幕高清 | 五月天六月婷婷开心激情,天使的性电影,三级韩国一区久久二区综合,五月婷婷久,九九精品在线视频,66精品综合久久久久久久 | 99久热-99久久综合九九亚洲-99久久综合精品国产-99久久综合狠狠综合久久-99久久综合国产精品免费-99久久综合给久久精品 | 久久久精品视频免费观看,非会员体验60秒试看福利区,免费福利在线观看,国内免费视频成人精品,久久久中文字幕日本,婷婷激情五月 | 娇妻在客厅被朋友玩得呻吟漫画-娇小娇小与黑人tubevideos-进去粗粗硬硬紧紧的好爽免费视频-禁欲总裁被C呻吟双腿大张-禁止的爱6浴室吃奶中文字幕-经典乱家庭伦小说 | 久久九九99,伊人婷婷在线,日韩在线视频在线观看,黄色一级视频免费,日韩欧美亚州,亚洲精品在线免费 | 91精品国产综合久久久久-91精品国产综合久久久久久-91精品国产综合久久青草-91精品国产综合久久婷婷-91精品国产综合久久香蕉-91精品国产综合久久消防器材 | 天海翼中文字幕-天海翼一区 在线播放-天海翼无码-天海翼视频在线-国产精品网红女主播久久久-国产精品外围在线观看 | 午夜成人影视-午夜成人影片-午夜成人免费影院-午夜不卡影院-国产日本欧美亚洲精品视-国产日本欧美高清免费区 | 中文有码中文字幕免费视频-中文有码视频-中文伊人-中文一区在线观看-欧美性综合-欧美性在线视频 99re在线精品99re8热视频-99re在线精品-99re在线观看视频-99re在线观看-99re在线播放视频-99re在线 | 北条麻妃在线观看,国产播放器一区,日本丶国产丶欧美色综合,亚洲一区二区三区高清,九九九国产,亚洲欧美久久精品一区 | 久久re这里视频只有精品首页-久久re这里视频只精品首页-久久re这里视频精品8-久久re这里视频精品15-一本道色综合手机久久-一本道色播 | 中国一级特黄毛片-中国一级毛片在线观看-中国一级毛片特级毛片-中国一级毛片视频-客厅也啪啪厨房也啪啪女-客厅沙发与子对白在线观看 | 欧美日韩 国产区 在线观看-欧美日操-欧美日本综合一区二区三区-欧美日本中文字幕-欧美日本中文-欧美日本在线一区二区三区 | 久久免费视频1-久久免费看视频-久久免费精品一区二区-久久免费精品视频-中文字幕亚洲专区-中文字幕亚洲一区二区三区 | 性欧美高清精品video-性欧美高清videofree-性欧美俄罗斯-性欧美xxxx乳高跟-国产真实乱偷人视频-国产真实乱了全集mp4 | 麻豆高潮AV久久久久久久-麻豆高清免费国产一区-麻豆国产13p-麻豆国产96在线日韩麻豆-麻豆国产AV尤物网站尤物-麻豆国产精品AV色拍综合 | 91麻豆精品国产一级-91啦国产-91蝌蚪在线视频-91蝌蚪在线播放-91蝌蚪网-91蝌蚪视频在线观看 | 亚洲国产区男人本色vr-亚洲国产区男人本色-亚洲国产品综合人成综合网站-亚洲国产品有宅男-亚洲国产片在线观看-亚洲国产片精品一区二区三区 | 97视频久久久-97视频在线观看播放-97视频制服无码-97丨九色丨国产人妻熟女-97无码欧美熟妇人妻蜜-97无码欧美熟妇人妻蜜桃天美 | 黑人性xxxⅹxxbbbbb-黑人性xxx-黑人同学征服教师麻麻-黑人双渗透-亚洲精品国产成人中文-亚洲精品国产成人99久久 | 天天插天天搞,国产99在线,九七视频在线观看,2020国产成人精品视频网站,日本久久网,人人澡人人澡人人看青草 | 国产首页-国产手机精品自拍视频-国产视频综合-国产视频自拍一区-香蕉网在线播放-香蕉网在线 | 日本xxxxx18护士xxx-日本xxxxwwww-日本xxxx1819黑人-日本xxxbbb0oo-国产精品免费看久久久-国产精品免费久久久免费 | 青草视频在线观看免费视频-青草视频在线观看免费-青草视频网址-青草视频网站在线观看-国产黄色一级网站-国产黄色一级毛片 |