這種方法實(shí)現(xiàn)跑馬燈的應(yīng)用案例,你肯定不知道~
在西門子S7-200SMART中提供了各種豐富的功能指令,合理巧妙的使用不同的功能指令能夠達(dá)到事半功倍的效果,同時(shí)還會(huì)讓你的程序更精簡。那今天我們?yōu)榇蠹抑v解移位與循環(huán)移位指令中的移位指令,它包括左移位指令、右移位指令、循環(huán)左移位指令、循環(huán)右移位指令和移位寄存器指令。
移位指令介紹
移位指令根據(jù)移動(dòng)方向不一樣分為左移位指令(SHL)和右移位指令(SHR),每個(gè)移位指令根據(jù)操作數(shù)的數(shù)據(jù)類型不同分為針對字節(jié)、字和雙字的移位指令。
01左移指令
左移指令SHL可以根據(jù)數(shù)據(jù)類型分為字節(jié)左移指令(SHL_B)、字左移指令(SHL_W)和雙字左移指令(SHL_DW)。如圖1為左移指令格式。

左移位指令(SHL)將輸入端IN中數(shù)各位的值向左移動(dòng)N位后把結(jié)果輸出到由OUT所指定的地址。在移動(dòng)過程中每一位移出后留下的空位會(huì)自動(dòng)的補(bǔ)零。若移位計(jì)數(shù)N 大于或等于允許的最大值(字節(jié)操作為8、字操作為16、雙字操作為32),則會(huì)按相應(yīng)操作的最大次數(shù)對值進(jìn)行移位,若移位計(jì)數(shù)N大于0,則在移動(dòng)過程中的最后移出位會(huì)存儲(chǔ)于溢出標(biāo)志SM1.1中,若移位操作結(jié)果為0,則零標(biāo)志位SM1.0會(huì)置位為ON,如圖2所示為左移指令執(zhí)行效果。

02右移指令
右移指令SHR可以根據(jù)數(shù)據(jù)類型分為字節(jié)右移指令(SHR_B)、字右移指令(SHR_W)和雙字右移指令(SHR_DW)。如圖3為右移指令格式。

右移位指令(SHR)將輸入端IN中數(shù)各位的值向右移動(dòng)N位后把結(jié)果輸出到由OUT所指定的地址。在移動(dòng)過程中每一位移出后留下的空位會(huì)自動(dòng)的補(bǔ)零。若移位計(jì)數(shù)N 大于或等于允許的最大值(字節(jié)操作為8、字操作為16、雙字操作為32),則會(huì)按相應(yīng)操作的最大次數(shù)對值進(jìn)行移位,若移位計(jì)數(shù)N大于0,則在移動(dòng)過程中的最后移出位會(huì)存儲(chǔ)于溢出標(biāo)志SM1.1中,若移位操作結(jié)果為0,則零標(biāo)志位SM1.0會(huì)置位為ON,如圖4所示為右移指令執(zhí)行效果。

二、移位指令應(yīng)用
假設(shè)有8個(gè)指示燈,對應(yīng)PLC的Q0.0~Q0.7,要求每次點(diǎn)亮一盞指示燈,當(dāng)按下啟動(dòng)按鈕后,從Q0.0~Q0.7每隔一秒點(diǎn)亮,當(dāng)Q0.7被點(diǎn)亮?xí)r,停止2S,然后反向每隔1S點(diǎn)亮,當(dāng)Q0.0被點(diǎn)亮?xí)r,延時(shí)2S后,進(jìn)入下個(gè)循環(huán),若按下停止按鈕,停止所有的指示燈輸出,示意圖如圖5所示。

分析:8個(gè)指示燈,每次只點(diǎn)亮1個(gè)指示燈,而且是按照順序的方式進(jìn)行點(diǎn)亮,因此在設(shè)計(jì)程序是可考慮使用移位指令進(jìn)設(shè)計(jì),程序如圖6所示:


三、結(jié)語
本文只分享了移位與循環(huán)移位指令中的移位指令,除了左移位指令、右移位指令之外、還有循環(huán)左移位指令、循環(huán)右移位指令和移位寄存器指令。
來源:技成培訓(xùn)網(wǎng),作者:眭相建,未經(jīng)授權(quán)不得轉(zhuǎn)載!違者必究
福利來啦
微信掃碼,領(lǐng)取64本西門子PLC電子書

?