黄色真人片一级片_一区二区三区亚洲午夜精品_国产性爱在线亚洲成人大片_如何下载黄色软件_日韩欧美国产成人手机在线_日韓久久久精品中文字幕_日本高清视频wwweee_无码午夜福利电影

一文了解”CANopen“

CANopen的起源

德國Bosch公司于1983年研發CAN協議,用于汽車傳動系統的網絡通訊,之后稱為國際標準ISO11898。CANopen 是基于CAN-bus分布式工業控制技術的標準,它是由生產廠商和用戶聯合CiA(CAN in Automaion)共同開發的,并于2002年成為CENELEC EN 50325-4標準。

如今,CANopen協議已廣泛用于電機控制(步進/伺服電機)中,也應用于:如機器人技術(自動化機器人、傳送帶和其他工業機械)、醫療類(X射線發生器,注射器,病床和透析設備)、汽車行業(農業,鐵路,拖車,重型,海洋等)。

CANopen的優勢

  • 硬件優勢
  1. CAN協議最大的突出特點是錯誤檢測,限制和處理。當CAN設備檢測到總線錯誤時,會拒絕之前接收到的位序列,然后發送“錯誤幀”,其完全由CAN芯片本身處理,不需要人為編程。
  2. 報文短幀結構,CAN報文通常只有8個字節,數據幀非常短,在抗干擾能力上具有先天的優勢。
  • 軟件優勢
  1. 關于CANopen協議的資料,網上一堆,任何人都可以下載到,我們常用的DS301,DS402,幾乎人手一本,猶如葵花寶典(PS:無需自宮,至少我沒有-。-),一定要來一本,有需要也可以聯系小譜。
  2.  CANopen協議的開發,開源項目非常多,網上有很多基于MCU的精簡源碼。當然想要開發完整的CANopen協議棧,是很艱辛的工作,想要做好非常難。

選擇CANopen的原因

CANopen對于運動控制來說是一款優秀的通訊協議,采用了面向對象的一些設計思路,比如對象字典,過程數據對象(PDO),服務數據對象(SDO)等等。

CANopen在歐洲已成為最普通的協議,任何一家自動化公司都有CANopen的通訊接口,也成了低配。低配并不代表不好,只是說明其性價比更高。CANopen定義了完整的同步控制機制,使其成為主流的運動控制協議。

關于CANopen的九個基本概念

1. DCF

  設備配置文件(Device configuration file),是加強版的 EDS,可以設置節點 ID 及通信速度。

2. EDS

    電子數據表格,是描述一臺從站設備的屬性,參數的文件,是對從站設備對象字典的描述。EDS不是必須的,例如Bechkoff的主站就不需要從站提供EDS文件,但大多數的主站配置軟件都需要。

3. 復位節點

    當設備遇到異常(如從站斷線后重連),主控會發送“復位節點”,驅動器恢復出廠值,而且連CAN通訊參數也恢復成默認值。FD,JD伺服是除了CAN通訊參數外,其他配置參數恢復出廠值。

4. EMCY

    緊急服務用于設備發生致命錯誤(例如傳感器故障)的情況,從而使其可以向網絡的其余部分指示此錯誤,一般伺服斷電后,其電容電量能保證其發送該條報文。

5. 心跳,節點保護

    配置心跳參數,設置心跳周期,心跳消費時間,這個消費者時間實際上是作為一個超時參數。主站收到一個心跳后,開始計時,如果在超時時間內沒有收到下一個心跳,則認為從站離線,并報告錯誤,按照用戶配置的錯誤處理方法處理。

網絡中的每個節點都可以配置心跳,主站可以監聽從站,從站可以監聽主站,從站還可以監聽從站。這里有一個生產者、消費者的概念,總線上的設備定義自己是心跳的生產者,還是消費者。生產者產生心跳,消費者監聽心跳,然后在捕捉到異常后做出對應的處理。

  節點保護,其作用類似心跳,但可以讀取從站設備的CANopen通訊狀態(初始化,預操作,操作中,停止),屬于DS301的范疇。

