基于單片機(jī)控制的數(shù)控機(jī)床面板智能處理單元
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1 引言
在數(shù)控機(jī)床中,手動(dòng)操作面板總是必不可少的,其特點(diǎn)是1.有些輸入量是互斥的,不允許誤操作,由機(jī)械的互鎖關(guān)系來保證要求;2.鍵的通/斷用電平觸發(fā)不同狀態(tài),而不是用沿觸發(fā)不同狀態(tài);3.允許多個(gè)狀態(tài)同時(shí)輸入并可靠地做出相應(yīng)的反應(yīng);4.能對(duì)設(shè)備當(dāng)前狀態(tài)進(jìn)行必要的提示,如使用信號(hào)燈、發(fā)光二級(jí)管或液晶顯示屏?,F(xiàn)有的設(shè)計(jì)大多將手動(dòng)操作面板的輸入/輸出作為開關(guān)量I/O的一部分,統(tǒng)一由一臺(tái)內(nèi)置的或外置的可編程控制器(PLC)進(jìn)行控制。數(shù)控機(jī)床生產(chǎn)廠家根據(jù)自己機(jī)床的工藝特點(diǎn),購(gòu)買數(shù)控系統(tǒng),經(jīng)過二次開發(fā),形成工藝性能和操作互不相同的數(shù)控機(jī)床產(chǎn)品。二次開發(fā)的工作量絕大部分在于開關(guān)量I/O的設(shè)計(jì),而其中又有60%以上的工作是根據(jù)工藝性能與操作設(shè)計(jì)手動(dòng)操作面板[1]。事實(shí)上,手動(dòng)操作面板的輸入/輸出僅僅是控制信號(hào)開關(guān)量I/O,對(duì)其驅(qū)動(dòng)能力的要求很低,是一類特殊的數(shù)控機(jī)床開關(guān)量I/O。如果將手動(dòng)操作面板的輸入/輸出與數(shù)控機(jī)床其它開關(guān)量I/O不加以區(qū)別,會(huì)大大增加數(shù)控系統(tǒng)二次開發(fā)的工作量,數(shù)控機(jī)床手動(dòng)操作面板無法標(biāo)準(zhǔn)化和模塊化,其經(jīng)濟(jì)性也會(huì)受到很大影響。
本文提出了一種基于89C51/52單片機(jī)的數(shù)控機(jī)床面板智能處理單元,該處理單元通過標(biāo)準(zhǔn)串口與數(shù)控系統(tǒng)交換信息,可以顯示數(shù)控機(jī)床的基本狀態(tài)和對(duì)其進(jìn)行手動(dòng)操作。該工作是國(guó)家863計(jì)劃“PC外設(shè)型完備數(shù)字機(jī)床及其關(guān)鍵技術(shù)研究”的一部分研究?jī)?nèi)容,已經(jīng)用于三坐標(biāo)數(shù)控銑床。
2 工作原理
89C51/52單片機(jī)具有片內(nèi)ROM、16位計(jì)數(shù)和標(biāo)準(zhǔn)串口[2]。在89C51/52單片機(jī)構(gòu)成數(shù)控機(jī)床面板智能處理單元中,一般不需要外部擴(kuò)展ROM和RAM,單片機(jī)I/O口的一位對(duì)應(yīng)一個(gè)輸入/輸出量,若單片機(jī)I/O口不夠,可以進(jìn)行擴(kuò)展。單片機(jī)以定時(shí)中斷檢測(cè)輸入,一旦發(fā)現(xiàn)輸入電平變化,就將其對(duì)應(yīng)的新狀態(tài)由串口發(fā)送給數(shù)控系統(tǒng)。另一方面,數(shù)控系統(tǒng)通過串口將需要顯示的信息發(fā)送給單片機(jī)。由于采用了串行通信,數(shù)控系統(tǒng)與面板智能處理單元的接口是標(biāo)準(zhǔn)的,操作面板的信息處理基本上不占用數(shù)控系統(tǒng)CPU的時(shí)間,而且面板智能處理單元本身成為一個(gè)標(biāo)準(zhǔn)化模塊。圖1為數(shù)控銑床面板智能處理單元的原理圖。圖中,數(shù)控銑床手動(dòng)操作面板的輸入/輸出信息大致有以下幾類:
圖1 數(shù)控銑床面板智能處理單元原理圖
1)工作方式選擇:手動(dòng)/自動(dòng)/回原點(diǎn)
2)單步進(jìn)給量選擇
3)連續(xù)進(jìn)給速度選擇
4)進(jìn)給速度倍率選擇
5)進(jìn)給坐標(biāo)選擇
6)主軸電機(jī)、泵、電磁離合制動(dòng)器等的通/斷控制
7)急停
8)暫停及顯示
9)進(jìn)給坐標(biāo)超行程顯示
10)故障顯示
其中,工作方式、單步進(jìn)給量和連續(xù)進(jìn)給速度等的選擇與進(jìn)給速度倍率選擇分別用轉(zhuǎn)換開關(guān)1和轉(zhuǎn)換開關(guān)2在不同狀態(tài)間切換。同一個(gè)轉(zhuǎn)換開關(guān)控制的狀態(tài)具有機(jī)械互鎖,可以避免由于誤操作同時(shí)接通兩個(gè)或兩個(gè)以上具有互鎖關(guān)系的狀態(tài)。圖1中其余的輸入/輸出量均由單片機(jī)的I/O口直接控制,可保證多個(gè)狀態(tài)同時(shí)可靠地輸入/輸出。
3 系統(tǒng)軟件
89C51/52單片機(jī)數(shù)控機(jī)床面板智能處理單元上電復(fù)位初始化后,進(jìn)入中斷工作狀態(tài),允許定時(shí)中斷和串行中斷。在定時(shí)中斷中,將檢測(cè)輸入狀態(tài)有無變化,并將變化了的輸入狀態(tài)由串口發(fā)送到數(shù)控系統(tǒng);數(shù)控系統(tǒng)需要由手動(dòng)操作面板顯示的信息從串口發(fā)送給單片機(jī),并由單片機(jī)串行中斷服務(wù)程序作出相應(yīng)的處理
單片機(jī)上電復(fù)位及初始化可以在極短的時(shí)間內(nèi)完成,而數(shù)控系統(tǒng)的初始化則需要較長(zhǎng)的時(shí)間。在數(shù)控系統(tǒng)的初始化沒有完成時(shí),串行通信無法工作,因此單片機(jī)的主程序在完成初始化后,要等待數(shù)控系統(tǒng)從串口發(fā)送“READY”信號(hào),并在接收到“READY”信號(hào)后開始對(duì)操作面板的輸入/輸出進(jìn)行控制。
在定時(shí)中斷服務(wù)程序中,逐一檢查每個(gè)鍵的狀態(tài),若發(fā)現(xiàn)某一個(gè)鍵的狀態(tài)發(fā)生變化,便將新的狀態(tài)從串口發(fā)送到數(shù)控系統(tǒng),同時(shí)退出中斷服務(wù)程序,否則,在檢查完所有鍵后退出中斷服務(wù)程序。為了檢測(cè)鍵狀態(tài)的變化,必須將鍵原先的狀態(tài)存放在內(nèi)存中,用00H表示鍵處于接通狀態(tài),F(xiàn)FH表示鍵處于斷開狀態(tài)。當(dāng)讀到某個(gè)鍵處于接通狀態(tài)時(shí),先判斷其內(nèi)存中的值是 80H還是<80H,若內(nèi)存中值 80H,說明鍵原來處于斷開狀態(tài),將其減1后若 FCH,則存入內(nèi)存,若
圖3 狀態(tài)轉(zhuǎn)移圖
4 結(jié)論
本文提出了一種新的基于89C51/52單片機(jī)數(shù)控機(jī)床面板智能處理單元,從理論分析和實(shí)際應(yīng)用可以得到以下結(jié)論:
(1)面板智能處理單元滿足數(shù)控機(jī)床手動(dòng)操作面板的功能需求,軟硬件設(shè)計(jì)合理,可靠性高;
(2)利用串行通信,使手動(dòng)操作面板成為一個(gè)接口簡(jiǎn)單并且標(biāo)準(zhǔn)的模塊;
(3)本文提出了一種軟件消除鍵抖動(dòng)的算法,該算法具有可靠和簡(jiǎn)單等優(yōu)點(diǎn);
(4)面板智能處理單元具有很好的擴(kuò)展性,可以十分方便地?cái)U(kuò)展單點(diǎn)輸入/輸出口,還可以帶動(dòng)數(shù)碼或液晶顯示。