How do you Track boxes on a conveyor?

darrentpi said:
there is an eye at each drop off location, but how does that eye no what color box is correct for that drop off. There is no encoder, just roller coveyor, so I don't know if the bit shifting will work!

The constrants of your project seem to indicate that this is a student project. As I understand it in sorting applications, like in the parcel, and luggage sorting, etc, the scanner that detects the direction of the sorted item is often located at the pusher/shute location. Simply put, the Red box will go infront of the RED eye at the location of the RED shute. The RED eye will directly activate the pusher that will push the RED box into the RED shute. No programming required...

If this is a student exercise please say so. If this is a real world application, condsider moving some of your devices around, and possably adding a few etc.. No amount of fancy programming will ever overcome a poorly designed or overly complicated machine.
 
Last edited:
The idea of having a brake, or clamp, to establish and control gap size is a good idea.

Here is a possible flow regulator based on one that I developed many years ago. The purpose was to ensure a minimum gap size. It didn't matter if the gap was big, but it did matter if the gap was too small or non-existent. The following is based on the worst-case condition of no gaps between items as they enter the flow regulator area.

410d2b4326c6578f.gif


EYE-A:
When Eye-A goes from OFF to ON, the program knows that a box has just entered the push-area. However, it is not yet in position to be pushed. The pusher routine arms the Clamp and then checks the current color-marker to determine the appropriate course of action.

  • If the current color-marker IS Red then the pusher knows that it needs to push this box... but not yet.
  • The Red Pusher Routine sets the "PUSH" flag.
  • If the current color-marker IS NOT Red then the Red Pusher Routine sets the "PASS" flag.
  • The Red Pusher Routine knows it needs to let the box pass and pass on the color-marker... but not yet.
EYE-B:
If the Clamp is armed, and if Eye-B is ON, then the Clamp is closed until the Clamp is dis-armed.
If the Clamp is dis-armed, then, regardless of the state of Eye-B, the Clamp is opened.
(There is an excetion listed near the bottom of this post.)

EYE-C:
If the "PUSH" flag is set, then when Eye-C goes from ON to OFF, the box is pushed. After the pusher extends and then is fully retracted (at home), the routine discards the current color-marker, dis-arms the Clamp and resets the "PUSH" flag. If the Clamp was holding a box then the box is released and allowed to move toward Eye-A in the pusher area

If the "PASS" flag is set, then when Eye-C goes from ON to OFF, the box is allowed to pass through the pusher area.


The GAP:
If the "PASS" flag is set, then the size of the gap can be as minimal as the distance between Eye-B and Eye-C, or as extreme as "infinitly large".
  • Option-1: At Eye-C OFF, dis-arm Clamp (gap = minimum)
  • Option-2: At Eye-C OFF, run a timer then dis-arm Clamp (gap = variable, greater than minimum)
  • Option-3: At Eye-A OFF, dis-arm Clamp (gap = box-size)
  • Option-4: At Eye-A OFF, run a timer then dis-arm Clamp (gap = variable, greater than box-size)
In any case, DO NOT reset the "PASS" flag until Eye-A goes OFF. Then, at that time, remove the color-marker from the first queue and deposit it into the second queue.

If the "PUSH" flag is set, then execute the "push" when Eye-C goes OFF (gap = minimum)


In Figure-1 (below), the first box enters the clamp area. Notice that there are no other boxes ahead of the box at Eye-B. Unless the process requires a gap-size larger than the size of a box, it should be quite evident that there is sufficient gap ahead of the leading box. This means that on start-up, as long as the pusher area is clear, the clamp will always allow the first box to pass into the pusher area toward Eye-A.

FIGURE-1
410d2b4326c6578f.gif


In Figure-2 (below), the leading box trips Eye-A. That is, the eye transitions from OFF to ON. Two things happen at that point.

1. The Red Pusher Routine checks the current color-marker in the queue.
  • If the current color-marker IS Red then the pusher knows that it needs to push this box... but not yet.
  • The Red Pusher Routine sets the "PUSH" flag.
  • If the current color-marker IS NOT Red then the Red Pusher Routine sets the "PASS" flag.
  • The Red Pusher Routine knows it needs to let the box pass and pass on the color-marker... but not yet.
2. The Red Pusher Routine "Arms" the Clamp. (Eye-A going from OFF to ON causes the Clamp to be "armed".)

Notice that there is no gap between the first and second box.

