基于開(kāi)放式數(shù)控系統(tǒng)的軟PLC開(kāi)發(fā)與應(yīng)用_第1頁(yè)
基于開(kāi)放式數(shù)控系統(tǒng)的軟PLC開(kāi)發(fā)與應(yīng)用_第2頁(yè)
基于開(kāi)放式數(shù)控系統(tǒng)的軟PLC開(kāi)發(fā)與應(yīng)用_第3頁(yè)
基于開(kāi)放式數(shù)控系統(tǒng)的軟PLC開(kāi)發(fā)與應(yīng)用_第4頁(yè)
基于開(kāi)放式數(shù)控系統(tǒng)的軟PLC開(kāi)發(fā)與應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩126頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、摘要開(kāi)放式數(shù)控系統(tǒng)是數(shù)控系統(tǒng)領(lǐng)域發(fā)展的重點(diǎn)方向,而傳統(tǒng)的 PLC 已經(jīng)無(wú)法滿足開(kāi)放式數(shù)控系統(tǒng)的要求,在 PC 機(jī)平臺(tái)上以軟件實(shí)現(xiàn)傳統(tǒng) PLC 功能的軟 PLC 技術(shù)已經(jīng)成為了開(kāi)放式數(shù)控系統(tǒng)實(shí)際應(yīng)用中的一項(xiàng)關(guān)鍵技術(shù)。為了實(shí)現(xiàn)用戶特定的控制工藝,全軟件型數(shù)控系統(tǒng)(EMC2)在實(shí)際應(yīng)用過(guò)程中經(jīng)常使用 shell 腳本來(lái)進(jìn)行輔助開(kāi)發(fā),并通過(guò)硬件抽象層(HAL)管腳來(lái)操作數(shù)控系統(tǒng)完成控制任務(wù)。這種開(kāi)發(fā)方式不但不易被用戶掌握,而且控制工藝在試用期間是需要不斷調(diào)整的,這樣就造成了數(shù)控系統(tǒng)應(yīng)用開(kāi)發(fā)任務(wù)重、周期長(zhǎng)、維護(hù)難等問(wèn)題,不利于數(shù)控系統(tǒng)在市場(chǎng)的應(yīng)用與推廣。為解決上述問(wèn)題,本文在基于 PC 的全軟件型數(shù)控系

2、統(tǒng)(EMC2)上開(kāi)發(fā)出了一套軟PLC 應(yīng)用軟件,用戶可以根據(jù)自身的工藝要求使用梯形圖自行設(shè)計(jì)操作流程。其主要內(nèi)容如下:首先,根據(jù)符合 IEC61131-3 標(biāo)準(zhǔn)的梯形圖編程規(guī)則,使用 Qt 設(shè)計(jì)并實(shí)現(xiàn)了軟PLC的編輯器,用戶可以使用該編輯器完成梯形圖程序的編輯、保存、打開(kāi)等操作。其次,根據(jù)在編輯過(guò)程中保存梯形圖程序所使用的數(shù)據(jù)結(jié)構(gòu)的特點(diǎn),研究了基于二維數(shù)組的梯形圖轉(zhuǎn)換為指令表的策略,并根據(jù)梯形圖的運(yùn)行規(guī)則,設(shè)計(jì)并實(shí)現(xiàn)了直接對(duì)梯形圖程序進(jìn)行解釋執(zhí)行的算法。再次,根據(jù) EMC2 的HAL 機(jī)制設(shè)計(jì)并實(shí)現(xiàn)了運(yùn)行系統(tǒng)的解釋執(zhí)行模塊,使得軟 PLC 可以周期性的讀取輸入、解釋執(zhí)行梯形圖程序、刷新輸出?;?/p>

3、于該運(yùn)行機(jī)制,還設(shè)計(jì)實(shí)現(xiàn)了軟PLC 軸控制功能。最后對(duì)軟 PLC 各個(gè)功能模塊進(jìn)行了測(cè)試,并以 LED 點(diǎn)膠機(jī)為實(shí)驗(yàn)平臺(tái),將所開(kāi)發(fā)的軟PLC 應(yīng)用程序搭載到EMC2 數(shù)控系統(tǒng)上,使用 PLC 編輯開(kāi)發(fā) LED 點(diǎn)膠機(jī)的梯形圖程序。經(jīng)實(shí)際運(yùn)行測(cè)試,LED 點(diǎn)膠機(jī)能夠完成預(yù)定的工藝流程,PLC 以及數(shù)控系統(tǒng)亦能夠穩(wěn)定地工作。關(guān)鍵詞:開(kāi)放式數(shù)控系統(tǒng);EMC2;軟PLC;硬件抽象層;QTIXAbstractOpen CNC system is the key development direction in the field of numerical control system, but the

4、traditional PLC has been unable to meet the requirements of open CNC system. Soft-PLC which was implemented in software based on PC has been an important technology in the practical application of open CNC system. In order to realize the specific control process for users, the shell script usual was

5、 used to assistant development, and through the HAL pins to operate the numerical control system to implement the control task during the application of full software CNC (EMC2). The development mode have some limitations, most of users do not have the ability to develop by this manner, and the cont

6、rol technology requires frequent adjustment during the trial period, which caused the application tasks of CNC system become heavy, development cycle become longer, and more difficult to maintain. These defects have hindered the application and promotion of CNC system in the market.In order to solve

7、 the above problems, the soft-PLC has been developed based on full software CNC, it lets users design their own operating procedures according to their demands by themselves. Its main contents are listed as follows.Firstly, according to the programming rules of ladder diagram which has been defined

8、in the standard IEC61131-3, the editor of ladder diagram was designed and realized by Qt. Users of soft-PLC can edit or save, open programs of ladder diagram.Secondly, the strategy of transforming the ladder diagram based on two-dimensional array to instruct list was studied according to characteris

9、tics of the data structure which was used to save ladder diagram during the editing progress. The algorithm to directly explain and execute ladder diagram programs has also been designed and implemented.Thirdly, the modules of the running system to explain and execute ladder diagram programs was rea

10、lized based on HAL of EMC2, which enable soft-PLC to read inputs, explain and execute ladder diagram programs, and renew output periodically. In a result, the axis control function of soft- PLC has also been realized.Finally, each of function modules of the soft-PLC has been tested, and also it has

11、successfully used in a LED dispenser, the result of testing indicate that the LED dispenser can correctly accomplish the technological process.Key words: open CNC system; EMC2; soft-PLC; HAL; QT目錄摘要IAbstractII第一章 緒論1 課題研究的背景與意義1 開(kāi)放式數(shù)控系統(tǒng)簡(jiǎn)介1 軟PLC 產(chǎn)生的背景2 軟PLC 的國(guó)內(nèi)外發(fā)展現(xiàn)狀3 軟PLC 的發(fā)展趨勢(shì)3 課題的提出和研究?jī)?nèi)容4 課題的提出4 課題

12、的研究?jī)?nèi)容4 本論文的組織結(jié)構(gòu)5第二章 軟 PLC 應(yīng)用軟件的總體設(shè)計(jì)6 傳統(tǒng)PLC 的體系結(jié)構(gòu)和工作原理6 傳統(tǒng)PLC 的硬件體系結(jié)構(gòu)6 傳統(tǒng)PLC 的工作原理7 全軟件型數(shù)控系統(tǒng)的體系結(jié)構(gòu)8 實(shí)時(shí)操作系統(tǒng)平臺(tái)8 開(kāi)源數(shù)控軟件EMC29 IEC61131-3 標(biāo)準(zhǔn)的編程語(yǔ)言10 軟PLC 的需求分析12 軟PLC 系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)與分析13 軟PLC 的結(jié)構(gòu)分析13 軟PLC 的結(jié)構(gòu)設(shè)計(jì)14 本章小結(jié)15第三章 軟 PLC 梯形圖編輯器的設(shè)計(jì)與實(shí)現(xiàn)16 圖形界面開(kāi)發(fā)工具 QT 簡(jiǎn)介16 Qt 的體系結(jié)構(gòu)16 Qt 信號(hào)和槽的機(jī)制16 梯形圖編輯器的界面設(shè)計(jì)18 主界面的設(shè)計(jì)18 梯形圖編輯區(qū)域

