亚洲国产成人,色呦呦内射午夜,无码一级片,无码人妻少妇色欲AV一区二区

<samp id="jg8hh"></samp>

<p id="jg8hh"></p><delect id="jg8hh"><em id="jg8hh"><blockquote id="jg8hh"></blockquote></em></delect><acronym id="jg8hh"><dd id="jg8hh"></dd></acronym><button id="jg8hh"><dd id="jg8hh"><acronym id="jg8hh"></acronym></dd></button><samp id="jg8hh"><em id="jg8hh"><blockquote id="jg8hh"></blockquote></em></samp>

<p id="jg8hh"></p>

<samp id="jg8hh"><legend id="jg8hh"></legend></samp>
<samp id="jg8hh"><legend id="jg8hh"><samp id="jg8hh"></samp></legend></samp>

<samp id="jg8hh"></samp>

<p id="jg8hh"></p><acronym id="jg8hh"></acronym><p id="jg8hh"><dd id="jg8hh"><acronym id="jg8hh"></acronym></dd></p><p id="jg8hh"></p>

<p id="jg8hh"></p><delect id="jg8hh"><legend id="jg8hh"><var id="jg8hh"></var></legend></delect><button id="jg8hh"><listing id="jg8hh"><i id="jg8hh"></i></listing></button>
<delect id="jg8hh"><legend id="jg8hh"><var id="jg8hh"></var></legend></delect>

PLC梯形圖編譯原理

發(fā)布時(shí)間:2024-04-13
il語言非常接近匯編語言,編碼后,plc處理器能很容易識(shí)別,但是梯形圖是圖形元素,cpu不容易識(shí)別,所以要將梯形圖先編譯為il語言。本文提供了一種遞歸編譯的方式,不完善的地方,還請見諒。轉(zhuǎn)換思路:將梯形圖以網(wǎng)絡(luò)為單位進(jìn)行遍歷,選擇一個(gè)網(wǎng)絡(luò)進(jìn)行分析,梯形圖本質(zhì)是塊和塊之間的串聯(lián),串聯(lián)的塊中又可能包含了并聯(lián)關(guān)系,但是并聯(lián)關(guān)系中,其實(shí)也是串聯(lián)塊的并聯(lián)。如圖1:
在整個(gè)梯形圖編譯的過程中,主要使用2個(gè)步驟(或者叫函數(shù)),一個(gè)步驟分析塊之間的串聯(lián)關(guān)系,一個(gè)步驟分析塊之間的并聯(lián)關(guān)系。
步驟0:先初始化開始行為網(wǎng)絡(luò)的第一行,開始列為第一列,結(jié)束列為最后一列。然后進(jìn)去步驟1。步驟1、(1)建立一個(gè)塊堆棧blockstack,輸出堆棧outputstack。(2)首先將圖進(jìn)行串聯(lián)塊的分析。將分析到的塊壓入blockstack,輸出塊壓入outputstack.(3)遍歷blockstack,對每一個(gè)塊進(jìn)行分析,1)如果塊的行數(shù)大于1,表示塊中有并聯(lián)關(guān)系,到步驟2分析該塊。如果塊不是第一個(gè)塊,則要在并聯(lián)關(guān)系解釋完后,加入anb指令。2)如果塊的行數(shù)等于1,表示塊已經(jīng)是最簡串聯(lián)塊,直接輸出塊的語句。如果塊是第一個(gè)塊,使用ld加載第一個(gè)元素,依次往后使用and。(至于使用ldi,還是ani,請判斷元素的類型。)如果塊不是第一個(gè)塊,使用and加載第一個(gè)元素,依次往后使用and。
(4)遍歷輸出塊。如果輸出塊是多行,使用步驟2分析輸出塊。如果輸出塊是單行,則直接輸出塊中元素:out、set、rst。步驟2、(1)首先判斷傳入的塊是輸出塊還是普通塊。如果是輸出塊,建立一個(gè)記錄標(biāo)志。(2) 建立一個(gè)或堆棧.orblockstack.(3) 分析塊blcok中由哪幾個(gè)串聯(lián)塊并聯(lián)而成,將塊壓入orblockstack中.(4) a、遍歷orblockstack,每一個(gè)串聯(lián)塊進(jìn)行步驟1串聯(lián)分析。b、為每一個(gè)串聯(lián)塊加上并聯(lián)關(guān)系。1)如果是輸出:如果一共有2個(gè)分支,則第一個(gè)分支加入mps,第二個(gè)分支加入mpp。 如果分支大于2個(gè),則第一個(gè)分支加入mps,最后一個(gè)分支加入mpp,其他分支加入mpr。2)如果不是輸出:如果串聯(lián)塊中橫線方向元素個(gè)數(shù)大于1個(gè),加入orb,如果只有一個(gè)元素,加入or,進(jìn)入步驟3檢查代碼。如果沒有元素,就是短路。報(bào)錯(cuò)。步驟3:全部完成后,對指令進(jìn)行分析,如果有l(wèi)d xnor這樣的指令,要合并為:or xn.舉例說明:梯形圖程序如圖1,可以劃分為3個(gè)塊:塊1,塊2,輸出塊。3個(gè)之間是串聯(lián)的關(guān)系。
圖1(現(xiàn)在是在步驟1中)依次將塊1,塊2,輸出塊傳入步驟2,根據(jù)步驟1可知,塊2后面需要加入anb指令。塊1傳入步驟2后,可以分析到塊1是由2個(gè)串聯(lián)塊a、b并聯(lián)組成的。如圖2:
圖2(現(xiàn)在是在步驟2中)依次將a、b傳入步驟1,根據(jù)步驟2可知,b傳入步驟1后,要加上orb指令。塊a傳入步驟1后,可以分析到塊a是由3個(gè)塊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個(gè)單行的串聯(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 x1a2傳入步驟1,可以得到ld x2ora3傳入步驟1可以得到ld x3or最后對指令進(jìn)行分析,只要有l(wèi)d xnor這樣的,都合并為or xn.整理后得到指令為:ld x1or x2or x3。依次往后遍歷,最后能得到所有的指令為:ld x1or x2or x3ld x4or x5anbld x6or x7anbld x9or x10ld x11ld x12anborbld x13or x14ld x15or x16anbor x17anbout y1在這個(gè)算法中,將梯形圖元素分塊,是最關(guān)鍵的,所以要處理好梯形圖元素的分塊,至于怎么分塊,就需要自己想了喲~
上一個(gè):撫順廠家供應(yīng)管道木碼
下一個(gè):哪里可以出租婚車

蓬蒿菊的別名和生長習(xí)性及種植方法
取消預(yù)約掛號(hào)怎么操作(網(wǎng)上約掛號(hào)怎么約)
新型HT-60回彈儀檢定裝置
玻纖吸音板與布藝軟包吸聲板哪個(gè)吸聲效果好一點(diǎn)?
電子證據(jù)是實(shí)物證據(jù)嗎
氟塑料耐腐蝕液下泵如何分配電纜?
木質(zhì)產(chǎn)品發(fā)美國海運(yùn)要求(海運(yùn)木質(zhì)產(chǎn)品收費(fèi))
鐵骨飄香
華為2022年手機(jī)銷量全球第一(2021年華為手機(jī)銷量排行榜)
CAK80385數(shù)控車床價(jià)格與80385車床數(shù)控技術(shù)的*性有關(guān)130666088