智能儀表第6章+監(jiān)控程序課件_第1頁
智能儀表第6章+監(jiān)控程序課件_第2頁
智能儀表第6章+監(jiān)控程序課件_第3頁
智能儀表第6章+監(jiān)控程序課件_第4頁
智能儀表第6章+監(jiān)控程序課件_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

監(jiān)控程序06監(jiān)控程序06本章主要內(nèi)容6.1軟件設(shè)計方法6.1.1概述6.1.2結(jié)構(gòu)化設(shè)計方法6.1.3軟件測試6.2監(jiān)控程序設(shè)計6.2.1概述6.2.2監(jiān)控主程序6.2.3初始化管理6.2.4鍵盤管理6.2.5顯示管理6.2.6中斷管理6.2.7時鐘管理6.2.8手-自動控制6.2.9自診斷處理本章主要內(nèi)容6.1軟件設(shè)計方法6.1.1概述6.1.26.1軟件設(shè)計方法?6.1.1概述軟件設(shè)計是智能儀表設(shè)計的一個重要部分,因為智能儀表的功能是靠軟件在硬件電路的基礎(chǔ)上實現(xiàn)的。而且對同一硬件電路,編制不同的軟件可以實現(xiàn)不同的功能?!糗浖_發(fā)經(jīng)歷的階段分析→設(shè)計→編程→測試→運行與維護◆軟件設(shè)計的內(nèi)容①軟件系統(tǒng)的模塊層次結(jié)構(gòu)②控制流程③數(shù)據(jù)庫的結(jié)構(gòu)6.1軟件設(shè)計方法?6.1.1概述軟件設(shè)計是智能儀表設(shè)6.1軟件設(shè)計方法◆軟件設(shè)計的內(nèi)容總的來說可分為總體設(shè)計和詳細設(shè)計。總體設(shè)計:完成軟件系統(tǒng)的模塊劃分,設(shè)計層次結(jié)構(gòu)、確立模塊間的調(diào)用及全局數(shù)據(jù)庫的設(shè)計等。詳細設(shè)計:模塊內(nèi)部算法的實現(xiàn)、控制流程、局部數(shù)據(jù)結(jié)構(gòu)設(shè)計?!糗浖O(shè)計方法是指指導軟件設(shè)計的規(guī)程和準則。目前流行的是結(jié)構(gòu)化設(shè)計和結(jié)構(gòu)化編程。6.1軟件設(shè)計方法◆軟件設(shè)計的內(nèi)容總的來說可分為總體設(shè)計6.1軟件設(shè)計方法?6.1.2結(jié)構(gòu)化設(shè)計方法◆結(jié)構(gòu)化設(shè)計的兩個重要思想1、“自頂向下”從整體到局部再到細節(jié),將整個任務(wù)劃分成若干個子任務(wù)模塊,子任務(wù)再分成若干個子子任務(wù)模塊,分層的同時明確各層次之間的關(guān)系以及同一層次任務(wù)之間的關(guān)系,最后擬定出各任務(wù)細節(jié)。設(shè)計時要注意的問題:①確定軟件系統(tǒng)的結(jié)構(gòu)時,要著眼于全局。②應(yīng)該明確各模塊的功能及其輸入、輸出。③模塊之間的接口設(shè)計。6.1軟件設(shè)計方法?6.1.2結(jié)構(gòu)化設(shè)計方法◆結(jié)構(gòu)化6.1軟件設(shè)計方法2、模塊化編程把整個程序按照“自頂向下”的設(shè)計思想分層分塊,一層一層分下去,一直分到最下層的每一塊都能容易地編碼為止?!艚Y(jié)構(gòu)化編程結(jié)構(gòu)化編程要求在設(shè)計過程中采用“自頂向下”的設(shè)計方法,在具體編程時采用“自底向上”的方法,即從最底層的模塊開始編程,然后進行上一層模塊的編程,直至完成。6.1軟件設(shè)計方法2、模塊化編程把整個程序按照“自頂向下”6.1軟件設(shè)計方法?6.1.3軟件測試◆測試的目的軟件測試的目的是為了找出程序中的錯誤或漏洞。◆測試的方法測試的關(guān)鍵是:設(shè)計測試方法。

A功能測試法:是根據(jù)儀表需要完成的功能設(shè)計測試用例,對軟件進行測試。

