快速掌握200SMART FOR-NEXT指令使用技巧(實(shí)例)
發(fā)布時(shí)間:2024-04-03 15:33 [ 我要自學(xué)網(wǎng)原創(chuàng) ] 發(fā)布人: 快樂小女

使用FORNEXT指令可在重復(fù)執(zhí)行分配計(jì)數(shù)的循環(huán)中執(zhí)行程序段,每條FOR指令需要一條NEXT指令,將FOR-NEXT循環(huán)置于最大嵌套深度為8層的FOR-NEXT循環(huán)內(nèi)。

FOR指令標(biāo)記循環(huán)的開始,NEXT指令為循環(huán)體的結(jié)束指令。


一、FOR-NEXT指令說明

1FOR指令管腳說明


INIT、FINAL分別定義起始值和結(jié)束值。

使能輸入EN有效,循環(huán)體開始執(zhí)行,執(zhí)行到NEXT指令時(shí)返回,每執(zhí)行一次循環(huán)體,當(dāng)前值計(jì)數(shù)器INDX1,達(dá)到終止值FINAL時(shí),循環(huán)結(jié)束。

使能輸入無效時(shí),循環(huán)體程序不執(zhí)行。每次使能輸入有效,指令自動(dòng)將各參數(shù)復(fù)位。

注意:使用 FOR  NEXT 指令可在重復(fù)執(zhí)行分配計(jì)數(shù)的循環(huán)中執(zhí)行程序段。每條 FOR 指令需要一條 NEXT 指令。


二、FOR-NEXT 簡(jiǎn)單循環(huán)編程案例(字節(jié))

編程要求:通過FOR-NEXT循環(huán)指令把1 -100數(shù)字依次放入VB100-VB199地址里。

1)建立指針地址:VD10是指指針,就相當(dāng)于手指指向一樣,&VB100是指針指向的起始地址或首地址,相當(dāng)于你手指指向的第一個(gè)地址。


2)啟用FOR循環(huán),EN端使能端不需要一直接通,只需要使用沿脈沖(上升沿)觸發(fā),INDX存放于循環(huán)次數(shù)使用字?jǐn)?shù)據(jù)類型表示,INIT表示起始循環(huán)次數(shù),FINAL表示結(jié)束循環(huán)次數(shù)。


3)寫入指針與指針偏移,當(dāng)執(zhí)行一次循環(huán)VB1000值加一,把VB1000寫入至VB100,當(dāng)循環(huán)一次指針偏移一個(gè)字節(jié)。


4)循環(huán)結(jié)束完成


5)演示效果

VB100開始100字節(jié)分別VB100-VB199寫入1-100數(shù)字。



三、FOR-NEXT 簡(jiǎn)單循環(huán)編程案例(字)

編程要求:通過FOR-NEXT循環(huán)指令把1 -100數(shù)字依次放入VW100-VW298地址里。

1)建立指針地址:VD10是指指針,就相當(dāng)于手指指向一樣,&VB100是指針指向的起始地址或首地址,相當(dāng)于你手指指向的第一個(gè)地址。


2)啟用FOR循環(huán),EN端使能端不需要一直接通,只需要使用沿脈沖(上升沿)觸發(fā),INDX存放于循環(huán)次數(shù)使用字?jǐn)?shù)據(jù)類型表示,INIT表示起始循環(huán)次數(shù),FINAL表示結(jié)束循環(huán)次數(shù)。


3)寫入指針與指針偏移,把VW0當(dāng)前循環(huán)次數(shù)存放到指針指向的VW100地址里,在通過加法指令把VW100 2=VW102,這里為什么要加2呢?是因?yàn)榧热皇茄h(huán)字,字由兩個(gè)字節(jié)組成,所以加2是為了依次排序下去。

4)循環(huán)結(jié)束完成


5)效果演示

VW100開始的100字分別為VW100-VW298寫入1-100數(shù)字。


四、FOR-NEXT 簡(jiǎn)單循環(huán)編程案例(雙字)

編程要求:通過FOR-NEXT循環(huán)指令把1 -100數(shù)字依次放入VD100-VD496地址里。

1)建立指針地址:VD10是指指針,就相當(dāng)于手指指向一樣,&VB100是指針指向的起始地址或首地址,相當(dāng)于你手指指向的第一個(gè)地址。


2)啟用FOR循環(huán),EN端使能端不需要一直接通,只需要使用沿脈沖(上升沿)觸發(fā),INDX存放于循環(huán)次數(shù)使用字?jǐn)?shù)據(jù)類型表示,INIT表示起始循環(huán)次數(shù),FINAL表示結(jié)束循環(huán)次數(shù)。


