S7-1200 PLC跳轉(zhuǎn)與標(biāo)簽指令的使用
吳翠萍
發(fā)布于2020-11-24 13:53
48
2
標(biāo)簽:西門子PLC,S7-1200 PLC,PLC指令
【點擊領(lǐng)取】三菱案例 | 西門子案例 | 電工手冊 | 工具箱 軟件
【點擊獲取】三菱PLC例程117個|西門子PLC例程777個
【點擊下載】2020最新電工仿真軟件
對于PLC的指令中有一部分是程序控制指令,程序控制指令就包括了用來改變程序執(zhí)行順序的跳轉(zhuǎn)指令,以及在程序運行中用于控制的指令。
這一篇文章中先介紹一下跳轉(zhuǎn)與標(biāo)簽指令。
對于S7-200/200 SMART PLC的跳轉(zhuǎn)指令只有JMP這么一個指令,但是對于S7-1200 PLC來說,則是新增了一些指令,比如定義跳轉(zhuǎn)列表的跳轉(zhuǎn)指令JMP_LIST,和跳轉(zhuǎn)分支指令SWITCH等,我們會介紹指令的不同的地方。下面我們就開始吧~
首先提個問題?
什么是跳轉(zhuǎn),使用跳轉(zhuǎn)指令可以實現(xiàn)什么功能?
所謂跳轉(zhuǎn),就是跳過某段程序不去執(zhí)行,使用跳轉(zhuǎn)指令可以實現(xiàn)改變程序的執(zhí)行順序的功能。如果我們沒有執(zhí)行跳轉(zhuǎn)指令的話,各個程序段是按照從上往下的順序進(jìn)行執(zhí)行的,當(dāng)執(zhí)行了跳轉(zhuǎn)指令之后,跳轉(zhuǎn)指令會中止程序的順序執(zhí)行,跳轉(zhuǎn)到指定的位置的程序開始往下執(zhí)行。
那么我們怎么去指定這個位置呢?
這時我們就需要用到標(biāo)簽指令了!
所以,跳轉(zhuǎn)指令和標(biāo)簽指令是配對使用的。跳轉(zhuǎn)時,跳轉(zhuǎn)指令和標(biāo)簽指令之間的程序,CPU是不再進(jìn)行掃描執(zhí)行的,這個是我們需要注意的。
S7-1200 PLC的跳轉(zhuǎn)指令包括了邏輯結(jié)構(gòu)跳轉(zhuǎn)指令、定義跳轉(zhuǎn)列表的跳轉(zhuǎn)指令JMP_LIST,和跳轉(zhuǎn)分支指令SWITCH。
我們分別看一下這幾個指令的功能是怎么樣的。
1、邏輯結(jié)果跳轉(zhuǎn)指令
邏輯運算結(jié)果為1時,執(zhí)行跳轉(zhuǎn)指令JMP,邏輯運算結(jié)果為0時,執(zhí)行跳轉(zhuǎn)指令JMPN。配套使用的標(biāo)簽指令是LABLE,標(biāo)簽指令上需要標(biāo)上標(biāo)簽號,可以是數(shù)字,也可以是字母或漢字哦。對于S7-200/200 SMART PLC的跳轉(zhuǎn)指令只有JMP和配套的LBL指令,并不是根據(jù)邏輯結(jié)果的跳轉(zhuǎn)指令,所以也沒有JMPN這個指令,而且對于標(biāo)簽LBL指令,S7-200/200 SMART PLC的標(biāo)簽號只能是數(shù)字,不可以是字母和漢字的哦。
2、定義跳轉(zhuǎn)列表的跳轉(zhuǎn)指令JMP_LIST
JMP_LIST指令可以定義多個有條件的跳轉(zhuǎn),跳轉(zhuǎn)到由K管腳的值指定的標(biāo)簽段的程序去繼續(xù)執(zhí)行,而跳轉(zhuǎn)的標(biāo)簽號是在指令框的輸出端進(jìn)行指定的。我們可以通過點擊指令上的增加輸出管腳的按鈕去增加輸出管腳,最多可以增加到32個管腳,也就是DEST0~DEST31,所以K的值的范圍也應(yīng)該是在0~31之間,如果不是這些編號是不執(zhí)行跳轉(zhuǎn)的。
如上圖程序,當(dāng)JMP_LIST指令的EN驅(qū)動條件滿足,會根據(jù)K的值決定跳轉(zhuǎn)到相應(yīng)的標(biāo)簽處開始執(zhí)行,K的值是1,就代表是跳轉(zhuǎn)到DEST1管腳所鏈接的標(biāo)簽_002處開始執(zhí)行。
3、跳轉(zhuǎn)分支指令SWITCH
SWITCH指令是根據(jù)一個或多個比較指令的結(jié)果,定義要執(zhí)行的多個程序標(biāo)簽處跳轉(zhuǎn),在管腳K中指定的是要比較的值,將這個值跟各個輸入管腳提供的值進(jìn)行比較,如果比較條件滿足的話,就跳轉(zhuǎn)到對于的標(biāo)簽處開始執(zhí)行程序。
如上圖程序中,當(dāng)K的值等于47.0時,就跳轉(zhuǎn)到DEST0管腳對應(yīng)的001標(biāo)簽處開始執(zhí)行,當(dāng)K的值等于24.6時,就跳轉(zhuǎn)到DEST1管腳對應(yīng)的002標(biāo)簽處開始執(zhí)行,當(dāng)K的值小于或等于14.9時,就跳轉(zhuǎn)到DEST2管腳對應(yīng)的003標(biāo)簽處開始執(zhí)行,如果K的值與以上三個比較條件的比較結(jié)果都不滿足的話,就跳轉(zhuǎn)到ELSE管腳對應(yīng)的004標(biāo)簽處開始執(zhí)行。
我們在使用跳轉(zhuǎn)指令的時候有一些注意事項需要注意一下的,
1、跳轉(zhuǎn)指令可以往前跳轉(zhuǎn),也可以往后跳轉(zhuǎn)。
2、只能在同一個代碼塊中跳轉(zhuǎn),不能從一個代碼塊跳轉(zhuǎn)到另外的代碼塊中。
3、在一個塊中跳轉(zhuǎn)標(biāo)簽的名稱只能使用一次。
4、一個程序斷中只能設(shè)置一個跳轉(zhuǎn)標(biāo)簽。
在執(zhí)行跳轉(zhuǎn)的過程中又有這樣的一個問題,如果跳轉(zhuǎn)執(zhí)行后的程序希望執(zhí)行到指定的地方可以自動返回,不再往下執(zhí)行,這時怎么辦呢?
其實這種情況下我們可以利用另外一個指令——返回指令RET實現(xiàn),返回指令RET是可以用來實現(xiàn)對程序執(zhí)行的控制,當(dāng)執(zhí)行到RET指令時,退出代碼塊的執(zhí)行,也就是說RET指令之后的程序段CPU將不再執(zhí)行。
所以說跳轉(zhuǎn)指令和返回指令RET一起配合使用,可以實現(xiàn)對程序段的選擇執(zhí)行。
比如在每個標(biāo)簽段中加入這個RET指令,那么執(zhí)行完這個標(biāo)簽到RET指令之間的程序之后,可以自動返回,不再去執(zhí)行后續(xù)的程序。
以上就是S7-1200 PLC的跳轉(zhuǎn)指令相關(guān)內(nèi)容,這個指令可以用于做手自動切換等功能,應(yīng)用的還是比較多的,大家還是需要掌握好這個指令的使用喔!
在下一篇文章中繼續(xù)給大家介紹運行時的控制指令,大家可以繼續(xù)關(guān)注~
(培訓(xùn)網(wǎng)原創(chuàng),作者:蔡慧滎,未經(jīng)授權(quán)不得轉(zhuǎn)載,違者必究)

技成培訓(xùn)
微信公眾號:jcpeixun
|

技成電工課堂
微信公眾號:jcdgkt
|

技成PLC課堂
微信公眾號:jc-plc
|