You are not registered yet. Please click here to register!


 
 
plc storereviewsdownloads
This board is for PLC Related Q&A ONLY. Please DON'T use it for advertising, etc.
 
Try our online PLC Simulator- FREE.  Click here now to try it.

---------->>>>>Get FREE PLC Programming Tips

New Here? Please read this important info!!!


Go Back   PLCS.net - Interactive Q & A > PLCS.net - Interactive Q & A > LIVE PLC Questions And Answers

PLC training tools sale

Reply
 
Thread Tools Display Modes
Old May 2nd, 2008, 03:10 PM   #1
davidg68124
Member
United States

davidg68124 is offline
 
davidg68124's Avatar
 
Join Date: Feb 2005
Location: Omaha, NE
Posts: 313
Motion Challenge/Problem

Okay guys,

I have a project where I am using the CompactLogix L43 processor with a SERCOS interface to an Ultra 3000. I also have a 1769-HSC card with 2 auxiliary encoders (Dynapar 1000ct/rev) for feedback in addition to the motor mounted encoder (I will explain why in a minute). The motor is a 1326AB-430E with an Alpha SK+ GB at 10:1. It is on a press/shear and it drives in angle bar stock to a length and then I drive the press to cycle. Easy, right?

The customer had an old existing press using a 1394 and the same motor and ratio gearbox. They had the 2 encoders on the old unit so that is why they wanted the 2 on the new unit. They were buying a new press and duplicating the tooling so they needed to stay with the same concept. They requested a direct upgrade to current technology and I obliged them.

I mimiced everything up to and including converting some of the GML to motion on the Compactlogix. Much of the GML was really bad, so I ignored it and wrote the program as a true indexing application with the Encoders as a backcheck to the Servo in terms of distance indexed. Well after seeing the thing run, I actually simplified the programming and removed all the old program limitations. What I did not realize is how they were utilizing the 2 encoders. They relied on the primary encoder (infeed) throughout the piece of barstock until the last piece was to be cut. There they used a relay to switch the encoders on the Auxiliary input and tried to copy the position back into it, back up, and then feed it out to length for the final cut. Well, as you can imagine, there are all sorts of problems with this.

I have all the system up and going. It cycles properly and everything moves as I would expect. They are extremely happy with the overall installation and operation with one exception, I cannot get the length to be right. WHy? The physical drive (not the Servo) slips on the barstock. That is why they need the auxiliary encoder. So just put the encoder on the auxiliary and call it good. What about the second encoder? WE (the customer and I) do not want to go back to the way the other press is doing it.

I have been in Rockwell's tech support on this and we can up with a way to create virtual axi out of the HSC's, but there is one caveat. I have geared the servo axis to the encoder virtual axis and it follows without any problem but the Move Axis(MAM instruction) command required to cause the system to move that I issue for the Virtual axis is being overwritten by the ones that I am using to aquire the encoder position with. So after a few calls we came up with creating another master virtual axis to follow to gear to, but that is not getting me there wither since it has no reference for an actual postion so I still do not get the proper lengths. I cannot gear the master to the encoder axis as I still run into the same problem as before. Rockwell says I should just change the drive to a Kinetix 6000 and hang another axis module on there and use it for a feedback only axis and then I could merge the encoder positions on the fly. That is not so easy as this is a bid project and that would mean additional costs.

In retrospect, I should have run all the motion calcualtions as I could have used a much smaller motor. I might have also caught the fact about how they are using the encoders and averted this. But now I need some ideas to make this work. I would welcome all suggestions right now. I am mulling it over this weekend so I can get a direction. If you have any suggestions, I would greatly appreciate it.

David
__________________
The PRICE of FREEDOM is not FREE! My son is now a United States Marine and I could not be more proud of what he and others will do to protect our freedoms here at home.
  Reply With Quote
Old May 2nd, 2008, 05:21 PM   #2
Peter Nachtwey
Member
United States