B程序邏輯結(jié)構(gòu)測試法:是根據(jù)軟件的內(nèi)部邏輯結(jié)構(gòu)設(shè)計測試用例,對程序進行測試。6.1軟件設(shè)計方法?6.1.3軟件測試◆測試的目的軟6.1軟件設(shè)計方法◆測試的基本原則軟件測試應(yīng)遵循的基本原則,提高軟件測試效果。自己看教材P232?!暨\行、維護和改進1、經(jīng)過測試的軟件還可能存在著錯誤2、用戶需求發(fā)生改變3、優(yōu)化6.1軟件設(shè)計方法◆測試的基本原則軟件測試應(yīng)遵循的基本原6.2監(jiān)控程序設(shè)計?6.2.1概述智能儀表要具有實時處理能力。實時處理:儀表直接接受過程信息的采集數(shù)據(jù)并對其進行處理進而送出處理結(jié)果。◆實時處理◆智能儀表軟件組成智能儀表軟件主要包括:1、監(jiān)控程序2、中斷服務(wù)程序3、完成各種算法的功能模塊。儀表的功能主要由中斷服務(wù)主程序及功能算法模塊來實現(xiàn)。6.2監(jiān)控程序設(shè)計?6.2.1概述智能儀表要具有實時處6.2監(jiān)控程序設(shè)計及時地響應(yīng)來自系統(tǒng)或儀表內(nèi)部的各種服務(wù)請求,有效地管理儀表自身軟硬件及人-機聯(lián)系部件,與系統(tǒng)中其它儀器設(shè)備交換信息,并在出現(xiàn)故障時,提供相應(yīng)的處理?!舯O(jiān)控程序1、監(jiān)控程序的作用2、監(jiān)控程序的組成監(jiān)控程序包括監(jiān)控主程序和命令處理子程序。監(jiān)控主程序作用:識別命令、解釋命令并獲得子程序的入口地址。(監(jiān)控程序的核心)命令處理子程序的作用:具體執(zhí)行命令,完成命令所規(guī)定的各項實際動作。6.2監(jiān)控程序設(shè)計及時地響應(yīng)來自系統(tǒng)或儀表內(nèi)部的各種服務(wù)請6.2監(jiān)控程序設(shè)計監(jiān)控程序的組成主要取決于測控系統(tǒng)的規(guī)模,以及儀表和系統(tǒng)硬件配置與功能。6.2監(jiān)控程序設(shè)計監(jiān)控程序的組成主要取決于測控系統(tǒng)的規(guī)模,6.2監(jiān)控程序設(shè)計6.2監(jiān)控程序設(shè)計6.2監(jiān)控程序設(shè)計?6.2.2監(jiān)控主程序監(jiān)控主程序是整個儀表監(jiān)控程序的主線,上電復位后首先進入監(jiān)控主程序,一般放在ROM的0000H單元。監(jiān)控主程序的作用是協(xié)調(diào)智能儀表各部分軟、硬件的工作。模塊的執(zhí)行次序可由流程圖來描述?!舯O(jiān)控主程序流程6.2監(jiān)控程序設(shè)計?6.2.2監(jiān)控主程序監(jiān)控主程序是整6.2監(jiān)控程序設(shè)計可編程器件初始化堆棧及參數(shù)初始化自診斷開放中斷例行服務(wù)顯示等待中斷中斷調(diào)用時鐘管理模塊調(diào)用測控算法模塊調(diào)用按鍵散轉(zhuǎn)模塊實時時鐘?

是過程通道?否是返回鍵中斷6.2監(jiān)控程序設(shè)計可編程器件初始化堆棧及參數(shù)初始化自6.2監(jiān)控程序設(shè)計?6.2.3初始化管理初始化管理包括可編程器件初始化、堆棧初始化和參數(shù)初始化??删幊唐骷跏蓟褐笇删幊逃布涌陔娐饭ぷ髂J降某跏蓟6褩3跏蓟褐笍臀缓笤谟脩鬜AM中確定一個堆棧區(qū)域。參數(shù)初始化:指對儀表的整定參數(shù)、報警及過程輸入/輸出通道的數(shù)據(jù)初始化,系統(tǒng)的整定參數(shù)初值由被控對象的特性確定。6.2監(jiān)控程序設(shè)計?6.2.3初始化管理初始化管理包括6.2監(jiān)控程序設(shè)計?6.2.4鍵盤管理主要包括一鍵一義和一鍵多義兩種類型?!粢绘I一義是指一個按鍵代表一個命令或一個數(shù)字,編程時只要根據(jù)當前按鍵的編碼把程序直接轉(zhuǎn)到相應(yīng)的處理模塊的入口,而不需要知道在此以前的按鍵情況。儀表功能復雜時,按鍵將會過多,操作不便,現(xiàn)較少使用。6.2監(jiān)控程序設(shè)計?6.2.4鍵盤管理主要包括一鍵一義6.2監(jiān)控程序設(shè)計一鍵一義鍵盤管理流程轉(zhuǎn)移表子程序1轉(zhuǎn)移指令子程序2轉(zhuǎn)移指令子程序轉(zhuǎn)移指令……子程序n轉(zhuǎn)移指令6.2監(jiān)控程序設(shè)計一鍵一義鍵盤管理流程轉(zhuǎn)移表子程序1轉(zhuǎn)移指6.2監(jiān)控程序設(shè)計進入該程序時,A內(nèi)包含了某按鍵編碼,當按鍵編碼小于0AH時為數(shù)字鍵,大于或等于0AH時為命令鍵。8031程序: CLR C SUBB A,#0AH ;判斷是何種閉合鍵 JC DIGI ;數(shù)字鍵轉(zhuǎn) MOV DPTR,#TBJ1 ;轉(zhuǎn)移表首址送給DPTR ADD A,A ;鍵碼加倍 JNC NADD INC DPH ;大于或等于256時,DPH加1NADD: JMP @A+DPTR ;執(zhí)行處理子程序TBJ1: AJMPPROG1 ;轉(zhuǎn)移表 AJMPPROG2 …… AJMPPROGnDIGI: …… ;數(shù)字送顯示器并顯示6.2監(jiān)控程序設(shè)計進入該程序時,A內(nèi)包含了某按鍵編碼,當按6.2監(jiān)控程序設(shè)計◆一鍵多義是指一個按鍵有多種功能,既可作命令鍵,又可作數(shù)字鍵。一個命令往往不是由一次按鍵完成,而是由一個按鍵序列所組成。按鍵管理可以用查詢法也可以用中斷法,通常使用鍵中斷處理方法。舉例一個8回路溫控儀有6個按鍵,C-回路號,P-參數(shù)號,Δ-增鍵,▽-減鍵,R-運行鍵,S-停止運行。則鍵服務(wù)程序流程如下圖所示。6.2監(jiān)控程序設(shè)計◆一鍵多義是指一個按鍵有多種功能,既可6.2監(jiān)控程序設(shè)計6.2監(jiān)控程序設(shè)計6.2監(jiān)控程序設(shè)計設(shè)鍵編碼為:R:00H;S:01H;Δ:02H;▽:03H;C:04H;P:05H。內(nèi)存RAM20H中的高4位為通道號標記,低4位為參數(shù)號標記。8279命令口地址為7FFFH,數(shù)據(jù)口地址為7FFEH。KI: MOV DPTR,#7FFFH MOVA,#40H MOVX@DPTR,A ;讀FIFO命令送8279 MOVDPTR,7FFEH MOVXA,@DPTR ;讀按鍵編碼 ADDA,A MOVDPTR,#TBJ1 ;一級轉(zhuǎn)移表入口地址送DPTR JNCKI1 INCDPHKI1: JMP@A+DPTR6.2監(jiān)控程序設(shè)計設(shè)鍵編碼為:R:00H;S:01H;6.2監(jiān)控程序設(shè)計TBJ1: AJMPRUN AJMPSTOP AJMPINCR AJMPDECR AJMPCHAL AJMPPARARUN: JNB 07H,RUN1 ;若C≠8,則轉(zhuǎn)RUN1 RETIRUN1: LCALLRUN2 ;調(diào)用啟動運行子程序 RETISTOP: LCALLSTP1 ;調(diào)用停止當前回路運行的程序 RETIINCR: JNB 07H,INC1 ;若C≠8,則轉(zhuǎn)INC1 RETIINC1: MOV R0,#20H MOV A,@R0 ANL A,#0FH CJNE A,#01H,INC2 ;若P≠1,則轉(zhuǎn)INC26.2監(jiān)控程序設(shè)計TBJ1: AJMPRUN6.2監(jiān)控程序設(shè)計 RETIINC2: LCALLINC3 ;調(diào)用加1子程序 RETIDECR: 與INCR類似,略CHAL: MOV R0,#20H MOV A,@R0 ADD A,#10H ;通道號加1 MOV @R0,A ANL A,#0F0H CJNE A,#90H,CHA1 ;判斷C是否大于8 SETB 04H ;若C大于8,則置C=1 CLR 07HCHA1: RETIPARA: JB 07H,C8 ;若C=8,則轉(zhuǎn)C8 MOV R0,#20H MOV A,@R0 ADD A,#01H ;參數(shù)序號P+1 JB 03H,PAR1 ;若P大于7,則轉(zhuǎn)PAR16.2監(jiān)控程序設(shè)計 RETI6.2監(jiān)控程序設(shè)計 MOV @R0,A AJMP PAR2PAR1: CLR 03H ;P大于7,置P=0PAR2: MOV DPTR,#TBJ2 ADD A,A JNC KI2 INC DPHKI2: JMP @A+DPTR ;轉(zhuǎn)二級表TBJ2: AJMP C1P0 ;C、P組合對應(yīng)的子程序入口 …… AJMP C1P7 AJMP C2P0 …… AJMP C2P7 …… AJMP C7P7C8: …… ;對補償回路的處理6.2監(jiān)控程序設(shè)計 MOV @R0,A6.2監(jiān)控程序設(shè)計?6.2.5顯示管理顯示是儀表實現(xiàn)人-機聯(lián)系的主要途徑?!麸@示方式1、模擬指示2、數(shù)字顯示3、模擬數(shù)字混合顯示對于選用模擬表頭作為顯示手段的儀表,只要在過程輸入通道的模擬量部分取出信號送入指示表,無需軟件管理。對于數(shù)字式顯示,根據(jù)硬件方案的不同,軟件顯示管理方法也不同。6.2監(jiān)控程序設(shè)計?6.2.5顯示管理顯示是儀表實現(xiàn)人6.2監(jiān)控程序設(shè)計1、調(diào)用顯示驅(qū)動程序模塊,更新當前的顯示數(shù)據(jù)。2、多參數(shù)的巡測和定點顯示管理。采用巡回顯示與定點顯示相結(jié)合的方法。巡回顯示:每隔一定時間更換一個新的顯示數(shù)據(jù),并顯示。定點顯示:不斷地把當前顯示參數(shù)的更新值送出顯示,不改變通道或參數(shù)。(由面板按鍵切換)3、上下限報警、手-自動等標志的指示燈顯示管理?!麸@示管理軟件的基本任務(wù)6.2監(jiān)控程序設(shè)計1、調(diào)用顯示驅(qū)動程序模塊,更新當前的顯示6.2監(jiān)控程序設(shè)計?6.2.6中斷管理能夠請求中斷的外設(shè)或事件(中斷源)有:過程通道、實時時鐘、面板按鍵、通信接口、系統(tǒng)故障等。初始化結(jié)束后,監(jiān)控主程序執(zhí)行一條“開放中斷”命令,使儀表在一旦發(fā)現(xiàn)中斷后,即能進入中斷工作方式。中斷模塊分中斷管理軟件和中斷服務(wù)模塊。1、斷點現(xiàn)場保護2、識別中斷源和判斷優(yōu)先級3、如果允許中斷嵌套,還需要再次開放中斷4、中斷服務(wù)結(jié)束后恢復現(xiàn)場?!糁袛喙芾碥浖墓δ埽?.2監(jiān)控程序設(shè)計?6.2.6中斷管理能夠請求中斷的外6.2監(jiān)控程序設(shè)計◆中斷管理軟件模塊流程6.2監(jiān)控程序設(shè)計◆中斷管理軟件模塊流程6.2監(jiān)控程序設(shè)計◆多中斷源識別電路INT0接有4個中斷源,集電極開路的非門構(gòu)成或非電路,無論哪個外部裝置提出中斷請求,都會使INT0引腳變低??赏ㄟ^軟件查詢P1.4~P1.7的邏輯電平獲知申請中斷的外部裝置。6.2監(jiān)控程序設(shè)計◆多中斷源識別電路INT0接有4個中斷6.2監(jiān)控程序設(shè)計 LJMP INTP ……INTP: PUSH PSW PUSH ACC JB P1.7,DINTR1 JB P1.6,DINTR2 JB P1.5,DINTR3 JB P1.4,DINTR4BACK: POP ACC POP PSW RETIINT1: …… ;裝置1中斷服務(wù)程序 AJMP BACKINT2: …… ;裝置2中斷服務(wù)程序 AJMP BACKINT3: …… ;裝置3中斷服務(wù)程序 AJMP BACKINT4: …… ;裝置4中斷服務(wù)程序 AJMP BACK6.2監(jiān)控程序設(shè)計 LJMP INTP6.2監(jiān)控程序設(shè)計?6.2.7時鐘管理采樣和控制周期的定時;按鍵數(shù)字增減速度的定時;多參數(shù)巡回顯示周期的定時;電壓-頻率型A/D轉(zhuǎn)換器的定時以及WATCHDOG的定時等?!魰r鐘管理的應(yīng)用◆時鐘管理的任務(wù)在監(jiān)控程序中對定時器置初值,在響應(yīng)時鐘中斷過程中判斷時間是否到,并在時間到時置初值,同時建立一個標志,表明應(yīng)執(zhí)行哪種任務(wù)。實現(xiàn)定時是采用軟件與硬件相結(jié)合的方法,即同時使用硬件定時器和軟件計數(shù)。6.2監(jiān)控程序設(shè)計?6.2.7時鐘管理采樣和控制周期的6.2監(jiān)控程序設(shè)計?6.2.8手-自動控制(必備功能)智能控制儀表的基本工作方式是自動控制。但在儀表調(diào)試、測試、系統(tǒng)投運時要用手操方式來調(diào)整輸出控制值?!羰?自動控制的基本功能1、手操方式時,操作者能方便、準確地調(diào)整輸出值;2、能實現(xiàn)手-自動的無擾動切換?!羰植賹崿F(xiàn)方式實現(xiàn)手操有硬件和軟件兩種方法,目前多數(shù)智能儀表采用軟件方法,即由儀表面板上的幾個按鍵來實現(xiàn)。一般有三個鍵:手-自動切換鍵、手操輸出加鍵和手操輸出減鍵。6.2監(jiān)控程序設(shè)計?6.2.8手-自動控制(必備功能)6.2監(jiān)控程序設(shè)計監(jiān)控程序通過判斷手-自動切換鍵的狀態(tài)來確定系統(tǒng)的運行狀態(tài)。手操方式時,儀表的控制功能暫停,由面板上的輸出加、減調(diào)整輸出值。在進行手-自動切換時,必須保證無擾動切換?!羰?自動控制特點優(yōu)點:簡單,易于實現(xiàn)。缺點:當主機、輸出通道等硬件電路發(fā)生故障時,手動控制就無法實現(xiàn)了。6.2監(jiān)控程序設(shè)計監(jiān)控程序通過判斷手-自動切換鍵的狀態(tài)來確6.2監(jiān)控程序設(shè)計?6.2.9自診斷處理自診斷與故障監(jiān)控是較高級智能儀表應(yīng)具有的基本功能之一,也是提高設(shè)備可靠性和可維護性的重要手段。儀表進行自診斷時不應(yīng)影響它的正常工作?!糇栽\斷類型1、開機自診斷2、周期性自診斷3、鍵控自診斷◆自診斷內(nèi)容顯示器、插件、ROM、RAM等器件。根據(jù)儀表的具體要求確定自診斷內(nèi)容和方法。6.2監(jiān)控程序設(shè)計?6.2.9自診斷處理自診斷與故障監(jiān)監(jiān)控程序06監(jiān)控程序06本章主要內(nèi)容6.1軟件設(shè)計方法6.1.1概述6.1.2結(jié)構(gòu)化設(shè)計方法6.1.3軟件測試6.2監(jiān)控程序設(shè)計6.2.1概述6.2.2監(jiān)控主程序6.2.3初始化管理6.2.4鍵盤管理6.2.5顯示管理6.2.6中斷管理6.2.7時鐘管理6.2.8手-自動控制6.2.9自診斷處理本章主要內(nèi)容6.1軟件設(shè)計方法6.1.1概述6.1.26.1軟件設(shè)計方法?6.1.1概述軟件設(shè)計是智能儀表設(shè)計的一個重要部分,因為智能儀表的功能是靠軟件在硬件電路的基礎(chǔ)上實現(xiàn)的。而且對同一硬件電路,編制不同的軟件可以實現(xiàn)不同的功能?!糗浖_發(fā)經(jīng)歷的階段分析→設(shè)計→編程→測試→運行與維護◆軟件設(shè)計的內(nèi)容①軟件系統(tǒng)的模塊層次結(jié)構(gòu)②控制流程③數(shù)據(jù)庫的結(jié)構(gòu)6.1軟件設(shè)計方法?6.1.1概述軟件設(shè)計是智能儀表設(shè)6.1軟件設(shè)計方法◆軟件設(shè)計的內(nèi)容總的來說可分為總體設(shè)計和詳細設(shè)計??傮w設(shè)計:完成軟件系統(tǒng)的模塊劃分,設(shè)計層次結(jié)構(gòu)、確立模塊間的調(diào)用及全局數(shù)據(jù)庫的設(shè)計等。詳細設(shè)計:模塊內(nèi)部算法的實現(xiàn)、控制流程、局部數(shù)據(jù)結(jié)構(gòu)設(shè)計。◆軟件設(shè)計方法是指指導軟件設(shè)計的規(guī)程和準則。目前流行的是結(jié)構(gòu)化設(shè)計和結(jié)構(gòu)化編程。6.1軟件設(shè)計方法◆軟件設(shè)計的內(nèi)容總的來說可分為總體設(shè)計6.1軟件設(shè)計方法?6.1.2結(jié)構(gòu)化設(shè)計方法◆結(jié)構(gòu)化設(shè)計的兩個重要思想1、“自頂向下”從整體到局部再到細節(jié),將整個任務(wù)劃分成若干個子任務(wù)模塊,子任務(wù)再分成若干個子子任務(wù)模塊,分層的同時明確各層次之間的關(guān)系以及同一層次任務(wù)之間的關(guān)系,最后擬定出各任務(wù)細節(jié)。設(shè)計時要注意的問題:①確定軟件系統(tǒng)的結(jié)構(gòu)時,要著眼于全局。②應(yīng)該明確各模塊的功能及其輸入、輸出。③模塊之間的接口設(shè)計。6.1軟件設(shè)計方法?6.1.2結(jié)構(gòu)化設(shè)計方法◆結(jié)構(gòu)化6.1軟件設(shè)計方法2、模塊化編程把整個程序按照“自頂向下”的設(shè)計思想分層分塊,一層一層分下去,一直分到最下層的每一塊都能容易地編碼為止。◆結(jié)構(gòu)化編程結(jié)構(gòu)化編程要求在設(shè)計過程中采用“自頂向下”的設(shè)計方法,在具體編程時采用“自底向上”的方法,即從最底層的模塊開始編程,然后進行上一層模塊的編程,直至完成。6.1軟件設(shè)計方法2、模塊化編程把整個程序按照“自頂向下”6.1軟件設(shè)計方法?6.1.3軟件測試◆測試的目的軟件測試的目的是為了找出程序中的錯誤或漏洞?!魷y試的方法測試的關(guān)鍵是:設(shè)計測試方法。

