999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于QT的PLC梯形圖編輯系統設計與實現

2019-06-10 01:01:19李馳骎王庭有李應春楊安園
軟件導刊 2019年2期

李馳骎 王庭有 李應春 楊安園

摘 要:為了探索PLC梯形圖編輯系統的設計方法,從梯形圖編程系統設計需求出發,分析傳統梯形圖網絡的不足,采用一種高自由度的網絡拓撲結構描述梯形圖網絡,并根據該網絡拓撲結構提出一種分布式存儲方案,實現梯形圖圖元之間的連接關系存儲。基于QT圖形框架采用面向對象的軟件方法實現梯形圖標準圖元創建、連接關系建立、圖元刪除等功能。完成梯形圖編輯系統設計后,對圖元管理、各種指令調用進行編輯測試,結果表明該系統設計方法可行。

關鍵詞:可編程控制器;梯形圖;QT;存儲結構;圖元管理

DOI:10. 11907/rjdk. 181943

中圖分類號:TP319文獻標識碼:A文章編號:1672-7800(2019)002-0072-04

Abstract: In order to explore the design method of PLC ladder diagram (LAD) editor system, we start with the overall requirements of LAD editor system, analyze the shortcomings of the traditional LAD network, and use a high-degree-of-freedom network topology to describe LAD network. According to the network topology, a distributed storage scheme is proposed to implement the storage of connection relationships between LAD primitives. The object-oriented software method based on the QT graphics framework is used to realize the functions of creating ladder diagram standard primitives, establishing connection relationships and deleting primitives. After completing the design of the ladder diagram editing system, we tested the management of graphic elements and various instructions. No problems were found during the process. The results shows that the method of designing the ladder diagram editing system proposed in this paper is feasible.

Key Words: programmable logic controller; ladder diagram; QT; storage scheme; primitive management

0 引言

可編程控制器(programmable logic controller,PLC)在工業控制領域應用廣泛, PLC編程軟件是推動PLC發展的重要動力[1-2],而編輯系統是編程軟件中至關重要的組成部分,它負責梯形圖的輸入、編輯、顯示,各個單元的位置、符號等信息保存,決定了軟件的交互性[3]。

國外PLC發展相當成熟,PLC編程軟件技術研究較多:Milik A[4]提出了一種多線程執行技術,利用數據流圖識別程序的并行性,完成編程語言的編譯;Prahofer等[5]采用程序上的模式匹配、控制流、數據流等分析方法,開發靜態代碼分析工具;Deveza等[6]將指令表作為Matlab/Simulink翻譯軟件包的輸入,實現PLC在Matlab中的仿真;Kim H S等[7]采用二叉邏輯樹方法實現梯形圖程序的解釋;Moonga等[8-10]通過將梯形圖映射為AOV圖的方法,把梯形圖轉換為AOV圖,且使用雙堆棧深度優先搜索算法(TSDFS)實現梯形圖到指令表的轉換;Asensio等[11]提出了基于IEC61131-3標準和PLCOpen TC6架構的完整工業自動化程序開發環境。

國內PLC編程軟件研究主要有:李慧亮等[12]使用FLEC、BISON對指令表進行詞法分析和語法分析,進一步完成了中間代碼結構設計、目標代碼生成器設計,但文中的中間代碼結構和目標代碼生成器考慮過少,不具備通用性;韓江等[13]將梯形圖映射為AOV圖,建立梯形圖到以鄰接矩陣方式存儲的AOV圖的映射,但由于梯形圖串并聯關系的復雜性,使用該算法會導致轉換不穩定;吳盼盼等[14]采用XML文件描述梯形圖圖元及其連接方式的存儲結構,以類C的腳本語言作為中間語言實現梯形圖到指令表的轉換,但存儲方式和轉換方式稍顯復雜,支持的指令不多;黃健[15]基于MFC實現圖元的數據結構設計,用分層方法存儲圖元位置關系;楊觀賜等[16]提出了以鏈表與雙向二維鏈表結合的梯形圖網絡存儲結構。

本文對梯形圖編輯系統設計方法進行研究。從梯形圖編程系統總體需求出發,通過分析梯形圖的網絡拓撲結構及圖元存儲方案,提出拓撲結構及對應的圖元存儲結構,采用面向對象的軟件方法實現圖元管理功能,該方案在梯形圖網絡結構上更加人性化,圖元存儲結構更加簡單,對編輯語言轉換的復雜度更低,圖元管理的各種功能更加健全。

1 系統總體設計

1.1 系統功能

編輯系統在整個編程軟件中起著基石作用,可細分為變量模塊、圖元模塊、程序網絡模塊[17],具體功能細分如圖1所示。

