本發(fā)明屬于工業(yè)控制領(lǐng)域,具體是一種新型plc系統(tǒng)。
背景技術(shù):
plc是以自動控制技術(shù)、微計算機(jī)技術(shù)、和通信技術(shù)為基礎(chǔ)發(fā)展起來的新一代工業(yè)控制裝置,隨著微處理器技術(shù)的發(fā)展,plc得到了迅速的發(fā)展,也在社會各領(lǐng)域的生產(chǎn)訓(xùn)得到了越來越多的應(yīng)用。plc在國內(nèi)外已廣泛應(yīng)用于鋼鐵、石油、化工、電力、建材、機(jī)械制造、汽車、輕紡、交通運輸、環(huán)保及文化娛樂等各個行業(yè)。
在梯形圖向指令表轉(zhuǎn)換過程中,大多數(shù)plc系統(tǒng)采用的是塊掃描的算法,該算法自頂向下,自左向右的掃描梯形圖,它高度依賴于梯形圖的界面顯示,而不是元件與元件本身的的關(guān)系。這造成梯形圖的顯示和梯形圖關(guān)系交叉在一起,給報錯和指令表向梯形圖轉(zhuǎn)換造成很大困難。
技術(shù)實現(xiàn)要素:
為了解決現(xiàn)有技術(shù)中存在的上述技術(shù)問題,本發(fā)明提供了一種用于plc系統(tǒng)的梯形圖轉(zhuǎn)換成指令表的方法,包括構(gòu)建有向圖、語法檢查、生產(chǎn)二叉樹和轉(zhuǎn)換為指令表四個階段;其中梯形圖的圖元為頂點,圖符之間的拓?fù)潢P(guān)系為弧,將梯形圖劃分成一塊塊獨立的有向圖網(wǎng)絡(luò),分別對沒塊有向圖網(wǎng)絡(luò)進(jìn)行處理。
進(jìn)一步的,所述構(gòu)建有向圖具體如下:
從鏈表單元的初始節(jié)點開始對元件進(jìn)行掃描,確定該結(jié)點和其他鏈接單元是否鏈接,如果元件和下鏈接單元鏈接,則轉(zhuǎn)向下一個與之鏈接的單元,繼續(xù)掃描;如果元件和下鏈接單元未鏈接,完成掃描。
進(jìn)一步的,所述語法檢查具體如下:
在對有向圖先二叉樹轉(zhuǎn)化之前,檢測梯形圖的語法錯誤,并報錯,梯形圖的語法錯誤歸納為斷路、短路和橋接等。
進(jìn)一步的,所述生成二叉樹具體為:
根據(jù)結(jié)點表示串聯(lián)、并聯(lián)關(guān)系,左子樹和右子樹可以是圖元結(jié)點,也可以是表示串并聯(lián)關(guān)系的根結(jié)點。
進(jìn)一步的,轉(zhuǎn)換為指令表具體為:
得到二叉樹結(jié)構(gòu)之后,根據(jù)二叉樹所描述的邏輯關(guān)系,對二叉樹進(jìn)行后續(xù)遍歷,生產(chǎn)指令表結(jié)構(gòu)。
進(jìn)一步的,輸出的指令表用一個數(shù)組來存儲,后續(xù)遍歷時先訪問左子樹,再訪問右子樹,再訪問根節(jié)點。
本發(fā)明先把梯形圖用有向圖表示,再用二叉樹表示梯形圖各元件的關(guān)系,在梯形圖和和指令表相互轉(zhuǎn)換過程中,只需關(guān)注二叉表和指令表即可,不再需要關(guān)心顯示問題,簡化了轉(zhuǎn)換過程的復(fù)雜度和提高了效率,給顯示也提供了極大的自由度。
附圖說明
圖1是梯形圖和指令表的關(guān)系圖;
圖2是本發(fā)明的運行系統(tǒng)結(jié)構(gòu)圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明作進(jìn)一步說明。
本發(fā)明的用于plc系統(tǒng)的梯形圖轉(zhuǎn)換成指令表的方法,其轉(zhuǎn)換過程為構(gòu)建有向圖、語法檢查、生產(chǎn)二叉樹和轉(zhuǎn)換為指令表四個階段。
梯形圖的圖元為頂點,圖符之間的拓?fù)潢P(guān)系為弧,將梯形圖劃分成一塊塊獨立的有向圖網(wǎng)絡(luò),分別對沒塊有向圖網(wǎng)絡(luò)進(jìn)行處理。
一、有向圖的構(gòu)建
雙向鏈表存儲了梯形圖的信息,但它沒有清晰體現(xiàn)梯形圖的拓?fù)浣Y(jié)構(gòu),因此需要依據(jù)圖的拓?fù)潢P(guān)系劃分雙向鏈表,就是找出雙向鏈表元件單元的連接關(guān)系,建立有向圖。具體算法就是,從鏈表單元的初始節(jié)點開始對元件進(jìn)行掃描,確定該結(jié)點和其他鏈接單元是否鏈接,如果元件和下鏈接單元鏈接,則轉(zhuǎn)向下一個與之鏈接的單元,繼續(xù)掃描;如果元件和下鏈接單元未鏈接,完成掃描。
二、梯形圖的語法檢查
在對有向圖先二叉樹轉(zhuǎn)化之前。檢測梯形圖的語法錯誤,并報錯,梯形圖的語法錯誤原因是圖元之間的組合不合邏輯,無法構(gòu)成正確的語義。梯形圖的語法錯誤歸納為斷路、短路和橋接等。
三、生成二叉樹
梯形圖實質(zhì)上是由元件通過串并的鏈接關(guān)系組合而成。因此,可以用二叉樹表示。根據(jù)結(jié)點表示串聯(lián)、并聯(lián)關(guān)系。左子樹和右子樹既可以是圖元結(jié)點,也可以是表示串并聯(lián)關(guān)系的根結(jié)點。
四、二叉樹遍歷生產(chǎn)指令表
得到二叉樹結(jié)構(gòu)之后,就能根據(jù)二叉樹所描述的邏輯關(guān)系,對二叉樹進(jìn)行后續(xù)遍歷,生產(chǎn)指令表結(jié)構(gòu)。輸出的指令表用一個數(shù)組來存儲。后續(xù)遍歷的特點是先訪問左子樹,再訪問右子樹,再訪問根節(jié)點。