| 注冊(cè)| 產(chǎn)品展廳| 收藏該商鋪

行業(yè)產(chǎn)品

當(dāng)前位置:
湖南嶸晟時(shí)代自動(dòng)化科技有限公司>>技術(shù)文章>>西門子PLC語句表編程:跳轉(zhuǎn)指令

西門子PLC語句表編程:跳轉(zhuǎn)指令

閱讀:4472        發(fā)布時(shí)間:2021-5-26

          西門子PLC語句表編程:跳轉(zhuǎn)指令

一、 跳轉(zhuǎn)標(biāo)簽

跳轉(zhuǎn)的"目標(biāo)"地址由"標(biāo)簽",該標(biāo)簽稱之為"跳轉(zhuǎn)標(biāo)簽"。跳轉(zhuǎn)標(biāo)簽最多4個(gè)字符,且第一個(gè)字符必須為字母。跳轉(zhuǎn)標(biāo)簽后必須帶有冒號(hào)":" ,且在行中必須位于程序語句之前。

二、 跳轉(zhuǎn)指令

跳轉(zhuǎn)指令根據(jù)"跳轉(zhuǎn)"的機(jī)理,首先可分為"無條件跳轉(zhuǎn)"和"條件跳轉(zhuǎn)",除此之外,還有一個(gè)特殊的跳轉(zhuǎn)指令,可實(shí)現(xiàn)分支跳轉(zhuǎn)。

1、 無條件跳轉(zhuǎn)指令JU

程序在執(zhí)行時(shí),遇到JU指令,無條件的跳轉(zhuǎn)到其"標(biāo)簽"所指示的代碼行繼續(xù)執(zhí)行。跳轉(zhuǎn)指令和跳轉(zhuǎn)目標(biāo)必須在同一個(gè)塊內(nèi)。
需要注意的是:理論上,JU指令允許向前跳,也允許向后跳。向后跳屬于常規(guī)用法,一般沒什么問題。但向前跳,容易形成死循環(huán),因此,一般不建議使用JU命令向前跳。

2、 有條件跳轉(zhuǎn)指令

顧名思義,與無條件跳轉(zhuǎn)不同,有條件跳轉(zhuǎn)指令中斷原程序邏輯流,發(fā)生跳轉(zhuǎn)是需要條件的,根據(jù)跳轉(zhuǎn)條件的不同,它們又有不同的分類。
(1) 由RLO的狀態(tài)決定是否跳轉(zhuǎn)
對(duì)于"JC"指令,當(dāng)邏輯運(yùn)算結(jié)果(RLO)為"1"時(shí),"跳轉(zhuǎn)"生效,中斷當(dāng)前的線性掃描,跳轉(zhuǎn)到"跳轉(zhuǎn)標(biāo)簽"所標(biāo)識(shí)的行繼續(xù)執(zhí)行。同樣,可以選擇向前跳,也可以向后跳。
"JCN"指令與"JC"指令相反,當(dāng)"RLO"為"1"的時(shí)候,"跳轉(zhuǎn)"生效。
另外:當(dāng)條件不滿足,不執(zhí)行跳轉(zhuǎn)的時(shí)候,該指令會(huì)將RLO置"1",然后繼續(xù)執(zhí)行下面的指令。
(2) 帶BR位,由RLO狀態(tài)決定是否跳轉(zhuǎn)
對(duì)于"JCB"指令,其與"JC"指令一樣,當(dāng)RLO為1時(shí),"跳轉(zhuǎn)"生效,中斷當(dāng)前的線性掃描,跳轉(zhuǎn)到"跳轉(zhuǎn)標(biāo)簽"所標(biāo)識(shí)的指令行繼續(xù)執(zhí)行。而與"JC"指令不同的是,"JCB"指令會(huì)"額外"的做一項(xiàng)工作:將RLO的狀態(tài)復(fù)制到BR(二進(jìn)制結(jié)果位)中。
同樣,"JNB"指令,其觸發(fā)跳轉(zhuǎn)的條件為RLO=0,且也會(huì)將RLO狀態(tài)復(fù)制到BR中。
(3) 由"狀態(tài)寄存器"的"BR"位決定跳轉(zhuǎn)與否
狀態(tài)字的第4位和第5位分別為"溢出位OV"和"溢出狀態(tài)保持位OS"。當(dāng)算術(shù)運(yùn)算或浮點(diǎn)數(shù)比較指令執(zhí)行時(shí)出現(xiàn)錯(cuò)誤(如溢出、非法操作和不規(guī)范的格式等)時(shí),OV位會(huì)被置1,同時(shí)OS位也被置1。而如果后面同類指令執(zhí)行結(jié)果正確,則OV位會(huì)被清0,但OS位仍然保持為1。只有JOS指令、塊調(diào)用指令和塊結(jié)束指令才能復(fù)位OS位。
一般用于檢查算術(shù)運(yùn)算指令結(jié)果是否有溢出,若有溢出,可用JO、JOS指令進(jìn)行跳轉(zhuǎn),以做相應(yīng)的錯(cuò)誤處理。
(5) 由條件碼1(CC1)和條件碼0(CC0)決定是否跳轉(zhuǎn)
狀態(tài)字的第7位(CC1)和第6位(CC0)分別為條件碼1和條件碼0。這兩位綜合起來用于表示在累加器1(ACCU1)中產(chǎn)生的算術(shù)運(yùn)算或邏輯運(yùn)算的結(jié)果與"0"的大小關(guān)系、比較指令的執(zhí)行結(jié)果或移位指令的移出位的結(jié)果。
CC1和CC0的狀態(tài)與"算術(shù)運(yùn)算"的結(jié)果的關(guān)系如下:

3、 分支跳轉(zhuǎn)指令JL

在語句表的指令集中,還有一條特殊的跳轉(zhuǎn)指令,它能夠?qū)崿F(xiàn)向多路分支跳轉(zhuǎn)的功能,它就是分支跳轉(zhuǎn)指令JL,
JL指令根據(jù)累加器1(ACCU1)的低字節(jié)中的數(shù)值大小來決定程序"沿著"哪一條分支執(zhí)行。由于一個(gè)字節(jié)的數(shù)值范圍為0~255,因此,JL指令最多可管理多達(dá)256條分支的程序。


 

收藏該商鋪

請(qǐng) 登錄 后再收藏

提示

您的留言已提交成功!我們將在第一時(shí)間回復(fù)您~
二維碼