1.2 梯形圖網絡拓撲結構設計

大部分梯形圖編程軟件的編輯模塊采用網格或矩陣固定位置的方式向梯形圖網絡中添加圖元[18-19],這種方式規定每個元件所占網格數,優點是圖元連接關系清晰且排版簡單,但也有一些缺點:①網絡空間利用率低;②圖元操作的算法時間復雜度高,串并聯關系識別較復雜,如圖2所示。

因此,本文不采用固定位置的網絡結構而采用元件可以自由移動的網絡拓撲結構,這種網絡結構不限制梯級中任何一個圖元位置,圖元之間的連接關系是用戶添加的,通過解析連接線唯一得到,與圖元位置沒有任何關系。刪除圖元時,只刪除和該圖元直接相連的連接線,不對其余圖元及連接線做任何更新。

本文采用的網絡結構以最優方式完整呈現整個梯級網絡,同時降低圖元存儲結構復雜度和圖形網絡轉換復雜度。此外,雖然沒有網格會給程序編排帶來困難,但通過建立大小隨意設置的柵格可以解決問題,元件按照柵格的設置移動,每次只移動一格[20]。

1.3 程序結構設計

基于面向對象的軟件開發方法,本文使用Qt圖形/視圖框架搭建編輯系統的程序結構。圖形/視圖框架包含圖元(QGraphicsItem)、場景(QGraphicsScene)、視圖(QGraphicsView)三層結構,分別具有作為場景圖形項目的基類、提供圖形/視圖場景管理器的容器、使場景中的內容可視化功能[21]。

將IEC61131-3標準規定的梯形圖圖元抽象為圖形視圖框架中的圖元,采用繼承QGraphicsItem的方法生成不同的圖元,并通過響應圖元的鼠標雙擊事件完成圖元信息的修改。圖元的管理通過重寫場景類QGraphicsScene實現:響應鼠標的單擊事件完成圖元的連接及圖元的添加,響應鍵盤事件刪除圖元。最后,考慮到梯形圖網絡中功能/功能塊的使用頻率高,增加拖拽添加功能/功能塊圖元的方式,該過程通過重寫圖形/視圖框架中的視圖類QGraphicsView的拖放響應函數完成。面向對象的軟件開發方法將軟件系統中各個實體抽象為類,然后基于類的繼承、封裝、消息傳送、多態等特性構造軟件系統,最后設計各個實體類之間關鍵信息通信。編輯系統實現結構如圖3所示。

2 圖元數據結構設計

2.1 圖元存儲結構設計

采用準確高效的圖元存儲結構是設計梯形圖編輯系統不可缺少的環節。目前,主流的梯形圖存儲結構有雙向鏈表[22]、分層存儲法[23]、三級單向鏈表[24]。

根據網絡拓撲結構提出一種分布式圖元存儲結構,該存儲結構設計如下:①每個圖元存儲每個輸入/輸出點對應的連接線集合;②連接線存儲起點圖元及終點圖元。

由于梯形圖圖元管理系統由Qt圖形/視圖框架中的場景類QGraphicsScene提供,所以這種分布式存儲結構僅僅需要存儲圖元之間的連接關系,并不需要考慮圖元本身的存儲,從而降低了存儲結構的復雜度,圖4為該存儲結構的方法示例。

2.2 圖元類設計

圖元作為梯形圖網絡中最小的單元,是構造梯形圖網絡的核心元素,但是圖元的多樣性決定了不能對每個圖元單獨設計,因此本文對圖元進行類設計。圖元類設計思路是:把圖元的通用屬性抽象成所有圖元的基類,然后按照各個圖元的不同屬性從該基類中派生出具體類,所有圖元將基于圖形/視圖框架中的圖元類QGraphicsItem生成。為使圖元支持SIGNLA/SLOT操作[25],采用繼承QGraphicsItem、QObject的多繼承方式實現梯形圖圖元類設計,圖5是圖元類的繼承關系。

3 圖元管理

3.1 圖元創建

本文設計的圖元采用工具欄按鈕添加方式創建。

圖元添加工具欄屬于主程序實體,和梯形圖編輯框架中的圖元管理實體屬于不同的實體,故無法在對應工具按鈕的響應函數中生成圖元。通過工具欄按鈕添加圖元時,需要將圖元的型別信息通過SIGNAL/SLOT傳遞給圖元管理實體類,型別信息的傳遞過程如圖6所示。圖6中KM_PLC為編程軟件主框架類,LD_Viewer為梯形圖編輯模塊主部件,LD_View為基于圖形/視圖框架中視圖類QGraphicsView的自定義視圖類,LD_Scene為基于圖形/視圖框架的場景類。

