4 bcb與(yu) 組態王軟件數據交換的實現
“組態王”之間通訊的實現主要是通過“組態王”提供的動態數據交換 (dde)來完成的。dde是windows平台上的一個(ge) 完整的通信協議,它使應用程序能彼此交換數據和發送指令。dde過程可以比喻為(wei) 兩(liang) 個(ge) 人的對話。提問的一方稱為(wei) “顧客”(client),回答的一方稱為(wei) “服務器”server)。一個(ge) 應用程序可以同時是“顧客”、“服務器”:當它向其他程序中請求數據和時,它充當的是“顧客”若有其他程序需要它提供數據,它又成了“服務器”這裏關(guan) 鍵要實現的是。“組態王”作為(wei) 顧客程序從(cong) bcb得到數據。使bcb成為(wei) “服務器”很簡單,隻需在“組態王”中設置服務器程序的三個(ge) 標識名(應用程序名、主題名、項目名),並把vb應用程序中提供數據的窗體(ti) 的linkmode屬性設置為(wei) 1,不必在vb中增加任何程序。值得注意的是,將vb窗口的屬性設定成和在組態王中定義(yi) dde設備時的“話題名”一樣;在組態王定義(yi) 要顯示的變量時,選擇“項目名”為(wei) 要顯示bcb的textbox控件名。這樣組態王界麵上可以顯示出指定的bcb可執行文件中指定的textbox控件的值。
5 一種通過用bcb做控件實現組態王監控變頻器的方法
利用bcb中能生成activex控件的項目編寫(xie) 器new-》other-》activex-》activeform,編寫(xie) 相關(guan) 程序實現控製變頻器的功能,並通過bcb自帶的view工具欄中的typelibrary工具來編譯生成控件,此控件經打包可生成在組態王中認始的ocx控件,此控件同樣可設置是否具有可讀可寫(xie) 的屬性,此屬性是在typeliabrary工具中設置編譯後得到的,需要幾個(ge) 參數,其各是什麽(me) 屬性,完全可以自由添加,非常簡單方便。並可通過bcb相關(guan) 程序,設置相關(guan) 屬性對內(nei) 對外的具體(ti) 連接功能。實際上,此過程實現的就是變頻器與(yu) bcb控件的通信,控件與(yu) 組態王的通信,此方式彌補了組態王中不提供的相關(guan) 變頻器等的驅動程序,而無法利用組態王的缺陷,可通過bcb方便實現相關(guan) 功能的驅動,而又間接實現了組態王控製變頻器等的驅動。實際bcb與(yu) 變頻器等的通信也非常簡便,隻要確定了通信協議,就可利用mscomm控件,方便的編寫(xie) 通信程序,實現變頻器等的控製。用bcb製作通用控件嵌入組態王從(cong) 而實現組態王與(yu) 變頻器的通訊,其運行畫麵如圖3所示。
6 結束語
當用bcb作為(wei) 後台時,當係統開始運行前,要求首先運行c++builder的可執行文件作為(wei) 後台運行程序,然後才能運行組態王係統。當變頻器發送數據的時候,由bcb接受到此數據,再通過組態王提供的dde功能,將該數據顯示到組態王界麵上。這樣就把從(cong) 變頻器采集到的外部信號通過bcb間接動態的顯示在組態王界麵上。該方法實現了組態王對變頻器的實時監控。經過測試可知,係統的實時響應速度能達到ms級,並且這種實現係統實時監控的方法可移植性強,對於(yu) 監控其他類型可編程控製器plc或單片機也適用。
當用bcb製作控件時,隻要用bcb製作完相應功能的控件就可實現脫離bcb環境,作為(wei) 普通的ocx控件應用於(yu) 組態王,非常簡便。此方法彌補了組態王沒有相關(guan) 驅動程序,而無法實現應用組態王的缺陷,值得推廣應用。在兗(yan) 礦鮑店磚窯監控係統中,我們(men) 利用了bcb作為(wei) 後台間接實現組態王對變頻器的控製。其窯爐一鼓風機變頻控製監控畫麵如圖4所示。經現場調試運行後,所得反饋效果良好。#p#分頁標題#e#
轉載請注明出處。