目前,CANopen通訊協(xié)議已經(jīng)在工業(yè)領(lǐng)域得到了廣泛的使用,由于其面向?qū)ο蟮脑O(shè)計思路,CANopen協(xié)議已成為歐洲等國家的自動化公司標配的通訊接口之一。在本系列文章中,我們將介紹CANopen協(xié)議的基礎(chǔ)內(nèi)容,包括對象字典、服務(wù)、SDO、PDO和主/從站節(jié)點等。
1. 什么是CANopen?
CANopen是一種基于CAN的通信協(xié)議。這項協(xié)議非常有用,因為它可以讓設(shè)備、節(jié)點(如工業(yè)機械)之間具有現(xiàn)成的互操作性,并且提供了安裝前和安裝后配置設(shè)備的標準方法。CANopen最初是為面向運動的機器控制系統(tǒng)設(shè)計的,如今,它被廣泛用于電機控制(步進/伺服電機)領(lǐng)域,并在以下應(yīng)用中得到廣泛使用:
● 機器人技術(shù)(包括自動化機器人、傳送帶和其他工業(yè)機械)
● 醫(yī)療(包括X射線發(fā)生器、注射器、病人床和透析設(shè)備)
● 汽車(包括農(nóng)業(yè)、鐵路、拖車、重型、船舶等)
CANopen是一個基于CAN總線的"高層協(xié)議",這意味著CAN總線(ISO 11898)就像集裝箱的卡車一般作為CANopen信息的"運輸工具"。在OSI模型中, CAN總線代表兩個最低層(物理層和數(shù)據(jù)鏈路層)。這意味著,CAN只是實現(xiàn)了帶有11位CAN ID、遠程傳輸(RTR)位和64個數(shù)據(jù)位(與更高層的協(xié)議相關(guān))的字段的幀的傳輸。換言之,CAN總線在CANopen中的作用與在J1939協(xié)議相同。而CANopen則實現(xiàn)了OSI模型的第七層,并能夠適應(yīng)除CAN以外的其他數(shù)據(jù)鏈路層協(xié)議(例如EtherCAT、Modbus、Powerlink)。
值得關(guān)注的是,隨著CAN FD的推出,CANopen FD作為下一代CANopen標準,可能會發(fā)揮著越來越重要的作用。具體細節(jié),歡迎到CiA官網(wǎng)中查看。
相較于CAN總線和J1939協(xié)議,CANopen協(xié)議新增了6個核心概念:
● 通信模式。設(shè)備/節(jié)點的通信有3種模式: 主/從站、客戶端/服務(wù)器和生產(chǎn)者/消費者。
● 通信協(xié)議。用于通信的協(xié)議,如配置節(jié)點(SDO)或傳輸實時數(shù)據(jù)(PDO)等。
● 設(shè)備狀態(tài)。一個設(shè)備支持不同的狀態(tài),一個 "主站 "節(jié)點可以改變一個 "從站 "節(jié)點,包括重置等操作。
● 對象字典。每個設(shè)備都有一個OD,其中有指定設(shè)備配置等的條目,它可以通過SDO訪問。
● 電子數(shù)據(jù)表。EDS是OD條目的標準文件格式,它允許使用服務(wù)工具來更新設(shè)備。
● 設(shè)備設(shè)置文件。描述了I/O模塊(CiA 401)和運動控制(CiA 402)等供應(yīng)商獨立性
2. CANopen通信基礎(chǔ)知識
在CANopen網(wǎng)絡(luò)中,需要多個設(shè)備進行通信,例如,在工業(yè)自動化設(shè)置中,你可能有一個帶有多個伺服電機節(jié)點和一個控制接口/PC節(jié)點的機械臂。CANopen中存在著三種通信模式,每種模式都與我們所討論的CANopen協(xié)議緊密相連。下面將簡單介紹這三種模式:
第一, 主/從站。一個節(jié)點(例如控制接口)作為應(yīng)用主站或主控制器。它向從站設(shè)備(例如伺服電機)請求數(shù)據(jù)。這個過程被用于診斷或狀態(tài)管理。在標準應(yīng)用中,可以有0到127個從站。但需要注意,請注意:在單個CANopen網(wǎng)絡(luò)中,可以有不同的主機控制器共享同一個數(shù)據(jù)鏈路層。
第二, 客戶端/服務(wù)器??蛻舳讼蚍?wù)器發(fā)送數(shù)據(jù)請求,服務(wù)器回復(fù)請求的數(shù)據(jù)。例如,當應(yīng)用程序主站需要從站的OD中獲取數(shù)據(jù)時使用這一模式。從服務(wù)器上讀取是一種 "上傳",而"寫入"是一種 "下載"(該術(shù)語采用服務(wù)器端的角度)。
第三, 消費者/生產(chǎn)者。該模式中生產(chǎn)者節(jié)點向網(wǎng)絡(luò)廣播數(shù)據(jù),由消費者節(jié)點消費。生產(chǎn)者根據(jù)請求(拉模型)或沒有特定請求(推模型)發(fā)送此數(shù)據(jù)。
顯然,這些模型實際上是相同的,但為了術(shù)語的一致性,我們對它們進行了區(qū)分。
在下一篇文章中,我們將繼續(xù)講解CANopen通信基礎(chǔ)知識,歡迎關(guān)注以便第一時間獲取更新的內(nèi)容。虹科在CAN、CANopen等領(lǐng)域深耕多年,有著深厚的技術(shù)實力,目前已面向國內(nèi)市場推出了CANopen開發(fā)源代碼、CANopen數(shù)據(jù)記錄儀,和支持CANopen協(xié)議的網(wǎng)關(guān)、板卡、IO等產(chǎn)品。