亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        PLC梯形圖編程系統(tǒng)應(yīng)用分析

        2017-10-31 20:36:35陳瑞金
        大陸橋視野·下 2017年11期
        關(guān)鍵詞:二叉樹鏈表梯形圖

        陳瑞金

        【摘 要】體系結(jié)構(gòu)開放化是數(shù)控系統(tǒng)發(fā)展的必然趨勢,軟PLC技術(shù)采用軟件實(shí)現(xiàn)傳統(tǒng)PLC的功能,是實(shí)現(xiàn)數(shù)控系統(tǒng)開放性的關(guān)鍵技術(shù)之一。軟PLC系統(tǒng)由編程開發(fā)系統(tǒng)及運(yùn)行系統(tǒng)組成。其中,編程開發(fā)系統(tǒng)是實(shí)現(xiàn)具備PLC控制功能的控制系統(tǒng)必不可少的開發(fā)工具之一。本文通過深入分析梯形圖中各單元之間關(guān)系,各功能的配置與實(shí)現(xiàn),提出了一種新的梯形圖編程系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)與實(shí)現(xiàn)方法。利用Windows平臺下的Visual C++作為開發(fā)語言以期能夠開發(fā)出更為簡單實(shí)用的梯形圖編程系統(tǒng)。

        【關(guān)鍵詞】PLC梯形圖編程系統(tǒng);應(yīng)用分析

        一、導(dǎo)言

        軟PLC系統(tǒng)由編程開發(fā)系統(tǒng)及運(yùn)行系統(tǒng)組成。其中,編程開發(fā)系統(tǒng)是實(shí)現(xiàn)具備PLC控制功能的控制系統(tǒng)必不可少的開發(fā)工具之一。通過編寫PLC程序并轉(zhuǎn)換為可執(zhí)行目標(biāo)代碼,下載到軟PLC運(yùn)行系統(tǒng)中執(zhí)行,才能夠?qū)崿F(xiàn)系統(tǒng)的控制功能。然而,目前國內(nèi)的PLC編程開發(fā)系統(tǒng)種類繁多、編程語言差異大,與IEC61131-3 PLC編程語言標(biāo)準(zhǔn)相差甚遠(yuǎn)、編譯效率低、缺乏程序調(diào)試功能等問題突出,導(dǎo)致控制程序開發(fā)過程繁瑣、調(diào)試?yán)щy、開發(fā)周期長、系統(tǒng)穩(wěn)定性差,成為快速開發(fā)穩(wěn)定可靠的控制程序的主要障礙。本文提出一種基于雙向循環(huán)鏈表和十字鏈表的梯形圖編輯和指令表生成算法,實(shí)現(xiàn)了一個軟PLC開發(fā)系統(tǒng),并分析了軟PLC運(yùn)行系統(tǒng)實(shí)現(xiàn)思想。

        二、梯形圖與指令表簡介

        梯形圖(ladder diagram,LD)是一種圖形化編程語言,引入了電氣系統(tǒng)中電源軌線、繼電器、觸點(diǎn)、線圈等概念,以“能量流動”描述數(shù)據(jù)傳遞過程,直觀性強(qiáng),易于學(xué)習(xí)。一個電動機(jī)啟保??刂七壿嬏菪螆D示例如圖1所示。

        按動START觸點(diǎn)對應(yīng)的按鈕,線圈MO-TOR對應(yīng)的電動機(jī)將持續(xù)運(yùn)轉(zhuǎn),直到按動STOP觸點(diǎn)對應(yīng)的按鈕,電動機(jī)停止運(yùn)轉(zhuǎn)。由圖1梯形圖生成的指令表如圖2所示。

        指令表(IL,instruction list)以一系列指令作為編程語言,由操作符、修正符和操作數(shù)等組成。

        LD指令讀取相應(yīng)觸點(diǎn)狀態(tài),st指令將運(yùn)算后的結(jié)果輸出到線圈Motor對應(yīng)的輸出點(diǎn),從而控制電動機(jī)啟停。

        三、雙向循環(huán)鏈表與十字鏈表

        雙向循環(huán)鏈表每個節(jié)點(diǎn)中有2個指針,*next指向后繼節(jié)點(diǎn),*previous指向前驅(qū)節(jié)點(diǎn),因此在查找前驅(qū)節(jié)點(diǎn)和后繼節(jié)點(diǎn)時非常高效,如圖3所示。

        十字鏈表是表示正交關(guān)系的一種鏈?zhǔn)酱鎯Y(jié)構(gòu),可用于存儲有向圖和稀疏矩陣等,如圖4所示。

        四、梯形圖的數(shù)據(jù)結(jié)構(gòu)

        (一)梯形圖基本元素定義

        梯形圖的基本元素包括電源軌線、連接線、觸點(diǎn)、線圈等,具體分類見表1所列。

        為便于擴(kuò)展梯形圖基本元素,提高程序模塊化程度,降低不同基本元素處理復(fù)雜度,可將所有梯形圖基本元素的共同特征抽象為一個公共基類?;愔卸x了基本元素的類型、輸入輸出參數(shù)、對應(yīng)的變量名、在梯形圖中的坐標(biāo)等信息。同時以虛函數(shù)的方式定義了賦值函數(shù)、繪圖函數(shù)和IL指令轉(zhuǎn)換函數(shù)。每個基本元素繼承自基類,并按照各自特點(diǎn)重新實(shí)現(xiàn)虛函數(shù)。如豎直連接線元素,不需要賦值,也不用輸出IL指令,只需重寫Draw()函數(shù),在指定行列坐標(biāo)畫出該連接線即可。

        (二)梯形圖生成指令表實(shí)例

        梯形圖雙向循環(huán)十字鏈表各節(jié)點(diǎn)命名如下:v[i]表示電源軌線和連接線,x[i],YO表示觸點(diǎn)和線圈,如圖5所示。

        借助棧記錄遍歷過的電源軌線和連接線節(jié)點(diǎn),編寫梯形圖outPutIL()遍歷算法,按圖5所示中箭頭及標(biāo)號順序表示的路徑依次訪問節(jié)點(diǎn)。

        分別調(diào)用各基本元素節(jié)點(diǎn)的toIL()方法輸出該元素代表的具體IL指令,最終組成完整的指令表語言程序。

        五、相關(guān)算法對比

        梯形圖的編輯和指令表轉(zhuǎn)換,已有算法主要采用鏈表、二叉樹、AOV網(wǎng)相結(jié)合的方式實(shí)現(xiàn)。

        (一)鏈表與二叉樹結(jié)合算法

        以AOV網(wǎng)的節(jié)點(diǎn)表示梯形圖元素,AOV網(wǎng)的弧表示梯形圖元素間的連接關(guān)系,對梯形圖進(jìn)行存儲;再將AOV網(wǎng)轉(zhuǎn)換為二叉樹,以二叉樹的非葉節(jié)點(diǎn)表示梯形圖串聯(lián)、并聯(lián)邏輯關(guān)系,對轉(zhuǎn)換后的二叉樹進(jìn)行一定的裁剪,通過中序遍歷輸出指令表語句。以圖1所示梯形圖為例,該算法對應(yīng)的存儲結(jié)構(gòu)和轉(zhuǎn)換示意如圖6所示。

        此算法的AOV網(wǎng)將連接線元素統(tǒng)一作為虛節(jié)點(diǎn),梯形圖元素間的串聯(lián)、并聯(lián)邏輯關(guān)系隱含在節(jié)點(diǎn)的出度、入度信息中,需要對AOV網(wǎng)進(jìn)行一次遍歷,構(gòu)建出二叉樹,裁剪虛節(jié)點(diǎn),才能進(jìn)行指令表的轉(zhuǎn)換。AOV網(wǎng)發(fā)生變化后,二叉樹需要重建。

        (二)雙向鏈表與AOV網(wǎng)結(jié)合算法

        以行雙向鏈表作為梯形圖數(shù)據(jù)結(jié)構(gòu),用于存儲和顯示數(shù)據(jù);根據(jù)行雙向鏈表生成AOV網(wǎng),對梯形圖節(jié)點(diǎn)進(jìn)行拓?fù)渑判?,再轉(zhuǎn)換為指令表語句。以圖1所示梯形圖為例,該算法對應(yīng)的存儲結(jié)構(gòu)和轉(zhuǎn)換示意如圖7所示。

        此算法的行雙向鏈表僅保留了行內(nèi)元素之間和行與行之間的邏輯關(guān)系,卻丟失了處于不同行的元素之間的邏輯關(guān)系。因此在將梯形圖轉(zhuǎn)換為指令表前,需要對整個鏈表進(jìn)行一次掃描,在適當(dāng)位置添加虛節(jié)點(diǎn)(圖7中的vp1節(jié)點(diǎn)),構(gòu)建AOV網(wǎng),再進(jìn)行拓?fù)渑判蚝洼敵觥R坏μ菪螆D進(jìn)行編輯,建立AOV網(wǎng)的過程需要重新進(jìn)行。

        (三)程序的傳輸

        當(dāng)用戶編輯好梯形圖程序之后,將程序生成為指令表形式。然后再把指令表程序轉(zhuǎn)換為一系列的二進(jìn)制指令,可以通過串口來實(shí)現(xiàn)程序指令從編程主機(jī)向硬件平臺的傳輸。VC提供了MSComm控件,利用該控件可以很方便的實(shí)現(xiàn)應(yīng)用程序的串行通信功能。另外要利用該控件必須使它寄生于某個對話框,所以首先要生成一個應(yīng)用于串口傳輸?shù)膶υ捒蝾?。?/p>

        IBCD VW132

        Network 7

        LD M0.0

        MOVB VB121,VB140

        MOVB VB123,VB141

        MOVB VB125,VB142

        Network 8

        LD M0.0

        MOVB VB127,VB143

        MOVB VB131,VB144

        MOVB VB133,VB145

        Network 9

        LD M1.6

        ED

        TODW VB140

        六、結(jié)束語

        本文提出一種基于雙向循環(huán)鏈表和十字鏈表的梯形圖數(shù)據(jù)結(jié)構(gòu),正確實(shí)現(xiàn)了梯形圖編輯和梯形圖生成指令表算法。該數(shù)據(jù)結(jié)構(gòu)能直觀地表現(xiàn)梯形圖各元素間邏輯關(guān)系,對實(shí)現(xiàn)完整的軟PLC控制系統(tǒng)具有一定意義。

        參考文獻(xiàn):

        [1]周峰,王新華.軟PLC編輯系統(tǒng)的設(shè)計與實(shí)現(xiàn)[J].計算機(jī)工程與應(yīng)用,2005,41(7):111-113.

        [2]杉布,王蔚庭.IEC61131-3國際標(biāo)準(zhǔn)簡介[J].國內(nèi)外機(jī)電一體化技術(shù),2001(1):54-57.endprint

        猜你喜歡
        二叉樹鏈表梯形圖
        CSP真題——二叉樹
        電腦報(2022年37期)2022-09-28 05:31:07
        二叉樹創(chuàng)建方法
        基于二進(jìn)制鏈表的粗糙集屬性約簡
        跟麥咭學(xué)編程
        基于鏈表多分支路徑樹的云存儲數(shù)據(jù)完整性驗(yàn)證機(jī)制
        基于VC的梯形圖編程軟件開發(fā)技術(shù)
        一種由層次遍歷和其它遍歷構(gòu)造二叉樹的新算法
        繼電器電路轉(zhuǎn)為梯形圖教學(xué)經(jīng)驗(yàn)淺談
        電子制作(2016年15期)2017-01-15 13:39:28
        PLC梯形圖程序設(shè)計技巧及應(yīng)用
        鏈表方式集中器抄表的設(shè)計
        電測與儀表(2014年1期)2014-04-04 12:00:22
        成人爽a毛片免费视频| 成av人片一区二区三区久久| 在线看亚洲一区二区三区| 亚洲欧洲日产国码av系列天堂| 樱桃视频影视在线观看免费| 国产亚洲欧美在线观看的| 日本少妇比比中文字幕| 亚洲高清国产一区二区| 国产av麻豆mag剧集| 久久精品免费一区二区喷潮| 亚洲黄色官网在线观看| 人成综合视频在线播放| 亚洲精品suv精品一区二区| 国产成人啪精品午夜网站| 亚洲国内精品一区二区在线| 免费观看91色国产熟女| 久久和欧洲码一码二码三码| 国产精品玖玖玖在线资源| 亚洲高清激情一区二区三区| 伊人久久大香线蕉av色婷婷色| 国产一区二区三区在线观看免费| 亚洲国产成人资源在线桃色| 少妇被粗大的猛进69视频| 麻豆婷婷狠狠色18禁久久 | 日本一本久道| 日本高清免费播放一区二区| 精品无人区无码乱码毛片国产| 欧美日韩国产一区二区三区不卡| 狠狠亚洲婷婷综合色香五月| 天堂一区二区三区精品| 波多野结衣久久精品99e| 国产呦精品系列在线播放| 日本a一区二区三区在线| 超碰国产精品久久国产精品99| 亚洲av无码专区电影在线观看| 国产成人一区二区三区视频免费蜜| 精品人妻av中文字幕乱| 妺妺窝人体色www聚色窝仙踪| 国产特级全黄一级毛片不卡| 一区二区三区在线免费av| 精品一区二区三区在线视频|