技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > Win32環(huán)境下一種通用控制軟件的實現(xiàn)方法

Win32環(huán)境下一種通用控制軟件的實現(xiàn)方法

時間:2009-04-20 16:05:32來源:hesp

導(dǎo)語:?介紹了一種通用的控制系統(tǒng)軟件的實現(xiàn)方法,該軟件架構(gòu)將復(fù)雜的控制系統(tǒng)所有硬件傳感器經(jīng)數(shù)學(xué)抽象、歸類后,使用流對象統(tǒng)一處理。
1引言   工控應(yīng)用已遍及各行各業(yè),特別是隨著計算機的普遍降價、由PC機建構(gòu)的控制系統(tǒng)也越來越多,該類控制系統(tǒng)的優(yōu)點是開發(fā)人員可以用高級語言及大量的現(xiàn)有軟件快速建構(gòu)成自己的軟件系統(tǒng)。本文主要介紹了這類應(yīng)用的一種實現(xiàn)方法:該方法是將所有硬件I/O部分按類型分類。將他們各自的讀寫過程全部函數(shù)化。經(jīng)數(shù)學(xué)抽象后歸一化為流對象統(tǒng)一處理:傳感器→流→(初始化函數(shù),流讀,流寫,關(guān)閉)→應(yīng)用軟件讀寫線程→用戶消息→主窗口。經(jīng)這樣的抽象后,無論控制系統(tǒng)多么復(fù)雜,硬件傳感器是什么形式,在這種軟件架構(gòu)下全使用統(tǒng)一的軟件方法處理。 [b]2控制系統(tǒng)硬件結(jié)構(gòu) [/b]  設(shè)想一類控制系統(tǒng)是如下結(jié)構(gòu)建成的,主控臺完成同5個測量站的通信并指揮測量站按確定 方程運動。主控臺通過與網(wǎng)絡(luò)與中心站完成雙向I/O、主控臺可以單獨遙控某一測量站設(shè)備單獨工作。大的硬件控制如圖1所示。
主控臺與測量站用RS 232通信,經(jīng)Modem接連,與其他測量設(shè)備由A/D、D/A連接卡連接,與中心機通信由網(wǎng)絡(luò)連接。   在構(gòu)建此控制系統(tǒng)軟件時,不妨將問題擴展,假定不考慮具體的設(shè)備控制對象,不考慮具體的應(yīng)用類型,考慮一種更復(fù)雜的控制系統(tǒng):設(shè)想控制系統(tǒng)如圖2所示。
控制計算機使用P4 2.8或P4 2.4 GHz處理器,具體的控制對象設(shè)想為抽象傳感器即可。 [b]3控制系統(tǒng)軟件構(gòu)架 [/b]  本文提供的軟件構(gòu)架為:對每類控制硬件設(shè)備而言,訪問該類硬件無非對應(yīng)如下幾個函數(shù):   (1) 硬件初始化函數(shù)。   (2) 硬件讀函數(shù)。  ?。?) 硬件寫函數(shù)。  ?。?) 硬件刷新及關(guān)閉函數(shù)。   這樣,經(jīng)過數(shù)學(xué)抽象后,每類硬件訪問不超過這5條函數(shù)。無論控制系統(tǒng)由什么硬件傳感器 搭建,對一類傳感器而言。訪問他僅需要幾條語句而已。假設(shè)按類型編制了相關(guān)的I/O函數(shù)。   該軟件系統(tǒng)的主要思路為:任一控制對象(傳感器)均可設(shè)想為流設(shè)備、線程完成流讀 寫,讀寫時序由中斷或其他設(shè)備事件決定。一旦硬件設(shè)備I/O完成,用臨界區(qū)鎖住數(shù)據(jù),導(dǎo)入軟設(shè)備緩沖區(qū)。用戶交互部分僅同軟設(shè)備緩沖區(qū)打交道,與設(shè)備硬件無關(guān)??刂坪瘮?shù)只負(fù)責(zé)設(shè)備緩沖區(qū)填寫。這一函數(shù)僅與通訊協(xié)議有關(guān),與硬設(shè)備無關(guān)。這樣任一硬件設(shè)備同計算機通訊都可以將其視為一串流信息的交換。更簡單的看法為:任一硬設(shè)備不妨直接視為一定長的十六進(jìn)制字符串。這樣,任一控制系統(tǒng)在該軟件構(gòu)架下是若干個十六 進(jìn)制字符串。而軟件主框架將其流已分成幾大類(串行通訊類,網(wǎng)絡(luò)類等)。添加或刪除某些硬件對軟件系統(tǒng)就是關(guān)閉幾條條件編譯項。況且對每類應(yīng)用,I/O函數(shù)是4、5句,所有的同硬件打交道部分都在線程級完成,且讀寫線程機構(gòu)完全一致。   前臺用戶交互部分已完全獨立于后臺,后臺與相關(guān)事件通知有關(guān),與前臺幾乎沒有其他關(guān)聯(lián),所以前臺將所有緩沖填好后,只需調(diào)一句事件通知即可,這樣后臺將會自動等到該通知后轉(zhuǎn)入自己的I/O操作。   讀線程完成一具體硬件讀,讀時序由讀事件驅(qū)動,讀線程一旦讀到數(shù)據(jù),數(shù)據(jù)先進(jìn)入用戶設(shè)計的臨界區(qū),鎖住數(shù)據(jù),將硬件緩沖區(qū)讀到的數(shù)據(jù)放入軟件緩沖區(qū),發(fā)用戶讀完成消息給前臺,實現(xiàn)軟硬件隔離。   寫線程完成一具體硬件寫,寫時序由寫事件驅(qū)動,寫線程一旦要寫數(shù)據(jù),首先調(diào)用控制函數(shù)完成設(shè)備緩沖區(qū)填寫,進(jìn)入用戶設(shè)計的臨界區(qū)鎖住數(shù)據(jù),將軟件緩沖區(qū)的寫數(shù)據(jù)放到硬件緩沖區(qū),發(fā)用戶定制的寫完成消息給前臺,實現(xiàn)軟硬件隔離。   讀完成用戶處理消息為:完成數(shù)據(jù)轉(zhuǎn)換,供顯示用。   寫完成用戶處理消息為:先告知用戶狀態(tài)計數(shù)器,表示寫已完成,再做其他顯示處理。對各硬件的訪問全部分開,但讀寫線程結(jié)構(gòu)完全相同。   控制函數(shù)的形式也完全相同,無論是用PID算法或其他算法,均與此函數(shù)結(jié)構(gòu)無關(guān)。因為該 控制函數(shù)的本質(zhì)為:根據(jù)控制字,完成抽象軟件緩沖區(qū)填寫。與控制算法無關(guān)。因為這種算法僅在該控制函數(shù)中作為子函數(shù)調(diào)用。   控制函數(shù)的功能為:根據(jù)控制字完成寫出緩沖區(qū)填寫,并置寫出長度,填寫緩沖區(qū)為軟設(shè)備緩沖區(qū),控制函數(shù)對設(shè)備而言結(jié)構(gòu)是完全統(tǒng)一的。形式為:
其中k為控制方式字。例如:0為待機,1為手動,2為理論彈道,3為正弦彈道……   控制時序由標(biāo)準(zhǔn)的時鐘設(shè)備提供,例如B碼或其他設(shè)備,他產(chǎn)生的同步脈沖作為中斷源接入 系統(tǒng)。中斷處理程序一旦檢測到該中斷,設(shè)置各自硬件讀寫事件為有信號(硬件讀寫事件由用戶在初始化時建立為手工復(fù)位的事件)。在讀寫線程中一旦完成讀寫操作,復(fù)位這些事件。   對應(yīng)于上述復(fù)雜的硬件控制系統(tǒng),該控制軟件架構(gòu)如圖3所示。
讀設(shè)備線程:   (1) 判斷線程是否退出,如退出則轉(zhuǎn)(8),否則轉(zhuǎn)(2)。  ?。?) 等待讀事件,永遠(yuǎn)等(該事件為手工復(fù)位)。   對異步串行設(shè)備或網(wǎng)絡(luò)設(shè)備而言該步可省略。   (3) ReadFileDevice()調(diào)設(shè)備硬件讀函數(shù)完成讀操作。  ?。?) 判斷讀是否成功,如不成功,則轉(zhuǎn)(1),如成功轉(zhuǎn)(5)。   (5) 進(jìn)入臨界區(qū),將硬件讀緩沖區(qū)復(fù)制到軟設(shè)備緩沖區(qū),退出臨界區(qū)。  ?。?) 發(fā)用戶消息到前臺,復(fù)位讀事件,為下一次讀做準(zhǔn)備。   (7) 轉(zhuǎn)(1)。   (8) 結(jié)束。   寫設(shè)備線程:  ?。?) 判斷線程是否退出,如退出則轉(zhuǎn)(9),否則轉(zhuǎn)(2)。  ?。?) 等待寫事件,永遠(yuǎn)等(該事件為手工復(fù)位)。  ?。?) 調(diào)控制函數(shù)完成設(shè)備緩沖區(qū)填寫。  ?。?) 進(jìn)入臨界區(qū),將軟設(shè)備寫緩沖區(qū)復(fù)制到硬件寫緩沖區(qū),退出臨界區(qū)。  ?。?) WriteFileDeivce()調(diào)設(shè)備寫函數(shù)完成寫操作。  ?。?) 判斷寫成功否,如不成功轉(zhuǎn)(1),如成功轉(zhuǎn)(7)。  ?。?) 發(fā)用戶消息到前臺,復(fù)位寫事件,為下一次寫做準(zhǔn)備。  ?。?) 轉(zhuǎn)(1)。  ?。?) 結(jié)束。 [b]4結(jié)語 [/b]  在這樣一種軟件架構(gòu)下,控制系統(tǒng)硬件接口部分從軟件角度看僅是4、5條函數(shù),通過Window s 2000的內(nèi)核同步對象(事件和臨界區(qū))將軟硬件緩沖區(qū)實行了隔離及同步。通過中斷置事 件達(dá)到控制時序設(shè)置。經(jīng)過這一系列步驟后,整個控制系統(tǒng)的計算機實現(xiàn)軟件結(jié)構(gòu)清晰明了 ,調(diào)試方便。該軟件系統(tǒng)架構(gòu)與開發(fā)工具無關(guān),作者運用這一軟件架構(gòu)已設(shè)計多套控制系統(tǒng) ,這些控制軟件目前正成功運行于我國幾個基地。 [b]參考文獻(xiàn) [/b][1]曹國鈞,王鍵.深入Windows 2000應(yīng)用[M].北京:北京科海集團(tuán) 出版社,2001. [2]飛思科技產(chǎn)品研發(fā)中心Delphi下深入Windows核心編程[M].北京:電子 工業(yè)出版社,2003. [3][美]William BoswellWindows 2000 Server 技術(shù)內(nèi)幕[M].北京:清 華大學(xué)出版社,2001. [4]陳平,褚華.軟件設(shè)計師教程[M].北京:清華大學(xué)出版社,2004. 編輯:何世平

標(biāo)簽:

點贊

分享到:

上一篇:VXI通用測試軟件框架結(jié)構(gòu)的研究

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(www.treenowplaneincome.com)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

相關(guān)資訊

網(wǎng)站簡介|會員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

中國傳動網(wǎng)-工業(yè)自動化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權(quán)所有 粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網(wǎng)安備 44030402000946號