Shuttle system automatic operation

jbhill

Member
Join Date
Mar 2008
Location
Kansas
Posts
6
Hello!

I have what I'm sure is a very simple problem for anyone with ladder logic knowledge but I'm struggling. I'll be glad to do my homework if I know where to start. Here's the system:

Inputs:
X0 - Cycle start
X1 - Cycle stop
X2 - Upper platens down
X3 - Lower platens position 1
X4 - Lower platens position 2
X5 - Timer

Outputs:
Y0 - Cycle start switch lamp
Y1 - Solenoid to move lower platens to position 2
Y2 - Solenoid to move upper platens down
Y3 - Timer start (this is an external timer)

Here is a movie of the machine: http://www.youtube.com/watch?v=wsHpkrF2Us4

Main power is supplied to the machine and the lower platens move to position 1. The cycle start switch is pressed and the platens move to position 2 then the upper platens move down. The timer starts and after the set time the upper platens move up and the lower platens move back to position 1 and the upper platens move down again. The process repeats continually until the cycle stop switch is pressed. I think this would be considered a flip flop but I'm not sure.

I'm sure this can be done in 10 rungs or less but I'm really struggling with this one, I'm not very strong in ladder logic or PLC programming... Would anyone care to point me in the right direction?

Thank you!
Jason
 
jbhill said:
Main power is supplied to the machine and the lower platens move to position 1. The cycle start switch is pressed and the platens move to position 2 then the upper platens move down. The timer starts and after the set time the upper platens move up and the lower platens move back to position 1 and the upper platens move down again. The process repeats continually until the cycle stop switch is pressed. Jason

Jason,

I'm confused by your description. Does the upper platen move down when the lower platen gets to position 1? If it does, how long does it stay down?
 
Correct, the upper platens move down and stay down until the timer times out and then they move up and the lower platens move back to position 2. An external timer controls how long the upper platens stay down. During the initial power on, the lower platens will be in position 1 but the upper platens won't move down until the cycle start button is pressed and the lowers move to position 2. Thanks for the reply. Jason
 
Well I think I might have it but I won't know until I try it on Monday... I attached a PDF of the program. Jason
 
jbhill said:
Main power is supplied to the machine and the lower platens move to position 1. The cycle start switch is pressed and the platens move to position 2 then the upper platens move down. The timer starts and after the set time the upper platens move up and the lower platens move back to position 1 and the upper platens move down again. The process repeats continually until the cycle stop switch is pressed.




jbhill said:
Correct, the upper platens move down and stay down until the timer times out and then they move up and the lower platens move back to position 2. An external timer controls how long the upper platens stay down. During the initial power on, the lower platens will be in position 1 but the upper platens won't move down until the cycle start button is pressed and the lowers move to position 2. Thanks for the reply. Jason

So is description #1 right or is #2 right? Or something else?
 
Both actually, I'll try a different format:

1. Main power on

2. Lower platens move to position 1

3. Cycle start is pressed

4. Platens move to position 2

5. Upper platens move down

6. Upper platens move up (after timer times out)

7. Lower platens move to position 1

8. Upper platens move down

9. Upper platens move up (after timer times out)

10. The process repeats starting at line 4.

Jason
 
Ok, this makes more sense now!

1. The top platen is up in the deenergised position, correct?
2. The bottom platen is in position #1 when deenergised, correct?
3. Details on the external timer are needed. What are the state of the timer contacts, before the plc output, during plc output?
 
Guys, watch the video. It is pretty descriptive. It appears to be a semi-automatic hot press for applying iron-on decals to shirts.

The upper platens move up and down. The lower platens move back and forth. There are two upper platens and four lower platens providing for two stations. Two lower platens are on a common shuttle and service one upper platen. So while one lower platen is under the upper platen and involved in the press operation with the upper platen the other lower platen is exposed for loading new shirt. Both upper platens move together. The two lower shuttles are 180 degrees out of phase so an operator on each side always has an open station to work on.

milldrone already indicated the biggest error. Don't try and control the same output with two different rungs. The second of the two rungs will determine the uptlimate state of the output in all cases. It is a little more involved in your case since both of them are latches. But this will definitely not work the way you expect. Use separate internal coils on both rungs 7 and 8 and then parallel those conditions to drive the output.

Secondly, you don't need to handle the shuttling in both directions as separate cases. You always want to be one way or the other. So one condition can handle both cases. If the condition is off move to position 1. If the condition is true move to position 2. All you need to make sure of is that you don't move the upper platen until the lower platen is in the position you want. additionally, don't move the lower shuttle until the upper platen is up.

But good first cut. Keep up the good work.

Keith
 
Correct on points 1 and 2, this is my first go around here so I should have been more clear.

