S7-1200 PLC的邏輯運算指令,搞懂請加1

在前面的幾篇文章中介紹了移動操作指令、轉換操作指令等,這篇文章就開始介紹一下邏輯運算指令吧。

在S7-1200 PLC中的邏輯運算指令包括了邏輯與運算、邏輯或運算、邏輯異或運算、邏輯取反運算、編碼與譯碼指令、選擇指令、多路複用與多路分用指令

下面我們分別對這些指令進行解釋說明。

1、邏輯運算指令

邏輯與運算、邏輯或運算、邏輯異或運算、邏輯取反運算都是我們常見的邏輯運算指令,如果又用過S7-200/200 SMART PLC的同學會有了解,對於邏輯運算指令,其實基本PLC都是支持的,功能是也是一樣的。

邏輯運算指令支持的數據類型是BYTE/WORD/DWORD這三種,這幾個指令使用的還是比較多的,大家還是需要掌握一下。

邏輯與指令AND:當參與運算的所有數中對應的位是1時,那麼結果就為1。

邏輯或指令OR:當參與運算的所有數中對應的位有1時,那麼結果為1。

邏輯異或指令XOR:當參與運算的所有數中對應的位相同時,那麼結果為0;不同時則為1。

邏輯取反指令INV:對輸入的數按二進制位進行取反,也就是0變成1,1變成0。


S7-1200 PLC的邏輯運算指令,搞懂請加1

上圖中是在程序監控中以十六進制顯示的,大家可以打開監控表將顯示格式切換成二進制去看。

S7-1200 PLC的邏輯運算指令,搞懂請加1

2、編碼指令ENCO和譯碼指令DECO

編碼指令選擇輸入的最低有效位,並將該位號寫入到輸出中去。

(注意:輸入變量的數據類型為字符串,輸出變量的數據類型是INT類型。)

譯碼指令首先讀取輸入的值,並將輸出值中的位號與讀取值對應的那個位置,輸出值的其它位以零進行填充

(注意:輸入變量的數據類型是UINT,輸出變量的數據類型可以是BYTE/WORD/DWORD的數據類型。)

可能以這樣的文字描述比較難理解,看一下下面的程序及對應的解釋你就清楚了。

S7-1200 PLC的邏輯運算指令,搞懂請加1

S7-1200 PLC的邏輯運算指令,搞懂請加1

上圖的程序中ENCO的輸入 16#0B70,二進制數是0000_1011_0111_0000,最低有效位也就是為1的最低位是bit4位,所以輸出MW14存儲的就是4。DECO的輸入是6,就將輸出的bit6位設置為1,其他位設置為0,所以輸出MW18的二進制數是0000_0000_0100_0000。


3、選擇SEL、多路複用MUX、和多路分用DEMUX

選擇指令SEL是根據輸入G的情況,從而選擇輸入IN0和輸入IN1中的一個,把它的內容複製到輸出OUT中。也就是說如果G的狀態是0,那麼就把IN0的值移動到OUT中去,如果G的狀態是1,那麼就把IN1的值移動到OUT中去。

其實這個指令可以代替一些場合的移動操作指令,也就是傳送指令的使用。

S7-1200 PLC的邏輯運算指令,搞懂請加1

S7-1200 PLC的邏輯運算指令,搞懂請加1

多路複用指令MUX是以輸入K中的值作為輸入值IN端的編號,比如K的值等於1,就表示把IN1的值複製到輸出OUT中去。對於這個指令,我們是可以增加它的輸入管腳的,最多可以增加到多少呢?

最多是可以增加到32個管腳。如果K中的值不能表示輸入管腳的編號的情況下,那麼就把ELSE的值輸出到OUT中去。

多路分用指令DEMUX的含義和多路複用指令MUX是有一定的相似的,DEMUX指令是以輸入K的值作為輸出OUT的編號,跟MUX一樣,這個指令也是可以增加管腳的,但是增加的是輸出的管腳。

如果K的值等於1,那麼就把輸入IN的值複製到OUT1中去,K的值等於2,就把輸入IN的值複製到OUT2中去。

S7-1200 PLC的邏輯運算指令,搞懂請加1

以上就是S7-1200 PLC的邏輯運算指令,指令中的選擇SEL、多路複用MUX、和多路分用DEMUX這三個指令也是S7-200/200 SMART PLC沒有的,如果是熟悉S7-200/200 SMART PLC的同學,可以重點學習這幾個指令的使用即可啦~

到此為止,邏輯運算指令就介紹完了,下一篇文字繼續給大家介紹其他指令——移位和循環移位指令,歡迎大家繼續關注哦~

(技成培訓網原創,作者:蔡慧滎,未經授權不得轉載,違者必究)


分享到:


相關文章: