S7-1200 PLC的邏輯運算指令詳解!
吳翠萍
發(fā)布于2020-11-17 15:15
51
2
標簽:西門子PLC,S7-1200 PLC,PLC指令
【點擊領取】三菱案例 | 西門子案例 | 電工手冊 | 工具箱 軟件
【點擊獲取】三菱PLC例程117個|西門子PLC例程777個
【點擊下載】2020最新電工仿真軟件
在前面的幾篇文章中介紹了移動操作指令、轉換操作指令等,這篇文章就開始介紹一下邏輯運算指令吧。
在S7-1200 PLC中的邏輯運算指令包括了邏輯與運算、邏輯或運算、邏輯異或運算、邏輯取反運算、編碼與譯碼指令、選擇指令、多路復用與多路分用指令。
下面我們分別對這些指令進行解釋說明。
1、邏輯運算指令
邏輯與運算、邏輯或運算、邏輯異或運算、邏輯取反運算都是我們常見的邏輯運算指令,如果又用過S7-200/200 SMART PLC的同學會有了解,對于邏輯運算指令,其實基本PLC都是支持的,功能是也是一樣的。
邏輯運算指令支持的數(shù)據(jù)類型是BYTE/WORD/DWORD這三種,這幾個指令使用的還是比較多的,大家還是需要掌握一下。
邏輯與指令AND:當參與運算的所有數(shù)中對應的位是1時,那么結果就為1。
邏輯或指令OR:當參與運算的所有數(shù)中對應的位有1時,那么結果為1。
邏輯異或指令XOR:當參與運算的所有數(shù)中對應的位相同時,那么結果為0;不同時則為1。
邏輯取反指令INV:對輸入的數(shù)按二進制位進行取反,也就是0變成1,1變成0。
上圖中是在程序監(jiān)控中以十六進制顯示的,大家可以打開監(jiān)控表將顯示格式切換成二進制去看。
2、編碼指令ENCO和譯碼指令DECO
編碼指令選擇輸入的最低有效位,并將該位號寫入到輸出中去。
(注意:輸入變量的數(shù)據(jù)類型為字符串,輸出變量的數(shù)據(jù)類型是INT類型。)
譯碼指令首先讀取輸入的值,并將輸出值中的位號與讀取值對應的那個位置,輸出值的其它位以零進行填充
(注意:輸入變量的數(shù)據(jù)類型是UINT,輸出變量的數(shù)據(jù)類型可以是BYTE/WORD/DWORD的數(shù)據(jù)類型。)
可能以這樣的文字描述比較難理解,看一下下面的程序及對應的解釋你就清楚了。
上圖的程序中ENCO的輸入 16#0B70,二進制數(shù)是0000_1011_0111_0000,最低有效位也就是為1的最低位是bit4位,所以輸出MW14存儲的就是4。DECO的輸入是6,就將輸出的bit6位設置為1,其他位設置為0,所以輸出MW18的二進制數(shù)是0000_0000_0100_0000。
3、選擇SEL、多路復用MUX、和多路分用DEMUX
選擇指令SEL是根據(jù)輸入G的情況,從而選擇輸入IN0和輸入IN1中的一個,把它的內(nèi)容復制到輸出OUT中。也就是說如果G的狀態(tài)是0,那么就把IN0的值移動到OUT中去,如果G的狀態(tài)是1,那么就把IN1的值移動到OUT中去。
其實這個指令可以代替一些場合的移動操作指令,也就是傳送指令的使用。
多路復用指令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的邏輯運算指令,指令中的選擇SEL、多路復用MUX、和多路分用DEMUX這三個指令也是S7-200/200 SMART PLC沒有的,如果是熟悉S7-200/200 SMART PLC的同學,可以重點學習這幾個指令的使用即可啦~
到此為止,邏輯運算指令就介紹完了,下一篇文字繼續(xù)給大家介紹其他指令——移位和循環(huán)移位指令,歡迎大家繼續(xù)關注哦~
(技成培訓網(wǎng)原創(chuàng),作者:蔡慧滎,未經(jīng)授權不得轉載,違者必究)

技成培訓
微信公眾號:jcpeixun
|

技成電工課堂
微信公眾號:jcdgkt
|

技成PLC課堂
微信公眾號:jc-plc
|