當(dāng)前位置:機(jī)電之家首頁(yè) >> PLC技術(shù)>> PLC文案資料 >> plc教程 >> 5.1.3 移位指令及應(yīng)用舉例
5.1.3 移位指令及應(yīng)用舉例

5.1.3 移位指令及應(yīng)用舉例

5.1.3 移位指令及應(yīng)用舉例

移位指令分為左、右移位和循環(huán)左、右移位及寄存器移位指令三大類。前兩類移位指令按移位數(shù)據(jù)的長(zhǎng)度又分字節(jié)型、字型、雙字型3種。

1. 左、右移位指令

左、右移位數(shù)據(jù)存儲(chǔ)單元與SM1.1(溢出)端相連,移出位被放到特殊標(biāo)志存儲(chǔ)器SM1.1位。移位數(shù)據(jù)存儲(chǔ)單元的另一端補(bǔ)0。移位指令格式見(jiàn)表5-5。

(1)左移位指令(SHL)

使能輸入有效時(shí),將輸入IN的無(wú)符號(hào)數(shù)字節(jié)、字或雙字中的各位向左移N位后(右端補(bǔ)0),將結(jié)果輸出到OUT所指定的存儲(chǔ)單元中,如果移位次數(shù)大于0,最后一次移出位保存在“溢出”存儲(chǔ)器位SM1.1。如果移位結(jié)果為0,零標(biāo)志位SM1.0置1。

(2)右移位指令

使能輸入有效時(shí),將輸入IN的無(wú)符號(hào)數(shù)字節(jié)、字或雙字中的各位向右移N位后,將結(jié)果輸出到OUT所指定的存儲(chǔ)單元中,移出位補(bǔ)0,最后一移出位保存在SM1.1。如果移位結(jié)果為0,零標(biāo)志位SM1.0置1。

(3)使ENO = 0的錯(cuò)誤條件:0006(間接尋址錯(cuò)誤),SM4.3(運(yùn)行時(shí)間)

 

 

LAD

STL

SLB  OUT,N

SRB  OUT,N

SLW   OUT,N

SRW   OUT,N

SLD  OUT,N

SRD  OUT,N

操作數(shù)及數(shù)據(jù)類型

IN:VB, IB, QB, MB, SB, SMB, LB, AC, 常量。

OUT:VB, IB, QB, MB, SB, SMB, LB, AC。

數(shù)據(jù)類型:字節(jié)

IN:VW, IW, QW, MW, SW, SMW, LW, T, C, AIW, AC, 常量。

OUT:VW, IW, QW, MW, SW, SMW, LW, T, C, AC。

數(shù)據(jù)類型:字

IN:VD, ID, QD, MD, SD, SMD, LD, AC, HC, 常量。

OUT:VD, ID, QD, MD, SD, SMD, LD, AC。

數(shù)據(jù)類型:雙字

N:VB, IB, QB, MB, SB, SMB, LB, AC, 常量;數(shù)據(jù)類型:字節(jié);數(shù)據(jù)范圍:N≤數(shù)據(jù)類型(B、W、D)對(duì)應(yīng)的位數(shù)

功能

SHL:字節(jié)、字、雙字左移N位;SHR:字節(jié)、字、雙字右移N位

 

 

 

 

 

 

 

 

 

 

 

 

 

 

表5-5 移位指令格式及功能

說(shuō)明:在STL指令中,若IN和OUT指定的存儲(chǔ)器不同,則須首先使用數(shù)據(jù)傳送指令MOV將IN中的數(shù)據(jù)送入OUT所指定的存儲(chǔ)單元。如:

MOVB IN,OUT

SLB OUT,N

2. 循環(huán)左、右移位指令

循環(huán)移位將移位數(shù)據(jù)存儲(chǔ)單元的首尾相連,同時(shí)又與溢出標(biāo)志SM1.1連接,SM1.1用來(lái)存放被移出的位。指令格式見(jiàn)表5-6。

(1)循環(huán)左移位指令(ROL)

