1.系統(tǒng)概述
在很多應(yīng)用中,我們需要獲取現(xiàn)場(chǎng)總線模塊的數(shù)據(jù),并參與控制,比如:溫度信號(hào)、濕度信號(hào)、高度信號(hào)等等。我們現(xiàn)在可以采用組態(tài)軟件利用現(xiàn)場(chǎng)總線傳輸,來(lái)采集現(xiàn)場(chǎng)的信號(hào)。為我們獲取應(yīng)用現(xiàn)場(chǎng)的信號(hào)提供了方便快捷的解決方案。
2.CANOpen設(shè)備分析
2.1.CANOpen設(shè)備模型
CANOpen 設(shè)備模型外部連接CANBus 系統(tǒng)合過(guò)程I/O,采集現(xiàn)場(chǎng)數(shù)據(jù),通過(guò)CAN 總線系統(tǒng),向高層傳送。設(shè)備模型(圖3)內(nèi)部可以被分為3 部分:
● 通信接口(Communication)部分:
提供在總線上收發(fā)通信對(duì)象的服務(wù)。不同CANOpen 設(shè)備間的通信都是
通過(guò)交換通信對(duì)象完成的。
● 對(duì)象字典(Object Directory)部分:
對(duì)象字典描述了設(shè)備的功能性。它以特定的方式描述了通信對(duì)象(應(yīng)用數(shù)據(jù)和配置數(shù)據(jù)),從而實(shí)現(xiàn)了設(shè)備的功能性描述。這些對(duì)象通過(guò)一個(gè)16 位的索引和一個(gè)附加的8 位子索引來(lái)訪問(wèn)。對(duì)象字典位于CAN 總線
設(shè)備通信部分和應(yīng)用部分之間,向應(yīng)用程序提供接口,應(yīng)用程序?qū)?duì)象字典進(jìn)行操作就可以實(shí)現(xiàn)CANOpen 通信。
● 應(yīng)用(Application)部分:
應(yīng)用部分由用戶編寫(xiě),包括功能部分和通信部分。通信部分通過(guò)對(duì)對(duì)象字典進(jìn)行操作實(shí)現(xiàn)CANopen 通信,而功能部分由用戶根據(jù)應(yīng)用要求實(shí)現(xiàn)。比如CAN 控制器,應(yīng)用程序部分則為過(guò)程控制或數(shù)據(jù)處理邏輯,
需要用戶編寫(xiě)。
圖3[1] CANOpen 設(shè)備模型
2.2.CANOpen設(shè)備應(yīng)用分析
CANOpen 設(shè)備的應(yīng)用可以有下面2 個(gè)層面:
●操作應(yīng)用層面:現(xiàn)場(chǎng)操作人員、現(xiàn)場(chǎng)設(shè)備檢查人員等關(guān)注;
●系統(tǒng)設(shè)置層面:系統(tǒng)集成技術(shù)人員、設(shè)備維護(hù)和改造人員等關(guān)注。
從操作應(yīng)用層面看,技術(shù)人員主要是通過(guò)已經(jīng)形成的生產(chǎn)線,依靠CANOpen系統(tǒng)完成既定的生產(chǎn)工作,也就是通過(guò)采集的信號(hào)的內(nèi)容展示和分析結(jié)果,關(guān)注的是通過(guò)設(shè)備完成的生產(chǎn)操作。也就是,操作人員關(guān)注通過(guò)正確的操作方法,順利完成生產(chǎn)任務(wù)。這個(gè)層面的用戶是人機(jī)界面系統(tǒng)的最終使用者。工業(yè)人機(jī)界面
系統(tǒng)的設(shè)計(jì)必須考慮這個(gè)層面應(yīng)用的需求。
從系統(tǒng)設(shè)置層面看,技術(shù)人員要對(duì)現(xiàn)場(chǎng)設(shè)備進(jìn)行裝配、設(shè)置,甚至編程。技術(shù)人員可以根據(jù)設(shè)備的說(shuō)明文檔,依據(jù)現(xiàn)場(chǎng)工程的需求,進(jìn)行裝配和設(shè)置。一般來(lái)說(shuō),每種設(shè)備都有測(cè)試或者配置軟件,尤其邏輯控制設(shè)備,都配置編程軟件,比如PLC,CANOpen 設(shè)備也是如此!首先,這些軟件都已經(jīng)非常成熟,然后,編程通訊往往有很多不開(kāi)放的技術(shù),所以,我們必須借助于設(shè)備廠商提供的軟件。這個(gè)層面的技術(shù)人員工作,往往是針對(duì)確定的I/O 部分,依照明確的工藝需求,進(jìn)行設(shè)備組態(tài)、系統(tǒng)集成等工作,關(guān)注系統(tǒng)集成部分,也就是根據(jù)操作應(yīng)用層面的具體需求進(jìn)行系統(tǒng)集成。
對(duì)于人機(jī)界面的組態(tài),我們主要是考慮操作應(yīng)用層面的需求,也就是關(guān)注I/O狀態(tài)、控制有關(guān)的參數(shù)設(shè)置、運(yùn)行結(jié)果的記錄等。這些為基于HMI 的現(xiàn)場(chǎng)總線控制平臺(tái)的協(xié)議通訊模式的實(shí)現(xiàn)提供了依據(jù)。
HMI 組態(tài)關(guān)注的對(duì)象
NMT(Network ManagemenT)網(wǎng)絡(luò)管理服務(wù):提供網(wǎng)絡(luò)管理(如初始化、啟動(dòng)和停止節(jié)點(diǎn),偵測(cè)失效節(jié)點(diǎn))服務(wù)。這種服務(wù)是采用主從通訊模式(所以只有一個(gè)NMT 主節(jié)點(diǎn))來(lái)實(shí)現(xiàn)的。上位機(jī)HMI 系統(tǒng)通過(guò)NMT 對(duì)象,管理網(wǎng)絡(luò),啟動(dòng)或停止CANOpen 節(jié)點(diǎn)。
過(guò)程數(shù)據(jù)對(duì)象用于在CANOpen 節(jié)點(diǎn)間傳送過(guò)程數(shù)據(jù),如I/O 模塊的I/O 狀態(tài)的讀取和設(shè)定、模擬量采集和模擬量輸出等等。
Node 節(jié)點(diǎn)-->HMI 平臺(tái)(TPDO:發(fā)送過(guò)程數(shù)據(jù)對(duì)象)
Node 節(jié)點(diǎn)<--HMI 平臺(tái)(RPDO:接收過(guò)程數(shù)據(jù)對(duì)象)
系統(tǒng)配置關(guān)注對(duì)象
服務(wù)數(shù)據(jù)對(duì)象(SDO:Server Data Object)服務(wù)用于讀寫(xiě)節(jié)點(diǎn)的對(duì)象字典(Object Dictionary)用來(lái)在設(shè)備之間傳輸大的低優(yōu)先級(jí)數(shù)據(jù),典型的是用來(lái)配置CANopen 網(wǎng)絡(luò)上的設(shè)備。
部分管理報(bào)文:
預(yù)定義報(bào)文或者特殊功能對(duì)象,比如修改節(jié)點(diǎn)ID,重新設(shè)置通訊波特率等。
2.3.CANOpen標(biāo)識(shí)符
為了減小簡(jiǎn)單網(wǎng)絡(luò)的組態(tài)工作量,CANopen 定義了強(qiáng)制性的缺省標(biāo)識(shí)符(CAN-ID)分配表。這些標(biāo)志符在預(yù)操作狀態(tài)下可用,通過(guò)動(dòng)態(tài)分配還可修改他們。CANopen 設(shè)備必須向它所支持的通訊對(duì)象的提供相應(yīng)的標(biāo)識(shí)符。
缺省ID 分配表是基于11 位CAN-ID,包含一個(gè)4 位的功能碼部分和一個(gè)7位的節(jié)點(diǎn)ID(Node-ID)部分。如圖4 所示。
Node-ID:對(duì)應(yīng)CANOpen 設(shè)備,由系統(tǒng)集成商定義,例如通過(guò)設(shè)備上的撥碼開(kāi)關(guān)設(shè)置。Node-ID 范圍是1~127(0 不允許被使用)。
Function Code:確定CAN 幀的類型,比如:PDO 和SDO:對(duì)應(yīng)CANOpen設(shè)備的寄存器。在CANOpen 設(shè)備中,常用的PDO 為0x180+Node-ID。其中0x180就是指Functon Code。SDO 是用來(lái)在設(shè)備之間傳輸大的低優(yōu)先級(jí)數(shù)據(jù)的服務(wù)數(shù)據(jù)對(duì)象,典型的功能是配置CANopen 網(wǎng)絡(luò)上的設(shè)備。
PDO 用來(lái)傳輸8 字節(jié)或更少數(shù)據(jù),沒(méi)有其它協(xié)議預(yù)設(shè)定(意味著數(shù)據(jù)內(nèi)容已預(yù)先定義)。比如:某傾角傳感器上傳的為7 個(gè)字符,因此它有8 個(gè)PDO 數(shù)據(jù)需要傳到現(xiàn)場(chǎng)總線上。標(biāo)識(shí)符的格式為T(mén)PDO=0X180+NODE_ID,因此發(fā)送的PDO 可以表示為表3.1 的描述。
I/O 節(jié)點(diǎn)- 監(jiān)控終端 | |||||||
COB-ID | 0 字節(jié) | 1 字節(jié) | 2 字節(jié) | 3 字節(jié) | 4 字節(jié) | 5 字節(jié) | 6 字節(jié) |
416(0x1A0) |
CANOpen 設(shè)備上傳的I/O 數(shù)據(jù) |
||||||
23 | 0 | FD | FF | 1D | 88 | 32 | |
COB-ID: 0x1A0=0X180+0X20 |
表3.1 CANOpen 設(shè)備的PDO
3.組態(tài)軟件通訊分析
3.1.PC-based的CAN總線接入
組態(tài)軟件建立在數(shù)據(jù)庫(kù)系統(tǒng)之上,實(shí)時(shí)數(shù)據(jù)庫(kù)通過(guò)驅(qū)動(dòng)接口采集總線系統(tǒng)中PLC、智能儀表和其他設(shè)備的信息,詳細(xì)架構(gòu)請(qǐng)見(jiàn)圖1。
組態(tài)軟件與硬件設(shè)備組成的CAN 總線系統(tǒng),詳細(xì)組成請(qǐng)見(jiàn)圖2。
圖2 CAN 總線系統(tǒng)3.2.HMI和CANOpen系統(tǒng)中位置
簡(jiǎn)單系統(tǒng):HMI + CANOpen 從站模塊
復(fù)雜系統(tǒng):HMI 系統(tǒng)+CANOpen 主站模塊+CANOpen 從站模塊+診斷和配置節(jié)點(diǎn)
HMI 主要處于CANOpen 系統(tǒng)監(jiān)視和存儲(chǔ)、分析等
4.組態(tài)軟件CAN驅(qū)動(dòng)分析
4.1.組態(tài)軟件CAN驅(qū)動(dòng)特殊性分析
用于人機(jī)交互部分:
應(yīng)用組態(tài)層保證數(shù)據(jù)發(fā)送成功。
驅(qū)動(dòng)層保證成功。
用于監(jiān)視部分:
采集的實(shí)時(shí)性保障;
采集的完整性保<