三菱PLC編碼譯碼指令的介紹及應(yīng)用
劉路路
發(fā)布于2022-10-26 14:11
109
2
標簽:三菱PLC
很大同學(xué)對編碼和譯碼搞不清楚,今天就給大家講解一下三菱PLC的編碼譯碼指令的使用和應(yīng)用。譯碼指令DECO是對s中所表示的二進制值m使d中編號為m的位元件或字元件中的bm位置為ON,編碼指令ENCO是對s中置ON的位元件或字元件中置ON的bit位置編號轉(zhuǎn)換成二進制數(shù)傳送到d中,其中s的位數(shù)為2的n次方,當DECO的s/ENCO的d為位元件時1≤n≤8,為字元件時,1≤n≤4,當n=0時,指令不執(zhí)行。
DECO指令
ENCO指令
可能編程手冊上的描述讓你很困惑,很難理解,下面我們以指令舉例方式講解,更容易讀懂指令的含義。比如說DECO X0 M0 K3,這個指令的含義是X0 X1 X2組成的輸入去譯碼輸出控制M0~M7這8個位,假如X0 X1接通,則M3置ON。DECO X0 D0 K4,這個指令的含義是X0~X3組成的輸入去譯碼輸出控制D0的b0~b15這16個位。假如X0 X3接通,則D0中的b9位置ON。DECO D0 M0 K3,這個指令的含義是將寄存器D0的低3位b2b1b0的二進制值去譯碼輸出控制M0~M7這8個位。
而對于編碼指令ENCO M0 D10 K4,這個指令的含義是將M0~M15中置ON的位元件的位置編號轉(zhuǎn)換成二進制值傳到到D10中。
案例1、譯碼指令DECO可用于做單按鈕控制三臺電動機的啟動停止。
首先用X0驅(qū)動INCP D0,每按一次按鈕,可對D0的值加1,DECO D0 M0 K3將寄存器D0的低3位b2b1b0的二進制值去譯碼輸出控制M0~M7這8個位。也就是D0從1開始,當D0等于1時,M1接通,用M1常開置位Y1,啟動第一臺電機,當D0等于2時,M2接通,用M2常開置位Y2,啟動第二臺電機,依次類推,分別用M1~M6去按順序做置位和復(fù)位,即可實現(xiàn)單按鈕控制三臺電動機的啟動停止的功能。
案例2:編碼指令ENCO可用于位置顯示,例如電梯的樓層顯示。
電梯一共16層,電梯的每一層都設(shè)檢測開關(guān)X0~X15,轎廂行至該層時檢測開關(guān)ON(相當于一組位元件中置ON的位),通過ENCO指令轉(zhuǎn)換成該樓層的層數(shù),顯示到轎廂的顯示板上。
電梯一共16層,電梯的每一層都設(shè)檢測開關(guān)X0~X15,也就是2的4次方,指令的n=4,使用ENCO X0 D0 K4指令,將X0~X15中置ON的位元件的位置編號轉(zhuǎn)換成二進制值傳到到D0中,比如X0接通,則D0=0,但是X0對應(yīng)的是第一層,所以再用ADD D0 K1 D10進行加1,就可以顯示當前時間的樓層數(shù)。
案例3、一個圓盤如圖所示,按下啟動按鈕,控制轉(zhuǎn)盤正轉(zhuǎn)180度,再按下啟動按鈕,反轉(zhuǎn)180度,如此不斷重復(fù)。按下急停按鈕,轉(zhuǎn)盤立刻停止,按下到位停止按鈕,轉(zhuǎn)盤轉(zhuǎn)180度碰到限位開關(guān)停止。
假設(shè)X0是啟動按鈕及位置檢測限位開關(guān),X1是到位停止按鈕,X2是停止按鈕,Y0是正轉(zhuǎn),Y1是反轉(zhuǎn),用X0的上升沿指令驅(qū)動DECO Y0 Y0 K1,2的1次方是2,第一次按啟動按鈕,是將Y0 的輸入去譯碼輸出控制Y0 Y1這兩個位,由于最初Y0為0,經(jīng)過指令執(zhí)行使Y0輸出為1,圓盤執(zhí)行正轉(zhuǎn),第二次按啟動按鈕時,由于Y0已經(jīng)為1了,執(zhí)行DECO指令,將使Y1輸出為1,圓盤執(zhí)行反轉(zhuǎn)。按下到位停止按鈕,轉(zhuǎn)盤轉(zhuǎn)180度碰到限位開關(guān)停止,再用X0上升沿串聯(lián)X1去驅(qū)動ZRST Y0 Y1。按下急停按鈕,轉(zhuǎn)盤立刻停止,用X2驅(qū)動ZRST Y0 Y1即可。
案例4、利用譯碼指令做變頻器多速控制。
用PLC對變頻器進行多速控制,變頻器有三個調(diào)速輸入端S1,S2,S3,改變輸入端的通斷狀態(tài),可以進行7段調(diào)速。
首先做好IO分配和接線,7段速分別用7個按鈕控制,7個按鈕分別接到X1~X7,輸出Y1~Y3分別接到變頻器的三個調(diào)速輸入端S1~S3,使用ENCO X0 D0 K3,這個指令的含義是將X0~X7中置ON的位元件的位置編號轉(zhuǎn)換成二進制值傳到到D0中,同時利用MOV D0 K1M0指令,相當于根據(jù)M0 M1 M2去驅(qū)動控制變頻器輸入即可。
這就是編碼和譯碼指令的使用和應(yīng)用,通過案例的講解,有沒用對指令的含義和功能理解的更深了呢?