新聞中心

EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > 基于虛擬儀器的CANopen協(xié)議監(jiān)控面板設(shè)計

基于虛擬儀器的CANopen協(xié)議監(jiān)控面板設(shè)計

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

摘要:針對工業(yè)現(xiàn)場分布式總線網(wǎng)絡(luò)的在線問題,提出將具有可視化編程環(huán)境的軟件與現(xiàn)場總線高層通信相結(jié)合,開發(fā)出具有智能化、高效化的同步實時界面。在分析標識符的基礎(chǔ)上,使用數(shù)據(jù)報文進行打包與解析,并使用VISA接口通過自行設(shè)計的RS 232-CAN轉(zhuǎn)換器完成數(shù)據(jù)收發(fā),最終完成面板的開發(fā),為現(xiàn)場總線與技術(shù)相融合的發(fā)展趨勢起到了一定推動作用。
關(guān)鍵詞:CANopen協(xié)議;虛擬儀器;現(xiàn)場總線;VISA接口

虛擬儀器是電子測量技術(shù)與計算機技術(shù)深層次結(jié)合的產(chǎn)物,通過軟、硬件的結(jié)合來實現(xiàn)傳統(tǒng)儀器的各種功能,大大突破了傳統(tǒng)儀器在數(shù)據(jù)處理、顯示、傳送、存儲等方面的限制,使用戶可以方便地對儀器進行維護、擴展和升級。用戶通過友好的圖形界面來操作虛擬儀器的面板就如同操作真實儀器一樣方便。CAN協(xié)議只定義了物理層和數(shù)據(jù)鏈路層,本身并不完整,有些復雜的應(yīng)用問題需要一個更高層次的協(xié)議——應(yīng)用層協(xié)議來實現(xiàn)。CANopen協(xié)議就是將CAN網(wǎng)絡(luò)中通信數(shù)據(jù)的組建和傳輸進行標準化,并給用戶很大的自由度,允許用戶隨時添加自己所需要的新功能。
本文將虛擬儀器技術(shù)應(yīng)用于CANopen協(xié)議開發(fā),有利于實現(xiàn)分布式工業(yè)現(xiàn)場的實時監(jiān)控、數(shù)據(jù)采集,改善現(xiàn)場總線網(wǎng)絡(luò)通信系統(tǒng)的運行效率,提高實時性和信息處理能力。

1 CANopen協(xié)議概述
CANopen協(xié)議是由CiA協(xié)會針對CAN協(xié)議的不完整性而定義出來的一個更高層次的協(xié)議——應(yīng)用層協(xié)議。不同CANopen設(shè)備間的通信都是通過交換通信對象完成的。
1.1 通信對象
通過CAN網(wǎng)絡(luò)傳輸?shù)腃ANopen通信對象可以通過服務(wù)和協(xié)議來描述。分類為:實時數(shù)據(jù)通過過程數(shù)據(jù)對象(PDO)協(xié)議傳輸;服務(wù)數(shù)據(jù)對象(SDO)協(xié)議用來對對象字典進行讀寫操作;特殊功能對象協(xié)議提供了特定應(yīng)用,網(wǎng)絡(luò)同步,時間戳和緊急報文傳輸;網(wǎng)絡(luò)管理(NMT)協(xié)議提供了網(wǎng)絡(luò)初始化,錯誤控制和設(shè)備狀態(tài)控制服務(wù);層設(shè)置服務(wù)(LSS)協(xié)議用來配置CAN總線通信參數(shù)和設(shè)備參數(shù)。
1.2 CANopen預定義連接集
為了減少簡單網(wǎng)絡(luò)的組態(tài)工作量,CANopen定義了強制性的缺省標識符(CAN-ID)分配表。這些標識符在預操作狀態(tài)下可用,通過動態(tài)分配還可修改他們。CANopen設(shè)備必須向它所支持的通信對象提供相應(yīng)的標識符。缺省ID分配表是基于11位的CAN-ID,包含一個4位的功能碼(Function Code)部分和一個7位的節(jié)點ID(Node-ID)部分。
Node-ID由系統(tǒng)集成商定義,范圍是1~127(0不允許使用)。預定義的連接集定義了4個接收PDO(Receive-PDO),4個發(fā)送PDO(Transmit-PDO),1個SDO(占用2個CAN-ID),1個緊急對象和1個節(jié)點錯誤控制ID。也支持不需確認的NMT-Module-Control服務(wù),SYNC和Time Stamp對象的廣播。標識符的默認值如表1,表2所示。

