CANopen版本控制产品修改映射PDO对象方法

CANopen版本控制产品修改映射PDO对象方法

CANopen驱动控制器默认可使用8个通道的PDO,每个通道最大支持8个Byte的数据,标准
出厂配置了默认4个通道的数据,另外4个通道为空,为了方便用户自行修改PDO配置或者重新整合PDO通道数据,现将修改配置方案简单介绍如下:

 

需要用到的硬件工具和软件如下:

一、一体化电机或者驱动控制器(CANopen版本的)

二、CANOPEN-USB转换器/,确保能正常通讯连接

三、对应版本的PNDS软件或者直接用SDO读写

Note: 以下介绍的操作为用我们自带的PNDS软件修改对象字典列表来完成。当然用SDO读写同样可行,方法仍然是对对应的对象做赋值操作。并且保存。

修改RPO步骤说明

一、正确连接PNDS软件,读取刷新Object dictionary数据列表

二、1400配置1600(RPDO);1800配置1A00(T-PDO)

Note:1400的子索引01用于控制RPDO-1是否允许修改,1401的子索引01用于控制RPDO-2是否允许修改。

1800的子索引01用于控制TPDO-1是否允许修改,1801子索引01用于控制RPDO-2是否允许修改。依次类推

 

三、修改配置R-PDO-1,先把1400:01最高位置1,即把对象字典列表中的最高位修改为8(16进制)

Note:如果用SDO修改,先将1400:01的数据读回来,然后写入最高位修改为8(16进制)(二进制最高位置1)的数据

 

四、1600:00中的子索引个数先设置为0,

Note:如果用SDO修改,写入1600:00的数据为0

 

五、配置需要的RPDO-1对象,本例以6040,6081,607a配置到第一PDO通道,步骤如下:

1600:01=0x60600008   
1600:02=0x60400010   
1600:03=0 

1600:04及以后的子索引都为0

Note:对象本身的长度查询手册了解。32位数据用20  16位数据用10  8位长度用08

 

六、1600:00的子索引个数置为实际个数,本例子为2个

Note:如果用SDO修改,写入1600:00的数据为2

 

七、修改配置R-PDO-2,先把1401:01最高位置1

将1601:00清零

将1601:01 设置为需要的对象(以607A和6081为例)

1601:01 = 0x607A0020

1601:02 = 0x60810020

1601:03=0    1601:04及以后均需要清零,否则会造成数据溢出

1601:00=2   //实际有效子索引个数

最后把1401:01最高位置0  结束修改

 

依次方法配置RPDO-3

 

八、保存1010:01=1702257011、1010:02=1702257011,断电重启,重新连接软件并切换到Object dictionary
确认是否修改成功

SDO保存指令:如下

保存:600+ID  23 10 10 02 73 61 76 65 //通讯参数保存

保存所有参数:600+ID  23 10 10 01 73 61 76 65 //通讯参数保存

查询:600+ID 40  10 10 02 00 00 00 00  //查询1010:02等于1时,保存成功

 

断电重启,检查。用SDO直接查询1600:01  1600:02  1600:03是否准确

 

针对以上案例的是使用过程数据举例:

200+ID  01 06 00   //意思等同于6060=1  6040=6

300+ID E8 03 00 00 32 00 00 00   //意思等同于607a=0x3E8  6081=0x32

 

修改TPO步骤说明


一、正确连接PNDS软件,读取刷新Object dictionary数据列表

二、1800配置1A00(TPDO) //允许修改的配置内部对应关系

1801配置1A01

1802配置1A02

三、修改配置T-PDO-1,先把1800:01最高位置1,即把对象字典列表中的最高位修改为8(16进制)(二进制最高位置1)

四、1A00:00中的子索引个数置为0

五、配置需要的PDO对象,本例606C(真实速度),6064(真实位置)配置到第一PDO通道,
步骤如下:
1A00:01=0x60640020 //32位数据
1A00:02=0x606C0010 //16位数据
1A00:03=0x60410010

六、1A00:00的子索引个数置为实际个数,本例子为3个

七、把1A00:00最高位置0,即把对象字典列表中的最高位修改为0

八、保存(1010:01=1702257011) 、(1010:02=1702257011)),断电重启,重新连接软件并切换到Object dictionary
确认是否修改成功

 

 

总结,如果用户希望做以下配置