A功能測試法:是根據(jù)儀表需要完成的功能設(shè)計測試用例,對軟件進行測試。

B程序邏輯結(jié)構(gòu)測試法:是根據(jù)軟件的內(nèi)部邏輯結(jié)構(gòu)設(shè)計測試用例,對程序進行測試。6.1軟件設(shè)計方法?6.1.3軟件測試◆測試的目的軟6.1軟件設(shè)計方法◆測試的基本原則軟件測試應(yīng)遵循的基本原則,提高軟件測試效果。自己看教材P232?!暨\行、維護和改進1、經(jīng)過測試的軟件還可能存在著錯誤2、用戶需求發(fā)生改變3、優(yōu)化6.1軟件設(shè)計方法◆測試的基本原則軟件測試應(yīng)遵循的基本原6.2監(jiān)控程序設(shè)計?6.2.1概述智能儀表要具有實時處理能力。實時處理:儀表直接接受過程信息的采集數(shù)據(jù)并對其進行處理進而送出處理結(jié)果?!魧崟r處理◆智能儀表軟件組成智能儀表軟件主要包括:1、監(jiān)控程序2、中斷服務(wù)程序3、完成各種算法的功能模塊。儀表的功能主要由中斷服務(wù)主程序及功能算法模塊來實現(xiàn)。6.2監(jiān)控程序設(shè)計?6.2.1概述智能儀表要具有實時處6.2監(jiān)控程序設(shè)計及時地響應(yīng)來自系統(tǒng)或儀表內(nèi)部的各種服務(wù)請求,有效地管理儀表自身軟硬件及人-機聯(lián)系部件,與系統(tǒng)中其它儀器設(shè)備交換信息,并在出現(xiàn)故障時,提供相應(yīng)的處理?!舯O(jiān)控程序1、監(jiān)控程序的作用2、監(jiān)控程序的組成監(jiān)控程序包括監(jiān)控主程序和命令處理子程序。監(jiān)控主程序作用:識別命令、解釋命令并獲得子程序的入口地址。(監(jiān)控程序的核心)命令處理子程序的作用:具體執(zhí)行命令,完成命令所規(guī)定的各項實際動作。6.2監(jiān)控程序設(shè)計及時地響應(yīng)來自系統(tǒng)或儀表內(nèi)部的各種服務(wù)請6.2監(jiān)控程序設(shè)計監(jiān)控程序的組成主要取決于測控系統(tǒng)的規(guī)模,以及儀表和系統(tǒng)硬件配置與功能。6.2監(jiān)控程序設(shè)計監(jiān)控程序的組成主要取決于測控系統(tǒng)的規(guī)模,6.2監(jiān)控程序設(shè)計6.2監(jiān)控程序設(shè)計6.2監(jiān)控程序設(shè)計?6.2.2監(jiān)控主程序監(jiān)控主程序是整個儀表監(jiān)控程序的主線,上電復位后首先進入監(jiān)控主程序,一般放在ROM的0000H單元。監(jiān)控主程序的作用是協(xié)調(diào)智能儀表各部分軟、硬件的工作。模塊的執(zhí)行次序可由流程圖來描述?!舯O(jiān)控主程序流程6.2監(jiān)控程序設(shè)計?6.2.2監(jiān)控主程序監(jiān)控主程序是整6.2監(jiān)控程序設(shè)計可編程器件初始化堆棧及參數(shù)初始化自診斷開放中斷例行服務(wù)顯示等待中斷中斷調(diào)用時鐘管理模塊調(diào)用測控算法模塊調(diào)用按鍵散轉(zhuǎn)模塊實時時鐘?