本文引用地址:http://2s4d.com/article/186011.htm

e.JPG



2 CANopen監(jiān)控面板工控現(xiàn)場應(yīng)用框架
采用虛擬儀器軟件LabVIEW進行CANopen協(xié)議監(jiān)控面板的開發(fā),完成CANopen數(shù)據(jù)的接收與發(fā)送,實現(xiàn)分布式工控現(xiàn)場總線網(wǎng)絡(luò)的數(shù)據(jù)監(jiān)測。LabVIEW是NI公司開發(fā)的虛擬儀器應(yīng)用程序編程環(huán)境,是一種圖形化編程語言,特別適合開發(fā)測控應(yīng)用軟件,其具有所有通用編程環(huán)境的標準,如數(shù)據(jù)結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和事件處理。其內(nèi)置各種專業(yè)工具軟件包可滿足工程應(yīng)用開發(fā)。應(yīng)用示意見圖1,通過RS 232-CAN協(xié)議轉(zhuǎn)換器實時監(jiān)測現(xiàn)場總線上各節(jié)點的數(shù)據(jù),完成控制任務(wù)。

a.JPG



3 RS 232-CAN協(xié)議轉(zhuǎn)換器
虛擬儀器LabVIEW軟件及PC機內(nèi)部沒有專門的CAN接口只有RS 232串行接口,因此使用單片機等微控制器設(shè)計RS 232-CAN轉(zhuǎn)換器,實現(xiàn)PC機接入現(xiàn)場總線網(wǎng)絡(luò),完成數(shù)據(jù)監(jiān)聽。在PC機上可用LabVIEW環(huán)境下的NI-VISA實現(xiàn)串口通信。圖2為RS 232-CAN協(xié)議轉(zhuǎn)換器硬件原理圖,選用內(nèi)嵌CAN總線控制器的Microchip公司PIC18F258單片機為核心處理芯片。

f.JPG


ADuM1100高速數(shù)字隔離器支持100 Mb/s數(shù)據(jù)傳輸速率并且可以采用3.0~5.5 V單電源供電,以一種新的更有效的傳輸數(shù)據(jù)的方法替代傳統(tǒng)的光耦合器,從而保護了高電壓和低電壓電氣環(huán)境之間的接口。MCP2551是一種可容錯的高速CAN收發(fā)器,可作為CAN協(xié)議控制器和系統(tǒng)物理總線的接口。MAX232用于完成RS 232與TLL/CMOS的電平轉(zhuǎn)換。RS 232接口用于連接PC機。當單片機內(nèi)部CAN總線控制器收到CAN總線上的信號后通過USART接口傳給PC機的RS 232接口,同樣PC機把數(shù)據(jù)通過RS 232接口發(fā)給單片機,再發(fā)送到CAN總線上。單片機負責實現(xiàn)通信協(xié)議的轉(zhuǎn)換,轉(zhuǎn)換RS 232串口通信數(shù)據(jù)與CAN通信數(shù)據(jù)。

