《電子技術應用》
您所在的位置:首頁 > 其他 > 解決方案 > 如何實現(xiàn)DeviceNet主站設備

如何實現(xiàn)DeviceNet主站設備

——基于DeviceNet規(guī)范的PCI-5010-D
2011-07-14
作者:致遠電子
來源:來源:電子技術應用2011年第5期
關鍵詞: DeviceNet 主站

1 引言
    從傳統(tǒng)的分散型數(shù)字控制系統(tǒng)(DCS)到現(xiàn)在的現(xiàn)場總線控制系統(tǒng)(FCS),標志著工業(yè)通信及控制技術的飛速發(fā)展。在工業(yè)自動化領域里,現(xiàn)場總線控制系統(tǒng)作為當今最為主流的工業(yè)通信技術,其中現(xiàn)場總線DeviceNet又占據(jù)了很大的市場份額。DeviceNet是20世紀90年代發(fā)展起來的一種基于CAN總線技術的全球工業(yè)標準的開放型通信網絡。由于采用了先進的通信概念和技術,以低成本、高效率、高性能、高可靠性等優(yōu)點,廣泛應用于工廠自動化系統(tǒng)。
    在整個DeviceNet網絡中主站扮演著最重要的角色,它負責整個網絡的通信和管理,功能強大和復雜,但是DeviceNet 2.0版本的規(guī)范中又未對主站進行詳細描述,使其設計起來更加困難。上期文章介紹了如何快速實現(xiàn)DeviceNet從站,本期將介紹如何基于PCI-5010-D快速實現(xiàn)DeviceNet主站設備。
2 DeviceNet典型網絡拓撲結構
    DeviceNet網絡大都采用主干-分支網絡拓撲結構,以主/從連接方式通信。實際應用中一個網絡通常有一個主站設備和最多63個從站設備,從站設備需要依靠主站的管理來完成數(shù)據(jù)交換。圖1所示為PCI-5010-D在DeviceNet網絡中的典型應用形式。

3 PCI-5010-D DeviceNet主站卡簡介
    PCI-5010-D是廣州致遠電子有限公司研發(fā)的新一代PCI接口DeviceNet主站卡,它可以使計算機快速連接到DeviceNet網絡,不但可以在最短時間內應用DeviceNet從站設備,實現(xiàn)可視化、參數(shù)化的網絡分析及控制,而且更能減少開發(fā)DeviceNet系統(tǒng)的時間,組建穩(wěn)定、健碩的DeviceNet網絡。
    它提供多種操作系統(tǒng)的設備驅動、工具軟件等,能真正地滿足客戶的各種應用需求,為工業(yè)通信DeviceNet網絡提供了可靠性、高效率的解決方案。在計算機中的硬件與軟件結構如圖2所示。

    PCI-5010-D具有如下特性:
    · 支持ODVA一致性測試軟件(A21 DeviceNet Conform);
    · 帶有微處理器的DeviceNet主站卡,完全遵循DeviceNet 2.0協(xié)議規(guī)范;
    · 支持最多63個從站節(jié)點;
    · 支持自動檢測失效節(jié)點位、空閑節(jié)點位、錯誤節(jié)點位映射;
    · 支持標準波特率:125 kb/s、 250 kb/s、500 kb/s;
    · 支持用戶自設定的MAC ID,范圍:0~63;
    · 支持無需斷開網絡,在線移除/安裝從站設備;
    · 自供電DeviceNet設備兼容網絡的連接;
    · PCI板卡所有元器件均符合工業(yè)級要求。
4 PCI-5010-D驅動安裝
    PCI-5010-D通信卡沒有任何開關和跳線用于分配中斷和I/O地址,這些都是由BIOS自動分配。因此在安裝驅動程序之前板卡必須事先安裝到PCI槽上,以下是安裝步驟。
    通常在新安裝PCI板卡后,啟動計算機之后會彈出“找到新硬件”的界面,這時需要手動地把PCI-5010-D的驅動所在的文件夾添加到搜索的位置,這樣直接點擊下一步,系統(tǒng)會自動把驅動程序安裝完成。