FIGURE-2
410d2b6b7c6ede77.gif



Figure-3 (below) shows that, since the Clamp was armed by Eye-A going ON, the Clamp is closed on the following box. Meanwhile the first box continues moving forward.

FIGURE-3
410d2b8926ddb19e.gif


Figure-4 (below) shows that a "minimum gap has been established. In this case, the color-marker associated with this box happened to match the pusher color, thus calling for a "push". When the pusher returns to home, the Clamp is dis-armed and the next box is allowed to move toward Eye-A in the pusher area.

FIGURE-4
410d2ba102a4a661.gif


It would be wise to address those cases when the line is restarted with boxes in the line. In that case, there might be a box in front of Eye-A. Depending on your code, you might, or might not, have retained the status of that box when the line was stopped. It could be that the conveyor "coasted" a bit, bringing the box to Eye-A. If the pusher routine was not "running" because the line was stopped then you might not "catch" Eye-A going from OFF to ON. Be mindful of these kinds of "gotchas"... they must be addressed if you want the process to be flawless.

You might want to set it up so that the Clamp always closes when the processor is ON but the process is not running. That is, you probably don't want to have the Clamp "plumbed" to be Normally Closed. If you did have the Clamp "plumbed" Normally Closed then you might have to turn off the air supply before you can remove a box from the Clamp.

Whether or not you need to have a Clamp at each Pusher Station depends on the reliability of the transport conveyor. That is, if it is possible that the boxes might "gang-up" between stations then you probably should have local Clamps at each station.

Otherwise... well, you know your system better than I do... so, it's your call!

(820)
 
Clamps??? You have got to be kidding.

Its a school project. Ok, if it makes you happy.

I agree with elevmike:
If this is a student exercise please say so. If this is a real world application, condsider moving some of your devices around, and possably adding a few etc.. No amount of fancy programming will ever overcome a poorly designed or overly complicated machine.

I would just add an encoder and forget all the photocell tricks. I flunk the instructor not thinking of this. However, sorting and searching is a worthy student project even though PLCs don't do it very well. Terry, look at the lumber sorter that is near you for inspiration. It is amazing how people get so wrapped up in the problem and loose sight of the goal.
 
Peter,

Student or not (although he appears to be a "working-student"), I have seen the situation he is describing and I feel it is well worth exploring... 'nuff said on that.

You said... "...just add an encoder..."

To what?

How does knowing the speed, or the position, of the conveyor give you positive box-position information if the conveyor motion is continuous, and the box-feed rate might be somewhat irregular, and the box-spacing is subject to any kind of drag where any gap that might have existed at the infeed-point goes to "0" somewhere down the line?

I said before, using bit-shift registers works only if the transport system uses a rigidly regulated index scheme.

I'll modify that by saying... using bit-shift registers works only if the transport system is extremely reliable.

The method you suggest I look at is based on the idea of material being spaced by buckets or lugs (imposed spacing). That sure the hell ain't an open, flat conveyor belt (or roll-case)!

The method I'm describing is for an open, flat, conveyor belt (or roll-case) and is based on the almighty truth that "Murphy Lives"! This method can absorb an awful lot of Murphy-Effects before it fails. In fact, it would take a mechanical failure.

Besides... it's a damned good excuse to describe Indirect Addressing and a method to handle "free-running" material (as opposed to regimented indexing).
 
I use a method very similar to Terry's for indexing boxes under my scales. I use only one clamp located 1.5 box lengths "upstream" from the sensor B. I only use a sensor located at position B. My conveyor is capable of starting and stopping so I can get away with this arrangement. I activate the clamp for .5 seconds after the conveyor starts back up to create my gap to sense the next box at sensor B. Works real well.

Bob
 
Terry Woods said:
The idea of having a brake, or clamp, to establish and control gap size is a good idea.

Here is a possible flow regulator based on one that I developed many years ago. The purpose was to ensure a minimum gap size. It didn't matter if the gap was big, but it did matter if the gap was too small or non-existent. The following is based on the worst-case condition of no gaps between items as they enter the flow regulator area.

410d2b4326c6578f.gif


EYE-A:
When Eye-A goes from OFF to ON, the program knows that a box has just entered the push-area. However, it is not yet in position to be pushed. The pusher routine arms the Clamp and then checks the current color-marker to determine the appropriate course of action.

  • If the current color-marker IS Red then the pusher knows that it needs to push this box... but not yet.
  • The Red Pusher Routine sets the "PUSH" flag.
  • If the current color-marker IS NOT Red then the Red Pusher Routine sets the "PASS" flag.
  • The Red Pusher Routine knows it needs to let the box pass and pass on the color-marker... but not yet.
