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

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

技成電工課堂
微信公眾號(hào):jcdgkt
|

技成PLC課堂
微信公眾號(hào):jc-plc
|