自定義圖元管理類LD_Scene通過響應鼠標的單擊事件完成與當前型別信息相對應的圖元類添加。型別信息為字符串類型,無法被new運算符直接使用,為了保證圖元添加算法的可伸縮性,采用工廠模式(Object Factory)完成型別信息映射到對應圖元類。本文使用map類容器完成型別信息與函數指針之間的映射關系,圖元的注冊、取消注冊、創建分別對應于map容器的添加、刪除、查找。

根據上述設計,要在梯形圖程序組織單元中產生圖形元素必須用到該工廠模式,如果每個程序組織單元都實例化一個全局的BaseItem工廠模式,程序將可能因內存不足而被迫結束。因此,本文將工廠類封裝在Singleton模式下,在LD_Scene的構造函數中完成圖元注冊。

3.2 圖元連接關系建立

創建連接關系的實質是確定圖元之間的存儲關系。起始連接、結束連接信號都是從圖元中輸入(輸出)連接捕捉點發出的,為了區分這兩個信號,設計一個公有的bool變量flag作為標記:當flag的值為false時,發射開始連接信號;當flag的值為true時,發射結束連接信號。此外為保證正確的位置繪制連接線起點、終點且實現連接線起始圖元的正確存儲,在請求連接/結束時需要傳遞“請求連接位置”及“請求連接捕捉點類型”。

3.4 圖元刪除

圖元刪除操作通過重寫LD_Scene的鍵盤響應事件完成(按Del建實現刪除)。使用場景類的接口函數selectItem()提取當前所有的選中項目,利用運行時類型識別(run-time type identification,RTTI)技術中的dynamic_cast判斷選中的項目類型。由于圖元基類的析構函數會刪除所有與該圖元相連的連接線,所以為了避免二次刪除連接線,本文先刪除連接線再對選中的項目執行delete操作。

4 軟件測試

對系統設計方案進行編輯測試,對圖元管理、各種指令調用都進行了測試,結果表明本文提出的編輯系統設計方法可行。圖7為梯形圖編程實例。

5 結語

本文基于面向對象的軟件開發方法實現了PLC梯形圖編輯系統設計,通過軟件測試證明該方案有良好的應用效果,為后續功能完善的PLC編程軟件開發打下了基礎,是在目前國內沒有完全自主開發的PLC編程軟件現狀下的一種探索。梯形圖是PLC編程語言中最常用的語言,該編程軟件的其它模塊正在開發中,本文的研究對推進PLC軟件發展有著重要意義。

參考文獻:

[1] 歐陽三泰,周琴,歐陽希. 軟PLC控制技術綜述[J]. 電氣傳動,2005(9):52-54.

[2] GREGOR K,GIOVANNI G,STANKO S. A new approach to PLC software design[J]. ISA Transactions,2003,42(2):167-171.

[3] 趙雨生,高美鳳. 一種梯形圖編程系統的研究與實現方法[J]. 工業控制計算機,2008(6):34-35.

[4] MILIK A. Multiple-core PLC CPU implementation and programming[J]. Journal of Circuits, Systems and Computers,2018,27(10): 162-185.

[5] PRAHOFER H, ANGERER F, RAMLER R, et al. Static code analysis of iec 61131-3 programs: comprehensive tool support and experiences from large-scale industrial application[J]. IEEE Transactions on Industrial Informatics, 2017, 13(1): 37-47.

[6] DEVEZA T, MARTINS J F. PLC control and Matlab/Simulink simulations: a translation approach[C]. Mallorca, Spain: Emerging Technologies & Factory Automation, 2009.

[7] KIM H S, KWON W H, CHANG N. A translation method for ladder diagram with application to a manufacturing process[C]. Detroit, MI, USA: International Conference on Robotics and Automation, 1999.

[8] MOONGA K H, LINRU Y, SHAOJUN L. Algorithm for compiling unrestricted ladder diagram to IEC 61131-3 compliant instruction list[J]. Lecture Notes in Engineering and Computer Science, 2011, 2191(1): 949-954.

[9] FEN G,NING W. A transformation algorithm of ladder diagram into instruction list based on AOV digraph and binary tree[C]. Hong Kong: IEEE Region 10 Conference, 2006.

[10] YAN Y, ZHANG H. Compiling ladder diagram into instruction list to comply with IEC 61131-3[J]. Computers in Industry, 2010,61(5): 448-462.

