江蘇西門子S7-200SMARTPLC代理批發(fā)銷售
西門子S7-200 PLC移位寄存器位(SHRB)指令
(1)指令的名稱:移位寄存器位指令。
(2)指令的形式:見表6-39。
表6-39 移位寄存器位指令的形式

(3)指令的功能:如圖6-65所示。

圖6-65 移位寄存器位指令功能
移位寄存器位( SHRB)指令將DATA數(shù)值移入移位寄存器。S_BIT移位寄存器的低位。N移位寄存器的長度和移位方向(當(dāng)N是正的,從低位移到高位,當(dāng)N是負(fù)數(shù),就從高位移到低位)。SHRB指令移出的每個位被放置在溢出內(nèi)存位(SM1.1)中。該指令由低位(S_BIT)和長度(N)的位數(shù)定義。
注:已知低位,計算高位的方法:MSB.b=[(S_BIT字節(jié))+([N]-1+(S_BIT位))/8]·[被8除的余數(shù)]

例如:如果S_BIT的字節(jié)和位分別是V33和4,N是14,以下計算顯示MSB.b是V35.1。
MSB.b= V33+([14]-1+4)/8
= V33+17/8
= V33+2,余數(shù)為1
= V35.1
(4)指令應(yīng)用如下。
例6-19分析圖6-66所示的程序當(dāng)I0.0接通時運(yùn)行的結(jié)果。
指令的名稱:ROR_B字節(jié)向右旋轉(zhuǎn)指令、ROR_W字向右旋轉(zhuǎn)指令、ROR_DW雙字向右旋轉(zhuǎn)指令。
向右旋轉(zhuǎn)指令的功能和向左旋轉(zhuǎn)指令的功能基本上是*的,只是旋轉(zhuǎn)的方向不同,故不再贅述,其指令形式如圖6-63所示。

圖6-63 向右旋轉(zhuǎn)指令形式
例6-18有16個彩燈,接在PLC的Q0.0~Q1.7,現(xiàn)要求彩燈開始從Q0.0至Q1.7每隔1秒依次點(diǎn)亮一個,當(dāng)亮至Q1.7時,又從Q1.7至Q0.0依次點(diǎn)亮,循環(huán)進(jìn)行。編寫控制程序。
分析:從Q0.0亮至Q1.7時,用字向左旋轉(zhuǎn)指令;從Q1.7亮至Q0.0時,用字向右旋轉(zhuǎn)指令。
(1)指令的名稱:ROL_B字節(jié)向左旋轉(zhuǎn)指令、ROL_W字向左旋轉(zhuǎn)指令、ROL_DW雙字向左旋轉(zhuǎn)指令。
(2)指令的形式和操作數(shù):
(3)指令功能如下。
①這些指令將輸入數(shù)值(IN)向左旋轉(zhuǎn)N位,并將結(jié)果載入輸出字節(jié)(OUT)。
②旋轉(zhuǎn)具有循環(huán)性。如果移位數(shù)目(N)大于或等于8(字節(jié)旋轉(zhuǎn))/16(字旋轉(zhuǎn))/32(雙字旋轉(zhuǎn)),執(zhí)行旋轉(zhuǎn)之前先對位數(shù)(N)進(jìn)行模數(shù)8(16/32)操作,從而使位數(shù)在0~7(0~15或0~31)。如果移動位數(shù)為0,則不執(zhí)行旋轉(zhuǎn)操作。
③如果執(zhí)行旋轉(zhuǎn)操作,旋轉(zhuǎn)的后一位數(shù)值被復(fù)制至溢出位( SM1.1)。如果移動位數(shù)不是8的整倍數(shù),旋轉(zhuǎn)出的后一位數(shù)值被復(fù)制至溢出內(nèi)存位( SM1.1)。
④如果旋轉(zhuǎn)數(shù)值為0,則0標(biāo)志位( SM1.0)置1。
⑤向右和向左旋轉(zhuǎn)字節(jié)操作不帶符號。
一般是通過一個子程序初始化PWM。在主程序中使用開機(jī)脈沖SM0.1調(diào)用初始化PWM的子程序,并使脈沖的輸出點(diǎn)復(fù)位為0。初始化PWM的步驟如下。
①設(shè)置SMB67的值。選擇時基(μs/ms)、PWM操作、設(shè)置是否更新脈沖的寬度和脈沖的周期。如SMB67=16# D3或16# DB。
②把需要的脈沖周期時間載入SMW68中。
③把需要的脈沖寬度時間載入SMW70中。
④執(zhí)行PLS指令,激活PWM脈沖發(fā)生器。
⑤退出初始化子程序。
PWM功能提供連續(xù)的脈沖輸出,在脈沖輸出的同時,可以改變脈沖的寬度或者是脈沖的周期,脈沖的周期或?qū)挾鹊臅r基可以為μs(微秒)或者ms(毫秒)。
脈沖周期的范圍為10~65535μs或者2~65 535ms。脈沖寬度的范圍為0~65535μs或者0~65535ms。如果“脈沖寬度時間≥脈沖周期”,工作循環(huán)為*,輸出*為“1”;如果“脈沖的寬度=0”,工作循環(huán)為0%,輸出*為“0”:如果脈沖的周期小于2個時間單位,脈沖的周期自動默認(rèn)取2個單位時間。

一般是利用一個子程序來設(shè)置多段PTO的參數(shù),然后利用開機(jī)脈沖來調(diào)用子程序。具體步驟如下。
①使SMB67=16# A0(選擇微秒遞增)或16# A8(選擇毫秒遞增)。啟用PTO/PWM功能、選擇PTO操作、選擇多段操作以及選擇時基(微秒或者毫秒)。
②把輪廓表開始字節(jié)地址載入SMW168中。
③該輪廓表的總段數(shù)載入輪廓表*個V內(nèi)存字節(jié),把各段特征參數(shù)分別載入輪廓表中。
④如果希望在PTO輪廓中完成后立即執(zhí)行相關(guān)功能,使用ATCH指令將脈沖串完成事件(中斷號19)附加在中斷程序中,使用指令ENI聲明允許全局中斷。
⑤執(zhí)行PLS指令,使S7-200激活PTO/PWM脈沖發(fā)生脈沖。
⑥退出子程序。
控制要求:按下啟動,鉆頭快速前進(jìn)100mm,碰到工件,轉(zhuǎn)為慢速工進(jìn),鉆孔的深度是150mm,鉆完后,快速返回起點(diǎn),如需要再次啟動,再按下啟動按鈕。
假設(shè)動力鉆頭的移動是步進(jìn)電動機(jī)驅(qū)動,電動機(jī)轉(zhuǎn)動一周需要200個脈沖,絲杠的螺距是10mm,快進(jìn)是2000個脈沖,工進(jìn)是3000個脈沖,快退是5000個脈沖。
啟動I0.0,快速時,脈沖的頻率為500,慢速時是200??刂瞥绦蛉鐖D6-51所
通過上一例子可以總結(jié)單段PTO程序編程方法步驟如下。
①設(shè)置控制字節(jié)(啟用PTO/PWM功能、選擇PTO操作、選擇時基、設(shè)置更新脈沖周期數(shù)值),例如使SMB67=16# 85(用于微秒)或者16# 8D(用于毫秒)中載入以下兩個數(shù)值。
②載入新脈沖周期時間到SMW68中。
③載入新的脈沖數(shù)到SMD72中。
④執(zhí)行PLS指令使S7-200激活PTO脈沖發(fā)生器編程。S7-200完成所有進(jìn)行中的PTO的脈沖數(shù)后,開始啟用新的脈沖數(shù)和新的脈沖周期發(fā)脈沖。
⑤退出中斷程序或子程序。

江蘇西門子S7-200SMARTPLC代理批發(fā)銷售