assign ID to part on conveyor or track part on the conveyor

backendcode

Member
Join Date
Aug 2017
Location
brampton
Posts
249
Good Morning Everyone,

I have a quick question and I am not sure if it is possible with PLC code.

I have 6 conveyors, Someone(worker) will load (feed) the part on conveyor 1 and that part will move forward to conveyor 2, 3 and so on and there will be another worker who will offload the part from conveyor 6. The guy at conveyor 6 will inspect the part and offload from the conveyor. I am trying to make a time study application with PLC code. Here what I want to achieve

1. Every time when someone will feed the part, I want to know what time he/she feeds that particular part and I want to assign some sort of ID or number and that part will carry the assign ID/number as part move to conveyor 6. let's say he/she feeds 10 part in 8 hour shift, I want to get the information something like that
part 1(ID or number) at 7 am
part 2(ID or number) at 7:30 am

My assumption: I have no idea where to start and how to think so please give an idea

And on offload conveyor(conveyor 6)
Now I have a part and I should know the part ID or number and I want to know how long the part stays on this conveyor (Conveyor 6) (Because we trying to time study how long guy take to inspect each part)

My assumption: If I know the part ID or number and every time when part will be here I will use timer will pre value 8 or maximum hours and then when part will stay here I will record the acc value and that value gives me how long part stay here and once I have acc value I can connect my excel sheet via OPS server and record that information.

Any advice and information or source how can I achieve this application.

Note: I am not asking for anyone to write a code but please guide me or give me some sort of direction.

Thanks
 
if this is homework, then look into BSR/BSL techniques

if this is a real world application, what type/how many of:
PLC/Software
scanners
photoeyes
motor controllers
conveyor controllers
etc, etc
 
if this is homework, then look into BSR/BSL techniques

if this is a real world application, what type/how many of:
PLC/Software
scanners
photoeyes
motor controllers
conveyor controllers
etc, etc

This is real world application, I am using AB compactlogix L2 series and using RSLOGIX 5000 software to program the conveyors.

The line has 6 conveyors in total and each conveyor have 1 proximity sensor and 1 motor and that's all!

Not: this is inspection line! worker manually feed the finished product from the production line to inspection line.
 
I'll make a few simplifying assumptions: (1) there is only one part on a conveyor at a time, (2) the proximity switch is as the start of each conveyor, and indicates when a part leaves the previous conveyor and moves onto the next conveyor, (3) it is not possible to remove parts from any conveyor (i.e., they must cycle through all six before removal at the end, and (4) there is some signal when the operator removes the part from the last conveyor (e.g., push button).

In this situation, and for the purposes of a simple time study, I would create a UDT that contained a date/time array (7 DINTs) and then 6 more DINTs corresponding to residence times on each of the six conveyors. There will be an array of these UDTs corresponding to the number of parts you want to track for any time study experiment. For example, if you want to examine the flow of 100 parts in a time study, you would have an array of 100 UDTs.

Each conveyor will have the following data items associated with it: occupied flag (BOOL), occupied timer (TIMER), part ID (DINT). The part ID will be an index into the UDT array.

As a part is detected on the first conveyor, a part counter is incremented. If the counter is less than the maximum allowed for the study (i.e., the UDT array size), then continue with the part tracking as follows: Set conveyor #1 as occupied, use that BOOL to run a TON with conveyor #1 timer, set the conveyor part ID as the part counter value, run a GSV to get wallclocktime, and store that in the UDT array indexed by part ID. Clear the array of residence times in the UDT array, as indexed by part ID.

When a part is detected as moving onto a conveyor, do the following: get the part ID from the previous conveyor and store it in the current conveyor, get the timer accumulator value from the previous conveyor, and store it in the residence time array for that previous conveyor (indexed by part ID), clear the occupied bit and part ID of the previous conveyor, start the occupied timer for the current conveyor.

Do this for each conveyor transition. Use the occupied bits as error checking (i.e., make sure the previous conveyor was occupied before using its data on the next conveyor, make sure a conveyor is not already occupied when attempting to move a part onto that conveyor, validate Part ID before using it as an array index into the UDT array, etc.)

This kind of approach should be reasonable for something non-critical like a time study.
 
If the box can't get moved or stopped between the time it's placed and time it's offloaded that makes things easier.
If you're just doing a time study to see elapsed times of the overall process then you can probably skip the ID portion. Assigning unique IDs obviously adds a level of complexity that might not be needed.

For overall process time:
If there can only be one box on the conveyor at a time then a standard timer function would work well. Start the timer when the "load" sensor at Conveyor 1 is activated. Stop the timer when the "unload" sensor at Conveyor 6 is activated.
Once the box is unloaded, move that timer's accumulated value to an array - just as you assumed in your original post.

If there can be multiple boxes on the conveyor system at once then you might need to load a real time clock value into an array when the box is loaded and unloaded. Do a math instruction to determine the elapsed time after the unload and put the elapsed time into an array.
 

Similar Topics

I have 32 masters in a linear topology network chain. I would prefer to use AL1xxx series from IFM. They do support device level ring if that...
Replies
15
Views
1,055
On my HMI-1200, I'm trying to assign the image of a floppy disk ("save" icon) to a function key. I couldn't find one in the default drop-down...
Replies
5
Views
612
Hi everybody. I got some problems about how to perform this task Now, I got an FB where I have this code snippet that looks like: L P##DBD_134...
Replies
5
Views
1,143
Good Morning, I'm not sure if this is a stupid question, but I've been working with FTView ME for quite some time now and I can't solve this...
Replies
9
Views
1,502
Hi I have a few Movimot motors on profinet, where i need to change the profinet name on the motor. I have been true this before, where i deleted...
Replies
7
Views
2,450
Back
Top Bottom