袁海兵
(湖北汽車工業(yè)學(xué)院 機(jī)械工程系,湖北 十堰 442002)
深孔加工刀具保護(hù)系統(tǒng)的軟件開發(fā)
袁海兵
(湖北汽車工業(yè)學(xué)院 機(jī)械工程系,湖北 十堰 442002)
介紹了以PIC16F877單片機(jī)為控制器的深孔加工刀具保護(hù)系統(tǒng)軟件的開發(fā)過程,采用CCS C語言進(jìn)行開發(fā),程序采用模塊化設(shè)計,包括參數(shù)輸入、LCD圖形顯示、EEPROM讀寫操作、數(shù)據(jù)采集等功能控制模塊,給出了部分代碼示例,對類似的嵌入式系統(tǒng)軟件開發(fā)有參考意義。
深孔加工;刀具保護(hù);PIC16F877單片機(jī);軟件開發(fā)
許多零件都存在深孔加工的問題,特別是細(xì)小深孔加工,加工時排屑困難,發(fā)熱嚴(yán)重,刀具強(qiáng)度會降低,易于折斷,折斷的刀具殘留在被加工零件中,導(dǎo)致被加工零件報廢,嚴(yán)重影響加工質(zhì)量,因此研制一種價格低廉、性能優(yōu)良的深孔加工刀具保護(hù)系統(tǒng)就顯得尤為重要,本文對一款深孔自動加工刀具過載保護(hù)系統(tǒng)[1],使用過程中出現(xiàn)的一些問題和用戶要求,對系統(tǒng)進(jìn)行改進(jìn),增加系統(tǒng)的穩(wěn)定性,使界面更加人性化。
刀具保護(hù)系統(tǒng)能自動對深孔加工過程進(jìn)行監(jiān)控,在刀具主軸上安裝有測力傳感器,對刀具的軸向力進(jìn)行監(jiān)控,將檢測值與設(shè)定值比較,當(dāng)?shù)毒咻S向力超過設(shè)定值時,則自動停機(jī),同時發(fā)出聲光報警,系統(tǒng)能同時對4把刀具進(jìn)行監(jiān)控[1]。
刀具保護(hù)系統(tǒng)的控制計算機(jī),采用美國Microchip公司生產(chǎn)PIC16F877單片機(jī)。PIC16F877具有8 kB FLASH ROM,256 B EEPROM,8路10 bit的A/D通道[2-3]。自帶A/D功能模塊,單片機(jī)可直接與傳感器相連,減少了外圍電路。片內(nèi)256字節(jié)的EEPROM,用來保存?zhèn)鞲衅鞯臉?biāo)定數(shù)據(jù)和系統(tǒng)的各項設(shè)置參數(shù)。
采用圖形點陣式液晶模塊TM240×128作為顯示器,數(shù)據(jù)顯示直觀,易于實現(xiàn)多層目錄。采用3×4行列鍵盤作為輸入設(shè)備。
系統(tǒng)硬件結(jié)構(gòu)分為4個部分:
1)鍵盤輸入模塊:RB端口的RB1~RB7引腳組成3×4行列式鍵盤。
2)LCD顯示模塊:RD端口組成8位并行數(shù)據(jù)總線,RE端口的RE0~RE2組成控制總線。
3)采集模塊:PIC16F877的RA端口的A/D通道RA0-RA3作為4路刀具軸向力采樣通道。
4)電機(jī)控制和聲光報警模塊:采用RC端口控制。
系統(tǒng)組成和單片機(jī)的引腳分配如圖1所示。
圖1 深孔加工刀具過載保護(hù)系統(tǒng)組成
Microchip公司的單片機(jī)開發(fā)語言主要有 2種:一種是Microchip公司免費提供的匯編語言,特點是靈活,但開發(fā)周期長,代碼不易閱讀;一種是嵌入式C語言,常見的有HI-TECH C、CCS C、IAR C等,特點是易于掌握,有大量的函數(shù)庫存支持。考慮到開發(fā)周期,本系統(tǒng)選用CCS C語言作為開發(fā)語言,CCS C語言中有大量的PIC單片機(jī)底層硬件操作函數(shù)和常用外部擴(kuò)展的程序示例,帶有實時操作系統(tǒng)RTOS,能并行運行多個任務(wù),結(jié)合Microchip公司的Mplab IDE,方便進(jìn)行程序調(diào)試和在線編程。
軟件采用模塊化結(jié)構(gòu)設(shè)計,結(jié)構(gòu)分為兩部分:硬件驅(qū)動程序及應(yīng)用主程序。硬件驅(qū)動子程序主要有參數(shù)輸入功能模塊、LCD圖形顯示功能模塊、EEPROM讀寫功能模塊、數(shù)據(jù)采集功能模塊。主程序中調(diào)用驅(qū)動子程序,程序易于閱讀和修改。
本系統(tǒng)采用3×4行列式鍵盤,分別為0~9數(shù)字按鍵和 “取消”、“確定”2個功能按鍵,采用PIC16F877單片機(jī)的RB端口中的引腳RB1~RB4構(gòu)成行掃描控制線,引腳RB5~RB7構(gòu)成列掃描控制線,結(jié)構(gòu)如圖2所示。
圖2 行列鍵盤結(jié)構(gòu)及引腳
鍵盤掃描子程序,對12個按鍵進(jìn)行識別,執(zhí)行相應(yīng)的動作,需要對按鍵進(jìn)行編碼。數(shù)字按鍵0~9對應(yīng)的編碼依次為00H、01H、02H…09H,“取消”按鍵對應(yīng)編碼為0AH,“確認(rèn)”按鍵編碼為0BH,若無任何按鍵按下,為了和有效的按鍵編碼區(qū)分開,定義一個無鍵按下時的返回碼0ABH,在程序中通過對按鍵編碼進(jìn)行判斷,從而執(zhí)行不同的功能。采用軟件延時的方法消除按鍵抖動。
在CCS C語言中包含有3×4鍵盤驅(qū)動程序KBD.C,在程序中采用函數(shù)kbd_init()對鍵盤進(jìn)行初始化,由kbd_getc()可返回按鍵編碼。
系統(tǒng)中采用型號為TM240×128的圖形液晶模塊作為顯示屏,其內(nèi)置T6963C液晶控制器,具有8k顯示緩沖區(qū)[4],要在液晶模塊上顯示漢字、字符和表格,需采用液晶控制器T6963C的控制指令,將需要顯示的字符和圖形以二進(jìn)制的形式,寫入液晶模塊8k的顯示緩沖區(qū)RAM中。
首先將液晶顯示模塊8k的顯示緩沖區(qū)RAM劃分為文本顯示區(qū)(2kB)、圖形顯示區(qū)(4kB)、字符點陣CGRAM區(qū)(2kB),顯示緩沖區(qū)分配如圖3所示。在LCD上顯示的文字?jǐn)?shù)據(jù)寫到文本顯示緩沖區(qū)中,線條等圖形數(shù)據(jù)寫到圖形顯示緩沖區(qū)中,自定義的漢字符號點陣信息寫到CGRAM區(qū)中。
圖3 顯示緩沖區(qū)分配
液晶控制器T6963C內(nèi)部自帶有字符點陣庫CGROM,含有大小寫英文字母、數(shù)字、常見標(biāo)點符號、日文片假名等點陣數(shù)據(jù),共128個字符,每個字符有對應(yīng)的編碼,應(yīng)用時可直接調(diào)用字符的編碼,但T6963C自帶字符為8×8圖形點陣,字形較小,作為控制儀表界面不易辯認(rèn),并且T6963C內(nèi)部沒有漢字的圖形點陣庫,因此軟件的開發(fā)過程中,自定義16×16宋體漢字點陣,利用網(wǎng)絡(luò)共享軟件“Hzdotreader.exe”,將LCD圖形界面顯示所需的漢字如“刀具”、“上限值”等漢字生成相應(yīng)的16×16圖形點陣,以二進(jìn)制數(shù)據(jù)的方式存儲在CGRAM中,每個漢字占32字節(jié)空間,對于容量為2 kB的CGRAM最多可存放64(2048/32)個漢字,能夠滿足軟件圖形界面的要求,考慮到日常習(xí)慣,數(shù)字0~9采用8×16的點陣,即2位數(shù)字寬度與1個漢字的寬度相同,每個數(shù)字在CGRAM中占用16字節(jié),數(shù)字和漢字統(tǒng)一編碼。
為在圖形LCD模塊上顯示刀具保護(hù)的相關(guān)數(shù)據(jù),完成圖形界面,定義以下基本函數(shù)glcd_init(mode),glcd_line(x1,y1,x2,y2),glcd_rect(x1,y1, x2,y2,fill),glcd_circle(x,y,radius),glcd_text(x, y,textptr),其中函數(shù)glcd_init對LCD的圖形模式和文本模式進(jìn)行切換,函數(shù) glcd_line、glcd_rec、glcd_circle分別完成直線、矩形、圓弧的繪制,函數(shù)glcd_text在指定位置上顯示文本信息。
系統(tǒng)中需保存設(shè)定參數(shù),如軸向力傳感器的標(biāo)定數(shù)值、軸向力上限值。PIC16F877單片機(jī)具有256 B EEPROM,將設(shè)定參數(shù)保存在EEPROM中,在設(shè)備通電運行時,將EEPROM中保存的設(shè)定參數(shù)值讀入到PIC16F877片內(nèi)RAM中。
在軟件開發(fā)中,采用CCS C語言內(nèi)置函數(shù)write_eeprom(address,value)和read_eeprom(address)完成EEPROM的讀寫操作。對指定EEPROM存儲單元的讀寫代碼如下:
刀具主軸上安裝有測力傳感器,對刀具軸向力進(jìn)行在線監(jiān)控,傳感器輸出0~5V的電壓信號,采用PIC16F877單片機(jī)的RA端口的10位A/D通道轉(zhuǎn)換,轉(zhuǎn)換精度可達(dá)0.1%,滿足系統(tǒng)的精度要求。
CCSC語言中有AD操作的內(nèi)置函數(shù),分別為set_adc_channel()和read_adc(),讀取指定通道的A/D轉(zhuǎn)換數(shù)值。在刀具軸向力數(shù)據(jù)采樣過程中,為消除數(shù)值波動,采用平均濾波的方法,即采樣16次,采用平均值作為有效數(shù)值,代碼如下所示:
圖4 程序流程圖
圖5 刀具監(jiān)控主界面
在驅(qū)動子程序的基礎(chǔ)上,開發(fā)主程序。主程序主要由兩部分組成:參數(shù)設(shè)置和實時監(jiān)控,程序流程如圖4所示。在程序掃描過程中,“取消”按鍵按下,則進(jìn)入系統(tǒng)主界面,對系統(tǒng)各項參數(shù)進(jìn)行設(shè)置,包括刀具軸向力上限值、軸向力傳感器標(biāo)定等;沒有按鍵按下,系統(tǒng)自動進(jìn)入刀具監(jiān)控,通過與刀具軸向力上限值比較,超過上限值時則自動停止加工。
刀具監(jiān)控主界面如圖5所示,系統(tǒng)能同時顯示4路通道的監(jiān)控數(shù)據(jù),主要有刀具的實時軸向力大小和上限值等,為方便操作者觀察,采用進(jìn)度條按比例顯示,當(dāng)?shù)毒咻S向力超過上限值時,進(jìn)度條會明暗交替閃爍。
以上介紹了深孔加工刀具保護(hù)系統(tǒng)軟件的開發(fā)過程,以PIC16F877單片機(jī)為控制器,采用CCS C語言進(jìn)行開發(fā),程序采用模塊化設(shè)計,包括鍵盤控制、LCD圖形顯示、EEPROM讀寫控制、數(shù)據(jù)采集等功能控制模塊,給出了各個模塊CCSC語言的操作函數(shù)和部分代碼示例,相比原有的刀具監(jiān)控系統(tǒng),系統(tǒng)更加穩(wěn)定,界面友好,對類似的嵌入式系統(tǒng)軟件開發(fā)有參考意義。
[1]邱新橋,孫海明,田玉冬,等.深孔自動加工刀具過載保護(hù)系統(tǒng)的研制 [J].湖北汽車工業(yè)學(xué)院學(xué)報,2002,16(1):5-9.
[2]李學(xué)海.PIC單片機(jī)實用教程—提高篇 [M].2版.北京:北京航空航天大學(xué)出版社,2007.
[3]王有緒.PIC系列單片機(jī)接口技術(shù)及應(yīng)用系統(tǒng)設(shè)計[M].北京:北京航空航天大學(xué)出版社,2000.
[4]北京精電蓬遠(yuǎn)顯示技術(shù)有限公司.內(nèi)藏T6963C控制驅(qū)動器圖形液晶顯示模塊使用手冊[K].2001.
Software Development of Tool Bit Protection System for Deep Hole Processing
Yuan Haibing
(Dept.of Mechanical Engineering,Hubei Automotive Industries Institute,Shiyan 442002,China)
The software development process of tool bit protection system for the deep hole processing with MCU PIC16F877 as the controller is introduced.The language of CCS C is used for the development and the program is based on modular design including parameter input,LCD graphic display,EEPROM read/write operation,data collection and other function control modules.The parts of the code examples are provided.This study is of reference significance for the development of the similar embedded system software.
deep hole processing;tool bit protection;MCU PIC16F877;software development
TP273
A
1008-5483(2011)02-0039-04
2011-03-20
袁海兵(1977-),男,湖北紅安人,碩士,主要從事測試與控制技術(shù)研究。