Contact and Coil | Nearly In Control

RSLogix 5000 Tutorial

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 Cat investigates washing machinewashing 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!

  1. Creating a new project
  2. Customizing the editor and colors
  3. Adding I/O cards
  4. Creating the axis for the servo motor
  5. Program structure: High level program layout
  6. Program structure: How to layout routines
  7. Mapping your inputs
  8. Mapping your outputs
  9. Create fault logic
  10. Create the low level machine control routines
  11. Create the automatic sequence
  12. 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.


  • The Five Rung Logic Block - Contact and Coil · June 17, 2010 at 11:10 pm

    […] RSLogix 5000 Tutorial […]

  • Darrell Hazelwood · December 8, 2011 at 9:10 am

    Step 12 needs to be hyperlinked. Your tutorial is great.

  • Mesta's Automation blog » Blog Archive » PLC programming resources: PLC-DEV website · January 30, 2012 at 1:12 pm

    […] blog to learn Allen Bradley programming (and ladder in general) is Nearly In Control with his RsLogix 5000 tutorial, PLC DEV contains a mass of documentation about Allen Bradley and their products. Some useful post […]

  • waltj · February 12, 2012 at 5:10 pm

    Please advise when step 12 is completed! Loved thetutorial…thanks!

  • Yogesh · February 18, 2012 at 1:10 pm

    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.

  • Alexandre Noguchi · November 29, 2012 at 7:54 pm

    Great tutorial, helped me a lot, thanks!

  • Wayne · January 28, 2013 at 5:29 am

    Brilliant tutorial, looking forward to step 12

  • Chris Pitts · February 5, 2013 at 5:05 pm


    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.

  • Author comment by Scott Whitlock · February 28, 2013 at 2:34 pm

    @Chris Pitts – well said. Both technologies have their place.

  • It’s not about the machine, it’s about the man. « Industrial Training · April 24, 2014 at 10:02 pm

    […] Scott by day does PLC, .NET, VB6, and SQL Server programming. In the evenings Scott and his wife run a question and answer site for parents called, then on the weekends he writes and maintains an open source framework called SoapBox Core for developing extensible .NET applications. Somehow, Scott still finds time to produce an excellent blog, which is how I found him. A must read for all our followers, see  […]

  • Raindawg · June 8, 2014 at 8:58 am

    I’m interested in step 12…. Anyone?

  • InqThinker · August 22, 2014 at 4:48 am

    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.

  • Gnanesh · November 30, 2014 at 5:34 am

    Systematic approach for programming.
    Excellent Tutorial.
    Too many subroutines makes understanding the program little complicated.

  • What programming languages exist for mechatronics purposes? | DL-UAT · May 17, 2015 at 5:59 pm

    […] logic programming software for Allen-Bradley’s popular line of ControlLogix PLC’s: RSLogix 5000 Tutorial. It’ll give you a good idea of how it works, even though the example is a bit […]

  • Shane · June 9, 2015 at 6:34 am

    Excellent tutorial. Could have done with step 12 to tie it up.

  • Ahmed · October 6, 2015 at 11:52 pm

    Excellent >>>> well done

  • Petr · October 21, 2015 at 11:38 pm

    Hi, do you know, where I can download demo software? The link doesnt work, thanks

  • Author comment by Scott Whitlock · October 22, 2015 at 9:29 pm

    @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. 🙁

  • sagar · August 26, 2016 at 2:40 am

    Its really an excellent tutorial… kindly post the hyperlink for step 12….

  • fredis barrios martinez · March 1, 2017 at 6:00 pm

    me guastaria saber programar un plc

  • Bob · May 25, 2017 at 12:55 pm

    Excellent Tutorials!!!
    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!

  • Dwight Belyeu · April 2, 2020 at 12:18 pm

    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?

  • Author comment by Scott Whitlock · April 6, 2020 at 7:04 am

    @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.

  • Evgeny · April 11, 2020 at 2:19 pm

    Great tutorial!
    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!

Leave a Reply

Theme Design by