3)寫入指針與指針偏移,寫入指針與指針偏移,當(dāng)執(zhí)行一次循環(huán)VD1000值加一,把VD1000寫入至VD100,當(dāng)循環(huán)一次指針偏移一個(gè)雙字。

4)循環(huán)結(jié)束完成


5)演示效果

VD100開始的100雙字分別為VD100-VD496寫入1-100數(shù)字。





問答專區(qū)

1)從以上圖中可以看出字節(jié)//雙字都可以達(dá)到1100數(shù)值,但VW0值都101這是為何呢?

設(shè)定循環(huán)次數(shù)是100,但FOR循環(huán)指令需要再進(jìn)行循環(huán)一次進(jìn)行對(duì)比,直到循環(huán)次數(shù)大于100設(shè)定值,才能停止,停止將不再執(zhí)行FOR循環(huán)NEXT這段程序

2)為什么傳送字的時(shí)候不需要轉(zhuǎn)換,而傳送字節(jié)、雙字的時(shí)候需要轉(zhuǎn)換呢?

FOR循環(huán)指令只能支持字的數(shù)據(jù)類型所以不需要轉(zhuǎn)換直接使用,字節(jié)/雙字才需要轉(zhuǎn)換。

3FOR-NEXT指令的循環(huán)次數(shù)如何計(jì)算?

FOR-NEXT工作過程:?jiǎn)⒂?/span>FOR-NEXT指令,首先將 INIT( 初始值) 復(fù)制到 INDX(當(dāng)前循環(huán)次數(shù));每執(zhí)行一次,INDX (當(dāng)前循環(huán)次數(shù)) 1; 如 果 INDX 大于 FINAL (終止循環(huán)次數(shù)),終止循環(huán)。

比如: INIT=1 FINAL=10,則循環(huán)體被執(zhí)行10次,然后退出循環(huán), 退出循環(huán)后INDX=11

INIT=0,FINAL=10, 則循環(huán)體被執(zhí)行11次,然后退出循環(huán),退出循環(huán)后INDX=11

4FOR-NEXT指令執(zhí)行時(shí),主程序是否執(zhí)行,對(duì)掃描周期的影響?

程序自上而下循環(huán)掃描,當(dāng)FOR-NEXT指令啟用后,則循環(huán)體被循環(huán)執(zhí)行,直至循環(huán)次數(shù)到達(dá),循環(huán)結(jié)束,程序繼續(xù)向下執(zhí)行。即在一個(gè)掃描周期內(nèi)執(zhí)行循環(huán)完畢后才會(huì)向下執(zhí)行,循環(huán)次數(shù)越多,會(huì)導(dǎo)致掃描周期時(shí)間延長越多。如果循環(huán)次數(shù)過多或者出現(xiàn)死循環(huán),會(huì)導(dǎo)致掃描周期時(shí)間超過看門狗時(shí)間,報(bào)出看門狗超時(shí)的致命錯(cuò)誤,CPU停機(jī)并且SF/DIAG燈紅燈常亮。

5)如何在FOR-NEXT執(zhí)行循環(huán)過程中,退出循環(huán)?

您可以在FOR/NEXT 指令處于循環(huán)過程中時(shí),在循環(huán)體中修改FINAL (終止循環(huán)次數(shù))數(shù)值。

西門子S7-200SmartPLC應(yīng)用教程
我要自學(xué)網(wǎng)商城 ¥50 元
進(jìn)入購買
文章評(píng)論
0 條評(píng)論 按熱度排序 按時(shí)間排序 /350
添加表情
遵守中華人民共和國的各項(xiàng)道德法規(guī),
承擔(dān)因您的行為而導(dǎo)致的法律責(zé)任,
本站有權(quán)保留或刪除有爭(zhēng)議評(píng)論。
參與本評(píng)論即表明您已經(jīng)閱讀并接受
上述條款。
V
特惠充值
聯(lián)系客服
APP下載
官方微信
返回頂部
分類選擇:
電腦辦公 平面設(shè)計(jì) 室內(nèi)設(shè)計(jì) 室外設(shè)計(jì) 機(jī)械設(shè)計(jì) 工業(yè)自動(dòng)化 影視動(dòng)畫 程序開發(fā) 網(wǎng)頁設(shè)計(jì) 會(huì)計(jì)課程 興趣成長 AIGC