Conveyor System for Leak Detection

LB90

Member
Join Date
Mar 2016
Location
UK
Posts
16
Hi all,

I'm trying to undertake my first conveyor system project which I hope/think could be relatively simple for experienced programmers such as yourselves.

First off, my hardware is AB 1769 Processor with a High Speed Counter card along with a couple of digital input and output cards.

I have a small conveyor, which is controlled by a VSD that has an incremental encoder attached to it. The conveyor has a belt with small pockets which hold canisters in.

I have a proximity sensor at a fixed position which indicates when a canister is present in a pocket, and then at a fixed distance down the line, I have a gas analyser which I want to trigger when this canister is above the analyser position.

There may not be canisters in each individual pocket, but there is potential for up to around 80 canisters to be present on the conveyor at one time.

Once the canister has been tested, I need to continue tracking the part and move it to a certain conveyor depending on if it's passed or failed the leak detection.

Eventually the canisters will be removed by a robot to the correct outfeed conveyor, but for now I want to be able to come up with something which can monitor the position of a canister, trigger the gas analyser, determine if that canister has passed or failed the leak detection, and to continue tracking it after the analyser position.

I'm struggling to think of how this could be done, if anyone has any pointers or suggestions it'll be greatly appreciated.

Apologies in advance if you need more information to determine a possible solution, I've tried thinking of everything concerned.

Regards,
LB
 
Several questions for you.

1. what is the size of the pocket?
2. what is in the canisters?
3 what is the speed of the conveyor?
4. leak detectors take time to detect a gas if its in open air, depending on the gas. We have open air fixed position detectors here and they detect gas buildup. I have also used sniffers, but that was an hvac system application on the production line.

james
 
Does the conveyor start and stop for each canister? If it does you have to think about that as well. Usually you need a detector to detect the pockets and you can use the pulse encoder for precise stops. You cannot just use the pulse encoder because the length of the conveyor will not be constant over it's lifetime.

Other than that you have a few options. Principle is that you keep track of all 80 canister on the conveyor. Usually you put them consecutive in an array or buffer. For each canister you have a number that represent the status of it.

For instance
0 could be that the pocket is empty
1 that it has a canister
2 that it has been analyzed and is OK.
3 that it has been analyzed and has failed.

You can also have the result of the gasanalysis and whatever else you need for each of these.

To keep track of them, option one is that you move all 80 values each time the conveyor has moved one pocket forward.
If position 1 represent the start of the conveyor you put a zero in. If the photo detector is at position 5 you change position 5 in the buffer to status 1 when you detect that there is something in it. If the analyzer is at position 20 you activate it when position 20 has a 1 in it (there is a canister there). When the analyzer has been completed you change position 20 to whatever the result was. If you have to decide at the end of the conveyor if the canister sould be put on a different conveyor you look at position 80. If it's 4 then it should go to the "failed" conveyor, if it's 3 it's an OK canister. If it's 0 it was empty.

Option two is that you have a value that represents the start of the conveyor and you increase that by one as the conveyor moves forward. That's called a circular buffer or ring buffer. Wikipedia it.
 
Last edited:
Thanks for your responses guys.

James:
1. 40mm wide, with 10mm gap between pockets.
2. They are pmdi cans, used I think for inhalers.
3. Not sure the speed of conveyor, it's controlled by VSD but no analogue feedback to PLC currently.
4. Cans travel through a tunnel for a period of time to allow for potential gas build up before leak detection.

Pete.S:
The conveyor is continuous motion. Cans are loaded and unloaded whilst the conveyor is moving. Only time it will stop is through a fault condition.
There is a 'pocket detector' sensor as well as a canister sensor.
I was thinking of an Array/Bit Shift on pocket detection but was unsure how this would work after the gas analyser result but you've described a potential method there with the different integers depending on the status so I will investigate further.
 
Thanks for your responses guys.
Pete.S:
The conveyor is continuous motion. Cans are loaded and unloaded whilst the conveyor is moving. Only time it will stop is through a fault condition.
There is a 'pocket detector' sensor as well as a canister sensor.
I was thinking of an Array/Bit Shift on pocket detection but was unsure how this would work after the gas analyser result but you've described a potential method there with the different integers depending on the status so I will investigate further.

Yes, don't use bits. Integers are more flexible and can be expanded with more states if needed.

Since it continuous you can use the pocket detector to advance the 80 integer array.
Circular buffer is always the fastest since it nothing actually moves. You just have an integer that points to the start of the buffer. Value 50 for instance is the start + 50. If the value is > 80 than you subtract 80. That way the buffer "pointers" wrap around.
 
Building on Pete S. comments.

Set you HSC to generate a pulse for a given distance. Each pulse represents distance traveled. Determine the number of pulses to travel the full length of the conveyor. Then, create an array of DINT's for that length.

Now to move your numbers thru your array you need to Copy Array[1] to Array[0] every pulse. This will shift your data up one position per pulse. The only trick is you have to enter your data and the end of the Array. Let's say you need an array of 1001 DINT. This gives 0-1000. So When you Detect a canister you MOV a 1 into Array 1000. This should give you 1's in your array for the length of the canister. If your canister is 10 pulses long then you basically get 1's in 1000 thru 991. If your leak test is 600 pulses away then you would monitor Array 400. If Array 400 = 1 then test. This would test for the length of the canister.(400-391) Now the results of the test would have to go into register that corresponds to the location of the canister. Now if you robot is 300 pulses after the leak test then monitor Array 100 for results of the test.

Once you setup your encoder for your travel distance and create an array for the length of the conveyor then the array represents the moving conveyor. As you put your results into the array the encoder pulse increments your results thru that array and you monitor the locations in the array to create an action.
 

Similar Topics

Need help with designing and test a PLC-controlled pneumatic system that conveys manufactured parts and loads them on a packing machine. I am...
Replies
8
Views
2,644
Good Morning Everyone, I am entry level PLC programmer and this is going to be my first PLC project at my company. I would like to thank you for...
Replies
13
Views
4,185
I am beginner using plc s7 300. I need to design a conveyor Rejection System for bottles if the gap less then 80% reject the bottle before and...
Replies
3
Views
2,199
1. Does anyone have any sample code for a AB compactlogix plc system that runs a conveyor? The conveyor has 10 sections with a motor and...
Replies
7
Views
2,672
Conveyor System Hi, I'm a beginner on PLC, could anyone help me. On pressing the start button (green) the conveyor should run only if a component...
Replies
4
Views
3,500
Back
Top Bottom