RSLogix 500 - Unit tracking and multiple unit load/unload

mwesely12

Member
Join Date
Dec 2011
Location
Texas
Posts
13
All,

I am new to this site and to PLC programming. I have come across a complex challenge and am hoping I can get guidance from someone here.

I am attempting to revamp a current set of logic to increase throughput through a specific process.

The Process:
Units travel along a main conveyor and enter the "work system" and go into (1) of any (24) workstations (12 workstations on each side of the main conveyor). There, the units are processed for a varied amount of time. The units are then released, and return to the main conveyor and continue traveling out of the area.

Currently, only one unit is allowed to be on the main conveyor at a time, unless the leading unit is exiting the system. This conservative logic was originally put in place to prevent the possibility of units colliding.

My goal is to increase the throughput of units through this work system by enabling multiple units to occupy the central conveyor at a time as long as certain conditions are met.

The Roadblock:

Due to my limited experience with ladder logic, I am having difficulties being able to track units through this process, because I have no way to identify whether a unit has been processed (whether it is entering or exiting).

The process gets complicated because I can have a unit try and enter or exit from any of the 24 workstations at any time.

The I/O:

Along the main conveyor, there are (12) lift transfers (O) that lift up units and direct them to an open workstation on either side. At each lift transfer there is also a pallet stop (O) that catches units traveling down the conveyor and a Prox sensor (I) telling the system a unit is present. Each workstation also has its own Prox sensor (I)


If anyone has suggestions I would greatly appreciate them. I have attached an image I created that shows the layout of the area and the locations of the I/O.

I would be happy to provide additional information if any is needed.

Thank you everyone!

Mike
 
This is quite a complex application and I believe you would need a lot more data at hand before even declaring that the throughput can be increased.
What is the Min/Max time a unit could be expected to spend within any of the processing stations?
Is the processing time constant for each of the stations?
Is the conveyor speed constant or there are VFD provisions?
Is the conveyor "drive" segregated between the workstations grid?
Etc., etc.,....?
There are "tracking" capabilities within any PLC application, the A-B SLC family using the FIFO (First In First Out) "stack" instruction, however, just the study of your application would require days even for an experienced application engineer.
Maybe you should seek help from an integrator and improve your programming skills while working together.
 
Thank you dmargineau.

Conceptually, I believe I have found a solution that would enable me to have up to (2) units entering the system and (2) units exiting the system. I would not need any more than that.

It takes approximately 30 seconds for a unit to travel down the main conveyor from the entrance to the exit.

Units can be in-process in the workstations anywhere from 2-20 minutes. I looked into using FIFO, but I don't believe it would be ideal for this process because of the high variability of processing time.

There are VFD's on the main conveyor (2 speeds, Hi/Low, this can be disabled if necessary)


A more specific obstacle that I am trying to work around is enabling and tracking (2) exiting units. There are (2) possible queue spots that an exiting unit can travel to. I need to know if there is a unit in either of these queue spots and/or if there is one or two units currently exiting and enroute to fill these spots. If this is true, I need to prevent any other unit from exiting until there is an open queue.

Thank you!
 
I don't see why the processing time variability would interfere with FIFO/LIFO operation.
The FFL (FIFO LOAD) and FFU (FIFO UNLOAD)instructions are programmable at user's discretion; FIFO status could also be program "examined" in such way that the CPU knows at any time how many items are present within any of the "stacks" or if and when they are full/empty.
You could also use FIFO in conjunction with LIFO depending of the station's processing time.
You might need a few supplementary "conveyor loading image" input devices in order to ensure clearance and it would be helpful if you "segment" the conveyor in several, variable speed "logical" units.
 
Last edited:
I have no way to identify whether a unit has been processed (whether it is entering or exiting).
That seems to be the key to solving this problem. Actually using a PLC, there probably is a way to determine whether a unit is entering or exiting. You do have a prox switch that should go ON when a unit enters a workstation. Then you can use a timer to track how long a unit is in a workstation. After some Minimun Elapsed Time (determined by observing the work of the 24 stations), we know that the unit is now "processed", so can label it such in the PLC memory. This Processed Unit can be tracked with a FIFO, or even simpler with a Bit-shift Register (which tracks movement of a bit in PLC memory as an object moves from point-to-point).

You could set up one BSR (Bit Shift Right) to track the units while they are "unprocessed" (1 = Unprocessed Unit present, 0 = empty space), and a second BSR to track the "processed" units (1 = Processed Unit, 0 = empty space).

Traditionally the shift-register is used with a conveyor encoder that measures how much the converyor moves per unit of time, and allows the PLC to shift the bits in proportion to the physical movement of the objects on the conveyor. Without an encoder, the bit-shifting depends on using multiple prox switches or photoswhitches to track package movement.
 
