-基于VB語言的工控機(jī)-數(shù)據(jù)采集卡實(shí)現(xiàn)電機(jī)正反轉(zhuǎn)_第1頁
-基于VB語言的工控機(jī)-數(shù)據(jù)采集卡實(shí)現(xiàn)電機(jī)正反轉(zhuǎn)_第2頁
-基于VB語言的工控機(jī)-數(shù)據(jù)采集卡實(shí)現(xiàn)電機(jī)正反轉(zhuǎn)_第3頁
-基于VB語言的工控機(jī)-數(shù)據(jù)采集卡實(shí)現(xiàn)電機(jī)正反轉(zhuǎn)_第4頁
-基于VB語言的工控機(jī)-數(shù)據(jù)采集卡實(shí)現(xiàn)電機(jī)正反轉(zhuǎn)_第5頁
已閱讀5頁,還剩70頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1 2燕山大學(xué)課程設(shè)計(jì)(論文)任務(wù)書院(系電氣工程學(xué)院基層教學(xué)單位:自動(dòng)化系學(xué)生姓名專業(yè)(班級(jí))設(shè)計(jì)題目工控機(jī)+數(shù)據(jù)采集卡實(shí)現(xiàn)電機(jī)正反轉(zhuǎn)設(shè)計(jì)技術(shù)參數(shù)●數(shù)據(jù)采集卡采用中泰系列。●界面采用MCGS語言。●具備電機(jī)正反轉(zhuǎn)、點(diǎn)動(dòng)等基本功能。設(shè)計(jì)要求●說明書一份,不少于6000字(如打印用B5紙,小四號(hào)字,漢字采用宋體,英文及數(shù)字采用TimesNewRoman,單倍行距,上邊距2.6厘米,下邊距2.2厘米,●說明書順序:封面、任務(wù)書、摘要、目錄、正文、結(jié)論、參考文獻(xiàn)、評(píng)審意見表?!裾f明書封面與內(nèi)容需一致(打印或者本人手抄圖表清晰,字跡工整?!裢瓿葾2圖紙一張。工作量●說明書一份,不少于6000字,可手寫可打印?!馎2圖紙一張,手繪、打印均可?!駞⒖嘉墨I(xiàn)不少于3篇?!駥W(xué)習(xí)MCGS編程語言,完成軟件開發(fā)。●撰寫說明書,繪制圖紙?!裢瓿烧n程設(shè)計(jì)考核。參考資料指導(dǎo)教師簽字基層教學(xué)單位主任簽字劉福才說明:此表一式四份,學(xué)生、指導(dǎo)教師、基層教學(xué)單位、系部各一份。3【關(guān)鍵詞】MCGS;窗體;控制系統(tǒng);數(shù)據(jù)采集卡;中間繼電器;電機(jī)正反轉(zhuǎn)近年來,隨著計(jì)算機(jī)和數(shù)據(jù)采集卡技術(shù)的不斷提高,越來越多的企業(yè)以計(jì)算機(jī)和數(shù)據(jù)采集卡為平臺(tái),實(shí)現(xiàn)生產(chǎn)拄制,這一系統(tǒng)比傳統(tǒng)的PIC系統(tǒng)具有更低的成本,更靈活的配置,更短的開發(fā)周期。生產(chǎn)機(jī)械往往要求運(yùn)動(dòng)部件可以實(shí)現(xiàn)正反兩個(gè)方向的起動(dòng),這就要求拖動(dòng)電動(dòng)機(jī)能作正、反向旋轉(zhuǎn)。由電機(jī)原理可知,改變電動(dòng)機(jī)三相電源的相序,就能改變電動(dòng)機(jī)的轉(zhuǎn)向。按下正轉(zhuǎn)啟動(dòng)按鈕SB1,電動(dòng)機(jī)正轉(zhuǎn)運(yùn)行,完成正轉(zhuǎn)啟動(dòng)。按下停止按鈕SB2,電動(dòng)機(jī)停止運(yùn)行。按下反轉(zhuǎn)啟動(dòng)按鈕SB3,電動(dòng)機(jī)反轉(zhuǎn)運(yùn)行,完成反轉(zhuǎn)啟動(dòng)。MCGS組態(tài)軟件MCGS組態(tài)軟件是北京昆侖通態(tài)自動(dòng)化軟件科技有限公司研發(fā)的一套基于Windows平臺(tái)的,用于快速構(gòu)造和生成上位機(jī)監(jiān)控系統(tǒng)的組態(tài)軟件系統(tǒng),主要完成現(xiàn)場(chǎng)數(shù)據(jù)的采集與監(jiān)測(cè)、前端數(shù)據(jù)的處理與控制,支持許多類型采集卡、控制卡。通過MCGS組態(tài)軟件與中泰PCI-8407采集卡的結(jié)合,通過中間繼電器PS-002以及電機(jī)正反轉(zhuǎn)控制邏輯的編寫,可以方便的實(shí)現(xiàn)電機(jī)的正反轉(zhuǎn)控制,從而滿足控制要求。數(shù)據(jù)采集卡數(shù)據(jù)采集卡通過ISA或PCI總線連接到PC機(jī)中,把采集的模擬、數(shù)字信號(hào)通過A/D轉(zhuǎn)換輸入計(jì)算書b羞行分析、處理、顯示等,并可通過D/A轉(zhuǎn)換實(shí)現(xiàn)控制命令輸出。還可加入信號(hào)調(diào)理和實(shí)時(shí)DSP等硬件模塊。市面流行的數(shù)據(jù)采集卡有以下技術(shù)特點(diǎn):分辨率:12bit,16bit采樣頻率:100k,400k,750lc,lMHz輸入通道:8路差分/16單端,可擴(kuò)展到256通道程控增益:1/2J4/8或1/10/100/1000可選模擬信號(hào),了幾電平或軟件觸發(fā)2/4通道12bit模擬輸出24路數(shù)字量輸入輸出何擴(kuò)展到192路43---5個(gè)16bit可編程計(jì)知定時(shí)器可與QTC,DBK,SB系列信號(hào)調(diào)理擴(kuò)模塊模板配合使用,組成:電流、毫伏、高壓、應(yīng)變、熱電偶、熱電阻、振動(dòng)、加速度、頻率測(cè)試狽口量系統(tǒng)同時(shí)可選同步采樣、抗混濾波、高壓隔離等功能。在控制系統(tǒng)中,采集卡是解決信號(hào)的輸入、輸出,軟件才是關(guān)鍵,使用者可通過修改軟件,改變或增減控制系統(tǒng)的功能。編程語言的選擇對(duì)數(shù)據(jù)采集卡進(jìn)布示編程有兩種方法。1)采用公司研發(fā)的MCGS組態(tài)軟件的是專為面向工業(yè)自動(dòng)化設(shè)計(jì)的,以圖形方式提供了采集、運(yùn)動(dòng)控制等顯示和分析程序庫。在這些軟件環(huán)境中,提供了一種像數(shù)據(jù)流一樣的編程模式,擁護(hù)只要連接各個(gè)邏輯框即可構(gòu)成程序。1但是這些圖形化軟件包在獲得易用性的同時(shí),也失去了某些較復(fù)雜的高級(jí)性能,如復(fù)雜數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn),回調(diào)函數(shù)的使用等等。2)采用通用的語言開發(fā)環(huán)境,如VB,Delphi,VC++等。其中VB是深受工程技術(shù)人員歡迎的編程語言之一。它具有以下特點(diǎn):·開發(fā)速度快。在所有可視化語言中,VB是公認(rèn)開發(fā)軟件速度最快的。同時(shí)如不涉及復(fù)雜的圖形處理,在流行的PentiumII機(jī)型上,速度不會(huì)明顯低于其它開發(fā)工具。全漢化的幫助文件、例程更是其它開發(fā)環(huán)境所不具備的。·功育創(chuàng)獷展能力強(qiáng)。VB的APIViewer使VB能非常容易地調(diào)用幾乎所有WinAPI函數(shù),實(shí)現(xiàn)任何Windows所具備的功能。同時(shí),幾乎所有提供軟件開發(fā)支持的硬件廠商,都提供的支持VB的控件、DLL和例程?!は到y(tǒng)穩(wěn)定。作為同一公司出品的產(chǎn)品,用VB編制的軟件在Windows平臺(tái)上長(zhǎng)時(shí)間運(yùn)行,非常穩(wěn)定。5 6二、設(shè)計(jì)思路 6三、器件的選擇及其使用說明 6 6 四、主電路、控制回路電路圖及其工作原理 五、MCGS組態(tài)程序介紹及設(shè)計(jì) 六、開發(fā)MCGS設(shè)備驅(qū)動(dòng)程序 七、總結(jié) 八、參考文獻(xiàn) 20九、評(píng)審意見表 216MCGS采用可視化的程序設(shè)計(jì)方法,利用系統(tǒng)提供的大量可視化控件,可以方便地以可視化方式直接繪制用戶圖形界面,并可直觀,動(dòng)態(tài)地調(diào)整界面的風(fēng)格和樣式。設(shè)計(jì)針對(duì)采集卡功能設(shè)置出實(shí)用、美觀應(yīng)用界面。界面可以實(shí)現(xiàn)的功能為:允許外部開關(guān)控制量輸入,面板控制量輸出,以此來實(shí)現(xiàn)電機(jī)正反轉(zhuǎn)控制。二、設(shè)計(jì)思路通過PC工控機(jī)+研華基于PC的工業(yè)控制卡MIC-2760+電動(dòng)機(jī)正反轉(zhuǎn)控制主回路這種設(shè)計(jì)方案,可以以較為低廉的價(jià)格達(dá)到控制電機(jī)正反轉(zhuǎn)及點(diǎn)動(dòng)長(zhǎng)動(dòng)的控制要求,與PLC電機(jī)正反轉(zhuǎn)控制系統(tǒng)相比較為廉價(jià)很多。同時(shí)可以通過MCGS組態(tài)軟件快速的構(gòu)建上位機(jī)監(jiān)控及控制界面。配合其他的數(shù)據(jù)采集卡,可以實(shí)現(xiàn)對(duì)電動(dòng)機(jī)轉(zhuǎn)速、電壓、電流等運(yùn)行參數(shù)的實(shí)時(shí)監(jiān)控與控制。并且此種方案在工業(yè)現(xiàn)場(chǎng)廣為應(yīng)用,符合工業(yè)控制系統(tǒng)的市場(chǎng)需求。三、器件的選擇及其使用說明1)選用中泰數(shù)據(jù)采集卡PCI-8407使用說明介紹1.概述:PCI-8407光隔離開關(guān)量輸出接口卡適用于提供了PCI總線插槽的PC系列微機(jī),具有即插即用(PnP)的功能,操作系統(tǒng)可選用目前流行的Windows系列,高穩(wěn)定性的Unix等多種操作系統(tǒng)以及專業(yè)數(shù)據(jù)采集分析系統(tǒng)LabVIEW等軟件環(huán)境。在硬件的安裝上也非常簡(jiǎn)單,使用時(shí)只需將接口卡插入機(jī)內(nèi)任何一個(gè)PCI總線插槽中,信號(hào)電纜從機(jī)箱外部直接接入。為方便我公司原有用戶對(duì)產(chǎn)品的升級(jí)換代,PCI-8407開關(guān)量輸出接口卡的輸出插座引線定義與PC-6407完全一樣。7本卡適用于工業(yè)現(xiàn)場(chǎng)中各種開關(guān)信號(hào)的自動(dòng)控制以及計(jì)算機(jī)同數(shù)字儀器的接口??紤]到在開關(guān)量的輸出中“開/關(guān)”瞬態(tài)對(duì)計(jì)算機(jī)干擾十分強(qiáng)烈及現(xiàn)場(chǎng)強(qiáng)電的干擾,本卡采用了光電隔離技術(shù),使計(jì)算機(jī)與現(xiàn)場(chǎng)信號(hào)之間全部隔離,提高了計(jì)算機(jī)與本卡在工作中的抗干擾能力和抗損毀能力。本卡上的開關(guān)量輸出為32路(分為兩組)共地方式,具有上電后自動(dòng)清零功能(但主機(jī)復(fù)位時(shí)不清零并可與我公司研制的PS-002繼電器接口板直接配套使用。2.主要技術(shù)指標(biāo):2.1輸出路數(shù)及電氣連接方式:32路分為兩組,共源(共陽)方式。2.2輸出回路供電要求12V36V2.3最大輸出驅(qū)動(dòng)電流:≤200mA/每路(由外加電源提供),可直接驅(qū)動(dòng)繼電器,但每組總輸出電流不應(yīng)超過2A。2.4每組信號(hào)之間、各組信號(hào)與接口卡之間隔離電平:500V。2.5電源功耗5V(±10%)≤400mA2.6環(huán)境要求:工作溫度:10□~40□相對(duì)濕度:4080%存貯溫度55□~+85□2.10外型尺寸(不含檔板):長(zhǎng)×高=164.8mm×106.7mm(6.5英寸×4.2英寸)3.工作原理及操作說明:3.1開關(guān)量輸出工作原理:本卡上的32路開關(guān)量輸出回路可用于外部電路的開關(guān)控制,其每路最大輸出電流200mA左右,開關(guān)量輸出部分工作原理如圖1所示。8圖1開關(guān)量輸出部分工作原理輸出驅(qū)動(dòng)器件ULN2003的輸出端允許通過IC電流200mA,飽和壓根據(jù)以上參數(shù)估算。由于本卡采用集電極開路輸出,輸出電流大,故可以直接驅(qū)動(dòng)繼電器或固體繼電器(SSR)等外接控制器件,也可直接驅(qū)動(dòng)低壓燈泡。本卡工作時(shí),計(jì)算機(jī)送“1”使驅(qū)動(dòng)器三極管導(dǎo)通,計(jì)算機(jī)送“0”使驅(qū)動(dòng)器三極管截止。本卡上的輸出驅(qū)動(dòng)器件ULN2可有效地吸收感性負(fù)載啟動(dòng)時(shí)產(chǎn)生的達(dá)600mA的峰值電流。所有的開關(guān)量輸出信號(hào)均帶有鎖存功能。當(dāng)CPU對(duì)設(shè)定的一個(gè)I/O地址執(zhí)行一次寫操作,就送出了一組(16路)輸出信號(hào)。當(dāng)主機(jī)加電啟動(dòng)時(shí),本卡上開關(guān)使主機(jī)硬復(fù)位時(shí)清零電路將不起作用。4.安裝及使用注意:本卡的安裝十分簡(jiǎn)便,只要在關(guān)電情況下將主機(jī)機(jī)殼打開,將本卡插入主機(jī)的任何一個(gè)空余擴(kuò)展槽中,再將檔板固定螺絲壓緊即可。37芯D型插頭可從主機(jī)后面引出并與外設(shè)連接。禁止帶電插拔本接口卡。設(shè)置接口卡開關(guān)和安裝接口帶纜均應(yīng)在關(guān)電狀態(tài)下進(jìn)行。為保證人身及設(shè)備安全,應(yīng)確保系統(tǒng)地線(計(jì)算機(jī)及外接設(shè)備接地點(diǎn))接地良好。為防止外部設(shè)備中較大的電磁干擾,應(yīng)注意對(duì)信號(hào)線進(jìn)行屏蔽處理。9如果本卡連接的外部設(shè)備上加有較高的電壓時(shí),在安裝或用手觸摸本卡時(shí),應(yīng)先將外部設(shè)備的電源關(guān)閉并嚴(yán)禁觸摸本卡。5.使用與操作:5.1輸入輸出插座接口定義:表1輸入輸出插座引線定義表插座引腳號(hào)信號(hào)定義插座引腳號(hào)信號(hào)定義123456789開出公共地開出公共地開出公共地5.2開關(guān)量輸出使用方法:本卡上的開關(guān)量輸出部分與外部器件聯(lián)接時(shí),可按圖2方法進(jìn)行,使圖2開關(guān)量輸出使用方法2)PS-00216路通用繼電器板技術(shù)說明書1.概述:本板為小功率中間繼電器板,一般用于大功率繼電器或交流接觸器的驅(qū)動(dòng),也可用于小容量電器開關(guān)、報(bào)警指示等場(chǎng)合。2.主要特性:2.2觸點(diǎn)形式:?jiǎn)蔚冻i_2.3觸點(diǎn)容量:DC28V/7AAC220V/4A2.4控制功率:DC24V/15mA或DC12V/30mA(單路)2.5每對(duì)觸點(diǎn)接線端均加有壓敏電阻以吸收浪涌電壓。3.本板布局:4.使用方法:4.1繼電器控制電源接線:該電源插座為2P座,信號(hào)分布見下圖。V+GND繼電器控制電源應(yīng)根據(jù)繼電器工作電壓分別選擇12V或24V。經(jīng)過改裝后可配接研華PCL-720/JK2經(jīng)過改裝后可配接研華PCL-722/724/731730/7324.3繼電器觸點(diǎn)接線:本板兩側(cè)的接線端子排為繼電器觸點(diǎn)接線端子,與每個(gè)繼電器相鄰的兩個(gè)接線端子為該繼電器的一對(duì)觸點(diǎn)端子。5.本板的外部驅(qū)動(dòng)電路:光電耦合器直接驅(qū)動(dòng)三極管驅(qū)動(dòng)6.本板的特殊使用:器件組中的細(xì)連線割斷,在各器件位置上正確焊上ULN2003驅(qū)動(dòng)組件。三相電機(jī)是指當(dāng)電機(jī)的三相定子繞組(各相差120度電角度通入三相交流電后,將產(chǎn)生一個(gè)旋轉(zhuǎn)磁場(chǎng),該旋轉(zhuǎn)磁場(chǎng)切割轉(zhuǎn)子繞組,從而在轉(zhuǎn)子繞組中產(chǎn)生感應(yīng)電流(轉(zhuǎn)子繞組是閉合通路載流的轉(zhuǎn)子導(dǎo)體在定子旋轉(zhuǎn)磁場(chǎng)作用下將產(chǎn)生電磁力,從而在電機(jī)轉(zhuǎn)軸上形成電磁轉(zhuǎn)矩,驅(qū)動(dòng)電動(dòng)機(jī)旋轉(zhuǎn),并且電機(jī)旋轉(zhuǎn)方向與旋轉(zhuǎn)磁場(chǎng)方向相同。本次設(shè)計(jì)采用Y132S-4型三相異步電動(dòng)機(jī)作為控制對(duì)象,功率為5.5KW,滿足設(shè)計(jì)要求。本型號(hào)電動(dòng)機(jī)為四極電動(dòng)機(jī),同步轉(zhuǎn)速為1500f為頻率,單位為Hz。n為轉(zhuǎn)速,其單位為r/minp為磁極對(duì)數(shù)(注意是磁極對(duì)數(shù)而非磁極的個(gè)數(shù),如本電機(jī)4極電當(dāng)然也可以選擇其他的型號(hào)的電動(dòng)機(jī),不同型號(hào)的電動(dòng)機(jī)并不影響控制電路的設(shè)計(jì)。四、主電路、控制回路電路圖及其工作原理電機(jī)要實(shí)現(xiàn)正反轉(zhuǎn)控制,將其電源的相序中任意兩相對(duì)調(diào)即可(被稱為換相通常是V相不變,將U相與W相對(duì)調(diào)節(jié)器,為了保證兩個(gè)接觸器動(dòng)作時(shí)能夠可靠調(diào)換電動(dòng)機(jī)的相序,接線時(shí)應(yīng)使接觸器的上口接線保持一致,在接觸器的下口調(diào)相。由于將兩相相序?qū)φ{(diào),故須確保二個(gè)KM線圈不能同時(shí)得電,否則會(huì)發(fā)生嚴(yán)重的相間短路故障,因此必須采取聯(lián)鎖。為安全起見,常采用機(jī)械聯(lián)鎖與電氣聯(lián)鎖的雙重聯(lián)鎖正反轉(zhuǎn)控制線路。使用了按鈕聯(lián)鎖,即使同時(shí)按下正反轉(zhuǎn)按鈕,調(diào)相用的兩接觸器也不可能同時(shí)得電,機(jī)械上避免了相間短路。另外,由于應(yīng)用的接觸器聯(lián)鎖,所以只要其中一個(gè)接觸器得電,其長(zhǎng)閉觸點(diǎn)就不會(huì)閉合,這樣在機(jī)械、電氣雙重聯(lián)鎖的應(yīng)用下,電機(jī)的供電系統(tǒng)不可能相間短路,有效地保護(hù)了電機(jī),同時(shí)也避免在調(diào)相時(shí)相間短路造成事故,燒壞接觸器。由于本項(xiàng)目采用研華控制卡和MCGS組態(tài)軟件設(shè)置,所以可以通過MCGS程序邏輯設(shè)計(jì)實(shí)現(xiàn)電氣聯(lián)鎖,有效的保護(hù)電動(dòng)機(jī)的正常運(yùn)行,防止短路發(fā)生。對(duì)于點(diǎn)動(dòng)和長(zhǎng)動(dòng)的區(qū)別,由于本次項(xiàng)目采用MCGS組態(tài)軟件進(jìn)行控制,因此只需在程序中進(jìn)行控制邏輯的設(shè)計(jì)。并且本設(shè)計(jì)采用點(diǎn)動(dòng)長(zhǎng)動(dòng)開關(guān)進(jìn)行點(diǎn)動(dòng)與長(zhǎng)動(dòng)的選擇,通過點(diǎn)動(dòng)長(zhǎng)動(dòng)選擇開關(guān)進(jìn)行點(diǎn)動(dòng)與長(zhǎng)動(dòng)的選擇。在主電路中,除了KM1、KM2出點(diǎn)外,還有熔斷FR做為主電路的保護(hù)元件,防止由于短路或者過載、斷相對(duì)電機(jī)的損熔斷器FU是指當(dāng)電流超過規(guī)定值時(shí),以本身產(chǎn)生的熱量使熔體熔斷,斷開電路的一種電器。熔斷器是根據(jù)電流超過規(guī)定值一段時(shí)間后,以其自身產(chǎn)生的熱量使熔體熔化,從而使電路斷開,可以防止電路短路對(duì)電動(dòng)機(jī)的損壞,以最小的成本來實(shí)現(xiàn)電動(dòng)機(jī)的保護(hù)。熱繼電器FR是由流入熱元件的電流產(chǎn)生熱量,使有不同膨脹系數(shù)的雙金屬片發(fā)生形變,當(dāng)形變達(dá)到一定距離時(shí),就推動(dòng)連桿動(dòng)作,使控制電路斷開,從而使接觸器失電,主電路斷開,實(shí)現(xiàn)電動(dòng)機(jī)的過載保護(hù)以及斷相保護(hù)。2)控制回路接線圖五、MCGS組態(tài)程序介紹及設(shè)計(jì)1)控制界面設(shè)計(jì)以下界面包括一個(gè)啟停控制按鈕、一個(gè)電機(jī)、一個(gè)長(zhǎng)動(dòng)點(diǎn)動(dòng)選擇開關(guān)以及兩個(gè)分別控制正轉(zhuǎn)和反轉(zhuǎn)的按鈕。默認(rèn)運(yùn)行時(shí),啟停按鈕處于啟動(dòng)狀態(tài),當(dāng)將長(zhǎng)動(dòng)點(diǎn)動(dòng)開關(guān)達(dá)到長(zhǎng)動(dòng)時(shí),電機(jī)正反轉(zhuǎn)按鈕即可以實(shí)現(xiàn)電動(dòng)機(jī)的正反轉(zhuǎn)運(yùn)行,電機(jī)停止按鈕即可以實(shí)現(xiàn)電動(dòng)機(jī)的停止;當(dāng)將點(diǎn)動(dòng)開關(guān)打到點(diǎn)動(dòng)時(shí),按住正轉(zhuǎn)、反轉(zhuǎn)按鈕電動(dòng)機(jī)才分別進(jìn)行正轉(zhuǎn)、反轉(zhuǎn)運(yùn)行,松開按鈕,電動(dòng)機(jī)停止。2)設(shè)備窗口組態(tài)設(shè)備窗口是MCGS系統(tǒng)的重要組成部分,在設(shè)備窗口中建立系統(tǒng)與外部硬件設(shè)備的連接關(guān)系,使系統(tǒng)能夠從外部設(shè)備讀取數(shù)據(jù)并控制外部設(shè)備的工作狀態(tài),實(shí)現(xiàn)對(duì)工業(yè)過程的實(shí)時(shí)監(jiān)控。在MCGS中,實(shí)現(xiàn)設(shè)備驅(qū)動(dòng)的基本方法是:在設(shè)備窗口內(nèi)配置不同類型的設(shè)備構(gòu)件,并根據(jù)外部設(shè)備的類型和特征,設(shè)置相關(guān)的屬性,將設(shè)備的操作方法如硬件參數(shù)配置、數(shù)據(jù)轉(zhuǎn)換、設(shè)備調(diào)試等都封裝在構(gòu)件之中,以對(duì)象的形式與外部設(shè)備建立數(shù)據(jù)的傳輸通道連接。系統(tǒng)運(yùn)行過程中,設(shè)備構(gòu)件由設(shè)備窗口統(tǒng)一調(diào)度管理,通過通道連接,向?qū)崟r(shí)數(shù)據(jù)庫提供從外部設(shè)備采集到的數(shù)據(jù),從實(shí)時(shí)數(shù)據(jù)庫查詢控制參數(shù),發(fā)送給系統(tǒng)其它部分,進(jìn)行控制運(yùn)算和流程調(diào)度,實(shí)現(xiàn)對(duì)設(shè)備工作狀態(tài)的實(shí)時(shí)檢測(cè)和過程的自動(dòng)控制。MCGS的這種結(jié)構(gòu)形式使其成為一個(gè)“與設(shè)備無關(guān)”的系統(tǒng),對(duì)于不同的硬件設(shè)備,只需定制相應(yīng)的設(shè)備構(gòu)件,放置到設(shè)備窗口中,并設(shè)置相關(guān)的屬性,系統(tǒng)就可對(duì)這一設(shè)備進(jìn)行操作,而不需要對(duì)整個(gè)系統(tǒng)結(jié)構(gòu)作任何改動(dòng)。在MCGS單機(jī)版中,一個(gè)用戶工程只允許有一個(gè)設(shè)備窗口。運(yùn)行時(shí),由主控窗口負(fù)責(zé)打開設(shè)備窗口,而設(shè)備窗口是不可見的,在后臺(tái)獨(dú)立運(yùn)行,負(fù)責(zé)管理和調(diào)度設(shè)備構(gòu)件的運(yùn)行。由于MCGS對(duì)設(shè)備的處理采用了開放式的結(jié)構(gòu),在實(shí)際應(yīng)用中,可以很方便地定制并增加所需的設(shè)備構(gòu)件,不斷充實(shí)設(shè)備工具箱。MCGS將逐步提供與國(guó)內(nèi)外常用的工控產(chǎn)品相對(duì)應(yīng)的設(shè)備構(gòu)件,同時(shí),MCGS也提供了一個(gè)接口標(biāo)準(zhǔn),以方便用戶用VisualBasic或VisualC++等編程工具自行編制所需的設(shè)備構(gòu)件,裝入MCGS的設(shè)備工具箱內(nèi)。MCGS提供了一個(gè)高級(jí)開發(fā)向?qū)В詣?dòng)生成設(shè)備驅(qū)動(dòng)程序的框架,給我們的開發(fā)工作提供幫助。為了對(duì)普通工程用戶快速定制開發(fā)特定的設(shè)備驅(qū)動(dòng)程序提供方便,系統(tǒng)同時(shí)提供了典型設(shè)備驅(qū)動(dòng)程序的源代碼,在這些源代碼的基礎(chǔ)上進(jìn)行移植修改,就可以生成自己所需的設(shè)備驅(qū)動(dòng)程序。對(duì)已經(jīng)編好的設(shè)備驅(qū)動(dòng)程序,MCGS使用設(shè)備構(gòu)件管理工具進(jìn)行管理。單擊在MCGS組態(tài)環(huán)境中“工具”菜單下的“設(shè)備構(gòu)件管理”項(xiàng),將彈出如下圖所示的設(shè)備管理窗口:設(shè)備管理窗口中提供了常用的上百種的設(shè)備驅(qū)動(dòng)程序,給我們快速找到適合自己的設(shè)備驅(qū)動(dòng)程序提供了極大的方便,還可以完成所選設(shè)備在Windows中的登記和刪除登記等工作。3)設(shè)備構(gòu)件的通道連接MCGS設(shè)備中一般都包含有一個(gè)或多個(gè)用來讀取或者輸出數(shù)據(jù)的物理通道,MCGS把這樣的物理通道稱為設(shè)備通道,如:模擬量輸入裝置的輸入通道、模擬量輸出裝置的輸出通道、開關(guān)量輸入輸出裝置的輸入輸出通道等等,這些都是設(shè)備通道。設(shè)備通道只是數(shù)據(jù)交換用的通路,而數(shù)據(jù)輸入到哪兒和從哪兒讀取數(shù)據(jù)以供輸出,即進(jìn)行數(shù)據(jù)交換的對(duì)象,則必須由用戶指定和配置。實(shí)時(shí)數(shù)據(jù)庫是MCGS的核心,各部分之間的數(shù)據(jù)交換均須通過實(shí)時(shí)數(shù)據(jù)庫。因此,所有的設(shè)備通道都必須與實(shí)時(shí)數(shù)據(jù)庫連接。所謂通道連接,也即是由用戶指定設(shè)備通道與數(shù)據(jù)對(duì)象之間的對(duì)應(yīng)關(guān)系,這是設(shè)備組態(tài)的一項(xiàng)重要工作。如不進(jìn)行通道連接組態(tài),則MCGS無法對(duì)設(shè)備進(jìn)行操作。4)程序腳本的編寫啟動(dòng)=1THENKM1=1停止=1THENKM1=0KM2=0反轉(zhuǎn)=1THENKM2=1正轉(zhuǎn)=1THENKM1=1點(diǎn)動(dòng)=1THENKM1=1KM2=1長(zhǎng)動(dòng)=1THENKM1=1KM2=1六、總結(jié)通過PC工控機(jī)+中泰基于PC的工業(yè)控制卡PCI8407和與其適配的中間繼電器PS002+電動(dòng)機(jī)正反轉(zhuǎn)控制主回路這種設(shè)計(jì)方案,可以以較為低廉的價(jià)格達(dá)到控制電機(jī)正反轉(zhuǎn)及點(diǎn)動(dòng)長(zhǎng)動(dòng)的控制要求,與PLC電機(jī)正反轉(zhuǎn)控制系統(tǒng)相比較為廉價(jià)很多。同時(shí)可以通過MCGS組態(tài)軟件快速的構(gòu)建上位機(jī)監(jiān)控及控制界面。配合其他的數(shù)據(jù)采集卡,可以實(shí)現(xiàn)對(duì)電動(dòng)機(jī)轉(zhuǎn)速、電壓、電流等運(yùn)行參數(shù)的實(shí)時(shí)監(jiān)控與控制。并且此種方案在工業(yè)現(xiàn)場(chǎng)廣為應(yīng)用,符合工業(yè)控制系統(tǒng)的市場(chǎng)需求。通過一周的學(xué)習(xí),我進(jìn)一步加深了對(duì)于電機(jī)正反轉(zhuǎn)等控制系統(tǒng)的理解,掌握了研華系列工業(yè)采集卡、控制卡的應(yīng)用,并且學(xué)會(huì)了利用MCGS、VB等工控軟件快速的構(gòu)建工控機(jī)的上位機(jī)監(jiān)控軟件,從而可以快速的搭建出一整套工業(yè)控制系統(tǒng)以及采集監(jiān)控系統(tǒng)。并且將學(xué)到的知識(shí)加以利用,轉(zhuǎn)化為實(shí)實(shí)在在的生產(chǎn)力??傊?,從本次的課程設(shè)計(jì)中,我受益匪淺。七、開發(fā)MCGS設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)構(gòu)件的實(shí)現(xiàn)設(shè)備驅(qū)動(dòng)構(gòu)件接口規(guī)范利用開發(fā)向?qū)煽蚣芾脴永绦蛞浦矞y(cè)試和掛接設(shè)備驅(qū)動(dòng)構(gòu)件IO端口的操作設(shè)備驅(qū)動(dòng)構(gòu)件的運(yùn)行機(jī)制增加設(shè)備構(gòu)件屬性定制設(shè)備屬性設(shè)備對(duì)話框編制簡(jiǎn)單的設(shè)備驅(qū)動(dòng)構(gòu)件八、參考文獻(xiàn)和論文。九、電氣工程學(xué)院課程設(shè)計(jì)評(píng)審意見表指導(dǎo)教師評(píng)語:平時(shí)成績(jī):指導(dǎo)教師簽字:圖面及其它成績(jī):答辯小組評(píng)語:答辯成績(jī):組長(zhǎng)簽字:課程設(shè)計(jì)綜合成績(jī):答辯小組成員簽字:附錄資料:不需要的可以自行刪除bat文件的基本應(yīng)用bat是dos下的批處理文件.cmd是nt內(nèi)核命令行環(huán)境的另一種批處理文件從更廣義的角度來看,unix的shell腳本以及其它操作系統(tǒng)甚至應(yīng)用程序中由外殼進(jìn)行解釋執(zhí)行的文本,都具有與批處理文件十分相似的作用,而且同樣是由專用解釋器以行為單位解釋執(zhí)行,這種文本形式更通用的稱謂是腳本語言。所以從某個(gè)程度分析,batch,unixshell,awk,basic,perl等腳本語言都是一樣的,只不過應(yīng)用的范圍和解釋的平臺(tái)各有不同而已。甚至有些應(yīng)用程序仍然沿用批處理這一稱呼,而其內(nèi)容和擴(kuò)展名與dos的批處理卻又完全不同。===================================首先批處理文件是一個(gè)文本文件,這個(gè)文件的每一行都是一條DOS命令(大部分時(shí)候就好象我們?cè)贒OS提示符下執(zhí)行的命令行一樣你可以使用DOS下的Edit或者Windows的記事本(notepad)等任何文本文件編輯工具創(chuàng)建和修改批處理文件。====注===================批處理文件中完全可以使用非dos命令,甚至可以使用不具有可執(zhí)行特性的普通數(shù)據(jù)性文件,這緣于windows系統(tǒng)這個(gè)新型解釋平臺(tái)的涉入,使得批處理的應(yīng)用越來越"邊緣化"。所以我們討論的批處理應(yīng)該限定在dos環(huán)境或者命令行環(huán)境中,否則很多觀念和設(shè)定都需要做比較大的變動(dòng)。========================其次,批處理文件是一種簡(jiǎn)單的程序,可以通過條件語句(if)和流程控制語句(goto)來控制命令運(yùn)行的流程,在批處理中也可以使用循環(huán)語句(for)來循環(huán)執(zhí)行一條命令。當(dāng)然,批處理文件的編程能力與C語言等編程語句比起來是十分有限的,也是十分不規(guī)范的。批處理的程序語句就是一條條的DOS命令(包括內(nèi)部命令和外部命令而批處理的能力主要取決于你所使用的命令。====注==================批處理文件(batchfile)也可以稱之為批處理程序(batchprogram),這一點(diǎn)稱之為c語言文件或者c語言源代碼,但只有編以稱之為c語言程序。因?yàn)榕幚砦募旧砑染哂形谋镜目勺x性,又具有程序的可執(zhí)行性,這些稱謂的界限是比較模糊的。===========================第三,每個(gè)編寫好的批處理文件都相當(dāng)于一個(gè)DOS的外部命令,你可以把它所在的目錄放到你的DOS搜索路徑(path)中來使得它可以在任意位置運(yùn)行。一個(gè)良好的習(xí)慣是在硬盤上建立一個(gè)bat或者batch目錄(例如C:\BATCH然后將所有你編寫的批處理文件放到該目錄中,這樣只要在path中設(shè)置上c:\batch,你就可以在任意位置運(yùn)行所有你編寫的批處理程序。====注=====純以dos系統(tǒng)而言,可執(zhí)行程序大約可以細(xì)分為五類,依照?qǐng)?zhí)行優(yōu)先級(jí)由高到低排列分別是:DOSKEY宏命令(預(yù)先駐留內(nèi)存),COMMAND.COM中的內(nèi)部命令(根據(jù)內(nèi)存的環(huán)境隨時(shí)進(jìn)駐內(nèi)存以com為擴(kuò)展名的可執(zhí)行程序(由直接載入內(nèi)存以exe位擴(kuò)展名的可執(zhí)行程序(由重定位后載入內(nèi)存以bat位擴(kuò)展名的批處理程序(由解釋分析,根據(jù)其內(nèi)容按優(yōu)先身不載入內(nèi)存)============第四,在DOS和Win9x/Me系統(tǒng)下,C:盤根目錄下的AUTOEXEC.BAT批處理文件是自動(dòng)運(yùn)行批處理文件,每次系統(tǒng)啟動(dòng)時(shí)會(huì)自動(dòng)運(yùn)行該文件,你可以將系統(tǒng)每次啟動(dòng)時(shí)都要運(yùn)行的命令放入該文件中,例如設(shè)置搜索路徑,調(diào)入鼠標(biāo)驅(qū)動(dòng)和磁盤緩存,設(shè)置系統(tǒng)環(huán)境變量等。下面是一個(gè)運(yùn)行于Windows98下的autoexec.bat的示例:PATHC:\WINDOWS;C:\WINDOWS\COMMAND;C:\UCDOS;C:\DOSTools;C:\SYSTOOLS;C:\WINTOOLS;C:\BATCHLHSMARTDRV.EXE/XLHDOSKEY.COM/insertLHCTMOUSE.EXESETTEMP=D:\TEMPSETTMP=D:\TEMP====注=====AUTOEXEC.BAT為DOS系統(tǒng)的自動(dòng)運(yùn)行批處理文件,由COMMAND.COM啟動(dòng)時(shí)解釋執(zhí)行;而在Win9x環(huán)境中,不僅增加支持了DOSSTART.BAT,WINSTART.B等許多其它自動(dòng)運(yùn)行的批處理文件,對(duì)AUTOEXEC.BAT也增加了.DOS.W40.BAK.OLD.PWS等許多變體以適應(yīng)復(fù)雜的環(huán)境和多變的需求。====willsort編注=============以下關(guān)于命令的分類,有很多值得推敲的地方。常用命令中的@本不是命令,而dir、copy等也很常用的命令卻沒有列入,而特殊命令中所有命令對(duì)我來說都是常用命令。建議將批處理所引用的命令分為內(nèi)部命令、外部命令、第三方程序三類。而內(nèi)部命令和外部命令中別有一類是專用于或常用于批處理中的命令可稱之為"批處理命令"。以下摘錄MS-DOS6.22幫助文檔中關(guān)于"批處理命令"的文字,當(dāng)然,其中有些概念和定義已經(jīng)有些落后了。批處理命令批處理文件或批處理程序是一個(gè)包含若干MS-DOS命令的正文文件,擴(kuò)展名為.BAT。當(dāng)在命令提示符下敲入批處理程序的名稱時(shí),MS-DOS成組執(zhí)行此批處理程序中的命令。任何在命令提示符下可使用的命令都可用在批處理程序中。此外,下面MS-DOS命令是專門在批處理程序中使用的。==========常用命令的幾個(gè)命令,我們就從他們開始學(xué)起。====注===========首先,@不是一個(gè)命令,而是DOS批處理的一個(gè)特殊標(biāo)記符,僅用于屏蔽命令行回顯.下面是DOS命令行或批處理中可能會(huì)見到的一些特殊標(biāo)記符:CR(0D)命令行結(jié)束符Escape(1B)ANSI轉(zhuǎn)義字符引導(dǎo)符Space(20)常用的參數(shù)界定符Tab(09);=不常用的參數(shù)界定符+COPY命令文件連接符""字符串界定符|命令管道符<>>>文件重定向符@命令行回顯屏蔽符/參數(shù)開關(guān)引導(dǎo)符:批處理標(biāo)簽引導(dǎo)符%批處理變量引導(dǎo)符其次,::確實(shí)可以起到rem的注釋作用,而且更簡(jiǎn)潔有效;但有兩點(diǎn)需要注意:第一,除了::之外,任何以:開頭的字符行,在批處理中都被視作標(biāo)號(hào),而直接忽略其后的所有內(nèi)容,只是為了與正常的標(biāo)號(hào)相區(qū)別,建議使用goto所無法識(shí)別的標(biāo)號(hào),即在:后緊跟一個(gè)非字母數(shù)字的一個(gè)特殊符號(hào).第二,與rem不同的是,::后的字符行在執(zhí)行時(shí)不會(huì)回顯,無論是否用echoon打開命令行回顯狀態(tài),因?yàn)槊罱忉屍鞑徽J(rèn)為他是一個(gè)有效的命令行,就此點(diǎn)來看,rem在某些場(chǎng)合下將比::更為適用;另外,rem可以用于config.sys文件中.=====================echo表示顯示此命令后的字符echooff表示在此語句后所有運(yùn)行的命令都不顯示命令行本身@與echooff相象,但它是加在每個(gè)命令行的最前面,表示運(yùn)行時(shí)不顯示這一行的命令行(只能影響當(dāng)前行)。call調(diào)用另一個(gè)批處理文件(如果不用call而直接調(diào)用別的批處理文件,那么執(zhí)行完那個(gè)批處理文件后將無法返回當(dāng)前文件并執(zhí)行當(dāng)前文件的后續(xù)命令)。pause運(yùn)行此句會(huì)暫停批處理的執(zhí)行并在屏幕上顯示Pressanykeytocontinue...的提示,等待用戶按任意鍵后繼續(xù)rem表示此命令后的字符為解釋行(注釋不執(zhí)行,只是給自己今后參考用的(相當(dāng)于程序中的注釋)。====注=====此處的描述較為混亂,不如直接引用個(gè)命令的命令行幫助更為條理ECHO當(dāng)程序運(yùn)行時(shí),顯示或隱藏批處理程序中的正文。也可用于允許或禁止命令的回顯。在運(yùn)行批處理程序時(shí),MS-DOS一般在屏幕上顯示(回顯)批處理程序中的命令。使用ECHO命令可關(guān)閉此功能。若要用echo命令顯示一條命令,可用下述語法:參數(shù)ON|OFF指定是否允許命令的回顯。若要顯示當(dāng)前的ECHO的設(shè)置,可使用不帶參數(shù)的ECHO命令。message指定讓MS-DOS在屏幕上顯示的正文。從一個(gè)批處理程序中調(diào)用另一個(gè)批處理程序,而不會(huì)引起第一個(gè)批處理的中止。CALL[drive:][path]filename[batch-parameters]參數(shù)[drive:][path]filename指定要調(diào)用的批處理程序的名字及其存放處。文件名必須用.BAT作擴(kuò)展名。batch-parameters指定批處理程序所需的命令行信息。-------------------------------PAUSE暫停批處理程序的執(zhí)行并顯示一條消息,提示用戶按任意鍵繼續(xù)執(zhí)行。只能在批處理程序中使用該命令。PAUSEREM在批處理文件或CONFIG.SYS中加入注解。也可用REM命令來屏蔽命令(在CONFIG.SYS中也可以用分號(hào);代替REM命令,但在批處理文件中則不能替代)。參數(shù)指定要屏蔽的命令或要包含的注解。=======================處理文件后可實(shí)現(xiàn):將根目錄中所有文件寫入a.txt中,啟動(dòng)UCDOS,進(jìn)入WPS等功能。批處理文件的內(nèi)容為:命令注釋:@echooff不顯示后續(xù)命令行及當(dāng)前命令行dirc:\*.*>a.txt將c盤文件列表寫入a.txtcallc:\ucdos\ucdos.bat調(diào)用ucdosecho你好顯示"你好"pause暫停,等待按鍵繼續(xù)rem準(zhǔn)備運(yùn)行wps注釋:準(zhǔn)備運(yùn)行wps批處理文件的參數(shù)批處理文件還可以像C語言的函數(shù)一樣使用參數(shù)(相當(dāng)于DOS命令的命令行參數(shù)這需要用到一個(gè)參數(shù)表示符"%"。%[1-9]表示參數(shù),參數(shù)是指在運(yùn)行批處理文件時(shí)在文件名后加的以空格(或者Tab)分隔的字符串。變量可以從%0到%9,%0表示批處理命令本身,其它參數(shù)字符串用%1到%9順序表示。@echooff如果執(zhí)行C:\>fa:于是上面的命令運(yùn)行時(shí)實(shí)際執(zhí)行的是formata:例3:C:根目錄下一批處理文件名為t.bat,內(nèi)容為:@echooff那么運(yùn)行C:\>ta.txtb.txt于是上面的命令將順序地顯示a.txt和b.txt文件的內(nèi)容。====注===============參數(shù)在批處理中也作為變量處理,所以同樣使用百分號(hào)作為引導(dǎo)符,其后跟0-9中的一個(gè)數(shù)字構(gòu)成參數(shù)引用符.引用符和參數(shù)之間(例如上文中的%1與a:)的關(guān)系類似于變量指針與變量值的關(guān)系.當(dāng)我們要引用第十一個(gè)或更多個(gè)參數(shù)時(shí),就必須移動(dòng)DOS的參數(shù)起始指針.shift命令正充當(dāng)了這個(gè)移動(dòng)指針的角色,它將參數(shù)的起始指針移動(dòng)到下一個(gè)參數(shù),類似C語言中的指針操作.圖示如下:初始狀態(tài),cmd為命令名,可以用%0引用cmdarg1arg2arg3arg4arg5arg6arg7arg8arg9arg10cmdarg1arg2arg3arg4arg5arg6arg7arg8arg9arg10經(jīng)過2次shift后,arg1也被廢棄,%9指向?yàn)榭?沒有引用意義cmdarg1arg2arg3arg4arg5arg6arg7arg8arg9arg10遺憾的是,win9x和DOS下均不支持shift的逆操作.只有在nt內(nèi)核命令行環(huán)境下,shift才支持/n參數(shù),可以以第一參數(shù)為基準(zhǔn)返復(fù)移動(dòng)起始指針.=================特殊命令ifgotochoicefor是批處理文件中比較高級(jí)的命令,如果這幾個(gè)你用得很熟練,你就是批處理文件的專家啦。一、if是條件語句,用來判斷是否符合規(guī)定的條件,從而決定執(zhí)行不同的命令。有三種格式:參數(shù)如果等于(not表示不等,下同)指定的字符串,則條件成立,運(yùn)行命令,否則運(yùn)行下一句。例:if"%1"=="a"formata:====if的命令行幫助中關(guān)于此點(diǎn)的描述為:IF[NOT]string1==string2command在此有以下幾點(diǎn)需要注意:1.包含字符串的雙引號(hào)不是語法所必須的,而只是習(xí)慣上使用的一種"防空"字符2.string1未必是參數(shù),它也可以是環(huán)境變量,循環(huán)變量以及其他字符串常量或變量3.command不是語法所必須的,string2后跟一個(gè)空格就可以構(gòu)成一個(gè)有效的命令行=============================如果有指定的文件,則條件成立,運(yùn)行命令,否則運(yùn)行下一句。如:ifexistc:\config.systypec:\config.sys表示如果存在c:\config.sys文件,則顯示它的內(nèi)容。也可以使用以下的用法:ifexistcommanddevice是指DOS系統(tǒng)中已加載的設(shè)備,在win98下通常有:AUX,PRN,CON,NULCOM1,COM2,COM3,COM4LPT1,LPT2,LPT3,LPT4XMSXXXX0,EMMXXXX0CLOCK$,CONFIG$,DblBuff$,IFS$HLP$具體的內(nèi)容會(huì)因硬軟件環(huán)境的不同而略有差異,使用這些設(shè)備名稱時(shí),需要保證以下三點(diǎn):1.該設(shè)備確實(shí)存在(由軟件虛擬的設(shè)備除外)2.該設(shè)備驅(qū)動(dòng)程序已加載(aux,prn等標(biāo)準(zhǔn)設(shè)備由系統(tǒng)缺省定義)3.該設(shè)備已準(zhǔn)備好(主要是指a:b:...,com1...,lpt1...等)可通過命令mem/d|find"device"/i來檢閱你的系統(tǒng)中所加載的設(shè)備另外,在DOS系統(tǒng)中,設(shè)備也被認(rèn)為是一種特殊的文件,而文件也可以稱作字符設(shè)備;因?yàn)樵O(shè)備(device)與文件都是使用句柄(handle)來管理的,句柄就是名字,類似于文件名,只不過句柄不是應(yīng)用于磁盤管理,而是應(yīng)用于內(nèi)存管理而已,所謂設(shè)備加載也即指在內(nèi)存中為其分配可引用的句柄.==================================3、iferrorlevel<數(shù)字>很多DOS程序在運(yùn)行結(jié)束后會(huì)返回一個(gè)數(shù)字值用來表示程序運(yùn)行的結(jié)果(或者狀態(tài)),通過iferrorlevel命令可以判斷程序的返回值,根據(jù)不同的返回值來決定執(zhí)行不同的命令(返回值必須按照從大到小的順序排列)。如果返回值等于指定的數(shù)字,則條件成立,運(yùn)行命令,否則運(yùn)行下一句。如iferrorlevel2gotox2====注===========返回值從大到小的順序排列不是必須的,而只是執(zhí)行命令為goto時(shí)的習(xí)慣用法,當(dāng)使用set作為執(zhí)行命令時(shí),通常會(huì)從小到大順序排列,比如需將返回碼置入環(huán)境變量,就需使用以下的順序形式:iferrorlevel1setel=1iferrorlevel2setel=2iferrorlevel3setel=3iferrorlevel4setel=4iferrorlevel5setel=5當(dāng)然,也可以使用以下循環(huán)來替代,原理是一致的:for%%ein(12345678...)doiferro更高效簡(jiǎn)潔的用法,可以參考我寫的另一篇關(guān)于獲取errorlevel的文章出現(xiàn)此種現(xiàn)象的原因是,iferrorlevel比較返回碼的判斷條件并非等于,而是大于等于.由于goto的跳轉(zhuǎn)特性,由小到大排序會(huì)導(dǎo)致在較小的返回碼處就跳出;而由于set命令的"重復(fù)"賦值特性,由大到小排序會(huì)導(dǎo)致較小的返回碼"覆蓋"較大的返回碼.另外,雖然iferrorlevel=<數(shù)字>command也是有效的命令行,但也只是解釋命令行時(shí)將=作為命令行切分符而忽略掉罷了===========================二、goto批處理文件運(yùn)行到這里將跳到goto所指定的標(biāo)號(hào)(標(biāo)號(hào)即label,標(biāo)號(hào)用:后跟標(biāo)準(zhǔn)字符串來定義)處,goto語句一般與if配合使用,根據(jù)不同的條件來執(zhí)行不同的命令組。echothisistheend標(biāo)號(hào)用":字符串"來定義,標(biāo)號(hào)所在行不被執(zhí)行。====willsort編注label常被譯為"標(biāo)簽",但是這并不具有廣泛的約定性.goto與:聯(lián)用可實(shí)現(xiàn)執(zhí)行中途的跳轉(zhuǎn),再結(jié)合if可實(shí)現(xiàn)執(zhí)行過程的條件分支,多個(gè)if即可實(shí)現(xiàn)命令的分組,類似C中switchcase結(jié)構(gòu)或者Basic中的selectcase結(jié)構(gòu),大規(guī)模且結(jié)構(gòu)化的命令分組即可實(shí)現(xiàn)高級(jí)語言中的函數(shù)功能.以下是批處理和C/Basic在語法結(jié)構(gòu)上的對(duì)照:BatchC/Basicgoto&:goto&:goto&:&ifif{}&else{}/if&elseif&endifgoto&:&if...switch&case/selectcasegoto&:&if&set&envar...function()/function(),sub()==================================三、choice使用此命令可以讓用戶輸入一個(gè)字符(用于選擇從而根據(jù)用戶的選擇返回不同的errorlevel,然后于iferrorlevel配合,根據(jù)用戶的選擇運(yùn)行不同的命令。注意:choice命令為DOS或者Windows系統(tǒng)提供的外部命令,不同版本的choice命令語法會(huì)稍有不同,請(qǐng)用choice/?查看用法。choice的命令語法(該語法為Windows2003中choice命令的語法,其它版本的choice的命令語法與此大同小異):CHOICE[/Cchoices][/N][/CS][/Ttimeout/Dchoice][/Mtext]描述:該工具允許用戶從選擇列表選擇一個(gè)項(xiàng)目并返回所選項(xiàng)目的索引。參數(shù)列表:/Cchoices指定要?jiǎng)?chuàng)建的選項(xiàng)列表。默認(rèn)列表是"YN"。/N在提示符中隱藏選項(xiàng)列表。提示前面的消息得到顯示,選項(xiàng)依舊處于啟用狀態(tài)。/CS允許選擇分大小寫的選項(xiàng)。在默認(rèn)情況下,這個(gè)工具是不分大小寫的。/Ttimeout做出默認(rèn)選擇之前,暫停的秒數(shù)??山邮艿闹凳菑?會(huì)得到選擇。/Dchoice在nnnn秒之后指定默認(rèn)選項(xiàng)。字符必須在用/C選項(xiàng)指定的一組選擇中;同時(shí),必須用/T指定nnnn。/Mtext指定提示之前要顯示的消息。如果沒有指定,工具只顯示提示。/?顯示幫助消息。注意:ERRORLEVEL環(huán)境變量被設(shè)置為從選擇集選擇的鍵索引。列出的第一個(gè)選該工具會(huì)發(fā)出警告響聲。如果該工具檢測(cè)到錯(cuò)誤狀態(tài),它會(huì)返回255的ERRORLEVEL值。如果用戶按Ctrl+Break或Ctrl+C鍵,該工具會(huì)返的ERRORLEVEL值。在一個(gè)批程序中使用ERRORLEVEL參數(shù)時(shí),將參數(shù)降序排列。示例:CHOICE/?CHOICE/T10/Cync/CS/Dy====willsort編注===============================我列出win98下choice的用法幫助,已資區(qū)分Waitsfortheusertochooseoneofasetofchoices.等待用戶選擇一組待選字符中的一個(gè)/C[:]choicesSpecifiesallowablekeys.DefaultisYN指定允許的按鍵(待選字符),默認(rèn)為YN/NDonotdisplaychoicesand?atendofpromptstring.不顯示提示字符串中的問號(hào)和待選字符/STreatchoicekeysascasesensitive.處理待選字符時(shí)大小寫敏感/T[:]c,nnDefaultchoicetocafternnseconds在nn秒后默認(rèn)選擇ctextPromptstringtodisplay要顯示的提示字符串ERRORLEVELissettooffsetofkeyuserpressesinchoices.ERRORLEVEL被設(shè)置為用戶鍵入的字符在待選字符中的偏移值屏幕上會(huì)顯示:例:test.bat的內(nèi)容如下(注意,用iferrorlevel判斷返回值時(shí),要按返回值從高到低排列):@echooffchoice/Cdme/M"defrag,mem,end"iferrorlevel3gotoendiferrorlevel2gotomemiferrorlevel1gotodefragc:\dos\defragmemechogoodbye然后if語句根據(jù)用戶的選擇作出判斷,d表示執(zhí)行標(biāo)號(hào)為defrag的程序段,m表示執(zhí)行標(biāo)號(hào)為mem的程序段,e表示執(zhí)行標(biāo)號(hào)為end的程序段,每個(gè)程序段最后都以gotoend將程序跳到end標(biāo)號(hào)處,然后程序?qū)@示goodbye,批處理運(yùn)行結(jié)束。四、for循環(huán)命令,只要條件符合,它將多次執(zhí)行同一命令。語法:對(duì)一組文件中的每一個(gè)文件執(zhí)行某個(gè)特定命令。FOR%%variableIN(set)DOcommand[command-parameters]%%variable指定一個(gè)單一字母可替換的參數(shù)。(set)指定一個(gè)或一組文件??梢允褂猛ㄅ浞?。command指定對(duì)每個(gè)文件執(zhí)行的命令。command-parameters為特定命令指定參數(shù)或命令行開關(guān)。例如一個(gè)批處理文件中有一行:for%%cin(*.bat*.txt)dotype%%c則該命令行會(huì)顯示當(dāng)前目錄下所有以bat和txt為擴(kuò)展名的文件的內(nèi)容。====willsort編注=============

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論