两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種基于plc梯形圖矩陣編譯解釋方法

文檔序號:8480782閱讀:3006來源:國知局
一種基于plc梯形圖矩陣編譯解釋方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體涉及一種基于PLC梯形圖矩陣編譯解釋方法。
【背景技術(shù)】
[0002]傳統(tǒng)PLC梯形圖編譯和解釋方法,采用指令表語言(IL)作為中間接口,指令表編程語言是與匯編語言類似的一種助記符編程語言,和匯編語言一樣由操作碼和操作數(shù)組成。
[0003]編譯過程:是將梯形圖語言編譯成IL語言,一般采用矩陣解析法,矩陣解析法一般分為兩步轉(zhuǎn)化為IL語言。第一步,生成以數(shù)學(xué)公式為原型的一級代碼,一級代碼表示了梯形圖各個(gè)元素之間的關(guān)系。第二步,根據(jù)數(shù)學(xué)公式生成二級代碼,二級代碼是一種面向累加器的語言,它的每一個(gè)指令都會(huì)用到或者是更改累加器的內(nèi)容。指令是自上而下逐行執(zhí)行的,二級代碼指令由一序列指令組成。每條指令應(yīng)在新的一行開始,并應(yīng)包含一個(gè)操作符,一個(gè)操作數(shù)。指令都是單操作數(shù)指令。
[0004]解釋過程:二級代碼下載到下層CPU解釋執(zhí)行。首先把二級代碼指令轉(zhuǎn)化為一系列由O和I組成的二進(jìn)制碼。然后根據(jù)二進(jìn)制碼建立指令索引表,根據(jù)指令索引表編寫解釋程序。最后將轉(zhuǎn)化成二進(jìn)制碼的二級代碼根據(jù)指令索引表解釋執(zhí)行。
[0005]缺點(diǎn)1:編譯過程復(fù)雜,效率低。由梯形圖語言,轉(zhuǎn)化成二級代碼需要經(jīng)過兩步,每一步都需要CPU進(jìn)行復(fù)雜的運(yùn)算方可完成。一個(gè)最簡單的梯形圖(一個(gè)輸入+ —個(gè)輸出),編譯完成需要0.5s左右,加上變量掃描,語法檢查等。編譯完大約需要2s左右。大型的工程文件需要更長的時(shí)間。并且編譯過程復(fù)雜容易出錯(cuò)。
[0006]缺點(diǎn)2:解釋過程需要將二級代碼翻譯成二進(jìn)制碼,然后根據(jù)指令索引表進(jìn)行解釋執(zhí)行。二級代碼翻譯成二進(jìn)制碼過程復(fù)雜,并且需要根據(jù)索引表才能解釋。下層CPU資源有限,翻譯過程占用了寶貴的CPU資源。造成資源緊張,并且由于復(fù)雜的翻譯過程,造成程序?qū)崿F(xiàn)困難,故障點(diǎn)增多。

【發(fā)明內(nèi)容】

