軟PLC開發(fā)系統(tǒng)的設(shè)計與實(shí)現(xiàn)_第1頁
軟PLC開發(fā)系統(tǒng)的設(shè)計與實(shí)現(xiàn)_第2頁
軟PLC開發(fā)系統(tǒng)的設(shè)計與實(shí)現(xiàn)_第3頁
軟PLC開發(fā)系統(tǒng)的設(shè)計與實(shí)現(xiàn)_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、軟PLC開發(fā)系統(tǒng)的設(shè)計與實(shí)現(xiàn)The Design and Realization of SoftPLC Programming System魏曉晴,吳旭光,牛云,郭逸WEI Xiaoqing, WU Xuguang, NIU Yun, GUO Yi (西北工業(yè)大學(xué),西安710072)摘 要:設(shè)計完成了一種軟PLC編程開發(fā)系統(tǒng),并研究了各部分的設(shè)計組成與實(shí)現(xiàn)方法。其中重點(diǎn)研究了梯形圖到指令表編譯解算的實(shí)現(xiàn)過程,并提出了一種解算的新策略,以一種“節(jié)點(diǎn)勢”的形式將梯形圖圖元間的邏輯關(guān)系抽象為數(shù)值關(guān)系,并以此建立二叉樹,遍歷生成語句表。實(shí)驗(yàn)表明,該系統(tǒng)能夠方便準(zhǔn)確地完成梯形圖的編輯與解算,并且可以對梯

2、形圖進(jìn)行邏輯查錯和規(guī)范檢查。 關(guān) 鍵 詞:軟PLC;節(jié)點(diǎn)勢;二叉樹;梯形圖;語句表中圖分類號:TP319 文獻(xiàn)標(biāo)識碼:A0 引言隨著計算機(jī)技術(shù)、通訊技術(shù)、微電子技術(shù)的迅速發(fā)展,軟PLC技術(shù)己漸漸成為國內(nèi)外工業(yè)控制技術(shù)研究的熱點(diǎn)。軟PLC是以標(biāo)準(zhǔn)的、通用的控制器硬件平臺和專用控制卡作為硬件基礎(chǔ),基于工業(yè)控制計算機(jī)(IPC)或嵌入式PC(EPC),使用軟件實(shí)現(xiàn)PLC功能的軟邏輯控制系統(tǒng)。因此,軟PLC既可提供傳統(tǒng)PLC的相應(yīng)功能,也具備PC機(jī)或嵌入式系統(tǒng)的各種優(yōu)點(diǎn),具有更強(qiáng)的兼容性和可擴(kuò)展性。軟PLC開發(fā)系統(tǒng)實(shí)際上就是帶有編譯和調(diào)試功能的軟PLC編程器1,應(yīng)當(dāng)支持基于IEC61131-32國際標(biāo)準(zhǔn)

3、的編程語言。在IEC61131-3定義的5種語言中,梯形圖和語句表應(yīng)用最為廣泛,梯形圖便于工程人員編程,語句表便于控制器解析執(zhí)行。因此,在軟PLC開發(fā)系統(tǒng)中實(shí)現(xiàn)從梯形圖到語句表的轉(zhuǎn)換解算尤為重要?,F(xiàn)有的解算方法有很多,但往往存在結(jié)構(gòu)不清晰、建立過程繁瑣、復(fù)雜節(jié)點(diǎn)判斷困難等問題3-4。為此,本文提出了一種梯形圖到語句表轉(zhuǎn)換的新策略。1 軟PLC開發(fā)系統(tǒng)本文研究并實(shí)現(xiàn)了一種軟PLC開發(fā)系統(tǒng)。它運(yùn)行在PC機(jī)上,既可以與軟PLC執(zhí)行系統(tǒng)組成一個完整的系統(tǒng),又可以單獨(dú)仿真運(yùn)行。該開發(fā)系統(tǒng)按功能可分為梯形圖編輯模塊,編譯解算模塊,通信監(jiān)控模塊三大部分,以VC+編程實(shí)現(xiàn)。2 梯形圖編輯模塊2.1設(shè)計組成梯形

4、圖編輯模塊即梯形圖編輯器,主要功能包括梯形圖圖元的繪制,編輯,保存和讀取,如圖1所示。圖1 梯形圖編輯模塊設(shè)計組成2.2編輯功能的實(shí)現(xiàn)梯形圖元件包括常開觸點(diǎn)、輸出線圈等簡單元件和定時器、計數(shù)器等復(fù)雜元件。由C+面向?qū)ο蟮睦^承特性,可以抽象出一個基類作為梯形圖圖元的總體接口,再以這個類為基礎(chǔ),派生出具體的圖元子類。梯形圖圖元的基類定義如下:class Element : public CObject public:int type;int row,col;public:Element();Element(int type,int row,int col);virtual Element();vi

