Host Engineering Forum
General Category => DirectSOFT => Topic started by: malexand on November 13, 2008, 03:04:54 PM
-
Hello,
I am embarking on writing a program for my DL05 PLC that will control a small sanding operation. Components included are: 2 swing clamps, linear actuator, air manifold, precision regulator, and sanding machine. The actuator, and 2 swing clamps are controlled by compressed air which is regulated by the manifold. The flow of this process will be:
1. Operator puts part in fixture and presses start button on sander
2. PLC program begins:
a. Sander turns on
b. Swing clamp contact on manifold engages, air flows to two clamps holding part in fixture
c. Actuator contact on manifold engages, air flows to actuator extending actuator (moving part to sandpaper)
d. Precision regulator holds air pressure to actuator at 20 lbs.
e. Actuator moves part to make contact with sandpaper, held in this position for 6 seconds
f. After 6 seconds, 2nd actuator contact on manifold engages, air flows to actuator retracting actuator (moving part away from sandpaper)
g. Sander turns off
h. 2nd swing clamp contact on manifold engages, supplies air to both clamps to release clamp from holding part
3. Operator takes part off of fixture, puts next part on
4. Operator presses start button, process starts again
As I am not at all familiar with DirectSoft5 or any PLC language, I have been going through the training manual to get an idea on how to begin writing a program for this. Any help on how to go about creating a program that could perform those tasks would be helpful.
Thanks for taking the time to read this,
Mike A
-
Whatever you do with the PLC, it sounds like this machine will have the ability to clamp and or sand some guy's hand, so you'll want to make sure you use some safety rated hardware in addition to the PLC to make sure that can't happen.
-
Thats a good point! Currently we have plexiglass shields that encase the system. Adding a contact for when the shields are closed or open would be a great safety device - so that only when the shields are in a closed, locked position will the program run.
-
I am embarking on writing a program for my DL05 PLC that will control a small sanding operation. Components included are: 2 swing clamps, linear actuator, air manifold, precision regulator, and sanding machine. The actuator, and 2 swing clamps are controlled by compressed air which is regulated by the manifold. The flow of this process will be:
1. Operator puts part in fixture and presses start button on sander
2. PLC program begins:
a. Sander turns on
b. Swing clamp contact on manifold engages, air flows to two clamps holding part in fixture
c. Actuator contact on manifold engages, air flows to actuator extending actuator (moving part to sandpaper)
d. Precision regulator holds air pressure to actuator at 20 lbs.
e. Actuator moves part to make contact with sandpaper, held in this position for 6 seconds
f. After 6 seconds, 2nd actuator contact on manifold engages, air flows to actuator retracting actuator (moving part away from sandpaper)
g. Sander turns off
h. 2nd swing clamp contact on manifold engages, supplies air to both clamps to release clamp from holding part
3. Operator takes part off of fixture, puts next part on
4. Operator presses start button, process starts again
The first thing that needs to be done when writing a PLC program is to make a description of the process. I'm having a little difficulty with your description. It might just be a terminology thing. I going to attempt to write a description of your process from what I have just read. I will also ask some questions along the way.
1. Operator presses start button.
2. "Sander motor" output from the PLC turns on. Do we need a time delay for the motor to come up to speed? If this is an electric motor, You do realize that the PLC cannot turn this on directly but will need some sort of interface?
3. "Swing clamp down" output turns on in the PLC. Do we need some time delay before the next step? Also you are saying there is two "contacts" as you are calling them for the clamps. Are they "clamp" and "unclamp" or are they two coils one for each clamp?
4. "Actuator extend" output from the PLC turns on. Do we wait six seconds from this moment or do we wait until the actuator is in position? If we wait six seconds when it's in position then we need a in position sensor.
5. "Actuator retract" output from the PLC turns on. Are you sure there is two coils for the actuator? Extend and retract? do we need a time delay after the retract output has been turned on before the next step or is there a home sensor?
6. Turn off the "sander motor output from the PLC. Do we need another time delay before the next step?
7. "Swing clamp up" output from the PLC turns on.
The safety aspects Controls Guy mentioned need to addressed. Safety is done outside the PLC, not in the program.
We need details on the nature of the loads the PLC is expected to control. 120V AC, 24VDC, amps ect.
Do you want help writing the program? This is an excellent type of project to start learning PLCs with! Or do you just want the code? I'm hoping you want just some nudges from us to get you started. I'm sure we will do our best to help you.
-
This is all great stuff and I appreciate the feedback already ;) Once my automation expert comes back from vacation on Monday I will write up a better, more detailed description of what I actually want to have happen. To answer your question, I would like to learn how to write the program with some assistance as I will have to write more of them in the future for different product lines. Thanks again!
Mike
-
There are specially built (fault tolerant) safety relays and wiring practices that you can use to guarantee the final design is safe. Some brands are Pilz, Allen Bradley, STI/Omron, Banner, etc. As milldrone pointed out you don't want to rely on a standard PLC to provide safety (although there are safety rated PLC's). Since it's your first design, you might want to get an experienced controls engineer to look it over before you build it, or if the sales engineer for the safety hardware is technical enough, he can probably help you make sure you're applying it correctly.
-
Alright thanks again Controls for the input - I will be looking into some sort of safety implements for this design.
In response to your questions milldrone:
2. Yes a 3 second time delay is needed. I have spoken to my automation guy here and we will have to get a contactor for the motor to turn on.
3. A 2 second time delay will be necessary for the swing clamps. Only 1 signal will be needed for controlling air to 2 different tubes (clamp up and down).
4. Again a 2-3 second delay will be necessary after the actuator extends. That amount of time will guarantee that there is proper contact between part and sanding drum. Nothing will change for the next 6 seconds as the part is being sanded.
5. Just like the clamps, only one signal will be used for both retract and extend on the actuator. A 2 second time delay will be needed before the next step.
6. Another 2 second delay would be appropriate at this point - again we will have to find a suitable contactor to accomplish this.
This PLC is the DL05 D0-05AR model and will have 24VDC loads.
I hope this clears up some of my vague descriptions and I would like to thank you again for taking the time to look at this. Since I am pretty new to this, any help in starting a program would be appreciated.
-
malexand,
This looks like a perfect EDRUM application. Two ladder logic rungs and your done. I tried this with conventional ladder and I was using 5 rungs. Read up on the EDRUM function. Then reply back and we will get started then.
-
I agree milldrone, this looks like a perfect application for the EDRUM function. I found a great article on it at http://www.automationdirect.com/static/manuals/d006userm/ch6.pdf (http://www.automationdirect.com/static/manuals/d006userm/ch6.pdf) . Looks like it will be a good way to reduce the number of ladder rungs in my program. Does it matter that I am using DL05? That article was DL06 specific but I hope it works for earlier versions. Can't wait to get started!
Mike
-
malexand,
My copy of the DL05 manual says the EDRUM is supported. So this should work. I do not have a DL05 at my desk to test. I only have a DL06.
So you will need a way to "maintain" (for logic reasons) a momentary push on the start button. Then "dropout" when the cycle is complete.
Then the EDRUM's enable input would use this "maintained logic" to enable the timing. The reset input would use the opposite state of this "maintained logic". A "leading edge" version of this same "maintained logic" is a good choice for the "jog" input. The only thing left is to list the times in each step and assign the steps to the outputs. Do not forget to put in a "end of cycle" bit in the EDRUM.
Need more of a nudge?
I'm hoping you have the DL05 somewhere that you can program it and watch what happens. The outputs do not need to be connected. The DL06 I mentioned earlier in my post is actually my spare. I use it to test programs, not just sit on the shelf.
-
malexand,
I just finished a vacuum forming machine last month, kind of sounds the same. Used an 05AR, programmed in stage but, because I was using a DV1000 for the opperators to set timers and check part count, didn't know if an EDRUM would have worked, would have been a lot easier. Can EDRUM timers be changed with some sort of HMI or do you just use it for fixed amouts?
The programmed is saved, your welcome to it just modify it to what you need. As for safety, I used a E-stop in front of everything, the machine will not run unless the E-stop is pulled, all you can do is power it up.
Vern.
-
No, you can only enter constants for time values in a DRUM, not use a V like you can in a normal timer.
-
Bummer, If you could "on the fly" adjust timers in a drum through a HMI would work wonders for some processes. Don't you think, you could eliminate a few rungs. If it did work, then it would have made my vacuum former so much easier. The proceess steps are all time based operations like a drum. I needed some way for the setup tech to adjust heat times, vacuum, and cool times, other wise I would have to drag out a laptop for every setup. Oh well, it works.
-
Bummer, If you could "on the fly" adjust timers in a drum through a HMI would work wonders for some processes. Don't you think, you could eliminate a few rungs. If it did work, then it would have made my vacuum former so much easier. The proceess steps are all time based operations like a drum. I needed some way for the setup tech to adjust heat times, vacuum, and cool times, other wise I would have to drag out a laptop for every setup. Oh well, it works.
Well, what I've done a lot that would work for you is to use an EDRUM, setting only any fixed, non adjustable timers in the drum itself, and allow 16 relays for the step completion events. Then the completion conditions are written immediately below the drum, and can include a normal timer if necessary, which can have a V-register for a setpoint, that can be set from an MMI.
Or, while it's not quite as flexible, if the only reason you're doing it is to allow time adjustment, you could chuck the C coils as completion conditions and just use the timer done bits.
-
I suggest Stage programming. It has much more opportunity for documenting the individual events. You can transition based on a varitey of factors, not just time. The time could be easily adjustable. If you need flexibility then this is the way to go.
-
Edrum fixed timers, thier all fixed in the drum right? So would you use the V registers from the drum's timers to adjust?.....I'm confused..
I would have to see it kinda thing to see how it worked.
I like B's ideal, I did it in stage so that it would ignore the previous step unless a condition called for it to return to a stage. For me, the stage was an easy way to do it. I put a momintary push button on the panel, like a stop button, that instruction would allow it to return to "home" in any stage that it would be in just in case. Sometimes the opperator or the setup tech would forget to do something, they could hit this button, do what they have to and restart the cycle.
-
No, there's no V-registers associated with the times you actually type in to the drum, those have to be K-values.
I'm saying to make the event (EDRUMS allow both a time and/or an event -- C, X, Y, T, etc., for the completion of each step) either a C-coil or a timer T-bit. Then in the ladder after the drum, set that C-bit with some logic that involves a normal timer, T100 lets say. Then T100 can have V2000 or whatever as its setpoint, and V2000 can be set from the MMI. When T100 runs out, its output bit, T100, is either the event that allows the drum to index, or is involved in some logic that ends up setting a C-coil which allows the drum to index. But you have to use the type drum that will accept an event to index.
Here's a sample to clarify:
(https://forum.hosteng.com/proxy.php?request=http%3A%2F%2Fmembers.cox.net%2Fstevemyres%2Fpics%2FDrum%2520Example.jpg&hash=74d24727355d1fe296291f7aaa914fe47297b292)
-
Looks too simple, I'm over complecating it in my head. I don't have an HMI to try this with, can I use switches or momentary push buttons to test with?
-
You certainly DO have an MMI. It's called "DirectSOFT"! ;D
Write the EDRUM and associated logic the way you want it with V's as setpoints for the timers you want adjustable. Then test by using DirectSOFT to put values into the V's that represent the timer setpoints. If it works with values stuffed in from DirectSOFT, it'll work when values get stuffed into the same registers from an MMI.
Or, you can use a PC-based Modbus master utility on your computer and use that as your "MMI". Make sure if you use this method, you connect to Port 2 and that it's configured to accept Modbus requests. (Or use an H0-Ecom). I like the one from Modsoft.co.uk. It does both Ethernet and RTU, and it's like $15, as is the slave version.
-
Looks too simple, I'm over complecating it in my head. I don't have an HMI to try this with, can I use switches or momentary push buttons to test with?
Vernon,
Here is another way to look at this.
http://www.plctalk.net/qanda/showthread.php?t=21781&highlight=simon
-
I've have visited that site, have it book marked, not a member yet, I'll join later. I'm going to write the drum and see how it turns out, let y'all know the out come.