齊洪方,楊鳴謙
數(shù)控機(jī)床在機(jī)械制造行業(yè)已經(jīng)得到了廣泛的應(yīng)用。在機(jī)床的使用過(guò)程中如果出現(xiàn)故障,需要盡快排除故障,保證生產(chǎn)的正常進(jìn)行,這就需要配備大量數(shù)控機(jī)床故障診斷與維修方面的人才。數(shù)控機(jī)床故障診斷與維修對(duì)實(shí)踐訓(xùn)練的要求較高,需要有專門的設(shè)備提供給學(xué)生進(jìn)行動(dòng)手訓(xùn)練,然而目前市場(chǎng)所擁有的數(shù)控機(jī)床故障診斷與維修實(shí)習(xí)實(shí)訓(xùn)設(shè)備難以滿足教學(xué)的要求,并且價(jià)格較高,因此迫切需要研發(fā)一種新型的數(shù)控機(jī)床故障診斷與維修實(shí)訓(xùn)設(shè)備。
故障的設(shè)置采用PC機(jī)作為上位機(jī),Arduino作為下位機(jī),PC與Arduino使用串口進(jìn)行通信,使用USB-B型線與Arduino相連,PC端使用Lab-VIEW開發(fā)的上位機(jī)軟件,需要產(chǎn)生故障時(shí),上位機(jī)發(fā)送指令給下位機(jī),下位機(jī)驅(qū)動(dòng)8位繼電器板,根據(jù)不同的故障設(shè)置開閉繼電器,從而產(chǎn)生故障,故障產(chǎn)生方式見表1。
故障的詳細(xì)解釋:
a.刀架不停。
表1 故障產(chǎn)生方式
數(shù)控刀架的換刀過(guò)程:當(dāng)有手動(dòng)或自動(dòng)換刀指令時(shí),經(jīng)系統(tǒng)處理變?yōu)榈段恍盘?hào),刀架正轉(zhuǎn)有效,PMC使繼電器線圈通電,繼電器觸點(diǎn)閉合,接通交流接觸器的控制端,交流接觸器吸合,刀架電動(dòng)機(jī)正轉(zhuǎn);當(dāng)PMC輸入點(diǎn)檢測(cè)到對(duì)應(yīng)的刀位信號(hào)時(shí),正轉(zhuǎn)指令撤銷,刀架停止正轉(zhuǎn);接著刀架反轉(zhuǎn),延時(shí)一段時(shí)間(該時(shí)間由參數(shù)設(shè)定,并根據(jù)現(xiàn)場(chǎng)情況調(diào)整);然后刀架反轉(zhuǎn)停止,換刀過(guò)程完成。
當(dāng)產(chǎn)生故障時(shí),斷開了2號(hào)刀霍爾元件的反饋信號(hào),因此如果要執(zhí)行T02指令,PMC將無(wú)法知道2號(hào)刀是否到位,因此會(huì)不停的正轉(zhuǎn)。
b.機(jī)床門報(bào)警。
數(shù)控車床的電氣柜設(shè)置有接觸開關(guān),當(dāng)機(jī)床電氣柜門關(guān)閉時(shí),開關(guān)接通,機(jī)床方可正常運(yùn)行,否則將觸發(fā)門未關(guān)閉的報(bào)警。
當(dāng)產(chǎn)生故障時(shí),斷開電氣柜門接觸開關(guān)的信號(hào),PMC始終檢測(cè)不到機(jī)床門關(guān)閉,因此會(huì)持續(xù)報(bào)警無(wú)法消除,實(shí)際情況中產(chǎn)生這種故障的原因可能是行程開關(guān)故障,線路斷開,或者是機(jī)床門鎖的間隙過(guò)大,導(dǎo)致門關(guān)上了也無(wú)法觸發(fā)開關(guān)。
c.回不了原點(diǎn)。
本數(shù)控實(shí)訓(xùn)平臺(tái)采用的是增量式的編碼器,因此每次在使用前都應(yīng)進(jìn)行回參考點(diǎn)操作,F(xiàn)anuc數(shù)控系統(tǒng)的回參考點(diǎn)方式為:軸向預(yù)定點(diǎn)方向快速運(yùn)動(dòng),擋塊壓下零點(diǎn)開關(guān)后減速向前繼續(xù)運(yùn)動(dòng),直到擋塊脫離零點(diǎn)開關(guān)后,數(shù)控系統(tǒng)開始尋找零點(diǎn),當(dāng)接收到第一個(gè)零點(diǎn)脈沖時(shí),則以工作臺(tái)當(dāng)前位置作為參考點(diǎn)位置。
當(dāng)故障產(chǎn)生時(shí),切斷機(jī)床的零點(diǎn)開關(guān)信號(hào),因此機(jī)床在回原點(diǎn)的過(guò)程中并不會(huì)停下,而是直接走到機(jī)床對(duì)應(yīng)軸的極限行程開關(guān)停下,并觸發(fā)超程報(bào)警。
d.急停不消除。
Fanuc數(shù)控系統(tǒng)的PMC設(shè)定X8.4為急停報(bào)警接口。
當(dāng)故障產(chǎn)生時(shí),將24V電源直接接在 X8.4上,機(jī)床持續(xù)報(bào)警且不消除。
e.刀架不轉(zhuǎn)。
和刀架不停類似,切斷的是刀架正轉(zhuǎn)信號(hào),啟動(dòng)換刀命令時(shí),繼電器得不到來(lái)自PMC端的信號(hào),刀架電源無(wú)法接通,因此刀架不轉(zhuǎn),程序停步。
f.所有PMC輸出功能無(wú)效。
由于機(jī)床的PMC的IO信號(hào)比較多,通常采用的是繼電器模塊,而繼電器模塊的供電是由開關(guān)電源提供的。
故障產(chǎn)生時(shí),切斷繼電器模塊的供電,這時(shí)所有的IO輸出功能無(wú)效。
g.主軸速度不正確。
主軸連接變頻器,其轉(zhuǎn)速和正反轉(zhuǎn)控制都由變頻器控制,其中,轉(zhuǎn)速是由0~10V的電壓控制的,如果切斷來(lái)自NC端的模擬信號(hào),或者連接一個(gè)恒定的電壓,主軸將會(huì)旋轉(zhuǎn),但是速度變?yōu)椴豢煽亍?/p>
h.主軸不轉(zhuǎn)。
本數(shù)控實(shí)訓(xùn)平臺(tái)采用的是三菱RF-E740變頻器,其正反轉(zhuǎn)控制由STF和STR控制,這兩個(gè)信號(hào)的公共接線端為SD。PMC控制主軸正反轉(zhuǎn)時(shí),PMC的DO信號(hào)控制中間繼電器的通斷,使STF和STR分別與公共端相連,從而控制正反轉(zhuǎn)。
當(dāng)產(chǎn)生故障時(shí),切斷公共端的連線,則正反轉(zhuǎn)信號(hào)無(wú)效,體現(xiàn)為主軸不轉(zhuǎn)。
下位機(jī)采用成熟的Arduino UNO控制板,Arduino是一個(gè)基于開放原始碼的軟硬體平臺(tái),構(gòu)建于開放原始碼simple I/O介面版,并且具有使用類似 Java,C 語(yǔ)言的 Processing/Wiring開發(fā)環(huán)境[1]。
Arduino是一款易用的AVR開發(fā)板,是對(duì)于AVR單片機(jī)的重新封裝,自帶USB模擬串口,可以通過(guò)串口刷新程序和通信,它沒有復(fù)雜的單片機(jī)底層代碼,沒有難懂的匯編,只是簡(jiǎn)單而實(shí)用的函數(shù)[2]。
Arduino程序如下:
void setup(){
//initialize serial communication at 9600 bits per second:
Serial.begin(9600);
while(!Serial){
;//wait for serial port to connect.Needed for Leonardo only
}
}
//the loop routine runs over and over again forever:
……
if(ctrl== 'd'){
while(!Serial.available());
unsigned char do_data=Serial.read();
do_u8(do_data);
Serial.println(do_data);//反饋接收的數(shù)據(jù),調(diào)試使用。
}
}
}
unsigned char out;
unsigned char i;//輸出開始的引腳,輸出引腳從2到9
void do_u8(unsigned char do_data){
for(i=2;i<10;i++){
out=do_data&0x01;//取最低位依次輸出
if(out){
digitalWrite(i,HIGH);
}
else{
digitalWrite(i,LOW);
}
do_data>>=1;
}
}
本平臺(tái)中使用的Arduino UNO開發(fā)板,采用了一塊ATmega328芯片,利用USB直接供電和通信,14個(gè)數(shù)字IO口和6個(gè)模擬IO口,本項(xiàng)目中用8個(gè)數(shù)字IO口控制繼電器模塊,如圖1所示。
圖1 Arduino及故障設(shè)置繼電器
繼電器模塊帶有光耦隔離,常開接口最大負(fù)載:交流250V/10A,直流30V/10A,高低觸發(fā)選擇,當(dāng)VREF端口通高電平,方式為低導(dǎo)通,反之為高導(dǎo)通,導(dǎo)通電流為3mA,繼電器工作電流為70mA,當(dāng)8個(gè)繼電器同時(shí)導(dǎo)通的時(shí)候所需的驅(qū)動(dòng)電流約為600mA,而電腦USB口額定的負(fù)載電流為500mA左右,因此在改進(jìn)中,添加了一塊LM2596直流電源模塊,如圖2所示,輸入電壓范圍:直流3.2V ~40V,輸出電壓范圍:直流1.2V~35V電壓連續(xù)可調(diào),將開關(guān)電源提供的24V電壓轉(zhuǎn)換成5V電壓,用于驅(qū)動(dòng)繼電器模塊,其最大的負(fù)載能力為3A,在驅(qū)動(dòng)能力上提供了較大的余量。
圖2 5V電源模塊
上位機(jī)采用了LabVIEW編程,通過(guò)串口和下位機(jī)通信。LabVIEW是一種程序開發(fā)環(huán)境,由美國(guó)國(guó)家儀器(NI)公司研制開發(fā),類似于C和BASIC開發(fā)環(huán)境,但是LabVIEW與其他計(jì)算機(jī)語(yǔ)言的顯著區(qū)別是:其他計(jì)算機(jī)語(yǔ)言都是采用基于文本的語(yǔ)言產(chǎn)生代碼,而LabVIEW使用的是圖形化編輯語(yǔ)言G編寫程序,產(chǎn)生的程序是框圖的形式[3-4],如圖3所示。一是使用簡(jiǎn)便,編程快捷;二是結(jié)構(gòu)清晰,便于后續(xù)的擴(kuò)展。
在和Arduino通信上,采用了經(jīng)封裝的一套類庫(kù),在Arduino上燒入下位機(jī)程序,就能通過(guò)Lab-VIEW程序?qū)rduino進(jìn)行控制。
圖3 程序前面板
程序的有關(guān)說(shuō)明:(1)程序的主體結(jié)構(gòu)是一個(gè)循環(huán)事件結(jié)構(gòu),當(dāng)故障設(shè)置按鈕為按下狀態(tài)時(shí),每100ms一次,將按鍵的狀態(tài)發(fā)送至下位機(jī),并接收調(diào)試用的返回信號(hào)。(2)事件結(jié)構(gòu)的超時(shí)時(shí)間設(shè)置為0,如果在循環(huán)中沒有事件發(fā)生,就立即跳出事件結(jié)構(gòu),防止死循環(huán)。當(dāng)故障設(shè)置按鍵彈起時(shí),觸發(fā)故障設(shè)置值改變事件,程序進(jìn)入事件結(jié)構(gòu),所有的故障取消,釋放串口資源。(3)init為初始化串口通信,DO為數(shù)字量輸出,closedevice為釋放串口資源。
本文主要基于LabVIEW的數(shù)控維修實(shí)訓(xùn)平臺(tái)故障設(shè)置模塊進(jìn)行了詳細(xì)設(shè)計(jì),該模塊設(shè)置故障方便、系統(tǒng)穩(wěn)定,能夠很好地滿足教學(xué)過(guò)程中實(shí)驗(yàn)教學(xué)的需要,當(dāng)然目前設(shè)計(jì)的故障數(shù)量還比較少,還需要對(duì)故障設(shè)置的數(shù)量以及故障內(nèi)容進(jìn)行更加深入的研究。
[1] Language Reference,Arduino[EB/OL].http://arduino.cc/en/Reference/HomePage.
[2] 程晨.Arduino開發(fā)實(shí)戰(zhàn)指南(AVR篇)[M].北京:機(jī)械工業(yè)出版社,2012.
[3] 鄭對(duì)元.精通LabVIEW虛擬儀器程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2012.
[4] 阮奇楨.我和 Lab VIEW:一個(gè) NI工程師的十年編程經(jīng)驗(yàn)[M].2版.北京:北京航空航天大學(xué)出版社,2012.