1.循環(huán)移位指令
右、左循環(huán)移位指令(D)ROR(P)和(D)ROL(P)編號(hào)分別為FNC30和FNC31。執(zhí)行這兩條指令時(shí),各位數(shù)據(jù)向右(或向左)循環(huán)移動(dòng)n位,后一次移出來(lái)的那一位同時(shí)存入進(jìn)位標(biāo)志M8022中,如圖1所示。
圖1 右、左循環(huán)移位指令的使用
2.帶進(jìn)位的循環(huán)移位指令
帶進(jìn)位的循環(huán)右、左移位指令(D) RCR(P)和(D) RCL(P)編號(hào)分別為FNC32和FNC33。執(zhí)行這兩條指令時(shí),各位數(shù)據(jù)連同進(jìn)位(M8022)向右(或向左)循環(huán)移動(dòng)n位,如圖2所示。
圖2 帶進(jìn)位右、左循環(huán)移位指令的使用
使用ROR/ROL/RCR/RCL指令時(shí)應(yīng)該注意:
1)目標(biāo)操作數(shù)可取KnY,KnM,KnS,T,C,D,V和Z,目標(biāo)元件中位元件的組合只有在K4(16位)和K8(32位指令)時(shí)有效。
2)16位指令占5個(gè)程序步,32位指令占9個(gè)程序步。
3)用連續(xù)指令執(zhí)行時(shí),循環(huán)移位操作每個(gè)周期執(zhí)行一次。
3.位右移和位左移指令
位右、左移指令SFTR(P)和SFTL(P)的編號(hào)分別為FNC34和FNC35。它們使位元件中的狀態(tài)成組地向右(或向左)移動(dòng)。n1位元件的長(zhǎng)度,n2移位位數(shù),n1和n2的關(guān)系及范圍因機(jī)型不同而有差異,一般為n2≤n1≤1024。位右移指令使用如圖3 所示。
圖3 位右移指令的使用
使用位右移和位左移指令時(shí)應(yīng)注意:
1)源操作數(shù)可取X、Y、M、S,目標(biāo)操作數(shù)可取Y、M、S。
2)只有16位操作,占9個(gè)程序步。
4.字右移和字左移指令
字右移和字左移指令WSFR(P)和WSFL(P)指令編號(hào)分別為FNC36和FNC37。字右移和字左移指令以字為單位,其工作的過(guò)程與位移位相似,是將n1個(gè)字右移或左移n2個(gè)字。
使用字右移和字左移指令時(shí)應(yīng)注意:
1)源操作數(shù)可取KnX、KnY、KnM、KnS、T、C和D,目標(biāo)操作數(shù)可取KnY、KnM、KnS、T、C和D。
2)字移位指令只有16位操作,占用9個(gè)程序步.
3)n1和n2的關(guān)系為n2≤n1≤512。
5.先入先出寫入和讀出指令
先入先出寫入指令和先入先出寫入讀出指令SFWR(P)和SFRD(P)的編號(hào)分別為FNC38和FNC39。
先入先出寫入指令SFWR的使用如圖4所示, 當(dāng)X0由OFF變?yōu)镺N時(shí),SFWR執(zhí)行, D0中的數(shù)據(jù)寫入D2,而D1變成指針,其值為1(D1必須先清0);當(dāng)X0再次由OFF變?yōu)镺N時(shí),D0中的數(shù)據(jù)寫入D3,D1變?yōu)?,依次類推,D0中的數(shù)據(jù)依次寫入數(shù)據(jù)寄存器。D0中的數(shù)據(jù)從右邊的D2順序存入,源數(shù)據(jù)寫入的次數(shù)放在D1中,當(dāng)D1中的數(shù)達(dá)到n-1后不再執(zhí)行上述操作,同時(shí)進(jìn)位標(biāo)志M8022置1。
圖4 先入先出寫入指令的使用
先入先出讀出指令SFRD,當(dāng)X0由OFF變?yōu)镺N時(shí),D2中的數(shù)據(jù)送到D20,同時(shí)指針D1的值減1,D3~D9的數(shù)據(jù)向右移一個(gè)字,數(shù)據(jù)總是從D2讀出,指針D1為0時(shí),不再執(zhí)行上述操作且M8020置1。
圖5 先入先出讀出指令的使用
使用SFWR和SFRD指令時(shí)應(yīng)注意:
1)目標(biāo)操作數(shù)可取KnY、KnM、KnS、T、C和D,源操數(shù)可取所有的數(shù)據(jù)類型。
2)指令只有16位運(yùn)算,占7個(gè)程序步。
上一條:三菱QC100B,三菱PLC輸入輸出