云南西門子S7-200SMART系列PLC代理商
西門子S7-300 PLC無(wú)條件跳轉(zhuǎn)語(yǔ)句指令
下列跳轉(zhuǎn)指令是根據(jù)前面指令語(yǔ)句的RLO結(jié)果中斷程序邏輯流。
①若RLO=1,則跳轉(zhuǎn)(JC)。
②若RLO=0,則跳轉(zhuǎn)(JCN)。
③若RLO=1且BR=1,則跳轉(zhuǎn)(JCB),把RLO存入狀態(tài)字的BR位中。

④若RLO=0且BR=0,則跳轉(zhuǎn)(JNB),把RLO存入狀態(tài)字的BR位中。
另一種是根據(jù)狀態(tài)字的標(biāo)志位結(jié)果,條件跳轉(zhuǎn)改變程序流。
①BR=1跳轉(zhuǎn)(JBI)或BR=0跳轉(zhuǎn)(JNBI)。
②OV=1跳轉(zhuǎn)(JO)或OS=0跳轉(zhuǎn)(JOS)。
JBI、JNBI指令執(zhí)行時(shí),將使?fàn)顟B(tài)字的標(biāo)志位OR、FC清0,STA置1。而JOS指令將使OS清0。
下列指令可根據(jù)計(jì)算結(jié)果,跳轉(zhuǎn)改變程序流。
①零跳轉(zhuǎn)(JZ):累加器1中的計(jì)算結(jié)果為零時(shí)跳轉(zhuǎn)。
②非零跳轉(zhuǎn)(JNZ):累加器1中的計(jì)算結(jié)果為非零時(shí)跳轉(zhuǎn)。
③正跳轉(zhuǎn)(JP,即大于0):累加器1中的計(jì)算結(jié)果為正時(shí)跳轉(zhuǎn)。
④負(fù)跳轉(zhuǎn)(JM,即小于0):、累加器1中的計(jì)算結(jié)果為負(fù)時(shí)跳轉(zhuǎn)。
⑤小于等于零跳轉(zhuǎn)(JMZ):累加器1中的計(jì)算結(jié)果小于等于零(非正)跳轉(zhuǎn)。
⑥大于等于零跳轉(zhuǎn)(JPZ):累加器1中的計(jì)算結(jié)果大于等于零(非負(fù))跳轉(zhuǎn)。
⑦浮點(diǎn)數(shù)無(wú)效跳轉(zhuǎn)(JUO,浮點(diǎn)數(shù)算術(shù)運(yùn)算數(shù)之一為無(wú)效數(shù)):實(shí)數(shù)溢出跳轉(zhuǎn)。
判斷運(yùn)算結(jié)果為正還是為負(fù)的依據(jù)是狀態(tài)字中的條件碼(CC0,CC1),條件跳轉(zhuǎn)指令與條件碼的關(guān)系見表5-29。
表5-29 條件跳轉(zhuǎn)指令與CC0、CC1的關(guān)系
狀 態(tài) | 計(jì)算結(jié)果 | 觸發(fā)的跳轉(zhuǎn)指令 |
CC1 | CC0 |
0 | 0 | =0 | JZ |
1或0 | 0或1 | <>0 | JN |
1 | 0 | >0 | JP |
0 | 1 | <0 | JM |
0或1 | 0 | <=0 | JMZ |
0 | 1或0 | >=0 | JPZ |
1 | 1 | UO(溢出) | JUO |
可以使用下列跳轉(zhuǎn)指令無(wú)條件中斷正常的程序邏輯流。
①無(wú)條件跳轉(zhuǎn)指令(JU):可以中斷正常的程序邏輯流,使程序跳轉(zhuǎn)到標(biāo)號(hào)處(JU的尋址對(duì)象)。在程序需繼續(xù)執(zhí)行的地方,寫上標(biāo)號(hào)。該跳轉(zhuǎn)不必考慮任何條件。
②跳轉(zhuǎn)表格指令(JL):該指令實(shí)質(zhì)是多路分支跳轉(zhuǎn)語(yǔ)句。緊隨該指令后是一系列無(wú)條件跳轉(zhuǎn)到標(biāo)號(hào)指令。多路分支的路徑參數(shù)存放于累加器1中。
控制指令控制程序的執(zhí)行順序,使CPU能夠根據(jù)不同的情況執(zhí)行不同的指令序列??刂浦噶罘譃檫壿嬁刂浦噶詈统绦蚩刂浦噶?。
邏輯控制指令是指邏輯塊內(nèi)的跳轉(zhuǎn)和循環(huán)指令,這些指令中斷程序原有的線性邏輯流,重新從不同的點(diǎn)開始掃描。跳轉(zhuǎn)和循環(huán)指令以標(biāo)號(hào)為地址。標(biāo)號(hào)多4個(gè)字符,跟以冒號(hào)。*個(gè)字符必須是字母,其余字符可為字母或數(shù)字。跳轉(zhuǎn)標(biāo)號(hào)緊接語(yǔ)句(例如SEG5:NOP 0)。在梯形圖中的目標(biāo)標(biāo)號(hào)必須在一個(gè)網(wǎng)絡(luò)的開始。在編程器上從梯形邏輯瀏覽器中選擇LABEL(標(biāo)號(hào)),出現(xiàn)空方塊,將標(biāo)號(hào)名填入方塊中。
移位指令將累加器1低字中或整個(gè)累加器1的內(nèi)容左移或右移。左移相當(dāng)于對(duì)累加器的內(nèi)容乘以2n,右移相當(dāng)于對(duì)累加器的內(nèi)容除以2n。移動(dòng)的次數(shù)n在累加器2中或直接在指令中以常數(shù)給出。

