欢迎光临散文网 会员登陆 & 注册

《十》canfestival系列教程之配置canopen驱动器为速度模式,让电机转起来.

2021-10-12 10:33 作者:GXTon_阿通  | 我要投稿

这一节我们就开始让电机转动起来.

首先需要准备的东西:

  1. 支持canopen的驱动器.(这里用的是faulhaber的驱动器)

  2. 电脑,并装有CANTest软件.(这个软件是用于发送can报文的)

  3. can分析仪.

把参分析仪连接好电脑,打开电脑上的can分析仪软件,我这里用的是CANTest.

有些需要安装驱动.

然后把can分析仪的三根线: can高,can低,地.  连接到驱动器的can高,can低和地.

这里不需要交叉连接.

有一些驱动器会有STO:安全转矩停止,这个是为了安全设置的,相当于枪的保险,

需要配置,才可以控制驱动器.


方法一 sdo驱动

可以用sdo直接进行驱动器的配置.

依次发送下面指令,

红色:代表id 因为是写入1号驱动器,所以用ds301中规定好的601.

橘色:代表功能,可以用22代替.

       (22表示写入,不计长度,用起来比较方便.其实可以用它代替下面的2f,2b,27和23)

       (2f: 写入1个)  (2b: 写入2个)  (27: 写入3个)  (23: 写入4个)

绿色:代表索引(注意是小端模式,例如 40 60 实际上是 0x 6040)

         查询字典或者驱动器ds402可以知道具体含义

蓝色:子索引   查询字典或者驱动器ds402可以知道具体含义

紫色:数据 (注意数据的类型,长度)

601,22 60 60 00 03 00 00 00   // 配置为速度模式,03为速度模式 6060 00 索引代表模式.

601,2b 40 60 00 06 00 00 00   // 配置驱动器(固定流程)

601,2b 40 60 00 07 00 00 00   // 配置驱动器(固定流程)

601,2b 40 60 00 0f 00 00 00    // 配置驱动器(固定流程)

// 下面把e8,写入到60ff 00里面,这个索引60ff 00就是速度的索引,在ds402中规定的.

601,23 ff   60 00 e8 00 00 00   

601,23 ff   60 00 e8 03 00 00   // 发送速度e8 03,是小端模式正确顺序为03e8即十进制1000

601,23 ff   60 00 00 00 00 00   // 发送速度00 即停下来

发送数据和驱动器返回数据可见下图:

如果此时电机转动了,说明我们的硬件环境没有问题.

为什么电机会转动,是因为我们写入了速度.

我们把速度写入了 60ff 里面.

这种方法为sdo驱动,实际使用中常用的是pdo方式驱动.


方法二 pdo驱动

这个是比较推荐的方式,也是习惯上常用的方式.重点!!!

在用pdo驱动前,需要进行驱动器的配置.

因为通信是双方的,所以单片机和驱动器都需要进行配置.

单片机作为控制器,要配置字典,以完成"速度变量"的发送.

驱动器作为响应器件,要配置字典,以完成对"速度变量"的接收.

我们需要关注的是速度变量怎样传输的!!!

首先单片机的配置:

单片机的字典配置可以用canfestival自带的上位机进行配置.

比如下图中,配置velocity_1的过程,

这个velocity_1就是我想要通过单片机传输出去的"速度变量".

这是一个pdo发送接口,就是一个全局变量.

经过上面的配置,我们的单片机就可以通过对"速度变量"的赋值,把它传出去了,一般默认会是0.

它是一个全局的变量,加入相应的字典头文件,在程序中进行赋值就可以了.

可以参照"速度变量"进行其他变量的传递.如下图:

上面有了全局变量:"速度变量".还需要配置它需要通过哪个pdo通道传输出去.


上图选择了pdo1发送,

(pdo1,pdo2,,,,pdo9,,,pdo512这个都是单片机内部的变量,通道号是无法传输出去的.)

(要传输出去还需要给pdo加上cob-id,这个id号回传输出去.)

为什么要配置pdo1的cob-id呢?因为接收只认id.

这里把发送cob-id配置成201,

接收方检测cob-id为201的数据.

这样就相当于通道互联了...下图为单片机pdo1绑定cob-id的过程:

至此,单片机端的配置完成.

下面进行驱动器的配置.

驱动器的配置是驱动器字典的配置:

就是创建建一个接收接口,要把接收来的"速度变量"进行存放.

存放在字典的哪个位置,要进行配置.

配置驱动器的字典有两种方法:

  1. 通过驱动器厂家自带的上位机;

  2. 通过单片机发送sdo配置驱动器的字典;

由于各个厂家的上位机不一样,我们只讲如何用sdo配置驱动器字典:

这个过程是有一个固定的流程的(是一个模板):

1.失能pdo

把pdo通讯参数的01子索引中,cob-id的最高位置1,也就是设置成80.

601,22 00 14 01 01 02 00 80  // 接收pdo是201开头的数据. 要接收的cob-id于发送对应.

2.消除数据个数

601,22 00 16 00 00 00 00 00

3.pdo映射参数的写入

601,22 00 16 01 20 00 ff 60   // 这个60ff就是要存放"速度变量"的位置20是格式,规定32位

4.使能pdo

601,22 00 14 01 01 02 00 00

 进行完上面pdo的映射后,

需要切换为速度模式.

601,2f 60 60 00 03 00 00 00

使能驱动器状态.

601,2b 40 60 00 06 00 00 00   // 配置驱动器(固定流程)

601,2b 40 60 00 07 00 00 00   // 配置驱动器(固定流程)

601,2b 40 60 00 0f 00 00 00    // 配置驱动器(固定流程)

使能can总线状态.

000,01 00 

然后用单片机的pdo1发送数据.

201,e8 03 00 00   // 201就是cob-id


驱动器检测到201,就会进行后面数据的拆分.按照规定好的取20也就是32位数据,

把00 00 03 e8存入到字典的60ff,

这个字典60ff就是驱动器转动的时候的速度....

然后驱动器就会按照03 e8的速度转动起来...03 e8也就是1000...

原创文集,转载注明原地址呦...




《十》canfestival系列教程之配置canopen驱动器为速度模式,让电机转起来.的评论 (共 条)

分享到微博请遵守国家法律