Profile Position in CanOpen and change set immediatly
Hello,
I have an application in CanOpen Profile Position Mode where I need to change the velocity at a precise point.
For example, go to 40000 counts (in absolute) at Speed X, then go to 48000 counts at a diffrent speed (without a stop between the 2 moves).
On the CanOpen manual, we could read that with bit 5 (change set immediatly), the AKD could process the new data AFTER the previous one was reached .
When I try to implement this, it seems that the drive processes new data immediatly !!!
This is my sequence :
- write position data through 607A, 6081, 6083 & 6084 (40000 in 607A in my case)
- Start motion with 0x3F in 6040
- Wait that bit 10 of 6041 = 0
- Set 6040 to 0x2F
- Wait bit 12 of 6041 = 0
- Write new position data in 607A and 6081 (48000 in 607A in my case)
- Wait bit 12 of 6041 = 1
- Set 6040 to 0x3F
What is the problem in this sequence ?
Thanks for your help.
Best regards.
Comments & Answers
toddevans01 said ...
3F is 111111 in binary which means you are telling the drive to expect to set immediate because bit 5 is set in the control word in this case.
2F is 101111 in binary which means you are still telling the drive to expect to set immediate because bit 5 is still set.
Bit 5 has to be OFF ( 0 ) for single setpoints ( not immediate ) before you trigger the new setpoint bit 4.
Refer to pages 130 and 131 in the AKD CANopen Communications manual to review the sequence and bit descriptions
toddevans01 said ...
I was able to replicate your issue and the second set of values ( position velocity accel decel ) take effect as soon as the rising edge of bit 4 ( new setpoint )
is processed; not when the first move or values is done.
I have not seen an implementation nor have sample code that shows using MT.x parameters to create and use motion tasks instead of motion task 0 which the new setpoint mechanism uses.
The drive is capable of having 2 predefined motion tasks setup by Workbench where one blends into the other.
If your controller supports interpolated position mode you may want to consider that instead of profile position mode. That way your master can do the profiling on the fly.
I hope this helps!
3F is 111111 in binary which
3F is 111111 in binary which means you are telling the drive to expect to set immediate because bit 5 is set in the control word in this case.
2F is 101111 in binary which means you are still telling the drive to expect to set immediate because bit 5 is still set.
Bit 5 has to be OFF ( 0 ) for single setpoints ( not immediate ) before you trigger the new setpoint bit 4.
Refer to pages 130 and 131 in the AKD CANopen Communications manual to review the sequence and bit descriptions.
Hello Todd,
Hello Todd,
Thanks for your answer.
OK, I understand the effect of bit 5 (set immediate)
But in my case, I don't want to use Single points, but "Set of setpoints" as described page 130
I mean :
I want to ask to the drive (by CanOpen) to go to Pos_target1 at Cmd_velocity1, and then (without reducing the speed to 0), to go to Pos_target2 at Cmd_velocity2 (like the blending task functionnality on Workbench)
Of course, one manner could be to set Pos_target2 to 607A, Cmd_velocity1 in 6081, to start the motion task, to read the Actual position and when it is > to Pos_Target1, to switch on the fly the Cmd_Velocity with bit 5 of ControlWord to 1. But I'am afraid that the PLC is not fast enough to have an accurate and repetable result.
So I will prefer, if possible, to "load" the 2 motion tasks in advance ... But I don't find how to do that...
I know that with other drives in DS402, bit 9 of the Control Word in Profile Position mode has this function : but it seems that it is not the case with AKD...
I see on the last FW that there are some more objects like 0x2080/0x2081 for MT.NUM access in CanOpen, but I don't find how to use them to solve my problem...
Thanks a lot for your help.
Best regards.