13、的設(shè)計(jì)21 梯形圖圖元的設(shè)計(jì)22 梯形圖編輯器的實(shí)現(xiàn)24 編輯器主界面的實(shí)現(xiàn)24 編輯器繪圖區(qū)域的實(shí)現(xiàn)26 本章小節(jié)31第四章 軟 PLC 運(yùn)行系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)32 基于二維數(shù)組的梯形圖轉(zhuǎn)換為指令表的策略研究32 提取梯形圖程序的網(wǎng)絡(luò)連接信息33 梯形圖二叉樹(shù)的串并聯(lián)歸并36 梯形圖直接解釋執(zhí)行的實(shí)現(xiàn)40 梯形圖的解釋執(zhí)行算法設(shè)計(jì)40 梯形圖各圖元的解釋執(zhí)行43 運(yùn)行系統(tǒng)解釋執(zhí)行模塊的實(shí)現(xiàn)45 EMC2 中的硬件抽象層技術(shù)原理45 HAL 組件的創(chuàng)建46 周期性掃描梯形圖程序的實(shí)現(xiàn)48 PLC 運(yùn)行系統(tǒng)與開(kāi)發(fā)系統(tǒng)的通信50 基于EMC2 的PLC 軸控制功能的實(shí)現(xiàn)51 軸控制功能梯形圖軟元件的

14、設(shè)計(jì)51 軸控制軟元件功能的實(shí)現(xiàn)52 本章小結(jié)55第五章 軟 PLC 的測(cè)試與應(yīng)用565.1 軟PLC 各功能模塊的測(cè)試565.1.1 梯形圖編輯功能的測(cè)試565.1.2 梯形圖程序錯(cuò)誤檢查功能的測(cè)試575.1.3 軟PLC 各軟元件的邏輯功能測(cè)試575.2 LED 點(diǎn)膠機(jī)軟PLC 的應(yīng)用實(shí)例615.2.1 LED 點(diǎn)膠機(jī)簡(jiǎn)介615.2.2 LED 點(diǎn)膠機(jī)的點(diǎn)膠流程615.2.3 LED 點(diǎn)膠機(jī)軟PLC 控制的實(shí)現(xiàn)625.3 本章小結(jié)65總結(jié)與展望66參考文獻(xiàn)67攻讀碩士學(xué)位期間取得的研究成果70致謝71第一章 緒論第一章 緒論 課題研究的背景與意義 開(kāi)放式數(shù)控系統(tǒng)簡(jiǎn)介傳統(tǒng)數(shù)控系統(tǒng)在硬件和軟件

15、上都是專用的,整個(gè)體系結(jié)構(gòu)也是封閉的1。從硬件上講,各個(gè)廠家都使用自己專門(mén)設(shè)計(jì)的主板和伺服電路,而且相互之間都是獨(dú)立的,沒(méi)有統(tǒng)一的標(biāo)準(zhǔn),系統(tǒng)軟件的結(jié)構(gòu)也是各廠家根據(jù)自身的硬件平臺(tái)專門(mén)設(shè)計(jì)的,不具有可移植性和伸展性2。隨著現(xiàn)代制造技術(shù)和計(jì)算機(jī)控制技術(shù)的普及和發(fā)展,這種封閉式的體系結(jié)構(gòu)所帶來(lái)的缺陷也變得越來(lái)越明顯,存在著結(jié)構(gòu)固定、功能單一、維護(hù)困難、互不兼容等劣勢(shì),嚴(yán)重制約了數(shù)控技術(shù)的發(fā)展和推廣。在這種情況下,具有配置靈活、功能拓展簡(jiǎn)便、統(tǒng)一規(guī)范的開(kāi)放式數(shù)控系統(tǒng)從一出現(xiàn)便受到市場(chǎng)的關(guān)注,與此同時(shí),傳統(tǒng)數(shù)控系統(tǒng)這種封閉式的控制模式已經(jīng)無(wú)法適應(yīng)現(xiàn)代信息技術(shù)的發(fā)展,其控制模式必須轉(zhuǎn)向通用型開(kāi)放體系結(jié)構(gòu)發(fā)

16、展,開(kāi)放式數(shù)控系統(tǒng)顯然已經(jīng)成為數(shù)控系統(tǒng)發(fā)展的趨勢(shì)。開(kāi)放式數(shù)控系統(tǒng)相對(duì)于傳統(tǒng)數(shù)控系統(tǒng)而言,優(yōu)勢(shì)在于開(kāi)放式數(shù)控系統(tǒng)具有與 PC 機(jī)類似的開(kāi)放性,均在一個(gè)統(tǒng)一的平臺(tái)上構(gòu)建起整個(gè)系統(tǒng),并使系統(tǒng)具有模塊化的組織結(jié)構(gòu)。這種開(kāi)放式的體系結(jié)構(gòu)不但能夠滿足頻繁變化的市場(chǎng)需求,而且還增強(qiáng)了數(shù)控系統(tǒng)的柔性,可以對(duì)系統(tǒng)進(jìn)行伸縮、擴(kuò)展、移植等操作,降低了其再次開(kāi)發(fā)的難度2,3,4。開(kāi)放式數(shù)控系統(tǒng)開(kāi)放的層次可以劃分為三個(gè)層次:人機(jī)控制接口、系統(tǒng)核心接口、體系結(jié)構(gòu)。其中開(kāi)放人機(jī)控制接口和系統(tǒng)核心接口只能具有部分的開(kāi)放性,而開(kāi)放的體系結(jié)構(gòu)則具有比較徹底的開(kāi)放性5?;?PC 機(jī)軟硬件平臺(tái)構(gòu)造出數(shù)控的功能是當(dāng)前實(shí)現(xiàn)數(shù)控系統(tǒng)開(kāi)放

17、性的一種比較成熟的方法,基于 PC 的開(kāi)放式數(shù)控系統(tǒng)從其體系結(jié)構(gòu)來(lái)劃分又可以分為三類2,5: PC 嵌入到 NC(數(shù)控)的數(shù)控系統(tǒng)。這種數(shù)控系統(tǒng)是將 PC 裝入到 NC 內(nèi)部, 并使用專用的總線將 PC 和 NC 連接起來(lái)。這種方案的 NC 內(nèi)核仍然會(huì)保持其原有的封閉性,只能開(kāi)放系統(tǒng)的人機(jī)控制接口。 NC 嵌入到 PC 的數(shù)控系統(tǒng)。這種數(shù)控系統(tǒng)是通過(guò)在通用 PC 的擴(kuò)展槽中插入運(yùn)動(dòng)控制卡而組成的。運(yùn)用 PC 實(shí)現(xiàn)人機(jī)控制接口的開(kāi)放,再借助運(yùn)動(dòng)控制卡的可編程2功能實(shí)現(xiàn)系統(tǒng)核心接口的部分開(kāi)放。 全軟件型數(shù)控系統(tǒng)。這種系統(tǒng)的 CNC(計(jì)算機(jī)數(shù)控)功能全部由軟件在 PC 機(jī)上實(shí)現(xiàn),并通過(guò)裝在 PC 機(jī)

18、擴(kuò)展槽的伺服接口卡對(duì)伺服驅(qū)動(dòng)等進(jìn)行控制。其以 CNC 裝置的主體為 PC 機(jī),可以充分利用 PC 運(yùn)算快,存儲(chǔ)量大,性能穩(wěn)定等優(yōu)勢(shì),實(shí)現(xiàn)機(jī)床控制中的運(yùn)動(dòng)軌跡控制和開(kāi)關(guān)量邏輯控制,是一種具有開(kāi)放體系結(jié)構(gòu)的數(shù)控系統(tǒng)。 軟 PLC 產(chǎn)生的背景PLC(Programmable Logic Controller)是 60 年代基于計(jì)算機(jī)技術(shù)、通信技術(shù)、繼電器控制技術(shù)發(fā)展起來(lái)的一種工業(yè)控制裝置。傳統(tǒng)硬件 PLC 的基本設(shè)計(jì)思想就是把計(jì)算機(jī)的完備功能和繼電器控制系統(tǒng)的順序控制技術(shù)相結(jié)合,成為一種可以存儲(chǔ)用戶程序、在線修改用戶程序、程序語(yǔ)言簡(jiǎn)單易懂、功能易于擴(kuò)展、體積小、可靠性高、易于維護(hù)等通用性強(qiáng)的控制裝置

