国产欧美日韩精品a在线观看-国产欧美日韩精品一区二区三区-国产欧美日韩精品综合-国产欧美中文字幕-一区二区三区精品国产-一区二区三区精品国产欧美

ACS880-07C
關注中國自動化產業發展的先行者!
CAIAC 2025
2024
工業智能邊緣計算2024年會
2023年工業安全大會
OICT公益講堂
當前位置:首頁 >> 案例 >> 案例首頁

案例頻道

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

1 引言

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

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

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

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

2.1 框架組成

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

(1)場景(QGraphicsScene)

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

(2)視圖(QGraphicsView)

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

(3)圖元(QGraphicsItem)

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

16237459081.png

圖1 圖形視圖框架結構

2.2 框架特點

(1)圖元管理

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

(2)坐標系統

圖形視圖框架中存在三個坐標系統:場景坐標、視圖坐標及圖元坐標,每個系統都以自己的中心點為原點分別管理自己的坐標,三套系統之間使用映射來進行坐標轉換。

(3)圖形渲染

框架設計的坐標系統使每個圖元僅需負責自己的圖形渲染,圖形視圖框架基于仿射矩陣變換的運算處理能夠快速響應縮放、旋轉等高級渲染需求。

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

(4)事件處理

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

3 LD編輯器在AutoThink V4組態軟件中的功能

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

LD組態模塊是IEC組態部分的子模塊,分為前端編輯器及后端邏輯轉換與處理兩部分。梯形圖編輯器負責梯形圖中元件的創建、刪除、選中、繪制、語法檢查等管理操作,編輯器中的組態數據經過語法檢查無誤后,將被LD后端轉換為一種預定好的中間語法結構傳遞給編譯模塊進行處理,生成目標文件下裝到硬件設備端,并在在線監控狀態下通過編輯器進行調試。

16237458781.png

圖2 AutoThink V4模塊結構圖

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

4.1 梯形圖編輯器的模塊結構

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

16237458461.png

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

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

使用這種三層架構很好地將數據的處理與表示進行分離,為數據的組織管理提供了統一的接口,便于分層管理和降低耦合,簡化開發過程難度,提高開發效率。

4.2 主要接口封裝

本文實現的梯形圖編輯器,主要針對以下方面進行了接口的二次封裝:

(1)鼠標鍵盤消息響應

在視圖、場景和圖元中均重載了keyPressEvent及mousePressEvent函數,用于實現元件在離線狀態的選中判斷及快捷鍵等的響應。

(2)圖元繪制渲染

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

(3)拖拽動作響應

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

4.3 事件傳遞

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

16237457941.png

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

4.4 實現效果

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

16237457321.png

圖5 梯形圖編輯器的實際應用效果圖

5 結論

本文基于QT中的圖形視圖框架設計了一種支持IEC 61131-3標準的梯形圖編輯器,并已成功添加到和利時AutoThink V4自主可控PLC編程軟件中。該編輯器使用方便、直觀,能夠對梯形圖程序進行邏輯組態,滿足工程現場的使用需求。

作者簡介

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

參考文獻:

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

[2] 陳雪, 劉蔭忠, 徐恩松. 基于Qt的軟PLC梯形圖編輯軟件的設計與實現[J]. 計算機系統應用, 2011, 20(12): 64 - 69.

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

熱點新聞

推薦產品

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



2.詳細的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 996热在线视频| 真人一级一级特黄高清毛片| 亚洲综合色视频在线观看| 18videosex性欧美69| 99久久99热精品免费观看国产| 亚洲三级在线免费观看| 亚洲免费在线播放| 欧美色欧美亚洲高清在线视频| 高清不卡毛片| 欧美国产合集在线视频| 久久久一级| chinese多姿势videos| 日韩一区二区在线免费观看| 欧美在线区| 中国一级毛片录像| 久久99久久99| 中日韩一区二区三区| 男人的天堂在线| 黄色三级网址| 亚洲成人在线视频| 国产一区二区高清在线| 性配久久久| 免费网站看v片在线香蕉| 中文字幕成人| 精品一区二区影院在线| 亚洲欧美字幕| theav视频在线观看| 久久成人免费网站| free性丰满白嫩白嫩的hd| 欧美性一区二区三区| 亚洲一区二区三区免费| 另类视频在线观看| 91成人小视频| 国产精品视_精品国产免费| 美国毛片网| 中文字幕乱码中文乱码51精品| 精品国产夜色在线| 久久亚洲精品中文字幕二区| 5388国产亚洲欧美在线观看| 精品视频在线看| 久久久久久久久久久久久久久久久 |