PLC_TO_电机
RX-PDO 字节数 名称 数据类型 备注
PDO1 byte1 工作模式
6060
INTEGER8 1:定位模式
2:速度模式
3:PV模式 等
byte2-3 控制字
6040
UNSIGNED16 控制字
PDO2 byte1-4 目标位置 INTEGER32 Target positon  
byte5-8 目标速度 UNSIGNED32 Target velocity
电机_TO_PLC
TX-PDO 字节数 名称 数据类型 备注
PDO1 byte1-4 马达位置
6064
INTEGER32 电机当前位置
byte5 实时速度
606C
INTEGER32 606C为当前实时速度,因为数据不会特别大,因此映射低16位即可
byte6 状态字
6041
UNSIGNED16  

 

完整SDO发送过程

SDO发送过程: 注解  
600+ID  23 00 14 01 01 02 00 80        1400:01=0x80000200+ID(前面ID举例为1)  
600+ID  2F 00 16 00 00 00 00 00  1600:00=0  
600+ID  23 00 16 01 08 00 60 60 1600:01=0x60600008  
600+ID  23 00 16 02 10 00 40 60 1600:02=0x60400010  
600+ID  23 00 16 03 00 00 00 00 1600:03=0  
600+ID  23 00 16 04 00 00 00 00 1600:04=0  
600+ID  2F 00 16 00 02 00 00 00  1600:00=2  
600+ID  23 00 14 01 01 02 00 00        1400:01=0x00000200+ID (前面ID举例为1)  
     
600+ID  23 01 14 01 01 02 00 80        1401:01=0x80000300+ID  
600+ID  2F 01 16 00 00 00 00 00  1601:00=0  
600+ID  23 01 16 01 20 00 7A 60 1601:01=0x607A0020  
600+ID  23 01 16 02 20 00 81 60 1601:02=0x60810020  
600+ID  23 01 16 03 00 00 00 00 1601:03=0  
600+ID  23 01 16 04 00 00 00 00 1601:04=0  
600+ID  2F 01 16 00 02 00 00 00  1600:00=2  
600+ID  23 01 14 01 01 03 00 00        1400:01=0x00000200+ID (前面ID举例为1)  
     
600+ID  23 02 14 01 01 02 00 80        1402:01=0x80000400+ID 清空第三个通道
600+ID  2F 02 16 00 00 00 00 00  1602:00=0
600+ID  23 02 16 01 00 00 00 00 1602:01=0
600+ID  23 02 16 02 00 00 00 00 1602:02=0
600+ID  23 02 16 03 00 00 00 00 1602:02=0
600+ID  23 02 16 04 00 00 00 00 1602:03=0
600+ID  23 02 14 01 01 04 00 00        1402:01=0x00000400+ID(前面ID举例为1)
    依次清空第四个通道
600+ID  23 03 14 01 01 02 00 80        1403:01=0x80000500+ID
600+ID  2F 03 16 00 00 00 00 00  1603:00=0
600+ID  23 03 16 01 00 00 00 00 1603:01=0
600+ID  23 03 16 02 00 00 00 00 1603:02=0
600+ID  23 03 16 03 00 00 00 00 1603:02=0
600+ID  23 03 16 04 00 00 00 00 1603:03=0
600+ID  23 03 14 01 01 05 00 00        1403:01=0x00000500+ID(前面ID举例为1)  
     
600+ID  23 10 10 02 73 61 76 65 1010:02=1702257011 保存通讯参数
600+ID  23 10 10 01 73 61 76 65 1010:01=1702257011 保存所有参数

 

修改T-PDO

600+ID  23 00 18 01 01 18 00 80        1800:01=0x80000180+ID(前面ID举例为1) 配置T-PDO第一通道
600+ID  2F 00 1A 00 00 00 00 00  1A00:00=0
600+ID  23 00 1A 01 20 00 64 60 1A00:01=0x60640020
600+ID  23 00 1A 02 10 00 6C 60 1A00:02=0x606C0010
600+ID  23 00 1A 03 10 00 41 00 1A00:03=0x60410010
600+ID  23 00 1A 04 00 00 00 00 1A00:04=0
600+ID  2F 00 1A 00 02 00 00 00  1A00:00=3
600+ID  23 00 18 01 01 18 00 00        1800:01=0x00000200+ID (前面ID举例为1)
    依次配置T-PDO第二通道
600+ID  23 10 10 02 73 61 76 65 1010:02=1702257011 保存通讯参数
600+ID  23 10 10 01 73 61 76 65 1010:01=1702257011 保存所有参数

Related Articles