<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 用C++ Builder實現(xiàn)組態(tài)王實時監(jiān)控艾默生變頻器

          用C++ Builder實現(xiàn)組態(tài)王實時監(jiān)控艾默生變頻器

          作者: 時間:2012-02-24 來源:網(wǎng)絡(luò) 收藏

          1 引言

          本文引用地址:http://www.ex-cimer.com/article/149569.htm

            工業(yè)自動化通用軟件——王軟件系統(tǒng)與最終工程人員使用的具體的或現(xiàn)場部件無關(guān)。對于不同的硬件設(shè)施,只需為王配置相應(yīng)的通訊驅(qū)動程序即可。組態(tài)王支持的硬件設(shè)備包括:可編程控制器plc、智能模塊、板卡、智能儀表、等。工程人員可以把每一臺下位機看作一種設(shè)備,而不必關(guān)心具體的通訊協(xié)議,使用時只需要在組態(tài)王的設(shè)備庫中選擇設(shè)備的類型完成安裝即可,使驅(qū)動程序的配置更加方便。

            窯爐系統(tǒng)是為滿足生產(chǎn)需要,減少能耗,提高效率而設(shè)計的,它的必須要借助一定的軟件及硬件條件,通過控制風(fēng)機從而控制窯內(nèi)多個點的溫度及通風(fēng)量,保質(zhì)保量的完成出磚要求。因此,對變頻器的就顯得十分重要。

            窯爐系統(tǒng)以組態(tài)王畫面為主要運行畫面,首先在組態(tài)王界面上對被監(jiān)控系統(tǒng)的參數(shù)。進行設(shè)置,然后起動,在組態(tài)王的界面上可以動態(tài)。顯示下位機的運行狀態(tài)、測量參數(shù)、作業(yè)位置以及完成對多個變頻器具體性能指標(biāo)的測試等。由于組態(tài)王只提供這類變頻器的驅(qū)動程序,沒有提供其通訊協(xié)議,因此在功能并不很強大的組態(tài)王內(nèi)部直接開發(fā)變頻器的通訊協(xié)議是有較大難度的。

          2 c++ builder作為后臺間接組態(tài)王與變頻器的通訊

            本文采取的方法是:利用c++ builder 提供的串行通訊功能,與變頻器的通訊,再利用bcb的dde功能完成組態(tài)王與c++builder之間的動態(tài)數(shù)據(jù)交換。這樣就把從變頻器采集到的外部信號通過c++builder間接動態(tài)地顯示在組態(tài)王界面上。其系統(tǒng)的結(jié)構(gòu)圖如圖1所示。

          3 c++ builder與變頻器之間串行通信的實現(xiàn)

            串行通訊 (serial communication)指的是兩個欲交換信息者的信息流動,其信息流動的方式是一個位接一個位,有順序的由一端向另一端流動。帶異步通訊適配器的pc機與變頻器只有滿足如下條件,才能互聯(lián)通信:帶有異步通訊接口的變頻器與帶異步通訊適配器的pc機互聯(lián);雙方采用的總線標(biāo)準(zhǔn)一致,否則要通過“總線標(biāo)準(zhǔn)變換單元”變換之后才能互聯(lián);雙方的初始化、波特率、數(shù)據(jù)位數(shù)、停止位數(shù)、奇偶校驗都相同;要對變頻器的通訊協(xié)議分析清楚,嚴格的按照協(xié)議的規(guī)定及幀格式編寫pc機的通訊程序。變頻器中配有通訊機制,一般不需要用戶編程。pc機與變頻器不能直接連接,要通過電纜進行rs232、rs485的變換。

            3.1 c++ builder與變頻器的通訊協(xié)議

            協(xié)議是一系列的定義了計算機應(yīng)該怎樣管理通信的規(guī)則。協(xié)議可以規(guī)定數(shù)據(jù)應(yīng)該以什么格式進行傳遞和每個節(jié)點在什么時間以及以什么方式進行傳遞。除了數(shù)據(jù)通道以外,一個連接可以使用其它線線路來表示什么時候一個發(fā)送者有數(shù)據(jù)要發(fā)送,什么時候一個接收者能夠接收新數(shù)據(jù)或者其它控制或狀態(tài)信息。

            3.2變頻器的通訊協(xié)議

            變頻器通訊協(xié)議為modbus協(xié)議,除了支持常用的寄存器的讀寫外,還擴充了部分命令對變頻器功能碼進行管理。modbus協(xié)議同時支持rtu模式和ascii模式,本文采用rtu模式。對應(yīng)的幀格式如圖2所示。

            3.3 c++ builder中通訊協(xié)議的實現(xiàn)

            在c++builder中mscomm控件可以采用輪詢或事件驅(qū)動的方法從端口獲取數(shù)據(jù)。這里采用的是事件驅(qū)動的方法。就是在一個事件發(fā)生的時候,讓程序自動的跳到一段程序。該控件的oncomm事件執(zhí)行這個功能。oncomm程序負責(zé)對諸如在串口的硬件中斷或者一個軟件緩存的計數(shù)器到達了一個觸發(fā)值這樣的事件時做出反應(yīng)。在bcb的classwizard中為新創(chuàng)建的通信控件定義成員對象,通過該對象可以對串口屬性進行設(shè)置。通過設(shè)定其settings、commport、inputmode、handshaking、portopen屬性來實現(xiàn)設(shè)定bcb的通訊協(xié)議。這里設(shè)定settings屬性為:9600,n,8,1,即該協(xié)議的波特率為9600,無奇偶校驗,每個字符的數(shù)據(jù)位為8位。

          4 bcb與組態(tài)王軟件數(shù)據(jù)交換的實現(xiàn)

            “組態(tài)王”之間通訊的實現(xiàn)主要是通過“組態(tài)王”提供的動態(tài)數(shù)據(jù)交換 (dde)來完成的。dde是windows平臺上的一個完整的通信協(xié)議,它使應(yīng)用程序能彼此交換數(shù)據(jù)和發(fā)送指令。dde過程可以比喻為兩個人的對話。提問的一方稱為“顧客”(client),回答的一方稱為“服務(wù)器”server)。一個應(yīng)用程序可以同時是“顧客”、“服務(wù)器”:當(dāng)它向其他程序中請求數(shù)據(jù)和時,它充當(dāng)?shù)氖?ldquo;顧客”若有其他程序需要它提供數(shù)據(jù),它又成了“服務(wù)器”這里關(guān)鍵要實現(xiàn)的是。“組態(tài)王”作為顧客程序從bcb得到數(shù)據(jù)。使bcb成為“服務(wù)器”很簡單,只需在“組態(tài)王”中設(shè)置服務(wù)器程序的三個標(biāo)識名(應(yīng)用程序名、主題名、項目名),并把vb應(yīng)用程序中提供數(shù)據(jù)的窗體的linkmode屬性設(shè)置為1,不必在vb中增加任何程序。值得注意的是,將vb窗口的屬性設(shè)定成和在組態(tài)王中定義dde設(shè)備時的“話題名”一樣;在組態(tài)王定義要顯示的變量時,選擇“項目名”為要顯示bcb的textbox控件名。這樣組態(tài)王界面上可以顯示出指定的bcb可執(zhí)行文件中指定的textbox控件的值。

          5 一種通過用bcb做控件實現(xiàn)組態(tài)王監(jiān)控變頻器的方法

            利用bcb中能生成activex控件的項目編寫器new-》other-》activex-》activeform,編寫相關(guān)程序?qū)崿F(xiàn)控制變頻器的功能,并通過bcb自帶的view工具欄中的typelibrary工具來編譯生成控件,此控件經(jīng)打包可生成在組態(tài)王中認始的ocx控件,此控件同樣可設(shè)置是否具有可讀可寫的屬性,此屬性是在typeliabrary工具中設(shè)置編譯后得到的,需要幾個參數(shù),其各是什么屬性,完全可以自由添加,非常簡單方便。并可通過bcb相關(guān)程序,設(shè)置相關(guān)屬性對內(nèi)對外的具體連接功能。實際上,此過程實現(xiàn)的就是變頻器與bcb控件的通信,控件與組態(tài)王的通信,此方式彌補了組態(tài)王中不提供的相關(guān)變頻器等的驅(qū)動程序,而無法利用組態(tài)王的缺陷,可通過bcb方便實現(xiàn)相關(guān)功能的驅(qū)動,而又間接實現(xiàn)了組態(tài)王控制變頻器等的驅(qū)動。實際bcb與變頻器等的通信也非常簡便,只要確定了通信協(xié)議,就可利用mscomm控件,方便的編寫通信程序,實現(xiàn)變頻器等的控制。用bcb制作通用控件嵌入組態(tài)王從而實現(xiàn)組態(tài)王與變頻器的通訊,其運行畫面如圖3所示。

          6 結(jié)束語

            當(dāng)用bcb作為后臺時,當(dāng)系統(tǒng)開始運行前,要求首先運行c++builder的可執(zhí)行文件作為后臺運行程序,然后才能運行組態(tài)王系統(tǒng)。當(dāng)變頻器發(fā)送數(shù)據(jù)的時候,由bcb接受到此數(shù)據(jù),再通過組態(tài)王提供的dde功能,將該數(shù)據(jù)顯示到組態(tài)王界面上。這樣就把從變頻器采集到的外部信號通過bcb間接動態(tài)的顯示在組態(tài)王界面上。該方法實現(xiàn)了組態(tài)王對變頻器的監(jiān)控。經(jīng)過測試可知,系統(tǒng)的響應(yīng)速度能達到ms級,并且這種實現(xiàn)系統(tǒng)實時監(jiān)控的方法可移植性強,對于監(jiān)控其他類型可編程控制器plc或單片機也適用。

            當(dāng)用bcb制作控件時,只要用bcb制作完相應(yīng)功能的控件就可實現(xiàn)脫離bcb環(huán)境,作為普通的ocx控件應(yīng)用于組態(tài)王,非常簡便。此方法彌補了組態(tài)王沒有相關(guān)驅(qū)動程序,而無法實現(xiàn)應(yīng)用組態(tài)王的缺陷,值得推廣應(yīng)用。在兗礦鮑店磚窯監(jiān)控系統(tǒng)中,我們利用了bcb作為后臺間接實現(xiàn)組態(tài)王對變頻器的控制。其窯爐一鼓風(fēng)機變頻控制監(jiān)控畫面如圖4所示。經(jīng)現(xiàn)場調(diào)試運行后,所得反饋效果良好。

          c++相關(guān)文章:c++教程




          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();