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