You are not registered yet. Please click here to register!


 
 
plc storereviewsdownloads
This board is for PLC Related Q&A ONLY. Please DON'T use it for advertising, etc.
 
Try our online PLC Simulator- FREE.  Click here now to try it.

---------->>>>>Get FREE PLC Programming Tips

New Here? Please read this important info!!!


Go Back   PLCS.net - Interactive Q & A > PLCS.net - Interactive Q & A > LIVE PLC Questions And Answers

PLC training tools sale

Reply
 
Thread Tools Display Modes
Old April 30th, 2006, 06:28 PM   #1
pstephens
Member
United States

pstephens is offline
 
pstephens's Avatar
 
Join Date: Sep 2004
Location: Indiana
Posts: 342
Pin Installation Machine

Hi guys,

I’m writing a program for a small machine that I designed to install a roll-pin in a brass valve body, and I could really use a bit of help. Though it seems a very simple sequence, this is only my second PLC program, and I’m finding myself quite stuck at the moment.

At this point, I have the panel built and wired, and the various machine components hooked up on the bench, so that the program can be tested prior to actually assembling the machine. The PLC is an Automation Direct DL-06 (D0-06DR), using DirectSOFT32 (version 4) software.

Here is a crude layout of the process:



Here is a basic operational sequence:

1) A part is placed in the fixture.

2) The operator presses “Start”.

3) An air-powered clamp extends to clamp the part in the fixture.

4) When the clamp is fully extended, a self-feed air drill starts, and a hole is drilled for the roll pin.

5) When the drill cycle is completed, the table indexes, and a driver (fed from a feeder bowl system) presses a pin into the drilled hole.

6) Once the pin is seated, the driver retracts.

7) When the driver is fully retracted, the index table and clamp are retracted, completing the cycle.

Here’s my program, so far:



Some general notes:

1) The self-feed air drill has a built in valve system, and requires only a momentary air signal (approx 1 sec.) to start the cycle. This is what I’ve attempted to accomplish in the program with the “Drill Pulse” timer (T3). The drill also provides a “finished” signal when the drill cycle is complete. It uses air pressure, but I’m using a pressure switch to convert it to a usable input (X12).

2) It was deemed necessary to have the driver “dwell” for a brief period when completely extended, to insure that the pin is fully seated, and that the driver doesn’t prematurely retract when LS7 (X10) is made. This is the reason for the “Pin Seat” timer (T4).

The problem I’m having is that, once the drill completes its cycle, it simply starts another. I’ve got a feeling that I can’t accomplish what I want using the Drill Pulse timer. It seems that it resets sooner than I need. Would it be possible to use Set/Reset outputs to accomplish this? I apologize if this seems ridiculously simple to many of you, but I’m still very much in the “learning” mode with this project.

Any/all comments or suggestions are much appreciated.

Paula

PS - A related question: I also need to provide logic within this program to sequence a couple of valves for feeding the pin to the driver from a vibratory bowl system. Is it possible for the program to do this while the “main” program is running, such that it doesn’t subtract from the total cycle time? It only takes few seconds for the sequence, but that is still a significant time increase for this application.

Last edited by pstephens; April 30th, 2006 at 07:17 PM.
  Reply With Quote
Old April 30th, 2006, 07:06 PM   #2
Lancie1
Lifetime Supporting Member
United States

Lancie1 is offline
 
Lancie1's Avatar
 
Join Date: Jul 2003
Location: Alabama
Posts: 10,002
Hey, Paula,

It is good to have you back again! We really enjoyed your wire-cutting project.

Right off, I think it is possible to control the drill, because it has both a "start" and "finished" signal. In Rung 3, you need to relocate the normally closed T3 timer contact to just before the Y3 Drill Start Output (between the T3 Timer branch leg and Y3). You want to allow the drill to be activated one time and one time only, until the next cycle. Moving the T3 contact will cause timer 3 to deactivate Y3 after 1 second, but the TIMER WILL STAY ENABLED, preventing the T3 contact from reclosing and restarting the drill. (In your program, T3 does deactive the drill start signal, but then it also deactivates itself, and guess what, it immediatley restarts itself and the drill!) Now it may be necessary to add another contact or two to make sure T3 does not get deactivated until the beginning of the next cycle. More later.