使能輸入有效時(shí),將IN輸入無(wú)符號(hào)數(shù)(字節(jié)、字或雙字)循環(huán)左移N位后,將結(jié)果輸出到OUT所指定的存儲(chǔ)單元中,移出的最后一位的數(shù)值送溢出標(biāo)志位SM1.1。當(dāng)需要移位的數(shù)值是零時(shí),零標(biāo)志位SM1.0為1。

(2)循環(huán)右移位指令(ROR)

使能輸入有效時(shí),將IN輸入無(wú)符號(hào)數(shù)(字節(jié)、字或雙字)循環(huán)右移N位后,將結(jié)果輸出到OUT所指定的存儲(chǔ)單元中,移出的最后一位的數(shù)值送溢出標(biāo)志位SM1.1。當(dāng)需要移位的數(shù)值是零時(shí),零標(biāo)志位SM1.0為1。

(3)移位次數(shù)N≥數(shù)據(jù)類型(B、W、D)時(shí)的移位位數(shù)的處理

如果操作數(shù)是字節(jié),當(dāng)移位次數(shù)N≥8時(shí),則在執(zhí)行循環(huán)移位前,先對(duì)N進(jìn)行模8操作(N除以8后取余數(shù)),其結(jié)果0-7為實(shí)際移動(dòng)位數(shù)。

如果操作數(shù)是字,當(dāng)移位次數(shù)N≥16時(shí),則在執(zhí)行循環(huán)移位前,先對(duì)N進(jìn)行模16操作(N除以16后取余數(shù)),其結(jié)果0-15為實(shí)際移動(dòng)位數(shù)。

如果操作數(shù)是雙字,當(dāng)移位次數(shù)N≥32時(shí),則在執(zhí)行循環(huán)移位前,先對(duì)N進(jìn)行模32操作(N除以32后取余數(shù)),其結(jié)果0-31為實(shí)際移動(dòng)位數(shù)。

(4)使ENO = 0的錯(cuò)誤條件:0006(間接尋址錯(cuò)誤),SM4.3(運(yùn)行時(shí)間)。

表5-6 循環(huán)左、右移位指令格式及功能

 

LAD

STL

RLB  OUT,N

RRB  OUT,N

RLW   OUT,N

RRW   OUT,N

RLD  OUT,N

RRD  OUT,N

操作數(shù)及數(shù)據(jù)類型

IN:VB, IB, QB, MB, SB, SMB, LB, AC, 常量。

OUT:VB, IB, QB, MB, SB, SMB, LB, AC。

數(shù)據(jù)類型:字節(jié)

IN:VW, IW, QW, MW, SW, SMW, LW, T, C, AIW, AC, 常量。

OUT:VW, IW, QW, MW, SW, SMW, LW, T, C, AC。

數(shù)據(jù)類型:字

IN:VD, ID, QD, MD, SD, SMD, LD, AC, HC, 常量。

OUT:VD, ID, QD, MD, SD, SMD, LD, AC。

數(shù)據(jù)類型:雙字

N:VB, IB, QB, MB, SB, SMB, LB, AC, 常量;數(shù)據(jù)類型:字節(jié)。

功能

ROL:字節(jié)、字、雙字循環(huán)左移N位;ROR:字節(jié)、字、雙字循環(huán)右移N位。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

說(shuō)明:在STL指令中,若IN和OUT指定的存儲(chǔ)器不同,則須首先使用數(shù)據(jù)傳送指令MOV將IN中的數(shù)據(jù)送入OUT所指定的存儲(chǔ)單元。如:MOVB   IN,OUT

SLB    OUT,N

 

【例5-4】程序應(yīng)用舉例,將AC0中的字循環(huán)右移2位,將VW200中的字左移3位。程序及運(yùn)行結(jié)果如圖5-4所示。

 

圖5-4  例5-4題圖

【例5-5】用I0.0控制接在Q0.0~Q0.7上的8個(gè)彩燈循環(huán)移位,從左到右以0.5s的速度依次點(diǎn)亮,保持任意時(shí)刻只有一個(gè)指示燈亮,到達(dá)最右端后,再?gòu)淖蟮接乙来吸c(diǎn)亮。

