循環(huán)及移位指令_第1頁
循環(huán)及移位指令_第2頁
循環(huán)及移位指令_第3頁
循環(huán)及移位指令_第4頁
循環(huán)及移位指令_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

項(xiàng)目:彩燈的循環(huán)控制現(xiàn)有16個(gè)彩燈,擺放成圓形,按下啟動(dòng)按鈕,彩燈以順時(shí)針方向間隔1秒輪流點(diǎn)亮,循環(huán)三次后彩燈轉(zhuǎn)換成逆時(shí)針方向間隔2秒輪流點(diǎn)亮,循環(huán)三次后自動(dòng)停止工作。按下停止按鈕,立即停止工作。如何完成控制要求?(1)利用基本指令完成編程。(2)利用步進(jìn)指令完成編程。(3)利用移位指令完成編程。利用基本指令完成編程,程序如下:利用步進(jìn)指令完成編程任務(wù),參考程序如下:利用移位指令完成編程任務(wù),參考程序如下:1.助記符、指令代碼循環(huán)右移:ROR,DROR,RORP,DRORP。(16/32)循環(huán)左移:ROL,DROL,ROLP,DROLP。(16/32)2.源、目標(biāo)操作數(shù):D:KnY,KnM,KnS,T,C,D,V,ZN:K,H<=[D.]的位數(shù)。一、循環(huán)移位:3.指令格式及功能(1)循環(huán)右移說明(一)(1)循環(huán)右移說明(二)執(zhí)行條件成立,[D.]循環(huán)右移n位。[D.]高位n位右移,[D.]中原高位n位同時(shí)右移,以此類推,[D.]中低位n位移至[D.]中的高位n位。每次執(zhí)行循環(huán)右移n位的最后一位影響標(biāo)志位M8022(進(jìn)位標(biāo)志)。(3)執(zhí)行圖5-45,當(dāng)X0閉合,D10的值為245。圖5-46給出運(yùn)行的情況,圖(a)中,當(dāng)X1閉合1次,執(zhí)行ROR指令1次,D10右移3位。此時(shí)D10=-24546。同時(shí)進(jìn)位標(biāo)志M8022為“1”。當(dāng)X1再閉合1次,再執(zhí)行ROR指令1次,D10右移3位。此時(shí)D10=-11261。同時(shí)進(jìn)位標(biāo)志M8022為“1”。圖(b)中,當(dāng)X2閉合,執(zhí)行ROL指令1次,D10的各位左移2位,此時(shí)D10=980。同時(shí)進(jìn)位標(biāo)志M8022為“0”。當(dāng)X2再閉合,再執(zhí)行ROL指令1次,D10的再左移2位,此時(shí)D10=3920。同時(shí)進(jìn)位標(biāo)志M8022為“0”。圖5-45循環(huán)右移和循環(huán)左移

圖5-46圖5-45執(zhí)行情況4.舉例例1,分析程序,填寫D0的數(shù)值。例2,分析X1合上,X2重復(fù)合上三次后,D11的值為多少?假如ROR指令改成ROL指令?D11初始值變化?K3改變?X1合上,D11的值___________________________;X2第一次合上,D11的值___________________________;X2第二次合上,D11的值___________________________;X2第三次合上,D11的值___________________________;例3,現(xiàn)有16個(gè)彩燈,擺放成圓形,按下啟動(dòng)按鈕,彩燈以順時(shí)針方向間隔0.5秒輪流點(diǎn)亮,循環(huán)兩次后彩燈轉(zhuǎn)換成逆時(shí)針方向間隔0.5秒輪流點(diǎn)亮,循環(huán)兩次后自動(dòng)停止工作。按下停止按鈕,立即停止工作。二、字移位指令1、助記符,指令代碼

字右移:WSFR,WSFRP,F(xiàn)NC36(16)

字左移:WSFL,WSFLP,F(xiàn)NC37(16)2、源、目標(biāo)操作數(shù):[S.]:KnX,KnY,KnM,KnS,T,C,D;[D.]:KnY,KnM,KnS,T,C,D;n1、n2:K,H,n2≤n1≤512。3、操作格式及功能(1)操作格式:

操作功能:WSFR:在[S.]中的n2個(gè)字元件右移至[D.]開始的

n1個(gè)字元件中,高字移進(jìn),低字溢出。WSFL:在[S.]中的n2個(gè)字元件左移至[D.]開始的

n1個(gè)字元件中,低字移進(jìn),高字溢出。(3)WSFR說明:當(dāng)X0合上,D10~D25單元的變化,如圖所示。(4)WSFL說明:當(dāng)X0合上,D26~D41字單元的變化,如圖所示。4、舉例,分析程序,說明Y0的工作情況。

圖5-48帶進(jìn)位的循環(huán)

3.說明(1)每次執(zhí)行RCR指令,目標(biāo)元件(D)中的位帶進(jìn)位循環(huán)右移n位,最后被移出的位放入到進(jìn)位標(biāo)志M8022中。在運(yùn)行下一次RCR指令時(shí),M8022中的位首先進(jìn)入目標(biāo)元件中。帶進(jìn)位循環(huán)右移和循環(huán)左移(RCR,RCL)(2)每執(zhí)行一次RCL指令,目標(biāo)元件(D)中的位帶進(jìn)位循環(huán)左移n位,最后被移出的位放入進(jìn)位標(biāo)志M8022中。在運(yùn)行下一次RCR指令時(shí),M8022中的位首先進(jìn)入目標(biāo)元件中。(3)圖5-48執(zhí)行情況如圖5-49所示。圖(a)為帶進(jìn)位循環(huán)右移4位,執(zhí)行情況如下:

X0接通,D1=0000000011111111=255,M8022=0X1接通第1次,D1=1110000000001111=-8177,M8022=1X1接通第2次,D1=1111111000000000=-512,M8022=1X1接通第3次,D1=0001111111100000=8160,M8022=0圖(b)為帶進(jìn)位循環(huán)左移4位,執(zhí)行情況如?。?/p>

X0接通,D1=0000000011111111=255,M8022=0X2接通第1次,D1=0000111111110000=4080,M8022=0X2接通第2次,D1=1111111100000000=-256,M8022=0X2接通第3次,D1=1111000000000111=-4089,M8022=1

圖5-49圖5-48執(zhí)行情況5.5.3位右移和位左移(SFTR,SFTL)

1.位右移和位左移指令的助記符和功能,見表5-22所示:

圖5-50SFTR和SFTL指令3.說明

(1)SFTR命令有4個(gè)操作數(shù),如圖5-50所示。當(dāng)X10接通,以源(S.)X0開始的n2(K2)位,向右移入以目標(biāo)(D.)M0開始的n1(K8)位元件中去。每當(dāng)X10從OFF→ON,移位一次。移位后,如果源為1,則目標(biāo)置位,而源復(fù)位。

(2)SFTL命令也有4個(gè)操作數(shù),其動(dòng)作原理與(1)相同。

(3)圖5-51解釋了圖5-50的動(dòng)作情況。對(duì)圖(a),如果X0=X1=1,則當(dāng)X10閉合一次,X1、X0的狀態(tài)移入M7、M6,此時(shí)M7、M6均為1。當(dāng)X10再閉合一次,M7、M6的狀態(tài)移入M5、M4,此時(shí)M5、M4為1,而M7、M6復(fù)位為零,一直到X10第五次閉合,其狀態(tài)溢出。圖(b)的情況與圖(a)相似,不同的是圖(b)是向左移。

(a)往右移的意義(b)往左移的意義圖5-51SFTR和SFTL的用法

(4)利用SFTR、SFTL命令,可以實(shí)現(xiàn)步進(jìn)順控。步進(jìn)順控時(shí)一般都是每次移動(dòng)一個(gè)狀態(tài),如例5-8所示。

3.指令格式及功能:SFTRPSFTLP(1)位右移說明:

當(dāng)操作條件滿足時(shí),位右移指令在n1個(gè)指定目標(biāo)位元件中,右移n2個(gè)指定的源元件位元件狀態(tài)。即n2位[S.]狀態(tài)右移到n1位[D.],從n1位目標(biāo)元件的高位進(jìn)去,而其低位溢出。上述的示例程序操作。位右移的目標(biāo)元件為:M10~M25,源元件為:X0~X1,當(dāng)X1由“0”變“1”時(shí),X1、X0的狀態(tài)傳到M25、M24,原來的M25、M24移到M23、M22…以此類推,M11、M10丟失。由圖示的方法說明狀態(tài)的變化。由于連續(xù)型操作,每個(gè)掃描周期都進(jìn)行操作,合上一瞬間,就把原操作數(shù)狀態(tài)都移位了。建議使用SFTRP,SFTLP,便于控制。