5、rtual void Draw(CDC *pDC);因每個圖元繼承自同一個基類,擁有共同的屬性,因此,界面上的所有圖元可看作一個集合,稱為集合類。對圖元的各種操作,如繪制、選中、刪除、存取等,都是通過對集合類的操作進(jìn)行,這里用到的集合類為C+的CPtrArray類。如繪制定時器圖元的過程:程序響應(yīng)鼠標(biāo)左鍵消息,新建一個定時器子類對象,將該對象加入集合類并調(diào)用定時器子類的Draw()函數(shù)實(shí)現(xiàn)繪制。示例代碼如下:Timertof *tof;tof=new Timertof(operation,row,col);m_ptrArray.Add(tof);tof-Draw(pDC);3編譯模塊3.1設(shè)計

6、組成梯形圖的編譯6是本系統(tǒng)的關(guān)鍵部分,主要包括編譯解算和語法查錯兩部分。編譯解算即把用戶編輯的梯形圖程序,編譯轉(zhuǎn)換生成語句表。語法查錯即在編譯過程中,按照梯形圖編程語言規(guī)范,進(jìn)行邏輯和語法分析,若發(fā)現(xiàn)梯形圖有錯誤,便生成相應(yīng)的錯誤提示信息,并顯示到用戶界面。3.2基于“節(jié)點(diǎn)勢”的梯形圖到語句表解算的新策略將梯形圖邏輯關(guān)系轉(zhuǎn)換解算為語句表一直是軟PLC開發(fā)中的重點(diǎn)和難點(diǎn),本文提出了一種轉(zhuǎn)換解算的新策略,它基于二叉樹的轉(zhuǎn)換解算方法,但不同于傳統(tǒng)的掃描分割圖形構(gòu)造二叉樹法,而是一種按“節(jié)點(diǎn)勢”關(guān)系構(gòu)造二叉樹的方法,它的指導(dǎo)思想是將梯形圖圖元間邏輯關(guān)系抽象為數(shù)值關(guān)系,量化地顯示出梯形圖的層次,從而以之

7、精確地解析出圖元之間的串、并聯(lián)等關(guān)系。本文首次提出了“節(jié)點(diǎn)勢”這一概念,可以將它類似于電路中的電勢理解。節(jié)點(diǎn),即梯形圖各圖元間的連接點(diǎn)。節(jié)點(diǎn)勢,即節(jié)點(diǎn)的勢值。因?yàn)樘菪螆D每個圖元都有左右兩個節(jié)點(diǎn),因此每個圖元擁有左節(jié)點(diǎn)勢和右節(jié)點(diǎn)勢。如圖2所示,I0.0的左節(jié)點(diǎn)勢=0,右節(jié)點(diǎn)勢=1。梯形圖到語句表的轉(zhuǎn)換解算的過程大體分為以下四步。1定義梯形圖的“節(jié)點(diǎn)勢”。按從左右,從上下的順序多次掃描梯形圖,按一定規(guī)則給每個圖元左右節(jié)點(diǎn)賦值。通過各圖元節(jié)點(diǎn)勢的確定,就將梯形圖圖元間邏輯關(guān)系抽象為數(shù)值關(guān)系了,如左右節(jié)點(diǎn)勢都相等的圖元互為并聯(lián)關(guān)系。如圖2所示,I0.1與I0.6左節(jié)點(diǎn)勢同為1,右節(jié)點(diǎn)勢同為2,兩者是并

8、聯(lián)關(guān)系。圖2 節(jié)點(diǎn)勢示例2定義二叉樹數(shù)據(jù)結(jié)構(gòu)typedef struct Tree int index;/索引值int type;/類型char *opr;/根節(jié)點(diǎn)內(nèi)容struct Tree *lchild;/左節(jié)點(diǎn)指針指向的二叉樹struct Tree *rchild; /右節(jié)點(diǎn)指針指向的二叉樹int lenode;/左節(jié)點(diǎn)勢值int rinode;/右節(jié)點(diǎn)勢值BOOL restruct;/二叉樹屏蔽標(biāo)志 DTree;3按從左右,從上下的順序掃描梯形圖,對每個圖元(橫豎線除外),構(gòu)建對應(yīng)的二叉樹。然后依據(jù)二叉樹間的節(jié)點(diǎn)勢關(guān)系,循環(huán)構(gòu)建新二叉樹,屏蔽舊二叉樹。直到現(xiàn)有的二叉樹數(shù)目等于輸出元件個

