Part tracking in PLC.

ielkhatib

Member
Join Date
Apr 2020
Location
Egypt
Posts
34
Sometimes to take decisions on a process based on some condition that happened in a previous stage in the process, A typical Example is Sorting based on height where the Sensors to detect the height are installed far away from the sorting table. So I need to keep Track of the status of the Parts and Take the decision later >>> How I can Accomplish This part tracking in PLC Programming ???
 
I've done this for Goodyear.
We used an encoder on the conveyor to track conveyor speed.
We used a photo-eye to sense the tire.
In the plc memory, I used shift registers to track the tire.
The conveyor speed gives you the rate.
The photo-eye gives you the tire size.
You basically create a shift register in memory.
It basically a conveyor in memory.
But VFDs are basically good enough now a days where I don't think you need an encoder for that basic application.
 

*R_Trigs*)
FBI_pulse_re (CLK := conv_pulse, Q => pulse_re);
FBI_Gate_re (CLK := entrance_pe_blocked, Q => gate_re);
FBI_sim_pulse_re (CLK := sim_pulse, Q => sim_pulse_re);

(*Increment a sequence number and load it into the tracking array at position 0 when the gate is blocked*)
IF gate_re AND conveyor_running THEN
seq_num:= seq_num + 1;
IF (seq_num > 100) OR (seq_num <=0) THEN
seq_num:=1;
END_IF;
shift_table[0]:= seq_num;
END_IF;

IF ( NOT entrance_pe_blocked AND conveyor_running) THEN
shift_table[0]:= 0;
END_IF;


(* This logic shifts the tracking table "shift_table" every time we see a pulse*)
IF ((pulse_re AND NOT sim_pulse_enable) OR (sim_pulse_re AND sim_pulse_enable)) AND conveyor_running THEN
pointer1:= 1999;
WHILE (pointer1 >= 1) DO
shift_table[(pointer1)] :=shift_table[(pointer1-1)];
pointer1:= (pointer1 -1);
END_WHILE;
END_IF;

 
Use a FIFO that count parts being inspected and add height as info to the FIFO at entry, this way you have control for every part in the conveyor, you can not take out or include new boxes between entry and exit. FIFO size must be bigger than number or parts that can be handled in the conveyor.
 
I would use an integer shift register.
detect the art in insert the part number into a register. as the part moves down the line, shift the part numbers down the line.
at the end of the line, you know the part number and what to do with it.
james
 
Here is some logic for bit & word tracking shift (FIFO) Both use a timer to generate the pulses however, for accuracy it would be better to use a prox on a drive to give pulses, depending on the part size & speed you may not need a fast pulse like an encoder as the shift register would be very large of you could count the pulses (say 20) then use the count to create a pulse & reset the counter so effectively divide by 10. In the word shift data is entered into D0, the shift pulse shifts the data in to the FIFO & then resets the data on the same scan, this stops the data being entered into more than one register. On this application a range of registers at the end of the shift are used to detect the part as using a timer instead of an absolute count from the conveyor may introduce differences in conveyor speed so not strictly synchronised with the conveyor. This window will have to be less than the distance between the parts plus the part width. This was done in GX Developer so depending on your PLC will need to use the equivalent functions.
 

Similar Topics

Looking for some insight for tracking multiple parts on a conveyor. The conveyor stretch is 150 feet long with a prox at beginning. From there...
Replies
10
Views
3,985
I am working on a project in which I will be tracking multiple parts on a conveyor with specific positions where the parts are marked. The...
Replies
7
Views
3,406
Hi All, I am trying to track rejected parts on a conveyor system. I am using a camera to mark the bad label and then a BSL to track when it gets...
Replies
6
Views
1,775
Good evening, Here's something I've been pondering for a few weeks but have not found the time to test. Maybe someone has a better idea and can...
Replies
15
Views
5,441
Hello guys, I have an application where up to 10 fixtures are transported On a conveyor system. Each fixture goes through a series of 7...
Replies
4
Views
1,979
Back
Top Bottom