Conveyor window reserve, 1st come 1st, FIFO or Shift Register?

cmet

Member
Join Date
Jul 2006
Location
sing
Posts
18
Hello all. I just repied this thread below. But i decide to post a new topic hoping more people will read it. The link of the similar topic is shown below:
http://www.plctalk.net/qanda/showthread.php?t=20918

I am using siemens step 7 to do a airport project. I am working on an baggage handling system with 18 check in counters to merge to the main conveyour. I am to use a technique called "window reservation" for the merges. Once the baggage is moved to the induction conveyor, the control system will look for available space on the take away conveyor to create a virtual window. The virtual window is detected by a sensor installed 1m upstream for every check in counter. ( No encoder is used and the main belt travel at constant speed) And we want to release the baggage once a 1.75m window is created. All the counters have equal opportunity to create the virtual window, the induciton of baggage onto the wirtual window is based on 1st com 1st served basis.

I have read some related topics but still not very sure about the method to use. some people say should use shift registers while others say use FIFO. I am using siemens step7 and quite new to this software, which one shall i choose? how to apply to my project? if use shift register, shall i use one shift register for all counters or one register one counter? Is FIFO useful to my project?

Thanks a lot for the help. Waiting for your reply. đź““
 
Last edited:
Shift registers are what you need, I presume its one belt and 18 check-ins, therefore with the shift register you can add your check-in ID into the space to reserve the window.

The shift register should be words, not bits. Then you can place the check-in ID into it as a number (1 to 18). Each check-in should have a known position in the SR, you can then start searching for a space from that point.

I had a customer who was confused by this and could not imagine the windows, so I put a bit of set-up software in to enable me to mark the conveyor (with a bit of tape at a conveyor join) start the conveyor and it would stop on one window length, this way he could measure the window. It was handy for us as we used a pulse signal and found each was slightly different.

The way you describe though is not window reservation, you seem to be looking for a 1.75m space to inject into, this will not work, at busy times the end check-in's will not manage to get the bags in as all spaces will be used up. You need to reserve the window, sometimes this could be 10m away, if you wait until the last minute its gone.

You need to make a pulsed signal, by installing an encoder but for baggage it is normally OK with a single proximity and a starwheel to give a movement signal. This is handy as you can also use it for belt breakage by installing it on the non-driven end.
 
PeterW said:
The way you describe though is not window reservation, you seem to be looking for a 1.75m space to inject into, this will not work, at busy times the end check-in's will not manage to get the bags in as all spaces will be used up. You need to reserve the window, sometimes this could be 10m away, if you wait until the last minute its gone.

You need to make a pulsed signal, by installing an encoder but for baggage it is normally OK with a single proximity and a starwheel to give a movement signal. This is handy as you can also use it for belt breakage by installing it on the non-driven end.

dear peter, thanks for your reply. one point i want to make it more clear: all the check in counters have equal opportunities to send the baggage to the main conveyor. eg: the baggage at counter 8 reaches the waiting point on the induction point firstly followed by counter 5, and there are two 1.75 windows on the main conveyor coming to them. Based on 1st in 1st out, counter 5 will not use the first window but the second window. so the counters with bigger number can still send their baggages out during peak hour.

hope i make sense. Can it work in this way? Is one SR enough for all the check in counters?
I start PLC programming for only 1 month and I will program for all the check in area. This part make me feel very stress.. Hopefully I can pick up things faster.

Thank you.
 
I've programmed a number of these.

From your description I presume you have two check-in desks at every inject point, one either side of the conveyor??

The normal way would be to try to get the first one waiting to go out first.

In the picture below as an example, I have shown the pseudo windows with bags and reservations for bags.

check-ins.JPG


Check-ins 1 to 8, each check-in has an ID equal to its plant ID, makes it easier when monitoring. When it reaches the inject waiting point it should search the SR from its inject position minus one (you may already be past your inject position within the window) and insert its ID number to reserve the window.

Each window = a register in your SR.

Window 5 could not find a spare window until 9 windows, if you use delays you may create windows that are never used and impede earlier desks desks from injecting, so reserving windows is the better option.

Remember, and this is important, the windows do not move 1.75m every time, you have to know when the correct place is in front of your injection point, it is never conveniently at the windows zero position and the windows are moving all the time.

