西門子PLC程序控制指令

發(fā)布時(shí)間:2024-03-09
程序控制類指令使程序結(jié)構(gòu)靈活,合理使用該指令可以優(yōu)化程序結(jié)構(gòu),增強(qiáng)程序功能。這類指令主要包括:結(jié)束、停止、看門狗、跳轉(zhuǎn)、子程序、循環(huán)和順序控制等指令。
1、結(jié)束指令end
結(jié)束指令分為有條件結(jié)束指令(end)和無條件結(jié)束指令(mend)。兩條指令在梯形圖中以線圈形式編程。指令不含操作數(shù)。執(zhí)行結(jié)束指令后,系統(tǒng)終止當(dāng)前掃描周期,返回主程序起點(diǎn)。使用說明:
(1)結(jié)束指令只能用在主程序中,不能在子程序和中斷程序中使用。而有條件結(jié)束指令可用在無條件結(jié)束指令前結(jié)束主程序。
(2)在調(diào)試程序時(shí),在程序的適當(dāng)位置置入無條件結(jié)束指令可實(shí)現(xiàn)程序的分段調(diào)試。
(3)可以利用程序執(zhí)行的結(jié)果狀態(tài)、系統(tǒng)狀態(tài)或外部設(shè)置切換條件來調(diào)用有條件結(jié)束指令,使程序結(jié)束。
(4)使用micro/win32編程時(shí),編程人員不需手工輸入無條件結(jié)束指令,該軟件會(huì)自動(dòng)在內(nèi)部加上一條無條件結(jié)束指令到主程序的結(jié)尾。
2、停止指令stop
stop指令有效時(shí),可以使主機(jī)cpu的工作方式由run切換到stop,從而立即中止用戶程序的執(zhí)行。stop指令在梯形圖中以線圈形式編程。指令不含操作數(shù)。
stop指令可以用在主程序、子程序和中斷程序中。如果在中斷程序中執(zhí)行stop指令,則中斷處理立即中止,并忽略所有掛起的中斷。繼續(xù)掃描程序的剩余部分,在本次掃描周期結(jié)束后,完成將主機(jī)從run到stop的切換。
stop和end指令通常在程序中用來對(duì)突發(fā)緊急事件進(jìn)行處理,以避免實(shí)際生產(chǎn)中的意外損失。
3、看門狗復(fù)位指令wdr(watchdog reset)
wdr稱為看門狗復(fù)位指令,也稱為警戒時(shí)鐘刷新指令。它可以把警戒時(shí)鐘刷新,即延長掃描周期,從而有效地避免看門狗超時(shí)錯(cuò)誤。wdr指令在梯形圖中以線圈形式編程,無操作數(shù)。
使用wdr指令時(shí)要特別小心,如果因?yàn)槭褂脀rd指令而使掃描時(shí)間拖得過長(如在循 環(huán)結(jié)構(gòu)中使用wdr),那么在中止本次掃描前,下列操作過程將被禁止:
(1)通訊(自由口除外);
(2)i/o刷新(直接i/o除外);
(3)強(qiáng)制刷新;
(4)sm位刷新(sm0、sm5一sm29的位不能被刷新);
(5)運(yùn)行時(shí)間診斷;
(6)掃描時(shí)間超過25 s時(shí),使10 ms和100 ms定時(shí)器不能正確計(jì)時(shí);
(7)中斷程序中的stop指令。
注意:如果希望掃描周期超過300ms,或者希望中斷時(shí)間超過300ms,則最好用wdr指令來重新觸發(fā)看門狗定時(shí)器。結(jié)束指令、停止指令和wdr指令的用法如圖1所示。
圖1 結(jié)束、停止及看門狗指令
4、跳轉(zhuǎn)及標(biāo)號(hào)指令
跳轉(zhuǎn)指令可以使plc編程的靈活性大大提高,可根據(jù)對(duì)不同條件的判斷,選擇不同的程序段執(zhí)行程序。
跳轉(zhuǎn)指令jmp(jump to label):當(dāng)輸入端有效時(shí),使程序跳轉(zhuǎn)到標(biāo)號(hào)處執(zhí)行。
標(biāo)號(hào)指令lbl(label):指令跳轉(zhuǎn)的目標(biāo)標(biāo)號(hào)。操作數(shù)n為0—255。
使用說明:
(1)跳轉(zhuǎn)指令和標(biāo)號(hào)指令必須配合使用,而且只能使用在同一程序段中,如主程序、同一個(gè)子程序或同一個(gè)中斷程序。不能在不同的程序段中互相跳轉(zhuǎn)。
(2)執(zhí)行跳轉(zhuǎn)后,被跳過程序段中的各元器件的狀態(tài):
①q、m、s、c等元器件的位保持跳轉(zhuǎn)前的狀態(tài);
②計(jì)數(shù)器c停止計(jì)數(shù),當(dāng)前值存儲(chǔ)器保持跳轉(zhuǎn)前的計(jì)數(shù)值;
③對(duì)定時(shí)器來說,因刷新方式不同而工作狀態(tài)不同。在跳轉(zhuǎn)期間,分辯率為1 ms和10 ms的定時(shí)器會(huì)一直保持跳轉(zhuǎn)前的工作狀態(tài),原來工作的繼續(xù)工作,到設(shè)定值后其位的狀態(tài)也會(huì)改變,輸出觸點(diǎn)動(dòng)作,其當(dāng)前值存儲(chǔ)器一直累計(jì)到最大值32 767才停止。對(duì)分辨率為100 ms的定時(shí)器來說,跳轉(zhuǎn)期間停止工作,但不會(huì)復(fù)位,存儲(chǔ)器里的值為跳轉(zhuǎn)時(shí)的值,跳轉(zhuǎn)結(jié)束后,若輸入條件允許,可繼續(xù)計(jì)時(shí),但已失去了準(zhǔn)確計(jì)時(shí)的意義。所以在跳轉(zhuǎn)段里的定時(shí)器要慎用。跳轉(zhuǎn)指令的使用方法如圖2所示。
圖2 跳轉(zhuǎn)指令
5、循環(huán)指令(for和next)
循環(huán)指令的引入為解決重復(fù)執(zhí)行相同功能的程序段提供了極大方便,并且優(yōu)化了程序結(jié)構(gòu)。循環(huán)指令有兩條:循環(huán)開始指令for,用來標(biāo)記循環(huán)體的開始,用指令盒表示。循環(huán)結(jié)束指令next,用來標(biāo)記循環(huán)體的結(jié)束。無操作數(shù)。
for和next之間的程序段稱為循環(huán)體,每執(zhí)行一次循環(huán)體,當(dāng)前計(jì)數(shù)值增1,并且將其結(jié)果同終值作比較,如果大于終值,則終止循環(huán)。
循環(huán)開始指令盒中有三個(gè)數(shù)據(jù)輸入端:當(dāng)前循環(huán)計(jì)數(shù)indx(index value or current loop count)、循環(huán)初值init(starting value)和循環(huán)終值final(ending value)。在使用時(shí)必須給for指令指定當(dāng)前循環(huán)計(jì)數(shù)(indx)、初值(init)和終值(final)。
indx操作數(shù):vw、iw、qw、mw、sw、smw、lw、t、c、ac、*vd、*ac和*cd;屬int型。
init和finai。操作數(shù):vw、iw、qw、mw、sw、smw、lw、t、c、ac、常數(shù)、*vd、* ac和*cd;屬int型。
循環(huán)指令使用如圖3所示。當(dāng)i1.0接通時(shí),表示為a的外層循環(huán)執(zhí)行100次。當(dāng)i1.1接通時(shí),表示為b的內(nèi)層循環(huán)執(zhí)行2次。使用說明:
(1)for、next指令必須成對(duì)使用。
(2)for和next可以循環(huán)嵌套,嵌套最多為8層,但各個(gè)嵌套之間不可有交叉現(xiàn)象。
(3)每次使能輸入(en)重新有效時(shí),指令將自動(dòng)復(fù)位各參數(shù)。
(4)初值大于終值時(shí),循環(huán)體不被執(zhí)行。
圖4 循環(huán)指令
子程序
子程序在結(jié)構(gòu)化程序設(shè)計(jì)中是一種方便有效的工具。s7—200 plc的指令系統(tǒng)具有簡單、方便、靈活的子程序調(diào)用功能。與子程序有關(guān)的操作有:建立子程序、子程序的調(diào)用和返回。
(1)建立子程序
建立子程序是通過編程軟件來完成的??捎镁幊誊浖熬庉嫛辈藛沃械摹安迦搿边x項(xiàng),選擇“子程序”,以建立或插入一個(gè)新的子程序,同時(shí),在指令樹窗口可以看到新建的子程序圖標(biāo),默認(rèn)的程序名是sbr_n,編號(hào)n從0開始按遞增順序生成,也可以在圖標(biāo)上直接更改子程序的程序名,把它變?yōu)楦苊枋鲈撟映绦蚬δ艿拿帧T谥噶顦浯翱陔p擊子程序的圖標(biāo)就可進(jìn)入子程序,并對(duì)它進(jìn)行編輯。
(2)子程序調(diào)用指令call和子程序條件返回指令cret
在子程序調(diào)用指令call使能輸入有效時(shí),主程序把程序控制權(quán)交給子程序。子程序的調(diào)用可以帶參數(shù),可以不帶參數(shù)。它在梯形圖中以指令盒的形式編程。
在子程序條件返回指令cret使能輸入有效時(shí),結(jié)束子程序的執(zhí)行,返回主程序中(此子程序調(diào)用的下一條指令)。梯形圖中以線圈的形式編程,指令不帶參數(shù)。
(3)應(yīng)用舉例
圖7.37所示的程序?qū)崿F(xiàn)用外部控制條件分別調(diào)用兩個(gè)子程序。使用說明:
①cret多用于子程序的內(nèi)部,由判斷條件決定是否結(jié)束子程序調(diào)用,ret用于子程序的結(jié)束。用micro/win32編程時(shí),編程人員不需要手工輸入ret指令,而是由軟件自動(dòng)加在每個(gè)子程序結(jié)尾。
②子程序嵌套 如果在子程序的內(nèi)部又對(duì)另一子程序執(zhí)行調(diào)用指令,則這種調(diào)用稱為子程序的嵌套。子程序的嵌套深度最多為8級(jí)。
③當(dāng)一個(gè)子程序被調(diào)用時(shí),系統(tǒng)自動(dòng)保存當(dāng)前的堆棧數(shù)據(jù),并把棧頂置1,堆棧中的其他值為o,子程序占有控制權(quán)。子程序執(zhí)行結(jié)束,通過返回指令自動(dòng)恢復(fù)原來的邏輯堆棧值,調(diào)用程序又重新取得控制權(quán)。
④累加器可在調(diào)用程序和被調(diào)用子程序之間自由傳遞,所以累加器的值在子程序調(diào)用時(shí)既不保存也不恢復(fù)。
圖7.38 子程序調(diào)用指令
上一個(gè):斗茶斗樂趣
下一個(gè):oppoa9充電多少時(shí)間(oppoa9充多久將電充滿)

上海哪個(gè)地方夜景最漂亮 上海十大夜景排行榜
08版pkpm該如何設(shè)置鋼框架?
雷萌生物獲美國UID實(shí)驗(yàn)動(dòng)物識(shí)別方案總代
3d建模培訓(xùn)學(xué)校哪家好,哪里有3D建模專業(yè)的培訓(xùn)學(xué)校呢
投招標(biāo)亂象終結(jié):電子招投標(biāo)平臺(tái)
蛾蝶花的產(chǎn)地分布,形態(tài)特征,生長習(xí)性,繁殖培育,景觀用途
柱梁板完整計(jì)算書及規(guī)范,收藏!
電腦怎么安兩個(gè)硬盤,如何安裝兩個(gè)硬盤在計(jì)算機(jī)上
agromatic旋轉(zhuǎn)驅(qū)動(dòng)器nk系列
怎么查看電腦硬盤的詳細(xì)信息,如何查看硬盤信息
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos