摘 要:本文提出了基于89C51/52單片機的數控機床面板智能處理單元,介紹了其工作原理和系統軟硬件,設計了一種新的軟件消除鍵抖動算法。該處理單元通過標準串口與數控系統交換信息,已經用了三坐標數控銑床手動操作面板的控制,軟硬件均可以可靠工作。
關鍵詞:數控機床;單片計算機;串行通信
分類號:TP368.2 文獻標識碼:A
文章編號:1001-2265(2000) 02-0027-02
89C51/52-based flexible panel adapter for CNC machine tools
Mao Junhong Zhao Zhongsheng Li Lichuan
Abstract:A flexible panel adapter for CNC machine tools based on 89C51/52 single-chip computer is presented.The hardware and software of this adapter are described.A new design for noise rejection using state transfer graphs is given.This adapter is interfaced with CNC systems via standard RS232 serial port and has been applied to a 3-axis CNC milling machine tool.
Key words:CNC machine tool;single chip computer;serial communication
1 引言
在數控機床中,手動操作面板總是必不可少的,其特點是1.有些輸入量是互斥的,不允許誤操作,由機械的互鎖關系來保證要求;2.鍵的通/斷用電平觸發不同狀態,而不是用沿觸發不同狀態;3.允許多個狀態同時輸入并可靠地做出相應的反應;4.能對設備當前狀態進行必要的提示,如使用信號燈、發光二級管或液晶顯示屏。現有的設計大多將手動操作面板的輸入/輸出作為開關量I/O的一部分,統一由一臺內置的或外置的可編程控制器(PLC)進行控制。數控機床生產廠家根據自己機床的工藝特點,購買數控系統,經過二次開發,形成工藝性能和操作互不相同的數控機床產品。二次開發的工作量絕大部分在于開關量I/O的設計,而其中又有60%以上的工作是根據工藝性能與操作設計手動操作面板[1]。事實上,手動操作面板的輸入/輸出僅僅是控制信號開關量I/O,對其驅動能力的要求很低,是一類特殊的數控機床開關量I/O。如果將手動操作面板的輸入/輸出與數控機床其它開關量I/O不加以區別,會大大增加數控系統二次開發的工作量,數控機床手動操作面板無法標準化和模塊化,其經濟性也會受到很大影響。
本文提出了一種基于89C51/52單片機的數控機床面板智能處理單元,該處理單元通過標準串口與數控系統交換信息,可以顯示數控機床的基本狀態和對其進行手動操作。該工作是國家863計劃“PC外設型完備數字機床及其關鍵技術研究”的一部分研究內容,已經用于三坐標數控銑床。
2 工作原理
89C51/52單片機具有片內ROM、16位計數和標準串口[2]。在89C51/52單片機構成數控機床面板智能處理單元中,一般不需要外部擴展ROM和RAM,單片機I/O口的一位對應一個輸入/輸出量,若單片機I/O口不夠,可以進行擴展。單片機以定時中斷檢測輸入,一旦發現輸入電平變化,就將其對應的新狀態由串口發送給數控系統。另一方面,數控系統通過串口將需要顯示的信息發送給單片機。由于采用了串行通信,數控系統與面板智能處理單元的接口是標準的,操作面板的信息處理基本上不占用數控系統CPU的時間,而且面板智能處理單元本身成為一個標準化模塊。圖1為數控銑床面板智能處理單元的原理圖。圖中,數控銑床手動操作面板的輸入/輸出信息大致有以下幾類:
圖1 數控銑床面板智能處理單元原理圖
1)工作方式選擇:手動/自動/回原點
2)單步進給量選擇
3)連續進給速度選擇
4)進給速度倍率選擇
5)進給坐標選擇
6)主軸電機、泵、電磁離合制動器等的通/斷控制
7)急停
8)暫停及顯示
9)進給坐標超行程顯示
10)故障顯示
其中,工作方式、單步進給量和連續進給速度等的選擇與進給速度倍率選擇分別用轉換開關1和轉換開關2在不同狀態間切換。同一個轉換開關控制的狀態具有機械互鎖,可以避免由于誤操作同時接通兩個或兩個以上具有互鎖關系的狀態。圖1中其余的輸入/輸出量均由單片機的I/O口直接控制,可保證多個狀態同時可靠地輸入/輸出。
3 系統軟件
89C51/52單片機數控機床面板智能處理單元上電復位初始化后,進入中斷工作狀態,允許定時中斷和串行中斷。在定時中斷中,將檢測輸入狀態有無變化,并將變化了的輸入狀態由串口發送到數控系統;數控系統需要由手動操作面板顯示的信息從串口發送給單片機,并由單片機串行中斷服務程序作出相應的處理,其程序框圖如圖2所示,其中圖2(a)為主程序框圖,圖2(b)為定時中斷服務程序框圖,圖2(c)為串行中斷服務程序框圖。
圖2 程序框圖
單片機上電復位及初始化可以在極短的時間內完成,而數控系統的初始化則需要較長的時間。在數控系統的初始化沒有完成時,串行通信無法工作,因此單片機的主程序在完成初始化后,要等待數控系統從串口發送“READY”信號,并在接收到“READY”信號后開始對操作面板的輸入/輸出進行控制。
在定時中斷服務程序中,逐一檢查每個鍵的狀態,若發現某一個鍵的狀態發生變化,便將新的狀態從串口發送到數控系統,同時退出中斷服務程序,否則,在檢查完所有鍵后退出中斷服務程序。為了檢測鍵狀態的變化,必須將鍵原先的狀態存放在內存中,用00H表示鍵處于接通狀態,FFH表示鍵處于斷開狀態。當讀到某個鍵處于接通狀態時,先判斷其內存中的值是?80H還是<80H,若內存中值?80H,說明鍵原來處于斷開狀態,將其減1后若?FCH,則存入內存,若<FCH,則表明連續3次讀入鍵接通,即鍵的狀態由斷開變為接通,將內存清為00H(接通狀態);若內存中的值<80H,說明鍵原來處于接通狀態,鍵的狀態沒有改變,將內存清為00H(由于有各種擾動,內存中可能是一個<03H的數)。當讀到某個鍵處于斷開狀態時,仍先判斷其內存中的值是?80H還是<80H,若內存中的值?80H,說明鍵原來處于斷開狀態,鍵的狀態沒有改變,將內存置為FFH(由于有各種擾動,內存中可能是一個?FCH的數);若內存中的值<80H,說明鍵原來處于接通狀態,將其加1后若<04H,則存入內存,若?04H,則表明連續3次讀入鍵斷開,即鍵的狀態由接通變為斷開,將內存置為FFH(接通狀態)。這樣可以有效避免由于鍵抖動和其它干擾造成的誤判斷。這些過程可以準確地用圖3所示的狀態轉移來加以描述。
圖3 狀態轉移圖
4 結論
本文提出了一種新的基于89C51/52單片機數控機床面板智能處理單元,從理論分析和實際應用可以得到以下結論:
(1)面板智能處理單元滿足數控機床手動操作面板的功能需求,軟硬件設計合理,可靠性高;
(2)利用串行通信,使手動操作面板成為一個接口簡單并且標準的模塊;
(3)本文提出了一種軟件消除鍵抖動的算法,該算法具有可靠和簡單等優點;
(4)面板智能處理單元具有很好的擴展性,可以十分方便地擴展單點輸入/輸出口,還可以帶動數碼或液晶顯示。