西門(mén)子S7-1200系列的PLC涵蓋了多種位移指令功能,具體涵蓋了向左和向右的位移操作,以及循環(huán)向左和循環(huán)向右的位移操作?

這些位移指令的主要作用是對(duì)輸入?yún)?shù)IN中的位序列進(jìn)行調(diào)整,并將調(diào)整后的結(jié)果傳遞至輸出參數(shù)OUT?位移的位數(shù)則由參數(shù)N來(lái)指定?此功能支持的數(shù)據(jù)類型相當(dāng)廣泛,包括字節(jié)(BYTE)?字(WORD)和雙字(DWORD)等?在位移過(guò)程中,任何被清空的位置都將自動(dòng)填充為0?

而循環(huán)位移指令則采用了循環(huán)的方式來(lái)移動(dòng)輸入?yún)?shù)IN中的位序列,其結(jié)果同樣會(huì)傳遞給輸出參數(shù)OUT?循環(huán)位移的位數(shù)也是通過(guò)參數(shù)N來(lái)設(shè)定的?此指令的顯著特點(diǎn)是,那些從目標(biāo)值一側(cè)移出的位數(shù)據(jù)會(huì)被循環(huán)到另一側(cè),確保了原始位值在整個(gè)過(guò)程中不會(huì)丟失?

下面,我們將通過(guò)一個(gè)直觀的例子來(lái)演示這些指令的實(shí)際應(yīng)用?當(dāng)I1.2被觸發(fā)時(shí),MB100中的數(shù)據(jù)會(huì)向左移動(dòng)兩位,并將結(jié)果存儲(chǔ)在MB200中;而當(dāng)I1.3被觸發(fā)時(shí),MW100中的數(shù)據(jù)則會(huì)向右移動(dòng)兩位,結(jié)果則存儲(chǔ)在MW300中?
一?程序編寫(xiě)
首先,在項(xiàng)目視圖中打開(kāi)OB1?
隨后,從指令樹(shù)中拖動(dòng)左位移指令至程序段1,并設(shè)定數(shù)據(jù)類型為字節(jié)?在使能端,我們插入常開(kāi)觸點(diǎn)I1.2?然后,設(shè)置IN參數(shù)為MB100,N參數(shù)為2,OUT參數(shù)為MB200?
同樣地,我們?cè)賹⒂椅灰浦噶钔现脸绦蚨?,并設(shè)定數(shù)據(jù)類型為字?在使能端,我們插入常開(kāi)觸點(diǎn)I1.3?接著,設(shè)定IN參數(shù)為MW100,N參數(shù)為2,OUT參數(shù)為MW300?

完成上述設(shè)置后,保存項(xiàng)目?
二?程序編譯與下載
在項(xiàng)目樹(shù)中選中程序塊,點(diǎn)擊下載按鈕,將編寫(xiě)好的程序下載至PLC?
三?程序運(yùn)行監(jiān)控
點(diǎn)擊“轉(zhuǎn)到在線”按鈕,打開(kāi)監(jiān)視表格文件夾?
在此文件夾中,我們新建一個(gè)監(jiān)視表格,并輸入地址MB100?MB200?MW100和MW300,設(shè)定顯示格式為二進(jìn)制?

最后,點(diǎn)擊監(jiān)視按鈕,我們就可以觀察程序的運(yùn)行狀況了?例如,我們可以先修改MB100的值為01011,然后按下I1.2,這時(shí)我們會(huì)發(fā)現(xiàn)MB200的值已變?yōu)镸B100左移兩位的結(jié)果;同樣地,當(dāng)我們按下I1.3時(shí),MW300的值也會(huì)變?yōu)镸W100右移兩位的結(jié)果?