Edit: It is now later. Is your X12 input closed except when the drill sends a "finished" signal? I think maybe it is sort of "cart-before-horse". Logically, should not X12 be used to first deactivate or lock out the "drill start" signal. And only then, to deactive the clamp? (Sequence, lock out drill, then unclamp part?)

Also, the vibratory bowl feeder should be no problem whatsoever. A few rungs dedicated to the feeder will not add very much scan time, hardly detectable to the human eye, and the machine doesn't care in this case. It will be a separate routine, but in the same program, controlling a different machine. No problem!

Last edited by Lancie1; April 30th, 2006 at 07:26 PM.
  Reply With Quote
Old April 30th, 2006, 07:25 PM   #3
pstephens
Member
United States

pstephens is offline
 
pstephens's Avatar
 
Join Date: Sep 2004
Location: Indiana
Posts: 342
Hi Lancie,

Thanks for your quick response!

Quote:
Is your X12 input closed except when the drill sends a "finished" signal?
I probably could have been clearer about this. What this signal amounts to is an auxiliary port on the drill which is pressurized except when the drill is running. In other words, it's pressurized before the drill cycle is started, goes to zero pressure during the drill cycle, and goes back to being pressurized when the cycle is completed.

I am still digesting your comments, but I thought I should clarify this one point a bit.

Paula
  Reply With Quote
Old April 30th, 2006, 07:33 PM   #4
Lancie1
Lifetime Supporting Member
United States

Lancie1 is offline
 
Lancie1's Avatar
 
Join Date: Jul 2003
Location: Alabama
Posts: 10,002
Paula,

Okay, because the "drill finished" pressure signal will be continuously ON AFTER the drill is finished, you could use it to lock out the Y3 Drill Start signal, thus insuring that there is no way it could restart until needed. However, if you move the T3 Timer contact, I think that the drill will work with no other changes.
  Reply With Quote
Old April 30th, 2006, 07:34 PM   #5
Ron Beaufort
Lifetime Supporting Member
United States

Ron Beaufort is offline
 
Ron Beaufort's Avatar
 
Join Date: Jul 2002
Location: Charleston, SC
Posts: 5,443
Greetings Paula,



I’m just wondering about something ... have you ever looked at the “stage programming” concept? ... I don’t have the time to check the catalog right now, but I’m pretty sure that the processor model that you’re using supports it ...



just skim through this post and see if the concept sounds interesting ... I’m betting that once you try it, you’ll never want to go back to “straight” ladder logic programming again ...



and to answer your specific question, yes, you can execute a separate line of logic “simultaneously” ... and in stage programming, this could easily be done by “jumping” to two independent “target” stages at the same time ... sort of like a “GOTO both THERE and THERE” construction ... basically you can just put two jump instructions in parallel at the output end of a rung ...



anyway, if you like the “stage” idea, then we’ll help you get a handle on it ... (and my bet is that you won’t need any help at all) ... believe me, it’s well worth the short amount of time that it takes to master ... and it looks like the project that you’re working on is an ideal example of a “getting-started-with-stage” application ...

and incidentally, if you don't want to go the "stage" route this time around, you owe it to yourself to at least experiment with it at some time in the future ... an hour or two should be more than enough to convince you ...

good luck with your project ...
__________________

