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

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 智能斷路器的CAN 總線網(wǎng)絡(luò)節(jié)點設(shè)計

          智能斷路器的CAN 總線網(wǎng)絡(luò)節(jié)點設(shè)計

          作者: 時間:2010-12-30 來源:網(wǎng)絡(luò) 收藏


          2. 2 軟件部分

          上位機的軟件可以通過調(diào)用 卡的動態(tài)連接庫(. DLL),利用自定義 應(yīng)用層協(xié)議實現(xiàn)與 應(yīng)用系統(tǒng)的連接,USBCAN-2A CAN 接口卡支持Win9x /Me、Win2000 /XP 等操作系統(tǒng),也支持Linux2. 4、Linux2. 6 版版本的操作系統(tǒng)。USBCAN-2A 提供了統(tǒng)一的應(yīng)用程序編程接口,便于用戶進行應(yīng)用程序開發(fā)。支持VC、VB、Delphi 和C + + Builder 等開發(fā)。本采用MCGS 組態(tài)軟件實現(xiàn)對CAN 卡的操作控制。一般來說,MCGS 訪問接口卡都是通過MCGS 系統(tǒng)中已有的相應(yīng)設(shè)備構(gòu)件來進行的,這些設(shè)備構(gòu)件主要由MCGS 開發(fā)商預(yù)先開發(fā),但也可由最終用戶根據(jù)MCGS 技術(shù)規(guī)范自行開發(fā)。對于USB-2A 型CAN 接口卡,MCGS 系統(tǒng)沒有提供可以直接調(diào)用的相應(yīng)設(shè)備構(gòu)件。要成功地使MCGS 能訪問USB-2A 型接口卡,通常的辦法是由開發(fā)商或用戶自己開發(fā)USB-2A 型的設(shè)備構(gòu)件,但這將花費大量的時間,且有一定的難度。為解決這一問題,我們采用了OPC 服務(wù)器技術(shù)。

          MCGS 支持OPC 協(xié)議,它可以用作OPC 客戶端與OPC 服務(wù)器接*換數(shù)據(jù);同時USBCAN-2A 型CAN 接口卡也可以被OPC 服務(wù)器所支持,用作OPC 服務(wù)器的數(shù)據(jù)來源和數(shù)據(jù)接收體,由OPC 服務(wù)器自動與其交換數(shù)據(jù)。能采用的OPC服務(wù)器有很多種,周立功公司開發(fā)的ZOPC_Server就是一款很好OPC 服務(wù)器軟件,它支持ZLGCAN 系列接口卡和MCGS 組態(tài)軟件。MCGS、ZOPC_Server 與USBCAN-2A 型有機協(xié)調(diào)工作,就完全能很好地解決MCGS 與USBCAN-2A 之間的接口問題,使用戶程序能有效地訪問CAN 。它們之間的關(guān)系示意圖如圖4 所示。

          MCGS、ZOPC - Server 和USB-2A 關(guān)系示意圖

          圖4 MCGS、ZOPC - Server 和USB-2A 關(guān)系示意圖.

          本設(shè)計通過ZOPC_Server 服務(wù)器,與CAN 進行數(shù)據(jù)通信。ZOPC_Server 是一個OPC 服務(wù)器軟件,只要在一臺PC 機上插上USBCAN-2A 接口卡,再運行本服務(wù)器軟件,并在服務(wù)器軟件中進行一些相關(guān)配置以后,就可以使用任何一種支持OPC 協(xié)議的客戶端軟件(比如組態(tài)軟件:組態(tài)王、MCGS 和INTOUCH 等)來連接到該服務(wù)器。

          在服務(wù)器中,對于每個CAN 設(shè)備的每路CAN,都固定有2 個通道,分別為In_CANData 和Out_CANData。對于輸入通道In_CANData,服務(wù)器把從CAN 接收到的數(shù)據(jù)存放到此數(shù)據(jù)項中,客戶端只能讀取它的數(shù)據(jù);而對于輸出通道Out_CANData,客戶端把要發(fā)送的數(shù)據(jù)寫入到此數(shù)據(jù)項中,服務(wù)器再把此數(shù)據(jù)項中的數(shù)據(jù)提取出來發(fā)送到CAN 網(wǎng)絡(luò),客戶端不能讀取此數(shù)據(jù)項的數(shù)據(jù)。它們的存儲格式都為字符串形式。2 個數(shù)據(jù)項In_CANData 和Out _CANData,其長度都為30 Byte,前14 Byte 為幀信息,后16 Byte 為CAN數(shù)據(jù)。

          本設(shè)計使用的監(jiān)控軟件為MCGS 組態(tài)軟件,通過對組態(tài)軟件的簡單設(shè)置,將ZOPC_Server 添加到MCGS 組態(tài)軟件中去,就可以在組態(tài)軟件中使用服務(wù)器中的數(shù)據(jù)了。ZOPC_Server 的輸入通道In_CANData 接收到的CAN 數(shù)據(jù)是字符串形式的,而且接收的數(shù)據(jù)根據(jù)通信協(xié)議最后16 Byte 的數(shù)據(jù)為采集的電網(wǎng)信號大小,通過MCGS 組態(tài)軟件中的系統(tǒng)函數(shù),編寫腳本函數(shù),首先將數(shù)據(jù)進行解包處理,截取后16 Byte 的數(shù)據(jù),然后將這16 Byte的十六進制字符串形式的數(shù)據(jù),轉(zhuǎn)換為十進制數(shù)據(jù),并將這個數(shù)據(jù)放到一個定義的變量里。

          對CAN 網(wǎng)絡(luò)發(fā)送數(shù)據(jù)時,用戶程序需把具體的幀信息和要發(fā)送的數(shù)據(jù)按Out_CANData 的格式組合成一個字符串,用戶程序?qū)τ诮邮盏降臄?shù)據(jù)(In_CANData 格式)也需進行拆分,識別出幀信息和接收到的有用數(shù)據(jù)供程序使用。

          2. 3 組態(tài)界面的設(shè)計

          組態(tài)界面的設(shè)計主要包括了主界面的設(shè)計、數(shù)據(jù)顯示界面的設(shè)計等,其中主界面包括實時的電網(wǎng)信號值的顯示,報警信號的顯示界面,報警上、下限修改輸入窗口和下位機電網(wǎng)參數(shù)修改窗口。

          2. 3. 1 主開機界面設(shè)計

          實時電網(wǎng)信號值顯示畫面框如圖5 所示。通過該窗口,操作人員可以很容易看到電網(wǎng)信號的當前數(shù)據(jù)值。

          實時電網(wǎng)信號值顯示畫面框
          圖5 實時電網(wǎng)信號值顯示畫面框.

          本設(shè)計的智能脫扣器可以適用于不同的中,而不同的應(yīng)用場合需要的脫扣參數(shù)是不同的,這就要求能夠隨時修改下位機的脫口參數(shù),來實現(xiàn)對下位機的調(diào)控,圖6 為修改脫扣器脫扣參數(shù)窗口。

          主界面中,通過設(shè)計報警信號顯示畫面,可以觀察在何時出現(xiàn)怎樣的故障報警,隨時供操作人員修改高、低報警值限。當電壓、電流信號出現(xiàn)故障時,指示燈能給出故障指示。在對數(shù)據(jù)對象進行報警定義時,已經(jīng)選擇報警產(chǎn)生時“自動保存產(chǎn)生的報警信息”,可以使用“報警信息瀏覽”構(gòu)件,瀏覽數(shù)據(jù)庫中保存下來的報警信息。

          修改脫扣器脫扣參數(shù)窗口
          圖6 修改脫扣器脫扣參數(shù)窗口.

          斷路器相關(guān)文章:斷路器原理


          高壓真空斷路器相關(guān)文章:高壓真空斷路器原理
          漏電斷路器相關(guān)文章:漏電斷路器原理


          評論


          相關(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); })();