CANopen學習筆記


RTR-遠程傳輸請求位

RTR=0 數據幀

RTR=1 遠程幀

IDE-標識符擴展位

IDE=0:11bits 標准CAN

IDE=1:29bits 擴展CAN

SDO用來讀寫其他CANopen設備的對象字典

PDO用來快速傳輸實時數據

CANopen協議中定義了三種不同的通信關系:
主機-從機模型(master-slave),僅用於網絡管理(NMT),主機-從機模型不僅可以由確認的服務(握手)來實現,也可以由未確認的服務(廣播)來實現。

客戶端-服務器模型(client-server),描述的是兩個設備之間的通信關系,這種模型只用於SDO通信。

生產者-消費者模型(producer-consumer)。PDO通信

循環同步模式下(Cyclic&synchronous)主機通過RPDO寫入數據到從機,從機先存儲數據,部執行,待主機送出n個SYNC后,執行數據,執行完成后通過TPDO回傳數據給主機。

對PDO通訊參數的設置可以實現四種通訊方式:

1. 同步傳輸.在收到SYNC消息后觸發PDO發送,可以定義收到幾個SYNC后觸發一次TPDO,在有SYNC的CANopen網絡中,SYNC就相當於一個網絡節拍,數據根據節拍來進行固定周期的過程數據傳輸.比如網絡中有一個壓力傳感器,一個溫度傳感器,一個物位傳感器,網絡中有一個HMI監控終端來實時監控三個傳感器采集的數據,壓力傳感器可能檢測的是一個快速的壓力變化,那可以每隔200mS更新一次數據,溫度可能需要1S更新一次數據,物位可能5S更新一次數據,(假設各傳感器的數據采集周期都比數據更新周期小,如果大的話數據更新快可能沒有意義,呵呵)現在我可以設置一個200mS周期的SYNC消息,壓力傳感器每收到一個SYNC就向HMI傳輸一次數據,溫度傳感器可以每隔5個SYNC傳輸一次數據,同樣物位傳感器就是每收到25個SYNC發送一次數據.這種通訊方式顯得比較規矩,好管理,系統運行效率高,適合周期性數據更新的應用.

非同步傳輸:

2. 遠程請求(remotely requested).在需要網絡上某個節點的數據的時候,我發一個遠程數據請求過去,對方在接收到請求后,把我要的數據給發過來,這種方式是在我需要的時候去主動獲取. (遠程請求可以在通訊設定對象字典里選擇開還是不開)

3. 定時發送(timer driven).這個有別於SYNC,它是在本節點實現周期發送,通過設置PDO參數,定一個周期,每隔固定的時間向網絡上發送一次PDO,它與SYNC無關,在網絡設計中主要按照傳感器的數據采集速度和數據更新要求來設定定時周期.

4. 事件觸發(event driven).當節點的某個時間發生觸發的一次數據發送,例如當某個接着報警開關的開關量采集節點的報警狀態發生變化時,觸發一次PDO將報警狀態發送到網絡上,使系統能夠及時獲得該報警狀態信息.該方式是實時性最好的一種傳輸方式,特別適合系統運行出錯報警和重大事件的及時處理上.

A transmission type of 0 means that the

message shall be transmitted after occurrence of the SYNC but acyclic (not periodically), only if an

event occurred before the SYNC. A transmission type of 1 means that the message is transmitted with

every SYNC object. A transmission type of n means that the message is transmitted with every n-th

SYNC object. Asynchronous TPDOs are transmitted without any relation to a SYNC.

The data of synchronous RPDOs received after the occurrence of a SYNC is passed to the application

with the occurrence of the following SYNC, independent of the transmission rate specified

image

00: Acyclic & synchronous

01~240:cyclic&synchronous

255:asynchronous

CANopen預定義連接集

為了減小簡單網絡的組態工作量,CANopen 定義了強制性的缺省標識符(CAN-ID) 分配表。這些標志符在預操作狀態下可用,通過動態分配還可修改他們。CANopen 設備必須向它所支持的通訊對象的提供相應的標識符。

缺省 ID 分配表是基於 11位 CAN-ID,包含一個 4 位的功能碼部分和一個 7 位的 節點 ID(Node-ID)部分。

image

image

Client對server發送SDO數據使用600

Client接收server返回的數據使用580

寫數據使用區域下載模式,讀數據使用區域上傳模式

NMT (Network Management Object)

網絡管理訊息NM 遵循了主站/從站的架構進行NMT 服務。在這架構之下只有一個主站,而此主站可

以搭配多個從站。所有的CANopen 節點都有自己專屬的NMT 狀態,而主站可以藉由NMT 的訊息去

控制從站的狀態。狀態流程途如下:

image

CS(指令說明)

01h=start_remote_node

02h=stop_remote_node

80h=enter_pre-operational

81h=reset_node

82h=reset_communication

狀態轉換,由NMT實現。分別是NMT的COB-ID號(為000),加CS功能碼,以及站號(如果站號設置0,為廣播方式)

image

Examples

To put the node 0x6 in operational mode : 000 01 06

To put all the nodes in pre-operational mode : 000 80 00

啟動協議, 啟動初始化完成后, slave 自動發送一個ID 為700h+address,內容為0 的消息。 Bootup

image

下面表明了各PDO 的配置對象。比如TX-PDO1,其傳輸內容的參數定義在1A00h 中定義,其通訊設置在1800h 中定義。

image

主機對從機發送PDO 200 300 400 500

主機接收從機返回PDO 180 280 380 480

image

                 默認的CAN-ID與CANopen設備的關系

位時序

由發送單元在非同步的情況下發送的每秒鍾的位數稱為位速率。一個位可分為 4 段。

• 同步段(SS)

• 傳播時間段(PTS)

• 相位緩沖段1(PBS1)

• 相位緩沖段2(PBS2)

這些段又由可稱為 Time Quantum(以下稱為Tq)的最小時間單位構成。

1 位分為4 個段,每個段又由若干個Tq 構成,這稱為位時序。

1 位由多少個Tq 構成、每個段又由多少個Tq 構成等,可以任意設定位時序。通過設定位時序,多個單元可

同時采樣,也可任意設定采樣點。

各段的作用和 Tq 數如表11 所示。1 個位的構成如圖32 所示。

             表 11. 段及其作用

image

image

PDO 8個字節,每兩個字節對應一個映射索引


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM