Part Sprayer Concept Programming question/advice

dternosky

Member
Join Date
Feb 2016
Location
North Canton, Ohio
Posts
19
Concept of the system (Sketch of system attached)

**I am blessed to be a member of this community, thanks in advance**


System is a chain conveyor with table tops that hold a part to be sprayed from one side. As the chain conveyor enters the spray area the part table will rotate 90 degrees at each subsequent station. IE. Enters first spray gun at orientation in which it was put on the part table top. Before entering gun #2 part table is rotated 90 degrees via sprocket. This repeats through the next 2 spray areas. So the part is rotated 360 Degrees.

System has 4 spray guns
Machine has multiple part table tops
Need to monitor if there is a part present when entering spray area.
Only energize spray guns when part is present at each station because solution is costly.

What is the best way to write this program logically.

I intend to monitor the part table position assembly with a Proximity sensor that will read when the part table is entering the spray area. As well as monitor the part position for a part present using another sensor.

The idea is if the part table is present but no part is present do not energize gun 1 and then index that through to gun 2, 3, 4 as the part table progresses through the spray area. My assumption is to use a Bit Shift or FIFO. I am also thinking I may need timers to help with the accuracy of the spray guns to make sure they are on and spraying the part completely. I apologize if this is a little unorganized this was someone else's brain child before it landed in my lap.

Thanks!
 
The conveyor doesn't stop at the spray gun for the part to get coated? are all spray guns evenly distanced from one another?

If the whole process is at a constant speed using a stop watch you could likely calculate the travel time and set a timer in your program to trigger when to turn spray guns on and off after a part is picked up by a single proximity switch detecting a part before entering the booth. Position the prox at the same distance as the guns are seperated from one another. You show the concept for the mechanics but have you started any code yet?
 
A simple BIT shift is the best way to do that
use a sensor on the chain links to index the bit shift
set a 1 if part is persent and 0 if not
if the bit is 1 then fire the gun for that position
you should not need a timer you should be able to find the load point of the bits cont the chain links between the statios and go from there
 
You will need a way to keep track of the presence or absence of parts through each of the four spray heads. A bit shift instruction is a good choice for doing that.

If the conveyor speed is constant, then you may be able use elapsed time since the part cleared the presence sensor to trigger the start and end of spraying. If the size of the parts varies, you may need adjust the duration of spraying to compensate. A more accurate method could be to install an encoder driven by the conveyor. Each encoder pulse represents a fixed increment of travel, regardless of speed.
 
somewhere, I don't remember the details, but The Google should be able to find it, is a sample exercise for a paint spraying setup similar to this You might find some ideas there.


The bit shift is the way to do this though, as others have mentioned.


Is the coverage from a wide pattern of the paint head (it appears to cover a large angle in the schematic), or is coverage achieved by leaving the paint sprayer on while the part moves through a narrow pattern? Because if it's the latter, then the speed of the conveyor should probably be set by the paint head parameters (flow rate). If the former, then the conveyor speed could be variable, and the bit shift trigger needs to be either tied to the conveyor motion or a variable timer.
 
I have done exactly this many times, the first time was 36 years ago, I I'm assuming this is an indexed system (mine wasn't exactly) the chain conveyor continually ran & there were stations that could hold 10 parts, a part was released at the same time from every station (this increased speed rather than the preceding one energising to release before the one behind it).
But it should be the same principal, so the (I will call it the hangar) is indexed this becomes the shift pulse so depends on if it is an index conveyor chain or release stations, the index sensor is either the chain indexing or a release index sensor,
If index pulse then shift the bit in the shift register (if part sensor true bit 0 becomes a 1 or 0 if not).
If this is indexed & not a continuous chain then it is easy, however, if the whole system is continually moving then you create a shift register with a lot of bits, and rather than one shift per total index you have multiple shifts, so when the part enters the spray area it takes a range i.e. spray area 1 becomes say bits 15 to 30 so the spray head is energised only if part is present for the length of the part.

This requires a little more thought, it means different sized parts can be detected & the sprays only run while the part is passing. so small parts the spray is only on for 200mm, a larger part may be 350mm, not sure of your application but it's worth a thought if it can be optimised to reduce paint costs.
 
Thank you all for your advice, i do plan on using a bit shift. I have not started the code for this project yet, we are finishing up the mechanical installation at this time. I will post the program after it has been written if we are having problems with this approach. Thanks again for your help!
 
Looking forward to it. Note especially Steve Bailey's comment about driving the bit shifts by time vs. conveyor encoder.



It depends on the actual geometry, but one issue I wonder about is whether a part, either with a non-circular cross section like the rectangles in the PDF concept sketch, and/or that is not centered on the part table, will get unevenly sprayed. For example, in the sketch, the rectangular parts with their long axes aligned with the direction of two spray guns will have more paint per unit area on the ends of that long axis than the sides of the long axis get at the alternate spray guns. Similarly, if the part placement orientation is random, then the area along the side of the long axis that is nearer to the gun will get more paint at each station; even though that may even out at the next station, the ends of the side may get a different amount of paint than the middle.


Maybe this is not an issue; it does depend on the acceptable level of variation.
 
One of the systems we did used a Tralfa robot, this had an amazing 500KB OF BUBBLE MEMORY wow!, the beauty of this early device was it mimicked the human, we spent a few hours grabbing the robot, selecting switches & spraying the parts so as it was stationary at the time & the robot articulated arm could get at every conceivable part, the problem was remembering to select the right switch for start movement, rotate part, finish & get a good finish. we managed to get 15 of the 30+ programs finished but many times selected the wrong switch on a good spray so had to do it again, brilliant system for it's day a human taught it, it then could do it at least 3 times the speed. no problems of uneven coating as the teaching by human could ensure the nozzle distance from the part was taught by a human, so a good spray once programmed could repeat it accurately this was early 80's I bet the half mb of bubble memory cost more than 500 tb of non volatile memory would cost now.
The parts were lorry wheels, so a static reciprocating spray arm would have been useless due to the complex shape of the wheels.
 

Similar Topics

Hello, I am still new to PLC programming and I just got this job two year out of school so I don’t remember much. I was given a task were I have...
Replies
1
Views
171
Good morning crew! Ok my logic works but I am missing something. When the start button is pushed it should like the red light for 4sec then shut...
Replies
13
Views
426
Hello: I need to buy one end-cap which was not provided by an ex-Rockwell distributor here. Since I do not know the part number I can't find it...
Replies
24
Views
6,493
For a thermoset molder I am looking for a vision system that can monitor part removal from a mold. The mold temps can range anywhere from 300 to...
Replies
4
Views
1,662
Long story short, I am creating a display to display an array of Strings from PLC [topic]VarStrA_RPHD.Desc[VarStrB] totally 100 strings...
Replies
1
Views
1,408
Back
Top Bottom