To achieve this it is normal to break the window up into parts, say 20 parts (usually measured by a tracking signal), in the example above check-in 5 is not central, logically counting the windows it would inject somewhere between window 10 and 11, so the code would be checking window 10!!!, then 20 pulses later 10 will be in position 11, you would need to inject somewhere bewteen these two points. Its pretty early in the movement so it could possibly be window 10, pulse 3. Hope thats clear (probably as mud I know).
 
hmmm~~ the two check-in counters are located at the the same side of the main conveyor.
the person who designed this project makes it more complicated:the window is start to creat not only when a empty hole is detected but also when the baggage of the counter has left teh proximity sensor. So there will be the case where two windows overlap (to save space and let the baggage loaded faster). If i reserve the window in the front of the conveyor, the length of the window will be fixed. But in my case, the length of the window will be reduced. Can I STILL USE SR??? :unsure:

PLS refer to the doc.file. I try to darw it. hope you all can understand.

:confused: keep on thinking it for one week. thank you ~~
 
cmet said:
the person who designed this project makes it more complicated:the window is start to creat not only when a empty hole is detected but also when the baggage of the counter has left teh proximity sensor. So there will be the case where two windows overlap (to save space and let the baggage loaded faster). If i reserve the window in the front of the conveyor, the length of the window will be fixed. But in my case, the length of the window will be reduced. Can I STILL USE SR??? :unsure:
QUOTE]

Windows overlapping, believe me mate thats a disaster waiting to happen BUT I don't believe you are doing true window reservation.

I presume that its the second of the two check-ins you are referring to when windows overlap, as if the second was allowed to inject after the first cleared its waiting sensor they would bump into each other.

I recently designed the controls for a layout identical to the one in your picture.

The above one I drew would be an 'island' type check-in (movement left to right), yours is a standard check-in, probably up against a wall. The collection conveyor (the long one) would normally be behind a wall or screen, I have seen them out in the passanger area though.

