音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

Windows平臺下壓鑄機控制系統(tǒng)的研究

出處:cgkdxx 發(fā)布于:2007-04-29 02:44:09

Windows平臺下壓鑄機控制系統(tǒng)的研究

阜新遼寧工程技術大學點氣工程系(123000)
呂振 劉寶良 陳國志 孟令航


Windows是一個基于消息的非搶先式多任務操作系統(tǒng),將其用于壓鑄機實時控制,有很多的困難與挑戰(zhàn)。本文薦于實際工作中遇到的問題,對基于Windows的壓鑄機控制系統(tǒng)進行了研究。

1 Windows的運行機制

Windows9x操作系統(tǒng)由內(nèi)核、設備驅(qū)動程序和大量的動態(tài)鏈接庫及應用程序組成。Windows9x操作系統(tǒng)的結構如圖1所示。Windows9x內(nèi)核與設備驅(qū)動程序運行在保護模式的Ring0級,稱為態(tài);而一般應用程序與動態(tài)鏈接庫運行在Ring3級,稱為用戶態(tài)。熟悉80386保護模式體系的人都知道,Ring3代碼不能直接調(diào)用Ring0代碼,在Windows9x操作系統(tǒng)中與硬件設備打交道的程序代碼必須運行在態(tài)Ring0級。運行在用戶態(tài)Ring3級的代碼必須通過態(tài)Ring0級代碼才能訪問硬件。即使在用戶態(tài)Ring3級執(zhí)行的所謂輸入輸出指令in、out等實際上也隱含調(diào)用了態(tài)Ring0級代碼才得以執(zhí)行。Windows9x由內(nèi)核統(tǒng)一管理所有的系統(tǒng)資源。在保護模式下運行時,創(chuàng)建特定的內(nèi)存區(qū)域--虛擬機VM。每個虛擬機都有完整的地址空間、I/O空間以及中斷向量表等系統(tǒng)資源。真正的系統(tǒng)--虛擬機管理程序VMM以時間片中斷調(diào)度各個虛擬機,這是多任務的本質(zhì)和要求。


由以上分析,開發(fā)基于Windows的工控系統(tǒng),需要解決的兩個關鍵問題是:

(1)實時性

實時性要求開發(fā)的系統(tǒng)能實時處理中斷,并能處理定時事件。但Windows9x是一個基于消息機制的非搶先式多任務操作系統(tǒng),而且設計初衷是面向事務處理,對多任務和圖形用戶界面的支持難免使得系統(tǒng)運行速度下降;其保護系統(tǒng)和內(nèi)核運行機制也使用于系統(tǒng)切換的時間無法確定。通常,Windows下的中斷響應時間是DOS下的1/20;基于消息的機制和非剝奪性,當消息隊列中的某個消息沒有響應時,整個系統(tǒng)處于阻塞狀態(tài),無法響應其他操作。事實上,一個基于Windows的實時操作系統(tǒng),以下三個時間是非常重要的:

·中斷由操作系統(tǒng)和設備驅(qū)動程序屏蔽的時間;

·設備驅(qū)動程序處理中斷的時間;

·從中斷開始到任務執(zhí)行的中斷延遲。

通常情況下,這些參數(shù)都是不可預測的,只能通過具體的實驗進行確定。這不但加大了實時應用系統(tǒng)的難度,而且是系統(tǒng)不穩(wěn)定的重要因素。

(2)設備相關性

設備相關性是指系統(tǒng)能很好地控制硬件,包括I/O端口的讀寫、內(nèi)存直接讀寫和中斷服務設備無關性問題,亦即Windows9x下直接訪問外設的問題。但是,因為Windows9x是多任務操作系統(tǒng),設備保護在Windows下是必需的。它的保護系統(tǒng)用來保護用戶數(shù)據(jù)和程序不受同一系統(tǒng)內(nèi)同時運行的其他程序的干擾,保護物理設備不受未經(jīng)允許的訪問。Windows系統(tǒng)的一個重要宗旨就是程序員對硬件操作的透明性,屏蔽了對底層硬件的直接訪問,由操作系統(tǒng)統(tǒng)一管理所有的硬件資源和硬件訪問。這使得Windows一般用戶在Windows下完成硬件操作具有較大的難度。 2 Windows下壓鑄機實時控制的實現(xiàn)

2.1 壓鑄機系統(tǒng)的功能和要求

J11280型臥式冷室壓鑄機控制系統(tǒng),主要的性能要求是:

