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