9、數(shù)時,停止循環(huán),完成最終構(gòu)建,現(xiàn)有二叉樹為最終二叉樹。4運(yùn)用遞歸算法,遍歷最終二叉樹,生成語句表,顯示在主界面上,同時生成編譯數(shù)據(jù)及文件。該策略基于二叉樹的解算方法,但通過梯形圖“節(jié)點(diǎn)勢”的確定,將梯形圖圖元間邏輯關(guān)系抽象為數(shù)值關(guān)系,能大大降低二叉樹算法的時間和空間復(fù)雜度,思路簡單清晰,運(yùn)行快速精確。并且能夠解算多支梯形圖及復(fù)雜的邏輯關(guān)系,在執(zhí)行過程中對梯形圖進(jìn)行邏輯查錯和規(guī)范檢查,該解算方法還能夠?yàn)槠渌愃茍D形關(guān)系的解算提供參考,具有普遍適用性。4通信監(jiān)控模塊本系統(tǒng)既可以單獨(dú)仿真運(yùn)行,又可與軟PLC執(zhí)行系統(tǒng)組成一個完整的系統(tǒng),為此,提供了與執(zhí)行系統(tǒng)通信的串口,既可通過虛擬串口軟件與基于PC的

10、軟PLC執(zhí)行系統(tǒng)連接運(yùn)行,也可通過實(shí)際串口與基于嵌入式的軟PLC執(zhí)行系統(tǒng)連接。串口通信采用事件驅(qū)動的接收方式,利用MSComm 控件進(jìn)行串口初始化、接收數(shù)據(jù)、發(fā)送數(shù)據(jù)等串行通信管理。本系統(tǒng)通過串口下載編譯數(shù)據(jù)到執(zhí)行系統(tǒng),并與之進(jìn)行聯(lián)調(diào)。執(zhí)行系統(tǒng)執(zhí)行編譯數(shù)據(jù)后刷新輸出映像區(qū),開發(fā)系統(tǒng)獲取執(zhí)行系統(tǒng)的運(yùn)行狀態(tài)并在梯形圖界面上顯示,以監(jiān)控執(zhí)行系統(tǒng)的工作狀態(tài)。5測試結(jié)果該軟PLC開發(fā)系統(tǒng)主界面主要有梯形圖編輯區(qū)、指令區(qū)和信息輸出區(qū)三部分。如圖3所示,在中間編輯區(qū)繪制了兩支簡單的梯形圖,經(jīng)過編譯解算,在右方指令區(qū)顯示出它們對應(yīng)的語句表程序,在下方信息輸出區(qū)顯示出對應(yīng)的提示信息。當(dāng)連接監(jiān)控時,開發(fā)系統(tǒng)通過串

11、口獲取執(zhí)行系統(tǒng)的工作狀態(tài)并在梯形圖界面上顯示,某觸點(diǎn)或線圈操作數(shù)為1時對應(yīng)的圖元加粗變紅。該實(shí)例證明,本系統(tǒng)可以解算多支梯形圖,并且實(shí)現(xiàn)定時器計數(shù)器等復(fù)雜元件的編輯及編譯解算。圖3 軟PLC編程開發(fā)系統(tǒng)主界面6 結(jié)束語本文設(shè)計實(shí)現(xiàn)了一種軟PLC編程開發(fā)系統(tǒng)。并提出了一種簡單易用的梯形圖到語句表轉(zhuǎn)換的新策略。經(jīng)過大量測試證明,該系統(tǒng)能夠方便準(zhǔn)確地完成梯形圖程序的開發(fā)和解算,并且在執(zhí)行過程中完成對梯形圖的邏輯查錯和規(guī)范檢查。如今國外的軟PLC編程系統(tǒng)是工控市場上的主流,國產(chǎn)的相對較少而且不成熟,因此,本文對推進(jìn)軟PLC的國產(chǎn)化有著重要意義。參考文獻(xiàn)1 趙雨生,高美鳳.一種梯形圖編程系統(tǒng)的研究與實(shí)現(xiàn)

12、方法J.工業(yè)控制計算機(jī),2008,21(6):34-352 KONG Yaguang,WANG Wenhai. Realization of Control Algorithm Editor Based on IEC61131-3 J.Computer Engineering , 2006 , ( 18 ) : 283 2843 石銳,周雷,楊正益.軟PLC梯形圖到語句表轉(zhuǎn)換新策略的研究J.計算機(jī)工程與應(yīng)用,2010,46(18):244-248 4 葛芬,吳寧.基于AOV圖及二叉樹的梯形圖與指令表互換算法J.南京航空航天大學(xué)學(xué)報,2006,38(6):754-7585 王亞男,陳嬋娟.基于Flex與Bison的軟PLC編譯模塊的研究J.制造業(yè)自動化,2011,33(17):76-79基金項目:西北工業(yè)大學(xué)研究生創(chuàng)業(yè)種子基金資

溫馨提示

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

最新文檔

評論

0/150

提交評論