·能夠完成調(diào)整、聯(lián)動兩種工作機制;

·壓鑄工作過程的某些過程和工作參數(shù)具有實時動態(tài)可調(diào)性和可選性;

·具有對壓鑄過程中各個行程開關、按鈕、繼電器等狀態(tài)實時監(jiān)控和顯示功能;

·實時檢測合型力、壓射速度和油壓,用實時曲線顯示,具備保存和打印的功能;

·實時故障診斷與故障處理的功能。

壓鑄機控制系統(tǒng)結構見圖2。其中,合型力檢測的采樣周期為0.5ms油壓檢測的采樣周期為5ms,位移傳感器接觸壓射桿產(chǎn)生的脈沖信號經(jīng)變換處理作為壓鑄機的外部中斷,配合A/D板卡上的8253計數(shù)器,完成速度檢測??梢钥闯?,由于控制過程采樣周期極短,并有大量的數(shù)據(jù)計算和邏輯判斷以及在線動態(tài)檢測、監(jiān)視和參數(shù)調(diào)整,整個系統(tǒng)對實時性的要求很高。


2.2 使用設備驅(qū)動程序?qū)崿F(xiàn)實時控制

設備驅(qū)動程序作為操作系統(tǒng)內(nèi)核的一部分,處于Ring0層,具有直接操作硬件等特權。在實時控制中,中斷技術應用得十分廣泛,其中實時時鐘的獲得基本上都是通過中斷來實現(xiàn)。時鐘控制在實時控制中處于十分重要的地位,它負責推進控制過程、激活各控制任務或發(fā)相關控制消息,起到了總控制器的作用。在Windows9x下實時時鐘的獲得可以有不同的方法。設置Win32定時器并通過響應WM_TIMER消息進行實時處理是簡單的方法。但是由于WM_TIMER消息的低優(yōu)先級和未處理消息在消息隊列中的排隊造成了系統(tǒng)實時處理的不穩(wěn)定,因此這種方法只適合實時性要求不高的應用。若采用Windows多媒體定時器,通過設置回調(diào)函數(shù)可以獲得為1ms的定時信號;但是由于占用了系統(tǒng)寶貴的資源,而且當定時信號由用戶提供或需要更高的中斷頻率時,這種方法就顯得無能為力了。與類似軟件中斷的方法相比,基于硬件中斷的方法占據(jù)了主導地位,并在絕大多數(shù)的實時系統(tǒng)中得到了應用。因為它保證了對實時控制系統(tǒng)至關重要的可靠性。

經(jīng)過筆者探索,在Windows9x環(huán)境下,在虛擬設備驅(qū)動程序中對硬件直接編程并掛接中斷的思路,有兩種實現(xiàn)方法:

(1)對8253直接編程

8253定時器是計算機跳動的心臟,在計算機系統(tǒng)進入Windows前對8253重新編程,將周期從18.2s修改為所希望的周期。修改INT8中斷服務程序,每次定時時間到就調(diào)用另一新中斷號,并累計時間;若為55ms,則轉(zhuǎn)入舊INT 8中斷服務程序的入口進入Windows以后掛接新的時鐘中斷即可實現(xiàn)所希望的定時時鐘。使用這種方法可以滿足任意。 (2)對CMOS實時時鐘直接編程

與上述方法相比,對CMOS實時時鐘進行編程獲得定時中斷的方法顯得更加優(yōu)越,所需的硬件知識相對較少,操作也相對簡便。在PC機中,CMOS實時時鐘似乎是沒有現(xiàn)成的虛擬設備驅(qū)動程序的PC機硬件設備,所以可以直接開發(fā)VxD驅(qū)動程序來操作實時時鐘。通常,實時時鐘芯片的基本頻率初始化為32.768kHz,由它驅(qū)動內(nèi)部時鐘電路,同時對內(nèi)部寄存器A(D3~D0)編程選擇22個分頻級之一,使其按確定的頻率以寄存器B指定的方式周期性地輸出方波或中斷信號,作為實時鐘中斷信號經(jīng)反向直接連到8259A-5從片的第0級--IRQ8然后把實時任務直接掛接到實時鐘中斷上,在中斷處理函數(shù)中進行實時任務處理。使用這種方法可獲得8.192kHz周期為0.1ms的中斷頻率,足以滿足系統(tǒng)的要求。需要注意:與上述方法類似,掛接中斷時,進入自己的中斷前必須保護好原先的中斷狀態(tài),退出時恢復,否則,系統(tǒng)將崩潰。

