紫金橋?qū)崟r數(shù)據(jù)庫二次開發(fā)包及手冊等點(diǎn)開發(fā)接口_第1頁
紫金橋?qū)崟r數(shù)據(jù)庫二次開發(fā)包及手冊等點(diǎn)開發(fā)接口_第2頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

1、點(diǎn)開發(fā)接口數(shù)據(jù)庫點(diǎn)組態(tài)首先要進(jìn)行參數(shù)和點(diǎn)類型組態(tài)。參數(shù)管理:參數(shù)包括基本參數(shù)、私有參數(shù)和自定義參數(shù)。其中基本參數(shù)和私有參數(shù)是系統(tǒng)參數(shù)?;緟?shù)是數(shù)據(jù)庫系統(tǒng)預(yù)先定義的參數(shù),運(yùn)行時數(shù)據(jù)庫將自動解釋其含義,如量程變換等參數(shù),參數(shù)序號從0到99。私有參數(shù)是某一種點(diǎn)類型特定使用的參數(shù),參數(shù)序號從100到159共60種參數(shù),不同的點(diǎn)類型同一個參數(shù)序號可以定義不同的參數(shù)。如參數(shù)100在累計點(diǎn)中的含義是FILTERFL,表示小信號是否切除,而在PID控制點(diǎn)中表示PID控制的P參數(shù)。在同一種點(diǎn)類型中參數(shù)序號不能重復(fù),但是不同的點(diǎn)類型該參數(shù)序號可以重復(fù)。自定義參數(shù):用戶組態(tài)的參數(shù),序號從160到239。參數(shù)組態(tài)時

2、在參數(shù)管理時點(diǎn)擊鼠標(biāo)左鍵時同時按下Ctrl和Shift輸入口令:systemman可以進(jìn)入系統(tǒng)組態(tài),可以組態(tài)系統(tǒng)參數(shù)。參數(shù)組態(tài)請參見幫助中的自定義參數(shù)。需要注意的是:如果要組態(tài)一種的點(diǎn)類型的私有參數(shù),類別選擇點(diǎn)參數(shù)類型,此時該點(diǎn)類型還沒有建立,則可以在子類別中輸入點(diǎn)類型的序號,如果點(diǎn)類型的序號是20,則在子類別中輸入20。點(diǎn)類型管理:點(diǎn)類型序號從0到31是系統(tǒng)點(diǎn)類型,32到63是用戶自定義點(diǎn)類型。同樣在點(diǎn)類型管理界面點(diǎn)擊鼠標(biāo)左鍵時同時按下Ctrl和Shift輸入口令:systemman可以進(jìn)入系統(tǒng)組態(tài),可以組態(tài)系統(tǒng)點(diǎn)類型。點(diǎn)類型組態(tài)請參見幫助中的自定義點(diǎn)類型。每一種點(diǎn)類型包含組態(tài)數(shù)據(jù)庫和運(yùn)行數(shù)

3、據(jù)庫。組態(tài)DLL的開發(fā):組態(tài)DLL是數(shù)據(jù)庫組態(tài)時調(diào)用的DLL。該DLL需要完成下列事務(wù):組態(tài)輸入的管理和點(diǎn)的管理。1)組態(tài)輸入的管理:組態(tài)界面是由若干個對話框組成,必須是子窗口,沒有邊框,它提供用戶組態(tài)界面,每一個窗口上可以關(guān)聯(lián)若干參數(shù)(當(dāng)然也可以沒有)。該對話框必須從類庫提供的CParaPage基類派生。在該輸入窗口中,可以對當(dāng)前的點(diǎn)進(jìn)行數(shù)據(jù)的輸入、檢查、保存。它要完成的功能包括:a)參數(shù)和窗口輸入的對應(yīng):virtualvoidInitEditItem() = 0;在窗口輸入時,可以把窗口的輸入和參數(shù)的對應(yīng)起來,如在窗口中有一個輸入框可以把其和參數(shù)點(diǎn)名連接起來,這樣系統(tǒng)在引導(dǎo)數(shù)據(jù)時,就可以自

4、動的把當(dāng)前點(diǎn)的點(diǎn)名自動更新到該輸入框中,而在保存數(shù)據(jù)時又可以自動把該輸入框中的數(shù)據(jù)自動保存到其參數(shù)中。voidCAioBaseDlg:InitEditItem()AddEditItem(PARA_INDEX_NAME,IDC_NAME);AddEditItem(PARA_INDEX_UNIT,IDC_UNIT);b)從當(dāng)前點(diǎn)讀入數(shù)據(jù):virtual voidGetData();把當(dāng)前點(diǎn)數(shù)據(jù)從內(nèi)存中讀入,顯示到對話框上,在InitEditItem對應(yīng)的參數(shù)已經(jīng)自動讀入,但是如果還需要其他的處理,需要自己處理。c)根據(jù)當(dāng)前參數(shù)設(shè)置狀態(tài):virtualvoidGetState();在讀入?yún)?shù)后,可以

