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

PLC梯形圖編程軟件實現

2018-01-15 07:52:07李應春王庭有楊安園
價值工程 2018年1期

李應春+王庭有+楊安園

摘要: 本文使用跨平臺的C++應用程序開發框架(Qt)及其圖形視圖框架(The Graphics View Architecture)以及信號與槽機制,結合C++標準模板庫中的鏈表結構、運行時類型識別等技術,實現了PLC梯形圖編程軟件的總體框架設計;梯形圖語言的主程序、子程序、中斷程序的存儲及圖元的插入編輯操作等功能。

Abstract: This paper uses the cross-platform C++ application development framework (Qt) and its Graphics View Architecture, as well as the signal and slot mechanism, combined with the C++ standard template library linked list structure, run-time type recognition technology to achieve the PLC Ladder diagram programming software overall framework design; ladder language main program, subroutine, interrupt program storage and primitive insert editing operation and other functions.

關鍵詞: 梯形圖;Qt;存儲結構

Key words: ladder diagram;Qt;storage structure

中圖分類號:TP313 文獻標識碼:A 文章編號:1006-4311(2018)01-0185-03

0 引言

PLC作為一種工控裝備,占據了自動化控制領域的半壁江山。在德國提出“工業4.0”,我國部署“中國制造2025”的大環境下,自動化形式越來越嚴峻,在這樣的形式下,PLC的技術改進也就成為了一種必然的趨勢。另一方面,雖然我國是PLC的使用大國,但是就最近幾年的PLC市場份額來看,我國使用的PLC大多來自歐美和日本。國內的PLC主要應用在小型自動化控制系統中。所以綜合來看,開發具有自主知識產權的PLC系統是我國自動化產業發展的必然需要。

梯形圖被稱為PLC的第一編程語言,憑借其直觀易學的優點,成為最廣泛的PLC編程語言。梯形圖采用圖形語言,沿用了繼電器的觸點、線圈、串并聯等術語與圖形符號,在計算機和控制技術上稱為“面向生產過程的語言”[1]。

Qt使用“一次編寫,隨處編譯”的方式為開發跨平臺的圖形用戶界面應用程序提供了一個完整的C++應用程序開發框架。Qt允許程序開發人員使用應用程序的單一源碼來構建可以運行在不同平臺下的應用程序,這些平臺包括從Windows98到Vista、Mac OS X、Linux以及其他很多基于X11的UNIX[2]。

由于當下工業形式的發展對工業生產的速度和安全提出了全新的要求,Windows系統在工業現場中的非實時性、不安全性得到了進一步暴露。所以開發跨平臺的、高效的PLC系統是今后PLC發展的一大趨勢。故本文基于Qt平臺實現的PLC梯形圖編程軟件將對開發跨平臺的PLC系統有著一定的貢獻。因為它結合了C++語言的高效性以及Qt框架的跨平臺特性充分體現了以上兩個PLC發展的方向。

1 梯形圖編程軟件的總體框架設計及實現

同任何的軟件框架相同,PLC梯形圖編程軟件的基本框架也包含了基于Qt類——QMainWindow的應用程序主窗口。其中包含基于QMenu的菜單欄、基于QToolBar的工具欄、基于QTabWidget的中央窗口部件、基于QStatusBar的狀態欄以及基于QDockWidget的停靠窗口(軟件主要構架如圖1所示)。中央窗口作為應用程序的主要部分,用QTabWidget來實現梯形圖編程時候的主、子、中斷程序之間的相互切換。當然,其中QTabWidget中包含的部件是基于Qt圖形視圖框架的梯形圖編輯部分。

從圖1中可以看出,中央窗口QTabWidget下面將包含三層結構:QGraphicsView、QGraphicsSecne、QGraphicsItem. 其實這就是整個圖形視圖框架的三層結構:視圖、場景、項目。其中,場景類用于提供一個用于管理位于其中的眾多圖元的容器,視圖類用于顯示場景中的圖元,一個場景可以供多個視圖來表現[3],場景的大小理論上來說是無限大的。圖形視圖框架的三元素關系如圖2所示。由于圖形視圖框架支持時間傳播體系結構,使得圖元能夠處理鼠標和鍵盤事件,另一方面來說,圖形視圖框架通過二叉空間分割樹(Binary Space Partitioning,BSP)來提供圖元的快速查找。在這樣的條件下,該框架能夠處理百萬級圖元的大場景。從而可以輕松的完成梯形圖的編輯。

2 梯形圖的數據存儲結構

在國際電工委推出了IEC61131-3標準后,基本上所有的PLC廠商都在逐漸的向這個標準靠攏。考慮到PLC梯形圖編程語言的讀寫方便性,該標準將各種程序進行必要的劃分——使用多種塊來組成整個控制程序。所以PLC編程軟件必須能對程序進行劃分處理,本文主要將控制程序劃分成主程序、子程序、終端程序三個部分。其實所有的劃分都是在另外一個存儲空間中存儲不同的梯形圖程序,他們的不同點存在于PLC梯形圖編程語言到可執行二進制代碼的編譯過程。由于鏈表在任何位置插入和刪除的速度都比較快,所以本文用QList < QList*>鏈表的數據結構來存儲主程序、子程序、中斷程序中的各個程序段。從數據結構中可以看出,存儲的內部結構都是以指針的形式來進行存儲,這樣就可以通過點擊菜單動態的添加子程序、主程序、中斷程序以及對應各個程序塊的不同程序段。

從圖1的主框架結構中可以看出,中央窗口部件QTabWidget主要以選項卡的方式來呈現出各個程序塊。也就是說,必須在每一個選項卡中添加一個圖形視圖框架來顯示場景。但是這樣做將會使程序的內存開支大大增加,故本文結合場景的無限大特點,將場景進行認為的劃分。其劃分結果如圖3所示。通過以上的場景劃分,可以在同一個場景中完成所有程序快的顯示,大大節省了程序的內存開支。

