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

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

技成電工課堂
微信公眾號:jcdgkt
|

技成PLC課堂
微信公眾號:jc-plc
|