Need help in explaining servo axis control in AB ControlLogix

mikas_m

Member
Join Date
Feb 2007
Location
ck
Posts
154
Hello automation experts,

I'm trying to learn about servo axis control in AB ControlLogix PLCs (L33ERMS).
Attached is an example of a servo routine.
I need a help understanding this part of a program.
It seems to me that it is working in the following way:
User will enter command via HMI, this will be transferred in the UDT (User DataType) in the PLC program. ServoAxis.ActualPos is HMI variable while ServoParameter.ActualPos is actual variable for the drive control. It is initialized to zero.
Now, when boolean variable .StartServo is set to 1 (probably from HMI), there will be one shot execution that will reset the bit _Start.PC (or set it to zero), and it will also execute MAM block (but only for one cycle).
When _Start.PC is set to zero (unlatched) in network nr. 2, the variable.StartServo will NOT be unlatched, since condition is not true.

I have prior experience only with TIA portal and not with AB PLCs, but this logic is really looking strange to me.
Maybe I'm missing something here, but it looks like to me that rung 3 is not quite correct.

Any help in clarification is appreciated.

Thank you.

AB servo axis control.png
 
Here is how I understand it.

Rung 1.

ServoAxis.ActualPosition is literally your actual posiiton coming from the
drive/encoder. It is moved into the tag ServoParameter.ActualPostion which I
am assuming is used to display the position on the hmi?

Rung 2

When Axis.Command.StartServo is true you will unlatch the .PC bit of the MAM
instruction(because "Wrk_MI_Start" is your motion control in the MAM).
Then the MAM instruction is executed. The servo (if enabled) should start moving to
your set position of 2.

Rung 3

When your move is complete (ie: Wrk_MI_Start.PC is True). Unlatch your start
command (Axis.Command.StartServo)
 
Hi Eddy, what confuses me is that in rung 2, when .startServo is true, ONS instruction is executed and _Start_PC is unlatched i.e. set to zero in parallel with executing MAM (Move Axis instruction).
Because of this, .StartServo will not be unlatched, or at least, I don't see how, unless that it will need some time to move the drive and after that time Start.PC will become 1 and that will unlatched .StartServo.
That makes sense now.
When the move is completed, _Start.PC will be set to 1, but what is the criteria to consider the move is done. is it when .ActualPosition reaches Command.Position (value 2.0)?
 
Wrk_MI_Start.PC will be true when the MAM instuction is complete. The ".PC" stands for
"Process Complete". So yes I suppose you can think of it like that when .ActualPosition reaches Command.Position.
 

Similar Topics

Hey everyone, In the middle of deciphering STL code in S7 plc and I'm confused. I interpret the following code to be load the register "#Step"...
Replies
11
Views
2,053
Hello All, I am currently updating an existing vessel that has 6 valves for a customer. I'm new to plc's but picking it up pretty well. I trying...
Replies
4
Views
2,288
Hi all, I am having issues accessing my Cimplicity software - the site code changed after re-install and I am no longer able to attain a new key...
Replies
6
Views
54
Good day all! Can someone help me with the procedure to update Beijers E700 firmware? The Panel I am working on is firmware 2.04v and I would...
Replies
1
Views
45
Back
Top Bottom