• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      PLC梯形圖轉(zhuǎn)化為多操作數(shù)邏輯指令的設(shè)計(jì)與實(shí)現(xiàn)

      2016-11-17 10:41:02邱盛成蔡啟仲李克儉潘紹明
      關(guān)鍵詞:二叉樹梯形圖數(shù)據(jù)結(jié)構(gòu)

      邱盛成,蔡啟仲,李克儉,潘紹明

      (廣西科技大學(xué) 電氣與信息工程學(xué)院,廣西 柳州 545006)

      ?

      PLC梯形圖轉(zhuǎn)化為多操作數(shù)邏輯指令的設(shè)計(jì)與實(shí)現(xiàn)

      邱盛成,蔡啟仲,李克儉,潘紹明

      (廣西科技大學(xué) 電氣與信息工程學(xué)院,廣西 柳州 545006)

      針對(duì)每一個(gè)操作數(shù)有一個(gè)操作碼的PLC邏輯指令,設(shè)計(jì)了一個(gè)操作碼可帶多個(gè)操作數(shù),操作數(shù)附加“輔助符號(hào)位”的新型PLC邏輯指令,避免在執(zhí)行邏輯指令過程中有多少個(gè)操作數(shù)需要譯碼多少次的狀況;研究這種新指令語句的數(shù)據(jù)結(jié)構(gòu)和梯形圖的數(shù)據(jù)結(jié)構(gòu),應(yīng)用這兩種數(shù)據(jù)結(jié)構(gòu)研究梯形圖轉(zhuǎn)化成新指令表的轉(zhuǎn)化算法;對(duì)梯形圖采用按梯級(jí)順序遞歸掃描方法構(gòu)造二叉樹結(jié)構(gòu),然后對(duì)二叉樹進(jìn)行后序遍歷得到一個(gè)中間結(jié)果指令表,對(duì)中間結(jié)果指令表經(jīng)過邏輯關(guān)系的分析與同類型邏輯關(guān)系操作數(shù)的合并處理得到最終的指令表;通過對(duì)串并聯(lián)結(jié)構(gòu)梯形圖的轉(zhuǎn)換測(cè)試,其新指令語句的轉(zhuǎn)化結(jié)果正確。

      梯形圖;邏輯指令;二叉樹;多操作數(shù)

      0 引言

      在可編程控制器(PLC)的邏輯指令中,一般一條邏輯指令由操作碼和一個(gè)操作數(shù)組成,與母線連接的指令的另一個(gè)操作數(shù)隱含為1,而未與母線連接的指令的另一個(gè)操作數(shù)來自于上一條邏輯指令執(zhí)行的結(jié)果,兩種情況下的邏輯指令的執(zhí)行結(jié)果都作為下一條指令的操作數(shù)[1]。PLC執(zhí)行這類指令序列時(shí),需要對(duì)每條指令進(jìn)行譯碼。本文對(duì)PLC的邏輯指令的操作數(shù)結(jié)構(gòu)進(jìn)行設(shè)計(jì),一個(gè)操作碼有多個(gè)操作數(shù),每個(gè)操作數(shù)增加了輔助符號(hào)位,使得邏輯指令序列語句更為簡(jiǎn)潔,也避免了在執(zhí)行PLC程序過程中需要對(duì)每個(gè)操作數(shù)的操作碼進(jìn)行譯碼的處理。

      在PLC的編程語言中,指令表是一種字符型描述性語言,它類似于匯編語言,與CPU可執(zhí)行的機(jī)器碼最為接近[2-3]。梯形圖是圖像型描述性語言,形象而直觀,類似于繼電器控制原理易于掌握和開發(fā)[1,4]。梯形圖翻譯成可執(zhí)行機(jī)器碼,則須先將梯形圖轉(zhuǎn)化為指令表語句,然后再轉(zhuǎn)化為機(jī)器碼。新設(shè)計(jì)的指令表語句的梯形圖與常用的梯形圖的表現(xiàn)形式仍然完全一致,沒有變化,根據(jù)新設(shè)計(jì)的指令表語句結(jié)構(gòu),研究常用PLC梯形圖與新指令表結(jié)構(gòu)的轉(zhuǎn)化算法[5-6]。利用二叉樹[7]作為轉(zhuǎn)化過程的中間結(jié)構(gòu),經(jīng)過圖形掃描、遍歷、邏輯關(guān)系分析以及同類型邏輯關(guān)系操作數(shù)處理等多個(gè)步驟完成了整個(gè)轉(zhuǎn)化過程。

      1 指令表的設(shè)計(jì)

      一般的PLC邏輯指令的操作碼中還包括有常開、常閉、上升沿脈沖和下降沿脈沖觸點(diǎn)的信息,操作碼之后只能帶單個(gè)操作數(shù),例如:LDI X01。 本文設(shè)計(jì)邏輯指令的一個(gè)操作碼有多個(gè)操作數(shù),將常開、常閉、上升沿脈沖和下降沿脈沖觸點(diǎn)的信息作為輔助符號(hào)位附加在指令的每個(gè)操作數(shù)后面,輔助符號(hào)位及其功能如表1所示。

      表1 輔助符號(hào)位的功能關(guān)系表

      設(shè)計(jì)的操作數(shù)的格式為:

      操作數(shù)n = 軟元件+軟元件號(hào)+[輔助符號(hào)]

      按照操作數(shù)的通用格式,新設(shè)計(jì)的邏輯指令的結(jié)構(gòu)中,由于每個(gè)操作數(shù)附加了一個(gè)輔助符號(hào)位,而原來的操作碼LD、LDI、LDP和LDF只需要一個(gè)操作碼LD;同理,對(duì)于與運(yùn)算的4個(gè)操作碼和或運(yùn)算的4個(gè)操作碼分別用AND和OR表示;針對(duì)和公共母線連接的幾個(gè)軟元件或運(yùn)算的情況,增加一個(gè)操作碼LDR。

      設(shè)計(jì)的邏輯指令格式為:

      例1:LDR M10I T20P Y07 X15F

      該指令功能表示:與公共母線連接的M10、T20、Y07、X154個(gè)軟元件根據(jù)各自的觸點(diǎn)信息進(jìn)行或運(yùn)算。

      例2:對(duì)于一般PLC邏輯指令語句

      LDI X01

      ANP M12

      ANF Y03

      …….

      AND M105

      應(yīng)用新設(shè)計(jì)的邏輯指令為:

      LD X01I M02P Y03F …… M105

      從例1和例2可以看出,在一般PLC指令語句中,在邏輯關(guān)系都為或和與的情況下采用了多行指令語句的形式編寫。而在本文設(shè)計(jì)的指令語句結(jié)構(gòu)中通過添加輔助符號(hào)位的形式,使用設(shè)計(jì)的邏輯指令格式將具有相同邏輯關(guān)系與的語句合并為一條語句。其中操作碼LDR表示帶公共母線連接多個(gè)連續(xù)并聯(lián)的操作數(shù),LD表示帶公共母線連接多個(gè)連續(xù)串聯(lián)的操作數(shù)。以此類推,AND連接多個(gè)連續(xù)串聯(lián)的操作數(shù),OR連接多個(gè)連續(xù)并聯(lián)的操作數(shù),其具體關(guān)系如表2所示。

      表2 基本指令多操作數(shù)應(yīng)用格式表

      2 指令的數(shù)據(jù)結(jié)構(gòu)

      由于邏輯指令操作數(shù)的數(shù)據(jù)結(jié)構(gòu)包含軟元件,軟元件號(hào),和輔助符號(hào)3個(gè)部分,每條邏輯指令可以有一個(gè)操作數(shù),或多個(gè)操作數(shù),也就是說,每一條邏輯指令的長(zhǎng)度是不相同的,設(shè)計(jì)指令的數(shù)據(jù)結(jié)構(gòu)必須解決滿足這些技術(shù)問題。

      根據(jù)設(shè)計(jì)的操作數(shù)格式,設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu)如下所示。

      typedef struct operand//存儲(chǔ)指令語句中的操作數(shù)

      {

      char component; //軟元件

      CString number; //軟元件號(hào)

      CString auxiliary; //輔助符號(hào)

      }OperandIL;

      在設(shè)計(jì)操作數(shù)數(shù)據(jù)結(jié)構(gòu)中,采用字符或字符串類型進(jìn)行存儲(chǔ),軟元件號(hào)雖然是數(shù)字類型,但考慮到在界面編輯時(shí),輸入的是字符類型,所以采用CString類進(jìn)行存儲(chǔ),這樣方便處理,并且可調(diào)用CString類中的Format成員函數(shù)將字符串格式化為10進(jìn)制或16進(jìn)制數(shù),方便與機(jī)器碼的相互轉(zhuǎn)化。

      對(duì)于一條完整的指令語句,操作數(shù)的個(gè)數(shù)為不確定的值,因此需要采用一種可以動(dòng)態(tài)分配內(nèi)存空間的數(shù)據(jù)類型,當(dāng)操作數(shù)個(gè)數(shù)增加時(shí),可以動(dòng)態(tài)申請(qǐng)內(nèi)存空間來存放對(duì)應(yīng)的數(shù)值,不浪費(fèi)內(nèi)存資源。鏈表具有插入、刪除數(shù)據(jù)節(jié)點(diǎn)方便,且每次增加節(jié)點(diǎn)時(shí)都向內(nèi)存申請(qǐng)存儲(chǔ)空間的特點(diǎn)[7]。將操作數(shù)數(shù)據(jù)結(jié)構(gòu)類型OperandIL通過鏈表的形式進(jìn)行存儲(chǔ),剛好符合本設(shè)計(jì)要求。由以上思路設(shè)計(jì)出的單條指令語句數(shù)據(jù)結(jié)構(gòu)如下所示。

      typedef struct InstructionList//存儲(chǔ)一條指令語句的數(shù)據(jù)結(jié)構(gòu)

      {

      CString OpCode; //操作碼

      list ope; //操作數(shù)

      CString Annotation; //注釋

      }IL;

      指令語句存儲(chǔ)結(jié)構(gòu)的確定,也決定了梯形圖數(shù)據(jù)結(jié)構(gòu)中的指令結(jié)構(gòu)為OperandIL類型。

      3 梯形圖編輯環(huán)境

      3.1 梯形圖編輯界面

      在VS2010集成開發(fā)環(huán)境下使用C++高級(jí)語言MFC框架開發(fā)編輯系統(tǒng)。在MFC多文檔視圖中編輯,整個(gè)軟件系統(tǒng)主要分為三大窗口:梯形圖編輯窗口,錯(cuò)誤信息提示窗口,文件管理窗口。

      在PLC程序圖中,梯形圖由若干階級(jí)構(gòu)成,自上而下排列,每個(gè)階級(jí)起于左母線,經(jīng)過若干軟元件與軟元件線圈,止于右母線。因此在梯形圖編輯界面的設(shè)計(jì)中,在梯形圖編輯窗口中先確定左右母線的位置,再在左右母線中的區(qū)域按均等分為N行M列的網(wǎng)格來存放元件圖片。

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

      梯形圖數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)主要針對(duì)解決兩個(gè)問題:第一新設(shè)計(jì)的邏輯指令的梯形圖表現(xiàn)形式需要與原來的梯形圖完全一致;第二梯形圖的數(shù)據(jù)結(jié)構(gòu)中要隱含有新指令語句的結(jié)構(gòu)特征,能夠?yàn)檗D(zhuǎn)化算法的實(shí)現(xiàn)提供數(shù)據(jù)特征,完成轉(zhuǎn)化。

      基于此考慮將梯形圖的數(shù)據(jù)結(jié)構(gòu)分兩層設(shè)計(jì),第一層為顯示圖形層,第二層為存儲(chǔ)數(shù)據(jù)層。顯示圖形層中用于存放圖形元件對(duì)應(yīng)的圖片信息、圖形元件在編輯界面的坐標(biāo),以及上下左右圖形元件之間的關(guān)系;在存儲(chǔ)數(shù)據(jù)層中,主要存放的是與指令語句結(jié)構(gòu)對(duì)應(yīng)的操作碼和操作數(shù)結(jié)構(gòu)信息,以及在轉(zhuǎn)化過程中所要保存的中間結(jié)果。由以上思路設(shè)計(jì)出的數(shù)據(jù)結(jié)構(gòu)如下:

      class CLadderDiagram

      {

      private:

      //顯示圖形層

      CPoint m_bmpPoint; //圖片坐標(biāo)

      int m_bmpName; //圖片名

      bool m_behindBranch; //節(jié)點(diǎn)后面是否有下劃線

      bool m_frontBranch; //節(jié)點(diǎn)前面是否有上劃線

      //存儲(chǔ)數(shù)據(jù)層

      bool m_Flag;//元件是否被選中

      bool m_busFlag;//元件是否連接左母線

      CString m_commandName;//操作碼

      OperandIL m_operandName;//操作數(shù)

      bool m_IsFunc;//是否為功能指令

      int m_indexFunc;//為功能指令的第幾位

      bool m_mpsFlag;//mps入棧標(biāo)識(shí)

      bool m_mppFlag;//mpp出棧標(biāo)識(shí)

      }

      其中對(duì)操作碼、操作數(shù)數(shù)據(jù)類型的確定,需要與第2節(jié)所提到存儲(chǔ)指令語句中數(shù)據(jù)結(jié)構(gòu)一致,以便能夠快速的完成轉(zhuǎn)化。

      4 梯形圖轉(zhuǎn)指令表算法

      根據(jù)第2節(jié)、第3節(jié)中所分別設(shè)計(jì)的指令語句數(shù)據(jù)結(jié)構(gòu)和梯形圖數(shù)據(jù)結(jié)構(gòu)。針對(duì)兩種數(shù)據(jù)結(jié)構(gòu)研究梯形圖轉(zhuǎn)化為指令語句的轉(zhuǎn)化算法。在轉(zhuǎn)化過程中如何將梯形圖轉(zhuǎn)化為能夠反映其邏輯關(guān)系的中間語言,再從中間語言轉(zhuǎn)化到最終的新指令語句結(jié)構(gòu)這兩個(gè)過程是本設(shè)計(jì)中所要解決的技術(shù)難題。

      采用二叉樹作為轉(zhuǎn)化的中間語言,因?yàn)槎鏄渲幸粋€(gè)父節(jié)點(diǎn)可帶兩個(gè)子節(jié)點(diǎn)的邏輯結(jié)構(gòu),剛好符合梯形圖實(shí)現(xiàn)兩軟元件間與和或的兩個(gè)邏輯關(guān)系的表現(xiàn)。因此先將梯形圖構(gòu)建出具有邏輯特征的二叉樹結(jié)構(gòu),再根據(jù)所得二叉樹結(jié)構(gòu)采用遍歷、優(yōu)化、多操作數(shù)處理等方法得到最終的指令表結(jié)果。如圖1所示為一個(gè)復(fù)雜的串并聯(lián)結(jié)構(gòu)梯形圖。按照新設(shè)計(jì)的指令表結(jié)構(gòu)則該梯形圖對(duì)應(yīng)的最終指令表如表3所示。

      表3 梯形圖的最終指令表

      4.1 梯形圖轉(zhuǎn)二叉樹

      梯形圖轉(zhuǎn)化為二叉樹主要步驟:

      1)初始化一個(gè)用于存放二叉樹根節(jié)點(diǎn)的棧S,初始化一個(gè)空的二叉樹T,從動(dòng)態(tài)二維數(shù)組中第一個(gè)數(shù)組元素開始掃描,按從左往右順序掃描,若連續(xù)掃描到若干元素不含后下劃線標(biāo)識(shí),則按照如下方法構(gòu)建二叉樹T:新建AND節(jié)點(diǎn)作為父節(jié)點(diǎn),前兩個(gè)元素作為子節(jié)點(diǎn),第3個(gè)元素開始每掃描到一個(gè)元素則新建AND節(jié)點(diǎn),左子節(jié)點(diǎn)為前一元素的根節(jié)點(diǎn),右子節(jié)點(diǎn)為當(dāng)前元素的值。

      圖1 復(fù)雜串并聯(lián)結(jié)構(gòu)梯形圖

      2)在第1)步中,若掃描到元素中含有后下劃線,并且掃描當(dāng)前元素對(duì)應(yīng)位置的下一行元素,元素不為空,則將當(dāng)前元素與前一元素構(gòu)建好的二叉樹T根節(jié)點(diǎn)壓入堆棧S中,清空二叉樹T,從當(dāng)前元素開始按從右往左順序掃描,直到掃描到有前上劃線標(biāo)識(shí)的元素停止掃描,記下掃描過的元素個(gè)數(shù)。再從這一元素開始從左往右掃描按照如下方法構(gòu)建二叉樹T:若掃描過程中所有元素不含后下劃線則新建OR節(jié)點(diǎn)作為父節(jié)點(diǎn),將堆棧中元素彈出作為左子節(jié)點(diǎn),再將掃描過的元素按(1)中構(gòu)造二叉樹的方法所得的根節(jié)點(diǎn)作為右子節(jié)點(diǎn)。返回上一行元素繼續(xù)掃描。

      3)在第2)步中,若掃描當(dāng)前元素對(duì)應(yīng)位置的下一行元素,該元素為空,則說明該下劃線與右邊并聯(lián)塊相連,此時(shí)新建AND節(jié)點(diǎn)為父節(jié)點(diǎn),左子節(jié)點(diǎn)為前二叉樹T根節(jié)點(diǎn),右子節(jié)點(diǎn)為空,將此AND節(jié)點(diǎn)壓入堆棧S中,清空二叉樹T,返回上一行按(1)中的方法繼續(xù)掃描。

      圖2 梯形圖二叉樹結(jié)構(gòu)

      4)構(gòu)造二叉樹時(shí)若仍然遇到元素中含后下劃線標(biāo)識(shí),則遞歸調(diào)用2)的方法構(gòu)造二叉樹。直到掃描完整行元素。

      5)整行元素掃描完畢后,該層梯形圖的邏輯結(jié)構(gòu)已用二叉樹存儲(chǔ)起來,后面存在的所有梯形圖結(jié)構(gòu)都可用相同的方式用二叉樹存儲(chǔ)起來。然后創(chuàng)建一個(gè)二叉樹隊(duì)列L,將所有構(gòu)造好的二叉樹存儲(chǔ)到隊(duì)列L中,完成整個(gè)梯形圖程序的存儲(chǔ)過程。

      如此便將梯形圖完整的轉(zhuǎn)化為需要的二叉樹結(jié)構(gòu),圖1的一個(gè)完整的二叉樹結(jié)構(gòu)如圖2所示,從圖2可以看出,生成的二叉樹結(jié)構(gòu)能夠完整的將軟元件的觸點(diǎn)信息反映出來。為轉(zhuǎn)化為指令表后如何判斷軟元件觸點(diǎn)的信息提供了途徑。

      梯形圖轉(zhuǎn)化為二叉樹的詳細(xì)程序流程圖如圖3所示,在轉(zhuǎn)化之前,先構(gòu)造一個(gè)二維動(dòng)態(tài)數(shù)組將用戶編寫的梯形圖程序按對(duì)應(yīng)的元素位置存儲(chǔ)到數(shù)組中,然后按從左往右的順序?qū)?shù)組掃描。在掃描過程中根據(jù)元素?cái)?shù)據(jù)結(jié)構(gòu)的特征按圖3中的條件進(jìn)行逐一判斷,滿足條件則進(jìn)行對(duì)應(yīng)的操作處理。

      圖3 掃描梯形圖構(gòu)造二叉樹程序流程圖

      其中每次入棧操作表示掃描到的元素節(jié)點(diǎn)為并聯(lián)模塊開始節(jié)點(diǎn),需要將之前掃描構(gòu)造的二叉樹壓入棧中,再對(duì)并聯(lián)模塊構(gòu)造新的二叉樹;而出棧操作則表示掃描到的元素節(jié)點(diǎn)為并聯(lián)模塊結(jié)束節(jié)點(diǎn),需要彈出棧中二叉樹節(jié)點(diǎn)與并聯(lián)模塊的二叉樹節(jié)點(diǎn)合并為新的二叉樹。

      4.2 二叉樹轉(zhuǎn)新指令表

      在二叉樹構(gòu)造過程中,已將構(gòu)造好的所有二叉樹存放到隊(duì)列L中,然而二叉樹中所反映的僅是梯形圖串并聯(lián)結(jié)構(gòu)關(guān)系,卻不能得到所需指令表。因此需要對(duì)隊(duì)列L中的二叉樹進(jìn)行相應(yīng)的處理使其能轉(zhuǎn)為對(duì)應(yīng)的指令表。

      二叉樹轉(zhuǎn)化為指令表主要由三步驟完成:

      1)對(duì)隊(duì)列L中的二叉樹按先進(jìn)先出的方式取出,對(duì)其依次進(jìn)行后續(xù)遍歷得到指令表如表4所示。表4的指令表并不是最終指令表仍需做進(jìn)一步處理。

      表4 對(duì)二叉樹后續(xù)遍歷所得指令表

      2)按從上往下的順序掃描所得指令表,當(dāng)掃描到LD語句緊跟后面為OR/AND指令時(shí),將LD指令中的操作碼改為相應(yīng)的OR/AND,刪除緊跟其后的OR/AND指令。當(dāng)掃描到連續(xù)出現(xiàn)的LD指令時(shí),則記錄下連續(xù)出現(xiàn)的LD指令個(gè)數(shù),并將其先后壓入堆棧中,直到掃描到OR/AND指令后再從堆棧中依次彈出LD指令,將LD指令中的操作碼改為掃描到的OR/AND指令。若掃描到連續(xù)兩個(gè)OR/AND無操作數(shù)指令,則對(duì)第二個(gè)指令進(jìn)行處理若原來是OR/AND則改為相應(yīng)的ORB/ANB。

      3)按照第2)步處理之后所得指令表如表5所示,其中結(jié)果與常用PLC指令表類似,但仍有不同的地方,在其中添加了本文所設(shè)計(jì)的操作數(shù)輔助符號(hào)位。但所得指令表所得結(jié)果仍不是最終指令表結(jié)果。需要再一次重新按從上往下的順序掃描表5,若掃描到LD后面連續(xù)出現(xiàn)的OR/AND指令,則將掃描到的指令合并成一條操作碼為L(zhǎng)DR/LD的多操作數(shù)指令;若掃描到在ORB/ANB之后連續(xù)出現(xiàn)OR/AND指令,則將掃描到的指令合并成一條操作碼為OR/AND的多操作數(shù)指令。如此得到最終指令表結(jié)果如表3所示。

      表5 對(duì)圖4掃描處理后的結(jié)果

      5 實(shí)驗(yàn)結(jié)果與分析

      根據(jù)設(shè)計(jì)要求,在VS2010集成開發(fā)環(huán)境下使用MFC框架完成軟件的編寫。梯形圖在設(shè)計(jì)的PLC編程軟件上的運(yùn)行結(jié)果如圖4所示,梯形圖轉(zhuǎn)化為指令表的轉(zhuǎn)化結(jié)果如圖5所示。

      圖4 編輯軟件梯形圖

      由實(shí)驗(yàn)結(jié)果可以看出,通過一個(gè)具體的轉(zhuǎn)化實(shí)例來驗(yàn)證設(shè)計(jì)算法的準(zhǔn)確性和可實(shí)現(xiàn)性,由多路輸出的復(fù)雜串并聯(lián)結(jié)構(gòu)的梯形圖,經(jīng)過編譯轉(zhuǎn)化成了具有多操作邏輯指令的指令表,同時(shí)對(duì)梯形圖功能指令也能完成轉(zhuǎn)化,基本實(shí)現(xiàn)了本設(shè)計(jì)的功能,滿足設(shè)計(jì)要求。

      6 結(jié)束語

      圖5 編輯軟件指令表結(jié)果

      令數(shù)據(jù)結(jié)構(gòu)和梯形圖數(shù)據(jù)結(jié)構(gòu),并以二叉樹作為中間語言結(jié)構(gòu),梯形圖采用按梯級(jí)順序遞歸掃描算法掃描得到二叉樹,再對(duì)二叉樹經(jīng)過后序遍歷、邏輯關(guān)系分析處理以及同類型邏輯關(guān)系操作數(shù)合并處理3個(gè)步驟,完成了從梯形圖轉(zhuǎn)化為新指令表。通過測(cè)試,該轉(zhuǎn)化算法能夠?qū)⒂脩粼O(shè)計(jì)的梯形圖正確轉(zhuǎn)化為新邏輯指令結(jié)構(gòu),為其他控制軟件的設(shè)計(jì)提供了一定的參考價(jià)值。

      [1] 張振國(guó),方承遠(yuǎn). 工廠電氣與PLC控制技術(shù)[M].北京:機(jī)械工業(yè)出版社,2011.

      [2] 鄒光華,劉 毅.基于XML的PLC數(shù)據(jù)描述[J]. 計(jì)算機(jī)工程,2006,01:113-115.

      [3] 蔣宗禮,姜守旭.編譯原理[M].北京:高等教育出版社,2010.

      [4] 蒲志新,熊永超,熊曉紅.PLC梯形圖語言編輯功能的軟件實(shí)現(xiàn).機(jī)械與電子,2003,3:54-55.

      [5]蘇淑芝.軟PLC梯形圖編程系統(tǒng)的研究與實(shí)現(xiàn)[D].廣州:華南理工大學(xué),2012.

      [6]BiH,ChengLD.ResearchabouttheconversionofladderdiagramintosentencelistinSoftPLC[J].Control&Automation, 2007,9(1):63-65.

      [7]嚴(yán)蔚敏,吳偉民.?dāng)?shù)據(jù)結(jié)構(gòu)(第2版)[M].北京:清華大學(xué)出版社.2010.

      Design and Realization of Transformation from PLC Ladder Diagram to Multiple Operands Logic Instruction

      Qiu Shengcheng, Cai Qizhong, Li Kejian, Pan Shaoming

      (College of Electronic and Information Engineering, Guangxi University of Technology, Liuzhou 545006, China)

      Each operand in PLC logic instructions contain only an opcode. A new type of PLC logical instruction structure is designed, where its operation code can take multiple operands and its operands additional "auxiliary sign bit". It avoids in the process of execution logic instructions for multiple operands to decode several times. Researched on the data structure of this new instruction statement and the data structure of the ladder diagram, and using these two data structures to achieve the transformation algorithm of the ladder diagram into the new instruction list. Ladder diagram used in cascade order recursive scanning methods constructing binary tree structure, and postorder the tree traversal for an intermediate result instruction list, After the analysis of the logical relationship of intermediate result instruction list and combined process of operation for the same type of logical relations, the final instruction table is obtained. Through the series-parallel structure of ladder diagram transformation test, the new instruction statements transformation result is correct.

      Ladder; logic instruction; binary tree; multiple operands

      2015-12-16;

      2016-01-15。

      廣西科學(xué)基金項(xiàng)目(桂科自2014GXNSFA118392);廣西教育廳科研項(xiàng)目(2013LX092)。

      邱盛成(1989-),男,廣西北海人,碩士研究生,主要從事嵌入式系統(tǒng)與自動(dòng)化裝置方向的研究。

      蔡啟仲(1956-),男,湖南邵陽人,教授,碩士研究生導(dǎo)師,主要從事智能控制方向的研究。

      1671-4598(2016)06-0202-04

      10.16526/j.cnki.11-4762/tp.2016.06.056

      TP311

      A

      猜你喜歡
      二叉樹梯形圖數(shù)據(jù)結(jié)構(gòu)
      CSP真題——二叉樹
      二叉樹創(chuàng)建方法
      基于VC的梯形圖編程軟件開發(fā)技術(shù)
      一種由層次遍歷和其它遍歷構(gòu)造二叉樹的新算法
      繼電器電路轉(zhuǎn)為梯形圖教學(xué)經(jīng)驗(yàn)淺談
      電子制作(2016年15期)2017-01-15 13:39:28
      “翻轉(zhuǎn)課堂”教學(xué)模式的探討——以《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)為例
      高職高專數(shù)據(jù)結(jié)構(gòu)教學(xué)改革探討
      PLC梯形圖程序設(shè)計(jì)技巧及應(yīng)用
      TRIZ理論在“數(shù)據(jù)結(jié)構(gòu)”多媒體教學(xué)中的應(yīng)用
      TRIZ理論在“數(shù)據(jù)結(jié)構(gòu)”多媒體教學(xué)中的應(yīng)用
      西和县| 肃南| 德安县| 三亚市| 西充县| 乌鲁木齐县| 禹州市| 宁安市| 舒城县| 静安区| 二连浩特市| 慈利县| 营口市| 潞城市| 印江| 莱芜市| 外汇| 阿拉尔市| 进贤县| 固阳县| 斗六市| 福建省| 甘谷县| 浦江县| 拉萨市| 武城县| 株洲县| 师宗县| 佳木斯市| 育儿| 崇礼县| 琼结县| 邵东县| 沂源县| 祁东县| 佛山市| 寿光市| 定日县| 金阳县| 太湖县| 湘乡市|