總結(jié)移位控制指令包含:移位:SFTR,SFTL;循環(huán)移位:ROR,ROL;字移位:WSFR,WSFL;先入先出(FIFO):SFWR,SFWL。移位指令為非循環(huán)移位,數(shù)據(jù)移出部分丟失,數(shù)據(jù)移入部分從其它數(shù)據(jù)獲得。循環(huán)移位:數(shù)據(jù)在字或雙字內(nèi)的移位,是一種環(huán)形的移動(dòng)。字移位:字?jǐn)?shù)據(jù)在存儲(chǔ)空間中的位置調(diào)整等功能。先入先出FIFO:數(shù)據(jù)管理。例1,當(dāng)X0合上,分析Y0~Y17工作起情況;當(dāng)X0斷開?例2,分析Y0~Y17的工作情況

例5-8

某生產(chǎn)過程如下:按起動(dòng)按鈕,電機(jī)M1啟動(dòng)工作,延時(shí)3s,M1停止,同時(shí)電機(jī)M2起動(dòng)運(yùn)行。前進(jìn)碰行程開關(guān)SQ1,M2停止,M3起動(dòng)。前進(jìn)碰行程開關(guān)SQ2,M3停止,M4起動(dòng)。M4運(yùn)行3s,M1、M2、M3、M4同時(shí)工作,又延時(shí)3s后全部停止。試用SFTL指令編程。圖5-52為I/O分配圖,圖中X0為起動(dòng)按鈕,X4為停止按鈕。圖5-53為其梯形圖。圖5-52例5-8的I/O圖

圖5-53例5-8梯形圖

圖5-53中使用了SFTL指令。以M0元件1位向左移入以M10起始的6位元件中去。SFTL的控制觸點(diǎn)由“與、或”電路控制:而首次控制M0,必須在M10,M11,…M15得電時(shí)閉合,故此在程序的第0行用了一系列的常閉串聯(lián)觸點(diǎn)去控制M0。第43行至58行,為驅(qū)動(dòng)電路。當(dāng)M10得電,驅(qū)動(dòng)Y0及T0。T0延時(shí)時(shí)間到,產(chǎn)生移位,M11得電,而M10復(fù)位失電。M11得電,驅(qū)動(dòng)Y1,機(jī)器運(yùn)行到觸壓行程開關(guān)SQ1,X1閉合,產(chǎn)生新的移位,M12得電,而M11失電。M12得電,驅(qū)動(dòng)Y2,機(jī)器運(yùn)行到觸壓行程開關(guān)SQ2,X2閉合,產(chǎn)生新的移位。M13得電,而M12失電。M13得電,驅(qū)動(dòng)Y3及定時(shí)器T1,延時(shí)3s時(shí)間到,T1觸點(diǎn)閉合,產(chǎn)生新的移位,M14得電,而M13失電。M14得電,驅(qū)動(dòng)Y0、Y1、Y2、Y3,驅(qū)動(dòng)T0。當(dāng)T0延時(shí)3s時(shí)間到,產(chǎn)生新的移位,M15得電,而M14失電。M15得電驅(qū)動(dòng)ZRST指令使從M10~M15均失電,程序停止。而再按X0,程序又會(huì)進(jìn)行另一循環(huán)。

例5-9用SFTL指令編寫廣告燈光閃爍電路,如例4-6所示。要求有連續(xù),單周,單步控制。

I/O圖分配如圖5-54所示。圖中X0為啟動(dòng),X1為停止,X2為單周/連續(xù)切換,X3為單步/連續(xù)切換。圖5-55為梯形圖。圖5-54廣告燈光I/O分配圖中第33行中X3作為單步/連續(xù)的控制。當(dāng)X3關(guān)合時(shí),程序?yàn)檫B續(xù)動(dòng)作。S20的狀態(tài)從左向右移位。當(dāng)X3斷開,每次移位,必須按起動(dòng)按鈕X0一次。故為單步。圖中第10行中X2為單周/連續(xù)的控制。當(dāng)X2閉合時(shí),為連續(xù)動(dòng)作。當(dāng)X2斷開,每次運(yùn)行到S30時(shí),由于X2斷開,不能自動(dòng)地使S20~S30復(fù)位,故為單周。圖5-555.5.4字右移、字左移(WSFR,WSFL)1.字左移和字左移命令的助記符和功能如表5-23所示:3.說明