Looking at what you are doing, it is not window reservation, you create the window before the desks and I presume each pair of desks have the same layout (correct me if I'm wrong here), that means that each pair of desks are trying to create windows on the same collection belt.

This is not too bad for a couple of check-ins but not recommended for 18 (9 pairs). Each pair of check-ins will depend on a space being available, therefore during the busy periods when passangers are lining up and bags are dispensing in regular intervals the poor tail end charlie's desks end up with no space and cannot inject. (This is where you see stroppy check-in staff manually pushing bags together on the collector belt, which end up as jams further down the line).

For your installation I would recommend proper window reservation, which means windows created BEFORE the start of the collector belt, where desks can reserve space well in advance at peak times when the belts full. These windows then pass the earlier check-ins without them taking the space allowing the later ones to inject.

You can only do what you are saying when the collector belt is made up of smaller conveyors, so they can stop and allow a check-in to inject in front of a bag (create a space).
 
Really nice story to read. About this window reservation thing. When do you reserve a window? I think you only reserve a window for desks that have bags available? If that is true then the last desk is still f#cked because it would take a lot longer before the reserved window is actually at the desk. The first desk would be much faster because he doesn't have to wait so long for the window to pass en can reserve a new window sooner.

Or am I missing something? (Always reserving windows for desk and thereby loosing belt capacity if no bags are availeble at a desk and another desk has a lot of bags)
 
Werner said:
Really nice story to read. About this window reservation thing. When do you reserve a window? I think you only reserve a window for desks that have bags available? If that is true then the last desk is still f#cked because it would take a lot longer before the reserved window is actually at the desk. The first desk would be much faster because he doesn't have to wait so long for the window to pass en can reserve a new window sooner.

Or am I missing something? (Always reserving windows for desk and thereby loosing belt capacity if no bags are availeble at a desk and another desk has a lot of bags)

The window is reserved when the bag reaches the sensor at the end of the check-in conveyor.

I would normally search for an unreserved space, starting on the very next window upstream to the check-in desks, then work away, as soon as a free window is found, reserve it.

When found, if it happens to be 20 windows away then so be it, the system is full, but there could be a space just prior to the upstream desks, which would be filled by the said desks if there was no reservation (like cmet's application).

Bag reservation enable the bags to transfer into the first 'available' space on the collector belt.

The only other way to do it, is to have small collector belts, which start prior to each set of check-ins and stop the preceding one if a bag wants to inject and a bag reaches that conveyor. The problem you have then is that the reverse happens (the first desks cannot inject as the conveyors downstream keep stopping and the belts fill up).

I've seen the above with a token passed to each desk to allow it to create a space. Messy. Windows are best (don't let Bill Gates read this).
 
Clear. So on very busy moments the windows are reserved directly at the point where they are created. On quieter times unreserved windows move through the system which can be reserved by any desk. So If the belt capacity is to low for peak capacity then the first desk in line will be the fasted. (It is closest to the reservation point).

You solve this by making a FIFO list of desks with bags waiting. This will prevent desk 1 to get more reservations in. Once desk 1 has a slot in the system it has to wait for the bag to drop. When after that a new bag is present at desk 1 it will have to enter the FIFO list at the bottom. When desk 1 comes to the top of the list it can resevate a new window for its bag.

This makes sure all the desk have to wait the same time and the system is fair to all desks.

(Normally the list will be empty because the belt should have a lot of capacity left, only when the belt is completely full a list like this will help)
 
Last edited:
OK, try to simulate with FIFO @_@

I have a roughly idea to do it now.I am trying to use the FC 85 FIFO function to solve my problem. Once a baggage is waiting to be merged into main conveyor, the counter_ID will be sent to the FIFO. And after a window is created by the sensor of upper stream the COMPARATOR will compare the output of the FIFO with the Counter_ID. If the two outputs are the same, then the baggage can be merged. Will try to simulate soon and hope it will work.
 
In my example layout up top, if a bag appeared at check-in 8, if you had a FIFO, it would reserve the space after the space reserved by CI5.

In a SR, you can place it where you want, in this case there is a free space between existing bags, so the search wold look at the first window and find its reserved by 7 (this one may have been too late anyway), the next window contains a bag, the one after taht is free, so a 8 would be put into it to reserve the space.

Don't forget, these windows as pseudo (imaginary) windows that you cannot see and they do not sit still, they are constantly moving with the collection belt.

Its best to use a pulsed input for timing of the movement, but it is possible to create a constant pulse in the PLC and use that, for each pulse the window moves a set distance.

The check-ins will all have a window position where they can inject into, they will also have an offset position when that window is in front to ensure all bags are injected into the same position in the window.
 
Arrays or Shift Registers, it depends.

PeterW said:
Which is why you would normally use a shift register.
It depends on the amount of data to be shifted. As the shift register gets longer it takes longer to shift the data and it makes sense to use an array with an index register. I agree that shift registers are easier to use. I have always use arrays, index registers and offsets from the index register. I wouldn't use shift registers to do projects like the Denver Airport baggage system.

PeterW, how much and what kind of data do you shift in a airport system?
I would think that the flight number or next city would be important.
In another thread I described how I did a lumber sorter and how we had update 160 lugs on a chain converyor and each lug could have a board with species, grade, length, width, thinkness and destination bin.
 
Peter Nachtwey said:
In another thread I described how I did a lumber sorter and how we had update 160 lugs on a chain converyor and each lug could have a board with species, grade, length, width, thinkness and destination bin.

Your quite right about the amount of data with a bag, on my current project each bag has just under 100 bytes of info, such as barcodes, destinations, routing, security etc. The bag is also 100% tracked from check-in to final destination.

Prior to this most projects I've been on its been much less, as bags tended to be identified at decision points and the only info being which direction to take, the bag is no longer tracked once it past the divert mechanism. The way of the world means this is changing.

For the check-in scenario, there is none of this info, the shift register would contain only one byte per window, this would contain 'zero' for unreserved or the check-in number of reserved or occupied windows. The tracking itself would be done by other software as this is only 'space' reserving software to get the bag into the system.

cmet from his description has no tracking pulses, therefore he does not even track on these conveyors. It is normal for the bags on check-in to have a single route into the baggage area and once inside the barcode will be read at some point and the bag identified.

Yes for the full tracking we use arrays of multiple UDT's for all the information pertaining to the bag. Even then check-in's and later on side merging is done with seperate simpler software.
 

Similar Topics

Hello all, I am working on an airport baggage handling system with 10 check in counters to merge to the main conveyor. I am to use a technique...
Replies
51
Views
21,087
Does anyone have sample logic with conveyors that start and stop according to product on the line?
Replies
1
Views
90
Good Afternoon, I’m limited with a skilled maintenance staff to design and build Load Cell , Rollers , etc. for conveyor sections . Do...
Replies
11
Views
653
Hello everyone, I need to create a belt conveyor with an AFM60 encoder on board that detects the position of the glass (too small to be detected...
Replies
5
Views
702
"Hello, I am a beginner learning about PLC. Could you please give me some advice? I want to write PLC instructions as follows: When the sensor...
Replies
18
Views
3,383
Back
Top Bottom