累加器1移位后空出的位,填以0或符號(hào)位,被移動(dòng)的后一位保存在狀態(tài)字中的CC1里,CC0和OV被復(fù)位為0??墒褂脳l件跳轉(zhuǎn)指令,對(duì)CC1進(jìn)行判斷。循環(huán)移位指令與一般移位指令的差別是:循環(huán)移位指令的空位填以從累加器中移出的位。
1.無(wú)符號(hào)數(shù)移位指令(見表5-26)
表5-26 無(wú)符號(hào)數(shù)移位指令
指令 | 說(shuō) 明 |
SLW | 將累加器1低字中的內(nèi)容逐位左移,空出位填0 |
SRW | 器1低字中的內(nèi)容逐位右移,空出位填0 |
SLD | 將累加器1整個(gè)內(nèi)容逐位左移,空出位填0 |
SRD | 將累加器1整個(gè)內(nèi)容逐位右移,空出位填0 |
2.有符號(hào)數(shù)移位指令(見表5-27)
表5-27 有符號(hào)數(shù)移位指令
指令 | 說(shuō) 明 |
SSI | 將累加器1低字中的內(nèi)容逐位右移,空出位填以符號(hào)位(正填0,負(fù)填1) |
SSD | 將累加器1整個(gè)內(nèi)容逐位右移,空出位填以符號(hào)位(正填0,負(fù)填1) |
3.循環(huán)移位指令(見表5-28)
表5-28 循環(huán)移位指令
指令 | 說(shuō) 明 |
RLD | 將累加器1整個(gè)內(nèi)容逐位左移,空出位填以從累加器1移出的位 |
RRD | 將累加器1整個(gè)內(nèi)容逐位右移,空出位填以從累加器1移出的位 |
RLDA | 將累加器1整個(gè)內(nèi)容帶CC1位逐位左移一位,空出位填以從CC1移出的位 |
RRDA | 將累加器1整個(gè)內(nèi)容帶CC1位逐位右移一位,空出位填以從CC1移出的位 |
4.移位和循環(huán)方塊指令
以上介紹的語(yǔ)句表字邏輯運(yùn)算指令,都有對(duì)應(yīng)的梯形圖方塊指令。在編程器上,使用梯形圖指令瀏覽器,可以選擇需要的方塊指令。下面舉例說(shuō)明移位和循環(huán)方塊指令的用法。
【例5-6】 移位和循環(huán)方塊指令的用法。

【解】 如圖5-19所示,輸入端I0.0的信號(hào)狀態(tài)為1,指令啟動(dòng),存儲(chǔ)器雙字MD0裝入累加器1并向右循環(huán),循環(huán)的位數(shù)由MW4中。結(jié)果存入MD10,如果后移出位為1,則輸出Q4.0為1。
字邏輯指令是將兩個(gè)字(16位)或兩個(gè)雙字(32位)逐位進(jìn)行邏輯運(yùn)算。兩個(gè)數(shù)中的一個(gè)在累加器1中,另一個(gè)可以在累加器2中或在指令中以立即數(shù)方式給出,字邏輯運(yùn)算指令的結(jié)果放在累加器1低字中,雙字邏輯運(yùn)算結(jié)果存放在累加器1中,原來(lái)內(nèi)容被覆蓋,累加器2中的內(nèi)容保持不變。邏輯運(yùn)算結(jié)果影響標(biāo)志位。字邏輯語(yǔ)句表指令見表5-25。
表5-25 字邏輯運(yùn)算指令
指令 | 說(shuō) 明 |
AW | 兩個(gè)字(16位)逐位進(jìn)行“與”邏輯運(yùn)算 |
OW | 兩個(gè)字(16位)逐位進(jìn)行“或”邏輯運(yùn)算 |
XOW | 兩個(gè)字(16位)逐位進(jìn)行“異或”邏輯運(yùn)算 |
AD | 雙字(32位)逐位進(jìn)行“與”邏輯運(yùn)算 |
OD | 兩個(gè)雙字(32位)逐位進(jìn)行“或”邏輯運(yùn)算 |
XOD | 兩個(gè)雙字(32位)逐位進(jìn)行“異或”邏輯運(yùn)算 |
以上介紹的語(yǔ)句表字邏輯運(yùn)算指令,都有對(duì)應(yīng)的梯形圖方塊指令。在編程器上,使用梯形圖指令瀏覽器,可以選擇需要的方塊指令。具體內(nèi)容參考相關(guān)技術(shù)手冊(cè)。
云南西門子S7-200SMART系列PLC代理商