Rockwell motion instructions execution

Join Date
Jul 2021
Location
Bulgaria
Posts
51
Hi,

We have a machine with 9 servo motors and Kinetix 5100 drives. The controller is L33ER and there is no motion control in the project.

The standard motion instructions are used in the project - MSF, MSO, MAM, MAH, MAT, MAS, MAJ.

There is a routine for the servo motion part of the project, where, in a separate task, each servo has its own instance of the add-on instruction called. The add-on instruction is, in my opinion, a general approach as it has all the motion instruction called and each of them a bit for enable. Each servo has a UDT as an INOUT parameter to the add-on instruction.

Now, the condition for enabling a motion instruction is a rising edge of a bit and this bit is reset after some time with a timer.

Let us assume that a MAM instruction was executed and the PC bit is on, the motor is at the desired position and no errors occurred.

In the logic the IP bit is monitored to proceed to the next state where the PC bit is expected.

What if I want to execute the same instruction again with no change in the desired position. The IP bit should get on and the logic should proceed to the next state of the state machine.

The execution of the motion instruction more than once is utilized in the error recovery routine that every module add-on instruction has.

My observations show that sometimes the IP is seen by the program and the recover sequence is executed successfully, but on a random occurrence the IP bit does not get on since the logic just stays at the state where the IP is expected.

Perhaps, the reason that I issue multiple motion commands and they cannot be executed in one cycle is the reason for the random occurrence of the weird behavior. In some situations 5 servos should be started at the same time.

What causes this behavior and what would your approach be?

Best Regards
Konstantin Kolev
 
For some of us, seeing the code would make it easier to answer the question.

Also, what are the PC and IP bits? Is PC the bit with the rising edge that triggers action? Is IP the memory bit to detect the rising edge of the PC bit? Is there a separate pair of [PC,IP] bits for each servo? Are the PC and IP bits part of the UDT for each instance of the AOI?
 
Also, what are the PC and IP bits? Is PC the bit with the rising edge that triggers action? Is IP the memory bit to detect the rising edge of the PC bit? Is there a separate pair of [PC,IP] bits for each servo? Are the PC and IP bits part of the UDT for each instance of the AOI?

.IP = In Process
.PC = Process Complete

They are part of a motion instruction tag and are set by the process as appropriate. There should be separate bits for each instruction, as they are part of the instruction control rather than the axis itself -- each instruction must have its own Motion Control tag.

Normally, when a motion instruction is triggered the .IP bit is set, then when it completes the .IP bit is cleared and .PC is set. The .IP bit is also cleared if another motion instruction interrupts the process.
 
.IP = In Process
.PC = Process Complete

They are part of a motion instruction tag and are set by the process as appropriate. There should be separate bits for each instruction, as they are part of the instruction control rather than the axis itself -- each instruction must have its own Motion Control tag.

Normally, when a motion instruction is triggered the .IP bit is set, then when it completes the .IP bit is cleared and .PC is set. The .IP bit is also cleared if another motion instruction interrupts the process.
Thank you!
 
I'm a little confused. You said there isn't any motion control in the project but that it's using the standard motion instructions. Is the PLC a -L33ER or -L33ERM?
 
Hi,

By saying that there is no motion control in the project I mean that there is not any camming or gearing where more than 1 motor is synchronized to a master axis.

The program where the servo motion instructions are called is in a continuous task but yesterday I found out, on the Knowledgebase, that Rockwell recommend users placing the motion instructions calls in a cyclic task.

Today I will try what Rockwell recommend and give feedback.

The PLC is L33ER.

Best Regards
Konstantin Kolev
 
Oh, I see what's going on.

The 1769-L33ER doesn't support Logix Motion instructions. The Kinetix 5100 drive doesn't support CIP Motion over Ethernet.

So Rockwell Automation provides a set of Add-On Instructions that function *similarly* to the Logix Motion instructions. You aren't executing an ordinary Logix "Motion Axis Move" instruction, but instead a "MAM-like AOI for Kinetix 5100".

As a general matter, you should use the "PC" bit, for "Process Complete" if you want to take an action when the motion instruction has completed its whole process.

The speed and synchronous nature of the updates of the .IP and .PC bits in the Kinetix 5100 specific AOI's may not be precisely the same as the native Logix Motion instructions.
 
I was wondering if something like that was happening. We ended up using a Mitsubishi J4 servo on our last system because the Kinetix components had too long a lead time. We're using a non-motion CompactLogix with Mitsubishi's custom AOIs.
 
After some time of researching and digging information I found out that the library for Kinetix 5100 that I utilized is for drive with firmware version 1.xx but my drives are version 2.xx.

Our local Rockwell dealer advised us to even update the drives firmware to 4.001 which is the latest version available. Then with the Power Device Library 3.0.3 and version 3.xx of the instruction everything is better.

The Device Object Add-On Instruction takes care of the input and output telegrams between the controller and the drive therefore the CPS instruction is removed. The Motion Add-On Instructions have more parameters that give information about that is going on during movement.

The only variable that is described in the manual of the Kinetix 5100 is the WarningCode and FaultCode variables that are said to be in the raC_UDT_Itf_K5100_Sts UDT are missing in my instances of this type of UDT or I cannot find them.

You can check the picture.

Best Regards
Konstantin Kolev

Kinetix 5100 Variable UDT.png
 

Similar Topics

Hi currently my existing PLC using AB motor & driver to spin production, however customer want to another set, if this possible we use different...
Replies
1
Views
220
I have always controlled servos in Rockwell motion using position loop. I have an application where one process will push against a servo...
Replies
3
Views
271
Hello Folks, I am trying to undertsnad the Magnemotion from Rockwell. Please suggest Any leads on tutorial for magnemotion or similar...
Replies
2
Views
1,563
So I recently estimated the power consumption of an electric motor for a specific application. The load that the motor was required to move...
Replies
0
Views
5,803
Looking for an opinion, If you had a choice, which would you choose for a multi-Axis coordinated motion control application? Choice 1 The...
Replies
17
Views
9,691
Back
Top Bottom