EYE-B:
If the Clamp is armed, and if Eye-B is ON, then the Clamp is closed until the Clamp is dis-armed.
If the Clamp is dis-armed, then, regardless of the state of Eye-B, the Clamp is opened.
(There is an excetion listed near the bottom of this post.)

EYE-C:
If the "PUSH" flag is set, then when Eye-C goes from ON to OFF, the box is pushed. After the pusher extends and then is fully retracted (at home), the routine discards the current color-marker, dis-arms the Clamp and resets the "PUSH" flag. If the Clamp was holding a box then the box is released and allowed to move toward Eye-A in the pusher area

If the "PASS" flag is set, then when Eye-C goes from ON to OFF, the box is allowed to pass through the pusher area.


The GAP:
If the "PASS" flag is set, then the size of the gap can be as minimal as the distance between Eye-B and Eye-C, or as extreme as "infinitly large".
  • Option-1: At Eye-C OFF, dis-arm Clamp (gap = minimum)
  • Option-2: At Eye-C OFF, run a timer then dis-arm Clamp (gap = variable, greater than minimum)
  • Option-3: At Eye-A OFF, dis-arm Clamp (gap = box-size)
  • Option-4: At Eye-A OFF, run a timer then dis-arm Clamp (gap = variable, greater than box-size)
In any case, DO NOT reset the "PASS" flag until Eye-A goes OFF. Then, at that time, remove the color-marker from the first queue and deposit it into the second queue.

If the "PUSH" flag is set, then execute the "push" when Eye-C goes OFF (gap = minimum)


In Figure-1 (below), the first box enters the clamp area. Notice that there are no other boxes ahead of the box at Eye-B. Unless the process requires a gap-size larger than the size of a box, it should be quite evident that there is sufficient gap ahead of the leading box. This means that on start-up, as long as the pusher area is clear, the clamp will always allow the first box to pass into the pusher area toward Eye-A.

FIGURE-1
410d2b4326c6578f.gif


In Figure-2 (below), the leading box trips Eye-A. That is, the eye transitions from OFF to ON. Two things happen at that point.

1. The Red Pusher Routine checks the current color-marker in the queue.
  • If the current color-marker IS Red then the pusher knows that it needs to push this box... but not yet.
  • The Red Pusher Routine sets the "PUSH" flag.
  • If the current color-marker IS NOT Red then the Red Pusher Routine sets the "PASS" flag.
  • The Red Pusher Routine knows it needs to let the box pass and pass on the color-marker... but not yet.
2. The Red Pusher Routine "Arms" the Clamp. (Eye-A going from OFF to ON causes the Clamp to be "armed".)

Notice that there is no gap between the first and second box.

FIGURE-2
410d2b6b7c6ede77.gif



Figure-3 (below) shows that, since the Clamp was armed by Eye-A going ON, the Clamp is closed on the following box. Meanwhile the first box continues moving forward.

FIGURE-3
410d2b8926ddb19e.gif


Figure-4 (below) shows that a "minimum gap has been established. In this case, the color-marker associated with this box happened to match the pusher color, thus calling for a "push". When the pusher returns to home, the Clamp is dis-armed and the next box is allowed to move toward Eye-A in the pusher area.

FIGURE-4
410d2ba102a4a661.gif


It would be wise to address those cases when the line is restarted with boxes in the line. In that case, there might be a box in front of Eye-A. Depending on your code, you might, or might not, have retained the status of that box when the line was stopped. It could be that the conveyor "coasted" a bit, bringing the box to Eye-A. If the pusher routine was not "running" because the line was stopped then you might not "catch" Eye-A going from OFF to ON. Be mindful of these kinds of "gotchas"... they must be addressed if you want the process to be flawless.

You might want to set it up so that the Clamp always closes when the processor is ON but the process is not running. That is, you probably don't want to have the Clamp "plumbed" to be Normally Closed. If you did have the Clamp "plumbed" Normally Closed then you might have to turn off the air supply before you can remove a box from the Clamp.

Whether or not you need to have a Clamp at each Pusher Station depends on the reliability of the transport conveyor. That is, if it is possible that the boxes might "gang-up" between stations then you probably should have local Clamps at each station.

