fameview監(jiān)控系統(tǒng)畢業(yè)設(shè)計(jì)_第1頁
fameview監(jiān)控系統(tǒng)畢業(yè)設(shè)計(jì)_第2頁
fameview監(jiān)控系統(tǒng)畢業(yè)設(shè)計(jì)_第3頁
fameview監(jiān)控系統(tǒng)畢業(yè)設(shè)計(jì)_第4頁
fameview監(jiān)控系統(tǒng)畢業(yè)設(shè)計(jì)_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

武漢科技大學(xué)本科畢業(yè)設(shè)計(jì)摘要隨著微電子技術(shù)、計(jì)算機(jī)控制技術(shù)、工業(yè)以太網(wǎng)技術(shù)及現(xiàn)場總線技術(shù)的發(fā)展,作為用無需改變運(yùn)行程序原代碼的軟件平臺工具——工控組態(tài)軟件日漸成熟。由于工控組態(tài)軟件在實(shí)現(xiàn)工業(yè)控制的過程中免去了大量煩瑣的編程工作,解決了長期以來控制工程人員缺乏計(jì)算機(jī)專業(yè)知識與計(jì)算機(jī)專業(yè)人員缺乏控制工程現(xiàn)場操作技術(shù)和經(jīng)驗(yàn)的矛盾,極大地提高了自動化工程的工作效率。近年來,工控組態(tài)軟件在中小型工業(yè)過程控制工程、工業(yè)自動化工程中越來越受到歡迎。本文介紹以fameview平臺開發(fā)完成風(fēng)力電機(jī)試驗(yàn)站監(jiān)控系統(tǒng)。按照設(shè)計(jì)流程,以實(shí)際情況總結(jié)開發(fā)過程,包括了驅(qū)動選擇安裝,運(yùn)行數(shù)據(jù)庫的建立,畫面的制作,通過腳本實(shí)現(xiàn)一些功能,數(shù)據(jù)庫功能,服務(wù)器客戶端結(jié)構(gòu)的搭建,多屏顯示。根據(jù)這些基本的步驟,可以實(shí)現(xiàn)簡單的監(jiān)控系統(tǒng)的設(shè)計(jì),希望以實(shí)例總結(jié)出用fameview開發(fā)監(jiān)控系統(tǒng)的一般步驟和方法。關(guān)鍵詞:組態(tài);fameview;C/S結(jié)構(gòu);監(jiān)控系統(tǒng)AbstractWiththedevelopmentofmicroelectronicstechnologies,computercontrollingtechnology,industrialEthernettechnologyandfieldbustechnology,theindustrial-controlledconfigurationsoftwareismaturingasasoftwareplatformtoolthatusesprimarycodewithoutchangingtherunningprograms.Astheindustrial-controlledconfigurationsoftwarehaseliminatedalotoftediousprogrammingworkandresolvedthecontradictthatforalongtime,thecontrolengineeringstaffslackthecomputerexpertiseandthecomputerprofessionalslackthesiteoperationsskillsandexperienceofcontrolengineering.Ithasgreatlyimprovedtheefficiencyofautomationprojects.Inrecentyears,theindustrial-controlledconfigurationsoftwarehasbeenmoreandmorepopularinsmallandmediumindustrialprocesscontrolengineeringandindustrialautomationprojects.Thisarticleintroducesamethodthatbasesonthefameviewplatformtodevelopandcompletemonitoringsystemforwindturbineteststation.Inaccordancewiththedesignprocesstotheactualsummaryofthedevelopmentprocess,includingthedriverchoosetoinstall,runthedatabasesetup,thepictureproducedbythescripttoachievesomeofthefeatures,databasefunctionality,theserverclientarchitecture,structures,multi-screendisplay.Accordingtothesebasicsteps,youcanachieveasimplecontrolsystemdesignIhopetoconcludethegeneralstepsandmethodsthatusingfameviewtodevelopmonitoringsystemswithsomeexamples.Keywords:Configuration;Fameview;C/Sstructure;Monitoringsystem目錄1緒論 41.1課題背景 41.2設(shè)計(jì)內(nèi)容及工作 42框架設(shè)計(jì) 63設(shè)備通信 73.1安裝驅(qū)動 73.2新建設(shè)備數(shù)據(jù)表 83.3新建運(yùn)行數(shù)據(jù)庫 104畫面制作 135腳本功能 165.1腳本環(huán)境 165.2腳本控制動態(tài)標(biāo)題 175.4腳本實(shí)現(xiàn)單窗口多操作 205.5腳本實(shí)現(xiàn)配電線路變色 245.6腳本控制液體動態(tài)流動 285.7腳本實(shí)現(xiàn)帶記憶功能的配置 315.8腳本實(shí)現(xiàn)樹形選擇 326數(shù)據(jù)庫功能 347服務(wù)器客戶端結(jié)構(gòu)的實(shí)現(xiàn) 367.1服務(wù)器端設(shè)置 367.2客戶端設(shè)置 378多屏顯示 399結(jié)束語 40參考文獻(xiàn) 41致謝 421緒論1.1課題背景組態(tài)軟件源于上世紀(jì)80年代初,并在上世紀(jì)80年代末進(jìn)入我國。當(dāng)時(shí)國內(nèi)用戶缺乏對組態(tài)軟件的認(rèn)識,軟件意識不強(qiáng),寧愿投入大量人力物力針對具體項(xiàng)目做長周期的上位機(jī)編程,而不采用組態(tài)軟件。隨著MIS和CIMS的大量應(yīng)用,要求工業(yè)現(xiàn)場為企業(yè)的生產(chǎn)、經(jīng)營、決策提供更詳細(xì)深入的數(shù)據(jù),優(yōu)化生產(chǎn)經(jīng)營各個(gè)環(huán)節(jié)。因此,在上世紀(jì)90年代中期以后,組態(tài)軟件在國內(nèi)逐漸普及。組態(tài)軟件,是指利用Windows操作系統(tǒng)提供的編程工具,通過簡單、形象的組態(tài)工作而實(shí)現(xiàn)的,具有良好的人機(jī)界面、綜合應(yīng)用與開發(fā)功能,集數(shù)據(jù)庫、歷史庫、圖形庫、控制操作和運(yùn)行監(jiān)視為一體的多任務(wù)信息處理系統(tǒng)。其內(nèi)涵,組態(tài)軟件是指軟件工程師根據(jù)特定要求,配置用戶應(yīng)用軟件的過程;其應(yīng)用,組態(tài)軟件是完成硬件與軟件溝通,建立人機(jī)對話的軟件平臺。組態(tài)軟件憑借良好的開放性,極高的穩(wěn)定性,強(qiáng)大的控制功能,在石油化工、冶金建材、物流倉儲、工礦電力、智能樓宇等領(lǐng)域,得到了廣泛的應(yīng)用。在風(fēng)力發(fā)電發(fā)展的過程中,風(fēng)力發(fā)電機(jī)的技術(shù)顯得尤為重要,由于電機(jī)的容量越大,需要的驅(qū)動力也越大,對整個(gè)系統(tǒng)的要求也越高,現(xiàn)在主流風(fēng)機(jī)容量在1.5--5MW之間,我們稱之為中型電機(jī)。電機(jī)的質(zhì)量以及效率直接影響到整個(gè)風(fēng)電系統(tǒng),日益增大的需求要求我們嚴(yán)格把好電機(jī)質(zhì)量關(guān),盡量減少人工失誤,自動化、智能化的電機(jī)試驗(yàn)系統(tǒng)迫在眉睫。電機(jī)試驗(yàn)系統(tǒng)是讓電機(jī)分別處于發(fā)電狀態(tài)和電動狀態(tài),通過調(diào)節(jié)頻率和電壓來測量和分析電機(jī)不同狀態(tài)下的各種參數(shù)。早期的試驗(yàn)系統(tǒng)采用的方式是:電力驅(qū)動一臺大電機(jī),由這臺電機(jī)拖動一臺發(fā)電機(jī),產(chǎn)生一個(gè)頻率可調(diào)的電源,然后用這個(gè)可調(diào)電源去驅(qū)動被試機(jī),這種方法對電能的浪費(fèi)比較大。現(xiàn)在采用雙饋試驗(yàn)方法,直接用變頻電源驅(qū)動,被試機(jī)發(fā)出的電能可以回饋到電網(wǎng),起到節(jié)能的作用。1.2設(shè)計(jì)內(nèi)容及工作通過對以上硬件條件的分析,決定采用FAMEVIEW組態(tài)軟件進(jìn)行開發(fā),開發(fā)設(shè)計(jì)流程下:1)數(shù)據(jù)通信。對于整個(gè)系統(tǒng),數(shù)據(jù)通信的可靠性和快速性是監(jiān)控系統(tǒng)的靈魂,沒有可靠實(shí)時(shí)的數(shù)據(jù),何談控制。FAMEVIEW組態(tài)軟件提供了豐富的PLC驅(qū)動和各種儀表的驅(qū)動,可以做到100ms更新一次,可靠性高,實(shí)時(shí)性強(qiáng)。我們要做的是確定數(shù)據(jù)的區(qū)域,大大的簡化了開發(fā)過程。2)協(xié)議分析。數(shù)據(jù)準(zhǔn)確的讀回來后,這些數(shù)據(jù)代表的是什么,有什么用途,及如何操作,這就是協(xié)議了。PLC上來的數(shù)據(jù)有DB塊解釋,通過這些解釋,確定各個(gè)數(shù)據(jù)的含義,如有的是電壓,有的是電流,有的是流量等等,有些是可以寫下去的數(shù)據(jù),有無互鎖,是電平控制還是脈沖控制,這都是協(xié)議規(guī)約的。分析完協(xié)議后,就可以建立運(yùn)行數(shù)據(jù)庫,為監(jiān)控程序的運(yùn)行做好底層工作。3)系統(tǒng)框架設(shè)計(jì)。這一部分是最直觀的了,也就是人機(jī)界面,操作員天天看到的就是人機(jī)界面。人機(jī)界面把系統(tǒng)的各種狀態(tài)反應(yīng)出來,同時(shí)提供了人去操作的接口??蚣茉O(shè)計(jì)要做到分類明確,直觀,突出重點(diǎn),盡量做到方便操作員的監(jiān)控與操作,這一過程要不斷的與操作員溝通,不斷的改進(jìn),精益求精。4)數(shù)據(jù)庫功能。Fameview提供完善的數(shù)據(jù)庫服務(wù)與功能,可以很方便的對數(shù)據(jù)庫進(jìn)行讀取,添加,修改等操作,使用簡單,功能全面,用戶只需要把相應(yīng)的數(shù)據(jù)表對應(yīng)好,就可以對數(shù)據(jù)庫進(jìn)行操作。5)服務(wù)器客戶端網(wǎng)絡(luò)結(jié)構(gòu)。Fameview的網(wǎng)絡(luò)服務(wù)功能也很全面,只需要設(shè)置好ip地址及相應(yīng)參數(shù),就可以實(shí)現(xiàn)服務(wù)器客戶端結(jié)構(gòu),避免了多臺上位機(jī)都從控制器讀取數(shù)據(jù),節(jié)省了系統(tǒng)資源,同時(shí)也保證了數(shù)據(jù)的統(tǒng)一性。具體設(shè)計(jì)及其實(shí)現(xiàn)過程請參閱下文。2框架設(shè)計(jì)東方電機(jī)中型電機(jī)廠試驗(yàn)站系統(tǒng)硬件包括:電源系統(tǒng),冷卻系統(tǒng),控制系統(tǒng),采集單元。電源采用10KV進(jìn)線,通過變壓后給變頻電源供電,冷卻系統(tǒng)采用水冷和油冷相結(jié)合,應(yīng)用在不同地方,控制系統(tǒng)由PLC組成,采集單元采用高速采集儀表。要求采用服務(wù)器客戶端結(jié)構(gòu),一臺服務(wù)器,五個(gè)客戶端,服務(wù)器負(fù)責(zé)數(shù)據(jù)的采集與通信,客戶端由操作員操作。關(guān)鍵的信息要求大屏幕多屏顯示,方便監(jiān)控。要求實(shí)現(xiàn)web遠(yuǎn)程訪問,在網(wǎng)絡(luò)內(nèi)能通過瀏覽器方便的查看試驗(yàn)狀況。對于整套系統(tǒng)的操作,要求五個(gè)人就能完成試驗(yàn),人機(jī)交互顯得尤為重要,需要一個(gè)可靠方便的監(jiān)控系統(tǒng),這也決定了整個(gè)系統(tǒng)的可操作性及智能化程度。通過對系統(tǒng)的初步分析,在主體上按功能分為6個(gè)畫面,分別為,高壓及變頻器系統(tǒng),低壓系統(tǒng),水系統(tǒng),油系統(tǒng),試驗(yàn)線路,試驗(yàn)界面,界面的下方有導(dǎo)航條,可以實(shí)現(xiàn)界面的切換,上方有界面信息的標(biāo)題以及系統(tǒng)時(shí)間等信息。3設(shè)備通信3.1安裝驅(qū)動根據(jù)通信協(xié)議,新建設(shè)備數(shù)據(jù)表。本系統(tǒng)主站plc由西門子300plc構(gòu)成,采用網(wǎng)口通訊方式,ip地址為0。數(shù)據(jù)約定存放在DB10中。在fameview主界面的左邊導(dǎo)航目錄:圖3.1設(shè)備通訊然后點(diǎn)擊安裝驅(qū)動,在彈出框左邊的目錄中選擇西門子/s7tcp,然后點(diǎn)擊安裝。圖3.2驅(qū)動安裝在啟動驅(qū)動中選擇安裝的驅(qū)動,點(diǎn)擊確定,圖3.3啟動驅(qū)動3.2新建設(shè)備數(shù)據(jù)表雙擊設(shè)備數(shù)據(jù)表,彈出如下窗口:圖3.4設(shè)備數(shù)據(jù)表D1為系統(tǒng)默認(rèn)設(shè)備,雙擊D2,彈出如下窗口:圖3.5定義設(shè)備設(shè)備號名稱取名為“主站PLC”,驅(qū)動選擇S7tcp,遠(yuǎn)程參數(shù)中,槽號默認(rèn)為2,地址為0,其他默認(rèn),在通訊設(shè)置中,由于是要與plc的db10交換數(shù)據(jù),所以數(shù)據(jù)類型選擇DB-數(shù)據(jù)塊,數(shù)據(jù)快(DBx)選擇10,由于現(xiàn)在要在db10中從字節(jié)0開始,取1000個(gè)字節(jié),所以開始地址為0,長度為1000,其他默認(rèn)。這樣,就設(shè)置好了與西門子s7-300plc在db10中的數(shù)據(jù)交換,其他設(shè)備的通訊設(shè)置與此類似,關(guān)鍵是選擇好對應(yīng)的驅(qū)動,以及設(shè)置好相關(guān)參數(shù),有了組態(tài),通訊變得很簡單,工程師要做的就是配置好設(shè)備,大大簡化了開發(fā)難度。當(dāng)設(shè)備數(shù)據(jù)表新建好以后,在主程序的導(dǎo)航目錄中,點(diǎn)擊運(yùn)行數(shù)據(jù)庫,這就是程序運(yùn)行的過程中所需要的數(shù)據(jù)。圖3.6運(yùn)行數(shù)據(jù)庫3.3新建運(yùn)行數(shù)據(jù)庫Fameview采用先進(jìn)的數(shù)據(jù)交換模式,其思想是先通過通信把需要的數(shù)據(jù)批量讀上來,放在緩沖區(qū)中,這時(shí)所有數(shù)據(jù)都放在一起,還不知道這些數(shù)據(jù)到底有什么意義,然后通過配置運(yùn)行數(shù)據(jù)庫,把數(shù)據(jù)的意義區(qū)分開來,這樣可以實(shí)現(xiàn)最大的通信量,模塊性強(qiáng),結(jié)構(gòu)清晰,方便用戶配置。以已經(jīng)讀上來的設(shè)備D2為例,D2中的數(shù)據(jù)是S7-300plc的db10中前1000個(gè)字節(jié)的數(shù)據(jù),通過plc工程師給的DB10數(shù)據(jù)協(xié)議,比如說db10中字節(jié)地址從182開始的兩個(gè)字節(jié)表示的是被試機(jī)二次水回水溫度,這個(gè)數(shù)據(jù)只需要讀,不需要寫,雙擊AI-模擬只讀變量,彈出如下窗口:圖3.7新建AI變量點(diǎn)擊新建,彈出如下窗口:圖3.8制作變量設(shè)備號選擇D2,單元號選擇D2.B182,由于西門子數(shù)據(jù)采用的是反高低字節(jié),這個(gè)數(shù)據(jù)是由一個(gè)字構(gòu)成,所以處理方式選擇按字處理,反高低字節(jié),這個(gè)數(shù)據(jù)對應(yīng)原始值就行,不需要進(jìn)行線性處理,選擇y=I2(x2,x1),在有些時(shí)候,數(shù)據(jù)是要進(jìn)行線性處理的,比如讀上來的數(shù)據(jù)是0-32767,對應(yīng)的實(shí)際值是0-100,這是我們就要選擇帶線性運(yùn)算的處理方式,即y=kx+b,在下面的變量最小值,變量最大值中寫入相應(yīng)變量的實(shí)際范圍,在對應(yīng)的原始值填讀上來的數(shù)據(jù)范圍。以db10中字節(jié)地址從238開始的兩個(gè)字節(jié)為例,這兩個(gè)字節(jié)表示的是環(huán)境溫度,讀上來的原始數(shù)據(jù)范圍是0-27648,對應(yīng)的實(shí)際溫度是-200到600攝氏度,所以我們要選擇按字、反高低字節(jié)y=k*I2(x2,x1)+b,變量最小值填-200,變量最大值填600,對應(yīng)原始值為0-27648.這樣數(shù)據(jù)在讀上來之后組態(tài)軟件就通過線性處理得到我們想要的值。按照上面的方法,把所有數(shù)據(jù)建立起來,但是數(shù)據(jù)量一旦大了,編輯工作就相當(dāng)大,fameview支持從excel導(dǎo)入,在運(yùn)行數(shù)據(jù)庫界面中選擇使用excel組態(tài),然后先導(dǎo)出一個(gè)模板,點(diǎn)擊運(yùn)行數(shù)據(jù)庫—>excel,選擇需要導(dǎo)出的變量,點(diǎn)開始導(dǎo)出就可以得到相應(yīng)的excel,打開excel,按照已經(jīng)生成的格式填入相應(yīng)的內(nèi)容,不同類型變量在自己的sheet中,通過excel下面的按鈕選擇,處理方式在后面的sheet中有說明。圖3.9導(dǎo)入excel4畫面制作點(diǎn)擊顯示畫面,雙擊畫面制作,新建畫面:圖4.1新建畫面設(shè)置名稱和大小后,確定彈出一張空白畫面,在畫面右邊有組件箱,里面有畫圖及一些畫面控件。圖4.2畫面窗口通過形象的圖形反映出工藝流程,簡單方便的功能讓操作員更好的操作。通過分析,畫面主要分為高壓與變頻器配電畫面、低壓配電畫面、試驗(yàn)線路畫面、試驗(yàn)畫面、水系統(tǒng)畫面、油系統(tǒng)畫面,按照功能的不同,通過最簡潔直觀的方式,把系統(tǒng)的設(shè)備和流程展現(xiàn)在操作員面前,讓操作員一目了然。在高壓與變頻系統(tǒng)中,開關(guān)和線路采用單線圖,其實(shí)每一根線都代表三相。當(dāng)開關(guān)是斷開狀態(tài)是,開關(guān)顯示斷開,顏色是綠色,當(dāng)開關(guān)合上時(shí),開關(guān)閉合,顏色是紅色,這樣就很形象的反應(yīng)了開關(guān)的狀態(tài)。要實(shí)現(xiàn)以上功能,通過設(shè)置線的可見性實(shí)現(xiàn),雙擊要操作的線,彈出屬性窗口:圖4.3直線屬性通過設(shè)置相應(yīng)的功能就可以達(dá)到相應(yīng)的目的。其他對象也類似。在要顯示數(shù)據(jù)的地方放一個(gè)變量框,通過雙擊變量框彈出屬性窗口,設(shè)置動態(tài)變量就可以讓變量框顯示我們需要的數(shù)據(jù)。在低壓配電畫面中,大體與高壓部分類似,在布好線路后,對相應(yīng)的開關(guān)加以操控,這樣就動態(tài)的反映了系統(tǒng)的開關(guān)狀態(tài)。試驗(yàn)線路的配電部分也與上面類似,通過布好線路,然后對開關(guān)加上動態(tài)功能,反映試驗(yàn)線路的狀態(tài)。水系統(tǒng)畫面根據(jù)施工方提供的水系統(tǒng)設(shè)計(jì)圖,畫出水系統(tǒng)的工藝流程圖,在管道上加上動態(tài)流動管道,可以實(shí)現(xiàn)水的動態(tài)流動。流動管道在組件箱的畫面控件中,雙擊彈出設(shè)置界面??梢詫α鲃拥念伾较?,快慢,加以設(shè)置,使其更美觀。然后通過變量控制動態(tài)可見和動態(tài)起停達(dá)到直觀反應(yīng)水流狀態(tài)的目的。油系統(tǒng)與水系統(tǒng)類似,按照水系統(tǒng)的方法,根據(jù)設(shè)計(jì)圖,把油系統(tǒng)的界面做好。試驗(yàn)界面是最復(fù)雜也是最關(guān)鍵的畫面,試驗(yàn)站在做試驗(yàn)時(shí)操作員操作時(shí)間最長的就是試驗(yàn)界面,總體設(shè)計(jì)是先配置試驗(yàn),在配置的過程中首先選擇好試驗(yàn)項(xiàng)目,由于電機(jī)的溫度數(shù)據(jù)是從采集儀表MW100通信過來的,其有60個(gè)通道,而且每個(gè)通道每次試驗(yàn)所測的數(shù)據(jù)可能不一樣,比如通道3上次試驗(yàn)可能接的是環(huán)境溫度,這次試驗(yàn)接的是軸承溫度,所以在試驗(yàn)之前需要對通道進(jìn)行配置。還有量程的選擇,每次試驗(yàn)的電機(jī)大小可能不一樣,所以測量的過程中選擇的量程也應(yīng)該根據(jù)電機(jī)而變化,所以要對量程進(jìn)行配置。在試驗(yàn)的時(shí)候,需要的保護(hù)措施也不一樣,可能這次當(dāng)電流到達(dá)1000A的時(shí)候電源就要報(bào)警,可是下次800A就要報(bào)警,所以需要配置保護(hù)設(shè)置。根據(jù)試驗(yàn)站要求,在試驗(yàn)的過程中,負(fù)責(zé)電源的人負(fù)責(zé)開電源開關(guān)是拖動機(jī)啟動,負(fù)責(zé)試驗(yàn)的人負(fù)責(zé)試驗(yàn)線路的開關(guān)。這樣就在試驗(yàn)的過程中分拖動界面和試驗(yàn)界面兩個(gè)界面。每個(gè)試驗(yàn)配電線路不一樣,顯示的參數(shù)也有些不同,所以在設(shè)計(jì)時(shí)考慮每個(gè)試驗(yàn)就是一個(gè)單獨(dú)的畫面,根據(jù)不同的需要在每個(gè)試驗(yàn)畫面中做相應(yīng)的功能。根據(jù)以上要求,把試驗(yàn)界面做好,流程圖如下:5腳本功能Fameview集成vb腳本編程,極大的方便了用戶。VBScript是微軟開發(fā)的一種腳本語言,可以看作是VB語言的簡化版,與VBA的關(guān)系也非常密切。它具有原語言容易學(xué)習(xí)的特性。目前這種語言廣泛應(yīng)用于網(wǎng)頁和ASP程序制作,同時(shí)還可以直接作為一個(gè)可執(zhí)行程序。用于調(diào)試簡單的VB語句非常方便。通過腳本我們可以靈活方便的實(shí)現(xiàn)某些功能,而且結(jié)構(gòu)清晰,邏輯性強(qiáng),便于以后的開發(fā)與維護(hù)。5.1腳本環(huán)境雙擊某一個(gè)對象,在彈出的屬性窗口中,有在鼠標(biāo)事件中選擇點(diǎn)擊左鍵:圖5.1鼠標(biāo)事件彈出腳本編輯窗:圖5.2腳本窗口在編輯窗口的左邊有所有功能函數(shù)的導(dǎo)航目錄,按不同的功能和操作對象的不同區(qū)分,方便選擇,在編輯窗口上方有快捷選擇目錄,都是一些常用的函數(shù)。Vb腳本基本語法與vb一致,數(shù)據(jù)類型,條件語句,都是一樣的。熟悉vb的話可以很快上手,就算沒有vb基礎(chǔ),也可以通過每個(gè)函數(shù)的說明很容易實(shí)現(xiàn)相應(yīng)的功能。5.2腳本控制動態(tài)標(biāo)題比如我們需要一個(gè)主窗口,上面的title顯示程序信息,當(dāng)前畫面的信息,系統(tǒng)的時(shí)間與日期,中間顯示相應(yīng)的畫面,下面是一排導(dǎo)航按鈕。通過導(dǎo)航窗口切換不同的畫面,title的信息也跟著變化。設(shè)計(jì)好title和下面的導(dǎo)航按鈕,在畫面中間放置一個(gè)子窗口,在組件箱的畫面窗口中,通過切換子窗口中的內(nèi)容,就可以實(shí)現(xiàn)功能畫面的切換。我把子窗口命名GALI,把下面導(dǎo)航按鈕的缺省文本改為需要切換的畫面信息,比如第一個(gè)按鈕我想點(diǎn)擊后切換到高壓與變頻其的畫面,我把缺省畫面改為高壓與變頻。在畫面切換的過程中,我想title中反應(yīng)畫面信息的文本也改變成高壓與變頻。我通過動態(tài)文本實(shí)現(xiàn),在運(yùn)行數(shù)據(jù)庫中新建一個(gè)內(nèi)部模擬變量VD,命名為界面標(biāo)號,界面標(biāo)號等于1時(shí)上面的信息框就顯示高壓與變頻。圖5.3動態(tài)文本雙擊高壓與變頻按鈕:圖5.4按鈕屬性點(diǎn)擊處理腳本,彈出腳本編輯框。編程的思想是把子窗口中的畫面切換到高壓與變頻畫面,然后把內(nèi)部模擬變量界面標(biāo)號給設(shè)置為1,在編輯窗口上面的菜單中點(diǎn)擊畫面/改變子窗口,在選擇對象名稱中選擇已經(jīng)放置好的子窗口‘gali’,在畫面選擇窗口中選擇高壓及變頻,編輯器自動寫出如下代碼:SubViewObj.ChangePicture"gali","高壓及變頻.drw"然后點(diǎn)擊上面快捷菜單的變量/設(shè)置變量的值,在變量選擇窗口中選擇內(nèi)部模擬變量/界面標(biāo)號,自動生成如下代碼:RunSys.SetVarValueVA,"界面標(biāo)號",-1,x,將最后的那個(gè)x改為我們想要設(shè)置的值,這里我們改為1。通過上面的一個(gè)簡單的例子,可見腳本的應(yīng)用相當(dāng)?shù)暮唵戊`活,在要實(shí)現(xiàn)負(fù)責(zé)功能時(shí),更能體現(xiàn)其靈活方便。5.4腳本實(shí)現(xiàn)單窗口多操作 開關(guān)不光要反應(yīng)真實(shí)開關(guān)的狀態(tài),還要實(shí)現(xiàn)遠(yuǎn)程控制,就是操作員在需要合上開關(guān)時(shí)可以在計(jì)算機(jī)上實(shí)現(xiàn)開關(guān)的控制。分析發(fā)現(xiàn),開關(guān)操作的界面可以設(shè)計(jì)成一樣的,只是在點(diǎn)擊相應(yīng)的開關(guān)后只對相應(yīng)的開關(guān)進(jìn)行合分控制。開關(guān)控制界面如下,識別開關(guān)通過新建內(nèi)部文本變量高壓開關(guān)標(biāo)號,點(diǎn)擊不同的開關(guān)把這個(gè)文本變量設(shè)置為相應(yīng)的開關(guān)標(biāo)號,然后通過程序判斷需要對那個(gè)開關(guān)操作。雙擊畫好的開關(guān),在屬性窗口中的鼠標(biāo)事件中點(diǎn)擊左鍵,選擇處理腳本,要實(shí)現(xiàn)的功能是先設(shè)置內(nèi)部文本變量高壓開關(guān)標(biāo)號,然后彈出開關(guān)操作窗口,比如說高壓開關(guān)3.1QF,具體代碼如下: RunSys.SetVTtext"高壓開關(guān)標(biāo)號",-1,"3.1QF"Picture.OpenSubWindow"高壓開關(guān)分合.drw",-1,-1,200,90第二行后面的兩個(gè)合閘按鈕,選擇處理腳本,首先要讀取高壓開關(guān)標(biāo)號,以確定要對哪個(gè)開關(guān)進(jìn)行操作,然后在對相應(yīng)開關(guān)操作。圖5.5開關(guān)操作通過select語句實(shí)現(xiàn),具體代碼如下:s=RunSys.GetVTtext("高壓開關(guān)標(biāo)號",-1)SelectCasesCase"1C.1QF"RunSys.SetVarValueAR,"1CB斷路器控制",-1,1Case"2.1QF"RunSys.SetVarValueAR,"2GB斷路器控制",-1,1Case"3.1QF"RunSys.SetVarValueAR,"3GB斷路器控制",-1,1Case"4.1QF"RunSys.SetVarValueAR,"4GB斷路器控制",-1,1 Case"5.1QF"RunSys.SetVarValueAR,"5GB斷路器控制",-1,1Case"6.1QF"RunSys.SetVarValueAR,"6GB斷路器控制",-1,1Case"7.1QF"RunSys.SetVarValueAR,"7GB斷路器控制",-1,1Case"8.1QF"RunSys.SetVarValueAR,"8GB斷路器控制",-1,1Case"9.1QF"RunSys.SetVarValueAR,"9GB斷路器控制",-1,1Case"10.1QF"RunSys.SetVarValueAR,"10GB斷路器控",-1,1Case"13.1QF"RunSys.SetVarValueAR,"13GB斷路器控",-1,1EndSelectPicture.CloseSubWindow與合閘功能類似,分閘功能按鈕也可以通過以上代碼實(shí)現(xiàn),只是將每個(gè)case最后面的1改為0。低壓開關(guān)的操作也與高壓開關(guān)的類似,為了區(qū)分遠(yuǎn)程和就地操作,在通信協(xié)議中,規(guī)定合閘寫1,分閘寫2,代碼結(jié)構(gòu)與高壓開關(guān)的類似,只是寫的數(shù)值不一樣。 很多類似的功能都可以用以上方法實(shí)現(xiàn),新建一個(gè)內(nèi)部變量用作標(biāo)識,在彈出的操作框中通過內(nèi)部標(biāo)識來判斷需要對哪個(gè)對象加以操作。 高壓綜合保護(hù)儀表的數(shù)據(jù)顯示也是通過這個(gè)方法,不過顯示的內(nèi)容也要跟著變化。也是先新建內(nèi)部變量高壓綜保標(biāo)識,在高壓與變頻界面上要顯示的地方顯示一相的電流,通過點(diǎn)擊這個(gè)變量框,彈出詳細(xì)數(shù)據(jù)窗口,在詳細(xì)窗口中顯示相應(yīng)的數(shù)據(jù)。詳細(xì)窗口如下:假如點(diǎn)擊的是3GB綜保,先應(yīng)把綜保標(biāo)識置為相應(yīng)的數(shù)字,然后彈出詳細(xì)窗口顯示3GB的數(shù)據(jù),彈出窗口通過綜保標(biāo)識來判斷要顯示的是哪個(gè)綜保的數(shù)據(jù),具體實(shí)現(xiàn)如下:在3GB綜保顯示框的單擊左鍵鼠標(biāo)時(shí)間中,添加如下代碼:RunSys.SetVarValueVA,"綜保標(biāo)志",-1,2Picture.OpenSubWindow"綜合繼電器保護(hù)數(shù)據(jù).drw\title=3GB綜保數(shù)據(jù)",-1,-1,225,196把詳細(xì)綜保數(shù)據(jù)的每一個(gè)變量框命名,以便腳本操作,比如顯示A相電流的變量框命名為IA,以此類推。在綜保詳細(xì)數(shù)據(jù)窗口中添加定時(shí)器,在組件箱的畫面編程中,時(shí)間改為0,連續(xù)執(zhí)行,處理的腳本如下x=RunSys.GetVarValue(VA,"綜保標(biāo)志",-1)SelectCasexCase0TextObj.SetVar"IA",AI,"1CB遙測信號IA"TextObj.SetVar"IB",AI,"1CB遙測信號IB"TextObj.SetVar"IC",AI,"1CB遙測信號IC"TextObj.SetVar"UAB",AI,"1CB遙測信號UAB"TextObj.SetVar"UBC",AI,"1CB遙測信號UBC"TextObj.SetVar"UCA",AI,"1CB遙測信號UCA"TextObj.SetVar"頻率",AI,"1CB遙測信號頻率"TextObj.SetVar"有功功率",AI,"1CB遙測信號有功功率"TextObj.SetVar"無功功率",AI,"1CB遙測信號無功功率"Case1TextObj.SetVar"IA",AI,"2GB遙測信號IA"TextObj.SetVar"IB",AI,"2GB遙測信號IB"TextObj.SetVar"IC",AI,"2GB遙測信號IC"TextObj.SetVar"UAB",AI,"2GB遙測信號UAB"TextObj.SetVar"UBC",AI,"2GB遙測信號UBC"TextObj.SetVar"UCA",AI,"2GB遙測信號UCA"TextObj.SetVar"頻率",AI,"2GB遙測信號頻率"TextObj.SetVar"有功功率",AI,"2GB遙測信號有功功率"TextObj.SetVar"無功功率",AI,"2GB遙測信號無功功率"Case2TextObj.SetVar"IA",AI,"3GB遙測信號IA"TextObj.SetVar"IB",AI,"3GB遙測信號IB"TextObj.SetVar"IC",AI,"3GB遙測信號IC"TextObj.SetVar"UAB",AI,"3GB遙測信號UAB"TextObj.SetVar"UBC",AI,"3GB遙測信號UBC"TextObj.SetVar"UCA",AI,"3GB遙測信號UCA"TextObj.SetVar"頻率",AI,"3GB遙測信號頻率"TextObj.SetVar"有功功率",AI,"3GB遙測信號有功功率"TextObj.SetVar"無功功率",AI,"3GB遙測信號無功功率"Case3TextObj.SetVar"IA",AI,"4GB遙測信號IA"TextObj.SetVar"IB",AI,"4GB遙測信號IB"TextObj.SetVar"IC",AI,"4GB遙測信號IC"TextObj.SetVar"UAB",AI,"4GB遙測信號UAB"TextObj.SetVar"UBC",AI,"4GB遙測信號UBC"TextObj.SetVar"UCA",AI,"4GB遙測信號UCA"TextObj.SetVar"頻率",AI,"4GB遙測信號頻率"TextObj.SetVar"有功功率",AI,"4GB遙測信號有功功率"TextObj.SetVar"無功功率",AI,"4GB遙測信號無功功率"Case4TextObj.SetVar"IA",AI,"5GB遙測信號IA"TextObj.SetVar"IB",AI,"5GB遙測信號IB"TextObj.SetVar"IC",AI,"5GB遙測信號IC"TextObj.SetVar"UAB",AI,"5GB遙測信號UAB"TextObj.SetVar"UBC",AI,"5GB遙測信號UBC"TextObj.SetVar"UCA",AI,"5GB遙測信號UCA"TextObj.SetVar"頻率",AI,"5GB遙測信號頻率"TextObj.SetVar"有功功率",AI,"5GB遙測信號有功功率"TextObj.SetVar"無功功率",AI,"5GB遙測信號無功功率"Case5TextObj.SetVar"IA",AI,"6GB遙測信號IA"TextObj.SetVar"IB",AI,"6GB遙測信號IB"TextObj.SetVar"IC",AI,"6GB遙測信號IC"TextObj.SetVar"UAB",AI,"6GB遙測信號UAB"TextObj.SetVar"UBC",AI,"6GB遙測信號UBC"TextObj.SetVar"UCA",AI,"6GB遙測信號UCA"TextObj.SetVar"頻率",AI,"6GB遙測信號頻率"TextObj.SetVar"有功功率",AI,"6GB遙測信號有功功率"TextObj.SetVar"無功功率",AI,"6GB遙測信號無功功率"Case6TextObj.SetVar"IA",AI,"7GB遙測信號IA"TextObj.SetVar"IB",AI,"7GB遙測信號IB"TextObj.SetVar"IC",AI,"7GB遙測信號IC"TextObj.SetVar"UAB",AI,"7GB遙測信號UAB"TextObj.SetVar"UBC",AI,"7GB遙測信號UBC"TextObj.SetVar"UCA",AI,"7GB遙測信號UCA"TextObj.SetVar"頻率",AI,"7GB遙測信號頻率"TextObj.SetVar"有功功率",AI,"7GB遙測信號有功功率"TextObj.SetVar"無功功率",AI,"7GB遙測信號無功功率"Case7TextObj.SetVar"IA",AI,"8GB遙測信號IA"TextObj.SetVar"IB",AI,"8GB遙測信號IB"TextObj.SetVar"IC",AI,"8GB遙測信號IC"TextObj.SetVar"UAB",AI,"8GB遙測信號UAB"TextObj.SetVar"UBC",AI,"8GB遙測信號UBC"TextObj.SetVar"UCA",AI,"8GB遙測信號UCA"TextObj.SetVar"頻率",AI,"8GB遙測信號頻率"TextObj.SetVar"有功功率",AI,"8GB遙測信號有功功率"TextObj.SetVar"無功功率",AI,"8GB遙測信號無功功率"Case8TextObj.SetVar"IA",AI,"9GB遙測信號IA"TextObj.SetVar"IB",AI,"9GB遙測信號IB"TextObj.SetVar"IC",AI,"9GB遙測信號IC"TextObj.SetVar"UAB",AI,"9GB遙測信號UAB"TextObj.SetVar"UBC",AI,"9GB遙測信號UBC"TextObj.SetVar"UCA",AI,"9GB遙測信號UCA"TextObj.SetVar"頻率",AI,"9GB遙測信號頻率"TextObj.SetVar"有功功率",AI,"9GB遙測信號有功功率"TextObj.SetVar"無功功率",AI,"9GB遙測信號無功功率"Case9TextObj.SetVar"IA",AI,"10GB遙測信號IA"TextObj.SetVar"IB",AI,"10GB遙測信號IB"TextObj.SetVar"IC",AI,"10GB遙測信號IC"TextObj.SetVar"UAB",AI,"10GB遙測信號UAB"TextObj.SetVar"UBC",AI,"10GB遙測信號UBC"TextObj.SetVar"UCA",AI,"10GB遙測信號UCA"TextObj.SetVar"頻率",AI,"10GB遙測信號頻率"TextObj.SetVar"有功功率",AI,"10GB遙測信號有功功率"TextObj.SetVar"無功功率",AI,"10GB遙測信號無功功率"Case10TextObj.SetVar"IA",AI,"13GB遙測信號IA"TextObj.SetVar"IB",AI,"13GB遙測信號IB"TextObj.SetVar"IC",AI,"13GB遙測信號IC"TextObj.SetVar"UAB",AI,"13GB遙測信號UAB"TextObj.SetVar"UBC",AI,"13GB遙測信號UBC"TextObj.SetVar"UCA",AI,"13GB遙測信號UCA"TextObj.SetVar"頻率",AI,"13GB遙測信號頻率"TextObj.SetVar"有功功率",AI,"13GB遙測信號有功功率"TextObj.SetVar"無功功率",AI,"13GB遙測信號無功功率"EndSelect通過以上方法,可以動態(tài)的切換變量框?qū)?yīng)的變量,以實(shí)現(xiàn)顯示不同數(shù)據(jù)的功能,但到注意的是必須先給變量框命名,而且必須先對應(yīng)好一個(gè)變量,任何變量都可以。5.5腳本實(shí)現(xiàn)配電線路變色在配電的過程中,要求把帶電的線路用紅色標(biāo)識,也就是某一線路的上一級有電,而且他們之間的開關(guān)閉合,這一段線路就帶電,就要用紅色表示。主要思路是從電源開始,一級一級往下判斷,每次只判斷上一級是否帶電,他們之間的開關(guān)是否合上,如果上一級帶電而且開關(guān)也合上這一級就帶電,具體實(shí)現(xiàn)通過全局腳本,新建若干內(nèi)部開關(guān)變量,讓每一段線路都對應(yīng)某個(gè)內(nèi)部開關(guān)量,當(dāng)這個(gè)開關(guān)量為0時(shí),代表沒電,線路是灰色,當(dāng)開關(guān)量為1時(shí),代表有電,線路是紅色,雙擊某段線路,最屬性窗口中點(diǎn)動態(tài)邊框色,選擇相應(yīng)的變量,把顏色對應(yīng)好,在全局腳本中新建腳本,高壓部分代碼如下:ga=RunSys.GetVarValue(DR,"G2.2.2QS狀態(tài)",-1)RunSys.SetVarValueVD,"2G-1",-1,gagb=RunSys.GetVarValue(DR,"G2.2.1QF狀態(tài)",-1)RunSys.SetVarValueVD,"2G-2",-1,gbAndgagc=RunSys.GetVarValue(DR,"G2.2.1QS狀態(tài)",-1)RunSys.SetVarValueVD,"2GB-3",-1,gcAndRunSys.GetVarValue(VD,"2G-2",-1)gd=RunSys.GetVarValue(DR,"1C.1QS狀態(tài)",-1)RunSys.SetVarValueVD,"1CB-1",-1,gdAndRunSys.GetVarValue(VD,"2GB-3",-)ge=RunSys.GetVarValue(DR,"1C.1QF狀態(tài)",-1)RunSys.SetVarValueVD,"1CB-2",-1,geAndRunSys.GetVarValue(VD,"1CB-1",-)gf=RunSys.GetVarValue(DR,"G3.3.1QS狀態(tài)",-1)RunSys.SetVarValueVD,"3GB-1",-1,gfAndRunSys.GetVarValue(VD,"2GB-3",-)gg=RunSys.GetVarValue(DR,"G3.3.1QF狀態(tài)",-1)RunSys.SetVarValueVD,"3GB-2",-1,ggAndRunSys.GetVarValue(VD,"3GB-1",-)gh=RunSys.GetVarValue(DR,"G4.4.1QS狀態(tài)",-1)RunSys.SetVarValueVD,"4GB-1",-1,ghAndRunSys.GetVarValue(VD,"2GB-3",-1)gi=RunSys.GetVarValue(DR,"G4.4.1QF狀態(tài)",-1)RunSys.SetVarValueVD,"4GB-2",-1,giAndRunSys.GetVarValue(VD,"4GB-1",-1)gj=RunSys.GetVarValue(DR,"G5.5.1QS狀態(tài)",-1)RunSys.SetVarValueVD,"5GB-1",-1,gjAndRunSys.GetVarValue(VD,"2GB-3",-1)gk=RunSys.GetVarValue(DR,"G5.5.1QF狀態(tài)",-1)RunSys.SetVarValueVD,"5GB-2",-1,gkAndRunSys.GetVarValue(VD,"5GB-1",-1)gl=RunSys.GetVarValue(DR,"G6.6.1QS狀態(tài)",-1)RunSys.SetVarValueVD,"6GB-1",-1,glAndRunSys.GetVarValue(VD,"2GB-3",-1)gm=RunSys.GetVarValue(DR,"G6.6.1QF狀態(tài)",-1)RunSys.SetVarValueVD,"6GB-2",-1,gmAndRunSys.GetVarValue(VD,"6GB-1",-1)gn=RunSys.GetVarValue(DR,"G7.7.1QS狀態(tài)",-1)RunSys.SetVarValueVD,"7GB-1",-1,gnAndRunSys.GetVarValue(VD,"2GB-3",-1)go=RunSys.GetVarValue(DR,"G7.7.1QF狀態(tài)",-1)RunSys.SetVarValueVD,"7GB-2",-1,goAndRunSys.GetVarValue(VD,"7GB-1",-1)gp=RunSys.GetVarValue(DR,"G8.8.1QS狀態(tài)",-1)RunSys.SetVarValueVD,"8GB-1",-1,gpAndRunSys.GetVarValue(VD,"2GB-3",-1)gq=RunSys.GetVarValue(DR,"G8.8.1QF狀態(tài)",-1)RunSys.SetVarValueVD,"8GB-2",-1,gqAndRunSys.GetVarValue(VD,"8GB-1",-1)g91qf=RunSys.GetVarValue(DR,"G9.9.1QF狀態(tài)",-1)g91qs=RunSys.GetVarValue(DR,"G9.9.1QS狀態(tài)",-1)g101qf=RunSys.GetVarValue(DR,"G10.10.1QF狀態(tài)",-1)g101qs=RunSys.GetVarValue(DR,"G10.10.1QS狀態(tài)",-1)g111qs=RunSys.GetVarValue(DR,"G11.11.1QS狀態(tài)",-1)g112qs=RunSys.GetVarValue(DR,"G11.11.2QS狀態(tài)",-1)g121qs=RunSys.GetVarValue(DR,"G12.12.1QS狀態(tài)",-1)g131qf=RunSys.GetVarValue(DR,"G13.13.1QF狀態(tài)",-1)g131qs=RunSys.GetVarValue(DR,"G13.13.1QS狀態(tài)",-1)g11qs=RunSys.GetVarValue(DR,"G1.1.1QS狀態(tài)",-1)g23=RunSys.GetVarValue(VD,"2GB-3",-1)g10=RunSys.GetVarValue(AI,"10GB遙測信號UAB",-1)Ifg10>5ThenRunSys.SetVarValueVD,"10GB-2",-1,1ElseRunSys.SetVarValueVD,"10GB-2",-1,0EndIfg102=RunSys.GetVarValue(VD,"10GB-2",-1)If(g23Andg101qs)Or(g102Andg101qf)Or(g91qsAndg91qfAndg131qfAndg131qsAndg121qsAndg111qsAndg23)ThenRunSys.SetVarValueVD,"10GB-1",-1,1ElseRunSys.SetVarValueVD,"10GB-1",-1,0EndIfg101=RunSys.GetVarValue(VD,"10GB-1",-1)If(g101Andg111qs)Or(g91qsAndg91qfAndg131qfAndg131qsAndg121qsAndg23)ThenRunSys.SetVarValueVD,"11GB-1",-1,1ElseRunSys.SetVarValueVD,"11GB-1",-1,0EndIfg111=RunSys.GetVarValue(VD,"11GB-1",-1)If(g111Andg112qs)ThenRunSys.SetVarValueVD,"11GB-2",-1,1ElseRunSys.SetVarValueVD,"11GB-2",-1,0EndIfIf(g111Andg121qs)Or(g91qsAndg91qfAndg131qfAndg131qsAndg23)ThenRunSys.SetVarValueVD,"12GB-1",-1,1ElseRunSys.SetVarValueVD,"12GB-1",-1,0EndIfg121=RunSys.GetVarValue(VD,"12GB-1",-1)Ifg121Andg11qsThenRunSys.SetVarValueVD,"1GB-1",-1,1ElseRunSys.SetVarValueVD,"1GB-1",-1,0EndIfIf(g121Andg131qf)Or(g91qsAndg91qfAndg131qfAndg23)ThenRunSys.SetVarValueVD,"13GB-1",-1,1ElseRunSys.SetVarValueVD,"13GB-1",-1,0EndIfg131=RunSys.GetVarValue(VD,"13GB-1",-1)If(g131Andg131qs)Or(g91qsAndg91qfAndg23)ThenRunSys.SetVarValueVD,"9GB-2",-1,1ElseRunSys.SetVarValueVD,"9GB-2",-1,0EndIf在以上代碼中,從9GB開始,由于電流方向可以從三個(gè)方向來,所以判斷相對復(fù)雜,每次都要從三個(gè)帶電處一次判斷到節(jié)點(diǎn)。低壓部分和試驗(yàn)線路部分的線路變色也是通過以上方法實(shí)現(xiàn),具體代碼不一一列舉。5.6腳本控制液體動態(tài)流動水系統(tǒng)和油系統(tǒng)按照圖紙換號后,在要顯示數(shù)據(jù)的地方放置變量框,顯示相應(yīng)的數(shù)據(jù),要求管道動態(tài)流動,即當(dāng)管道內(nèi)液體流動時(shí)在管道畫面上用動態(tài)的方式表示出來,在組件箱的畫面控件中有流動管道,可以通過開關(guān)變量動態(tài)起停,現(xiàn)在是怎么判斷是否液體在流動,我是通過流量判斷,當(dāng)有流量是液體就在流動了,新建內(nèi)部開關(guān)變量,用定時(shí)器定時(shí)判斷是否有流量,當(dāng)有流量時(shí)把相應(yīng)開關(guān)量置1,這樣流動管道就動起來。在有分支的管道中,只要其中一條支路有流量,就認(rèn)為總管有流量。具體實(shí)現(xiàn)為為每段管道新建內(nèi)部開關(guān)變量,一一對應(yīng)好,在畫面上放置一個(gè)定時(shí)器,執(zhí)行間隔設(shè)置為1秒,水系統(tǒng)處理腳本如下:a=RunSys.GetVarValue(AI,"電源變頻二次水流量",-1)b=RunSys.GetVarValue(AI,"產(chǎn)品變頻二次水流量",-1)c=RunSys.GetVarValue(AI,"被試機(jī)二次水流量",-1)d=RunSys.GetVarValue(AI,"拖動機(jī)1二次水流量",-1)e=RunSys.GetVarValue(AI,"拖動機(jī)2二次水流量",-1)f=RunSys.GetVarValue(AI,"稀油站二次水流量",-1)g=RunSys.GetVarValue(AI,"產(chǎn)品變頻一次水流量3",-1)h=RunSys.GetVarValue(AI,"產(chǎn)品變頻一次水流量2",-1)i=RunSys.GetVarValue(AI,"產(chǎn)品變頻一次水流量1",-1)j=RunSys.GetVarValue(AI,"被試機(jī)一次水流量1",-1)k=RunSys.GetVarValue(AI,"被試機(jī)一次水流量2",-1)Ifa>1Orb>1Orc>1Ord>1Ore>1Orf>1ThenRunSys.SetVarValueVD,"二次水流量動態(tài)標(biāo)志",-1,1ElseRunSys.SetVarValueVD,"二次水流量動態(tài)標(biāo)志",-1,0EndIfIfa>1ThenRunSys.SetVarValueVD,"F9動態(tài)標(biāo)志",-1,1ElseRunSys.SetVarValueVD,"F9動態(tài)標(biāo)志",-1,0EndIfIfb>1ThenRunSys.SetVarValueVD,"F5動態(tài)標(biāo)志",-1,1ElseRunSys.SetVarValueVD,"F5動態(tài)標(biāo)志",-1,0EndIfIfc>1ThenRunSys.SetVarValueVD,"F4動態(tài)標(biāo)志",-1,1ElseRunSys.SetVarValueVD,"F4動態(tài)標(biāo)志",-1,0EndIfIfd>1ThenRunSys.SetVarValueVD,"F11動態(tài)標(biāo)志",-1,1ElseRunSys.SetVarValueVD,"F11動態(tài)標(biāo)志",-1,0EndIfIfe>1ThenRunSys.SetVarValueVD,"F12動態(tài)標(biāo)志",-1,1ElseRunSys.SetVarValueVD,"F12動態(tài)標(biāo)志",-1,0EndIfIff>1ThenRunSys.SetVarValueVD,"F10動態(tài)標(biāo)志",-1,1ElseRunSys.SetVarValueVD,"F10動態(tài)標(biāo)志",-1,0EndIfIfg>1Orh>1Ori>1ThenRunSys.SetVarValueVD,"產(chǎn)品一次流量標(biāo)志",-1,1ElseRunSys.SetVarValueVD,"產(chǎn)品一次流量標(biāo)志",-1,0EndIfIfg>1ThenRunSys.SetVarValueVD,"F8流量標(biāo)志",-1,1ElseRunSys.SetVarValueVD,"F8流量標(biāo)志",-1,0EndIfIfh>1ThenRunSys.SetVarValueVD,"F7流量標(biāo)志",-1,1ElseRunSys.SetVarValueVD,"F7流量標(biāo)志",-1,0EndIfIfi>1ThenRunSys.SetVarValueVD,"F6流量標(biāo)志",-1,1ElseRunSys.SetVarValueVD,"F6流量標(biāo)志",-1,0EndIfIfj>1Ork>1ThenRunSys.SetVarValueVD,"被試一次流量標(biāo)志",-1,1ElseRunSys.SetVarValueVD,"被試一次流量標(biāo)志",-1,0EndIfIfj>1ThenRunSys.SetVarValueVD,"F1流量標(biāo)志",-1,1ElseRunSys.SetVarValueVD,"F1流量標(biāo)志",-1,0EndIfIfk>1ThenRunSys.SetVarValueVD,"F2流量標(biāo)志",-1,1ElseRunSys.SetVarValueVD,"F2流量標(biāo)志",-1,0EndIf我把流量與1比較,認(rèn)為當(dāng)流量大于1時(shí)管道才流動,這樣可以消除某些干擾。油系統(tǒng)的實(shí)現(xiàn)跟水系統(tǒng)的一致。5.7腳本實(shí)現(xiàn)帶記憶功能的配置在試驗(yàn)界面中,要對數(shù)據(jù)采集儀表MW100的通道進(jìn)行配置,總共13個(gè)溫度需要配置,所以新建13個(gè)內(nèi)部模擬變量用作標(biāo)識,考慮到要帶記憶功能,所以在新建變量時(shí)變量名前面加@,這樣每次都會記錄上次的配置情況,在不需要重新配置的時(shí)候就可以直接使用,方便操作。在顯示變量的時(shí)候,每次根據(jù)通道標(biāo)識動態(tài)的切換變量框所對應(yīng)的變量,這樣就實(shí)現(xiàn)了通道配置。圖5.6通道配置5.8腳本實(shí)現(xiàn)樹形選擇試驗(yàn)選擇通過樹形目錄表示,主要有雙饋和永磁兩大類。新建一個(gè)內(nèi)部模擬變量記錄選擇的試驗(yàn),當(dāng)選擇好試驗(yàn)確認(rèn)后,把界面標(biāo)號置為相應(yīng)的數(shù)字以標(biāo)識當(dāng)前試驗(yàn),在title中添加相應(yīng)的動態(tài)文本,在選擇完試驗(yàn)后可以顯示當(dāng)前試驗(yàn)。在切換到拖動界面和試驗(yàn)界面時(shí),通過界面標(biāo)號判斷顯示哪一個(gè)試驗(yàn):圖5.7試驗(yàn)選擇x=RunSys.GetVarValue(VA,"界面標(biāo)號",-1)SelectCasexCase9Picture.SwitchToPicture"雙饋異步發(fā)電機(jī)空載和堵轉(zhuǎn)試驗(yàn)原理圖-變頻電源.drw",1Case10Picture.SwitchToPicture"雙饋異步發(fā)電機(jī)空載和堵轉(zhuǎn)試驗(yàn)原理圖-工頻電源.drw",1Case11Picture.SwitchToPicture"PIC9.drw",1Case12Picture.SwitchToPicture"雙饋異步發(fā)電機(jī)負(fù)載和溫升試驗(yàn)原理圖-直流母線回1.drw",1Case13Picture.SwitchToPicture"雙饋異步發(fā)電機(jī)負(fù)載和溫升試驗(yàn)原理圖-直流母線回2.drw",1Case14Picture.SwitchToPicture"雙饋轉(zhuǎn)子短路發(fā)電機(jī)負(fù)載和溫升試驗(yàn)原理圖-變頻源.drw",1Case15Picture.SwitchToPicture"雙饋轉(zhuǎn)子短路發(fā)電機(jī)負(fù)載和溫升試驗(yàn)原理圖-工頻源.drw",1Case16Picture.SwitchToPicture"雙饋異步電機(jī)串電阻起動試驗(yàn)原理圖-變頻電源.drw",1Case17Picture.SwitchToPicture"雙饋異步電機(jī)串電阻起動試驗(yàn)原理圖-工頻電源.drw",1EndSelect6數(shù)據(jù)庫功能Fameview提供了完善的數(shù)據(jù)庫連接,可以方便的對數(shù)據(jù)庫進(jìn)行操作,在主程序的導(dǎo)航目錄中選擇數(shù)據(jù)庫/數(shù)據(jù)庫連接,編輯數(shù)據(jù)庫連接,新建連接:圖6.1數(shù)據(jù)庫連接可以選擇的連接方式有追加記錄,讀取記錄,修改記錄,存儲過程,連接的狀態(tài)可以通過控制連接實(shí)現(xiàn),可以通過變量控制記錄號對數(shù)據(jù)庫進(jìn)行精確訪問,數(shù)據(jù)源選擇相應(yīng)的數(shù)據(jù)庫,選擇需要的數(shù)據(jù)表,把表中的字段對應(yīng)到相應(yīng)的變量,這樣就可以通過訪問變量方便的訪問到數(shù)據(jù)庫中當(dāng)前記錄的相應(yīng)內(nèi)容。圖6.2數(shù)據(jù)庫操作7服務(wù)器客戶端結(jié)構(gòu)的實(shí)現(xiàn)項(xiàng)目要求采用服務(wù)器/客戶端結(jié)構(gòu),服務(wù)器負(fù)責(zé)底層數(shù)據(jù)的交換,相當(dāng)于數(shù)據(jù)中心,客戶端從服務(wù)器交換數(shù)據(jù),這樣可以實(shí)現(xiàn)數(shù)據(jù)的統(tǒng)一性,也減少了每次通信的開銷,便于管理。7.1服務(wù)器端設(shè)置Fameview提供強(qiáng)大的數(shù)據(jù)服務(wù)功能,有自己的FMTCP協(xié)議,在局域網(wǎng)能進(jìn)行告訴的數(shù)據(jù)交換,在服務(wù)中啟動數(shù)據(jù)服務(wù)功能,在驅(qū)動選擇中安裝FMTCP驅(qū)動并啟動,在導(dǎo)航目錄中選擇數(shù)據(jù)服務(wù)/網(wǎng)絡(luò)服務(wù)器,設(shè)置網(wǎng)絡(luò)服務(wù)器:圖7.1服務(wù)器配置在彈出窗口中,本地ip默認(rèn)local即可,端口號自己定義,只要是系統(tǒng)開放而且還未使用的端口都行,我定義的是4000,在客戶ip列表中加入客戶端的ip地址,如果客戶端要對數(shù)據(jù)進(jìn)行修改在允許修改下打鉤。這樣服務(wù)器端就設(shè)置好了。7.2客戶端設(shè)置在客戶端運(yùn)設(shè)備通訊中,點(diǎn)擊設(shè)備數(shù)據(jù)表,圖7.2客戶端配置把用戶自己定義的設(shè)備的驅(qū)動都改為FMTCP,端口號改成服務(wù)器端設(shè)置的端口號,這里填4000,服務(wù)器ip填寫服務(wù)器的ip地址數(shù)據(jù)類型選擇DT-遠(yuǎn)程設(shè)備表,設(shè)備號與原設(shè)備號對應(yīng),開始地址0,長度與原設(shè)備相同,這樣客戶端就很方便快捷的設(shè)置好了,只要服務(wù)器開啟,客戶端就可以使用了。服務(wù)器的遠(yuǎn)程數(shù)據(jù)表只能發(fā)送外部變量,如果有些數(shù)據(jù)要單獨(dú)發(fā)送,可以采用變量包的方式。在網(wǎng)絡(luò)服務(wù)器中點(diǎn)定義服務(wù)變量包,雙擊空白處彈出變量選擇框,選擇相應(yīng)變量后保存,這樣服務(wù)器端就定義好了,在客戶端,設(shè)備數(shù)據(jù)表中選擇FMTCP驅(qū)動,填寫服務(wù)器地址及端口號,在數(shù)據(jù)類型中選擇模擬變量包或者開關(guān)變量包,開始地址寫你需要的地址,長度填你需要的長度,這樣就可以把數(shù)據(jù)打包發(fā)送到客戶端了。圖7.3服務(wù)變量包8多屏顯示Famevie提供多屏顯示功能,在顯示畫面中點(diǎn)擊顯示屬性,彈出如下窗口:圖8.1畫面顯示屬性在顯示畫面/顯示屬性中,手動調(diào)整[多屏,大屏顯示]:圖8.2多屏顯示按照分辨率設(shè)置好畫面,這樣就會在設(shè)置的區(qū)域顯示設(shè)置的畫面,每個(gè)畫面都是獨(dú)立的,各司其職。9結(jié)束語本文主要是研究如何利用fameview組態(tài)軟件來設(shè)計(jì)監(jiān)控軟件。本文首先介紹了組態(tài)軟件的發(fā)展現(xiàn)狀,隨后分析了其在風(fēng)力發(fā)電機(jī)試驗(yàn)站上應(yīng)用的需求,組態(tài)是把各種功能構(gòu)建好的平臺,用戶只需要簡單的配置就可以實(shí)現(xiàn)很多實(shí)用的功能,極大的方便和簡化了開發(fā)設(shè)計(jì)過程。從需求出發(fā),從設(shè)備通訊,運(yùn)行數(shù)據(jù)庫的建立,畫面的制作,腳本功能的應(yīng)用,服務(wù)器客戶端結(jié)構(gòu),多屏顯示等方面按步驟描述開發(fā)流程及一些基本的方法,最后設(shè)計(jì)出基本滿足控制要求的監(jiān)控軟件。通過對本文的設(shè)計(jì),讓我學(xué)到了許多新的知識,使我在通訊協(xié)議,PLC,VB腳本,系統(tǒng)結(jié)構(gòu)等方面有了更深入的了解,拓展了知識的結(jié)構(gòu)和層次。在實(shí)際動手的過程中,遇到了很多困難,但是通過查閱資料,請教周圍有經(jīng)驗(yàn)的人,讓我最終解決了某些問題,培養(yǎng)了我的自學(xué)能力及協(xié)作能力,雖然還是有很多問題,但對我以后的發(fā)展有很大的啟發(fā)與經(jīng)驗(yàn)。參考文獻(xiàn)陳君姿,莫林,侯占偉.組態(tài)軟件圖形組態(tài)子系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].工業(yè)控制計(jì)算機(jī),2007,1李言武.應(yīng)用組態(tài)軟件實(shí)現(xiàn)B/S與C/S模式遠(yuǎn)程監(jiān)控功能[J].工業(yè)控制計(jì)算機(jī),2008,6李艾華,賀建軍,吳同茂.DCS控制系統(tǒng)在過控實(shí)驗(yàn)室中的應(yīng)用[J].工業(yè)控制計(jì)算機(jī),2007,11尚志軍,王宏.高速以太網(wǎng)組態(tài)原理與實(shí)現(xiàn)[J].工業(yè)控制計(jì)算機(jī),2004,5岑秉聰.基于FameView和PLC的煙葉發(fā)酵過程控制系統(tǒng)[J].微計(jì)算機(jī)信息(測控儀表自動化),2004,4陳娟,盧建中,劉崢.FameView組態(tài)軟件在鈾水冶中的應(yīng)用[J].礦冶,2008,3廖常初.西門子人機(jī)界面觸摸屏組態(tài)與應(yīng)用技術(shù)[M].機(jī)械工業(yè)出版社,2007Yang.Y.,Yi.J.,Woo,Y.Y.,Kim.B.OptimumdesignforlinearityandefficiencyofmicrowaveDohertyamplifierusinganewloadmatchingtechnique[J],Microw.J.[J],2001,4,(12).20~36Vizimuller,P.RFdesignguide-systems,circuits,andequations[M].ArtechHouse,Boston,MA,1995.54~60R.Dye.VisualObject-OrientatedProgramming[M].MacintoshJournal,Sept.1st1991.14~25致謝本論文是我在王耀青教授的悉心指導(dǎo)下完成的,王老師從論文的選題、系統(tǒng)設(shè)計(jì)到最后的論文寫作都給我做了耐心的指導(dǎo)。王老師開闊的學(xué)術(shù)視野,勤奮的工作態(tài)度和務(wù)實(shí)進(jìn)取的精神給我留下了深刻的印象,使我畢業(yè)設(shè)計(jì)過程中,不僅學(xué)習(xí)到了豐富的專業(yè)知識,還學(xué)到了對科學(xué)研究的嚴(yán)謹(jǐn)態(tài)度和做人的原則,使我終生受益。在此我向王老師致以最誠摯的謝意。然后還要感謝大學(xué)四年來所有的老師,為我打下自動化專業(yè)知識的基礎(chǔ),還要感謝所有的同學(xué)們,正是因?yàn)橛辛四銈兊闹С趾凸膭睿舜萎厴I(yè)設(shè)計(jì)才會順利完成。還有要感謝在百忙之中抽出寶貴時(shí)間對本論文進(jìn)行評審的各位專家們,衷心感謝你們對這篇論文提出的寶貴意見。最后感謝武漢科技大學(xué)四年來對我的大力栽培。謝謝!基于C8051F單片機(jī)直流電動機(jī)反饋控制系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的嵌入式Web服務(wù)器的研究MOTOROLA單片機(jī)MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對良率的影響研究基于模糊控制的電阻釬焊單片機(jī)溫度控制系統(tǒng)的研制HYPE

溫馨提示

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

最新文檔

評論

0/150

提交評論