2-B ?
Best regards, ----+----] [----+------------( )----
Ron | |
PLC Training Boot Camp | 2-B |
+----]/[----+

I once was lost, but now am found, was blind, but now I see.

  Reply With Quote
Old April 30th, 2006, 07:42 PM   #6
Lancie1
Lifetime Supporting Member
United States

Lancie1 is offline
 
Lancie1's Avatar
 
Join Date: Jul 2003
Location: Alabama
Posts: 10,002
Paula,

Also, I bet with the current program, once the drill starts, it then starts again, and the next step, Table Indexing, never gets done. That would be because T3 Timer is in an infinite loop, starting and restarting over and over again, and the Drill Start signal keeps going on and off, and the drill completed signal may go on, but only for 1 scan, not long enough to cause the table to index.

Paula, you have given us an easy one this time!
  Reply With Quote
Old April 30th, 2006, 07:55 PM   #7
Lancie1
Lifetime Supporting Member
United States

Lancie1 is offline
 
Lancie1's Avatar
 
Join Date: Jul 2003
Location: Alabama
Posts: 10,002
Ron,

Stage Programming is useful, but the way DirectSoft implements stage programming is unnecessarily complex. When I set up stages in Direct Soft, I simply set create my own Stage Relays and I do not use the internal program Stage Relays. The reason is that I do not have complete control over them, and cannot easily turn a stage on or off with one command.

Paula, you could divide your program into stages, but I think it is over-kill for this program. Stage Programming is best used where you have one process with several complicated sequential steps, one following another, in 1-2-3 fashion.

In your case, you have two separate machines running at the same time. The bowl feeder routine will not add more than a few miliseconds to your DL-06 scan time. Simply add a section at the end of your current program, and put a big bold comment on the first rung: "VIBRATORY BOWL FEEDER ROUTINE STARTS HERE". That is all!

Last edited by Lancie1; April 30th, 2006 at 08:04 PM.
  Reply With Quote
Old April 30th, 2006, 08:05 PM   #8
Terry Woods
Member
United States

Terry Woods is offline
 
Join Date: Apr 2002
Posts: 3,170
Oops... there are some issues here... but...

Think like a "people". (Add your E-Stop stuff etc.)

Start Table Whole-Cycle
Cycle Retracted Completed
-----| |-------| |-----+-----|/|--------( ) Clamp Part (This is equal to "DO CYCLE")
|
Clamp |
Part |
-----| |---------------+


Part Drill-Cycle Clamp
Clamped Completed Part
-----| |-----+-----|/|----------| |----( ) Do Drill Cycle
|
Do Drill |
Cycle |
-----| |-----+


Drill-Cycle Whole-Cycle Clamp
Completed Completed Part
-----| |-----+-----|/|----------| |----( ) Extend Table
|
Index |
Table |
-----| |-----+


Table Clamp
Extended Part
-----| |-----+-----| |--------( ) Do Pin Cycle
|
Do Pin |
Cycle |
-----| |-----+


Do Pin Pin-Delay
Cycle Done
-----| |-----+-----|/|--------( ) Extend Pin Driver
|
Extend |
Pin Driver |
-----| |-----+


Do Pin Pin-Driver +----------------+
Cycle Extended | TIMER |
-----| |----+------| |-----+---+ Pin Delay Done |
| | +----------------+
| Pin Delay |
| Done |
+------| |-----+


Do Pin Pin-Delay Pin Pusher
Cycle Done Retracted
-----| |---------| |--------| |-------( ) Whole Cycle Completed




It was quick and probably a little dirty... but, food for thought, no?

Last edited by Terry Woods; April 30th, 2006 at 08:08 PM.
  Reply With Quote
Old April 30th, 2006, 08:13 PM   #9
Lancie1
Lifetime Supporting Member
United States

Lancie1 is offline
 
Lancie1's Avatar
 
Join Date: Jul 2003
Location: Alabama
Posts: 10,002
Terry,

The idea and straight-forward logic is great, but your rung for Drill Cycle would not work in this case, if Paula uses the X12 Drill Finished bit for your Drill Cycle Complete. It would cause the drill to stop, then restart, then stop ad infinitum.
  Reply With Quote
Old April 30th, 2006, 08:40 PM   #10
pstephens
Member
United States

pstephens is offline
 
pstephens's Avatar
 
Join Date: Sep 2004
Location: Indiana
Posts: 342
Well, I'm afraid that re-locating the T3 contact made no difference. It's like you said, Lancie, it seems to be in an infinite loop. Well, not exactly infinite... my hobby-shop grade compressor runs out of air somewhere during the third drill cycle. Here's how it looks now:



Quote:
...because the "drill finished" pressure signal will be continuously ON AFTER the drill is finished, you could use it to lock out the Y3 Drill Start signal, thus insuring that there is no way it could restart until needed.
Thanks, I'll try this next.

Ron, thanks for the suggestion and link on Stage Programming. DirectSoft does have this capability -- I just finished reading a section in the manual called, "Overcoming Stage Fright" (hee hee), but I'm not sure it's something that I can get up to speed on soon enough to get this project completed on time. (This machine is supposed to be assembled and running by Thursday!) Definitely something to look into for the future, as much difficulty as I have comprehending ladder logic.

Thanks all, for your help!

Paula
  Reply With Quote
Old April 30th, 2006, 08:59 PM   #11
Lancie1
Lifetime Supporting Member
United States

Lancie1 is offline
 
Lancie1's Avatar
 
Join Date: Jul 2003
Location: Alabama
Posts: 10,002
Okay, we are narrowing it down here. T3 looks correct now. That leaves LS3 and LS4, either of which could be opening up and reseting Timer T3 to 0 and starting the drill cycle again. I bet on LS4 being the culprit. Does the table Extended limit switch open up after the drill is finished?

Edit:
Answer: Okay it is LS3, goes off, the timer restarts! You must use LS3 to START the Timer, but then LS3 must not be allowed to de-energize the timer T3. Something else further down in the cycle must be used to reset T3. It can be left locked in until just before you need to drill again. You cold use C0 to unlock and reset the timer when the cycle is done.

As a test, use T3 to lock itself on. Put a T3 NO contact and a C0 NC in parallel with LS3 and LS4, like this.
 
| LS3 LS4 |
|---||-----||--+-- (rest of rung here) |
| | |
| C0 T3 | |
|---|/|----||--+ |



When you get the drill to stop restarting, then you will have to figure some way to reset T3 with another added contact, because T3 will now be locked on and will not reset when the LS4 contact resets. You can use C0 as above to do that.

Last edited by Lancie1; April 30th, 2006 at 09:59 PM.
  Reply With Quote
Old April 30th, 2006, 09:11 PM   #12
OkiePC
Lifetime Supporting Member
United States

OkiePC is offline
 
OkiePC's Avatar
 
Join Date: Mar 2005
Location: ENE of Nowhere Oklahoma
Posts: 9,937
I am not familiar with AD, so I may be way out in left field, but why couldn't you just let the timer stay enabled and timed out until the start button is pressed again. Can you just seal it in with it's enable contact in series with the start button?

This is a quick bandaid. A more organized approach like Terry's or state logic will be cleaner.

You realize that the majority of the cycle will operate each and every time the clamp switch is made and the table is retracted? What if somebody flips the lever or flags the prox switch with a tool?

Just something to think about for future sequential logic programming.

Paul
  Reply With Quote
Old April 30th, 2006, 09:49 PM   #13
pstephens
Member
United States

pstephens is offline
 
pstephens's Avatar
 
Join Date: Sep 2004
Location: Indiana
Posts: 342
Well...

It's LS3(X4) that is dropping out, causing T3 to reset.

Since the length of the part varies, LS3 is supposed to sense the pressure buildup on the cap end of the clamp cylinder to tell the PLC that the part is clamped. Have you guessed the problem? That's right, when the drill starts up, it drops the system pressure enough to allow LS3 to drop out almost immediately.

I may have to resort to some kind of adjustable-height sensor to detect the clamped position, or perhaps use a timer (not the best solution, obviously).

Quote:
You realize that the majority of the cycle will operate each and every time the clamp switch is made and the table is retracted? What if somebody flips the lever or flags the prox switch with a tool?
Though not strictly called for in this application, the entire hazard envelope will be protected with a safety light curtain. It uses a relay with a pair of force-guided contacts in series with the output commons. The X13 contact shown in rung 2 is just an auxiliary output that I'm using to stop the program at the same time.

This is turning into a mess.
  Reply With Quote
Old April 30th, 2006, 10:01 PM   #14
Lancie1
Lifetime Supporting Member
United States

Lancie1 is offline
 
Lancie1's Avatar
 
Join Date: Jul 2003
Location: Alabama
Posts: 10,002
Paula,

No,no, it is not a mess. Buck up, matey, and hang in there. I have seen messes and this is not one!

Just put a T3 normally open and and a C0 normally closed contact in parallel with LS3 and LS4. Then it will not matter if LS3 drops out after starting the drill.

As for the Clamp, if it is still holding position when the drill starts, then you can also put a "seal-in" contact around it, so that it shows "clamped", even if the pressure drops off and LS3 opens. Try this new rung:

 
Clamp Extended Clamp Extended Seal-In
LS3 C10
|--+---||-------+------( )----------------|
| | | |
| | C10 C0 | |
| +--||---|/|--+ |



If you add this rung, then you could substitute C10 everywhere that you have LS3 now, and everything is hunky-dory.

Good luck, I have to go now. Wifey is waiting for me in the hot tub.

Last edited by Lancie1; April 30th, 2006 at 10:18 PM.
  Reply With Quote
Old April 30th, 2006, 10:17 PM   #15
OkiePC
Lifetime Supporting Member
United States

OkiePC is offline
 
OkiePC's Avatar
 
Join Date: Mar 2005
Location: ENE of Nowhere Oklahoma
Posts: 9,937
Quote:
This is turning into a mess.
Oh no, it's not that bad at all. My point in the last post was not about safety, but about just reading the logic and looking at what it takes to make each thing happen.

You quickly realize that there may be many quirks and bugs that could crop up if an input device goes flaky.

You don't want that, and you are a little disappointed with the look of the program right?

Well, again I can only give AB type examples, but to go from a list of english steps to a functioning program should be very similar.

Can you address an integer in AD and also address each of its bits?

If so, do something like this (see post #7):
http://www.plctalk.net/qanda/showthr...imple+sequence

only instead of the PB1shot contact in each branch, you will have all of the required conditions for each step to advance.

This is a clean structured way to do any simple sequence and it is easy to add multiple branches so you could go from step 4 to step 7 or whatever you may need for various operations/products.

Maybe this approach will generate a bigger program, but if it is more clear and easier to modify, it is worth it.

Again, I don't know the AD addressing capabilities, so some variation of these instructions will be necessary.

Hope this helps.
Paul

Last edited by OkiePC; April 30th, 2006 at 10:21 PM. Reason: keyboard dyslexia, punctuation, clarity.
  Reply With Quote
Reply
Jump to Live PLC Question and Answer Forum

Bookmarks


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Topics
Thread Thread Starter Forum Replies Last Post
PLC REset n speed of machine parco LIVE PLC Questions And Answers 14 April 3rd, 2006 05:30 AM
1761-cbl to 25 pin nate8108 LIVE PLC Questions And Answers 2 September 13th, 2005 02:38 PM
One PLC, One machine V's One PLC, Two Machines Mylo LIVE PLC Questions And Answers 13 March 4th, 2005 05:38 AM
pin and plastic part assembly machine carrma LIVE PLC Questions And Answers 2 July 24th, 2002 01:22 PM
plc project: pin and plastic part machine carrma LIVE PLC Questions And Answers 2 July 3rd, 2002 09:19 AM


All times are GMT -5. The time now is 12:50 AM.


.