劉曉榮


摘 ? 要:文章詳細闡述了具有系統組態功能的模塊化軟件設計的思想和過程,并結合變頻器系統設計平臺給出了詳細的設計理念。實踐證明,該思想確實可行,并具有很大的推廣價值。
關鍵詞:軟件;模塊化;連接子;變頻器
模塊化軟件設計是程序設計過程中常用的方法和思想,簡單地說,就是將一個大程序按照它的功能劃分為一個個相對獨立的小程序模塊,并定義好這些小程序模塊之間的關系,調試好各個框架之間的輸入、輸出連接關系。在本變頻器系統中,由于實現的功能較多,本文參照西門子傳動系統的編程思想,實現具有系統組態功能的模塊化軟件設計[1]。
1 ? ?軟件模塊化的基本思想
1.1 ?模塊的分割
作為一個龐大的變頻器控制系統,需要實現龐大的控制功能、通信功能。本研究站在系統的角度上,將實現不同控制的功能劃分為各個不同的子模塊,各模塊功能相對獨立,和其他子模塊之間信息交換量較小。把子模塊定義一個名詞—功能塊。對于該變頻器系統,本研究將整個程序分割為以下主要功能塊:開環(閉環)控制功能、通信功能以及監控和操作器控制功能。這些功能模塊相對獨立,可通過參數設置而自由聯結。
相互聯結相當于將各個功能模塊用工程方法進行連接,即用導線連接集成電路或其他元件。因此,各個功能模塊都有自己相應的功能框圖。
1.2 ?各模塊的運行
軟件運行的微處理器要按順序完成各模塊(功能塊)的運行,但為了系統運行的經濟性,在功能塊被執行時,本研究按照在系統中各模塊要求被執行的快慢,有意將各模塊分為若干等級,例如,分為9個等級,執行要求最快的為等級1,執行最慢的為等級9。
為保證每個模塊能準確地按時間周期執行,本研究運用中斷的概念,因為在系統時鐘確定的情況下,對于某一中斷而言,兩次中斷之間的時間間隔是確定的。所以介紹一個時基的概念,本研究采用定時器T0中斷來說明(當然可以采用定時器T1或者外部中斷)。把每兩個T0中斷之間的時間間隔(例如1.2 ms)定位為程序執行的基本時間間隔—時基,以T0為基礎,可以得到特別準確的時間2T0,4T0,8T0,…,256T0等。明確起見,把T0,2T0,4T0,8T0,…,256T0等時間段稱之為時隙[2],時隙相關數據如表1所示。
這樣可以確定每個功能塊所處的時隙。
時隙按其優先級順序處理,其中,時隙T2優先級最高,T10優先級最低。每個高優先級的時隙能夠中斷低優先級時隙。系統順序控制自動地啟動每個時隙。如果高優先級時隙被啟動,則雖然其他時隙正進行處理,在被中斷的時隙進行進一步處理之前,低優先級的時隙被停止,然后處理高優先級時隙。低優先級時隙排成一行但不進行處理,直到高優先級時隙結束。
需要說明的是,時隙T20僅作為存儲之用,在實際應用時不被執行。這樣可以把不需要執行的功能塊時隙改為T20,節約系統時間,如在軟件中包含了“串口通信模塊”,但在某現場應用時未使用此串口。
可以將其時隙改為T20,各功能塊的時隙可以根據需要進行自由修改,如由塊改慢,或由慢改快。
時基T0的時間也可以進行修改。時基T0并不一定要是定時器T0兩次中斷的時間間隔,可以為多次T0中斷的時間。
各時隙同T0的時間關系選擇偶數倍關系,而非奇數倍關系的原因是判斷更容易。在軟件中可以設定一個8位計數器,當第0位為1時,執行時隙為1×T0的時隙T2,第1位為1時,執行時隙為2×T0的時隙T3。以此類推,判斷時只按位判斷,各位正好按照256,128,64,32,16,8,4,2,1碼編碼。
1.3 ?模塊內部的參數設定
軟件的模塊化不僅體現在模塊的分割上,而且還體現在模塊內部,圖1給出了某個功能塊或功能塊的一部分。
圖1右上角橢圓型框表明該功能塊所處的時隙。內部又引入了一堆代號為P×××,K×××,B×××的參數。在軟件中,它們有以下幾種參數:
這些參數其實就是變量,編程時只需要按其尋址方式進行,而變量取值可以進行修改,故稱參數。其中,P,H參數為設定參數,分為兩種尋址方式:立即尋址和間接尋址。圖1中P235,P240,U953.14為直接尋址方式,而P228為間接尋址方式。P228=[KK0152],即KK0152的內容為多少,則P228的值是多少。
B××××開關量連接器參數,K××××連接器參數(16位),KK××××雙連接器參數(32位)是某一特定功能的輸出量,例如,圖1中B0310為從460頁功能圖輸出的速度調節器釋放與否位,K0153為圖1中速度調節器輸出量。
B××××,K××××和KK××××參數作為連接器參數,可以被設定參數P,H,U,L以間接尋址的方式所設定。
一旦設定參數P,H,U,L設置不同的B××××,K××××和KK××××參數,則構成了不同的框圖、不同的電路。因此,除特定功能的固定連接之外,整個功能塊內部都是特別自由、松散的若干塊,使用者可根據不同的需要,通過設定P,H,U,L構成自己理想的電路。
通過輸出量控制的連接子,把需要的量輸出至模擬量口或開關量口輸出,實現不同的控制功能。用該思想可以想象把任何需要設定的量或接口都初始化為不同的可設定參數,如電源電壓、電源頻率、輸出電壓等,可以實現用一種軟件實現不同種設備的控制思想。但需要注意的是,設定參數需要事先設定上、下限,以防止非正常數據的輸入。設定參數的缺省值也是必要的,特別是出廠設定時顯得更加重要。
1.4 ?自由連接子的實現
自由連接子的實現,其實質是如何用設定參數把連接變量連接過來的方法。事先在程序中開辟兩個變量表,K變量表和B變量表。分別為K0000,K0001,K0002,…,(K參數和KK參數公用一個變量表,因為K參數和KK參數的序號是不重復的);B0000,B0001,B0002,…,尋址B參數或K參數時,首先,將指針指向B0000或K0000地址,其次,再設定到設定參數的數值作為偏移量,按該偏移量間接尋址即可實現連接。
需要說明的是:編程時,B參數表、K參數表,需要實現設定初值。因為B參數、K參數是某一特定功能的輸出量,所以在程序運行過程中,B參數、K參數應該自動刷新。整個一套軟件的參數不能重復,所以自由連接可以在同一功能塊間、不同功能塊間自由連接,即時把某一輸出又連到其輸入。P參數和r參數、H參數和d參數、U參數和n參數、L參數和c參數不重復。
2 ? ?結語
隨著科學技術的迅猛發展,對自動化產品的模塊化、網絡化都有了更高的要求,軟件模塊化更是軟件編制、維護的最好選擇。本文提出的軟件思想,不但在變頻器產品上有很重要的應用,也可以推廣應用于其他控制產品、自動化及工控產品中。
[參考文獻]
[1]武貴林.單元串聯中壓大功率變頻器的研究與設計[D].西安:西安科技大學,2005.
[2]馮垛生,曾越蘭.無速度傳感器矢量控制原理與實踐[M].北京:機械工業出版社,1997.