是過程通道?否是返回鍵中斷6.2監(jiān)控程序設(shè)計可編程器件初始化堆棧及參數(shù)初始化自6.2監(jiān)控程序設(shè)計?6.2.3初始化管理初始化管理包括可編程器件初始化、堆棧初始化和參數(shù)初始化。可編程器件初始化:指對可編程硬件接口電路工作模式的初始化。堆棧初始化:指復位后在用戶RAM中確定一個堆棧區(qū)域。參數(shù)初始化:指對儀表的整定參數(shù)、報警及過程輸入/輸出通道的數(shù)據(jù)初始化,系統(tǒng)的整定參數(shù)初值由被控對象的特性確定。6.2監(jiān)控程序設(shè)計?6.2.3初始化管理初始化管理包括6.2監(jiān)控程序設(shè)計?6.2.4鍵盤管理主要包括一鍵一義和一鍵多義兩種類型?!粢绘I一義是指一個按鍵代表一個命令或一個數(shù)字,編程時只要根據(jù)當前按鍵的編碼把程序直接轉(zhuǎn)到相應(yīng)的處理模塊的入口,而不需要知道在此以前的按鍵情況。儀表功能復雜時,按鍵將會過多,操作不便,現(xiàn)較少使用。6.2監(jiān)控程序設(shè)計?6.2.4鍵盤管理主要包括一鍵一義6.2監(jiān)控程序設(shè)計一鍵一義鍵盤管理流程轉(zhuǎn)移表子程序1轉(zhuǎn)移指令子程序2轉(zhuǎn)移指令子程序轉(zhuǎn)移指令……子程序n轉(zhuǎn)移指令6.2監(jiān)控程序設(shè)計一鍵一義鍵盤管理流程轉(zhuǎn)移表子程序1轉(zhuǎn)移指6.2監(jiān)控程序設(shè)計進入該程序時,A內(nèi)包含了某按鍵編碼,當按鍵編碼小于0AH時為數(shù)字鍵,大于或等于0AH時為命令鍵。8031程序: CLR C SUBB A,#0AH ;判斷是何種閉合鍵 JC DIGI ;數(shù)字鍵轉(zhuǎn) MOV DPTR,#TBJ1 ;轉(zhuǎn)移表首址送給DPTR ADD A,A ;鍵碼加倍 JNC NADD INC DPH ;大于或等于256時,DPH加1NADD: JMP @A+DPTR ;執(zhí)行處理子程序TBJ1: AJMPPROG1 ;轉(zhuǎn)移表 AJMPPROG2 …… AJMPPROGnDIGI: …… ;數(shù)字送顯示器并顯示6.2監(jiān)控程序設(shè)計進入該程序時,A內(nèi)包含了某按鍵編碼,當按6.2監(jiān)控程序設(shè)計◆一鍵多義是指一個按鍵有多種功能,既可作命令鍵,又可作數(shù)字鍵。一個命令往往不是由一次按鍵完成,而是由一個按鍵序列所組成。按鍵管理可以用查詢法也可以用中斷法,通常使用鍵中斷處理方法。舉例一個8回路溫控儀有6個按鍵,C-回路號,P-參數(shù)號,Δ-增鍵,▽-減鍵,R-運行鍵,S-停止運行。則鍵服務(wù)程序流程如下圖所示。6.2監(jiān)控程序設(shè)計◆一鍵多義是指一個按鍵有多種功能,既可6.2監(jiān)控程序設(shè)計6.2監(jiān)控程序設(shè)計6.2監(jiān)控程序設(shè)計設(shè)鍵編碼為:R:00H;S:01H;Δ:02H;▽:03H;C:04H;P:05H。內(nèi)存RAM20H中的高4位為通道號標記,低4位為參數(shù)號標記。8279命令口地址為7FFFH,數(shù)據(jù)口地址為7FFEH。KI: MOV DPTR,#7FFFH MOVA,#40H MOVX@DPTR,A ;讀FIFO命令送8279 MOVDPTR,7FFEH MOVXA,@DPTR ;讀按鍵編碼 ADDA,A MOVDPTR,#TBJ1 ;一級轉(zhuǎn)移表入口地址送DPTR JNCKI1 INCDPHKI1: JMP@A+DPTR6.2監(jiān)控程序設(shè)計設(shè)鍵編碼為:R:00H;S:01H;6.2監(jiān)控程序設(shè)計TBJ1: AJMPRUN AJMPSTOP AJMPINCR AJMPDECR AJMPCHAL AJMPPARARUN: JNB 07H,RUN1 ;若C≠8,則轉(zhuǎn)RUN1 RETIRUN1: LCALLRUN2 ;調(diào)用啟動運行子程序 RETISTOP: LCALLSTP1 ;調(diào)用停止當前回路運行的程序 RETIINCR: JNB 07H,INC1 ;若C≠8,則轉(zhuǎn)INC1 RETIINC1: MOV R0,#20H MOV A,@R0 ANL A,#0FH CJNE A,#01H,INC2 ;若P≠1,則轉(zhuǎn)INC26.2監(jiān)控程序設(shè)計TBJ1: AJMPRUN6.2監(jiān)控程序設(shè)計 RETIINC2: LCALLINC3 ;調(diào)用加1子程序 RETIDECR: 與INCR類似,略CHAL: MOV R0,#20H MOV A,@R0 ADD A,#10H ;通道號加1 MOV @R0,A ANL A,#0F0H CJNE A,#90H,CHA1 ;判斷C是否大于8 SETB 04H ;若C大于8,則置C=1 CLR 07HCHA1: RETIPARA: JB 07H,C8 ;若C=8,則轉(zhuǎn)C8 MOV R0,#20H MOV A,@R0 ADD A,#01H ;參數(shù)序號P+1 JB 03H,PAR1 ;若P大于7,則轉(zhuǎn)PAR16.2監(jiān)控程序設(shè)計 RETI6.2監(jiān)控程序設(shè)計 MOV @R0,A AJMP PAR2PAR1: CLR 03H ;P大于7,置P=0PAR2: MOV DPTR,#TBJ2 ADD A,A JNC KI2 INC DPHKI2: JMP @A+DPTR ;轉(zhuǎn)二級表TBJ2: AJMP C1P0 ;C、P組合對應(yīng)的子程序入口 …… AJMP C1P7 AJMP C2P0 …… AJMP C2P7 …… AJMP C7P7C8: …… ;對補償回路的處理6.2監(jiān)控程序設(shè)計 MOV @R0,A6.2監(jiān)控程序設(shè)計?6.2.5顯示管理顯示是儀表實現(xiàn)人-機聯(lián)系的主要途徑?!麸@示方式1、模擬指示2、數(shù)字顯示3、模擬數(shù)字混合顯示對于選用模擬表頭作為顯示手段的儀表,只要在過程輸入通道的模擬量部分取出信號送入指示表,無需軟件管理。對于數(shù)字式顯示,根據(jù)硬件方案的不同,軟件顯示管理方法也不同。6.2監(jiān)控程序設(shè)計?6.2.5顯示管理顯示是儀表實現(xiàn)人6.2監(jiān)控程序設(shè)計1、調(diào)用顯示驅(qū)動程序模塊,更新當前的顯示數(shù)據(jù)。2、多參數(shù)的巡測和定點顯示管理。采用巡回顯示與定點顯示相結(jié)合的方法。巡回顯示:每隔一定時間更換一個新的顯示數(shù)據(jù),并顯示。定點顯示:不斷地把當前顯示參數(shù)的更新值送出顯示,不改變通道或參數(shù)。(由面板按鍵切換)3、上下限報警、手-自動等標志的指示燈顯示管理。◆顯示管理軟件的基本任務(wù)6.2監(jiān)控程序設(shè)計1、調(diào)用顯示驅(qū)動程序模塊,更新當前的顯示6.2監(jiān)控程序設(shè)計?6.2.6中斷管理能夠請求中斷的外設(shè)或事件(中斷源)有:過程通道、實時時鐘、面板按鍵、通信接口、系統(tǒng)故障等。初始化結(jié)束后,監(jiān)控主程序執(zhí)行一條“開放中斷”命令,使儀表在一旦發(fā)現(xiàn)中斷后,即能進入中斷工作方式。中斷模塊分中斷管理軟件和中斷服務(wù)模塊。1、斷點現(xiàn)場保護2、識別中斷源和判斷優(yōu)先級3、如果允許中斷嵌套,還需要再次開放中斷4、中斷服務(wù)結(jié)束后恢復現(xiàn)場?!糁袛喙芾碥浖墓δ埽?.2監(jiān)控程序設(shè)計?6.2.6中斷管理能夠請

溫馨提示

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

評論

0/150

提交評論