5、設(shè)置一些控制的狀態(tài),如不進(jìn)行量程變換可以使裸數(shù)據(jù)上下限不能輸入等。d)檢查當(dāng)前輸入是否合法:virtualboolCheckValue();當(dāng)切換點(diǎn)時或保存數(shù)據(jù)之前對當(dāng)前輸入的參數(shù)進(jìn)行合法性檢查。系統(tǒng)已經(jīng)完成的檢查包括:點(diǎn)名,量程上下限,限值報警參數(shù)范圍。如果參數(shù)合法,則返回true,否則返回false。e)保存當(dāng)前輸入:virtual boolSaveData();保存輸入后調(diào)用,在InitEditItem對應(yīng)的參數(shù)已經(jīng)自動保存。此時保存,只是往內(nèi)存中保存,并不是往文件中保存。如果成功,則返回true,否則返回false。 提供的方法:a)增加一個參數(shù)關(guān)聯(lián):boolAddEditItem(D

6、WORD dwIndex,UINT nIDD,Para_Edit_Type nType = Para_Edit,DWORD dwData = 0);把當(dāng)前窗口中的控制和參數(shù)關(guān)聯(lián)。參數(shù):dwIndex,雙字,參數(shù)序號。nIDD,窗口中控制的資源號。nType,表示控制的類型,目前支持三種格式文本編輯框,下拉框,復(fù)選框。dwData,目前僅在控制類型為下拉框時使用,表示下拉框中的值與選擇的值有偏差。如在報警優(yōu)先級中,低級報警在下拉框中值為0,但是保存時為1,此時可以設(shè)定dwData = 1。b)通知系統(tǒng)當(dāng)前點(diǎn)參數(shù)改變:voidSetModified();通知系統(tǒng)當(dāng)前點(diǎn)已經(jīng)有參數(shù)改變,如果是在Ini

7、tEditItem對應(yīng)的參數(shù)改變時系統(tǒng)會自動判斷,但是如果是不在其中的其他參數(shù),如自己通過文件管理的其他參數(shù)如做改動則需要調(diào)用該函數(shù)。c)設(shè)置當(dāng)前點(diǎn)的安全屬性:voidSetTagSecu();管理當(dāng)前點(diǎn)的安全屬性。提供的成員變量:a)當(dāng)前正在處理點(diǎn):CTag *m_pTag;當(dāng)前窗口正在編輯的點(diǎn),有時該指針可能為空。調(diào)用時機(jī):屬性頁初始化時調(diào)用InitEditItem(),得到參數(shù)和屬性頁輸入控制之間的聯(lián)系。它通過調(diào)用AddEditItem使系統(tǒng)自動能處理參數(shù)的輸入和參數(shù)更新。組態(tài)時點(diǎn)表要切換一個點(diǎn)時,首先調(diào)用CheckValue(),檢查當(dāng)前屬性頁的參數(shù)是否合法,如果合法或用戶忽略不合法參

8、數(shù)則保存參數(shù)數(shù)據(jù),通過AddEditItem關(guān)聯(lián)的參數(shù)自動保存,保存完關(guān)聯(lián)參數(shù)后,調(diào)用SaveData()。然后切換到用戶切換的點(diǎn),首先把關(guān)聯(lián)參數(shù)值更新到屬性頁中,然后調(diào)用GetData,最后調(diào)用GetState(),可以在這里根據(jù)當(dāng)前點(diǎn)參數(shù)的值設(shè)置屬性頁的狀態(tài),如一些按鈕、輸入編輯框變灰等。注意:屬性頁讀入和保存數(shù)據(jù)都是指從內(nèi)存中更新到屬性頁界面或保存到內(nèi)存中并沒有保存到文件中。保存到磁盤的操作應(yīng)該在點(diǎn)一級實(shí)現(xiàn)。2)點(diǎn)的管理:如果系統(tǒng)的點(diǎn)不能完全滿足對點(diǎn)管理的要求,如參數(shù)合法性檢查,數(shù)據(jù)的額外存貯等。例如組態(tài)的參數(shù)中不能滿足該點(diǎn)類型的管理,如果系統(tǒng)中可能需要存貯一段腳本,但是參數(shù)最多只能輸入