19、。PLC 在數(shù)控系統(tǒng)中的主要作用是完成數(shù)控部分的 M、S、T 輔助功能,在數(shù)控系統(tǒng)配置機(jī)床的時(shí)候起接口作用。然而傳統(tǒng)的 PLC 和傳統(tǒng)的數(shù)控系統(tǒng)一樣,在計(jì)算機(jī)技術(shù)飛速發(fā)展的情況下,其弊端也越來(lái)越明顯,各個(gè)廠家的機(jī)型互不兼容,缺乏統(tǒng)一的標(biāo)準(zhǔn), 產(chǎn)品過(guò)分依賴于硬件導(dǎo)致功能難以擴(kuò)展,價(jià)格也比較昂貴。傳統(tǒng)的 PLC 顯然無(wú)法滿足開(kāi)放式數(shù)控系統(tǒng)的要求,于是就有了軟 PLC 的概念。軟 PLC 控制技術(shù)亦稱為軟邏輯和基于 PC 的控制技術(shù),本質(zhì)就是利用 PC 的資源,以軟件的形式實(shí)現(xiàn)傳統(tǒng) PLC 的功能。軟 PLC 能夠滿足開(kāi)放式數(shù)控系統(tǒng)的開(kāi)放性要求,已經(jīng)成為開(kāi)放式數(shù)控系統(tǒng)的關(guān)鍵性技術(shù)之一6。相對(duì)于傳統(tǒng)P

20、LC 而言,軟PLC 具有以下優(yōu)勢(shì)7:(1) 具有開(kāi)放的體系結(jié)構(gòu),可以支持多種硬件,能夠解決傳統(tǒng) PLC 互不兼容的問(wèn)題。(2) 遵循國(guó)際工業(yè)自動(dòng)化控制領(lǐng)域標(biāo)準(zhǔn) IEC61131-3,使軟 PLC 程序具有良好的可讀性、維護(hù)性和可移植性。(3) 具有強(qiáng)大的數(shù)據(jù)分析和數(shù)據(jù)處理能力。采用 PC 強(qiáng)大的數(shù)據(jù)處理能力,可以處理包括浮點(diǎn)型數(shù)據(jù)、字符串在內(nèi)的各種復(fù)雜數(shù)據(jù),數(shù)據(jù)的管理和保存也比較簡(jiǎn)便。(4) 具備網(wǎng)絡(luò)通信功能,可以實(shí)現(xiàn)對(duì)現(xiàn)場(chǎng)設(shè)備的實(shí)時(shí)監(jiān)控。(5) 節(jié)約成本。3第一章 緒論 軟 PLC 的國(guó)內(nèi)外發(fā)展現(xiàn)狀軟 PLC 作為一項(xiàng)工業(yè)自動(dòng)化領(lǐng)域的新型控制技術(shù),得到了歐美、日本等發(fā)達(dá)國(guó)家的重視,在相關(guān)的

21、研究方面已進(jìn)行了比較多的投資,并取得了比較好的效果。目前,國(guó)外已經(jīng)投入使用的軟 PLC 產(chǎn)品較多,如 SOFTPLC 公司的 SoftPLC、德國(guó) SIEMENS 公司的SIMATIC WinAC、CJ International 公司的 ISAGRAF、Wonderware 公司的InControl 等,這些產(chǎn)品已經(jīng)相對(duì)比較成熟,而且都具有各自的特點(diǎn)8。國(guó)內(nèi)對(duì)于軟 PLC 的研究開(kāi)發(fā)相對(duì)國(guó)外來(lái)說(shuō)起步較晚,主要是數(shù)控系統(tǒng)科研機(jī)構(gòu)和一些高校有相關(guān)的研究工作,并取得了一些成果。如東南大學(xué)呂涌等開(kāi)發(fā)的面向 DCS 控制組態(tài)軟件雖然具有一些軟PLC 功能,但功能不全,且不能獨(dú)立運(yùn)行9;國(guó)家數(shù)控系統(tǒng)工程

22、技術(shù)研究中心羅華麗等對(duì)開(kāi)放式數(shù)控系統(tǒng)軟 PLC 技術(shù)做了一些研究,并提出了一種基于開(kāi)放式數(shù)控系統(tǒng)的嵌入式軟件 PLC 子系統(tǒng)的實(shí)現(xiàn)方法,設(shè)計(jì)了軟 PLC 的結(jié)構(gòu)模型,并對(duì)軟 PLC 開(kāi)發(fā)系統(tǒng)進(jìn)行了研究10;清華大學(xué)制造工程研究所的游華云等開(kāi)發(fā)的基于 RTLinux 實(shí)時(shí)操作系統(tǒng)的軟 PLC 應(yīng)用軟件,具有一定的可靠性和穩(wěn)定性,可以作為一個(gè)獨(dú)立的模塊與不同的數(shù)控系統(tǒng)協(xié)同工作11。除此之外,還有一些高校如哈爾濱工業(yè)大學(xué)、華中科技大學(xué)等進(jìn)行了一些基礎(chǔ)性的研究,這些基礎(chǔ)性研究主要包括梯形圖程序的編譯策略、軟PLC 編輯系統(tǒng)開(kāi)發(fā)與實(shí)現(xiàn)、軟PLC 編程語(yǔ)言之間的轉(zhuǎn)化等8,12,13,14,15。 軟 PL

23、C 的發(fā)展趨勢(shì)針對(duì)目前軟 PLC 技術(shù)的發(fā)展現(xiàn)狀,軟 PLC 要想獲得市場(chǎng)更多的認(rèn)可還需在以下幾個(gè)方面做進(jìn)一步的完善8。4 提高系統(tǒng)的開(kāi)放性軟PLC 相對(duì)于傳統(tǒng)PLC 一個(gè)很大的優(yōu)勢(shì)在于它的開(kāi)放性,進(jìn)一步提高軟 PLC 的開(kāi)放性,有助于軟PLC 在市場(chǎng)上的應(yīng)用推廣。5 提高系統(tǒng)實(shí)時(shí)運(yùn)行的穩(wěn)定性系統(tǒng)的實(shí)時(shí)性決定了軟 PLC 的工作性能,而實(shí)時(shí)運(yùn)行的穩(wěn)定性則是軟 PLC 技術(shù)發(fā)展的關(guān)鍵。6 實(shí)現(xiàn)與互聯(lián)網(wǎng)的連接隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,實(shí)現(xiàn)設(shè)備與互聯(lián)網(wǎng)的連接不僅可以實(shí)現(xiàn)遠(yuǎn)程控制、遠(yuǎn)程診4斷、網(wǎng)絡(luò)數(shù)據(jù)處理等功能,還可以實(shí)現(xiàn)設(shè)備之間的數(shù)據(jù)傳輸。 課題的提出和研究?jī)?nèi)容 課題的提出本課題來(lái)源于實(shí)驗(yàn)室與校外企業(yè)共

24、同合作研發(fā)的一個(gè)項(xiàng)目,該項(xiàng)目的目的就是在該公司的全軟件型數(shù)控系統(tǒng)(EMC2)上,開(kāi)發(fā)出一套軟 PLC 應(yīng)用軟件,使其具備傳統(tǒng)PLC 功能的同時(shí),還能夠作為用戶的一個(gè)開(kāi)發(fā)工具,可以利用梯形圖程序代替 NC 代碼或者兩者協(xié)同工作。如此,一方面可以利用 PLC 梯形圖使用的廣泛性和易用性提高產(chǎn)品在市場(chǎng)的競(jìng)爭(zhēng)力,另一方面可以擴(kuò)大數(shù)控系統(tǒng)的應(yīng)用市場(chǎng),在自動(dòng)控制領(lǐng)域,可以爭(zhēng)奪一些傳統(tǒng)PLC 的市場(chǎng)。 課題的研究?jī)?nèi)容本課題是在具有 Linux+RTAI 雙內(nèi)核實(shí)時(shí)環(huán)境的數(shù)控系統(tǒng)上進(jìn)行研究的,底層使用C 語(yǔ)言,上層使用 QT 庫(kù)(C+)作為各自的開(kāi)發(fā)語(yǔ)言,結(jié)合開(kāi)源數(shù)控 EMC2 的結(jié)構(gòu)以及硬件抽象層技術(shù),研究

