Logix Define Position question

johnfarrugi

Member
Join Date
Mar 2008
Location
London
Posts
99
I am working on a project with a servo controlling a steel coil unwinder. I've set the servo positioning mode as linear. I want to zero the actual position after every absolut move. However, I want to make sure that the error isn't componded everytime I redifine the actual position. So if I start a move at 0 and make an absolute move 200mm, when the move is completed, the actual position should be at 200. At this point the actual position will be moving slightly say 200.1 mm to 199.9 mm. If I redifine position to 0 when the actual position is at 200.1mm then the next 200mm absolute move will have a .1mm error relative to the first reference point. If I keep redifining the position after every move, the error will get componded and may cause positional issues.
Is there a way to redifine a position back to zero without having the error componded over multiple moves?
 
At one point there will be a rollover which may screw that up. Maybe once I move 200mm I can redifine using the current position -200. That would work!
Any other suggestions?
 
keep in mind that if you use MRP to redefine position, it will clear the AbsoluteReferenceStatus bit... which means next time you power up you will lose your position.
 
I agree with Okie. I need to look at the MAM a little jkore closely but I would be VERY surprised if the move is relative to the actual position at the start of the move. It is more likely relative to the commanded position at the time the command is issued.

The only case where this can be an issue is if your move requires a partial count to be correct and you need a specific part of your driving member to be at the same place in the profile every time (phased ot the commanded profile). In this case you can get into issues with consecutive incremental rotary moves. But that doesn't sound like the case you have.

Keith
 
The incremental MAM will move the axis a specified distance from where it currently is. An absolute MAM will move the axis to an absolute position.
 
Define "where it currently is"

imautomated said:
The incremental MAM will move the axis a specified distance from where it currently is.
Kieth has a good point. Are the moves relative from the command, target or actual position?

We provide the three options although typically only the relative to the command or the actual position is used. In the example above it is best to make the command relative to the command position.

If unsure about what the moves are relative to, the best way to do this is to add relative amounts to the command position and do a absolute MAM to that position.
 
I talked to one of our local AB motions guys and, much to my surprise, the incremental mode MAM adds the increment to the current actual position, not the commanded position. Not the way I would have done it but that isn't the point. I'm pretty sure I'm never going to use an incremental MAM again.

As Peter said the easiest thing to do is continually add your increment to an absolute positon command register and do absolute moves. Again, I don't know this for sure, but I would be highly surprised if AB doesn't handle the overflow on abslute moves correctly. Then again, I'm batting .000 on AB motion questions so proceed accordingly. The ADD in the plc certainly will handle the overflow correctly. You will probably need to configure the axis as a rotary axis or it will eventually stop on a software position limit. Just operate without a rollover limit and you should be good.

Keith
 
kamenges said:
I talked to one of our local AB motions guys and, much to my surprise, the incremental mode MAM adds the increment to the current actual position, not the commanded position. Not the way I would have done it but that isn't the point. I'm pretty sure I'm never going to use an incremental MAM again.
There are times when a move relative to actual position is OK. Our customers often move until they hit something and then back off a fixed amount. However, a true minimalist can do this with a absolute move too. There really isn't much point in having relative moves.

As Peter said the easiest thing to do is continually add your increment to an absolute positon command register and do absolute moves. Again, I don't know this for sure, but I would be highly surprised if AB doesn't handle the overflow on abslute moves correctly. Then again, I'm batting .000 on AB motion questions so proceed accordingly. The ADD in the plc certainly will handle the overflow correctly.

Absolute moves should have a linear mode and four rotary modes. The linear mode never wraps. The linear mode can only move between the positive and negative limits. The rotary mode has these options:

1. Nearest. This allows one to move from 1 degree to 359 degrees through 0.
2. positive.
3. negative.
4. absolute. This allows multiple turns in either direction.

We have a current direction option too where the axis keeps turning in the current direction. I think this is one of those 'we did it because we can' options. I have never used it and I don't know of anybody else that has used it..
 
My plan was to use an incremental move, and motion redefine position.

The first thing I plan to do is redefine the servo position to "0.00" before an automatic move can be performed. I will subtract the servo actual position from the required move length. Once the move has been completed, I'll define the position as 0.00 again and then on the next move I'll subtract the servo actual position minus the required move length. I believe doing it this way I'll never accumulate error.
 
Originally posted by johnfarrugi:

My plan was to use an incremental move, and motion redefine position.

My plan was to build a nice log cabin in the woods of Northern Wisconsin but that didn't work out so good for me. So I changed my plan.

My rather obtuse point is that just because it's your original plan doesn't mean you shouldn't reconsider how you do things as you move forward. No matter what you do you are going to have some degree of variability using incremental moves the way AB defines them. Even if you subtract the actual position error from the desired position prior to initiating the move the axis will have most likely moved by the time the motion command takes effect anyway. If you are going to do this you would be better off looking at the profile start position AFTER you trigger the move and issue a MCD to adjust the increment based on that.

However, have you really considered the issues you will have if you have an accumulating error? If you just let the axis do what it's going to do you will end up with some natural variability in the finished lengths. If you change you incremental move distance based on position error you will induce some variability in the finished lengths. So let's assume that with every move you are long by 0.0005". After 1000 moves you will have fed an additional 1/2" of material. Is this really going to hurt you? If it is then you need to be more careful with jhow you define moves as you are looking at doing. If it won't, accept that this accumlated error will happen and move on. In reality you will likely end up with a mix of plus and minus errors over a large sample group. While you will end up with some accumulated error at the end of the day it probably won't be as excessive as you would think.

Keith
 

Similar Topics

Hi folks, please educate me, attached is a photo of a list of Module Defines in a program. I am working on a Endress Hauser Promag 53, it's been...
Replies
7
Views
2,471
Hi folks, in the alarm manager of Rslogix 5000, the tag-based alarm has been created. But when I tried to change the condition, it was found the...
Replies
0
Views
21
I have been working on this for a while now and I can't seem to get it. I was finally able to view the 1500 on the PanelView under the serial...
Replies
1
Views
25
I'm using a SLC typed write from the ControlLogix5572 to the MicroLogix 1400, with path: 2, (MicroLogix IP). The ControlLogix equipment has a...
Replies
0
Views
62
"Hello! Good day! Excuse me, I have a question regarding the 1761-NET-ENI. RSLinx has already detected it but it's not connecting to the PLC...
Replies
4
Views
92
Back
Top Bottom