0% found this document useful (0 votes)
69 views5 pages

How To Write A Big PLC Program Contact and Coil

Uploaded by

Juozas Ko
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
69 views5 pages

How To Write A Big PLC Program Contact and Coil

Uploaded by

Juozas Ko
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

6/27/2019 How to Write a Big PLC Program · Contact and Coil

Contact and Coil | Nearly In Control


Home
About
RSLogix 5000 Tutorial
TwinCAT 3 Tutorial
Patterns of Ladder Logic Programming

Mail
RSS

Sidebar →

A A+ A++

Sponsored Links

Categories

.NET
Automation
Home Automation
Industrial Automation
Software
Uncategorized

Blogroll

ArchestrAnaut
Arduino Ladder Logic
Beckhoff Open Source (GitHub)
Got TwinCAT (ru)
Harold On Controls
Moms4mom
One Robotics Company Blog
SoapBox Automation
SoapBox Core
TwinCAT 3.1 What's New

Meta

Log in
Entries RSS
Comments RSS
WordPress.org

Feb/16

20

www.contactandcoil.com/automation/industrial-automation/how-to-write-a-big-plc-program/ 1/5
6/27/2019 How to Write a Big PLC Program · Contact and Coil

How to Write a Big PLC Program


2 Comments · Posted by Scott Whitlock in Industrial Automation

Staring down the barrel of a big automation programming project is intimidating. It’s hard to even know where
to start. Even when you’ve done a few before, you’re only marginally more confident the next time.

I have quite a few big automation programming projects under my belt, so I think I can generalize the process a
bit. Here goes:

1. Get the Prints


There’s almost no point in starting to program unless you have an almost final set of electrical drawings. If you
don’t have them yet, push for them, and go do something else productive until you get them.

2. Create a Functional Specification


You don’t always have to write out a functional specification, but it at least needs to exist very clearly in your
head. If at any point, you don’t know exactly how the machine is supposed to work in excruciating detail, stop
writing code and go figure it out. Ask stakeholders, talk to operators, whatever it takes. Functional specifications
are best written as a list of “user stories”. If you’re not sure what a functional spec should look like, check out
Painless Functional Specifications by Joel Spolsky.

3. Shamelessly Copy
Identify what other projects you can find with logic that you can steal. Any code that works in another machine
has the advantage of already being debugged. Don’t re-invent the wheel. (At the same time, never blindly copy
logic without understanding it. Copying the code by re-typing it one rung at a time is still faster than writing it
from scratch, and it’s a form of software review.)

4. Structure Your Project


Now you break open the ladder logic programming software and start creating your project. Pick your CPU type,
setup the I/O cards based on the electrical drawings. Map your inputs. Plan out your program by creating
programs or routines for each functional unit of the machine. Setup your fault summary rungs and your alarm
logic.

5. Write the Manual Mode Logic


PLC logic is typically written “bottom up.” Manual mode logic is the lowest level of logic because it deals
directly with individual functions in the machine. Advance cylinder. Retract cylinder. Home axis. Jog axis.
While you’re writing the manual mode, this is when you take extreme care making sure that actions are
interlocked so the machine can’t crash. If you’re using the Five Rung Pattern, this means paying attention to
what goes in the Safe rung. Does cylinder A always have to advance before cylinder B can advance? The Safe
rungs should reflect that. Make sure that even in manual mode, the operator (or you) can’t break the machine.
Make sure to hook your faults and alarms into the applicable fault summary rungs and alarm logic.

6. Write Part Tracking Logic


www.contactandcoil.com/automation/industrial-automation/how-to-write-a-big-plc-program/ 2/5
6/27/2019 How to Write a Big PLC Program · Contact and Coil

Now that manual mode is complete, write the logic that tracks parts (and their state) through the machine.
Remember, you should be able to run the machine in manual mode, and the part tracking should (ideally) work
correctly. I know this isn’t always the case but surprisingly part tracking in manual mode can work 95% of the
time. That means part tracking works based on the state of the machine. Closing the gripper with the robot in the
pick position and the part present in fixture sensor on should latch a bit “remembering” that the gripper has a
part in it.