Peter Nachtwey is offline
 
Peter Nachtwey's Avatar
 
Join Date: Apr 2002
Location: Vancouver, WA, US
Posts: 6,694
Hopefully I understand you correctly.

I would use a phasing command.
As program notices the friction encoder is different from the servo encoder the controller issues a phasing comand that adjusts the servo position by the difference between the friction encoder and the servo encoder. This adjustment happens over a period of time or distance. I don't know if the AB has such a command. Gerry would know.
  Reply With Quote
Old May 2nd, 2008, 05:57 PM   #3
OkiePC
Lifetime Supporting Member
United States

OkiePC is offline
 
OkiePC's Avatar
 
Join Date: Mar 2005
Location: ENE of Nowhere Oklahoma
Posts: 9,810
I have worked on application with similar problems and ended up doing what I believe Peter calls a phasing command.

In one application, I waited until the move was over 75% complete before beginning to use the error from the surface encoder. I then executed another move on the same axis with the new end point calculated with the error from the friction encoder summed into the target. I did this in an S-Class (GML) program. In that platform, the new "move axis absolute command" had options to allow it to keep the present velocity and not re-trigger the accel ramp, it simply modified the decel ramp and end position. I ended up looping and repeating that adjusted motion at 1/2 second intervals to get my final position within our tight tolerance, and still get it done quickly and without too much disturbance to the decel ramp. Although there was on rare occasion a bit of a stair-stepped looking decel profile if the error changed a great deal toward the end of the movement.

In another application, we used a registration photocell placed as far toward the end of the motion as possible at a known (tuned) position. We then made a correction to the actual position when the registration position was strobed. This feature was built in to the older GML based controllers, but I don't know how you would do that in Logix.

I have no experience with Logix based motion control. I can remember when it was first pitched to us as a replacement for s-Class and 1394 systems (around ~1999), that it was not capable of replacing our application which required gearing to an external encoder and making adjustments on the fly based on the registration sensor, but they claimed to be working on a solution for both functions even then.
Paul
__________________
It's not all the variables I am most concerned with, it's the undiscovered constants.
  Reply With Quote
Old May 2nd, 2008, 06:24 PM   #4
Gerry
Member
New Zealand

Gerry is offline
 
Join Date: Jun 2002
Location: Auckland
Posts: 1,142
I don't understand the need for 2 auxiliary encoders, or what's being overwritten.
There are several types of dual loop configuration for the Ultra3K that presumably will compensate for the slip - I have no experience with that setup so am guessing.
Simple phasing is accomplished by an incremental move on the slave axis of a gearing operation.
There is another type of move called "master offset" that can be used for phasing - but that's another thing I've never used.
  Reply With Quote
Old May 5th, 2008, 11:05 AM   #5
davidg68124
Member
United States

davidg68124 is offline
 
davidg68124's Avatar
 
Join Date: Feb 2005
Location: Omaha, NE
Posts: 313
Gerry,


The physical tooling is set up such that the drive rollers are on either side of the Press/Shear. The only time I really need to use the exit encoder is on the last part. As it is feeding the last part, the front encoder will lose contact with the product, so I have to pick up what the exit encoder is reading in order to get the final position.

The Knowledge base article #23100 addresses how to use a High Speed Counter as a virtual axis. It requires toggling 2 Motion Axis Move commands in order to update the postion on the virtual axis. This, however, overwrites the Motion Axis Move command I issue during the cycle so the end result is no movement.

The phasing commands that are suggested, I do not know much about, but I will investigate that further. I am relatively new to the CL motion, so I am picking it up as I go.

What does phasing do for me? Can you describe it for me?

Okie, Your first suggestion sounds like the way I need to go. I have to look at giving that a try.

If you need more information from me, then ask. I am still looking for suggestions.

David
__________________
The PRICE of FREEDOM is not FREE! My son is now a United States Marine and I could not be more proud of what he and others will do to protect our freedoms here at home.
  Reply With Quote