25、開(kāi)發(fā)出一套軟 PLC 應(yīng)用軟件,該應(yīng)用軟件采用符合國(guó)際標(biāo)準(zhǔn)IEC61131-3 的梯形圖作為編程語(yǔ)言。本文的研究?jī)?nèi)容主要包括以下幾個(gè)部分:3 軟PLC 開(kāi)發(fā)的總體設(shè)計(jì)根據(jù)傳統(tǒng)PLC 的運(yùn)行原理,再結(jié)合開(kāi)源數(shù)控EMC2 的結(jié)構(gòu)體系,設(shè)計(jì)出軟PLC 的軟件結(jié)構(gòu)。4 軟PLC 梯形圖編輯器的設(shè)計(jì)與實(shí)現(xiàn)設(shè)計(jì)了一個(gè)簡(jiǎn)潔美觀的梯形圖編輯環(huán)境,并使用圖形界面開(kāi)發(fā)工具將其實(shí)現(xiàn)。5 梯形圖運(yùn)行系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)運(yùn)行系統(tǒng)的任務(wù)就是周期性的解釋執(zhí)行梯形圖程序,重點(diǎn)研究了基于二維數(shù)組的梯形圖向指令表的轉(zhuǎn)換策略和直接進(jìn)行解釋執(zhí)行的算法,提出了基于 EMC2 的 HAL(硬件抽象層)機(jī)制實(shí)現(xiàn)周期性掃描的方法。6 軟PLC

26、軸控制功能的實(shí)現(xiàn)根據(jù)運(yùn)行系統(tǒng)的運(yùn)行機(jī)制,將數(shù)控的軸運(yùn)動(dòng)控制設(shè)計(jì)為梯形圖的軟元件,實(shí)現(xiàn)通過(guò)梯形圖程序來(lái)完成軸控制的目的。5第一章 緒論 本論文的組織結(jié)構(gòu)本論文共分五章:第一章是緒論部分,主要是介紹了開(kāi)放式數(shù)控系統(tǒng)的概念、軟 PLC 產(chǎn)生的背景,以及軟PLC 技術(shù)的國(guó)內(nèi)外研究概況和發(fā)展趨勢(shì),接著提出了本課題的出處和研究?jī)?nèi)容。第二章先是分別介紹了傳統(tǒng) PLC 的設(shè)計(jì)結(jié)構(gòu)和運(yùn)行原理、全軟件型開(kāi)放式數(shù)控系統(tǒng)、開(kāi)源數(shù)控軟件EMC2 和IEC61131-3 標(biāo)準(zhǔn)的編程語(yǔ)言,接著對(duì)軟PLC 進(jìn)行了需求分析,最后給出了軟PLC 結(jié)構(gòu)的設(shè)計(jì)方法。第三章主要講述了軟 PLC 梯形圖編輯器的設(shè)計(jì)與實(shí)現(xiàn),介紹了開(kāi)發(fā)所使

27、用的圖形界面開(kāi)發(fā)工具 QT,并詳細(xì)說(shuō)明了梯形圖編輯器的設(shè)計(jì)和實(shí)現(xiàn)過(guò)程。第四章主要是講述軟 PLC 運(yùn)行系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),先是研究了基于二維數(shù)組的梯形圖轉(zhuǎn)換為指令表的策略以及直接對(duì)梯形圖進(jìn)行解釋執(zhí)行的算法,接著講述了運(yùn)行系統(tǒng)解釋執(zhí)行模塊的實(shí)現(xiàn)和軟PLC 軸控制功能的實(shí)現(xiàn)。第五章介紹了對(duì)軟 PLC 各個(gè)功能模塊的測(cè)試,包括梯形圖各類圖元邏輯功能的測(cè)試,并介紹了將軟PLC 應(yīng)用于 LED 點(diǎn)膠機(jī)實(shí)現(xiàn)自動(dòng)點(diǎn)膠的過(guò)程。5第二章 軟 PLC 應(yīng)用軟件的總體設(shè)計(jì) 傳統(tǒng) PLC 的體系結(jié)構(gòu)和工作原理 傳統(tǒng) PLC 的硬件體系結(jié)構(gòu)PLC 作為一種用于工業(yè)控制的計(jì)算機(jī),采用了可編程的存儲(chǔ)器來(lái)保存用戶程序,能夠執(zhí)行

28、邏輯運(yùn)算、順序控制等程序指令,并通過(guò)數(shù)字量或模擬量的輸入/輸出控制外部設(shè)備的運(yùn)行。PLC 具有與微機(jī)相類似的硬件結(jié)構(gòu),其組成主要有 CPU、存儲(chǔ)器、輸入輸出接口電路以及各種外設(shè)接口16。下圖為典型的PLC 結(jié)構(gòu)簡(jiǎn)圖:6 中央處理器(CPU)圖 2-1 硬件 PLC 結(jié)構(gòu)簡(jiǎn)圖CPU 作為PLC 的控制中心和運(yùn)算中心,在PLC 中主要完成以下工作:接收并存儲(chǔ)用戶的程序和數(shù)據(jù);診斷用戶程序中的語(yǔ)法錯(cuò)誤和 PLC 內(nèi)部電路故障;接收并保存外部設(shè)備的輸入信號(hào);編譯解釋用戶程序,并根據(jù)程序的控制邏輯輸出相應(yīng)的控制信號(hào), 完成用戶程序?qū)?yīng)的控制任務(wù)。 存儲(chǔ)器存儲(chǔ)器分為只讀存儲(chǔ)器 ROM 和隨機(jī)讀寫(xiě)存儲(chǔ)器 R

29、AM,如果根據(jù)存儲(chǔ)內(nèi)容來(lái)劃分則又可以分為系統(tǒng)程序存儲(chǔ)器、用戶程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器。其中系統(tǒng)程序存儲(chǔ)器用來(lái)存儲(chǔ)系統(tǒng)的監(jiān)控管理、故障檢測(cè)、指令解析程序,生產(chǎn)廠家會(huì)事先固化到 EPROM 中;第二章 軟 PLC 應(yīng)用軟件的總體設(shè)計(jì)用戶程序存儲(chǔ)器是用來(lái)存儲(chǔ)用戶程序的;數(shù)據(jù)存儲(chǔ)器則是用來(lái)存儲(chǔ) I/O 狀態(tài)、中間開(kāi)關(guān)量狀態(tài)、定時(shí)器和計(jì)數(shù)器的設(shè)定值與當(dāng)前值、以及各種數(shù)據(jù)運(yùn)算的源數(shù)據(jù)和結(jié)果數(shù)據(jù)、狀態(tài)標(biāo)識(shí)位等。 輸入輸出單元工業(yè)生產(chǎn)現(xiàn)場(chǎng)的輸入輸出設(shè)備或其他外設(shè)必須通過(guò)輸入輸出單元才能夠與 PLC 相連接,輸入輸出單元可以實(shí)現(xiàn)外部設(shè)備的輸入輸出信號(hào)與 PLC 內(nèi)部信號(hào)之間的相互轉(zhuǎn)換。 傳統(tǒng) PLC 的工作原理P

30、LC 采用循環(huán)掃描的工作方式,PLC 的系統(tǒng)軟件首先會(huì)在內(nèi)部建立輸入輸出映像區(qū), 正常運(yùn)行的時(shí)候,PLC 的工作可以分為三個(gè)階段:輸入采樣;執(zhí)行用戶程序;輸出刷新(1) 。 輸入采樣在這個(gè)階段,PLC 將以掃描的方式依次讀取所有的輸入狀態(tài)和數(shù)據(jù),并存入輸入映像區(qū)。輸入采樣結(jié)束后,輸入映像區(qū)內(nèi)的狀態(tài)和數(shù)據(jù)將不會(huì)隨著外部輸入狀態(tài)和數(shù)據(jù)發(fā)生變化,直到新的掃描周期開(kāi)始。 用戶程序的執(zhí)行輸入采樣完成之后,PLC 將以從上到下的順序依次掃描用戶程序,對(duì)于梯形圖程序, 會(huì)先掃描連接梯形圖左母線的控制線路,再按從左到右,從上到下的順序?qū)μ菪螆D程序進(jìn)行邏輯解析,最后根據(jù)邏輯解析的結(jié)果刷新輸出元件在輸出映像區(qū)中對(duì)

