專利名稱::監(jiān)控人機界面數(shù)據(jù)與程序分離的自動生成方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及數(shù)據(jù)分離技術(shù)和自動生成技術(shù),特別地,涉及一種監(jiān)控人機界面數(shù)據(jù)與程序分離的自動生成方法。
背景技術(shù):
:隨著嵌入式技術(shù)的發(fā)展,嵌入式產(chǎn)品的功能也越來越豐富。近年來,開發(fā)人員都比較喜歡在嵌入式系統(tǒng)中加入人機對話平臺。在高端嵌入式系統(tǒng)中,一般加入的是一塊適合系統(tǒng)大小的彩色LCD顯示屏,設(shè)計的界面一般運行在嵌入式操作系統(tǒng)上,如WindowsCE,Linux等。若在低端產(chǎn)品中也采用以上方式,顯然是不合適的。開發(fā)人員往往是選擇一塊合適的單色液晶屏,其驅(qū)動界面方式是進(jìn)行獨立的人機界面開發(fā)。但這種開發(fā)方式效率低,開發(fā)周期長。監(jiān)控人機界面是一種連接可編程程序控制器(PLC)、變頻器、直流調(diào)速器、儀表、嵌入式控制器等工業(yè)控制設(shè)備,通過各種通訊方式,將設(shè)備的狀態(tài)信息轉(zhuǎn)化成人們可是接受的形式(如圖像、文字、聲音等),并將其表現(xiàn)出來。本發(fā)明旨在解決一種能跨平臺高效率的開發(fā)嵌入式監(jiān)控人機界面的方法,來解決以上問題。
發(fā)明內(nèi)容本發(fā)明的目的在于針對現(xiàn)有技術(shù)的不足,提供一種監(jiān)控人機界面數(shù)據(jù)與程序分離的自動生成方法,使用者可以根據(jù)自身的實際需要,設(shè)計監(jiān)控人機界面;通過簡單的操作,無需編寫代碼,即可設(shè)計出合適的監(jiān)控人機界面。本發(fā)明的目的是通過以下技術(shù)方案來實現(xiàn)的一種監(jiān)控人機界面數(shù)據(jù)與程序分離的自動生成方法,包括以下步驟(1)通過上位機軟件進(jìn)行監(jiān)控人機界面設(shè)計;(2)系統(tǒng)對設(shè)計結(jié)果通過XML語言進(jìn)行描述;(3)解析生成器通過對XML描述文件的解析,生成約定格式的監(jiān)控人機界面<formula>formulaseeoriginaldocumentpage4</formula>數(shù)據(jù);(4)下位機引擎解析下載的數(shù)據(jù)結(jié)構(gòu)。本發(fā)明的有益效果是通過數(shù)據(jù)與程序分離技術(shù)設(shè)計的監(jiān)控人機界面與上位機軟件和下位機程序無關(guān),使得一次設(shè)計可以運行與多個平臺,一個平臺也可以支持多個界面設(shè)計軟件,方便系統(tǒng)移植,提高設(shè)計和開發(fā)效率。圖1是監(jiān)控人機界面數(shù)據(jù)與程序分離的自動生成方法的結(jié)構(gòu)流程圖;圖2是監(jiān)控人機界面數(shù)據(jù)二進(jìn)制表述示例圖3是監(jiān)控人機界面數(shù)據(jù)按頁面索引方式儲存示例圖4是監(jiān)控人機界面數(shù)據(jù)按固定單位長度索引方式儲存示例圖5是監(jiān)控人機界面上位機設(shè)計軟件設(shè)計流程示例圖6是監(jiān)控人機界面解析生成器工作流程示例圖7是監(jiān)控人機界面下位機程序工作流程示例圖8是棒圖控件的數(shù)據(jù)表示方法表圖。具體實施例方式本發(fā)明的一種監(jiān)控人機界面數(shù)據(jù)與程序分離的自動生成方法(結(jié)構(gòu)參見圖1),包括以下步驟1.通過上位機軟件進(jìn)行監(jiān)控人機界面設(shè)計(步驟S101)。該步驟具體如下l.l新建工程(步驟S501)主要進(jìn)行工程項目屬性定義,包括定義工程名、工程路徑等工程屬性,選擇監(jiān)控人機界面的液晶屏型號,定義通訊端口屬性。1.2系統(tǒng)信息設(shè)計(步驟S502)。此過程主要定義一些監(jiān)控人機界面的系統(tǒng)屬性,如密碼、屏保、工程圖片等信息。1.3頁面設(shè)計(步驟S503),設(shè)計每個頁面上的圖形控件信息。這些圖形控件可有多種形式,如實時數(shù)據(jù)框、幫圖、趨勢圖、數(shù)值切換圖片、靜態(tài)圖、指示燈、多線段運動圖片、實時時鐘、數(shù)值切換文本、多態(tài)圖、靜態(tài)文本等。1.4鍵盤設(shè)計(步驟S504),主要設(shè)計頁面切換順序和對監(jiān)控設(shè)備的開關(guān)量控制。1.5仿真運行(步驟S505),檢查設(shè)計的監(jiān)控人機界面的合理性,如鍵盤頁面切換是否正確,頁面顯示控件屬性是否正確、頁面布局是否美觀等。2.系統(tǒng)對設(shè)計結(jié)果通過XML語言進(jìn)行描述。系統(tǒng)對各個用戶設(shè)計的頁面提取各類信息,包括頁面上的組件構(gòu)成,通信設(shè)置,按鍵功能。然后對提取的信息用XML語言進(jìn)行描述。3.解析生成器通過對XML描述文件的解析,生成約定格式的監(jiān)控人機界面數(shù)據(jù)(步驟S102)。設(shè)計完成后,調(diào)用解析生成器將設(shè)計結(jié)果轉(zhuǎn)化成數(shù)據(jù)結(jié)構(gòu),并將其下載到下位機中。監(jiān)控人機界面數(shù)據(jù)的二進(jìn)制表述示例如圖2所述。所有數(shù)據(jù)都是以控件為單位進(jìn)行儲存,在整個二進(jìn)制數(shù)據(jù)中有各塊數(shù)據(jù)的索引地址,頁面上的控件按頁面進(jìn)行索引,其他控件數(shù)據(jù)都具有固定長度,因此采用固定單位長度索引。每個控件的數(shù)據(jù)都是由以下單元的一個或者幾個組成1)控件描述(即控件名)2)控件顯示坐標(biāo)3)控件顯示大小4)控件觸發(fā)類型(時鐘觸發(fā)、按鍵觸發(fā)或通訊觸發(fā))5)控件私有屬性6)控件顯示數(shù)據(jù)如表1是一個棒圖控件數(shù)據(jù)表示,該控件是通過通訊將數(shù)據(jù)采集上來,根據(jù)設(shè)定的最大值和最小值確定當(dāng)前值在整個棒柱中的比例關(guān)系,并將這種比例關(guān)系通過填充色和空白色在屏幕上形象的表示出來。因此該控件是通過通訊觸發(fā)的,因此在觸發(fā)類型中填寫的是通訊觸發(fā)相關(guān)的屬性。在下位機中相應(yīng)的索引定義如下表示0〃縦COLt/層—釘X/、統(tǒng)2〃體y,標(biāo)附"m〃力/、貴度〃力/、敲雄〃舶號7緩麟盧〃,薪疆C(9Z"層—COM77ME〃邀淑彌<table>tableseeoriginaldocumentpage6</column></row><table>為監(jiān)控人機界面數(shù)據(jù)按頁面索引方法的一個示例。圖中共有4張表格,分別存放索引信息和數(shù)據(jù)信息。"各頁控件個數(shù)表"中存放了每個頁面中控件個數(shù)信息,其單位長度是相同的,因此在該表中索引可直接按照頁面進(jìn)行索引;在"所有頁面控件數(shù)據(jù)表"中存放了所有在頁面上的控件的數(shù)據(jù)信息,由于每種類型控件所占有的大小不同,因此需要用"各控件偏移量表"來索引每個控件,該表存放了每個控件在"所有頁面控件數(shù)據(jù)表"中的偏移指針;"各頁偏移量表"存放了每一頁面第一個控件在"各頁偏移量表"中的地址,由此就可以檢索到指定頁面上的控件信息。在監(jiān)控人機界面中,按鍵頁面跳轉(zhuǎn)中需要存放的數(shù)據(jù)信息都是固定長度的,因此可按照固定單位長度索引。如圖4所述每個頁面上有4個按鍵,要找到第n頁上的第i個鍵只需找到索引4*n+i即可。解析生成器的工作流程見圖6,具體步驟如下3.1通過解析XML監(jiān)控人機界面描述文件,將所有的控件數(shù)據(jù)化(步驟S601)。各種控件都有其固定的數(shù)據(jù)化描述方法和固定的存儲格式。3.2將數(shù)據(jù)化好的控件按照類型編排索引結(jié)構(gòu)(步驟S602)。如在頁面上顯示的圖形控件可按照頁面方式編排索引結(jié)構(gòu),而按鍵、通訊口屬性等控件可按照固定長度方式編排索引結(jié)構(gòu)。該步驟完成后將按照不同的類型生成各種索引結(jié)構(gòu)塊,如所有頁面上顯示的圖形控件將生成頁面圖形控件索引塊,在圖2中表示為"所有頁面控件數(shù)據(jù)""各頁控件個數(shù)""各控件偏移量""各頁偏移量"所示數(shù)據(jù)塊的總和;通訊口屬性將生成通訊口數(shù)據(jù)索引塊,在圖2中表示為"通訊口數(shù)據(jù)"所示的數(shù)據(jù)塊。3.3最后將所有的數(shù)據(jù)信息編排成完整的系統(tǒng)索引結(jié)構(gòu)(步驟S603)。按照約定的格式,將步驟S602中生成的所有索引結(jié)構(gòu)塊存放到監(jiān)控人機界面數(shù)據(jù)文件中,并各塊存放的地址寫入文件頭中。4.下位機引擎解析下載的數(shù)據(jù)結(jié)構(gòu)。下位機引擎程序通過解析上位機生成和下載的二進(jìn)制數(shù)據(jù)就可以生成監(jiān)控人機界面,并顯示在液晶屏上(步驟S103)。系統(tǒng)開機后程序進(jìn)行硬件初始化(步驟S701),如鍵盤、液晶屏、定時器、IO口等。該步驟具體如下4.1讀取監(jiān)控人機界面數(shù)據(jù)的文件頭(步驟S702),將數(shù)據(jù)文件頭中的系統(tǒng)信息(如初始頁面號、頁面總數(shù)、密碼等)和所有數(shù)據(jù)塊地址讀到內(nèi)存中。4.2進(jìn)行通訊口初始化(步驟S703),根據(jù)步驟S702中讀入的通訊口數(shù)據(jù)索引地址,找到通訊口數(shù)據(jù)塊,根據(jù)該數(shù)據(jù)塊中的信息初始化通訊口,并指定該通訊口協(xié)議格式。4.3初始化頁面,在液晶屏上畫初始頁面(步驟S704),根據(jù)S702中讀入的初始頁面號,遍歷該頁面上的所有顯示控件,并將控件顯示到液晶屏上(遍歷指定頁面上的所有控件的方法在上文中已有描述)。4.4進(jìn)入程序運行狀態(tài),循環(huán)等待事件(步驟S705),程序在該步驟中判斷是否有事件到達(dá),若有,則調(diào)用該事件相應(yīng)的事件處理函數(shù)。以上所述僅為本發(fā)明一個實施例,當(dāng)不能以此限制本發(fā)明范圍,凡依據(jù)本發(fā)明所做的結(jié)構(gòu)上的變化、功能模塊的增刪,只要不失本發(fā)明的要義所在,都應(yīng)視為落入本發(fā)明保護(hù)范圍之內(nèi)受到制約。權(quán)利要求1、一種監(jiān)控人機界面數(shù)據(jù)與程序分離的自動生成方法,其特征在于,包括以下步驟(1)通過上位機軟件進(jìn)行監(jiān)控人機界面設(shè)計。(2)系統(tǒng)對設(shè)計結(jié)果通過XML語言進(jìn)行描述。(3)解析生成器通過對XML描述文件的解析,生成約定格式的監(jiān)控人機界面數(shù)據(jù)。(4)下位機引擎解析下載的數(shù)據(jù)結(jié)構(gòu)。2、根據(jù)權(quán)利要求l所述監(jiān)控人機界面數(shù)據(jù)與程序分離的自動生成方法,其特征在于,所述步驟(1)具體如下(A)新建工程主要進(jìn)行工程項目屬性定義,包括定義工程名、工程路徑等工程屬性,選擇監(jiān)控人機界面的液晶屏型號,定義通訊端口屬性。(B)系統(tǒng)信息設(shè)計此過程主要定義一些監(jiān)控人機界面的系統(tǒng)屬性。(C)頁面設(shè)計設(shè)計每個頁面上的圖形控件信息。(D)鍵盤設(shè)計主要設(shè)計頁面切換順序和對監(jiān)控設(shè)備的開關(guān)量控制。(E)仿真運行檢查設(shè)計的監(jiān)控人機界面的合理性。3、根據(jù)權(quán)利要求l所述監(jiān)控人機界面數(shù)據(jù)與程序分離的自動生成方法,其特征在于,所述步驟(3)具體如下(A)通過解析XML監(jiān)控人機界面描述文件,將所有的控件數(shù)據(jù)化。(B)將數(shù)據(jù)化好的控件按照類型編排索引結(jié)構(gòu)。(C)將所有的數(shù)據(jù)信息編排成完整的系統(tǒng)索引結(jié)構(gòu)。4、根據(jù)權(quán)利要求l所述監(jiān)控人機界面數(shù)據(jù)與程序分離的自動生成方法,其特征在于,所述步驟(4)中,下位機引擎通過解析上位機生成和下載的二進(jìn)制數(shù)據(jù)就可以生成監(jiān)控人機界面,并顯示在液晶屏上。具體如下a)讀取監(jiān)控人機界面數(shù)據(jù)的文件頭,將數(shù)據(jù)文件頭中的系統(tǒng)信息和所有數(shù)據(jù)塊地址讀到內(nèi)存中。b)進(jìn)行通訊口初始化根據(jù)讀入的通訊口數(shù)據(jù)索引地址,找到通訊口數(shù)據(jù)塊,根據(jù)該數(shù)據(jù)塊中的信息初始化通訊口,并指定該通訊口協(xié)議格式。C)初始化頁面在液晶屏上畫初始頁面,根據(jù)讀入的初始頁面號,遍歷該頁面上的所有顯示控件,并將控件顯示到液晶屏上。d)進(jìn)入程序運行狀態(tài),循環(huán)等待事件,程序在該步驟中判斷是否有事件到達(dá),若有,則調(diào)用該事件相應(yīng)的事件處理函數(shù)。全文摘要本發(fā)明公開了一種監(jiān)控人機界面數(shù)據(jù)與程序分離的自動生成方法,通過上位機軟件所見即所得的設(shè)計環(huán)境,自動生成監(jiān)控人機界面數(shù)據(jù)文件,不同平臺的下位機引擎通過解析該文件,生成監(jiān)控人機界面,通過引擎的支持達(dá)到跨平臺的目的。本發(fā)明通過數(shù)據(jù)與程序分離技術(shù)設(shè)計的監(jiān)控人機界面與上位機軟件和下位機程序無關(guān),使得一次設(shè)計可以運行與多個平臺,一個平臺也可以支持多個界面設(shè)計軟件,方便系統(tǒng)移植,提高設(shè)計和開發(fā)效率。文檔編號G06F9/44GK101630255SQ200910099000公開日2010年1月20日申請日期2009年6月1日優(yōu)先權(quán)日2009年6月1日發(fā)明者義嚴(yán),良李,趙建勇,鄔惠峰申請人:杭州電子科技大學(xué)