精品国产成人一区二区三区-女子十八毛片-欧洲性猛交-无码不卡一区二区三区在线观看-www.四虎在线-伊人网国产-国精产品自偷自偷综合下载-不卡av网站-俄罗斯黄色大片-一本久久知道综合久久-国产精品日韩一区二区-日韩精品色-免费人成网ww555kkk在线-黄色在线观看免费-日韩在线免费-久久久久99人妻一区二区三区-十八禁真人啪啪免费网站

當(dāng)前位置:機(jī)電之家首頁 >> PLC技術(shù)>> plc資料下載 >> PLC梯形圖下載 >> plc梯形圖編譯原理
plc梯形圖編譯原理

il語言非常接近,編碼后,處理器能很容易識別,但是梯形圖是圖形元素,cpu不容易識別,所以要將梯形圖先編譯為il語言。本文提供了一種遞歸編譯的方式,不完善的地方,還請見諒。

轉(zhuǎn)換思路:

將梯形圖以網(wǎng)絡(luò)為單位進(jìn)行遍歷,選擇一個網(wǎng)絡(luò)進(jìn)行分析,梯形圖本質(zhì)是塊和塊之間的串聯(lián),串聯(lián)的塊中又可能包含了并聯(lián)關(guān)系,但是并聯(lián)關(guān)系中,其實(shí)也是串聯(lián)塊的并聯(lián)。如圖1:

在整個梯形圖編譯的過程中,主要使用2個步驟(或者叫函數(shù)),一個步驟分析塊之間的串聯(lián)關(guān)系,一個步驟分析塊之間的并聯(lián)關(guān)系。

步驟0:先初始化開始行為網(wǎng)絡(luò)的第一行,開始列為第一列,結(jié)束列為最后一列。然后進(jìn)去步驟1。

步驟1、

(1)建立一個塊堆棧blockstack,輸出堆棧outputstack。

(2)首先將圖進(jìn)行串聯(lián)塊的分析。將分析到的塊壓入blockstack,輸出塊壓入outputstack.

(3)遍歷blockstack,對每一個塊進(jìn)行分析,

1)如果塊的行數(shù)大于1,表示塊中有并聯(lián)關(guān)系,到步驟2分析該塊。

如果塊不是第一個塊,則要在并聯(lián)關(guān)系解釋完后,加入anb指令。

2)如果塊的行數(shù)等于1,表示塊已經(jīng)是最簡串聯(lián)塊,直接輸出塊的語句。

如果塊是第一個塊,使用ld加載第一個元素,依次往后使用and。(至于使用ldi,還是ani,請判斷元素的類型。)

如果塊不是第一個塊,使用and加載第一個元素,依次往后使用and。

(4)遍歷輸出塊。

如果輸出塊是多行,使用步驟2分析輸出塊。

如果輸出塊是單行,則直接輸出塊中元素:out、set、rst。

步驟2、

(1)首先判斷傳入的塊是輸出塊還是普通塊。如果是輸出塊,建立一個記錄標(biāo)志。

(2) 建立一個或堆棧.orblockstack.

(3) 分析塊blcok中由哪幾個串聯(lián)塊并聯(lián)而成,將塊壓入orblockstack中.

(4) a、遍歷orblockstack,每一個串聯(lián)塊進(jìn)行步驟1串聯(lián)分析。

b、為每一個串聯(lián)塊加上并聯(lián)關(guān)系。

1)如果是輸出:如果一共有2個分支,則第一個分支加入mps,第二個分支加入mpp。

如果分支大于2個,則第一個分支加入mps,最后一個分支加入mpp,其他分支加入mpr。

2)如果不是輸出:如果串聯(lián)塊中橫線方向元素個數(shù)大于1個,加入orb,如果只有一個元素,加入or,進(jìn)入步驟3檢查代碼。如果沒有元素,就是短路。報錯。

步驟3:全部完成后,對指令進(jìn)行分析,如果有

ld xn

or

這樣的指令,要合并為:

or xn.

舉例說明:

