<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          CANopen實(shí)時(shí)總線的要點(diǎn)解析,看完你就明白了

          共 5366字,需瀏覽 11分鐘

           ·

          2021-11-04 14:44

          關(guān)注、星標(biāo)公眾號(hào),直達(dá)精彩內(nèi)容

          來源:整理與網(wǎng)絡(luò)素材

          第一部分CAN和CANopen的概念
          一、 CAN和CANopen簡(jiǎn)介

          CAN總線全稱為 Controller AreaNetwork 即控制器局域網(wǎng)是國(guó)際上應(yīng)用最廣泛的現(xiàn)場(chǎng)總線之一,已經(jīng)在汽車制造、機(jī)械制造、包裝機(jī)械、煙草等行業(yè)得到了廣泛的應(yīng) 用 。


          CAN 總線是德國(guó) BOSCH 公司從 80 年代初為解決現(xiàn)代汽車中眾多的控制與測(cè)試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信協(xié)議,它是一種多主總線,通信介質(zhì)可以是雙絞線、同軸電纜或光導(dǎo)纖維。通信速率可達(dá) 1MBPS 。CAN 總線通信接口中集成了 CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對(duì)通信數(shù)據(jù)的成幀處理,包括位填充、數(shù)據(jù)塊編碼、循環(huán)冗余檢驗(yàn)、優(yōu)先級(jí)判別等項(xiàng)工作。


          CAN 協(xié)議的一個(gè)最大特點(diǎn)是廢除了傳統(tǒng)的站地址編碼,而代之以對(duì)通信數(shù)據(jù)塊進(jìn)行編碼。采用這種方法的優(yōu)點(diǎn)可使網(wǎng)絡(luò)內(nèi)的節(jié)點(diǎn)個(gè)數(shù)在理論上不受限制,數(shù)據(jù)塊的標(biāo)識(shí)碼可由 11 位或 29 位二進(jìn)制數(shù)組成,因此可以定義 211 或 229 個(gè)不同的數(shù)據(jù)塊,這種按數(shù)據(jù)塊編碼的方式,還可使不同的節(jié)點(diǎn)同時(shí)接收到相同的數(shù)據(jù),這一點(diǎn)在分布式控制系統(tǒng)中非常有用。數(shù)據(jù)段長(zhǎng)度最多為 8 個(gè)字節(jié),可滿足通常工業(yè)領(lǐng)域中控制命令、工作狀態(tài)及測(cè)試數(shù)據(jù)的一般要求。同時(shí),8 個(gè)字節(jié)不會(huì)占用總線時(shí)間過長(zhǎng),從而保證了通信的實(shí)時(shí)性。CAN 協(xié)議采用 CRC 檢驗(yàn)并可提供相應(yīng)的錯(cuò)誤處理功能,保證了數(shù)據(jù)通信的可靠性。CAN 卓越的特性、極高的可靠性和獨(dú)特的設(shè)計(jì),特別適合工業(yè)過程監(jiān)控設(shè)備的互連,因此,越來越受到工業(yè)界的重視,并已公認(rèn)為最有前途的現(xiàn)場(chǎng)總線之一。


          另外,CAN 總線采用了多主競(jìng)爭(zhēng)式總線結(jié)構(gòu),具有多主站運(yùn)行和分散仲裁的串行總線以及廣播通信的特點(diǎn)。CAN 總線上任意節(jié)點(diǎn)可在任意時(shí)刻主動(dòng)地向網(wǎng)絡(luò)上其它節(jié)點(diǎn)發(fā)送信息而不分主次,因此可在各節(jié)點(diǎn)之間實(shí)現(xiàn)自由通信。CAN 總線協(xié)議已被國(guó)際標(biāo)準(zhǔn)化組織認(rèn)證,技術(shù)比較成熟,控制的芯片已經(jīng)商品化,性價(jià)比高,特別適用于分布式測(cè)控系統(tǒng)之間的數(shù)通訊。CAN 總線插卡可以任意插在 PC、 AT 、XT 兼容機(jī)上,方便地構(gòu)成分布式監(jiān)控系統(tǒng)。


          而 CANopen 是基于 CAN 總線的應(yīng)用層協(xié)議,在開放的現(xiàn)場(chǎng)總線標(biāo)準(zhǔn)中CANopen是最著名和成功的一種,已經(jīng)在歐洲和美國(guó)獲得廣泛的認(rèn)可和大量應(yīng)用。1992 年在德國(guó)成立了“自動(dòng)化 CAN 用戶和制造商協(xié)會(huì)”(CiA,CANinAutomation),開始著手制定自動(dòng)化CAN 的應(yīng)用層協(xié)議CANopen。此后,協(xié)會(huì)成員開發(fā)出一系列 CANopen 產(chǎn)品,在機(jī)械制造、鐵路、車輛、船舶、制藥、食品加工等領(lǐng)域獲得大量應(yīng)用。目前 CANopen 協(xié)議已經(jīng)成為了一種新的工業(yè)現(xiàn)場(chǎng)總線標(biāo)準(zhǔn) EN-50325-4。CANopen 協(xié)議是 CAN-in-Automation(CiA)定義的標(biāo)準(zhǔn)之一,在歐洲,CANopen 協(xié)議被認(rèn)為是在基于 CAN 的工業(yè)系統(tǒng)中占領(lǐng)導(dǎo)地位的標(biāo)準(zhǔn)。大多數(shù)重要的設(shè)備類型,例如數(shù)字和模擬的輸入輸出模塊、驅(qū)動(dòng)設(shè)備、操作設(shè)備、控制器、可編程控制器或編碼器,都在稱為“設(shè)備描述”的協(xié)議中進(jìn)行描述;“設(shè)備描述”定義了不同類型的標(biāo)準(zhǔn)設(shè)備及其相應(yīng)的功能。依靠 CANopen 協(xié)議的支持,可以對(duì)不同廠商的設(shè)備通過總線進(jìn)行配置。



          二、CANopen的基本知識(shí)

          EDS文件

          EDS (Electronic Data Sheet)

          EDS 文件描述了 CAN 網(wǎng)絡(luò)上設(shè)備通信屬性(波特率、輸出類型、I/O 提供…)。它由設(shè)備制造商提供,用于在配置工具中配置節(jié)點(diǎn)(就像 Windows 里的設(shè)備驅(qū)動(dòng)程序)。


          PDO

          PDO (過程數(shù)據(jù)對(duì)象)

          CANopen 幀包含 I/O 數(shù)據(jù)

          區(qū)分在:

          1、 傳送 PDO:TXPDO 帶有節(jié)點(diǎn)提供給其他節(jié)點(diǎn)的數(shù)據(jù)


          2、 接收 PDO:RXPDO 節(jié)點(diǎn)消耗的數(shù)據(jù)

          傳送的方向從節(jié)點(diǎn)的觀點(diǎn)看總是可見的。PDO 沒有必要包含所有節(jié)點(diǎn)映象。通常模擬量和數(shù)字量被分成不同的 PDO 進(jìn)行傳送。對(duì)輸出也是同樣如此!


          SDO

          SDO (服務(wù)數(shù)據(jù)對(duì)象)

          CANopen 幀包含參數(shù)

          SDO 主要用于在程序運(yùn)行時(shí),從設(shè)備讀參數(shù)或者向設(shè)備寫參數(shù)


          COB-ID

          COB-ID(通訊對(duì)象標(biāo)識(shí)符)

          每個(gè) CAN 幀以一個(gè) COB-ID 開頭,COB-ID 作為 CAN 幀的標(biāo)識(shí)符。

          在配置階段,每個(gè)節(jié)點(diǎn)在接收 COB-ID 時(shí),對(duì)幀來說,他是提供者或者消費(fèi)者。


          三、關(guān)于CANopen

          介紹

          CANopen 是一個(gè)標(biāo)準(zhǔn)的工業(yè)控制系統(tǒng)現(xiàn)場(chǎng)總線協(xié)議。它特別適合實(shí)時(shí)控制的 PLC ,因?yàn)樗鼮榧傻暮涂蓚鬏數(shù)墓I(yè)應(yīng)用提供了一個(gè)高效、低成本的解決方案。


          CANopen協(xié)議

          CANopen 協(xié)議是建立在 CAL 協(xié)議基礎(chǔ)上的一個(gè)子協(xié)議。通過定義設(shè)備規(guī)范,它甚至更加適合于標(biāo)準(zhǔn)工業(yè)組件。CANopen 是一個(gè) CIA (CAN inAutomation)標(biāo)準(zhǔn),投入市場(chǎng)之初,它就迅速被推廣。在歐洲,CANopen現(xiàn)在已經(jīng)被公認(rèn)為基于 CAN 設(shè)計(jì)的工業(yè)系統(tǒng)的工業(yè)標(biāo)準(zhǔn)。


          物理層

          CAN 使用差分驅(qū)動(dòng)兩總線(公共回路)。CAN 信號(hào)是 CAN-high 和CAN-low 線之間的電壓差值。


          1:CAN-high 線

          2:CAN-low 線

          3:終端電阻:120Ω

          4:節(jié)點(diǎn)

          根據(jù)電磁兼容要求,總線可以使用平行、雙絞或者屏蔽走線方式。線結(jié)構(gòu)使反射最小化。


          CANopen規(guī)范文件

          通訊規(guī)范文件

          CANopen 規(guī)范文件時(shí)基于“通信規(guī)范文件”的,用來規(guī)定主要通訊機(jī)制和它們的描述(DS301 )。


          設(shè)備規(guī)范文件

          在設(shè)備規(guī)范文件中描述了工業(yè)自動(dòng)化領(lǐng)域最重要的設(shè)備類型,同時(shí)也定義了設(shè)備功能類型。


          標(biāo)準(zhǔn)設(shè)備描述例子為:

          ◆ 數(shù)字量和模擬量輸入/輸出模塊(DS401)

          ◆ 電機(jī)(DS402)

          ◆ 控制設(shè)備(DS4P403)

          ◆ 閉環(huán)控制器(DSP404)

          ◆ PLC (DS405)

          ◆ 編碼器(DS406)


          通過CAN總線配置設(shè)備

          通過 CAN 總線配置設(shè)備的可能性是制造商要求自治的基本原則之一。


          CANopen規(guī)范文件的通用規(guī)格

          CANopen 是符合以下規(guī)定文件的,用于 CAN 系統(tǒng)的一套規(guī)范:

          ◆ 開發(fā)的總線系統(tǒng)

          ◆ 無協(xié)議超負(fù)荷的實(shí)時(shí)數(shù)據(jù)交換

          ◆ 可重新定義尺寸的模塊化設(shè)計(jì)

          ◆ 設(shè)備互用性和交換性

          ◆ 被大量國(guó)際制造商支持

          ◆ 標(biāo)準(zhǔn)的網(wǎng)絡(luò)配置

          ◆ 訪問所有的參數(shù)設(shè)備

          ◆ 同步和循環(huán)過程數(shù)據(jù)/事件驅(qū)動(dòng)數(shù)據(jù)


          CANopen產(chǎn)品認(rèn)證

          在市場(chǎng)上提供CANopen 認(rèn)證產(chǎn)品的制造商都是 CiA 組織成員。


          CAN標(biāo)準(zhǔn)

          CANopen 協(xié)議被 CIA 組織定義并且可訪問該組織(須遵守某些限制 )站點(diǎn):http://www.can-cia.com.對(duì)主從設(shè)備的源代碼可以從不同的供應(yīng)商得

          到。


          CANopen網(wǎng)絡(luò)通訊

          通訊協(xié)議文件基于 CAL 服務(wù)和協(xié)議。

          它提供用戶對(duì)兩種交換類型的訪問:SDO、PDO。

          在上電時(shí),設(shè)備進(jìn)入一個(gè)初始化階段,接著進(jìn)入預(yù)處理階段。在這個(gè)階段,只有SDO 可以通訊。在接到一個(gè)啟動(dòng)命令后,設(shè)備進(jìn)入工作狀態(tài) ,在這個(gè)階段 PDO 可以進(jìn)行通訊,SDO 通訊仍然有效。


          CANopen啟動(dòng)Boot-up

          啟動(dòng)過程?最小設(shè)備配置指定了簡(jiǎn)化的啟動(dòng)程序。這個(gè)過程描述如下:




          詳細(xì)步驟介紹:

          1、模塊上電

          2、模塊初始化,進(jìn)入預(yù)處理狀態(tài)

          3、NMT 服務(wù):啟動(dòng)遠(yuǎn)程節(jié)點(diǎn)

          4、NMT 服務(wù):預(yù)處理

          5、NMT 服務(wù):停止遠(yuǎn)程節(jié)點(diǎn)

          6、NMT 服務(wù):重啟節(jié)點(diǎn)

          7、NMT 服務(wù):重啟節(jié)點(diǎn)通訊


          初始

          進(jìn)入“重新啟動(dòng)通訊”后,設(shè)備進(jìn)入初始模式。

          該狀態(tài)允許的操作有:

          ◆ 定義要求的通訊對(duì)象(SDO、PDO、緊急事件處理)

          ◆ 安裝相關(guān)的 CAL 服務(wù)

          ◆ 配置 CAN 控制器

          初始化完成后設(shè)備自動(dòng)進(jìn)入預(yù)處理模式。


          預(yù)處理

          進(jìn)入預(yù)處理的條件:

          ◆ 在初始化完成后

          ◆ 在正常工作模式下,接收到“進(jìn)入預(yù)處理”NMT 命令


          在這種情況下,設(shè)備的配置可以被修改。然而只有 SDO 可以用來讀或?qū)?span style="max-width: 100%;letter-spacing: 0.544px;overflow-wrap: break-word !important;box-sizing: border-box !important;">設(shè)備的參數(shù)。


          當(dāng)配置完成后,通過接收相關(guān)的命令,設(shè)備進(jìn)入以下的工作狀態(tài):

          ◆ 停止 ,當(dāng)接收到“停止遠(yuǎn)程節(jié)點(diǎn)”NMT 命令

          ◆ 運(yùn)行 ,當(dāng)接收到“啟動(dòng)遠(yuǎn)程節(jié)點(diǎn)”NMT 命令


          停止

          如果設(shè)備處于“預(yù)處理 ” 或者“正常工作 ” 狀態(tài),接收到“節(jié)點(diǎn)停止 ” 命令(NMT 服務(wù)),設(shè)備進(jìn)入 “停止?fàn)顟B(tài) ” 。


          在這種情況下,設(shè)備不能被配置。不能讀寫設(shè)備相關(guān)參數(shù)(SDO ),只有從設(shè)備的監(jiān)視功能(即節(jié)點(diǎn)保護(hù))有效。


          操作

          當(dāng)設(shè)備處于“預(yù)處理”狀態(tài),接收到“啟動(dòng)遠(yuǎn)程節(jié)點(diǎn) ” ,設(shè)備進(jìn)入操作狀態(tài)。在“運(yùn)行 ” 狀態(tài),當(dāng)使用“節(jié)點(diǎn)啟動(dòng) ” NMT 服務(wù)啟動(dòng) CANopen 網(wǎng)絡(luò),所有的設(shè)備功能性被使用,PDO、SDO 均可進(jìn)行通訊。


          過程數(shù)據(jù)對(duì)象(PDO)

          PDO定義

          PDO 是過程數(shù)據(jù)通信相關(guān)的通信對(duì)象,它能保證過程數(shù)據(jù)的實(shí)時(shí)交換。

          一個(gè) CANopen 設(shè)備的 PDO 對(duì)象定義了它與網(wǎng)絡(luò)上其他 CANopen 設(shè)備之間的

          隱式數(shù)據(jù)交換。

          當(dāng)設(shè)備運(yùn)行時(shí),PDO 交換被激活。


          PDO類型

          有兩種 PDO 類型:

          ◆ TXPDO/TPDO:PDO 被設(shè)備傳送

          ◆ RXPDO/RPDO:PDO 被設(shè)備接收


          PDO的供給者與消費(fèi)者

          PDO 基于“供給者/消費(fèi)者 ” 模型。傳送的叫“供給者 ” ,接收的叫“消費(fèi)者 ” 。


          PDO的傳送模式

          ◆ 同步(通過接收SYNC對(duì)象實(shí)現(xiàn)同步)

          非周期:由遠(yuǎn)程幀預(yù)觸發(fā)傳送,或者由設(shè)備子協(xié)議中規(guī)定的對(duì)象特定事件預(yù)觸發(fā)傳送。

          周期:傳送在每1到240個(gè)SYNC消息后觸發(fā)。


          ◆ 異步

          由遠(yuǎn)程幀觸發(fā)傳送。

          由設(shè)備子協(xié)議中規(guī)定的對(duì)象特定事件觸發(fā)傳送。


          服務(wù)數(shù)據(jù)對(duì)象(SDO)

          SDO定義

          服務(wù)數(shù)據(jù)對(duì)象 SDO 允許使用顯示請(qǐng)求交換數(shù)據(jù)。

          當(dāng)設(shè)備處于預(yù)處理、工作狀態(tài),SDO 服務(wù)是有效的 。


          SDO的類型

          有兩種 SDO 類型:

          ◆ 讀 SDO(上傳)

          寫 SDO(下載)


          客戶端/ 服務(wù)器模型

          SDO 協(xié)議是基于“客戶端/服務(wù)器”模型。

          對(duì)于下載 SDO

          客戶端發(fā)送一個(gè)標(biāo)示被寫對(duì)象的請(qǐng)求,服務(wù)器返回一個(gè)確認(rèn)信息。


          對(duì)于上傳 SDO

          客戶端發(fā)送一個(gè)標(biāo)示被讀對(duì)象的請(qǐng)求,服務(wù)器返回被讀對(duì)象的數(shù)據(jù)。


          對(duì)于一個(gè)未處理的 SDO

          對(duì)于以上的兩種情況,如果一個(gè) SDO 不能被處理,服務(wù)器返回一個(gè)錯(cuò)誤

          代碼。


          節(jié)點(diǎn)保護(hù)”和“壽命保護(hù)”

          使用期限的定義

          “使用期限”參數(shù)是按以下來計(jì)算的:

          使用期限=保護(hù)時(shí)間(看門狗時(shí)間)*使用期限系數(shù);

          保護(hù)時(shí)間的典型值在 250ms 到 2S 之間。對(duì)象 0X100CH 含有以毫秒時(shí)間定義的保護(hù)時(shí)間,對(duì)象 0X100DH 含有“使用期限系數(shù) ” 。


          監(jiān)控機(jī)制:

          1、節(jié)點(diǎn)保護(hù)

          2、心跳報(bào)文


          監(jiān)控激活

          如果兩個(gè)參數(shù)中有一個(gè)為零,那么模塊不執(zhí)行監(jiān)控,即無壽命保護(hù)。為了激活監(jiān)控,必須在兩個(gè)對(duì)象中輸入非零的數(shù)值。


          保證可靠工作

          為了保證可靠工作,建議設(shè)置“使用期限系數(shù) ” 為 2。如果不是只樣,主模塊會(huì)產(chǎn)生延時(shí)(例如,在“節(jié)點(diǎn)保護(hù) ” 時(shí)高優(yōu)先級(jí)信息的處理或者內(nèi)部處理時(shí)),模塊會(huì)轉(zhuǎn)入預(yù)處理模式而不產(chǎn)生錯(cuò)誤。


          監(jiān)控的重要性

          這兩種保護(hù)機(jī)制對(duì) CANopen 系統(tǒng)的安全運(yùn)行特別重要,特別是對(duì)不工作于事件-被控模式的設(shè)備。


          從設(shè)備的監(jiān)控

          監(jiān)控按以下的方法執(zhí)行:


          ◆ 主設(shè)備發(fā)送遠(yuǎn)程幀,來讀取從設(shè)備的狀態(tài);


          從設(shè)備答復(fù):


          ◆ 從設(shè)備可以被配置為產(chǎn)生周期性的被稱著 “心跳報(bào)文” 的報(bào)文,周期性的發(fā)送從設(shè)備的狀態(tài)。

          主設(shè)備的監(jiān)控

          如果主設(shè)備基于嚴(yán)格循環(huán)請(qǐng)求“保護(hù) ” 信息,從設(shè)備可以檢測(cè)主設(shè)備的狀態(tài)。如果從設(shè)備在也定義的使用期限內(nèi)沒有收到主設(shè)備的請(qǐng)求(保護(hù)錯(cuò)誤),它會(huì)認(rèn)為主設(shè)備故障。這種情況下相應(yīng)輸出進(jìn)入出錯(cuò)狀態(tài)并且從設(shè)備進(jìn)入預(yù)處理狀態(tài)。


          “保護(hù)”協(xié)議

          在第一個(gè)“保護(hù)”信息里,“鎖住位”(t)的值是0,然后在每個(gè)后來的保護(hù)信息里,該位都會(huì)改變,只有可以顯示信息是否丟失。總線頭部用7個(gè)剩余的位來指示網(wǎng)絡(luò)狀態(tài):

          四、CANopen設(shè)備

          CAN 總線網(wǎng)絡(luò)中有如下幾類設(shè)備:

          (1)PLC:PLC 做 CAN 上的一個(gè)主站,起到中央控制器的作用,對(duì)整個(gè)系統(tǒng)的工作起安排、調(diào)度、執(zhí)行各個(gè)操作等作用。作為 CAN 網(wǎng)絡(luò)中的主站,PLC 可以訪問網(wǎng)絡(luò)中任何節(jié)點(diǎn)的任何可以訪問的數(shù)據(jù),并起總線監(jiān)控作用,實(shí)時(shí)監(jiān)控總線上各個(gè)節(jié)點(diǎn)的工作狀態(tài),如果出現(xiàn)錯(cuò)誤并執(zhí)行相應(yīng)的處理程序;


          (2)分散式I/O:通常由電源部分、通信適配器部分、接線端子部分組成。分散式I/O 不具有程序存儲(chǔ)和程序執(zhí)行,通信適配器部分接收主站指令,按主站指令驅(qū)動(dòng) I/O ,并將 I/O 輸入及故障診斷等信息返回給主站。


          (3)驅(qū)動(dòng)器、傳感器、執(zhí)行機(jī)構(gòu)等現(xiàn)場(chǎng)設(shè)備:即帶 CAN 接口的現(xiàn)場(chǎng)設(shè)備,可由主站在線完成系統(tǒng)配置、參數(shù)修改、數(shù)據(jù)交換等功能。至于哪些參數(shù)可進(jìn)行通信及參數(shù)格式由 CANopen 行規(guī)決定。

          版權(quán)歸原作者所有,如有侵權(quán),請(qǐng)聯(lián)系刪除。

          關(guān)注我的微信公眾號(hào),回復(fù)“加群”按規(guī)則加入技術(shù)交流群。

          歡迎關(guān)注我的視頻號(hào):


          點(diǎn)擊“閱讀原文”查看更多分享,歡迎點(diǎn)分享、收藏、點(diǎn)贊、在看。

          瀏覽 134
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产高清成人无码视频网址 | 激情乱伦图片 | 日韩精品76页 | 逼特逼视频网址大全免费观看 | 图片区视频区小说区 |