Determining the order received of multiple inputs

FiberLogic

Member
Join Date
Jun 2006
Location
NC
Posts
6
Hello all:

This may be a very simple question, but here goes.

I have three inputs on an AB MicroLogix which are activated by photoeyes. I need to determine the order in which they transition from 0 to 1.

The existing program, not written by me, uses a latch for each input which it uses to hold the other two from being activated via XIO contacts from the other two for each of the three rungs until the level of the calling eye is satisfied.

My problem is that if two of the eyes are high at the time of transition there is no way to determine which eye will be sent material next, and one of the eyes may consistently starve.

ALL suggestions are welcome

Thanks.......
 
you might try using a timer for each input that runs until its respective photoeye input goes from 0 to 1. then, after all three inputs have transitioned (and all three timers have their accumulated values) you can compare the times to determine the order, then reset the timers.
 
You may wish to analyse your application a bit. It sounds like a single supply to be directed to 3 destinations.

I would let each destination (PE) raise a flag but have a seperate counter, which is cycling 0-1-2-0-1-2, look at each in order. If the flag is raised then supply it, turn it off, then continue on to the next set flag, providing for it when the next.

If the receivers are ready faster than the supply cycles then let the counter pause until the supply is next ready. If the other way around then have the counter cycle as fast as it can and the destinations will be serviced roughly equally.
 
I really like that idea. I will try that. If anyone has other ideas I'd be open to trying multiple suggestions.

Thanks...
 
Bernie:

Just a regular up counter for each? When an input is made for a call it will only transistion once until it is satisfied when it will return to 0. So each of the potential two calls will both have a value of 1. How do I know which went high first?

Please explain further because that idea sounds good.

Thanks
 
Peter:

Each eye determines a level of raw material. The eye for each station will call constantly until it is satisfied. The problem is I have only one source to be divided between the three.

I first looked at FIFO before joining this forum, but was confused still about how to use it when you can only have one source input/constant value etc per FIFO...

Am I confusing the issue?
 
For me, Peter's idea of a FIFO is the easiest conceptually.

I am assuming that the inputs are sufficiently fitered/debounced so that once they turn on they won't turn off until the station is serviced. When an input turns on, trigger a FIFO load (FFL) with a source equal to the station number using the input followed by a oneshot. This will store up the station numbers in the order that photoeye inputs are received. Then use a FIFO unload FFU to extract the station numbers any time the .POS value is not equal to zero. Use this unloaded station number to determine which station needs to be serviced. Triggering the FIFO unload may be a little tricky but with a little thought about when you need a new station number to act on I'm sure you will get it.

There is also a way to do this with a rotary queue and indirect/indexed addressing. It is basically the same idea without the dedicated instruction.

Keith
 
I guess my question to you would how are they unloaded, is it random? Or is their any priority on these containers being full. Simply u can fill #1 till full and not allow it to be refilled until 2 and three have had their turn. Need the code?
 
Input Discrimination Logic

FiberLogic said:
Hello all:

This may be a very simple question, but here goes.

I have three inputs on an AB MicroLogix which are activated by photoeyes. I need to determine the order in which they transition from 0 to 1.

The existing program, not written by me, uses a latch for each input which it uses to hold the other two from being activated via XIO contacts from the other two for each of the three rungs until the level of the calling eye is satisfied.

My problem is that if two of the eyes are high at the time of transition there is no way to determine which eye will be sent material next, and one of the eyes may consistently starve.

ALL suggestions are welcome

Thanks.......


Hi,

Try the enclosed logic. Although not elegant, but should work effectively.

Cheers
 

Similar Topics

We are in the process of installing a new DC drive to replace a 1373 series Speedpak drive. There are 8 leads coming out of the motor -- Two for...
Replies
5
Views
843
Good morning! I am looking for a clever method to determine the number of occurrences in a series using ladder logic. What I need to determine is...
Replies
6
Views
1,255
I have my PLC and HMI connected to my local network over DHCP just like my laptop. I can upload and download including VNC to the HMI over wifi...
Replies
2
Views
1,137
We have a DC Drive (ABB DCS800) which is running a load (initially) at a fixed speed. For testing purposes, we want to simulate a different...
Replies
20
Views
6,216
ive been tasked, due to a restructure of our inventory, to find out how big our SLC programs are. specifically, we have several dozen 5/05s at...
Replies
4
Views
1,642
Back
Top Bottom