無論使用哪種方法,都不可避免地與Windows中斷打交道。但是,VxD沒有義務必須向系統(tǒng)傳遞中斷消息,相反,它完全可以自己截獲中斷,進行實時處理。本文采用了對CMOS時鐘直接編程的方法,運行良好。 總之,使用虛擬設備驅(qū)動程序直接控制硬件,解決了Windows環(huán)境下的設備無關性問題,同時保證了實時控制所需要的實時時鐘和中斷控制。但是,虛擬設備驅(qū)動程序編程要求技術人員對Windows內(nèi)核比較清楚,對底層硬件比較了解,也需要一定的匯編知識。由于Windows內(nèi)核資料非常少且大都較晦澀,有關VxD編程的部分更是艱深,所以使用這種方法有相當?shù)碾y度。而且這種方法易給系統(tǒng)帶來隱患,有可能造成Windows系統(tǒng)本身不穩(wěn)定,還要考慮兼容性和效率問題,在實際開發(fā)時需要小心謹慎。 2.3 保證系統(tǒng)性能的其他技術

上一小節(jié)解決了重要的實時性和設備相關性的問題,但是,考慮效率和性能,本系統(tǒng)研究了有關的增強系統(tǒng)性能的技術。實踐證明,效果比較明顯。

(1)多線程

Windows系統(tǒng)的基本單元是線程,線程是可供系統(tǒng)調(diào)用的單元。一個進程可有多個線程,系統(tǒng)調(diào)度程序?qū)ⅲ茫校盏臅r間片劃分給各個線程,各個線程在各自的時間片內(nèi)使用CPU,從而實現(xiàn)了微觀上的輪流執(zhí)行和宏觀上的并發(fā)執(zhí)行。在實時性要求很高的工控系統(tǒng)中,如何避免程序反應遲鈍以及死鎖問題是關鍵之一。利用多線程技術,是提高效率的有效途徑,不僅可以挖掘潛在的CPU空閑時間,還可以提高程序的反應速度。這在有多個任務需要完成且有巨大數(shù)據(jù)流量的程序中反映尤其明顯。根據(jù)系統(tǒng)要求,本主控制臺程序?qū)崿F(xiàn)了一個控制系統(tǒng)主要運行過程的主線程、一個負責壓鑄機工作過程的壓鑄過程線程(工作者線程)和一個實現(xiàn)速度壓力曲線的顯示線程(用戶界面線程)。主線程在每個Windows應用程序啟動時由操作系統(tǒng)創(chuàng)建,不可或缺。在主線程中,主要負責線程間的同步、向壓鑄過程線程和顯示線程傳遞參數(shù)、管理人機界面、故障處理與實時檢測、與用戶交互等功能。顯示線程負責從共享內(nèi)存讀出數(shù)據(jù)并以動態(tài)曲線的形式在屏幕上繪制,保存實時曲線作為歷史紀錄以及讀取曲線歷史紀錄的功能。壓鑄過程線程控制壓鑄機的整個工作過程,包括數(shù)據(jù)采集、邏輯控制、算法實現(xiàn)及相關的處理。實踐證明,多線程的使用,明顯提高了系統(tǒng)特別是實時顯示的性能,增強了系統(tǒng)的效率和穩(wěn)定性。

(2)共享內(nèi)存