31、應(yīng)的狀態(tài)或數(shù)據(jù)。 輸出刷新執(zhí)行完用戶程序后,PLC 將根據(jù)輸出映像區(qū)內(nèi)對(duì)應(yīng)的狀態(tài)和數(shù)據(jù)刷新所有的輸出鎖存電路,從而驅(qū)動(dòng)相應(yīng)的外設(shè)。PLC 在每次掃描周期內(nèi),除了完成輸入采樣、執(zhí)行用戶程序、刷新輸出線圈外,還會(huì)進(jìn)行故障自診斷。在每次掃描開(kāi)始時(shí),會(huì)先執(zhí)行一次自診斷程序,對(duì)各輸入輸出點(diǎn), 存儲(chǔ)器以及CPU 等進(jìn)行診斷,只有在沒(méi)有發(fā)生故障時(shí),才會(huì)繼續(xù)往下掃描。8 全軟件型數(shù)控系統(tǒng)的體系結(jié)構(gòu) 實(shí)時(shí)操作系統(tǒng)平臺(tái)全軟件型數(shù)控系統(tǒng)要求操作系統(tǒng)必須具有良好的實(shí)時(shí)性,本課題研究采用的操作系統(tǒng)是使用 Linux+RTAI 的方法來(lái)實(shí)現(xiàn)硬實(shí)時(shí)性的,即通過(guò)對(duì) Linux 操作系統(tǒng)安裝實(shí)時(shí)性補(bǔ)丁RTAI 來(lái)實(shí)現(xiàn)系統(tǒng)的硬實(shí)

32、時(shí)性。Linux 是一個(gè)支持多用戶、多任務(wù)、多線程和多 CPU 的開(kāi)源操作系統(tǒng),而且是全免費(fèi)的,用戶可以很方便的通過(guò)網(wǎng)絡(luò)或其他途徑免費(fèi)獲得,并能夠任意修改其源代碼。Linux 操作系統(tǒng)的結(jié)構(gòu)如下圖所示,包含應(yīng)用層、shell 命令解析器及庫(kù)函數(shù)層、系統(tǒng)調(diào)用層、內(nèi)核層,如圖 2-2 所示。圖 2-2 Linux 操作系統(tǒng)結(jié)構(gòu)圖RTAI 是通過(guò)在 Linux 上定義一組實(shí)時(shí)硬件抽象層 RTHAL,將所有需要的 Linux 內(nèi)部數(shù)據(jù)和函數(shù)指針集合到一個(gè)Rthal 的結(jié)構(gòu)中。Rthal 結(jié)構(gòu)可以用于截取 Linux 的硬件操作,在雙內(nèi)核結(jié)構(gòu)工作時(shí),可以取代 Linux 中原有的函數(shù)18。這樣 RTAI

33、 就成為了一個(gè)具備操作系統(tǒng)核心功能的實(shí)時(shí)系統(tǒng)內(nèi)核,接管所有硬件資源,而 Linux 內(nèi)核只能在 RTAI 沒(méi)有實(shí)時(shí)任務(wù)的情況下才能運(yùn)行。雙內(nèi)核結(jié)構(gòu)圖如圖 2-3 所示。RTAI 在 Linux 系統(tǒng)中以內(nèi)核模塊的形式運(yùn)行,而且是一個(gè)完全的占先式內(nèi)核,具備實(shí)時(shí)系統(tǒng)的特性,能夠使Linux 在比較小的改動(dòng)下,實(shí)現(xiàn)硬實(shí)時(shí)性。8第二章 軟 PLC 應(yīng)用軟件的總體設(shè)計(jì)Linux 任務(wù) 實(shí)時(shí)任務(wù)Linux 內(nèi)核調(diào)度RTAI 內(nèi)核硬件抽象層(RTHAL)圖 2-3 Linux+RTAI 雙內(nèi)核結(jié)構(gòu)圖18 開(kāi)源數(shù)控軟件 EMC2EMC2 起初是由美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院(NIST)專門(mén)為機(jī)床加工而研發(fā)的一款控

34、制軟件,后來(lái)發(fā)展成為了一個(gè)開(kāi)源的軟件。EMC2 運(yùn)行于Linux+RTAI 的實(shí)時(shí)系統(tǒng)上, 這樣一方面利用了 Linux 系統(tǒng)成熟穩(wěn)定的軟件開(kāi)發(fā)優(yōu)勢(shì),另一方面具有了 RTAI 穩(wěn)定的實(shí)時(shí)性。EMC2 包括四個(gè)模塊:人機(jī)界面(GUI)、任務(wù)控制器、運(yùn)動(dòng)控制器、I/O 控制器19。EMC2 為了能夠在不改變上層程序的情況下可以很方便地針對(duì)不同的硬件進(jìn)行配置,還設(shè)計(jì)了底層軟件框架HAL(Hardware Abstraction Layer),其軟件結(jié)構(gòu)如圖 2-4 所示。17 人機(jī)界面模塊人機(jī)界面是用戶與數(shù)控系統(tǒng)進(jìn)行交互的接口,用戶可以在人機(jī)界面上輸入自己要操作的命令,輸入的命令會(huì)通過(guò)軟件的命令通道

35、傳送到任務(wù)控制器,再由任務(wù)控制器對(duì)這些命令進(jìn)行解析和分派。任務(wù)控制器、運(yùn)動(dòng)控制器、IO 控制器的狀態(tài)信息和錯(cuò)誤信息都可以通過(guò)任務(wù)和狀態(tài)通道上傳到人機(jī)界面。18 任務(wù)控制器模塊任務(wù)控制器作為數(shù)控的大腦,通過(guò)輪詢?nèi)藱C(jī)界面和任務(wù)控制器之間的命令通道,獲取加工命令,并根據(jù)加工程序?qū)⒚罘峙傻竭\(yùn)動(dòng)控制器和 I/O 控制器,任務(wù)控制器除了能夠解釋并執(zhí)行 NC 代碼,完成工藝的順序控制外,還能夠進(jìn)行錯(cuò)誤檢測(cè)和診斷,將運(yùn)動(dòng)控制器和I/O 控制器的狀態(tài)信息傳遞到人機(jī)界面顯示20。10人機(jī)界面(GUI)NML共享內(nèi)存NMLHAL(硬件抽象層)圖 2-4 EMC 軟件結(jié)構(gòu)圖19 運(yùn)動(dòng)控制模塊運(yùn)動(dòng)控制模塊是用來(lái)完成刀

36、具和工件的相對(duì)運(yùn)動(dòng)和控制的,具體任務(wù)主要包括軸位置采樣、軌跡值的運(yùn)算、插補(bǔ)、伺服輸出值的計(jì)算等。運(yùn)動(dòng)控制模塊必須運(yùn)行在實(shí)時(shí)環(huán)境中,以保證運(yùn)動(dòng)速度和時(shí)序的要求。20 I/O 控制模塊I/O 控制器負(fù)責(zé)數(shù)控系統(tǒng)的輸入輸出控制,完成數(shù)控系統(tǒng)的一些輔助性操作,如主軸的正反轉(zhuǎn)、冷卻液的開(kāi)關(guān)、刀具的變換、潤(rùn)滑開(kāi)關(guān)等。 IEC61131-3 標(biāo)準(zhǔn)的編程語(yǔ)言國(guó)際電工委員會(huì)(簡(jiǎn)稱IEC)于 1993 年正式頒布了關(guān)于PLC 的國(guó)際標(biāo)準(zhǔn)IEC61131 標(biāo)準(zhǔn),而IEC61131-3 作為它的第三個(gè)部分,是關(guān)于PLC 編程語(yǔ)言的標(biāo)準(zhǔn)。IEC61131-3 標(biāo)準(zhǔn)規(guī)范了可編程控制器的編程語(yǔ)言及其基本元素,是第一個(gè)為工業(yè)

