■ 南京高速齒輪制造有限公司 (江蘇 211100) 趙紅淑
我們在數(shù)控系統(tǒng)(西門子)中大量使用M指令,比如M3是主軸正轉(zhuǎn)、M5主軸停轉(zhuǎn)等常規(guī)通用指令,也有制造商自己開發(fā)的某些特定功能或動作的M指令。特別是加工中心換刀程序中寫有多個M指令,每一步的動作都有特定的M代碼完成,并且有先后順序,出故障時還能停止,往往還伴有報警。那么這些M指令是怎么編寫的,在使用時又是如何做到條件檢測的,本文將就這一問題進行討論。
在NC程序中M功能執(zhí)行時(以840D系統(tǒng)為例),會觸發(fā)一個信號,該信號會傳送到PLC接口,通過840D的調(diào)試手冊可以查出該信號(DB2x.DBX294.0-DB2x.DBX206.3),而這些信號,在PLC中只存在一個掃描周期,所以一般會使用S指令,置位某個地址然后去驅(qū)動某個動作。
程序段如下(以通道1為例):
N010 G0 X0 M10 //啟動冷卻指令M10
...
N080 M11 //當(dāng)NC程序運行到此步時,M11關(guān)閉冷卻
在PLC程序中我們編寫如下程序:
A DB21.DBX195.2 //M10執(zhí)行時在nck程序的通道1中編輯,激活一個PLC掃描周期
S Q0.0 //冷卻泵啟動(Q0.0為控制泵接觸器的輸出信號)
A DB21.DBX195.3 //M11執(zhí)行時在nck程序的通道1中編輯,激活一個PLC掃描周期
R Q0.0 //冷卻泵停止
實際上我們很多M指令是“閉環(huán)”的,就是指令執(zhí)行后還要檢測執(zhí)行有沒到位信號或者壓力信號等,若不到位就無法執(zhí)行下一步,一直停在該M指令處。這就需要PLC或者NC對指令進行處理了。
PLC的處理方法是在執(zhí)行動作的同時將“讀入使能禁止”(DB21.DBX6.1)激活,同時檢測反饋信號,當(dāng)反饋信號正常時再復(fù)位該“讀入使能禁止”,此時該M指令就完成“閉環(huán)”反饋,執(zhí)行下一步了。如在某程序中有個松刀動作M20,要求松刀不到位時不能執(zhí)行下一步,程序如下:
A DB21.DBX196.4 //M20執(zhí)行時在nck程序的通道1中編輯,激活一個PLC掃描周期
S Q0.1 //驅(qū)動松刀電磁閥
S DB21.DBX6.1 //同時激活“讀入使能禁止”
A Q0.1
A I0.1 //檢測松刀到位信號
R DB21.DBX6.1 //到位后,復(fù)位該信號,NC程序繼續(xù)執(zhí)行
除了用這種PLC程序做檢測外還可以結(jié)合NC的IF語句做判斷,這在加工中心的換刀程序中大量使用。如某龍門加工中心換刀程序中有段程序:
M93 //刀庫門開
_TT: _MM[0]=$A_DBB[80] //Y、Z軸運動條件:開門到位
IF _MM[0]==0 GOTOB _TT
G153 G01 G90 Y=$MA_FIX_POINT_POS[1,AX2] F=HIGHSPEED
G153 G01 G90 Z=$MA_FIX_POINT_POS[1,AX3] F=HIGHSPEED
程序中IF語句就是用來檢測開門信號的,如果不到位,Y、Z軸是不能運動的,否則有撞門風(fēng)險,$A_DBB[80]主要是通過如圖1所示的PLC實現(xiàn)的。我們能夠清晰的看到以下的邏輯,執(zhí)行M93后激活DB21.DBX205.5,從而通過M110.7激活開門的氣閥Q41.0(Network66),同時Network67在檢測信號,當(dāng)開門信號到位,關(guān)門信號脫開時,把1傳送給DB91.DBB80。
再通過如圖2所示的PLC,用OB1調(diào)用FC21把DB91.DBB0開始的200個字節(jié),都寫入$A_DBB[0]開始的200個字節(jié)里。這樣就實現(xiàn)了$A_DBB[80]能夠檢測開門信號有沒到位的功能了。
該M指令的接口信號地址類型和塊編號功能由OEM廠家自行定義,它和PLC地址沒有標(biāo)準(zhǔn)對應(yīng)關(guān)系,如M99=125實現(xiàn)開門動作,PLC編寫如下:
A(
L 99L
DB21.DBW68 ==D)
//比較讀入的M靜態(tài)指令是不
M99
A(L 125 L DB21.DBD70==D)
//比較讀入的是不是125
A DB21.DBX58.0
S DBxx.DBXxx.x //確定了執(zhí)行的M99=125后驅(qū)動某個地址
圖1
圖2
在NC通道執(zhí)行時99被存入DB21.DBW68的地址中,該變量定義為整形變量。在執(zhí)行時將125存入DB21.DBD70的地址中,該變量定義為實數(shù)變量。還有關(guān)鍵信號DB21.DBX58.0,該變量在M功能代碼改變時跳變,信號保持一個PLC周期,可以用它鎖存M功能代碼讀取瞬間的代碼數(shù)值,以保證存入數(shù)據(jù)不出錯。當(dāng)NC讀入的程序段執(zhí)行M99=125時激活最后的DBxx.DBXxx.x地址,然后通過這個地址可以做后續(xù)的邏輯編寫,比如驅(qū)動開門,再做開門信號的檢測等等。
以上為方便理解,只是簡單寫出了主要的原理和思路,真正運用時還需要考慮轉(zhuǎn)換數(shù)據(jù)類型等,部分比較值肯定用索引地址和間接指針尋址代入減少代碼使用,邏輯保護也要加強很多。
[1] 熊熙. 數(shù)控加工實訓(xùn)教程 [M]. 北京:化學(xué)工業(yè)出版社,2003.
[2] 王愛玲,武文革,辛志杰,等.現(xiàn)代數(shù)控機床 [M]. 北京:國防工業(yè)出版社,2009.
[3] 邱言龍,李文菱. 數(shù)控機床維修技術(shù) [M]. 北京:中國電力出版社,2014.