The timer is a simple analog Omron timer and the output is basically a normally closed contact that opens momentarily when it times out. I have attached an updated version that eliminates the problem with rungs 7 and 8, I didn't know this couldn't be done. Thanks, Jason
 
It would help little if you documented all the bits in the program, including the C-bits. Also, your X3 - X6 inputs threw me for a second but I know what they are now.

In general you look OK. However, it looks to me like on you have an issue as soon as you push the cycle start button. It looks like everything will be in place to move the shuttle as soon as the cycle starts (rung 6 will be satisfied). Howeever, everything needed for rung 7 is there also. So you will have the upper platen coming down as the shuttle is moving underneath it. You may want to consider switching the states of C4 in rung 7. Logisitically, the first thing you want to do is move the shuttle as you need to be sure a loaded lower platen is being operated on.

Keith

Edit: Also, you probably want to make sure the upper platen is not down before you move the shuttle.
 
kamenges said:
Guys, watch the video. It is pretty descriptive. It appears to be a semi-automatic hot press for applying iron-on decals to shirts.

The upper platens move up and down. The lower platens move back and forth. There are two upper platens and four lower platens providing for two stations. Two lower platens are on a common shuttle and service one upper platen. So while one lower platen is under the upper platen and involved in the press operation with the upper platen the other lower platen is exposed for loading new shirt. Both upper platens move together. The two lower shuttles are 180 degrees out of phase so an operator on each side always has an open station to work on.

milldrone already indicated the biggest error. Don't try and control the same output with two different rungs. The second of the two rungs will determine the uptlimate state of the output in all cases. It is a little more involved in your case since both of them are latches. But this will definitely not work the way you expect. Use separate internal coils on both rungs 7 and 8 and then parallel those conditions to drive the output.

Secondly, you don't need to handle the shuttling in both directions as separate cases. You always want to be one way or the other. So one condition can handle both cases. If the condition is off move to position 1. If the condition is true move to position 2. All you need to make sure of is that you don't move the upper platen until the lower platen is in the position you want. additionally, don't move the lower shuttle until the upper platen is up.

But good first cut. Keep up the good work.

Keith
I 2nd that, but would add some fault logic for the interlocks that Keith describes:

To me, the machine has the following states/steps on 1st impression and this is my quick outline:

0=Idle, waiting for control power.
0t1 (transtision 1, things required to advance to next step)=power on", use stop button not pressed if that is all you have...