3 梯形圖編輯實現

在梯形圖編程語言中,為了讓程序的可讀性增強。一般將梯形圖程序劃分成多個程序段組成。在本文的設計中,一個程序段由以下4部分組成:程序段序號區、程序注釋、程序段、左母線、分割線。在Qt的圖形視圖框架下,重寫QGraphicsObject來實現程序段。同時采用C++的多態特性結合QPainter來重寫梯形圖語言的常開觸點、觸閉觸點、定時器等圖元.其繼承關系如圖4所示。

從圖中可以看出,程序段中的所有元素都繼承自QGraphicsItem。結合C++的RTTI(運行時類型識別),就可以把所有的程序段存入以QGraphicsItem為元素的鏈表結構中(即QList)。當用戶在動態的輸入程序段的注釋或改變程序段中的元素使得程序段的總高度發生變化時,必須改變該程序段后面的程序段的位置。為了解決這一個問題,采用Qt的信號與槽機制。當程序段的高度發生改變時候,發送相應的高度的改變信號。同時在QMainWindow中重寫位置跟新函數就能夠完美的解決這個問題。其中值得注意的是,程序段的注釋高度該表能夠激發自身的高度變化函數。這并不會使得程序段的高度變化信號發射。所以就必須在次應用信號與槽機制的另一個特性:信號的連鎖發射。通過connect函數,使得在一個信號發射的同時發射另外一個信號。到此為止,一個基本的PLC編程軟件基本開發完畢(如圖5所示),其基本功能已經實現,當然還有許多需要改進的地方。

4 總結

本文以C++語言為基礎,結合Qt跨平臺應用程序框架,主要應用Qt圖形視圖框架以及C++語言的運行時動態類型識別等技術,實現了PLC梯形圖編程軟件的框架設計以及程序編輯的基本功能。經過測試,此軟件可以運行在Linux和Windows平臺上,對于今后開發跨平臺的PLC應用程序有一點的貢獻作用。

參考文獻:

[1]蒲志新,熊永超,熊曉紅.PLC梯形圖語言編輯功能的軟件實現[J].機械,2003,30.

[2]Blanchette H,Summerfield M.C++ Programming with Qt4[M].New York:Prentice Hall,2008:6.

[3]陸文周.Qt5開發及實例[M].北京:電子工業出版社,2015,205.

[4]姜琳.基于單片機的 PLC 設計與實現[D].東南大學,2008.

[5]李洪亮.基于IEC 61131-3 標準的 PLC 仿真系統的研究與設計[D].山東大學,2010.

[6]朱兆斌.嵌入式數控系統軟 PLC 模塊的研究與實現[D].南京航空航天大學,2009.

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

[8]萬偉.PLC編程語言開發平臺的設計[D].武漢理工大學,2007.

主站蜘蛛池模板: 成人中文字幕在线| 91最新精品视频发布页| 蜜芽一区二区国产精品| 青青草原国产免费av观看| 视频在线观看一区二区| 综合色88| 欧美日本不卡| 国产在线视频福利资源站| 夜夜爽免费视频| 激情综合图区| 亚洲国产午夜精华无码福利| 国产浮力第一页永久地址| 中文字幕丝袜一区二区| 亚洲中久无码永久在线观看软件| 国语少妇高潮| 亚洲国产成人精品无码区性色| 亚洲精品无码抽插日韩| 五月激情综合网| 欧美区国产区| 2048国产精品原创综合在线| AV不卡在线永久免费观看| 91香蕉视频下载网站| 全部无卡免费的毛片在线看| 国产欧美精品午夜在线播放| 国产亚洲欧美在线中文bt天堂 | 欧美亚洲欧美区| 国产精品男人的天堂| 99青青青精品视频在线| 亚洲日韩精品综合在线一区二区| 九九久久精品国产av片囯产区| 日本一区二区不卡视频| 久久亚洲国产视频| 国产在线八区| 国产精品女在线观看| 亚洲综合香蕉| 中文字幕波多野不卡一区| 国产农村精品一级毛片视频| 久久黄色影院| 久久这里只有精品23| 日本免费新一区视频| 国产一区自拍视频| 在线观看精品国产入口| 亚洲午夜综合网| 国产第一色| 视频在线观看一区二区| 伊人成色综合网| 国内丰满少妇猛烈精品播 | 亚洲a级在线观看| 精品国产免费观看| 亚洲—日韩aV在线| 91国内外精品自在线播放| 国产91av在线| 亚洲午夜国产精品无卡| 欧美五月婷婷| 欧美成人综合在线| 精品无码人妻一区二区| 国产精品亚欧美一区二区| 99精品热视频这里只有精品7| 草逼视频国产| 亚洲中文字幕国产av| 国产亚洲视频免费播放| 看看一级毛片| 日本尹人综合香蕉在线观看| 99热线精品大全在线观看| 亚洲久悠悠色悠在线播放| 亚洲最大情网站在线观看 | 日韩欧美中文字幕在线精品| 日韩午夜片| 四虎国产永久在线观看| 日韩一级二级三级| 国产在线观看一区二区三区| 国产日韩欧美一区二区三区在线 | 国产日韩精品一区在线不卡| 亚洲精品无码抽插日韩| 国产成人精品第一区二区| 国产免费a级片| 亚洲美女视频一区| 超薄丝袜足j国产在线视频| 国产成年女人特黄特色毛片免| 成人福利免费在线观看| 干中文字幕| 狠狠做深爱婷婷久久一区|