Old May 5th, 2008, 01:40 PM   #6
ttichy
Member
United States

ttichy is offline
 
Join Date: Jul 2006
Location: strongsville, OH
Posts: 74
I never tried it, but changing your loop type might be possible for the Ultra3k.

I have an SERCOS tuning application note saved on my pc and this is what it says:

Position Servo The default loop configuration, smoothest and most stable because it uses motor mounted feedback for position and velocity Feedback.

Auxiliary Position Servo (Not applicable to Ultra 3000 drives) Tight position control, uses auxiliary(load) mounted feedback for position and velocity Feedback. Could prove troublesome if mechanics are not tight.

Dual Position Servo (Not applicable to Ultra 3000 drives) Tight position control, uses the auxiliary (load) mounted feedback device for position feedback and the motor mounted feedback device to provide velocity feedback. Could prove troublesome if mechanics are not
tight.

Motor Dual Command Servo - Provides full position servo control using only the motor mounted feedback device to provide position and velocity feedback. Unlike the Motor Position Servo configuration, however, both command position and command velocity are applied to the loop.

Auxiliary Dual Command Servo - Uses only the auxiliary mounted feedback device to provide position and velocity feedback. Unlike the Motor Position Servo configuration, however, both command position and command velocity are applied to the loop

Velocity Servo Pure velocity control, provides velocity servo control using the motor mounted feedback device.

Torque Servo Pure torque control, provides torque servo control using only the motor mounted feedback device for commutation. This does not regard position at all, and can be adjusted with the Torque Offset value.
  Reply With Quote
Old May 5th, 2008, 04:34 PM   #7
OkiePC
Lifetime Supporting Member
United States

OkiePC is offline
 
OkiePC's Avatar
 
Join Date: Mar 2005
Location: ENE of Nowhere Oklahoma
Posts: 9,810
I don't understand why the MAM instructions on the HSC encoders would affect the other axis, but if you are doing it correctly and it does not work, I think you should not execute the MAM instructions on the encoder axes, rather, use regular old ladder logic to get the values from them. Then calculate the amount of error from them and incorporate that into your correction moves on the real axis. You will then have the flexibility to choose which one to use, and may even be able to automatically switch to the trailing encoder for the last cut...


My application required me to ignore the first portion of the surface driven encoder because of the nature of the process (rubber sheet material had to be jerked backward 20mm and then shoved forward very quickly to keep it from sticking to a cutoff plate).

In your case, you may want to take samples of the error much earlier in the move than at the 75% point, and then adjust the move command a limited number of times. You could do this based on time, or based on position.

Hope this helps.
__________________
It's not all the variables I am most concerned with, it's the undiscovered constants.

Last edited by OkiePC; May 5th, 2008 at 04:39 PM.
  Reply With Quote
Old May 5th, 2008, 05:15 PM   #8
davidg68124
Member
United States

davidg68124 is offline
 
davidg68124's Avatar
 
Join Date: Feb 2005
Location: Omaha, NE
Posts: 313
Okie,


The reason for the effect is this. I am using the HSC Virtual axis as a master in a gearing set. WHen I issue the MAM for the Master of the gearing, it is overwritten immediately by the MAM that are updating the position on the virtual axis.
And I agree, what you are suggesting is probably the route to go. I am just exhausting my options before I give in and do this.

David
__________________
The PRICE of FREEDOM is not FREE! My son is now a United States Marine and I could not be more proud of what he and others will do to protect our freedoms here at home.
  Reply With Quote
Old May 5th, 2008, 07:14 PM   #9
Gerry
Member
New Zealand

Gerry is offline
 
Join Date: Jun 2002
Location: Auckland
Posts: 1,142
Quote:
Originally Posted by davidg68124
The phasing commands that are suggested, I do not know much about, but I will investigate that further. I am relatively new to the CL motion, so I am picking it up as I go.