Last edited:
First off this sounds like a first Available type system. That's to say if Station 1 is open it always gets the tote and the decision is made at the transfer. If Station Prox is not Blocked and Transfer Prox is blocked then Raise Stop and Transfer. I would Assign a ID number to each tote. (ie: what Lancie suggested assign 1 to unprocessed totes)

Then your decision would be If Assignment Number = 1 and Transfer Prox is blocked and Station Prox is not Blocked then Raise Stop and Transfer. This will give you control over the transfer. This should be done at Work Zone Entry Stop and MOVed thru the system using existing prox's at transfers. To accomplish this you'll need 13 registers to store and move your 1 into. Move a 1 into Entry Register when Entry is Blocked and MOV 1 into Transfer 1 register when Entry is Released and Clear and then Reset Entry Register. Do this thru all transfers. You will have make the decision of whether you MOV 1 to next transfer or clear depending on what happens at each individual Transfer. That way when the processed totes are added back to the system they will NOT be equal to 1 and not transfer. The queue Problem can be accomplished with the same theroy. Just so you know this is not a fool proof method. Operators sliding Processed boxes in front of moving unprocessed boxes will fool this concept. So you will need there co-operation.
You could add the Registers and MOV instructions to program and work it out until you are comfortable with your logic. Let it set internal Bits and watch it work. Then Add the Internal bits to existing logic when your happy with your results.

tip:Once you add your result bits into exising Logic you can
Parallel a single Bit around all your Results bits, that way by toggling the parallel bit you can override you Result bits. Just some CYA while doing live testing.
 
Last edited:
I don't think you are going to solve this with software alone. Your biggest issue is that the main conveyor is both infeed and outfeed.

Obviously you cannot fill your main conveyor with unprocessed units, because there would be nowhere for the stations to put their completed units back onto the main conveyor.

I can partially understand the "conservative" logic that was implemented, because it saved a shed-load of cost on the conveyoring systems.

If you allow more than 1 unit onto the main conveyor, you are in danger of it reaching exit point, and not having been processed at a station.

Your scenario is very similar to a (beer) keg filler, where a main feed conveyor transports empty kegs that are pulled into filler lanes. The major difference to your situation is that the full kegs do not rejoin the main infeed conveyor, but have their own exit conveyors. Empty kegs on the infeed conveyor that escape being pulled recycle round to rejoin the infeed stream.

Even if you do find a software solution to this problem, I'm sure you will still get unprocessed units exiting the main conveyor, you would have to deal with them.

There is a wealth of knowledge/experience on here, hopefully someone will have a workable solution.
 
Fun problem

Infeed - Can any unit go to any processing station?

at the workstations do you have a timer telling you how long until that station finishes?

In your diagram was the process flow left to right (ie the main conveyor)? (looks like it was as the station numbers increase L-R)

Does the main conveyor stop for a transfer? ie if you are transferring to the workstation at say station 09 and there is another unit right on its tail do you have to lift the previous stop do it does not run into the lift mechanism?
 
Last edited:
cwal61 Seems to have the method

The problem seems to break down into 3 parts

1) When to release units onto the conveyor
2) Track finished and raw goods along the conveyor
3) When to release finished goods onto the conveyor
 
Looking at your PDF layout It looks a lot like an engine hot test cell network in the automotive industry, and as the PLC kid suggests the best way to go to give a much more accurate tracking method would be radio frequency identification tags such as MOBY-I (google)

Steve
 
What devices do the yellow circles, blue dots, and green funnels(?) represent?

This seems to function very similarly to one of our systems except there are transfers on only one side.
 
RSLogix 500 - Unit tracking and multiple unit load/unload
Mike, I would like to work with you on a RSLogix 500 program. Do you have a list of your Input and Output modules? Also, which processor are you using, and how many rack slots do you have available.

If you have a program started, you could ZIP it and post it, or you could print out the ladder rungs in a PDF file.

Do your Lift Transfer Outputs look like the attached picture?

24-UNIT LOAD-UNLOAD LIFT OUTPUTS.jpg
 
Last edited:

Similar Topics

I have a little bit of experience with Allen-Bradley. I have a Micrologix 1500 (RSLogix 500) and a PanelView Plus 7 (FactoryTalk View Studio ME)...
Replies
3
Views
104
buen dia. tengo una falla al pasar los tags de mi plc SLC 5 0/4 a mi panel me aparece un error Problem writing value " " to item <tag name>...
Replies
1
Views
73
Will someone please convert this logic to pdf?
Replies
2
Views
119
Hello, Haven't been on in a while. I need to generate a bit level pdf of the I/O for RSLogix 500. I can generate a report but it just shows the...
Replies
1
Views
148
I would like to copy register N61:131 thru N61:147 into ST252:0 I keep failing What happens is I copy into ST252:0,1, 2 etc. What am i missing...
Replies
18
Views
564
Back
Top Bottom