《十》canfestival系列教程之配置canopen驅(qū)動器為速度模式,讓電機轉(zhuǎn)起來.
這一節(jié)我們就開始讓電機轉(zhuǎn)動起來.
首先需要準備的東西:
支持canopen的驅(qū)動器.(這里用的是faulhaber的驅(qū)動器)
電腦,并裝有CANTest軟件.(這個軟件是用于發(fā)送can報文的)
can分析儀.
把參分析儀連接好電腦,打開電腦上的can分析儀軟件,我這里用的是CANTest.
有些需要安裝驅(qū)動.
然后把can分析儀的三根線:?can高,can低,地.? 連接到驅(qū)動器的can高,can低和地.
這里不需要交叉連接.
有一些驅(qū)動器會有STO:安全轉(zhuǎn)矩停止,這個是為了安全設(shè)置的,相當于槍的保險,
需要配置,才可以控制驅(qū)動器.

方法一 sdo驅(qū)動
可以用sdo直接進行驅(qū)動器的配置.
依次發(fā)送下面指令,
紅色:代表id?因為是寫入1號驅(qū)動器,所以用ds301中規(guī)定好的601.
橘色:代表功能,可以用22代替.
? ? ? ?(22表示寫入,不計長度,用起來比較方便.其實可以用它代替下面的2f,2b,27和23)
? ? ? ?(2f:?寫入1個)??(2b:?寫入2個)??(27:?寫入3個)??(23:?寫入4個)
綠色:代表索引(注意是小端模式,例如 40 60?實際上是 0x 6040)
? ? ? ? ?查詢字典或者驅(qū)動器ds402可以知道具體含義
藍色:子索引? ?查詢字典或者驅(qū)動器ds402可以知道具體含義
紫色:數(shù)據(jù) (注意數(shù)據(jù)的類型,長度)
601,22 60 60 00 03 00 00 00? ?//?配置為速度模式,03為速度模式 6060 00?索引代表模式.
601,2b 40 60 00 06 00 00 00? ?//?配置驅(qū)動器(固定流程)
601,2b 40 60 00 07?00 00 00? ?//?配置驅(qū)動器(固定流程)
601,2b 40 60 00 0f?00 00 00? ? //?配置驅(qū)動器(固定流程)
//?下面把e8,寫入到60ff?00里面,這個索引60ff 00就是速度的索引,在ds402中規(guī)定的.
601,23 ff?? 60 00 e8 00 00 00? ?
601,23 ff?? 60 00 e8 03?00 00? ?//?發(fā)送速度e8 03,是小端模式正確順序為03e8即十進制1000
601,23 ff?? 60 00 00?00 00 00? ?//?發(fā)送速度00?即停下來
發(fā)送數(shù)據(jù)和驅(qū)動器返回數(shù)據(jù)可見下圖:

如果此時電機轉(zhuǎn)動了,說明我們的硬件環(huán)境沒有問題.
為什么電機會轉(zhuǎn)動,是因為我們寫入了速度.
我們把速度寫入了 60ff 里面.
這種方法為sdo驅(qū)動,實際使用中常用的是pdo方式驅(qū)動.

方法二?pdo驅(qū)動
這個是比較推薦的方式,也是習慣上常用的方式.重點!!!
在用pdo驅(qū)動前,需要進行驅(qū)動器的配置.
因為通信是雙方的,所以單片機和驅(qū)動器都需要進行配置.
單片機作為控制器,要配置字典,以完成"速度變量"的發(fā)送.
驅(qū)動器作為響應器件,要配置字典,以完成對"速度變量"的接收.
我們需要關(guān)注的是速度變量怎樣傳輸?shù)?!!

首先單片機的配置:
單片機的字典配置可以用canfestival自帶的上位機進行配置.
比如下圖中,配置velocity_1的過程,
這個velocity_1就是我想要通過單片機傳輸出去的"速度變量".
這是一個pdo發(fā)送接口,就是一個全局變量.

經(jīng)過上面的配置,我們的單片機就可以通過對"速度變量"的賦值,把它傳出去了,一般默認會是0.
它是一個全局的變量,加入相應的字典頭文件,在程序中進行賦值就可以了.
可以參照"速度變量"進行其他變量的傳遞.如下圖:

上面有了全局變量:"速度變量".還需要配置它需要通過哪個pdo通道傳輸出去.

上圖選擇了pdo1發(fā)送,
(pdo1,pdo2,,,,pdo9,,,pdo512這個都是單片機內(nèi)部的變量,通道號是無法傳輸出去的.)
(要傳輸出去還需要給pdo加上cob-id,這個id號回傳輸出去.)
為什么要配置pdo1的cob-id呢?因為接收只認id.
這里把發(fā)送cob-id配置成201,
接收方檢測cob-id為201的數(shù)據(jù).
這樣就相當于通道互聯(lián)了...下圖為單片機pdo1綁定cob-id的過程:

至此,單片機端的配置完成.
下面進行驅(qū)動器的配置.

驅(qū)動器的配置是驅(qū)動器字典的配置:
就是創(chuàng)建建一個接收接口,要把接收來的"速度變量"進行存放.
存放在字典的哪個位置,要進行配置.
配置驅(qū)動器的字典有兩種方法:
通過驅(qū)動器廠家自帶的上位機;
通過單片機發(fā)送sdo配置驅(qū)動器的字典;
由于各個廠家的上位機不一樣,我們只講如何用sdo配置驅(qū)動器字典:
這個過程是有一個固定的流程的(是一個模板):
1.失能pdo
把pdo通訊參數(shù)的01子索引中,cob-id的最高位置1,也就是設(shè)置成80.
601,22 00 14 01 01?02 00 80? // 接收pdo是201開頭的數(shù)據(jù). 要接收的cob-id于發(fā)送對應.
2.消除數(shù)據(jù)個數(shù)
601,22 00 16 00 00 00 00 00
3.pdo映射參數(shù)的寫入
601,22 00 16 01 20 00?ff 60? ?// 這個60ff就是要存放"速度變量"的位置20是格式,規(guī)定32位
4.使能pdo
601,22 00 14 01 01 02 00 00
?進行完上面pdo的映射后,
需要切換為速度模式.
601,2f 60 60 00 03 00 00 00
使能驅(qū)動器狀態(tài).
601,2b?40 60?00?06 00 00 00? ?//?配置驅(qū)動器(固定流程)
601,2b?40 60?00?07?00 00 00? ?//?配置驅(qū)動器(固定流程)
601,2b?40 60?00?0f?00 00 00? ? //?配置驅(qū)動器(固定流程)
使能can總線狀態(tài).
000,01 00?
然后用單片機的pdo1發(fā)送數(shù)據(jù).
201,e8 03 00 00? ?// 201就是cob-id
驅(qū)動器檢測到201,就會進行后面數(shù)據(jù)的拆分.按照規(guī)定好的取20也就是32位數(shù)據(jù),
把00 00 03 e8存入到字典的60ff,
這個字典60ff就是驅(qū)動器轉(zhuǎn)動的時候的速度....
然后驅(qū)動器就會按照03 e8的速度轉(zhuǎn)動起來...03 e8也就是1000...

原創(chuàng)文集,轉(zhuǎn)載注明原地址呦...