37、自動(dòng)化系統(tǒng)的軟件設(shè)計(jì)提供標(biāo)準(zhǔn)化編程語(yǔ)言的標(biāo)準(zhǔn)。IEC61131-3 標(biāo)準(zhǔn)中詳細(xì)定義了五種編程語(yǔ)言,這五種編程語(yǔ)言可以分為圖形化編程語(yǔ)言和文本化編程語(yǔ)言。圖形化編程語(yǔ)言包括梯形圖、功能塊圖、順序功能圖;文本化的編程語(yǔ)言包括指令表、結(jié)構(gòu)化文本,如圖 2-5 所示。11第二章 軟 PLC 應(yīng)用軟件的總體設(shè)計(jì)圖 2-5 PLC 編程語(yǔ)言梯形圖程序是一種基于圖形表示的繼電器邏輯,用來(lái)描述一個(gè) POU(程序組織單元)網(wǎng)絡(luò)自左向右的能量流,是依據(jù)傳統(tǒng)電器控制線路的設(shè)計(jì)和工作原理發(fā)展而來(lái)的,在程序設(shè)計(jì)上,跟傳統(tǒng)電器控制線路的設(shè)計(jì)相類似,比較直觀、形象。由于其容易被傳統(tǒng)的電器技術(shù)人員掌握,所以得到了比較廣泛的應(yīng)

38、用,是 PLC 的首選編程語(yǔ)言。本課題研究的軟 PLC 就是以梯形圖作為編程語(yǔ)言的。IEC61131-3 標(biāo)準(zhǔn)中定義的梯形圖語(yǔ)言的圖形符號(hào)主要包括:觸點(diǎn)類圖元、線圈類圖元以及功能和功能塊類圖元21。各類圖元下面又包括了多種圖元,每一種圖元都有其自身的邏輯,在解釋執(zhí)行梯形圖程序時(shí),也都有各自的解析邏輯。功能塊圖則與數(shù)字邏輯電路結(jié)構(gòu)類似,是由與門(mén)、非門(mén)、或門(mén)、定時(shí)器、計(jì)數(shù)器、觸發(fā)器等邏輯符號(hào)組成的編程語(yǔ)言。順序功能圖又稱為狀態(tài)轉(zhuǎn)移圖,它將一個(gè)控制過(guò)程分為若干個(gè)不同的階段,各個(gè)階段又包含不同的動(dòng)作,不同的階段之間只要滿足相應(yīng)的轉(zhuǎn)換條件就可實(shí)現(xiàn)階段的轉(zhuǎn)移, 上一階段結(jié)束,下一階段開(kāi)始。指令表和結(jié)構(gòu)化文

39、本都是文本化的編程語(yǔ)言。指令表程序是由一系列指令組成,一條指令執(zhí)行一個(gè)動(dòng)作,且嚴(yán)格要求以一行來(lái)表述。指令表類似于匯編語(yǔ)言,是一種比較低級(jí)的編程語(yǔ)言,常作為其他語(yǔ)言轉(zhuǎn)譯過(guò)程中的中間語(yǔ)言。結(jié)構(gòu)化文本則是一種高級(jí)的編程語(yǔ)言,具有可讀性高,程序結(jié)構(gòu)化明顯等特點(diǎn),適用于具有復(fù)雜算術(shù)運(yùn)算的應(yīng)用編程。11 軟 PLC 的需求分析傳統(tǒng) PLC 顯然已經(jīng)不能夠滿足開(kāi)放式數(shù)控系統(tǒng)的應(yīng)用要求,而軟 PLC 不但與開(kāi)放式數(shù)控系統(tǒng)一樣具有開(kāi)放性,而且還可以很友好的與數(shù)控系統(tǒng)相結(jié)合,并協(xié)同工作。基于數(shù)控系統(tǒng)的軟 PLC 主要作用是向用戶提供一個(gè)梯形圖開(kāi)發(fā)工具,讓用戶能夠在數(shù)控系統(tǒng)平臺(tái)上通過(guò)編輯并運(yùn)行梯形圖程序來(lái)完成相應(yīng)的

40、控制任務(wù)。軟 PLC 具體的需求如下:2 具有一個(gè)友好的程序編輯開(kāi)發(fā)環(huán)境一個(gè)友好的程序編輯開(kāi)發(fā)環(huán)境可以幫助開(kāi)發(fā)人員實(shí)現(xiàn)快速開(kāi)發(fā),作為一個(gè)產(chǎn)品而言, 無(wú)疑是一項(xiàng)非常重要的工作。3 支持梯形圖編程梯形圖編程語(yǔ)言在PLC 的五種編程語(yǔ)言中應(yīng)用最為廣泛,支持梯形圖編程是軟 PLC能否被市場(chǎng)接受的前提條件。4 支持圖元編輯過(guò)程實(shí)時(shí)查錯(cuò)功能在編輯梯形圖時(shí),每添加一個(gè)新的圖元都需要對(duì)圖元進(jìn)行屬性設(shè)置,通過(guò)對(duì)設(shè)定的屬性進(jìn)行實(shí)時(shí)查錯(cuò),可以保證各個(gè)圖元屬性設(shè)置的正確性。5 支持模塊化編程模塊化編程有利于程序的開(kāi)發(fā)和維護(hù),在編輯梯形圖程序時(shí),有很大的實(shí)際作用。6 支持梯形圖程序的邏輯查錯(cuò)功能梯形圖程序有其自身的編程

41、邏輯規(guī)則,只有正確按照梯形圖的編程邏輯規(guī)則進(jìn)行編程,運(yùn)行系統(tǒng)解釋執(zhí)行出來(lái)的控制邏輯才會(huì)符合預(yù)期,所以支持一定的邏輯查錯(cuò)功能是非常有必要的。7 支持梯形圖程序的仿真測(cè)試功能仿真測(cè)試是最為常用的程序調(diào)試方法,程序在運(yùn)行之前都應(yīng)該先進(jìn)行仿真測(cè)試。8 能夠準(zhǔn)確地解釋執(zhí)行梯形圖程序運(yùn)行系統(tǒng)能否準(zhǔn)確地解釋執(zhí)行梯形圖程序是軟PLC 能否正常工作的關(guān)鍵。9 能夠準(zhǔn)確地讀取輸入信號(hào)并及時(shí)刷新輸出信號(hào)讀取外部輸入信號(hào),輸出控制信號(hào),是軟 PLC 與外部設(shè)備的通信過(guò)程,通信的及時(shí)性和準(zhǔn)確性是軟PLC 能夠控制外部設(shè)備順利完成控制任務(wù)的關(guān)鍵。13第二章 軟 PLC 應(yīng)用軟件的總體設(shè)計(jì)10 能夠監(jiān)控梯形圖仿真和運(yùn)行時(shí)各

42、寄存器的數(shù)據(jù)在仿真和運(yùn)行時(shí)能夠?qū)崟r(shí)顯示各寄存器的數(shù)據(jù),便于觀察程序仿真和運(yùn)行的結(jié)果, 有利于用戶調(diào)試程序。11 支持?jǐn)?shù)控系統(tǒng)的軸控制功能在軟PLC 中實(shí)現(xiàn)軸控制功能,使用戶能夠在梯形圖程序中操作數(shù)控系統(tǒng)的軸。 軟 PLC 系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)與分析 軟 PLC 的結(jié)構(gòu)分析軟PLC 的實(shí)質(zhì)就是用軟件的方式來(lái)實(shí)現(xiàn)傳統(tǒng)硬件PLC 的控制功能,與傳統(tǒng)硬件PLC 所不同的是軟 PLC 運(yùn)行在操作系統(tǒng)上,不直接對(duì)硬件進(jìn)行操作,而是通過(guò)操作系統(tǒng)來(lái)管理硬件。軟 PLC 一方面可以采用操作系統(tǒng)提供的成熟穩(wěn)定的軟件開(kāi)發(fā)環(huán)境和工具進(jìn)行開(kāi)發(fā),另一方面也可以利用 PC 豐富的軟硬件資源、強(qiáng)大的數(shù)據(jù)處理能力來(lái)擴(kuò)展傳統(tǒng)PLC 的

43、一些功能。本課題所開(kāi)發(fā)的軟 PLC 是基于全軟件型開(kāi)放式數(shù)控系統(tǒng)開(kāi)發(fā)的,數(shù)控系統(tǒng)的操作系統(tǒng)平臺(tái)為L(zhǎng)inux+RTAI,以開(kāi)源控制軟件EMC2 實(shí)現(xiàn)數(shù)控功能。本文根據(jù)傳統(tǒng)PLC 的體系結(jié)構(gòu)、工作原理以及數(shù)控軟件 EMC2 的結(jié)構(gòu),以嵌入式軟件的方式實(shí)現(xiàn)了 PLC 的計(jì)算、控制、編程等功能,并通過(guò) EMC2 的硬件抽象層(HAL)實(shí)現(xiàn)了與 EMC2 其他模塊的通信以及對(duì)外部IO 口的驅(qū)動(dòng)。軟PLC 可以分為開(kāi)發(fā)系統(tǒng)和運(yùn)行系統(tǒng)兩部分,整體結(jié)構(gòu)如圖 2-6 所示。軟PLC 的開(kāi)發(fā)系統(tǒng)主要負(fù)責(zé)用戶程序的編寫(xiě)、程序仿真運(yùn)行時(shí)的IO 仿真輸入、仿真效果的顯示、運(yùn)行變量的監(jiān)控等。本課題開(kāi)發(fā)的軟 PLC 采用符

44、合 IEC61131-3 標(biāo)準(zhǔn)的梯形圖作為編程語(yǔ)言,梯形圖形象、直觀,使用比較廣泛,以梯形圖作為編程語(yǔ)言也可以使軟PLC 具有通用性和開(kāi)放性,容易被用戶所接受。軟 PLC 的運(yùn)行系統(tǒng)是整個(gè)軟 PLC 系統(tǒng)的核心,必須運(yùn)行在實(shí)時(shí)內(nèi)核空間,模擬傳統(tǒng) PLC 的掃描工作方式,周期性地讀取輸入采樣、執(zhí)行用戶程序、刷新輸出線圈。傳統(tǒng) PLC 中有輸入輸出映像區(qū),軟 PLC 運(yùn)行系統(tǒng)中也有保存輸入輸出狀態(tài)信息的數(shù)據(jù)存儲(chǔ)區(qū),運(yùn)行系統(tǒng)將會(huì)根據(jù)這些信息對(duì)用戶程序進(jìn)行解釋執(zhí)行,同時(shí),這些信息將直接跟硬件抽象層(HAL)通信,在 PLC 內(nèi)部程序和外部I/O 口之間起著重要的樞紐作用。運(yùn)14行系統(tǒng)中用戶程序的解釋執(zhí)

45、行是最為重要的,決定著 PLC 能否準(zhǔn)確正常的工作。共享內(nèi)存梯形圖解析內(nèi)核空間數(shù)據(jù)變量(PLC 運(yùn)行系統(tǒng))HAL圖 2-6 軟 PLC 的整體結(jié)構(gòu) 軟 PLC 的結(jié)構(gòu)設(shè)計(jì)本軟PLC 是基于開(kāi)放式數(shù)控系統(tǒng)開(kāi)發(fā)的,運(yùn)行在具有 Linux 內(nèi)核和RTAI 實(shí)時(shí)內(nèi)核的雙內(nèi)核Linux 操作系統(tǒng)平臺(tái)上,可以分為用戶空間部分和實(shí)時(shí)內(nèi)核空間部分。用戶空間部分使用開(kāi)源的界面開(kāi)發(fā)工具 QT 進(jìn)行開(kāi)發(fā),實(shí)時(shí)內(nèi)核空間部分使用 C 語(yǔ)言開(kāi)發(fā)。整個(gè)軟 PLC 系統(tǒng)可以分為三個(gè)模塊:梯形圖編輯模塊、解釋執(zhí)行模塊、通信模塊。如圖2-7 所示。編輯模塊為用戶提供了一個(gè)編程開(kāi)發(fā)環(huán)境,是軟 PLC 開(kāi)發(fā)系統(tǒng)的一個(gè)重要的功能模塊。

46、編輯模塊向用戶提供各種菜單命令選項(xiàng)和編輯時(shí)所需要的常用工具,其中在梯形圖繪制區(qū)域內(nèi)可以繪制各種圖元,并能夠?qū)崿F(xiàn)剪切、粘貼、刪除、插入等功能,使用戶能夠很方便地進(jìn)行開(kāi)發(fā)工作。解釋執(zhí)行模塊是整個(gè)軟 PLC 系統(tǒng)最為核心的模塊,運(yùn)行在實(shí)時(shí)的進(jìn)程中,以固定周期進(jìn)行運(yùn)行。解釋執(zhí)行模塊在每個(gè)周期內(nèi)都會(huì)根據(jù)輸入信號(hào),解釋執(zhí)行用戶編寫(xiě)的梯形圖程序,使之能夠按照程序的邏輯輸出正確的控制信號(hào)。15第二章 軟 PLC 應(yīng)用軟件的總體設(shè)計(jì)編輯模塊解釋執(zhí)行模塊通信模塊通信模塊主要完成外部輸入信號(hào)的輸入和內(nèi)部控制信號(hào)的輸出,是軟 PLC 與外部通信的接口,本軟PLC 的通信模塊是通過(guò)HAL 來(lái)實(shí)現(xiàn)的。圖 2-7 軟 PL

47、C 的模塊設(shè)計(jì) 本章小結(jié)本章先是分析了傳統(tǒng) PLC 的硬件結(jié)構(gòu)和運(yùn)行原理、全軟件型數(shù)控系統(tǒng)的體系結(jié)構(gòu)以及IEC61131-3 標(biāo)準(zhǔn)的編程語(yǔ)言,為軟 PLC 的設(shè)計(jì)開(kāi)發(fā)提供了理論基礎(chǔ)。然后對(duì)軟 PLC 應(yīng)用軟件進(jìn)行了需求分析,進(jìn)而對(duì)軟 PLC 的結(jié)構(gòu)進(jìn)行了分析,得出了軟 PLC 應(yīng)用軟件的結(jié)構(gòu)設(shè)計(jì),并簡(jiǎn)要說(shuō)明了各個(gè)模塊的功能設(shè)計(jì)。15第三章 軟 PLC 梯形圖編輯器的設(shè)計(jì)與實(shí)現(xiàn)軟 PLC 系統(tǒng)可以分為開(kāi)發(fā)系統(tǒng)和運(yùn)行系統(tǒng)兩部分。其中開(kāi)發(fā)系統(tǒng)主要為用戶提供一個(gè)良好的 PLC 程序開(kāi)發(fā)環(huán)境,使用戶能夠方便、高效率地進(jìn)行開(kāi)發(fā)工作。軟 PLC 的開(kāi)發(fā)系統(tǒng)使用了跨平臺(tái)的圖形用戶界面應(yīng)用程序開(kāi)發(fā)工具 Qt,從

48、用戶主界面的設(shè)計(jì)到梯形圖的繪制、顯示都是基于Qt 開(kāi)發(fā)的。 圖形界面開(kāi)發(fā)工具 QT 簡(jiǎn)介Qt 起初是奇趣公司開(kāi)發(fā)的一個(gè)跨平臺(tái)的 C+圖形用戶界面應(yīng)用程序框架,其能給應(yīng)用程序開(kāi)發(fā)者提供圖形用戶界面開(kāi)發(fā)所需要的所有功能。Qt 能夠以“一次編寫(xiě),隨處編譯”的方式來(lái)構(gòu)建多平臺(tái)圖形用戶界面程序,而且是完全面向?qū)ο蟮?,具有良好的封裝機(jī)制,模塊化程度高,可重用性較好,非常便于用戶使用。同時(shí),Qt 還提供了信號(hào)/ 槽的機(jī)制來(lái)代替?zhèn)鹘y(tǒng)的callback,使得不同元件之間的通信更加簡(jiǎn)便。如今,Qt 已經(jīng)發(fā)展成為了一個(gè)免費(fèi)的開(kāi)源項(xiàng)目,被眾多大公司接受和使用。 Qt 的體系結(jié)構(gòu)Qt 是一個(gè)多平臺(tái)工具包,其所有的功能都

