CiA402中的“原点回归模式”和“轮廓位置模式”搭配使用操作实例
使用原点回归模式配合轮廓位置模式是步进伺服电机使用过程中最常用的使用方法。本文将对正常控制电机发送的命令顺序进行简要说明。
原点回归的方式以堵转回原点的方式进行举例说明,其他传感器的方式可以根据通讯手册自行配置,只是设置传感器和设置原点回归方向存在区别。
适用于本司 STM-M系列一体化步进伺服电机 、 BLM系列一体无刷电机 、 PMM(P)系列一体伺服电机 。
一、执行原点回归动作
电机上电后先执行原点回归的动作,发送的指令依次如下表所示:
原点回归模式(以堵转找原点方法举例)
|
指令名称 |
CANopen地址 |
Modbus地址 |
读/写 |
数据 |
CANopen报文 |
Modbus报文 |
|
控制模式设置为CIA402模式 |
2002h:01h |
00B1h |
写 |
0 |
SEND: 601 2B 02 20 01 00 00 00 00 RECV: 581 60 02 20 01 00 00 00 00 |
SEND: 01 10 00 B1 00 01 02 00 00 RECV: 01 10 00 B1 00 01 |
|
运行模式设置为原点回归模式 |
6060h |
03C2h |
写 |
0x06 |
SEND: 601 2F 60 60 00 06 00 00 00 RECV: 581 60 60 60 00 00 00 00 00 |
SEND: 01 10 03 C2 00 01 02 00 06 RECV: 01 10 03 C2 00 01 |
|
设置堵转检测力矩为30% |
2007h:13h |
0170h |
写 |
300 |
SEND: 601 2B 07 20 13 2C 01 00 00 RECV: 581 60 07 20 13 00 00 00 00 |
SEND: 01 10 01 70 00 01 02 01 2C RECV: 01 10 01 70 00 01 |
|
设置堵转检测时间为5ms |
2007h:15h |
0172h |
写 |
50 |
SEND: 601 2B 07 20 15 32 00 00 00 RECV: 581 60 07 20 15 00 00 00 00 |
SEND: 01 10 01 72 00 01 02 00 32 RECV: 01 10 01 72 00 01 |
|
设置原点回归方式为正向堵转找原点或反向堵转找原点 |
6098h |
0416h |
写 |
37 |
SEND:601 2F 98 60 00 25 00 00 00 RECV: 581 60 98 60 00 00 00 00 00 |
SEND: 01 10 04 16 00 01 02 00 25 RECV: 01 10 04 16 00 01 |
|
6098h |
0416h |
写 |
38 |
SEND: 601 2F 98 60 00 26 00 00 00 RECV: 581 60 98 60 00 00 00 00 00 |
SEND: 01 10 04 16 00 01 02 00 26 RECV: 01 10 04 16 00 01 |
|
|
设置寻找原点信号速度为1000 |
6099h:02h |
0419h |
写 |
1000 |
SEND: 601 23 99 60 02 E8 03 00 00 RECV: 581 60 99 60 02 00 00 00 00 |
SEND: 01 10 04 19 00 02 04 00 00 03 E8 RECV: 01 10 04 19 00 02 |
|
设置回零加速度为 200000 |
609Ah |
041Bh |
写 |
200000 |
SEND: 601 23 9A 60 00 40 0D 03 00 RECV: 581 60 9A 60 00 00 00 00 00 |
SEND: 01 10 04 1B 00 02 04 00 03 0D 40 RECV: 01 10 04 1B 00 02 |
|
使电机准备 |
6040h |
0380h |
写 |
0x6 |
SEND: 601 2B 40 60 00 06 00 00 00 RECV: 581 60 40 60 00 00 00 00 00 |
SEND: 01 10 03 80 00 01 02 00 06 RECV: 01 10 03 80 00 01 |
|
使电机失能 |
6040h |
0380h |
写 |
0x7 |
SEND: 601 2B 40 60 00 07 00 00 00 RECV: 581 60 40 60 00 00 00 00 00 |
SEND: 01 10 03 80 00 01 02 00 07 RECV: 01 10 03 80 00 01 |
|
使电机使能 |
6040h |
0380h |
写 |
0xF |
SEND: 601 2B 40 60 00 0F 00 00 00 RECV: 581 60 40 60 00 00 00 00 00 |
SEND: 01 10 03 80 00 01 02 00 0F RECV: 01 10 03 80 00 01 |
|
使电机运行 |
6040h |
0380h |
写 |
0x1F |
SEND: 601 2B 40 60 00 1F 00 00 00 RECV: 581 60 40 60 00 00 00 00 00 |
SEND: 01 10 03 80 00 01 02 00 1F RECV: 01 10 03 80 00 01 |
此时电机会进行原点回归的动作,等到原点回归完成后,咱们可以根据读取到的状态字信息和电机的实际位置是否在0附近,来判断电机是否原点回归完成。
这些参数会在PDO参数中周期性更新,也可以使用SDO周期性的读取。
读取的报文如下:
|
指令名称 |
CANopen地址 |
Modbus地址 |
读/写 |
数据 |
CANopen报文 |
Modbus报文 |
|
读取状态字 |
6041h |
0381h |
读 |
— |
SEND: 601 40 41 60 00 00 00 00 00 RECV: 581 4B 41 60 00 60 02 00 00 |
SEND: 01 04 03 81 00 01 RECV: 01 04 02 02 28 |
|
读取实际位置(编码器单位) |
6063h |
03C6h |
读 |
— |
SEND: 601 40 63 60 00 00 00 00 00 RECV: 581 43 63 60 00 30 F4 FF FF |
SEND: 01 04 03 C6 00 02 RECV: 01 04 04 FF FF F6 31 |
|
读取实际位置(用户单位) |
6064h |
03C8h |
读 |
— |
SEND: 601 40 64 60 00 00 00 00 00 RECV: 581 43 64 60 00 30 F4 FF FF |
SEND: 01 04 03 C8 00 02 RECV: 01 04 04 FF FF F6 31 |
|
读取实际速度 |
606Ch |
03D5h |
读 |
— |
SEND: 601 40 6C 60 00 00 00 00 00 RECV: 581 43 6C 60 00 00 00 00 00 |
SEND:01 04 03 D5 00 02 RECV: 01 04 04 00 00 00 00 |
|
读取实际转矩 |
6077h |
03E3h |
读 |
— |
SEND: 601 40 77 60 00 00 00 00 00 RECV: 581 4B 77 60 00 00 00 00 00 |
SEND: 01 04 03 E3 00 01 RECV: 01 04 02 00 04 |
如果原点回归完成,状态字第12位会从0变为1,如果原点回归失败,状态字第13位会从0变为1。
此外,也可以附加判断电机当前位置是否在0附近的200个脉冲以内。
二、切换轮廓位置模式
原点回归完成后,需要切换到轮廓位置模式下进行定位运动。可以在使能状态下直接发送这个指令切换到轮廓位置模式,发送的指令如下:
|
指令名称 |
CANopen地址 |
Modbus地址 |
读/写 |
数据 |
CANopen报文 |
Modbus报文 |
|
运行模式设置为轮廓位置模式 |
6060h |
03C2h |
写 |
0x01 |
SEND: 601 2F 60 60 00 01 00 00 00 RECV: 581 60 60 60 00 00 00 00 00 |
SEND: 01 10 03 C2 00 01 02 00 01 RECV: 01 10 03 C2 00 01 |
此时电机就切换到了轮廓位置模式,此时控制字为0x1F。
然后正常进行位置指令的设置和运行就可以。依次发送的报文举例如下:
|
指令名称 |
CANopen地址 |
Modbus地址 |
读/写 |
数据 |
CANopen报文 |
Modbus报文 |
|
设置目标位置为10000(用户单位) |
607Ah |
03E7h |
写 |
10000 |
SEND: 601 23 7A 60 00 10 27 00 00 RECV: 581 60 7A 60 00 00 00 00 00 |
SEND: 01 10 03 E7 00 02 04 00 00 27 10 RECV: 01 10 03 E7 00 02 |
|
设置目标速度为10000(用户单位) |
6081h |
03F8h |
写 |
10000 |
SEND: 601 23 81 60 00 10 27 00 00 RECV: 581 60 81 60 00 00 00 00 00 |
SEND: 01 10 03 F8 00 02 04 00 00 27 10 RECV: 01 10 03 F8 00 02 |
|
设置加速度为40000(用户单位) |
6083h |
03FCh |
写 |
40000 |
SEND: 601 23 83 60 00 40 9C 00 00 RECV: 581 60 83 60 00 00 00 00 00 |
SEND: 01 10 03 FC 00 02 04 00 00 9C 40 RECV: 01 10 03 FC 00 02 |
|
设置减速度为40000(用户单位) |
6084h |
03FEh |
写 |
40000 |
SEND: 601 23 84 60 00 40 9C 00 00 RECV: 581 60 84 60 00 00 00 00 00 |
SEND: 01 10 03 FE 00 02 04 00 00 9C 40 RECV: 01 10 03 FE 00 02 |
|
电机以绝对位置,立即更新的方式运行(电机是以控制字 6040h(0380h)的 bit4 的上升沿接收新的位置命令,所以每次执行完一次运行后需 要把此位清零。) |
6040h |
0380h |
写 |
0x2F |
SEND: 601 2B 40 60 00 2F 00 00 00 RECV: 581 60 40 60 00 00 00 00 00 |
SEND: 01 10 03 80 00 01 02 00 2F RECV: 01 10 03 80 00 01 |
|
6040h |
0380h |
写 |
0x3F |
SEND: 601 2B 40 60 00 3F 00 00 00 RECV: 581 60 40 60 00 00 00 00 00 |
SEND: 01 10 03 80 00 01 02 00 3F RECV: 01 10 03 80 00 01 |
走到这一步,电机会以设定的位置进行绝对定位运动,运动完成后,状态字第10位“target reach”会从0变为1,代表定位完成。
然后定位新的位置,如果速度和加速度不需要改变的话,只发送下面3条指令即可。
|
指令名称 |
CANopen地址 |
Modbus地址 |
读/写 |
数据 |
CANopen报文 |
Modbus报文 |
|
设置目标位置为10000(用户单位) |
607Ah |
03E7h |
写 |
10000 |
SEND: 601 23 7A 60 00 10 27 00 00 RECV: 581 60 7A 60 00 00 00 00 00 |
SEND: 01 10 03 E7 00 02 04 00 00 27 10 RECV: 01 10 03 E7 00 02 |
|
电机以绝对位置,立即更新的方式运行(电机是以控制字 6040h(0380h)的 bit4 的上升沿接收新的位置命令,所以每次执行完一次运行后需 要把此位清零。) |
6040h |
0380h |
写 |
0x2F |
SEND: 601 2B 40 60 00 2F 00 00 00 RECV: 581 60 40 60 00 00 00 00 00 |
SEND: 01 10 03 80 00 01 02 00 2F RECV: 01 10 03 80 00 01 |
|
6040h |
0380h |
写 |
0x3F |
SEND: 601 2B 40 60 00 3F 00 00 00 RECV: 581 60 40 60 00 00 00 00 00 |
SEND: 01 10 03 80 00 01 02 00 3F RECV: 01 10 03 80 00 01 |
控制完成后,如果需要给电机脱使能,需要发送的指令为:
|
指令名称 |
CANopen地址 |
Modbus地址 |
读/写 |
数据 |
CANopen报文 |
Modbus报文 |
|
使电机失能 |
6040h |
0380h |
写 |
0x7 |
SEND: 601 2B 40 60 00 07 00 00 00 RECV: 581 60 40 60 00 00 00 00 00 |
SEND: 01 10 03 80 00 01 02 00 07 RECV: 01 10 03 80 00 01 |
如果想再次给电机使能。则发送:
|
指令名称 |
CANopen地址 |
Modbus地址 |
读/写 |
数据 |
CANopen报文 |
Modbus报文 |
|
使电机使能 |
6040h |
0380h |
写 |
0xF |
SEND: 601 2B 40 60 00 0F 00 00 00 RECV: 581 60 40 60 00 00 00 00 00 |
SEND: 01 10 03 80 00 01 02 00 0F RECV: 01 10 03 80 00 01 |
以上即是今天分享的全部内容,如果有任何问题,请及时联系我们。
或拨打全国统一服务热线:010-60213882,或发送邮件至:nimotion@ nimotion.com,我们将竭诚为您服务。
˜ 本文章全部内容或部分内容禁止擅自转载、拷贝。
