Controllogix M02AS - Servo Update Period

JJohnson80

Member
Join Date
Jul 2014
Location
Redding, CA
Posts
6
Hi all,

I have a Controllogix PLC with an L73 processor (v20) and an M02AS module. I'm very familiar with the HYD02 CLX module but am running into something I'm at a loss on with the M02AS. For a transducer I'm using an MTS R-Series temposonic probe set for 'Asynchronous' mode, 25 data bits, and gray code encoding. I have the M02AS module configured for gray code, 25 data bits, 208kHZ clock frequency, and a 250us servo update period.

I am able to read position out of the M02AS and close the servo loop, and here is the part where I'm not sure what is happening, I have a magnet on the probe and I move the magnet to cause position error and thus a corresponding +/- 10V output signal as reported by the axis.ServoOuputLevel value however when I put a meter on the output signal from the M02AS I'm reading around 7V. To further confuse me if I take the M02AS servo update period from 250us to 500us I will see about 8V or so and if I go to 1ms servo update period I will get about 9.8V.

Another weird part is if I issue a MDO (Direct Output Voltage) of 10V I WILL see 10V on the signal output regardless of servo update period, it's only when the axis is in closed loop positioning that I see the actual output voltage measured by the meter not be the same as what the axis is reporting it should be.

I'm familiar with the restrictions on the servo update period when using the HYD02 depending on recirculation settings and probe length so the pulse width doesn't exceed the servo update period but am not sure what would be the restrictions on the M02AS module with the servo update period, especially since I'm not seeing a feedback fault or any other fault issued by the CLX PLC.

I'm sure there must be something simple I'm missing but any help would certainly be appreciated.

Thanks!
Josh
 
For a transducer I'm using an MTS R-Series temposonic probe set for 'Asynchronous' mode, 25 data bits, and gray code encoding.
Oh, no! You don't want to use asynchronous mode. Use Synchronous mode. Also there is no point in using 25 bits nor gray code. 24 bit binary in synchronous mode is optimal.

