三菱FX PLC入門之移位指令
吳翠萍
發(fā)布于2020-10-12 16:38
15
2
標(biāo)簽:三菱PLC,三菱FX PLC,PLC指令
【點(diǎn)擊領(lǐng)取】三菱案例 | 西門子案例 | 電工手冊(cè) | 工具箱 軟件
【點(diǎn)擊獲取】三菱PLC例程117個(gè)|西門子PLC例程777個(gè)
【點(diǎn)擊下載】2020新電工仿真軟件
談及移位指令,我個(gè)想到的,是信號(hào)燈的輪流點(diǎn)亮,還有紅綠燈的控制,即使我在此之前并沒有學(xué)過移位指令。
在三菱FX PLC 2N中,移位指令有ROR、ROL、RCR、RCL、SFTR、SFTL、WSFR、WSFL等,看看這些指令,大家可以發(fā)現(xiàn),它們都是成對(duì)的!天吶,單身狗是沒有人權(quán)了嗎?連學(xué)個(gè)指令都是滿滿的狗糧撲面而來。
那么,我們開始今天的學(xué)習(xí)分享吧!
首先,是對(duì)夫婦,啊呸,筆誤,對(duì)指令ROR、ROL。
一、循環(huán)移位指令ROR、ROL
ROR指令和ROL指令中的R、L分別表示右移和左移,R、L的含義類似我們的耳機(jī),戴左耳的標(biāo)有字母L,戴右耳的標(biāo)有字母R。
ROR指令和ROL指令都是對(duì)字元件中的二進(jìn)制位進(jìn)行移位。從上圖的編程手冊(cè)截圖可
以看到,它們有連續(xù)執(zhí)行型和脈沖執(zhí)行型,可以用于16位,也可用于32位。把一個(gè)字元件看成有16個(gè)位置,ROR指令和ROL指令可以對(duì)這16個(gè)位置進(jìn)行調(diào)整。那它又是怎么調(diào)整的呢?
我們以ROR右移指令為例,如上圖所示,當(dāng)驅(qū)動(dòng)條件X0接通后,執(zhí)行指令ROR D0 K4,把D0的16個(gè)二進(jìn)制數(shù)依次向右移動(dòng)4位,右邊為低位,也就是說,移出了低4位。 移出的低4位二進(jìn)制數(shù)循環(huán)進(jìn)入到D0的高位(左邊),后移出的1位二進(jìn)制數(shù)同時(shí)被傳送到進(jìn)位標(biāo)志位M8022,如上圖“0001”中的“0”。
每執(zhí)行1次ROR D0 K4指令D0的數(shù)據(jù)就右移4位,這是一個(gè)循環(huán)的過程。顯然,執(zhí)行4次該指令后,D0的數(shù)據(jù)又變得和原來一樣。所以,在用到移位指令時(shí),好用脈沖執(zhí)行型RORP、ROLP。
左移指令ROL和右移指令ROR大同小異,如下圖所示,執(zhí)行指令ROL D0 K4,把D0的數(shù)據(jù)一次向左移4位,左邊為高位,也就是說,移出了高4位。
移出的高4位二進(jìn)制數(shù)循環(huán)進(jìn)入到D0的低位(右邊),后移出的1位二進(jìn)制數(shù)同時(shí)被傳送到進(jìn)位標(biāo)志位M8022,如上圖“0110”中的“0”。
另外要注意的一點(diǎn)是,在ROR指令和ROL指令中,當(dāng)終址D是16位的組合位元件時(shí),n=K4;當(dāng)終址D是32位的組合位元件時(shí),n=K8,否則指令不執(zhí)行。
知道了ROR指令、ROL指令后,我腦海里立即浮現(xiàn)幾種不同的控制信號(hào)燈輪流點(diǎn)亮的梯形圖,具體怎么實(shí)現(xiàn),我就不在此班門弄斧了,自己私底下悄咪咪地嘗試,錯(cuò)了也不至于被恥笑。
ROR指令、ROL指令理解起來相對(duì)簡(jiǎn)單,接下來的這對(duì)指令就沒這么簡(jiǎn)單了。
二、帶進(jìn)位循環(huán)移位指令RCR、RCL
同樣的,RCR指令和RCL指令都是對(duì)字元件中的二進(jìn)制位進(jìn)行移位。從上圖的編程手冊(cè)截圖可以看到,它們有連續(xù)執(zhí)行型和脈沖執(zhí)行型,可以用于16位,也可用于32位。其中RCR指令和RCL指令中的R、L和上文的含義一樣,一個(gè)表示右移,一個(gè)表示左移。
所謂“帶進(jìn)位”,是指在移位的同時(shí),捎帶上進(jìn)位標(biāo)志位M8022。那又是在怎樣捎帶的呢?我們以RCR右移指令為例。
當(dāng)驅(qū)動(dòng)條件X0接通,執(zhí)行指令RCR D0 K4,類似于ROR指令,但不一樣的是,用膠水把進(jìn)位標(biāo)志位M8022和D0粘起來,此時(shí)右邊的4位,顯然不僅僅是屬于D0,還有1位是屬于M8022。
執(zhí)行指令RCR D0 K4,進(jìn)位標(biāo)志位M8022的數(shù)首先被右移,再輪到把D0的16個(gè)二進(jìn)制數(shù)依次向右移動(dòng)。移出的4位二進(jìn)制數(shù)(包括先被右移的進(jìn)位)循環(huán)進(jìn)入到D0的高位(左邊)。顯然,移動(dòng)4位后,M8022的值恰好為D0中b3的值。
同理,帶進(jìn)位左移指令RCL的執(zhí)行我們直接以下圖展示。執(zhí)行指令RCL D0 K4,同樣把進(jìn)位標(biāo)志位和D0粘連起來,此時(shí)M8022的值依然是首先被移動(dòng)的那位,它也太可憐了吧。另外,執(zhí)行完指令后,此時(shí)M8022的值為D0中b12的值。
和ROR指令和ROL指令一樣,在RCR指令、RCL指令中,當(dāng)終址D是16位的組合位元件時(shí),n=K4;當(dāng)終址D是32位的組合位元件時(shí),n=K8,否則指令不執(zhí)行,且在用到移位指令時(shí),好用脈沖執(zhí)行型RCRP、RCLP。
以上兩種指令,都是基于字元件的二進(jìn)制位移動(dòng),接下來我們繼續(xù)看位元件組合的位移動(dòng)。
三、位元件的位移指令SFTR、SFTL
根據(jù)編程手冊(cè)的截圖,SFTR指令、SFTL指令的操作數(shù)有4個(gè),其中源址S指所移動(dòng)的位元件組合的首址,終址D指被移入數(shù)值的位元件組合的首址,S、D的適用軟元件為位元件。n1指終址D的長(zhǎng)度(位數(shù)),n2指S的位數(shù),且n2
SFTR指令、SFTL指令操作數(shù)不少,看得人頭皮發(fā)麻,那它們的具體執(zhí)行到底是怎樣的呢?我們以SFTR指令為例。
當(dāng)驅(qū)動(dòng)條件X10接通,執(zhí)行指令SFTR X0 M0 K12 K4。根據(jù)定義,X的位元件組合X3~X0為源操作數(shù),共4位,目的操作數(shù)為M的位元件組合M11~M0,共12位。
指令執(zhí)行后,X3~X0的0110分別向M11~M0右移,順便把M3~M0原來的值1001給擠掉。顯然,在指令執(zhí)行完畢后,X3~X0的值保持不變,而M11~M0中的M11~M8的值被X3~X0的0110覆蓋,且M3~M0原來的值1001被舍去,變?yōu)?110。
知道了右移是怎么一回事,對(duì)左移的理解想必也是不在話下。我們直接用一張圖概括。
當(dāng)驅(qū)動(dòng)條件X10接通,執(zhí)行指令SFTL X0 M0 K12 K4。指令執(zhí)行后,X3~X0的0110分別向M3~M0左移,順便把M11~M9原來的值0101向左給擠掉。顯然,在指令執(zhí)行完畢后,X3~X0的值保持不變,M3~M0的值被X3~X0的0110覆蓋,且M11~M9原來的值0101被舍去,變?yōu)?110。
在應(yīng)用SFTR指令、SFTL指令時(shí),好使用脈沖執(zhí)行型SFTRP、SFTLP。另外,源址S、終址D可以用同種位元件,此時(shí)應(yīng)注意它們的編號(hào)不能重疊,否則會(huì)發(fā)生運(yùn)算錯(cuò)誤。
知道了位元件的位移指令是怎么回事之后,還有兩個(gè)指令正在嗷嗷待哺,等著我們?nèi)W(xué)習(xí)呢!事不宜遲,我們繼續(xù)往下看。
四、字元件移動(dòng)指令WSFR、WSFL
跟據(jù)編程手冊(cè)的截圖,WSFR指令、WSFL指令的操作數(shù)也有4個(gè),其中源址S指所移動(dòng)的字元件組合的首址,終址D指被移入數(shù)值的字元件組合的首址,S、D的適用軟元件為字元件。n1指終址D的長(zhǎng)度(元件個(gè)數(shù)),n2指S的元件個(gè)數(shù),且n2
類似于SFTR指令和SFTL指令,WSFR指令、WSFL指令的差別在于其操作軟元件為字元件,而SFTR指令和SFTL指令操作軟元件是位元件。
WSFR指令、WSFL指令的執(zhí)行和位元件的位移指令非常相似,我們以SFTR指令為例。
當(dāng)驅(qū)動(dòng)條件X10接通,執(zhí)行指令WSFR D20 D0 K12 K4。根據(jù)定義,D的字元件組合D23~D20為源操作數(shù),共4個(gè),目的操作數(shù)為D的位元件組合D11~D0,共12個(gè)。
指令執(zhí)行后,D23~D20的數(shù)據(jù)分別向D11~D0右移,順便把D3~D0原來的數(shù)據(jù)給擠掉。顯然,在指令執(zhí)行完畢后,D23~D20的值保持不變,而D11~D0中的D11~D8的值被D23~20的數(shù)據(jù)覆蓋,且D3~D0原來的數(shù)據(jù)被舍去。顯然和SFTR指令的執(zhí)行大同小異??吹竭@里,關(guān)于WSFL指令的執(zhí)行,我想不用我說,大家也已經(jīng)知道了。為了成雙成對(duì),我在這里也給出WSFL指令的執(zhí)行圖示如下。
還是同樣的道理,在應(yīng)用WSFR指令、WSFL指令時(shí),好使用脈沖執(zhí)行型WSFRP、WSFLP。另外,源址S、終址D可以用同種字元件,此時(shí)應(yīng)注意它們的編號(hào)不能重疊,否則會(huì)發(fā)生運(yùn)算錯(cuò)誤。
除了以上我所提及的移動(dòng)指令,還有移位讀寫指令SFWR、SFRD,在這里我就不再展開闡述,因?yàn)樗鼈冊(cè)趯?shí)際的梯形圖中應(yīng)用非常少,大家想知道的,可以去看相應(yīng)的課程。
那么,這次的學(xué)習(xí)分享就到這里吧!
注:本文章內(nèi)容都是基于三菱FX PLC 2N所寫
選自《三菱FX系列PLC功能指令詳解》第四章第22~26課時(shí)
(技成培訓(xùn)網(wǎng)原創(chuàng),作者:楊思慧,未經(jīng)授權(quán)不得轉(zhuǎn)載,違者必究!)

技成培訓(xùn)
微信公眾號(hào):jcpeixun
|

技成電工課堂
微信公眾號(hào):jcdgkt
|

技成PLC課堂
微信公眾號(hào):jc-plc
|