[11] ASENSIO J, ORTU?O F, DAMAS M, et al. Industrial automation programming environment with a new translation algorithm among IEC 61131-3 languages based on the TC6-XML scheme[J]. International Journal of Automation and Control Engineering, 2013(2): 47-55.

[12] 李慧亮. 基于IEC61131-3標準的IL語言編譯器的設計與實現[D]. 西安:西安電子科技大學,2014.

[13] 韓江,段少磊,夏鏈,等. PLC梯形圖向指令表轉化的算法研究與實現[J]. 組合機床與自動化加工技術,2013(11):61-63

[14] 吳盼盼. 梯形圖與腳本語言互換方法的研究[D]. 杭州:杭州電子科技大學,2013.

[15] 黃健. 基于ARM與FPGA的PLC及其梯形圖編程系統設計[D]. 廣州:華南理工大學,2016.

[16] 楊觀賜,陳占杰,李少波,等. 面向智能控制的軟PLC中梯形圖的動態解析方法[J]. 貴州大學學報:自然科學版,2016,33(6):43-47.

[17] 韓兵兵. PLC梯形圖編程系統研究與實現[D].廣州: 華南理工大學,2013.

[18] 吳玉香,郭建勛,周建香. 嵌入式軟PLC編程系統的設計[J]. 控制工程,2010,17(3):363-366.

[19] 胡飛虎,傅亮,劉樂. 基于表格技術的軟PLC梯形圖編輯軟件[J]. 微計算機信息,2009,25(19):227-229.

[20] 徐德剛,黃江波,劉育峰,等. 基于能流的梯形圖到指令表轉換方法研究[J]. 控制工程,2017,24(2):243-249.

[21] BLANCHETTE J, SUMMERFIELD M. C++GUIQt4編程[M]. 第2版. 北京:電子工業出版社,2008.

[22] 蘇淑芝. 軟PLC梯形圖編程系統的研究與實現[D]. 廣州:華南理工大學,2012.

[23] SUMMERFIELD M. Qt高級編程[M]. 北京:電子工業出版社,2011.

(責任編輯:杜能鋼)

主站蜘蛛池模板: 色偷偷综合网| 青草视频网站在线观看| 一本一道波多野结衣一区二区| 欧美一级片在线| 日韩精品无码免费专网站| 午夜毛片免费观看视频 | 国产jizzjizz视频| 丝袜亚洲综合| 国模极品一区二区三区| 亚洲天堂首页| 国产真实乱了在线播放| 国产精品无码AV片在线观看播放| 久996视频精品免费观看| 欧美日韩国产系列在线观看| 亚洲国产日韩一区| 久久黄色一级视频| 国产一区二区网站| 精品撒尿视频一区二区三区| 女人av社区男人的天堂| 精品偷拍一区二区| 自拍欧美亚洲| 99热这里只有精品免费| 草草影院国产第一页| 久草热视频在线| 一区二区影院| 国产欧美日韩在线一区| 香蕉久久国产精品免| 国产精品美女网站| 国产熟睡乱子伦视频网站| 婷婷午夜天| 国产网站免费看| 国产91高清视频| 国产成人凹凸视频在线| 91精品国产麻豆国产自产在线| 亚洲中文久久精品无玛| 中文字幕在线一区二区在线| 老司机精品一区在线视频| 一级不卡毛片| 欧美啪啪一区| 免费jizz在线播放| 国产成人91精品| 国产精品不卡片视频免费观看| 人妻无码中文字幕第一区| 久久久亚洲色| 久久99这里精品8国产| 亚洲人在线| 国产免费人成视频网| 亚洲侵犯无码网址在线观看| 久久久久久久久18禁秘| 99re视频在线| 久草视频精品| 亚洲国产无码有码| 九九热视频精品在线| 亚洲成人手机在线| 毛片三级在线观看| 午夜福利无码一区二区| 国产欧美成人不卡视频| 99精品视频九九精品| 亚洲色图欧美视频| 又黄又湿又爽的视频| 91亚洲国产视频| 欧美福利在线观看| 午夜限制老子影院888| 第九色区aⅴ天堂久久香| 专干老肥熟女视频网站| 国产成人1024精品| 免费国产好深啊好涨好硬视频| 黄色国产在线| 宅男噜噜噜66国产在线观看| 国产成熟女人性满足视频| 亚洲综合色在线| 欧美午夜在线播放| 免费无码又爽又刺激高| 亚洲视频二| 欧美一区二区三区国产精品| 久久99国产精品成人欧美| 日韩第一页在线| 亚洲黄网在线| 久久99国产精品成人欧美| 精品免费在线视频| 亚洲毛片一级带毛片基地| 澳门av无码|