[quote[
I am able to read position out of the M02AS and close the servo loop, and here is the part where I'm not sure what is happening, I have a magnet on the probe and I move the magnet to cause position error and thus a corresponding +/- 10V output signal as reported by the axis.ServoOuputLevel value however when I put a meter on the output signal from the M02AS I'm reading around 7V.
[/quote]
It depends on how big the error is. If you move the magnet far enough you should be able to create an error big enough to cause a 10 volt output.


To further confuse me if I take the M02AS servo update period from 250us to 500us I will see about 8V or so and if I go to 1ms servo update period I will get about 9.8V.
If you are talking about the proportional gain only it shouldn't make any difference what the update time is. If you are using the integrator and derivative gain it may make a difference because the integrator gain and derivative gain are scaled by the update period.


Another weird part is if I issue a MDO (Direct Output Voltage) of 10V I WILL see 10V on the signal output regardless of servo update period, it's only when the axis is in closed loop positioning that I see the actual output voltage measured by the meter not be the same as what the axis is reporting it should be.
That is how it should be. In open loop the update period does not affect the output.

I'm familiar with the restrictions on the servo update period when using the HYD02 depending on recirculation settings and probe length so the pulse width doesn't exceed the servo update period but am not sure what would be the restrictions on the M02AS module with the servo update period, especially since I'm not seeing a feedback fault or any other fault issued by the CLX PLC.
Temposonic rod can update every 250 micro seconds IF the magnet doesn't travel more than about 25 inches from the rod head. It takes time for the pulse to travel.

My company makes the HYD02 and M02AS for Rockwell. I wrote a lot of the code for the HYD02 and just a little less for the M02AS but I know alot about the firmware on the motion modules.

You haven't made it clear what your problem is except that you shouldn't use asynchronous mode. This mode shouldn't be permitted but I don't have control over the PLC software.
 
Hi Peter,

First of all thank you for taking time to look at this and your advice! I will implement the recommendations when I get to the office.

If you are talking about the proportional gain only it shouldn't make any difference what the update time is. If you are using the integrator and derivative gain it may make a difference because the integrator gain and derivative gain are scaled by the update period.

I have 0 for the integrator and derivative gain and only proportional gain has a value.

It depends on how big the error is. If you move the magnet far enough you should be able to create an error big enough to cause a 10 volt output.

I'm moving the magnet a couple inches from the initial position which is enough with the proportional gain I have entered to saturate the servo output command at +/- 10V

You haven't made it clear what your problem is except that you shouldn't use asynchronous mode. This mode shouldn't be permitted but I don't have control over the PLC software.

Ok, so my problem is when the M02AS module output should be saturated at -10V, I'm monitoring the ServoOutputLevel tag of the motion axis which is the output voltage level being issued by the axis, I'm only seeing -7V with a multi-meter between the -OUT and +OUT terminals on the M02AS module.

I will implement the changes you recommended and report my success or failure.

Thanks Peter!
Josh
 
Ok so I implemented those changes, I'm now setup for 24 data bits, binary code, and Synchronous mode. I still see the same issue but I think I've determined what is going on.

I have an axis created for both channels on the M02AS but only had feedback connected on one channel, if I connect feedback to the second axis, inhibit it, or move it to ungrouped then I don't see the discrepancy between what the PLC says the output voltage should be and what I'm actually getting.

If I connect SSI feedback to both channels, close the loop on one channel, and move the magnet to initiate saturated voltage I'll read a full 10V on the output, if I then break a feedback wire on the second axis, which is still open loop, the voltage out of the closed loop axis drops to 6.5V-7V. As soon as I reconnect the broken wire the voltage on closed loop axis goes back to 10V.

It almost appears to me there is a synchronization issue with the clock in the M02AS that if one channel isn't responding the servo loop times out or something happens inside the M02AS module. This test was done with the servo update period at 250us and working within a 12" window of the base of the probe.

I don't have an oscilloscope but when the voltage drops with the feedback wire broken on an axis the voltage jumps around by about 0.5V-0.75V, I wonder if the voltage I'm reading in that scenario is just the RMS voltage of the output dropping to 0 and coming back up to 10V rapidly
 
The 24 data bits and binary don't really help anything BUT it is easier to make sense of a binary pattern with a scope than it is to make sense of a gray code. Also, the 25th bit doesn't provide any more accuracy but it takes time to transmit it.

They synchronous issue is very significant if using the derivative gain.


Break what wire?

When the M02AS fails to detect a valid clock in signal the associated output should go to 0 to stop the actuator. This is for safety reasons. There should also be a control output saturation error if the control output goes to 10v.

The two axes or channels are completely independent of each other software wise. All I can think of is that you are doing something electrically. I bet the closed loop axis thinks it is still outputting 10v even though the voltmeter says the output is 7 volts.
 
Break what wire?

I break the + CLOCK wire into the second channel

When the M02AS fails to detect a valid clock in signal the associated output should go to 0 to stop the actuator. This is for safety reasons. There should also be a control output saturation error if the control output goes to 10v.

Yes, I would have expected that, except it appears to be affecting the second channel for some reason. I've seen the output saturation error on the Delta Computer Systems RMC modules but haven't ever seen that fault available in the M02AS or HYD02 module in Controllogix.

The two axes or channels are completely independent of each other software wise. All I can think of is that you are doing something electrically. I bet the closed loop axis thinks it is still outputting 10v even though the voltmeter says the output is 7 volts.

You are correct that the closed loop axis still thinks it's outputting 10V, I'm pretty sure it's nothing electrical, it's a test bench setup with just the processor, Ethernet module, and M02AS module with the only wires going to the M02AS from the feedback transducers, the +OUT & -OUT don't have anything connected to them.

In my testing with a voltmeter on the output terminal and just removing a clock wire from the second channel does cause the voltage to drop, the voltage drop is much less significant if I increase the servo output period from 250us to 500us.
 
The other reason I lean towards it not being an electrical issue is when I have it in closed loop but read 7V I can open the loop and issue a Direct Voltage Out of 10v and get 10v on the voltmeter, then go back into closed loop without changing any physical wiring and get 7v at that point but with the axis still thinking its 10v.
 
You are correct that the closed loop axis still thinks it's outputting 10V, I'm pretty sure it's nothing electrical, it's a test bench setup with just the processor, Ethernet module, and M02AS module with the only wires going to the M02AS from the feedback transducers, the +OUT & -OUT don't have anything connected to them.
This is odd but if the controller thinks it is sending a 10v control signal how can it be a software problem?

In my testing with a voltmeter on the output terminal and just removing a clock wire from the second channel does cause the voltage to drop, the voltage drop is much less significant if I increase the servo output period from 250us to 500us.
This is no right unless you have the integrator working but you said that gain was 0.

I have no explanation for what you are seeing given what I have been told so far.
 
Well, after getting a Rockwell technical support case # and having our local Rockwell technical resource manager contact the factory he said the factory won't come right out and say there is an issue there but the Rockwell representative said if there is an axis configured and associated with a channel on the M02AS module but that channel is NOT wired up that will have, in his words "unintended functionality".

The problem of course with that is it could be a valid axis which experiences broken field wiring not just a completely unwired channel. Hopefully I can talk the factory into replicating the situation (which is easy) but either way it sounds like it's something in the motion module firmware.
 

Similar Topics

Why does the controllogix redundancy modules use a single mode fiber vs multimode fiber?
Replies
1
Views
82
Hello, I have two 16 point input cards and 1 16 point output card showing module faulted on my IO tree in Logix Designer. The fault code is...
Replies
7
Views
214
Hello, My associate and I are trying to sync up two ControlLogix racks (7-slot chassis) with identical modules. We are able to see the secondary...
Replies
4
Views
194
Trying to setup a message read via Ethernet. I have the path setup as 1, 1, 2, 192.168.66.10 I get an error code 1, ext err 315. I am beating...
Replies
9
Views
231
I have a redundant ControlLogix being set up. This program reads a value from a remote site which happens to be SLC PLC. Rockwell mentions SLC...
Replies
2
Views
96
Back
Top Bottom