What does phasing do for me? Can you describe it for me?
In a gearing operation, if the slave axis is lagging, then an incremental move (MAM) can be used to add motion on the axis and bring it 'in-phase'.

Quote:
Originally Posted by davidg68124
The physical tooling is set up such that the drive rollers are on either side of the Press/Shear. The only time I really need to use the exit encoder is on the last part. As it is feeding the last part, the front encoder will lose contact with the product, so I have to pick up what the exit encoder is reading in order to get the final position.
No doubt they free-wheel as they come off the part. And presumably the exit encoder doesn't make contact until the part is partially through. I think you need a registration system to work with the exit encoder and eliminate the infeed encoder.
i.e. a registration sensor at a calibrated distance from the shear point to sense the leading edge of the exiting part - then use the exit encoder feedback to control the remaining distance to move before cutting (encoder must be in contact with the part before the registration sensor sees the part).

Quote:
Originally Posted by davidg68124
The Knowledge base article #23100 addresses how to use a High Speed Counter as a virtual axis. It requires toggling 2 Motion Axis Move commands in order to update the postion on the virtual axis. This, however, overwrites the Motion Axis Move command I issue during the cycle so the end result is no movement.
I can't seem to find that article - can you post a copy or perhaps the relevant section of your program?
  Reply With Quote
Old May 6th, 2008, 11:37 AM   #10
davidg68124
Member
United States

davidg68124 is offline
 
davidg68124's Avatar
 
Join Date: Feb 2005
Location: Omaha, NE
Posts: 313
Gerry,

Here is the information from the article

The following rungs will monitor the High Speed Counters associated with the encoders and update each Virtual Axis with their respective position once every 10ms.

The example included with this document shows how to interface an encoder connected to a 1756HSC, with a Control Logix Motion Module.

A Virtual Axis is used that will mimic the 1756HSC encoder. This virtual axis is configured as a rotary with a Conversion Constant of 1 and an Unwind that is equal to the number of count per revolution of the encoder. In a periodic task, the PresentValue from the 1756HSC encoder is used as the position of a MAM instruction. The move type is 2, Move Shortest Distance. Each execution of the MAM instructions will move the virtual axis to a position that mirrors the 1756HSC encoder. Two MAM instructions are used because the MAM will only execute on a False to True transition. The two MAM alternate, allowing one to execute, while the other one is false.

The maximum speed of the 1756HSC axis is limited to revolution per read in your periodic task. For our purposes, if the periodic task is running every 10 ms, and the encoder is 4000 count per revolution(quadrature), the maximum speed is:

(4000 cnt/Rev * .5 rev) * (1Rev/4000cnt) / .01s = 50 rev/second

The registration eye may help my cause as well. I will have to consider that.
__________________
The PRICE of FREEDOM is not FREE! My son is now a United States Marine and I could not be more proud of what he and others will do to protect our freedoms here at home.
  Reply With Quote
Old May 6th, 2008, 09:04 PM   #11
TWControls
Lifetime Supporting Member
United States

TWControls is offline
 
TWControls's Avatar
 
Join Date: Oct 2005
Location: Roanoke, VA
Posts: 2,081
Quote:
Originally Posted by Peter Nachtwey
I would use a phasing command.
As program notices the friction encoder is different from the servo encoder the controller issues a phasing comand that adjusts the servo position by the difference between the friction encoder and the servo encoder. This adjustment happens over a period of time or distance. I don't know if the AB has such a command. Gerry would know.
Hi Peter. I'm not aware of any command AB has to do this. What exactly would phasing require?

Quote:
There are several types of dual loop configuration for the Ultra3K that presumably will compensate for the slip - I have no experience with that setup so am guessing.
Now I'm definitely in the realm of amateurs when it comes to servo control, but as of version 12 or 13, Controllogix SERCOS was unable to close the loop on an auxiliary encoder with an Ultra 3000 according to Rockwell. There were plans to add this feature in 15 I think, but I don't know if it made it.