9、64個字符,而腳本長度可能大于64。這時就需要自己來處理腳本的輸入、存貯等。從系統(tǒng)提供的類庫中的CTag類派生。如果是無須特殊處理,則可以使用系統(tǒng)缺省的實(shí)現(xiàn)。要完成的功能:a)引導(dǎo)數(shù)據(jù):virtualvoidLoadData();從文件中讀入當(dāng)前點(diǎn)的參數(shù)。點(diǎn)類型中定義的參數(shù)系統(tǒng)已經(jīng)自動讀入,此時可以引導(dǎo)用戶要引導(dǎo)的其他參數(shù)。b)檢查點(diǎn)參數(shù)的合法性:virtualboolCheckTagValue(DWORD & dwIndex,bool bTip = true);檢查當(dāng)前點(diǎn)的參數(shù)是否合法。基本參數(shù)的合法性檢查能系統(tǒng)能自動實(shí)現(xiàn),但是其他參數(shù)的合法性則需要用戶實(shí)現(xiàn)。它與屬性頁中的參數(shù)檢查不同的是,

10、它可以對點(diǎn)的所有參數(shù)進(jìn)行檢查,而屬性頁中往往只檢查屬性頁中關(guān)心的數(shù)據(jù)。如在報警屬性頁中,限值報警的限值不能超過量程上下限,而量程上下限往往不在報警參數(shù)頁中,這時對其檢查就需要在點(diǎn)一級檢查。參數(shù):dwIndex:不合法的參數(shù)序號。bTip:是否能以對話框形式提示出錯信息。如果是true則可以顯示對話框,否則不能提示。如果參數(shù)正確,則返回true,否則返回false。c)保存數(shù)據(jù):virtualboolSaveData();保存數(shù)據(jù)時調(diào)用。點(diǎn)類型中定義的參數(shù)系統(tǒng)已經(jīng)自動保存。如果成功則返回true,否則返回false。d)刪除點(diǎn):virtual voidDeleteTag();刪除點(diǎn)時調(diào)用。提供的

11、方法:a)得到點(diǎn)名:CStringGetName();返回點(diǎn)名。提供的屬性:m_nArea:點(diǎn)的區(qū)域,整型,0到31。m_nUnit:點(diǎn)所在的單元,整型。m_nType:點(diǎn)的類型,整型。調(diào)用時機(jī):系統(tǒng)加載時調(diào)用LoadData()引導(dǎo)點(diǎn)參數(shù)到內(nèi)存中。用戶存盤之前先調(diào)用CheckTagValue檢查參數(shù)是否合法,如果合法或用戶忽略非法數(shù)據(jù)則調(diào)用SaveData(),當(dāng)刪除一個點(diǎn)時調(diào)用DeleteTag()。3)DLL中實(shí)現(xiàn)的函數(shù):a)創(chuàng)建一個新點(diǎn):CTag * CreateNewTag(int nType)參數(shù):nType:整型,點(diǎn)的類型。返回值:如果是派生了自己的CTag類,則生成一個對象,否

12、則返回NULL,由系統(tǒng)生成缺省的對象。b)得到屬性頁數(shù)量:intGetPageCount(int nType)參數(shù):nType:整型,點(diǎn)的類型。返回值:整型,屬性頁的數(shù)量。c)得到某一屬性頁:CParaPage *GetPage(int nType,int nOrder,CWnd * pParent,CString & csTitle)參數(shù):nType:整型,表示點(diǎn)的類型。nOrder:整型,表示屬性頁的序號,從0開始計數(shù)。pParent:CWnd *,創(chuàng)建的屬性頁的父窗口指針。csTitle:CString,引用類型參數(shù),表示該窗口的標(biāo)題。返回值:屬性頁的指針。疑難解答:1)如何在使用編譯器

13、?對于某些點(diǎn)類型需要記錄一些表達(dá)式,此時需要調(diào)用系統(tǒng)的編譯系統(tǒng)??梢酝ㄟ^以下方式調(diào)用:a)先包含頭文件:#include GlbFunc0.hb)在點(diǎn)中創(chuàng)建一個動作管理類對象并初始化:CScriptBox* m_pScriptBox;m_pScriptBox = NULL;CGlobalFuncBase* pInter = TypeObj_GetInterFunc();if(pInter)m_pScriptBox = pInter-CreateScriptBox(true);elsem_pScriptBox = NULL;c)參數(shù)檢查時檢查編譯:if(!pTag-m_pScriptBox-Compile(Triger, cs)return false;d)保存腳本:if(m_pScriptBox-GetCount() 0)CString csFile = pInter-GetAppPath() + DB + GetName()+.Act;CFile file;if(file.Open(LPCSTR)csFile, CFile:modeCreate|CFile:modeReadWrite)CArchive ar(&file, CArchive:store);m_pScriptBox-Serializ

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論