梯形圖程序如圖1,可以劃分為3個塊:塊1,塊2,輸出塊。3個之間是串聯(lián)的關(guān)系。

圖1

(現(xiàn)在是在步驟1中)依次將塊1,塊2,輸出塊傳入步驟2,根據(jù)步驟1可知,塊2后面需要加入anb指令。

塊1傳入步驟2后,可以分析到塊1是由2個串聯(lián)塊a、b并聯(lián)組成的。如圖2:

圖2

(現(xiàn)在是在步驟2中)依次將a、b傳入步驟1,根據(jù)步驟2可知,b傳入步驟1后,要加上orb指令。

塊a傳入步驟1后,可以分析到塊a是由3個塊a,b,c串聯(lián)組成的,如圖3:

(現(xiàn)在是在步驟1中)然后依次將a,b,c傳入到步驟2中進(jìn)行分析,根據(jù)步驟1可知,b進(jìn)入步驟2后,要加入anb指令,c進(jìn)入步驟2后,也要加入anb指令。

塊a可以分析得到是由3個單行的串聯(lián)a1,a2,a3塊并聯(lián)組成的。

(現(xiàn)在是在步驟2中)再依次把a(bǔ)1,a2,a3傳入步驟1進(jìn)行串聯(lián)分析,根據(jù)步驟2可知,x2傳入步驟1后,要加入or指令,x3傳入步驟1后,也要加入or指令。

a1進(jìn)入步驟1,可以得到a1只有一行,所以直接輸出a1為

ld x1

a2傳入步驟1,可以得到

ld x2

or

a3傳入步驟1可以得到

ld x3

or

最后對指令進(jìn)行分析,只要有

ld xn

or

這樣的,都合并為or xn.

整理后得到指令為:

ld x1

or x2

or x3

。

依次往后遍歷,最后能得到所有的指令為:

ld x1

or x2

or x3

ld x4

or x5

anb

ld x6

or x7

anb

ld x9

or x10

ld x11

ld x12

anb

orb

ld x13

or x14

ld x15

or x16

anb

or x17

anb

out y1

在這個算法中,將梯形圖元素分塊,是最關(guān)鍵的,所以要處理好梯形圖元素的分塊,至于怎么分塊,就需要自己想了喲~

作者:未知 點(diǎn)擊:1690次 [打印] [關(guān)閉] [返回頂部]
本文標(biāo)簽:plc梯形圖編譯原理
* 由于無法獲得聯(lián)系方式等原因,本網(wǎng)使用的文字及圖片的作品報酬未能及時支付,在此深表歉意,請《plc梯形圖編譯原理》相關(guān)權(quán)利人與機(jī)電之家網(wǎng)取得聯(lián)系。
電子樣本

SN系列樣冊
:鞏經(jīng)理
:13915946763
:南京塞姆泵業(yè)有限公司
個人求購

陳經(jīng)理 【求購】  星諾XIN...  2025-12-19
胡勇 【求購】  扎帶機(jī)  2025-12-19
 【求購】  電動漲管機(jī)  2025-12-18
 【求購】  洗手池  2025-12-17
馮經(jīng)理 【求購】  PTD電機(jī)  2025-12-17
倪先生 【求購】  液壓馬達(dá)  2025-12-16
練子棟 【求購】  金屬管件  2025-12-16
陳經(jīng)理 【求購】  求購螺母螺...  2025-12-16
VIP公司推薦

杭锦旗| 柯坪县| 丰原市| 邵阳市| 高密市| 开平市| 时尚| 六安市| 谢通门县| 夏津县| 谢通门县| 新绛县| 菏泽市| 古浪县| 宁安市| 恩平市| 三穗县| 高雄市| 和顺县| 江西省| 资中县| 周至县| 朔州市| 宁德市| 封开县| 噶尔县| 彭阳县| 西乌| 乌什县| 甘泉县| 普定县| 定日县| 礼泉县| 石渠县| 磐石市| 沾益县| 镇远县| 江川县| 三台县| 阳江市| 惠东县|