Now this is not the right way, but our solution was to not go to the SERCOS. We stuck with the analog servo module, which aren't available in the Compactlogix. But we "cheated" and did not connect the encoder cable in between the drive and the servo controller. We connected the auxiliary encoder to the servo controller.

I think Peter's phasing command would have solved our problem better. I don't get into motion much anymore but I would still be interested in learning a better way to solve this problem
  Reply With Quote
Old May 6th, 2008, 09:36 PM   #12
curlyandshemp
Lifetime Supporting Member
Canada

curlyandshemp is offline
 
curlyandshemp's Avatar
 
Join Date: Jul 2005
Location: Toronto
Posts: 1,873
from OkiePC
__________________
"The older I get, the better I was"


Rush is the greatest rock trio of all time, bar none...

Great band from the Toronto area
__________________
Work to Ride,
Then Ride to Work

I would rather have a bottle in front of me..
than have a frontal lobotomy
  Reply With Quote
Old May 6th, 2008, 09:49 PM   #13
OkiePC
Lifetime Supporting Member
United States

OkiePC is offline
 
OkiePC's Avatar
 
Join Date: Mar 2005
Location: ENE of Nowhere Oklahoma
Posts: 9,810
Quote:
Originally Posted by curlyandshemp
Great band from the Toronto area
I have been a fan of them since I was 14. I would not listen to rock music much at all until after I heard Exit Stage Left. I took my 3 sons to see them live in OKC last Saturday, and we were all blown away! (especially Craig, my aspiring rock drummer) I can't believe it too me so long to finally see them live...
__________________
It's not all the variables I am most concerned with, it's the undiscovered constants.
  Reply With Quote
Old May 7th, 2008, 06:35 AM   #14
Peter Nachtwey
Member
United States

Peter Nachtwey is offline
 
Peter Nachtwey's Avatar
 
Join Date: Apr 2002
Location: Vancouver, WA, US
Posts: 6,694
Quote:
Originally Posted by TWControls
Hi Peter. I'm not aware of any command AB has to do this. What exactly would phasing require?
The 'phasing' command is defined by the PLC Open spec. It takes two parameters:
1. The distance to offset the master.
2. The distance over which the offset will occur. The distance over which the offset will occur determines how abrupt the offset is.
In this case the master is the friction encoder. Simple.

[OT]
"Nothing matters but the weekend, from a Tuesday point of view".
Lets see if any of the Canadian rockers know where that came from.
[/OT]

Last edited by Peter Nachtwey; May 7th, 2008 at 06:38 AM.
  Reply With Quote
Old May 7th, 2008, 08:29 AM   #15
kamenges
Member
United States

kamenges is offline
 
kamenges's Avatar
 
Join Date: Nov 2002
Location: Brillion, WI
Posts: 3,643
Quote:
Originally posted by Peter Nachtwey:

[OT]
"Nothing matters but the weekend, from a Tuesday point of view".
Lets see if any of the Canadian rockers know where that came from.
[/OT]
"The Beat Goes On/Switch Into Glide" by The Kings.

I always kind of liked that one.

Keith
  Reply With Quote
Reply
Jump to Live PLC Question and Answer Forum

Bookmarks


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Topics
Thread Thread Starter Forum Replies Last Post
Blended Motion. What Controller? Orn Jonsson LIVE PLC Questions And Answers 13 January 16th, 2008 08:59 AM
Logix Motion: blended motion question Contr_Conn LIVE PLC Questions And Answers 26 November 4th, 2007 07:33 AM
What is this ? KTM Rider LIVE PLC Questions And Answers 28 September 10th, 2006 06:56 PM
Motion Madness ndzied1 LIVE PLC Questions And Answers 50 September 11th, 2005 10:29 AM
Hydraulic Control Advances Jasonc24 LIVE PLC Questions And Answers 14 June 16th, 2005 01:52 AM


All times are GMT -5. The time now is 04:16 AM.


.