Once you’ve written your part tracking logic, go back and use the part tracking and state bits to condition your
Safe rungs. Don’t let the operator (or you) mistakenly open the gripper if the gripper has a part and isn’t in a safe
position to let go of the part. Of course, you may need to add a way to manually override this (that’s what output
forcing was created for), but in most cases you want to prevent improper operation.

Part of writing the part tracking logic is adding “ghost buster” screens. Operators often need to remove parts
from a cell, and if the machine can’t detect their removal, then you have to provide the operator with a way to
clear these “ghosts.”

At this point you’re actually ready to dump the program in and start testing out the machine electrically and
mechanically. While it’s ideal to have a fairly complete program when you go onsite, we all know that’s not
always entirely possible. At the very least you want to get to this point before startup begins.

7. Write the Auto Mode Logic


The complexity of your auto mode logic depends on what type of machine you’re programming. You’ll always
need a cycle start and a cycle stop feature. Even if you’re in auto mode, you usually don’t want the machine to
start until the operator specifically tells it to start. Once it’s running, we call this “in auto cycle.”

In simple machines, you can write the auto logic by filling in the Trigger rungs in your Five Rung logic. Start by
putting the In Cycle contact at the beginning of the rung, and then writing logic after that which expresses when
the action should take place. For instance, an advance reject part cylinder’s Trigger rung could be as simple as In
Cycle, Part Present, and Part Rejected. As long as the Part Present tracking bit gets cleared once the cylinder is
in the advanced position, then this is all the auto mode logic you need for this motion. Have the retract Trigger
rung be In Cycle, No Part Present and Not Retracted.

More complicated machines need more complicated auto mode logic. If your machine has to perform a series of
steps (even if some of them are in parallel) then consider using the Step Pattern. If your machine needs to choose
between several possible courses of action (commonly seen in a storage and retrieval system) then consider
using the Mission Pattern.

8. Review
It’s hard to write correct logic. Review your functional specification, point by point, and make sure your logic
meets all of the requirements. Check your logic for errors. A fresh look often uncovers incorrect assumptions,
typos, and outright mistakes. The earlier you find and fix problems, the easier they are to fix.

Make a list of everything you have to do during startup. Starting up a machine is time consuming and therefore
expensive. Anything you can do to prepare saves you time and money.

Good luck, and keep your fingers out of the pinch points!

www.contactandcoil.com/automation/industrial-automation/how-to-write-a-big-plc-program/ 3/5
6/27/2019 How to Write a Big PLC Program · Contact and Coil

ladder-logic · plc · rockwell-automation

2 comments

Esa · June 2, 2016 at 2:27 am

Thank you so much for writing this down in a nutshell! What always bothered me while doing BSc
degree, was that we never focused on defining the automation task that we are trying to solve. It was
always pretty much just code ‘n hack style of solving problems. That was sometimes very frustrating and
error prone. I thought often by myself that “I hope that they don’t do it like this in the real word”. Thanks
again!

abraham · October 11, 2016 at 11:48 am

Good presentation

Leave a Reply
Name* Mail* (will not be published) Website
Your Comment

Submit Comment

<< TwinCAT 3 Tutorial Complete

Price of Oil Affecting Alberta and Ontario >>

Find it!

Search... Go

www.contactandcoil.com/automation/industrial-automation/how-to-write-a-big-plc-program/ 4/5
6/27/2019 How to Write a Big PLC Program · Contact and Coil

Theme Design by devolux.nh2.me

Tag Cloud

.net agile allen-bradley beckhoff complexity controlsoverload coordinated-motion copyright custom data-collection
deep-thoughts dry-principle estimation frustrations future g-scale garden-railroad helping hmi innovation
ladder-logic motion-control motivation plc productivity project-management quality review risk
rockwell-automation rslogix-5000 security sequencer shrinkwrap snap standards stuxnet troubleshooting tutorial
twincat vb6 vendors voting wiring x10
Archives

September 2018
March 2018
October 2017
June 2017
April 2017
March 2017
February 2017
January 2017
April 2016
February 2016
January 2016
November 2015

To top

www.contactandcoil.com/automation/industrial-automation/how-to-write-a-big-plc-program/ 5/5

You might also like