數(shù)據(jù)采集系統(tǒng)得到各模擬通道采樣值的轉(zhuǎn)換結果后,應存放在一個規(guī)定的RAM區(qū)。由于Win32程序和虛擬驅(qū)動程序都需要直接訪問此內(nèi)存RAM區(qū),故稱為共享內(nèi)存。有經(jīng)驗的程序員都很清楚Windows的內(nèi)存分頁管理機制,所以應該由VxD中斷功能程序申請后與Win32程序共享,原因不言自明。在VxD中申請連續(xù)內(nèi)存的函數(shù)一般使用:BOOL PageAllocateDWORD nPagesDWORD pTypeVMHANDLE hVMDWORD AlignMaskDWORD minPhysDWORD maxPhysPVOID PhysAddrDWORD FlagsPMEMHANDLE pHandlePPVOID pAddress。注意:必須明確指定pType為開辟VxD和Win32應用程序共享內(nèi)存的PG_VM,其他常量不可??;必須指定Flags為不會被系統(tǒng)分頁交換的PAEGELOCKED;Hvm為使用此循環(huán)寄存器區(qū)的Win32應用程序虛擬機句柄,須在使用PageAllocate前傳到申請內(nèi)存的VxD。 只要緩沖區(qū)足夠大,即使在采集頻率非常高的情況下,中斷程序填滿一個子緩沖區(qū)的時間也會比較長,而處理線程進行處理和存盤的時間相對比較短。因此,中斷程序和處理線程可以并行地訪問緩沖區(qū)而不會發(fā)生交疊,即中斷程序訪問的子緩沖區(qū)與處理線程訪問的子緩沖區(qū)總是不同的。這樣,就可以在不丟失任何數(shù)據(jù)的情況下實現(xiàn)長時間連續(xù)高速采集。實際相當于在PC機的內(nèi)存中開辟了一片FIFO隊列。與硬件FIFO相比,這種方法大大降低了成本。而且,由于將其放在內(nèi)存中,可以輕易地得到非常大的FIFO隊列,減輕了數(shù)據(jù)處理的負擔。另外,由于采用了雙緩沖的結構,避免了數(shù)據(jù)訪問的交疊,實現(xiàn)了不丟失任何數(shù)據(jù)的長時間連續(xù)高速采集。當然,由于采用中斷方式采集數(shù)據(jù),每次采集都要占用CPU時間使采集速度受到一定限制,無法達到采用硬件FIFO隊列的水平。 (3)ActiveX

ActiveX控件作為一種可重用的軟件部件和一種標準接口元素,能方便地組裝到應用程序中,快速創(chuàng)建應用程序界面,從而直觀地實現(xiàn)控制組態(tài)和策略解釋,非常便于工程技術人員掌握。本系統(tǒng)中,實現(xiàn)了一個數(shù)據(jù)顯示功能的ActiveX控件,并掛接在顯示線程中,通過它支持的屬性、方法和事件機制,控制數(shù)據(jù)顯示,極大地改善了速度壓力曲線的顯示性能。 (4)模糊神經(jīng)網(wǎng)絡PID控制

智能控制特別是模糊控制和神經(jīng)網(wǎng)絡控制技術發(fā)展迅速,將其應用于復雜模型和惡劣工況下的過程控制,具有理論優(yōu)勢,也是難點和熱點;另一方面,傳統(tǒng)的PID控制也不斷發(fā)展和完善,出現(xiàn)了各種與先進方法和理論結合的新型PID算法;,以前的壓鑄機系統(tǒng)盡管運行穩(wěn)定,但是基于開環(huán)算法,控制性能不理想。筆者通過研究和學習國內(nèi)外相關的理論和實踐,從現(xiàn)場實際控制的角度,給出了一種集模糊控制、神經(jīng)元控制和PID控制三者優(yōu)勢于一身的新型控制算法的實現(xiàn),大大提高了系統(tǒng)的性能,獲得了滿意的效果,限于篇幅,另文著述。 3 系統(tǒng)的總體框架

依據(jù)上述各種技術,使用Numega公司的VtoolsD工具開發(fā)了底層的虛擬設備驅(qū)動程序,使用VC++6.0開發(fā)用戶界面程序,在Windows98環(huán)境下,實現(xiàn)了2800噸J11280型臥式冷室壓鑄機控制系統(tǒng)的設計,并在阜新壓鑄機廠通過了測試,運行穩(wěn)定、操作簡便、界面友好、功能齊全、實踐證明是一個比較成功的工控系統(tǒng),圖3是主控制臺總體框架圖。


參考文獻

1 [美]David A. Solomon著,北京博彥科技發(fā)展有限公司譯.Windows NT技術內(nèi)幕第2版·M.北京:清華大學出版社,1999

2 武安河 周利莉. Windows設備驅(qū)動程序(VxD與WDM)開發(fā)實務M.北京電子工業(yè)出版社2002

3 喬 林楊志剛. Visual C++ 6.0編程技術MFC與多線程篇M.北京中國鐵道出版社2000

本文摘自《電子技術應用》

  
關鍵詞:Windows平臺下壓鑄機控制系統(tǒng)的研究

版權與免責聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關法律責任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權等法律責任。

如涉及作品內(nèi)容、版權等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關權利。

OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務:
賣家服務:
技術客服:

0571-85317607

網(wǎng)站技術支持

13606545031

客服在線時間周一至周五
9:00-17:30

關注官方微信號,
第一時間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務的動力!意見一經(jīng)采納,將有感恩紅包奉上哦!