1=HOME, upper platens up
(1t2, transition 1, not required in OP assignemnt...spare...
T1=Always true
1tf=for extra credit:fault upper platens motion timeout waiting for up feedback...

2=LOAD...index lower platens (shuttles?) to position 1 for t-shirt loading
2t3=PB start
2tf=lower platens motion timeout, waiting for position 1 feedback

(Note, steps 1 and 2 are one step in the assignment)

3=INDEX T-shirts to press..index lower platens to position 2
3t4=bottom platens position 2 detected
3tf=bottom platens motion timeout waiting for position 2 feedback

4=PRESS DOWN...move upper platens to down position
4t5=upper platens down position feedback device or conditions
4tf=upper platens motion timeout waiting for down position feedback device or conditions

5=PRESS TIME
5t6=TIMER DONE or normal stop

6=PRESS UP...upper platens move to up positioon
6t2=upper platens up limit switch
---LOOP BACK TO STEP 2
6tf=upper platens motion timeout waiting for up feedback

You can get all that fault logic into your style of code with one timer but I would use two at least for troubleshooting...

If the up command is on but the up limit switch is off
---OR
if the down command is on but the down feedback is off
---
then enable timer fault_timer_upper_platen

if the lower platens are indexing to position 1 and position 1 feedback is off
---OR
if the lower platens are indexing to position 2 and position 2 feedback is off
Then enable timer fault_timer_lower_platen

Then put the NOT done conditions of those timers in your start stop/cycle start logic.

Very nice assignment by the way. This beats the crud out of stop lights....kudos to your instructor and to you for having a very high quality first post.

Paul
 
Last edited:
I'm sorry, I can't open the attachments, or watch the vid as I am on my mobile. What I am wondering, is if you are using a controler, why the external timer......it seems you would simplify the control if you used a timer in the logic
 
OkiePC said:
Wow, I thought my addiction to this place was bad...

:nodi:

I can now lower my head in shame, because I "needed" to post this for Jason

PLC 06

// Rung 1
// Address 0
#BEGIN COMMENT
"http://www.plctalk.net/qanda/showthread.php?t=37803"
"1. Main power on"
"2. Lower platens move to position 1"
"3. Cycle start is pressed"
"4. Platens move to position 2"
"5. Upper platens move down"
"6. Upper platens move up (after timer times out)"
"7. Lower platens move to position 1"
"8. Upper platens move down"
"9. Upper platens move up (after timer times out)"
"10. The process repeats starting at line 4."
""
"This rung ""seals in"" the cycle indicator pilot light."
""
#END
STR X100
OR Y0
AND X101
OUT Y0

// Rung 2
// Address 4
#BEGIN COMMENT
"This rung seals in the platen down solenoid When ever there is a transition on either "
"shuttle limit switch from off to on. The rung unseals when the timer times out via the ""timer "
"on to off transition OneShot."
""
"When ever I use AD's version of a one shot, I label it with an ""OS"" at the end of the "
"description in caps"
#END
STR Y0
STRPD X103
ORPD X104
STR Y2
ANDN C1
ORSTR
ANDSTR
OUT Y2

// Rung 3
// Address 12
#BEGIN COMMENT
"This rung outputs to an external timer when the top platen is down and also intended to "
"be down via Y2 ""solenoid to move upper platen down"" This is there to prevent the timer "
"from running when the PLC program doesn't want it to."
#END
STR X107
AND Y2
OUT Y3

// Rung 4
// Address 15
#BEGIN COMMENT
"This rung gets the timed out signal from the external timer and converts it to a One Shot. "
"Again when I use one of AD's oneshots I use ""OS"" in caps at the end of the description. "
"This is purely to add clarity as to how it is programmed."
#END
STRN X105
PD C1

// Rung 5
// Address 17
#BEGIN COMMENT
"This rung will take the off to on trasition and turn it into another One Shot. You may notice "
"I use a lot of One Shots,. What can I say ""it works foe me""."
""
""
" Again when I use one of AD's oneshots I use ""OS"" in caps at the end of the description. "
"This is purely to add clarity as to how it is programmed."
#END
STRN Y2
ANDPD X106
PD C2

// Rung 6
// Address 20
#BEGIN COMMENT
"When I first read your descrition of the process I could not see the need for a flip flop untill "
"I saw the revised version of your description. "
""
"So here is the flip flop"
""
"This is where I try to take full advantage of the One Shot concept"
#END
STR Y0
STR X103
AND C2
STR Y1
ANDN C2
ORSTR
ANDSTR
OUT Y1

// Rung 7
// Address 28
#BEGIN COMMENT
"Disclaimer: I have tried to make this as safe as possible with the outputs you were using. "
"after seeing the video I can see a real need to use bistable control valves and a safety "
"system that would remove any source of energy in the system."
""
"You will also have to change the inputs as I'm using a DL06 with a simulator module "
"(toggle switches on x100 through x107). "
""
"Vaughn aka milldrone"
#END
END

// Rung 8
// Address 29
NOP


#BEGIN ELEMENT_DOC
"X0","","","cycle start"
"X1","","","cycle stop (presuming this is a normally closed contact) in your pdf it looked like a normally open"
"X2","","","upper platten down ls"
"X3","","","lower platten pos1"
"X4","","","lower platten pos 2"
"X5","","","timer (presuming this is a ""on delay timer"" and the contacts change state from on to off when it times out)"
"X6","","","upper platen up ls"
"X7","","","platen down limit switch"
"X100","","","cycle start"
"X101","","","cycle stop (presuming this is a normally closed contact) in your pdf it looked like a normally open"
"X102","","","upper platten down ls"
"X103","","","lower platten pos1"
"X104","","","lower platten pos 2"
"X105","","","timer (presuming this is a ""on delay timer"" and the contacts change state from on to off when it times out)"
"X106","","","upper platen up ls"
"X107","","","platen down limit switch"
"Y0","","","cycle startswitch lamp"
"Y1","","","solenoid to move lower platen to pos2"
"Y2","","","solenoid to move upper platen down"
"Y3","","","timer start external timer I'm making the presumtion this is a ""on delay timer"" and that the contacts change state when it times out "
"C0","","","cycle seal in"
"C1","","","timer on to off transition OS"
"C2","",""," upper platen up ls OS"

#END
 

Similar Topics

I lost a direct logic 405 cpu on a piece of equipment and had no backup but had another piece of equipment that was basically identical. I placed...
Replies
8
Views
3,056
Hi guys, I have a scenario on a project and would like your thoughts. We have a shuttle car that transfers empty and full pallets between...
Replies
5
Views
3,400
So, I heard a rumbling that they could ground the Space Shuttle again. Some foam broke loose on lift off again. I haven't checked the NASA web...
Replies
79
Views
17,110
All, I am looking for an algorithm to control a heavy shuttle car on rails controlled by a VFD (132kW). The general theory is understood, the...
Replies
14
Views
7,011
Here is a link to an article in Design news. It seems that the heaters used to prevent ice build up on the launch pad are controlled by PLC's. I...
Replies
14
Views
9,803
Back
Top Bottom