49、是建立在所支持平臺(tái)的底層 API 上的。Qt 提供了豐富的界面開(kāi)發(fā)所需的控件類,開(kāi)發(fā)者不但可以調(diào)用,而且可以通過(guò)重新實(shí)現(xiàn)控件類的虛函數(shù)來(lái)進(jìn)行擴(kuò)展或自定義。Qt 的體系結(jié)構(gòu)并不等同于傳統(tǒng)的“分層”跨平臺(tái)工具包,傳統(tǒng)的“分層”跨平臺(tái)工具包通常很慢,每一次調(diào)用庫(kù)函數(shù)都會(huì)有許多額外的 API 層被調(diào)用,而且受底層 API 的影響,在不同的平臺(tái)上往往會(huì)有一些細(xì)微的差異,容易導(dǎo)致錯(cuò)誤。Qt 則是使用單一的源代碼樹(shù),只需要在目標(biāo)平臺(tái)上重新編譯就可以非常方便地把 Qt 程序轉(zhuǎn)換成可執(zhí)行程序18。Qt 的體系結(jié)構(gòu)如圖 3-1 所示。 Qt 信號(hào)和槽的機(jī)制信號(hào)和槽的機(jī)制是 Qt 自定義的一種通信機(jī)制,應(yīng)用于對(duì)象之

50、間的通信,是 Qt 區(qū)別于其他類似工具包的重要地方,屬于 Qt 的核心特性。信號(hào)和槽機(jī)制并不屬于標(biāo)準(zhǔn)的17第三章 軟 PLC 梯形圖編輯器的設(shè)計(jì)與實(shí)現(xiàn)C/C+語(yǔ)言,是 Qt 所特有的,在編譯的時(shí)候,必須要借助元對(duì)象編譯器 MOC(Meta-Object Compiler)來(lái)完成一些預(yù)處理工作。元對(duì)象編譯器實(shí)質(zhì)是一個(gè) C+預(yù)處理程序,如果類聲明中含有 Q_OBJECT 宏,在預(yù)處理過(guò)程中它就會(huì)為這個(gè)類生成信號(hào)和槽所需要的附加代碼。在 Qt 中可以使用信號(hào)和槽來(lái)取代函數(shù)指針,使對(duì)象之間的通信變得更加簡(jiǎn)潔。Qt 規(guī)定所有從QObject 或其他子類派生的類都能夠包含信號(hào)和槽,而且當(dāng)一個(gè)具體的對(duì)象因自

51、身狀態(tài)發(fā)生改變而發(fā)射信號(hào)時(shí),它并不知道接收這個(gè)信號(hào)的對(duì)象,只負(fù)責(zé)發(fā)送信號(hào),槽則是用于接收信號(hào)的,但它不知道是否有信號(hào)和它相連接,這樣做到了信息的真正封裝,確保對(duì)象以一個(gè)真正的軟件組織來(lái)使用23。Qt/Windo wsGDIMS-Wind owsQt/X11XlibUnix/Lin uxQt/Macin toshCarbonMACQt/embed dedEmbedde d-Linux圖 3-1 Qt 的體系結(jié)構(gòu)信號(hào)只能被定義過(guò)這個(gè)信號(hào)的類及其派生類發(fā)射,具體的操作實(shí)現(xiàn)是由發(fā)射函數(shù)emit 來(lái)完成的。信號(hào)被發(fā)射時(shí),與其相關(guān)聯(lián)的槽就會(huì)被立即調(diào)用,當(dāng)有多個(gè)槽與它相連接時(shí),這些槽都將會(huì)被調(diào)用,但是被調(diào)用

52、的順序卻是隨機(jī)的,而且只有當(dāng)所有槽都返回以后,發(fā)射函數(shù) emit 才會(huì)返回。Qt 是通過(guò)關(guān)鍵字 signal 來(lái)指出信號(hào)聲明區(qū)的,信號(hào)必須在信號(hào)聲明區(qū)內(nèi)進(jìn)行聲明,聲明形式與普通C+函數(shù)一樣,可以帶參數(shù),不同的是信號(hào)沒(méi)有函數(shù)體定義,而且聲明的返回類型只能為void。信號(hào)只能在頭文件中聲明,并由元對(duì)象編譯器(MOC)自動(dòng)生成,不能在源文件中實(shí)現(xiàn)。槽實(shí)質(zhì)就是普通的C+成員函數(shù),可以帶參數(shù),但不能有缺省值,相比于普通成員18函數(shù)其唯一的特殊性在于可以與信號(hào)相連接,并且還可以接收信號(hào)的參數(shù),當(dāng)信號(hào)被發(fā)射時(shí),槽就會(huì)被立即調(diào)用。槽與普通成員函數(shù)一樣,具有訪問(wèn)權(quán)限,有以下三種不同的訪問(wèn)權(quán)限:Public sl

53、ots(公有槽):公有槽可以與任何對(duì)象的信號(hào)相連。Protected slots(保護(hù)槽):保護(hù)槽可以與當(dāng)前類及其子類的信號(hào)相連。Private slots(私有槽):私有槽只能與當(dāng)前類的信號(hào)相連。調(diào)用 QObject 對(duì)象的 connect 函數(shù)可以將兩個(gè)對(duì)象的信號(hào)和槽連接起來(lái)。一個(gè)信號(hào)可以與多個(gè)槽相連,同時(shí)多個(gè)信號(hào)也可以連接到同一個(gè)槽。除了將信號(hào)與槽相連接外, 信號(hào)與信號(hào)也可以相互連接,當(dāng)兩個(gè)信號(hào)相互連接時(shí),這樣當(dāng)?shù)谝粋€(gè)信號(hào)被發(fā)射時(shí),第二個(gè)信號(hào)亦會(huì)被發(fā)射。信號(hào)與槽連接的簡(jiǎn)單模型如圖 3-2。Object2Signal1Slot1 Slot2Connect(object1, signal1,

54、object2,slot1);connect(object1,signal1,object2,slot2);Object3Signal1Slot1Connect(object1, signal2, object4,slot1);connect(object3,signal1,object4,slot2);圖 3-2 信號(hào)與槽連接的簡(jiǎn)單模型 梯形圖編輯器的界面設(shè)計(jì) 主界面的設(shè)計(jì)一個(gè)整潔美觀,簡(jiǎn)單易用,具有良好人機(jī)交互性的界面對(duì)一款產(chǎn)品來(lái)說(shuō)至關(guān)重要。軟 PLC 的整個(gè)編輯器界面主要包含一個(gè)主界面以及其他一些設(shè)定或查看窗口。主界面有幾種不同模式,包括編輯模式、仿真模式、閱讀模式、運(yùn)行模式。不同的模式

55、下主界面的設(shè)計(jì)會(huì)有所不同,功能同樣也會(huì)不一樣。主界面的編輯模式界面如圖 3-3 所示,主19第三章 軟 PLC 梯形圖編輯器的設(shè)計(jì)與實(shí)現(xiàn)界面包括菜單欄、工具欄、狀態(tài)欄,還有梯形圖編輯繪制區(qū)、子程序側(cè)邊欄、軟元件搜索框。各部分的詳細(xì)介紹如下: 菜單欄:菜單欄包括文件、查看、模式、設(shè)置、幫助五個(gè)選項(xiàng)。其中文件菜單的下拉菜單是一些有關(guān)于文件的操作,如新建、保存、另存為、退出等;查看菜單的下拉菜單則是一些參數(shù)表,主要用于程序運(yùn)行過(guò)程中變量的查看和設(shè)定;模式菜單用于模式的選擇,包括編輯模式、閱讀模式、仿真模式、運(yùn)行模式;設(shè)置菜單目前只有重設(shè)參數(shù)表功能;幫助菜單則可以查看一些與操作相關(guān)的文檔。圖 3-3 編輯模式下的主界面 工具欄:軟 PLC 的工具欄就是梯形圖軟元件的選擇欄,在編輯梯形圖程序時(shí),用戶可以根據(jù)需要選擇自己需要的軟元件,在對(duì)應(yīng)的圖標(biāo)上單擊即可選中,然后就可以直接在梯形圖編輯區(qū)域編輯了。 狀態(tài)欄:用于顯示各種提示信息和狀態(tài)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論