《電子技術應用》
您所在的位置:首頁 > 通信与网络 > 业界动态 > Windows平台下压铸机控制系统的研究

Windows平台下压铸机控制系统的研究

2008-09-04
作者:吕 振 刘宝良 陈国志 孟

  摘? 要: 將Windows操作系統引入J11280型臥式冷室壓鑄機控制系統" title="控制系統">控制系統中,通過分析Windows系統的運行機制和壓鑄機的性能指標,解決了控制系統的實時性" title="實時性">實時性和設備相關性問題。使用多線程、共享內存及ActiveX 技術提高了系統的效率和健壯性;采用模糊神經網絡PID控制提高了系統性能。經過實際調試和運行,證明該方法是有效的,對開發通用的工控軟件具有借鑒意義。

  關鍵詞: Windows? 壓鑄機? 設備相關? 實時控制" title="實時控制">實時控制? VxD? 多線程? ActiveX? 共享內存

?

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

1 Windows的運行機制

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

?

?

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

(1)實時性

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

  ·中斷由操作系統和設備驅動程序屏蔽的最大時間;

  ·設備驅動程序處理中斷的最大時間;

  ·從中斷開始到任務執行的中斷延遲。

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

  (2)設備相關性

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

2 Windows下壓鑄機實時控制的實現

2.1 壓鑄機系統的功能和要求

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

  ·能夠完成調整、聯動兩種工作機制;

  ·壓鑄工作過程的某些過程和工作參數具有實時動態可調性和可選性;

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

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

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

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

?

?

2.2 使用設備驅動程序實現實時控制

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

  經過筆者探索,在Windows9x環境下,在虛擬設備驅動程序中對硬件直接編程并掛接中斷的思路,有兩種實現方法:

  (1)對8253直接編程

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

  (2)對CMOS實時時鐘直接編程

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

??? 無論使用哪種方法,都不可避免地與Windows中斷打交道。但是,VxD沒有義務必須向系統傳遞中斷消息,相反,它完全可以自己截獲中斷,進行實時處理。本文采用了對CMOS時鐘直接編程的方法,運行良好。

  總之,使用虛擬設備驅動程序直接控制硬件,解決了Windows環境下的設備無關性問題,同時保證了實時控制所需要的實時時鐘和中斷控制。但是,虛擬設備驅動程序編程要求技術人員對Windows內核比較清楚,對底層硬件比較了解,也需要一定的匯編知識。由于Windows內核資料非常少且大都較晦澀,有關VxD編程的部分更是艱深,所以使用這種方法有相當的難度。而且這種方法易給系統帶來隱患,有可能造成Windows系統本身不穩定,還要考慮兼容性和效率問題,在實際開發時需要小心謹慎。

2.3 保證系統性能的其他技術

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

  (1)多線程

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

  (2)共享內存

  數據采集系統得到各模擬通道采樣值的轉換結果后,應存放在一個規定的RAM區。由于Win32程序和虛擬驅動程序都需要直接訪問此內存RAM區,故稱為共享內存。有經驗的程序員都很清楚Windows的內存分頁管理機制,所以應該由VxD中斷功能程序申請后與Win32程序共享,原因不言自明。在VxD中申請連續內存的函數一般使用: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應用程序共享內存的PG_VM,其他常量不可取;必須指定Flags為不會被系統分頁交換的PAEGELOCKED;Hvm為使用此循環寄存器區的Win32應用程序虛擬機句柄,須在使用PageAllocate()前傳到申請內存的VxD。

  只要緩沖區足夠大,即使在采集頻率非常高的情況下,中斷程序填滿一個子緩沖區的時間也會比較長,而處理線程進行一次處理和存盤的時間相對比較短。因此,中斷程序和處理線程可以并行地訪問緩沖區而不會發生交疊,即中斷程序訪問的子緩沖區與處理線程訪問的子緩沖區總是不同的。這樣,就可以在不丟失任何數據的情況下實現長時間連續高速采集。實際相當于在PC機的內存中開辟了一片FIFO隊列。與硬件FIFO相比,這種方法大大降低了成本。而且,由于將其放在內存中,可以輕易地得到非常大的FIFO隊列,減輕了數據處理的負擔。另外,由于采用了雙緩沖的結構,避免了數據訪問的交疊,實現了不丟失任何數據的長時間連續高速采集。當然,由于采用中斷方式采集數據,每次采集都要占用CPU時間,使采集速度受到一定限制,無法達到采用硬件FIFO隊列的水平。

  (3)ActiveX

  ActiveX控件作為一種可重用的軟件部件和一種標準接口元素,能方便地組裝到應用程序中,快速創建應用程序界面,從而直觀地實現控制組態和策略解釋,非常便于工程技術人員掌握。本系統中,實現了一個數據顯示功能的ActiveX控件,并掛接在顯示線程中,通過它支持的屬性、方法和事件機制,控制數據顯示,極大地改善了速度壓力曲線的顯示性能。

  (4)模糊神經網絡PID控制

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

3 系統的總體框架

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

?

參考文獻

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

? 1999

2 武安河, 周利莉. Windows設備驅動程序(VxD與WDM)開發實務[M].北京:電子工業出版社,2002

3 喬 林,楊志剛. Visual C++ 6.0高級編程技術(MFC與多線程篇)[M].北京:中國鐵道出版社,2000

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 久久久久免费精品| 国产日韩欧美综合| 日韩国产高清一区| 日韩精品无码一区二区三区免费| 欧美中文字幕在线视频| 欧美亚洲在线观看| 亚洲在线欧美| 国产精品久久久久99| 美日韩精品视频免费看| 日本久久久精品视频| 涩涩日韩在线| 国产伦精品免费视频| 国产成人综合av| 日本一区二区三区视频在线观看| 国产精品久久久久久久乖乖| 国产在线精品一区| 中文字幕一区综合| 国产精品爽爽爽| 婷婷亚洲婷婷综合色香五月| 久久久久免费精品| 国产成人av在线| 国产99在线播放| 91久久久久久久久| 91精品久久香蕉国产线看观看| 欧美日韩第二页| 99精品国产高清一区二区| 亚洲精品日韩av| 韩国国内大量揄拍精品视频| 91精品国产综合久久久久久蜜臀| 久久综合九九| 在线视频不卡国产V| 国产精品久久久久久av下载红粉| 欧美亚洲伦理www| 99久久综合狠狠综合久久止| 欧美日韩国产91| 777国产偷窥盗摄精品视频| 久久91精品国产91久久久| 尤物国产精品| 精品日韩美女| 日本一区二区三区视频在线播放 | 精品国产免费人成电影在线观... 精品国产一区二区三区久久久狼 精品国产一区二区三区久久狼黑人 |