[0007]本發(fā)明要解決的技術(shù)問題是:本發(fā)明為了克服上述技術(shù)問題的缺點(diǎn),提供了一種PLC梯形圖矩陣編譯解釋方法,實(shí)現(xiàn)了梯形圖編譯及解釋的簡單化、高效化和低故障點(diǎn),編譯時(shí)間大大減小。解釋過程無需翻譯二級代碼,大大提高了執(zhí)行效率。
[0008]本發(fā)明所采用的技術(shù)方案為:
一種基于PLC梯形圖矩陣編譯解釋方法,所述方法直接對梯形圖進(jìn)行矩陣運(yùn)算,而不進(jìn)行IL語言轉(zhuǎn)換及解釋。
[0009]所述方法包括過程編譯過程和解釋過程,其中:
編譯過程:在梯形圖編輯過程中,所使用的每一個(gè)元素為一個(gè)圖塊,梯形圖文件中的每個(gè)圖塊對應(yīng)了一個(gè)數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)儲(chǔ)存該圖塊的信息,不同類型的圖塊按照一定的規(guī)則建立連接后組成了梯形圖文件中的一個(gè)網(wǎng)絡(luò),而多個(gè)網(wǎng)絡(luò)又組成了一個(gè)完整的梯形圖文件;梯形圖文件里的元素是以矩陣的形式存在的,每個(gè)梯形圖相當(dāng)于一個(gè)矩陣,矩陣?yán)锏拿總€(gè)元素有上、下、左和右四種連接關(guān)系,分別表示為TOP、BOTTOM、LEFT、RIGHT ;如果該元素有左連接,則LEFT=L如果有右連接則RIGHT=I,如果有上連接則T0P=1,如果有下連接則BOTTOM=I ;上下連接表示元素右邊的上下連接,左邊的上下連接由前面的元素表示;矩陣編譯方式不考慮梯形圖的邏輯關(guān)系,只考慮梯形圖元素之間的連接;所有元素以二維數(shù)組的方式組成矩陣,并且元素之間的連接關(guān)系已經(jīng)確定,編譯掃描過程只需要根據(jù)元素的連接關(guān)系,生成簡單的元素表,以XML格式進(jìn)行編碼;
解釋過程:根據(jù)編譯后生成XML格式文件,將XML格式文件還原成梯形圖矩陣,然后進(jìn)行運(yùn)算過程,直接對梯形圖矩陣中的元素按照從上到下,從左到右的順序進(jìn)行掃描,并根據(jù)每個(gè)元素的功能碼進(jìn)行運(yùn)算,輸出=FUN,然后根據(jù)元素間的連接關(guān)系,將所有輸出結(jié)果進(jìn)行合并輸出。
[0010]所述方法的具體操作步驟為:
1)建立一個(gè)PLC梯形圖;
2)PLC梯形圖按照矩陣方式編輯后生成二維數(shù)組;
3)矩陣?yán)镌氐倪B接關(guān)系為:如果元素左邊有連接的元素或者線,則LEFT=I;如果元素右邊有連接元素或者線,則RIGHT=I ;如果元素上面有連接元素或者線,則T0P=1,其中,矩陣第一列的所有元素TOP均為O ;如果元素下面有連接的元素或者線,則BOTTOM=I,其中,矩陣最后一列的所有元素BOTTOM均為O ;
4)根據(jù)邏輯關(guān)系生成XML文件;
5)根據(jù)XML文件生成二維數(shù)組,XML文件里已經(jīng)包含了二維數(shù)組的所有內(nèi)容,包括下標(biāo);
然后對二維數(shù)組按列進(jìn)行掃描運(yùn)算。
[0011]本發(fā)明的有益效果為:本發(fā)明編譯過程由于省略了 IL語言轉(zhuǎn)換過程,只需要對矩陣的連接關(guān)系進(jìn)行簡單的掃描,大大簡化梯形圖編譯過程,減少了故障點(diǎn),提高了編譯效率;編譯過程由于只處理矩陣內(nèi)元素之間的連接關(guān)系,不處理復(fù)雜的與或和與或嵌套邏輯,簡化了邏輯運(yùn)算過程,減少了故障點(diǎn),提高了編譯效率;解釋過程省略了 IL語言翻譯成二進(jìn)制索引表過程,直接對梯形圖矩陣進(jìn)行掃描合并運(yùn)算,節(jié)省了大量的底層CPU資源,提高程序運(yùn)行速度,減少了故障點(diǎn)。
【附圖說明】
[0012]圖1為PLC梯形圖邏輯關(guān)系圖;
圖2為矩陣邏輯劃分;
圖3為元素連接關(guān)系圖;
圖4為XML數(shù)組羅列;
圖5為PLC梯形圖第一列運(yùn)算;
圖6為PLC梯形圖第二列運(yùn)算;
圖7為PLC梯形圖第三列運(yùn)算;
圖8為PLC梯形圖第四列運(yùn)算。
【具體實(shí)施方式】
[0013]下面參照附圖所示,通過【具體實(shí)施方式】對本發(fā)明進(jìn)一步說明:
一種基于PLC梯形圖矩陣編譯解釋方法,所述方法直接對梯形圖進(jìn)行矩陣運(yùn)算,而不進(jìn)行IL語言轉(zhuǎn)換及解釋。
[0014]所述方法包括過程編譯過程和解釋過程,其中:
編譯過程:在梯形圖編輯過程中,所使用的每一個(gè)元素為一個(gè)圖塊,如“觸點(diǎn)”、“線圈”、“連接線”、“功能塊”等都可算作是梯形圖中的一個(gè)圖塊,梯形圖文件中的每個(gè)圖塊對應(yīng)了一個(gè)數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)儲(chǔ)存該圖塊的信息,不同類型的圖塊按照一定的規(guī)則建立連接后組成了梯形圖文件中的一個(gè)網(wǎng)絡(luò),而多個(gè)網(wǎng)絡(luò)又組成了一個(gè)完整的梯形圖文件;梯形圖文件里的元素是以矩陣的形式存在的,每個(gè)梯形圖相當(dāng)于一個(gè)矩陣,矩陣?yán)锏拿總€(gè)元素有上、下、左和右四種連接關(guān)系,分別表示為TOP、BOTTOM、LEFT、RIGHT ;如果該元素有左連接,則LEFT=L如果有右連接則RIGHT=I,如果有上連接則T0P=1,如果有下連接則BOTTOM=I ;上下連接表示元素右邊的上下連接,左邊的上下連接由前面的元素表示;矩陣編譯方式不考慮梯形圖的邏輯關(guān)系,只考慮梯形圖元素之間的連接;這樣做的好處是,不用處理復(fù)雜的與或及與或嵌套邏輯,減少編程中的故障點(diǎn);
所有元素以二維數(shù)組的方式組成矩陣,并且元素之間的連接關(guān)系已經(jīng)確定,編譯掃描過程只需要根據(jù)元素的連接關(guān)系,生成簡單的元素表,以XML格式進(jìn)行編碼;
解釋過程:根據(jù)編譯后生成XML格式文件,將XML格式文件還原成梯形圖矩陣,由于XML描述的數(shù)據(jù)格式為順序描述,因此可以快速、簡單的將XML格式文件還原成梯形圖矩陣,無需復(fù)雜的索引算法;然后進(jìn)行運(yùn)算過程,直接對梯形圖矩陣中的元素按照從上到下,從左到右的順序進(jìn)行掃描,并根據(jù)每個(gè)元素的功能碼進(jìn)行運(yùn)算,輸出=FUN,然后根據(jù)元素間的連接關(guān)系,將所
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
西青区| 阿图什市| 石嘴山市| 景泰县| 万全县| 扎赉特旗| 崇义县| 兰坪| 明星| 巴里| 漳浦县| 修水县| 中卫市| 重庆市| 陇西县| 淳安县| 莲花县| 迁安市| 左权县| 郓城县| 福建省| 科尔| 通榆县| 阿拉善右旗| 延吉市| 福鼎市| 磴口县| 崇义县| 静海县| 吉林市| 凉城县| 黄梅县| 临朐县| 光泽县| 罗甸县| 平利县| 陆川县| 育儿| 孝昌县| 遵化市| 牟定县|