4 虛擬儀器上位機監(jiān)控面板開發(fā)
LabVIEW程序開發(fā)主要包括三方面內(nèi)容:CANopen監(jiān)控面板主程序、數(shù)據(jù)發(fā)送模塊和數(shù)據(jù)接收模塊。其中,數(shù)據(jù)接收和發(fā)送模塊作為子VI供監(jiān)控面板主程序調(diào)用。
4.1 CANopen主控面板程序設(shè)計
主控面板的設(shè)計主要包括:CANopen報文的組建及打包發(fā)送,以及CANopen報文的接收顯示。
4.1.1 CANopen報文打包
根據(jù)CANopen協(xié)議標識符分配表及主從節(jié)點設(shè)置定義了各報文的ID號,如圖3所示,通過LabVIEW分支結(jié)構(gòu)實現(xiàn)報文類型的選擇,并按照CANopen協(xié)議數(shù)據(jù)幀格式要求定義了發(fā)送的數(shù)據(jù)內(nèi)容,包括高低8位ID、數(shù)據(jù)長度、遠程幀標志以及8 B數(shù)據(jù),通過捆綁送入CANWrite.vi子模塊發(fā)送到VISA接口。

b.JPG


4.1.2 CANopen報文解析
CANopen報文的解析是實現(xiàn)CANopen協(xié)議監(jiān)控面板的重點,實現(xiàn)過程為:將從VISA接口接收的數(shù)據(jù)按照CANopen報文格式進行組建;判斷接收的報文是遠程幀還是數(shù)據(jù)幀;將接收的數(shù)據(jù)幀累積;對累積的數(shù)據(jù)幀依次進行格式轉(zhuǎn)換,完成數(shù)據(jù)顯示(見圖4)。

c1.jpg


4.2 數(shù)據(jù)發(fā)送/接收模塊程序設(shè)計
數(shù)據(jù)發(fā)送模塊CANwrite.vi使用VISA Write節(jié)點予以實現(xiàn),并將該發(fā)送模塊作為子VI調(diào)用。在LabVIEW平臺控制的串行通信過程中,數(shù)據(jù)格式是以字符串的格式組成的,字符串中的每個字符實際上對應(yīng)大家熟悉的ASCII字符,即計算機能夠識別的數(shù)據(jù)代碼是ASCII代碼,所以在傳送到串口發(fā)送數(shù)據(jù)之前要經(jīng)過代碼轉(zhuǎn)換,這就意味著以十進制、二進制、十六進制表示的數(shù)據(jù)必須轉(zhuǎn)化為ASCII字符串才能進行傳送和接
收。數(shù)據(jù)發(fā)送模塊如圖5所示,其中,以0xAA作為握手信號

c.JPG


數(shù)據(jù)接收模塊CANRead.vi使用VISA Read節(jié)點讀取數(shù)據(jù),如圖6所示,從緩沖器接收到的數(shù)據(jù)是ASCII字符串,經(jīng)過ASCII字符串轉(zhuǎn)換為十六進制字節(jié)數(shù)組的模塊處理后,最終得到正確的數(shù)據(jù)。
4.3 監(jiān)控面板
使用虛擬儀器LabVIEW開發(fā)的監(jiān)控面板如圖7所示。可以看到,左側(cè)為數(shù)據(jù)發(fā)送部分,首先設(shè)置NodeID,選擇主從節(jié)點類型,根據(jù)用戶需要選擇待發(fā)送的報文類型,并設(shè)置幀類型(數(shù)據(jù)幀/遠程幀)以及具體的發(fā)送數(shù)據(jù)。右側(cè)為數(shù)據(jù)接收部分,顯示從CAN總線上監(jiān)聽到的CANopen報文。

d.JPG



5 結(jié)語
本文將虛擬儀器技術(shù)與現(xiàn)場總線高層通信協(xié)議CANopen相結(jié)合,實現(xiàn)了現(xiàn)場總線上位機監(jiān)控面板的開發(fā),為分布式網(wǎng)絡(luò)控制系統(tǒng)提供了高效、全面的監(jiān)控環(huán)境,不僅解決了工業(yè)現(xiàn)場不同設(shè)備同步監(jiān)控的問題,而且提供了較強的在線可控性。同時,利用LabVIEW提供的各類專業(yè)工具軟件包,可以進一步對工業(yè)數(shù)據(jù)進行處理,完成波形顯示、信號濾波和頻譜分析等功能。

隔離器相關(guān)文章:隔離器原理


評論


相關(guān)推薦

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

關(guān)閉