分析:8個(gè)彩燈循環(huán)移位控制,可以用字節(jié)的循環(huán)移位指令。根據(jù)控制要求,首先應(yīng)置彩燈的初始狀態(tài)為QB0=1,即左邊第一盞燈亮;接著燈從左到右以0.5s的速度依次點(diǎn)亮,即要求字節(jié)QB0中的“1”用循環(huán)左移位指令每0.5s移動(dòng)一位,因此須在ROL-B指令的EN端接一個(gè)0.5s的移位脈沖(可用定時(shí)器指令實(shí)現(xiàn))。梯形圖程序和語(yǔ)句表程序如圖5-5所示。

圖5-5   例5-5題圖

LD     SM0.1      //首次掃描時(shí)

MOVB   1, QB0    //置8位彩燈初態(tài)

 

LD     I0.0        //T37產(chǎn)生周期為

AN     T37         0.5s的移位脈沖  

TON    T37, +5 

 

LD     T37       //每來(lái)一個(gè)脈沖

RLB    QB0, 1    彩燈循環(huán)左移1位                

3. 移位寄存器指令(SHRB)

移位寄存器指令是可以指定移位寄存器的長(zhǎng)度和移位方向的移位指令。其指令格式如圖5-6所示。                 

說(shuō)明:(1)移位寄存器指令SHRB將DATA數(shù)值移入移位寄存器。梯形圖中,EN為使能輸入端,連接移位脈沖信號(hào),每次使能有效時(shí),整個(gè)移位寄存器移動(dòng)1位。DATA為數(shù)據(jù)輸入端,連接移入移位寄存器的二進(jìn)制數(shù)值,執(zhí)行指令時(shí)將該位的值移入寄存器。S_BIT指定移位寄存器的最低位。N指定移位寄存器的長(zhǎng)度和移位方向,移位寄存器的最大長(zhǎng)度為64位,N為正值表示左移位,輸入數(shù)據(jù)(DATA)移入移位寄存器的最低位(S_BIT),并移出移位寄存器的最高位。移出的數(shù)據(jù)被放置在溢出內(nèi)存位(SM1.1)中。N為負(fù)值表示右移位,輸入數(shù)據(jù)移入移位寄存器的最高位中,并移出最低位(S_BIT)。移出的數(shù)據(jù)被放置在溢出內(nèi)存位(SM1.1)中。

(2)DATA和S-BIT的操作數(shù)為I, Q, M, SM, T, C, V, S, L 。數(shù)據(jù)類型為:BOOL變量。N的操作數(shù)為VB, IB, QB, MB, SB, SMB, LB, AC, 常量。數(shù)據(jù)類型為:字節(jié)。

(3)使ENO = 0的錯(cuò)誤條件:0006(間接地址),0091(操作數(shù)超出范圍),0092(計(jì)數(shù)區(qū)錯(cuò)誤)。

(4)移位指令影響特殊內(nèi)部標(biāo)志位:SM1.1(為移出的位值設(shè)置溢出位)。

【例5-6】移位寄存器應(yīng)用舉例。

程序及運(yùn)行結(jié)果如圖5-7所示。

 溢出位(SM1.1)

S-BIT

I0.1

S-BIT

I0.1

S-BIT

I0.1

溢出位(SM1.1)

溢出位(SM1.1)

溢出位

第一次移位

第一次移位后

第二次移位后

第一次移位前

時(shí)序圖

MB10

 MB10

 MB10

 I0.0

 I0.1

 

圖5-7  例5-6梯形圖、語(yǔ)句表、時(shí)序圖及運(yùn)行結(jié)果

 

【例5-7】用PLC構(gòu)成噴泉的控制。用燈L1~L12分別代表噴泉的12個(gè)噴水注。

(1)控制要求按下起動(dòng)按鈕后,隔燈閃爍,L1亮0.5秒后滅,接著L2亮0.5秒后滅,接著L3亮0.5秒后滅,接著L4亮0.5秒后滅,接著L5、L9亮0.5秒后滅,接著L6、L10亮0.5秒后滅,接著L7、L11亮0.5秒后滅,接著L8、L12亮0.5秒后滅,L1亮0.5秒后滅,如此循環(huán)下去,直至按下停止按鈕。如圖5-8所示。

 圖5-8 噴泉控制示意圖

(2)I/O分配

輸入                        輸出

(常開(kāi))起動(dòng)按鈕:I0.0             L1:Q0.0      L5、L9:Q0.4

(常閉)停止按鈕:I0.1             L2:Q0.1      L6、L10:Q0.5

L3:Q0.2      L7、L11:Q0.6

L4:Q0.3      L8、L12:Q0.7

(3)噴泉控制梯形圖

梯形圖程序如圖5-10所示。

分析:應(yīng)用移位寄存器控制,根據(jù)噴泉模擬控制的8位輸出(Q0.0~Q0.7),須指定一個(gè)8位的移位寄存器(M10.1~M11.0),移位寄存器的S-BIT位為M10.1,并且移位寄存器的每一位對(duì)應(yīng)一個(gè)輸出。如圖5-9所示。

圖5-9 移位寄存器的位與輸出對(duì)應(yīng)關(guān)系圖

在移位寄存器指令中,EN連接移位脈沖,每來(lái)一個(gè)脈沖的上升沿,移位寄存器移動(dòng)一位。移位寄存器應(yīng)0.5s移一位,因此需要設(shè)計(jì)一個(gè)0.5s產(chǎn)生一個(gè)脈沖的脈沖發(fā)生器(由T38構(gòu)成)。

M10.0為數(shù)據(jù)輸入端DATA ,根據(jù)控制要求,每次只有一個(gè)輸出,因此只需要在第一個(gè)移位脈沖到來(lái)時(shí)由M10.0送入移位寄存器S-BIT位(M10.1)一個(gè)“1”,第二個(gè)脈沖至第八

T38構(gòu)成0.5s產(chǎn)生一個(gè)機(jī)器掃描周期脈沖的脈沖發(fā)生器

 

8位的移位寄存器

 

移位寄存器的每一位

對(duì)應(yīng)一個(gè)輸出

 

 圖5-10   例5-7噴泉模擬控制梯形圖

個(gè)脈沖到來(lái)時(shí)由M10.0送入M10.1的值均為“0”,這在程序中由定時(shí)器T37延時(shí)0.5s導(dǎo)通一個(gè)掃描周期實(shí)現(xiàn),第八個(gè)脈沖到來(lái)時(shí)M11.0置位為1,同時(shí)通過(guò)與T37并聯(lián)的M11.0常開(kāi)觸點(diǎn)使M10.0置位為1,在第九個(gè)脈沖到來(lái)時(shí)由M10.0送入M10.1的值又為1,如此循環(huán)下去,直至按下停止按鈕。按下常閉停止按鈕(I0.1),其對(duì)應(yīng)的常閉觸點(diǎn)接通,觸發(fā)復(fù)位指令,使M10.1~M11.0的8位全部復(fù)位。

 

作者:未知 點(diǎn)擊:9603次 [打印] [關(guān)閉] [返回頂部]
本文標(biāo)簽:5.1.3 移位指令及應(yīng)用舉例
* 由于無(wú)法獲得聯(lián)系方式等原因,本網(wǎng)使用的文字及圖片的作品報(bào)酬未能及時(shí)支付,在此深表歉意,請(qǐng)《5.1.3 移位指令及應(yīng)用舉例》相關(guān)權(quán)利人與機(jī)電之家網(wǎng)取得聯(lián)系。
電子樣本

SN系列樣冊(cè)
:鞏經(jīng)理
:13915946763
:南京塞姆泵業(yè)有限公司
個(gè)人求購(gòu)

吳小姐 【求購(gòu)】  粉碎機(jī)  2025-12-5
 【求購(gòu)】  冶煉用的重...  2025-12-5
柳女士 【求購(gòu)】  斷路器  2025-12-5
林志揚(yáng) 【求購(gòu)】  無(wú)石棉墊片  2025-12-4
張一帆 【求購(gòu)】  首件測(cè)試儀  2025-12-4
王飛 【求購(gòu)】  gf流量計(jì)  2025-12-4
 【求購(gòu)】  全自動(dòng)印刷...  2025-12-4
 【求購(gòu)】  LED屏  2025-12-3
VIP公司推薦