5 基于PCI-5010-D的PC機端軟件設計
    圖3所示為PCI-5010-D的操作流程,其概括性地描述了PCI-5010-D的所有功能及相應的API函數(shù)調用結構。以下詳細介紹常用的API函數(shù)功能及使用。

    (1)初始化PCI-5010-D
    打開PCI-5010-D時,必須按照圖3所示的順序來操作,即需要經歷打開、初始化參數(shù)、添加節(jié)點、保存配置、主站上線、掃描等步驟。在關閉PCI-5010-D時,其操作與初始化的流程相反,啟動PCI-5010-D操作代碼如下:
void OnStartDeviceNet(void){
    ......
    ZDNMA _Open(1,0,0);    //打開PCI-5010-D
    ZDNMA_Init(1, 0, 0, (ZDNMA_INITCFG *)&Config, 0);
//初始化協(xié)議及配置主站
    ZDNMA_AddSlave(0, (ZDNMA_SLAVECONFIG *)
&SlaveConfig);//添加節(jié)點
    ZDNMA_SaveCfg(0);//保存當前通道的配置
    ZDNMA_Online(0);    //主站上線
    ZDNMA_StartScan(0); }//開始掃描從站節(jié)點
void CloseDevice(void){
    ......
    ZDNMA_StopScan(0);//停止掃描從站節(jié)點
    ZDNMA_Offline(0);//主站下線
    ZDNMA_Uninit(0);//關閉通道
    ZDNMA_Close(1,0);}//關閉設備
    (2)接收發(fā)送從站節(jié)點I/O數(shù)據(jù)
    DeviceNet主站設備能接收和發(fā)送網絡中所有從站節(jié)點不同連接的I/O數(shù)據(jù),只需要簡單地調用讀寫從站函數(shù)即可,其實現(xiàn)代碼可參考如下程序。
void IODataTranstmit(void){
    .....
    ZDNMA_ReadSlaveIO(0, NodeID, POLL, pBuffer, datalen, 1000); //讀NodeID的輪詢數(shù)據(jù),長度為datalen,超時1 s
    ZDNMA_WriteSlaveIO(0, NodeID, POLL, pBuffer, datalen, 1000);//寫NodeID的輪詢數(shù)據(jù),長度為datalen,超時1 s
}
    (3)顯式報文發(fā)送和接收
    作為一個DeviceNet主站設備應該具備UCMM服務器、客服端的功能,這樣就可以通過顯式報文來訪問網絡中各個節(jié)點的任意對象數(shù)據(jù),其中包括下載和上傳數(shù)據(jù),其操作可參考如下代碼。
void SDOTranstmit(void){
    .....
    ZDNMA_EMRequest(0, dwSlaveID, dwService,  dwClassID, dwInstanceID, pServiceData, dwSize, pReceiveData, dwRecSize, dwWaitTime);//填寫相應的參數(shù),讀取或修改網絡上對象屬性
}
    (4)其他功能
    PCI-5010-D除具有如上所述的基本功能之外,還具有其他一些DeviceNet相關的功能特性,例如獲取指定從站的當前工作狀態(tài)、獲取設備信息功能、支持ODVA一致性測試軟件等等(具體操作可參考API函數(shù)庫手冊)。這些功能都為開發(fā)一個完整的DeviceNet主站設備提供了必備條件。
6 結語
    經過以上步驟,通過調用PCI-5010-D的API函數(shù)庫實現(xiàn)一個特定功能的DeviceNet主站設備。PCI-5010-D的DeviceNet協(xié)議棧經過嚴格的測試,能兼容其他的DeviceNet設備,同時還可利用測試軟件對DeviceNet網絡進行配置并檢測運行狀態(tài)。
    廣州致遠電子有限公司于2002年8月加入ODVA協(xié)會,并提供各種接口的DeviceNet接口卡、DeviceNet終端設備(包括數(shù)據(jù)采集、電機控制等)、DeviceNet分析儀、網關及網橋、OPC服務器以及基于DeviceNet協(xié)議的整套組網方案及應用開發(fā)。

本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯(lián)系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。