国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

軟PLC開發(fā)系統(tǒng)的設(shè)計與實(shí)現(xiàn)

2012-08-26 08:05:44魏曉晴吳旭光騰林陽
制造業(yè)自動化 2012年18期
關(guān)鍵詞:圖元二叉樹梯形圖

魏曉晴,吳旭光,牛 云,郭 逸,騰林陽

WEI Xiao-qing, WU Xu-guang, NIU Yun, GUO Yi, TENG Lin-yang

(西北工業(yè)大學(xué),西安 710072)

0 引言

隨著計算機(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-3[2]國際標(biāo)準(zhǔn)的編程語言。在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è)計組成

梯形圖編輯模塊即梯形圖編輯器,主要功能包括梯形圖圖元的繪制、編輯、保存和讀取,如圖1所示。

圖1 梯形圖編輯模塊設(shè)計組成

2.2 編輯功能的實(shí)現(xiàn)

梯形圖元件包括常開觸點(diǎn)、輸出線圈等簡單元件和定時器、計數(shù)器等復(fù)雜元件。由C++面向?qū)ο蟮睦^承特性,可以抽象出一個基類作為梯形圖圖元的總體接口,再以這個類為基礎(chǔ),派生出具體的圖元子類。梯形圖圖元的基類定義如下:

因每個圖元繼承自同一個基類,擁有共同的屬性,因此,界面上的所有圖元可看作一個集合,稱為集合類。對圖元的各種操作,如繪制、選中、刪除、存取等,都是通過對集合類的操作進(jìn)行,這里用到的集合類為C++的CPtrArray類。

如繪制定時器圖元的過程:程序響應(yīng)鼠標(biāo)左鍵消息,新建一個定時器子類對象,將該對象加入集合類并調(diào)用定時器子類的Draw( )函數(shù)實(shí)現(xiàn)繪制。示例代碼如下:

3 編譯模塊

3.1 設(shè)計組成

梯形圖的編譯[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)系,量化地顯示出梯形圖的層次,從而以之精確地解析出圖元之間的串、并聯(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,兩者是并聯(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ù)目等于輸出元件個數(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的軟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)。

圖3 軟PLC編程開發(fā)系統(tǒng)主界面

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)通過串口獲取執(zhí)行系統(tǒng)的工作狀態(tài)并在梯形圖界面上顯示,某觸點(diǎn)或線圈操作數(shù)為1時對應(yīng)的圖元加粗變紅。該實(shí)例證明,本系統(tǒng)可以解算多支梯形圖,并且實(shí)現(xiàn)定時器計數(shù)器等復(fù)雜元件的編輯及編譯解算。

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)化有著重要意義。

[1]趙雨生, 高美鳳. 一種梯形圖編程系統(tǒng)的研究與實(shí)現(xiàn)方法[J]. 工業(yè)控制計算機(jī), 2008, 21(6): 34-35.

[2]KONG Yaguang, WANG Wenhai. Realization of Control Algorithm Editor Based on IEC61131-3[J].Computer Engineering, 2006, (18): 283-284.

[3]石銳, 周雷, 楊正益. 軟PLC梯形圖到語句表轉(zhuǎn)換新策略的研究[J]. 計算機(jī)工程與應(yīng)用, 2010, 46(18): 244-248.

[4]葛芬, 吳寧. 基于AOV圖及二叉樹的梯形圖與指令表互換算法[J]. 南京航空航天大學(xué)學(xué)報, 2006, 38(6): 754-758.

[5]王亞男, 陳嬋娟. 基于Flex與Bison的軟PLC編譯模塊的研究[J]. 制造業(yè)自動化, 2011, 33(17): 76-79.

猜你喜歡
圖元二叉樹梯形圖
CSP真題——二叉樹
電腦報(2022年37期)2022-09-28 05:31:07
一種組態(tài)控件技術(shù)在電力監(jiān)控系統(tǒng)中的運(yùn)用
二叉樹創(chuàng)建方法
學(xué)術(shù)出版物插圖的編排要求(一):圖注
聯(lián)鎖表自動生成軟件的設(shè)計與實(shí)現(xiàn)
基于VC的梯形圖編程軟件開發(fā)技術(shù)
一種由層次遍歷和其它遍歷構(gòu)造二叉樹的新算法
繼電器電路轉(zhuǎn)為梯形圖教學(xué)經(jīng)驗(yàn)淺談
電子制作(2016年15期)2017-01-15 13:39:28
基于Qt繪圖系統(tǒng)的圖形應(yīng)用優(yōu)化研究與實(shí)現(xiàn)
軟件(2016年12期)2016-02-13 05:58:14
PLC梯形圖程序設(shè)計技巧及應(yīng)用
江孜县| 丰台区| 绥芬河市| 泰宁县| 三都| 镇雄县| 霍邱县| 宜川县| 崇明县| 曲松县| 长春市| 漳平市| 平江县| 昭苏县| 故城县| 邳州市| 宝丰县| 安溪县| 岱山县| 兴化市| 武川县| 海宁市| 盘山县| 格尔木市| 铜梁县| 嘉鱼县| 巴林右旗| 习水县| 利辛县| 景东| 长泰县| 温宿县| 竹山县| 龙胜| 长宁区| 宜宾县| 东台市| 盐边县| 马关县| 泾阳县| 亚东县|