西門子plc移位寄存器指令
移位寄存器指令SHRB是將DATA數(shù)值移入移位寄存器。S_BIT指定移位寄存器的最低位。N指定移位寄存器的長度和移位方向(移位加 = N,移位減 = -N)。移位寄存器的最大長度是64位的,可以正也可以負(fù)。我們要注意的是SHRB指令移出的每個(gè)位是被放置在溢出內(nèi)存位(SM1.1)中的。
下面便以以下的程序來講解指令的使用,用I0.2的上升沿來執(zhí)行移位寄存器指令,那么就是一個(gè)掃描周期移一位的,指令中V100.0是移位寄存器的最低位,I0.3里面存的是0或1的數(shù)值,指令指定是移位加的,移位寄存器的長度是4。我們結(jié)合下面的時(shí)序圖和移位的圖來看,若V100為0000 0101,因?yàn)橐莆患拇嫫鞯拈L度是4,那么只有0101,當(dāng)I0.3為1時(shí),執(zhí)行第一次移位,把1移到移位寄存器的最低位,把移出的位的值0放置到SM1.1中,那么SM1.1為0,當(dāng)I0.3為0時(shí),執(zhí)行第二次移位,把0移到移位寄存器的最低位,把移出的位的值1放置到SM1.1中,那么SM1.1為1。
在順序控制或步進(jìn)控制中,應(yīng)用移位寄存器編程是很方便的,移位寄存器指令如圖所示。
1)移位寄存器有3個(gè)數(shù)據(jù)輸入端:
DATA:移位寄存器的數(shù)據(jù)輸入端,數(shù)據(jù)類型為BOOL(位)。
S_BIT:組成移位寄存器的最低位,數(shù)據(jù)類型為BOOL(位)。
N:移位寄存器的長度和移位方向,-64≤N≤64,當(dāng)N 》0時(shí)為正向移位(從移位寄存器的最低位移入,由最高位移出),當(dāng)N 《0時(shí)為反向移位(從移位寄存器的最高位移入,由最低位移出)。
2)移位寄存器的特點(diǎn):
·移位寄存器的數(shù)據(jù)類型無字節(jié)型、字型、雙字型之分,移位寄存器的長度N由程序指定。
·移位寄存器的組成:
最低位為:S_BIT;
最高位的計(jì)算方法為:MSB=S_BIT+(|N|-1)/8。S7-200的編址均為8進(jìn)制,相加時(shí)要字節(jié)和字節(jié)相加,位和位相加,并且逢8進(jìn)1;例如:
S_BIT= V23.4,N=15,則MSB= V23.4+(15-1)/8=
移位寄存器的組成:V23.4~V23.7、V24.0~V24.7、V25.0、V25.1、V25.2,共15位。
·移位寄存器指令的功能是:當(dāng)允許輸入端EN有效時(shí),如果N》0,則將移位數(shù)據(jù)DATA填入移位寄存器的最低位(S_BIT);如果N《0,則填入到移位寄存器的最高位,移位寄存器的其他位按照N指定的方向(正向或反向),依次串行移位。
·移位寄存器的移出端與SM1.1(溢出)連接。
移位寄存器指令影響的特殊繼電器:SM1.0(零),SM1.1(溢出)。當(dāng)移位操作結(jié)果為0時(shí),SM1.0自動置位;SM1.1的狀態(tài)由每次移出位的狀態(tài)決定。
影響允許輸出ENO正常工作的出錯(cuò)條件為:SM4.3(運(yùn)行時(shí)間)、0006(間接尋址),0091(操作數(shù)超界),0092(計(jì)數(shù)區(qū)錯(cuò)誤)。
下面再看一個(gè)程序案例,更深入地來學(xué)習(xí)一下這個(gè)移位寄存器指令。
1、產(chǎn)品檢測分揀機(jī),輸送帶上的產(chǎn)品經(jīng)過一臺檢測裝置時(shí),檢測裝置輸出檢測結(jié)果到I0.0,有產(chǎn)品時(shí)為1。I0.1檢測產(chǎn)品的好壞,若I0.1為0則產(chǎn)品是好的,若I0.1為1則產(chǎn)品是壞的。在第4個(gè)產(chǎn)品位置有一個(gè)推產(chǎn)品的氣缸Q0.0。若檢測的產(chǎn)品為壞時(shí),到達(dá)第4個(gè)產(chǎn)品位置時(shí),Q0.0輸出,氣缸動作,產(chǎn)品被推出,1s后氣缸退回,傳送帶繼續(xù)工作,進(jìn)行產(chǎn)品的檢測。
下面就分析一下程序,檢測裝置檢測到有產(chǎn)品時(shí)I0.0為1,I0.1檢測產(chǎn)品的好壞,產(chǎn)品壞為1,指定移位寄存器的最低位為M0.0,移位寄存器的長度為4。因?yàn)樵诘?個(gè)產(chǎn)品位置有一個(gè)氣缸Q0.0,若I0.1為1時(shí),到達(dá)第4個(gè)產(chǎn)品位置時(shí),那么就用M0.3驅(qū)動氣缸動作,推出產(chǎn)品,同時(shí)做了一個(gè)定時(shí)器定時(shí)1s,1s后復(fù)位M0.3,氣缸退回。
移位寄存器位指令的形式指令的功能:
移位寄存器位( SHRB)指令將DATA數(shù)值移入移位寄存器。S_BIT指定移位寄存器的最低位。N指定移位寄存器的長度和移位方向(當(dāng)N是正的,從低位移到高位,當(dāng)N是負(fù)數(shù),就從高位移到低位)。SHRB指令移出的每個(gè)位被放置在溢出內(nèi)存位(SM1.1)中。該指令由最低位(S_BIT)和長度(N)指定的位數(shù)定義。
注:已知最低位,計(jì)算最高位的方法:MSB.b=[(S_BIT字節(jié))+([N]-1+(S_BIT位))/8]·[被8除的余數(shù)]
例如:如果S_BIT的字節(jié)和位分別是V33和4,N是14,以下計(jì)算顯示MSB.b是V35.1。
MSB.b= V33+([14]-1+4)/8
= V33+17/8
= V33+2,余數(shù)為1
= V35.1
0次