(1)如圖5-56所示,WSFR命令的意義是:當(dāng)X1閉合一次,將以源(S.)D0為首址的4位(n2=K4)元件的數(shù)據(jù)向右移到目標(biāo)(D.)以D10為首址的16位(n1=K16)元件中去。

WSFL命令的意義是當(dāng)X3閉合一次,將以源(S.)D0為首址的4位(n2=K4)元件的數(shù)據(jù)向左移入到目標(biāo)(D.)以D10為首址的16位(n1=K16)元件中去。圖5-57字右移和字左移命令

(2)執(zhí)行圖5-57,為X0閉合,D3、D2、D1、D0的值分別為40、30、20、10。當(dāng)X1閉合一次,執(zhí)行WSFR命令,D25、D24、D23、D22分別為40、30、20、10;X1再閉合一次,則D21、D20、D19、D18分別為40、30、20、10,而D25~D22保持原移入值不變。當(dāng)X1再閉合一次,則D17、D16、D15、D14分別為40、30、20、10,而D25~D18保持原移入值不變,當(dāng)X1再閉合一次,D13、D12、D11、D10分別為40、30、20、10。而D25~D14保持原移入值不變。(3)WSFL執(zhí)行情況與(2)相同,但當(dāng)X3閉合一次,X0、X1、X2、X3分別為10、20、30、40,余類推。(4)WSFR、WSFL控制觸點(diǎn),最好采用脈沖觸點(diǎn)指令,如圖5-57所示5.5.5先進(jìn)先出(FIFO)(SFWR,SFWD)

1.FIFO命令的助記符和功能如表2-24所示:2.說明(1)FIFO為:First-in/First-out(先進(jìn)先出)的縮寫。(2)SFWR指令為FIFO寫入,如圖5-58所示,源(S.)D0存放數(shù)據(jù),X10每閉合1次,源DO數(shù)據(jù)寫入目標(biāo)以(D.)D1為首址的10位(n=K10)元件中,其中D1存放指針,X0閉合1次,D1為1,D0數(shù)據(jù)送D2;當(dāng)X0第二次閉合,D1為2,D0數(shù)據(jù)送D3;…。D0數(shù)據(jù)可每次改變。(3)SFRD為FIFO讀出指令。當(dāng)使用SFRD指令形成FIFO堆棧之后,執(zhí)行1次SFRD指令,即X20第1次閉合,圖5-58中,將以源(S.)D1為首址的10位(n=K10)的FIFO堆棧中D2的數(shù)據(jù)送目標(biāo)(D.)D20,指針D1減1。當(dāng)X2第2次閉合,D3的數(shù)據(jù)送目標(biāo)D20,指針D1再減1,……一直到D1數(shù)值為0。

(4)SFWR與SFRD一起使用,且參數(shù)n必須相同。

圖5-59FIFO指令

(5)執(zhí)行圖5-59,當(dāng)X0閉合,D0為100。執(zhí)行SFWR指令,當(dāng)X1第1次閉合,D2為100,D1為1;當(dāng)X1第2次閉合,D3為100,D1為2,…,當(dāng)X1第9次閉合,D10為100,D1為9。執(zhí)行SFRD指令,當(dāng)X2第1次閉合,D10數(shù)據(jù)100送D20,D1為8;當(dāng)X2第2次,D9數(shù)據(jù)送D20,D1數(shù)值減小到7…,一直到D1為0。在寫出過程中,D2~D10數(shù)據(jù)保持不變。利用FIFO指令,可以記錄存入或取出的數(shù)據(jù)。例5-10用SFWR和SFWD指令分別將100、200、300、400、500五個(gè)數(shù)據(jù)存入到數(shù)據(jù)棧中,再順序讀出。按題意,所編的程序如圖5-60所示。程序中使用了INC、DEC指令,使用了變址寄存器V1。接通X10,D1、D2、D3、D4、D5分別為100、200、300、400、500。按X11五次,則指針D10從0增加到5,D11、D12、D13、D13、D15分別為100、200、300、400、500,V1從0增加到5。按X12五次,則指針D10從5減到0,V1從5減到0。D25、D24、D23、D22、D21分別為100、200、300、400、500。圖5-60例5-10的程序4、舉例,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論