Otherwise... well, you know your system better than I do... so, it's your call!

(820)
Terry there is one thing I am not familliar with, and that is indexed addresing, Im not sure if the micrologic 1200 wich I am using supports that, or maybe there is something I am not understanding. Is it correct that your logic is not using The FIFO.
Also the clamp idea is what I will be installing, as well as a pop up brake infront the pusher, so as the box will have a solid survace to ride against when being pushed. The pusher brake will stay up if the trailing box is and or subseqent boxes are labled the same color. I will incorporate a bit of time so as to let the box rest up against the pop up brake before being pushed. Like you mentioned if the boxes are labeled all the same color for a span of lets say 10 boxes, then the clamp will not brake boxes if it sees a sufficient gap. to prevent future wear and tear on the clamp. If there is not a sufficient gap, then brake every box.
In the event of an E-stop situation, or line stop between coffe brakes, is my concerns. I may have to have the pls to have its power never interupted, so if line is stopped during a push cycle, the pusher will still finish its travel. Remember this conveyor system is high up in the air and highly unlikely to posess human injury.
Darren
 
Darren,

You still might want to create a gap inbetween same-color boxes to keep boxes from rubbing against one another during the push. I always seperate them because I have had a full box push off a conveyor and start to drag the next upstream box with it, twisting it.

Just a suggestion,

Bob
 
Darrwn,

Look in the index in your programmers reference manual. See if you can find "Indirect Addressing". If so... read up on it.

I'll be back later with a description of the management routine in terms of software.
 
darrentpi,

Let me put in my 2 cents. If I had this as a real-world engineering problem, and read only your original description (Scope of Work):

"I am using a color eye to detect the color of the boxes, but I have to track them some how. They will be pushed off the conveyor at certain locations, there is an eye at each drop off location, but how does that eye no what color box is correct for that drop off. There is no encoder, just roller coveyor, so I don't know if the bit shifting will work!"

For the above problem, my solution would be:

(1) Move the original "color eye" #1 to the first drop-off location. For what possible reason would you locate it ANYWHERE else?

(2) Buy one more "color eye" and swap the non-color photoeye at the second drop-off location (say "yellow") with the new color eye #2. Yes, you will have to spend a little more money, but not nearly as much as you would spend in programming time (being a beginner) to get another method to work!

(3) Write RSLogix routines, using only the Equal Comparison Block and OTE (Output Energize) relays, that say: For Red drop-off location, If the color photoeye #1 sees the next box = Red, then energize red pusher; For Yellow drop-off, If the color photoeye #2 sees the next box = Yellow, then energize Yellow pusher; For the Blue (last) drop-off, If the non-color photoeye sees a box it must be blue, so energize the Blue pusher.

(4) Take some time off and contemplate the meaning of life!


P.S. This soulution ASSUMEs that you have accurately described your problem. However, if it is as some here have thought and you are constrained to only ONE color photoeye, then obviously whomever thought up this little exercise was trying to get you to use three Bit-Shift registers, one for each color, along with some type of synchronizing device on the conveyor, which can be as simple as a shaft proximity switch hooked to a PLC input, or as fancy as an encoder.
 
Last edited:
Terry Woods said:
Darrwn,

Look in the index in your programmers reference manual. See if you can find "Indirect Addressing". If so... read up on it.

I'll be back later with a description of the management routine in terms of software.
Terry I have put together the start of this program, that i can send you to see what you think. I have only done logic for the bit indexing, and pushing logic, other logic and fail safe logic will come later.
Darren
 

Similar Topics

Hi, I have some numeric input fields and I would like to track whenever a change is made to them. For example if an user changes temperature...
Replies
1
Views
863
Any help appreciated, Proposed question: I need to track parts to count the rejects in a rotating machine but having no luck tracking proper...
Replies
7
Views
2,342
Right now my system is using RFID tags on the load bars. Im trying to figure out how to implement error correction in this system. In the past...
Replies
2
Views
1,106
So at my plant our shift schedule is 12 hour shifts 7 days a week. There is 4 shifts A,B,C,D. A and C are the day shifts. 6am to 6pm B and D are...
Replies
10
Views
3,970
Hi all, i am having trouble finding out how i could track an event like start command or stop command. is there anyway to do it in FTView ME 6.1...
Replies
2
Views
1,546
Back
Top Bottom