AB 504 Processing Speed

marinus_

Member
Join Date
Jul 2003
Posts
14
Hello,

I was hoping that someone could help with a PLC application that I am working on.
I have an application in which I need to measure the speed rate of a cylinder. My plan is to use a laser distance sensor with a 4-20ma output (FT 50 RLA-70-S1L8)
to measure the stroke which will be less than 50mm. I will use this analog signal to determine the length of stroke during a time period to calculate the speed.
I am using a Allen Bradley SLC 5/04 processor.
The only issue that I can see with this application is the speed in which this cylinder travels.
My measurement needs to be very accurate and I am concerned about the PLC's ability to capture this signal and process it in time.
Is there any programming tips that might help in this application to ensure that the result is accurate.
Could I use an interrupt routine? How can I monitor the analog input signal and not have to worry about the main program scan time?
Any advice would be appreciated.

Thanks,
Marinus
 
You didnt write which requirements you have for the scan time.

Anyway, there is the timed interrupts which you find under the "STI" tab of the CPU status file.
S:2/10 specifies the cycle time resolution (off=x10ms, on=x1ms).
S:30 specifies the cycle time (n times 10ms, or n times 1ms).
S:31 specifies the file number to execute.
S:43 tells you how many microseconds was lapsed between individual cycles. You could eventually use this to achieve a better accuracy of the speed calculation.

In the interrupt routine, you must use the instruction IIM to read the analog input.
 
You might be in trouble just due to the reaction speed of the A/D converters in the analog module, but that's hard to say. The step response of typical 1746 series analog modules ranges from 6ms to 630ms (depending on the number of channels in use), and the update period on some modules can be as long as 512ms overall.

The 1756 Logix series of Analog modules include some very high speed modules, with sub-millisecond conversion times, so limited only by the RPI interval of the rack, but I don't know of ultra-fast modules for 1746 series equipment.

It might not be a 'scan time' issue with the processor.

How fast does the cylinder complete it's stroke?
 
Good point about the speed of the analog inputs.
There are the fast analog modules 1746-FIO4I and 1746-FIO4V.
I have used them once. As far as I remember, the resolution wasnt very high though. I think it was 10 bits.
 
JesperMP said:
Good point about the speed of the analog inputs.
There are the fast analog modules 1746-FIO4I and 1746-FIO4V.
I have used them once. As far as I remember, the resolution wasnt very high though. I think it was 10 bits.

The FIO4x modules are really only fast on the output side. The input conversion is listed as 100ms fixed, while output is 2ms (makes sense, output is easier than input on analogs). Also, they are 12 bit input resolution, and 14 bit output :)

The NIO4x modules are listed as 60ms fixed input, but still, all in that series show a 512ms update time.
 
Oh, no not again?!

This may be impossible depending on:
How fast is the cylinder moving.
What the definition of accurate.
Over what time can the speed be measured.

I think it is important to know what marinus_ is really trying to do and why.

I would use a Temposonic MDT rod with SSI feedback. These MDT rods can provide one micron resolution. I think AMCI makes SSI feedback cards but then you still have issues with uncertain PLC scan times. What is needed is a measuring system that doesn't depend on scan time. A device with a FPGA can sample at small and regular intervals.

rdrast and JesperMP have provided reasons why doing motion control using a PLC and analog cards is suitable for temperature control but not motion control.
 
Peter Nachtwey said:
I would use a Temposonic MDT rod with SSI feedback.
We use Temposonic rods which have both position and speed signals in the same unit.

Marinus started with a laser sensor. SICK DME3000 is a laser sensor with SSI output. Probably expensive though.
 
JesperMP said:
We use Temposonic rods which have both position and speed signals in the same unit.
Those can't be SSI rods. I know there are analog and Ethercat rods that provide position and velocity.

Marinus started with a laser sensor. SICK DME3000 is a laser sensor with SSI output. Probably expensive though.
The first thing I always ask about laser sensors is how fast does it update and is the update period fixed and deterministic. I usually hear silence or get a blank stare.
 
Peter Nachtwey said:
This may be impossible depending on:
How fast is the cylinder moving.
What the definition of accurate.
Over what time can the speed be measured.

I think it is important to know what marinus_ is really trying to do and why.

I would use a Temposonic MDT rod with SSI feedback. These MDT rods can provide one micron resolution. I think AMCI makes SSI feedback cards but then you still have issues with uncertain PLC scan times. What is needed is a measuring system that doesn't depend on scan time. A device with a FPGA can sample at small and regular intervals.

rdrast and JesperMP have provided reasons why doing motion control using a PLC and analog cards is suitable for temperature control but not motion control.

Thank you for your input Peter. I will try to give you an explanation of what I am trying to achieve and why.
We have fabricated an automatic assembly machine which consists of a rotary dial and several pick and place heads to assemble plastic disposable soap pumps. These pumps are manually operated and use a stainless steel spring inside to return the pump.
Unfortunately due to issues which are out of my control, some of these pumps do not return fast enough to operate properly.
What I am attempting to do is make up a test fixture which will manually stroke the pump and measure the rate of return when released to determine if the pump is defective or not.
I would like to do this with each one and automatically scrap the ones that are defective to avoid having to do 100% manual inspection on all of the units.
The stroke length is 16mm and the speed of return is very fast and yet to be determined accurately. I was hoping to use a non-contact type of sensor and mount it over top of the part using some kind of distance measuring device.
This will save our customer a lot of time and trouble and I think that they would be willing to pay for it.
I don't want to pitch the idea if it won't work if you know what I mean.

Marinus
 