6. DS301和DS402的區別

    DS301就是一個通訊協議棧,DS402是建立在DS301的上層協議,屬于伺服類的控制協議,協議中規定好每個對象字典的作用。譜思的產品PMC007CxSxPx采用工業標準CANOPEN DS301控制協議,適合各種高精度、寬范圍的工業應用。

7. 對象字典

  CANopen對象字典是CANopen協議最為核心的概念。所謂的對象字典就是一個有序的對象組,每個對象采用一個16位的索引值來尋址,這個索引值通常被稱為索引,其有效范圍在0x1000到0x9FFF之間。為了允許訪問數據結構中的單個元素,同時也定義了一個8位的索引值,這個索引值通常被稱為子索引。每個CANopen設備都有一個對象字典,對象字典包含了描述這個設備和它的網絡行為的所有參數。可以這么理解,從字面去解讀,對象字典就是一本字典,CANopen設備知道的和可以做的行為都在這本字典里的某個位置,不管它想做什么,只要它要實施動作都要以字典為參考對象,以此確認可行性。

    例如你的上位機收到了一報文,由于可以訪問對象字典的對象是SDO,首先要判斷它是SDO對象,那么你的程序就需要按照SDO中指定的索引和子索引去查找對象字典(一個排好序的數據結構集),找到相應的對象后按照SDO中的指令去操作這個對象,例如把一個值賦給字典中的變量。

8. SDO

這個很簡單,就是類似串口的一發一回模式,主站發送請求幀,從站回復應答幀。

大家看幾個例子就明白了。

主站發送:605 2F 03 20 00 07 00 00 00

從站響應:585 60 03 20 00 00 00 00 00

主站向節點ID為5的設備發起寫請求,請求的索引地址為0x2003,子地址為0x00,寫入的數據為7,對應PMC007對象字典中的波特率設置參數,寫入數據7表示設置波特率為800Kbit/s。從站響應60表示寫入成功。

主站發送:605 23 04 60 00 80 0C 00 00

從站響應:585 80 04 60 00 22 00 00 08

主站向節點ID為5的設備發起寫請求,請求的索引地址為0x6004,子地址為0x00,寫入的數據為0xC80(3200),對應PMC007對象字典中的步進命令,寫入數據3200表示讓電機執行3200步步進。從站響應80表示寫入失敗,錯誤碼為0x08000022

9. PDO

PDO通信是基于生產者/消費者(Producer/Consumer)模型,主要用于傳輸實時數據。產生數據的節點將帶有自己節點號的數據放到總線上,需要該數據的節點可以配置為接收該節點發送的數據。PDO的傳輸是由事件觸發的,這樣的事件可以是代表一個PDO變量的變化;可以是時間的過期或者是接收到一個特定的消息。過程數據直接在一個CAN消息中傳輸而不需要協議頭文件。一個PDO的長度是在0到8個字節之間。

  • PDO傳輸類型定義

0:PDO在收到SYNC后發送,但不是周期的;

1-240:PDO在收到SYNC后發送,周期發送,該值為兩次發送PDO之間的間隔的SYNC個數;

255:事件觸發;

  • PDO配置示例

PMC007CxSxPx支持通過SDO配置PDO映射,以配置GPIO值為TPDO1為示例,發送的SDO為:

設置通信的COB-ID為187,即節點ID為7的設備接收該PDO

主站發送:605 23 00 18 01 87 01 00 00

設置為事件觸發

主站發送:605 2F 00 18 02 FF 00 00 00

設置Inhibit time為5ms

主站發送:605 2B 00 18 03 32 00 00 00

設置Event time為1000ms

主站發送:605 2B 00 18 05 E8 03 00 00

設置映射條目數1

主站發送:605 2F 00 1A 00 01 00 00 00

設置映射參數,將0x6012映射到TPDO1

主站發送:605 23 00 1A 01 10 00 12 60

配置完成后PMC007會每隔1s發出PDO報文,當GPIO端口有變化時也會發出該報文

PDO映射內容:187 03 00

該報文表示GPIO1和GPIO2為高電平。

關于CANopen的簡介就到這了,歡迎補充和詢問

更多內容請訪問 重慶譜思機器人控制系統 http://m.myqzh.cn/