This is a free introductory tutorial on how to create an automation program for a ControlLogix or CompactLogix processor using the RSLogix 5000 programming environment from Rockwell Automation.
When I originally wrote this tutorial, Rockwell Automation had graciously offered a 90 day demo of RSLogix 5000 as a free download. It was fully functional, except it wouldn’t communicate with a real PLC. Unfortunately that link is now broken, and it doesn’t seem like Rockwell Automation is offering any other alternative, so you somehow have to get your hands on a full version. I’m sorry about that. If anyone finds a free or demo version again, please let me know so I can update the link.
The tutorial explains how to write the automation program including the ladder logic and sequential function chart for a domestic washing machine. I chose a washing machine because it’s quite simple, and it’s something that everyone is familiar with. I should, however, note that you would never put an industrial controller into a domestic washing machine, and you probably wouldn’t ever use a servo motor for the agitator, but I wanted to demonstrate a little motion control as well. I have heard that newer washing machines actually have VFD control, but I admit that servo control is overkill.
I also don’t have any real knowledge of how a washing machine works internally, other than using my imagination, so please don’t use this as a reference if you happen to be designing, programming, or building a real washing machine!
- Creating a new project
- Customizing the editor and colors
- Adding I/O cards
- Creating the axis for the servo motor
- Program structure: High level program layout
- Program structure: How to layout routines
- Mapping your inputs
- Mapping your outputs
- Create fault logic
- Create the low level machine control routines
- Create the automatic sequence
- Tie the automatic sequence logic to the outputs
If you’re interested in reading more about Ladder Logic Programming, please have a look at these Ladder Logic Design Patterns.
If you’re interested in some alternative control systems, make sure to check out my TwinCAT 3 Tutorial.
Pingback: The Five Rung Logic Block - Contact and Coil
Step 12 needs to be hyperlinked. Your tutorial is great.
Pingback: Mesta's Automation blog » Blog Archive » PLC programming resources: PLC-DEV website
Please advise when step 12 is completed! Loved thetutorial…thanks!
Why we not uses the microcontrollers & others processing units i think they are easy to program.
Why we use special processors please tell me the processor requirments of a plc system ??
your tutorial is very very good & helpful.
Great tutorial, helped me a lot, thanks!
Brilliant tutorial, looking forward to step 12
There are a number of reasons to use PLC’s over microcontrollers.
First, it’s important to understand that PLC’s and uC’s are actually very similar in terms of their core processing capabilities. Lots of PLC’s run Freescale or other processors that you will see in common microcontrollers. The hardware differences center around the different applications they revolve around.
First, microcontrollers are designed to automate processes in systems that are produced on a very large scale. Typically, when you design a uC solution, you design it to perform a single task, and you design it to be mass produced without changes from unit to unit. When you need to automate a process such as engine management in an automobile, for example, uC’s are the obvious choice because they are inexpensive, powerful, and effective. Building a million cars with PLC’s in them would be insane compared to uC’s, even if both systems had equal processing power.
By contrast, PLC systems are designed to implement processes that are custom for each application. They are designed such that the engineer can easily modify the number of inputs and outputs available, and the larger PLC solutions are designed to scale to huge numbers of I/O points that a single uC could never accomodate.
The other difference is that uC’s don’t typically have the hardware integrated for doing I/O at voltage levels other than what the processor operates at. PLC’s are designed to do AC and DC discrete logic, as well as 4-20mA analog, among other things. uC’s need support hardware before they can do that. Essentially, a PLC IS a microcontroller; that support hardware to take in those inputs seamlessly is the primary thing that makes them different. You could run a factory using an ATMEL uC, but you would need all the support hardware to plug in the huge amount of I/O.
I’m fairly new to PLC’s. I’ve only recently started an internship with an industrial automation company. But having used uC’s pretty extensively, I hope that answers your questions as to the differences between the two systems.
@Chris Pitts – well said. Both technologies have their place.
Pingback: It’s not about the machine, it’s about the man. « Industrial Training
I’m interested in step 12…. Anyone?
I’m also interested in step 12. Also, perhaps step 11 can be expanded on as well? An example of a completed FBD would be very useful.
Systematic approach for programming.
Too many subroutines makes understanding the program little complicated.
Pingback: What programming languages exist for mechatronics purposes? | DL-UAT
Excellent tutorial. Could have done with step 12 to tie it up.
Excellent >>>> well done
Hi, do you know, where I can download demo software? The link doesnt work, thanks
@Petr – unfortunately it looks like Rockwell Software has removed their 90 day demo version. I’m sorry about that. I’ll update that paragraph in the tutorial. 🙁
Its really an excellent tutorial… kindly post the hyperlink for step 12….
me guastaria saber programar un plc
I do appreciated for your kind hearted teaching & sharing your expertise!!!
So far I am following step by step and done “9” [Fault]!
Hope you will attach Tutorial 12 soon!
Your tutorial is excellent! Do you have it printed in a lab manual that we could buy for a class that I teach in plc programming? Or do you mind if I print it up for my students from this website?
@DwightBelyeu – Sorry, I don’t have it in a printable format. Yes, you can use it in a class, as long as you give attribution to where you got it from.
I familiar with RSLogix 500 and have some difficulties with RSLogix 5000. Your tutorial gave me so simple explanations and advises. Even with my low level of English it is very helpful.
Thanks a lot!
Just wanted to say big thanks Scott for creating this tutorial.
Both TwinCAT and RSLogix (and ladder) tutorials have helped me very much in my job.
Of interest: you can use free Oracle VirtualBox to create whatever operating system environment you want. Then, if you happen to have a copy of some software with a 7 day grace period, install it on that. Of interest is that you can “disconnect” from the system time AND save your box as “current machine state”. Your box will resume at whatever time you shut it down at. You can even roll back the date/time, as desired. Those are powerful features. Time disconnect procedure is described in the box manual.