Couldn't you just use a proximity switch (probably capacitive) or a laser (handle breaks the beam). Push in the handle. Then rather than try and measure the speed, just measure the time it takes for the handle to be full extended again (Switch ON).

It'd be cheaper and easier than an analog measuring device, especially if there is a large difference in speeds between good and defective parts.
 
Wording is critical

some of these pumps do not return fast enough to operate properly.
Do you define fast enough by not a high enough velocity or not quick enough as in taking too much time?

So how much time does should it take to go 16 mm or how fast must the pump retract?

Tharon said:
Couldn't you just use a proximity switch (probably capacitive) or a laser (handle breaks the beam). Push in the handle. Then rather than try and measure the speed, just measure the time it takes for the handle to be full extended again (Switch ON).

It'd be cheaper and easier than an analog measuring device, especially if there is a large difference in speeds between good and defective parts.
I agree, if the motion isn't QUICK enough then all you need to do is measure the time. If the motion isn't FAST enough then you need to know the velocities and accelerations.
 
Can you convey them under a long fixture that gently pushes them down as they index under it?

Are they manually loaded into the test stand, or is this to be installed in the assembly stream?

Picture a simple stainless plate to be the fixed actuator. It gently slopes at a soft angle depressing the pump with each index motion. When they pop out the end, they are quickly fully released (no cylinder to contact), and you can time the retract speed with an analog laser sensor.

If they are manually loaded into the machine, you could have the loader manually pump them, and let the timer logic be the same...

Wait for a compress stroke to occur (LEQ), start counting time in 10ms intervals,
Wait for full extend stroke (GEQ),
Pass or fail.

You can do this with an analog input to the PLC with an STI and a little bit of math, but for a pass fail test fixture, just use two laser photo eyes, and DC inputs. They will save you lots of money and avoid processing delays at the card.

One at the bottom of the stroke, and one aligned to detect full extension.

Use an STI routine of about 10ms intervals and immediate input instruction to the slot where the DC input card resides.

Since you already have the analog hardware, you can do the same core logic, but the timer would start and stop based on stroke reading instead of 2 booleans.

But, buy a non contact sensor to measure the stroke with a laser beam.

Is that little pump spring supposed to be able to overcome the static friction of a cylinder piston?

Paul
 
Last edited:
Peter Nachtwey said:
Do you define fast enough by not a high enough velocity or not quick enough as in taking too much time?

So how much time does should it take to go 16 mm or how fast must the pump retract?

Quick enough taking too much time. When the pump retracts a bad one will hesitate as it retracts or not even retract all the way.

I have not measured the speed in which it takes to travel 16mm but I would guess it would be less than a quarter of a second.

OkiePC said:
Are they manually loaded into the test stand, or is this to be installed in the assembly stream?

I hope to install this in the assembly stream. I would have to extend the pump and somehow release it and allow it to retract at its own speed.

OkiePC said:
Is that little pump spring supposed to be able to overcome the static friction of a cylinder piston?

I would have to stroke the pump and 'unlock it' to let it return without any static friction to hold it back.
 
OkiePC said:
Can you convey them under a long fixture that gently pushes them down as they index under it?

Are they manually loaded into the test stand, or is this to be installed in the assembly stream?

Picture a simple stainless plate to be the fixed actuator. It gently slopes at a soft angle depressing the pump with each index motion. When they pop out the end, they are quickly fully released (no cylinder to contact), and you can time the retract speed with an analog laser sensor.

If they are manually loaded into the machine, you could have the loader manually pump them, and let the timer logic be the same...

Wait for a compress stroke to occur (LEQ), start counting time in 10ms intervals,
Wait for full extend stroke (GEQ),
Pass or fail.

You can do this with an analog input to the PLC with an STI and a little bit of math, but for a pass fail test fixture, just use two laser photo eyes, and DC inputs. They will save you lots of money and avoid processing delays at the card.

One at the bottom of the stroke, and one aligned to detect full extension.

Use an STI routine of about 10ms intervals and immediate input instruction to the slot where the DC input card resides.

Since you already have the analog hardware, you can do the same core logic, but the timer would start and stop based on stroke reading instead of 2 booleans.

But, buy a non contact sensor to measure the stroke with a laser beam.

Is that little pump spring supposed to be able to overcome the static friction of a cylinder piston?

Paul

Thanks Paul,

I am planning on using two FGL 30-RK-30-PS-M3 from Sensopart to check the speed using two DC Inputs. After the pump is released the first sensor is broken when the pump extends 1mm the timer starts. When the second sensor is broken (pump fully extended)
the timer stops.
I am now convinced that the analog signal would be too slow to react and would give me a poor result.
The switching frequency of this sensor is 2000hz which is fast enough and if I use a high speed input using a STI routine I think this should work.

Wish me luck

Marinus
 

Similar Topics

1747-L541 processor. I was given a program to load into this PLC. When downloading via DF1 there's a message that the communication will be lost...
Replies
5
Views
815
Has anyone ever seen this before. I have a SLC 504 running a very small program and it would seem the TON wouldn't start counting using the...
Replies
24
Views
4,791
Probably a silly question and asked a hundred times already, but i tried to do some searching here and couldn't find this question. I have 502's...
Replies
9
Views
3,045
I have a SLC504 in the field that is communicating DH+ to several other SLC504 and the RS232 port is communicating to a panel view plus 1000. I...
Replies
1
Views
1,297
As part of an upgrade I am working with 7 different SLC programs. I had the first program in a test controller in my office running and...
Replies
6
Views
2,544
Back
Top Bottom