【摘要】研究了基于三菱PLC的DECO解碼指令,在實際編程中的應用。三菱PLC的功能指令功能強大,靈活應用會使編程變得簡單。本文給出了可行的程序設計方法,對同類問題能夠舉一反三,此種方法來源于筆者多年來參加省市技能大賽總結而來。
【關鍵詞】PLC;DECO;梯形圖;程序設計;解碼指令
1.引言
三菱PLC由于其指令功能強大,深受編程愛好者的喜愛,特別是它的功能指令,合理應用會產生意想不到的效果,筆者在此特舉出幾例,起到拋磚引玉的效果,使廣大讀者能夠觸類旁通,使PLC編程變得更加簡單可行。
2.三菱PLC的DECO解碼指令
DECO解碼指令
功能:假設X2、X1、X0為0、1、1,則源地址為011,即十進制數(shù)3,因此從M10起第3位的M13變?yōu)?。源全部為0時,M10為1。
當n=0時不處理,n=0~8以外的數(shù)據地會運算出錯,運算錯誤。
當n=8時,如果譯碼命令目的操作數(shù)D為位軟元件時,其點數(shù)為256點。
當驅動輸入為OFF時,指令不執(zhí)行,正在動作的譯碼輸出保持動作。
3.DECO解碼指令在數(shù)碼顯示中的程序設計
問題描述:現(xiàn)模擬一自動投幣洗衣機,有A、B、C三個按鈕,分別表示一角硬幣、二角硬幣、三角硬幣按鍵。然后通過按A、B、C按鍵模擬投硬幣,往洗衣機里投入硬幣,所投硬幣總額通過數(shù)碼管顯示,當投入的硬幣總值大于等于洗衣機所需的價錢一元時,洗衣機開始洗衣,洗衣指示燈亮。洗衣10分鐘后,洗衣完畢后,自動找零,找零指示燈亮,找零的余額通過數(shù)碼管顯示出來。
從以上問題可以看出,此程序設計的關鍵問題是要求能夠實時通過數(shù)碼管顯示錢幣。我們可以基本指令來實現(xiàn),但是使用基本指令會編寫大量的程序代碼,如果使用DECO解碼指令,會使問題變得簡單多了。
首先我們進行I/O口分配,I/O分配如下:
輸入:A按鈕X0,B按鈕X1,C按鈕X2,數(shù)碼管a段Y0,
輸出:數(shù)碼管a段Y0,數(shù)碼管b段Y0,數(shù)碼管c段Y1,數(shù)碼管d段Y2,數(shù)碼管e段Y3,數(shù)碼管f段Y4,數(shù)碼管g段Y5,數(shù)碼管a段Y6,洗衣指示燈Y10,找零指示燈Y11。程序如下圖1:
圖1
4.DECO在步進電機控制中的應用
問題描述:現(xiàn)利用DECO指令來實現(xiàn)步進電機的控制,完成對步進電機的三相六拍。編程的關鍵是要產生M1~M6的脈沖序列。我們可以分別用M1~M6來控制六個節(jié)拍,即M1控制A相得電,M2控制A、B相得電,M3控制B相得電,M4控制B、C相得電,M5控制C相得電,M6控制C、A相得電,依次循環(huán)下去,可使步進電機旋轉。如果要控制步進電機的轉速,只要改變A~AB~B~BC~C~CA之間的轉換時間即可。如果需要步進電機反轉,只需改變步進電機得電的時序,即CA~A~AB~B~BC~C依次得電。
輸入輸出分配表如下表1:
輸入
輸出
元件
作用
輸入點
元件
作用
輸出點
SB1
啟動
X0
步進電
機A相
輸出
脈沖
Y1
SB2
停止
X1
步進電
機B相
輸出
脈沖
Y2
SA1
慢速
X2
步進電
機C相
輸出
脈沖
Y3
SA2
中速
X3
SA3
快速
X4
表1
產生的脈沖程序程序如下:
圖2
根據M1控制A相得電,M2控制A、B相得電,M3控制B相得電,M4控制B、C相得電,M5控制C相得電,M6控制C、A相得電,我們可以寫出Y1、Y2、Y3得電的程序。
控制步進電機的轉速,只要改變A~AB~B~BC~C~CA之間的轉換時間即可,即改變T249的定時時D1。
5.結束語
解碼指令在程序設計中起著極大地作用,不僅在數(shù)碼管、步進電機程序設計中適用,同樣在其它的程序中一樣適用。在近年來技能大賽的江蘇省賽、國賽題目中,解碼指令均能非常好地用于解決問題。筆者多次在省市大賽中獲獎,根據自已的實際經驗總結以上,希對各位同仁起到拋磚引玉的作用。
參考文獻:
[1]基于PLC在YL-235A設備中物料分揀的程序設計 出版年(2009 第4期)
[2]機電一體化設備的組裝與調試 出版年(2009.5第1版)
[3]小型可編程控制器實用技術 出版年(2006.5第1版)
[4]PLC編程理論。算法及技巧 出版年(2005.4第1版)