摘要:本文提出一種在PCNC控制系統中,借助CMOS數據區為PCNC設備增加工況記憶功能的方法,可以方便地實現數控設備工況信息的分析與保存,利用相對增量式編碼器實現絕對增量式編碼器的功能且無須修改或增添其它硬件。文中還指出了這一數據區的其它用途。
關鍵詞:記憶功能,PCNC,工況,編碼器
1 問題的提出
隨著計算機應用技術在工業領域中的不斷深入,借助計算機作為控制核心的數控設備在企業中已得到十分廣泛的應用,其中微型機因其系統的開放性與軟件的豐富性,近年來更有一大批專用接口與之配套,例如A/D、D/A、I/O、Amp.、通訊、SSR端口等。事實上基于微機的ISA總線、PCI總線的工業控制用計算機業已成為一種工業標準。記錄工控設備的工況是工控設備的基本功能之一。例如機床刀架現在位置,設備現行加工模式,運動模式等均是保證設備加工質量以及設備安全的重要控制參數。又例如,在突發事件發生后,若造成設備斷電,在斷電前設備處于何種工況,也是控制系統啟動后需要了解的工況信息。因此,作為工業控制用計算機或多或少總要保存一些信息,借以提高設備智能,減少人工干預時間。然而常用于伺服控制系統的伺服控制卡、相對增量式編碼器、I/O卡等均無斷電保存信息的功能。所以,為保存設備位置、工況等信息就要修改接口設計或采用絕對增量式編碼器,由此造成控制系統成本增加是不可避免的,少則千余元,多則數千元。
雖然保存數據信息可以采用磁盤,但是磁盤的訪問時間太長,實時控制性能較差。如果采用電子盤技術,雖然速度問題可以解決,但價格太高。因此,能否利用設備已有的資源來完成工況信息保存工作,就成為一個十分有研究意義的問題。
2 實現方法
資料表明,自80286微機問世以來,微機主板上就多了一塊可用于保存系統時間與系統配置的專用CMOSRAM芯片,系統斷電后由鋰電池為其保持數據不丟失。在其存儲空間中系統信息占用的數據長度為64個字節。然而,實踐表明此芯片的存儲容量一般為128個字節或更多。所以,用戶至少還有64個字節可以支配,這一豐富的資源用于工業控制,可以保存多達15個軸的浮點位置信息,另外還可以將其余4個字節用于保存設備的多達上億的工況狀態編碼,或者利用64個字節保存512路I/O信息等,這樣的信息保存量對絕大多數采用微機為控制中心的數控設備來講是完全可以滿足要求的。
DOS技術資料表明,對微機中CMOSRAM數據區內容作讀寫操作要利用兩個端口來實現,標準規定采用尋址端口0X70寫入要訪問的數據區地址,而由數據讀寫端口0X71完成讀出或寫入一個字節信息的操作[1][2]。下面用C語言編寫的一小段程序來說明如何從芯片的存儲區中讀出或寫入數據。
{
unsignedcharstate[64],index,last_state[64];
…//以下是讀端口中的內容
disable();//關閉中斷
for(index=0;index<64;index++){
outportb(0x70,0x40+index);//向尋址端口寫入待訪問地址
last_state[index]=inportb(0x71);
//讀入CMOS中已存的數據
}
enable();//允許中斷
//工況分析與設備工況調整
…//填寫設備工況至數組state中
disable();
for(index=0;index<64;index++){
outportb(0x70,0x40+index);//向尋址端口寫入待訪問地址
outportb(0x71,state[index]);//將工況信息寫入CMOS中
}
enable();
…
}
示例程序中在讀寫操作前關閉中斷是為保證讀寫地址不被別的中斷程序或系統程序更改讀寫地址,從而保證記錄讀寫的準確性。
由以上的例子可以看出,即使要完成多個工況的記錄耗時也是極為短暫的。由于在設備控制過程中,作為主控計算機主要工作在中斷模式下[2],所以主控計算機有足夠的時間來分析、保存實時工況信息,并作出相應的處理。
3 結束語
綜上所述,借助微機的CMOS數據區,可以保證高效快速地存儲與獲取數據。必要時,將上述程序置于一中斷程序中,并將用戶保存機器工況的數組state說明成為全局變量,即能在定時中斷時將主程序的執行結果進行刷新,從而達到保存信息的目的。
此外,在測控系統設計中,往往要求在兩程序之間作信息的相互傳遞,此時也可以將CMOSRAM區作為一個信息存放站,用于說明兩程序現在各自的工作狀況及用于數據交換。除交換與保存信息之外,用戶還可以利用這一塊數據區中的某幾個字節在軟件安裝時寫入軟件的特征代碼,以便使軟件及數據得到些許加密保護。
筆者在十余年來的工業測控系統研制與開發中,采用本技術節省的資金已達數萬元,若推廣使用,相信能為我國數控設備制造業帶來一筆可觀的利潤,并且改善設備的性能。以年產一百臺二坐標機床的中小企業為例,以每臺二坐標設備用相對編碼器替代絕對編碼器節省硬件投資6000元計,每年就可以節省約60萬元,其潛在社會效益和經濟效益不容置疑。