Need Custom Pricing? Request a Quote!
Request a free quote for bulk orders or repairs—response in 24 hours. Or get tailored advice and a quote for your automation needs.
Get Your Free Quote!
If you're an engineer who wants to give your resume an additional useful and worthwhile skill, then PLC programming is a great option. The skill is required in almost every industrial field, so whether you're involved in manufacturing and robotics or energy and water treatment, there's a good chance you'll be able to apply your new skill. For engineers who already possess a system and logic mindset, learning to program PLCs is a natural next step.

First, you must have a clear understanding of what a PLC is and how it came to be the standard in automation for the industry. Building this foundation first will make all of the programming concepts that follow much easier to learn.
A Programmable Logic Controller (PLC) is a specialized, rugged computer designed to operate reliably in harsh industrial environments. While a desktop PC would fail quickly in conditions with dust, vibration, and extreme temperatures, a PLC is built to last. It reads inputs from sensors and switches, executes a program you write, and then controls outputs like motors, valves, and lights.
It's different from a microcontroller such as an Arduino since it's a finished, packaged system with protection for its inputs and outputs (I/O). It's built for high reliability and ease of mounting in industrial panels and thus is the workhorse of today's automation.
Engineers choose PLCs for several key reasons:

A whole PLC system is not a single box. It consists of several essential components functioning together:
To program a PLC effectively, you first need to grasp a few key operational principles. These concepts are universal and apply to any brand of controller you might encounter, from Siemens to Allen-Bradley.

A PLC does not run its program like a standard computer. Instead, it operates on a continuous, high-speed loop called the scan cycle. This cycle has four main steps:

I/O, or Input/Output, refers to how the PLC talks to the machine.

PLCs have special data structures to organize information.
Tags vs. Direct Addressing: Newer PLCs utilize descriptive tags, i.e., names ("Motor_Start_Button") to identify data. It is far more readable than the direct address method of the past (%I0.1).
Common Data Types: PLCs represent various types of data in a number of forms:

An international standard, IEC 61131-3, defines the official programming languages for PLCs. While you have several options, there is a clear choice for where a beginner should start.
Ladder Logic is the most widely used PLC language. Its design comes from traditional electrical relay logic diagrams, which is why it looks like a ladder with rungs of logic. Because it's so visual and easy for technicians to read, it is the best starting point for any new PLC programmer.
This is a visual language also in which you link pre-built code blocks. Every block has some specific function, such as a counter or timer. FBD is a good choice for programming systems that involve continuous process control.
Structured Text is a text-based language that reads much like Pascal or C. It is powerful for handling complex math, special algorithms, or processing large amounts of data where a graphical language would be too cumbersome.
SFC is used to program tasks that happen in a distinct order. It works like a flowchart, allowing you to organize the program into a series of steps and the transitions that move from one step to the next.
Begin with Ladder Logic. It gives you a solid foundation in the fundamentals of PLC operation in the most understandable manner. Learn it first, and you'll find that you can learn the other languages much more easily afterward if you need them.

You don't require a factory to start PLC programming. You can get started right from your desk with a computer, and there are two broad methods you can take to get your practice established.
The ideal way to see how software controls real-world devices is by using a hardware PLC trainer. You can connect the actual buttons and lights and witness your code execute. The biggest drawback is price—any small trainer kit will set you back a few hundred dollars. Well-known hardware brands are Siemens, Allen-Bradley (Rockwell Automation), and Beckhoff.
For most beginners, simulation software is the route to take. Major manufacturers provide the programming software with a built-in PLC simulator. You can create, execute, and debug your program on a "virtual" PLC that exists only on your computer. This approach is free or low-cost and completely risk-free—you can't damage anything! Best Simulators to Try:
Recommendation: Begin with a simulator. Learn the programming logic first. Once you are comfortable, you can determine whether investing in hardware is right for you.
Now for the practical part. This learning path breaks down the process into small, manageable steps. Focus on mastering one concept before moving to the next.
Begin with the PLC version of "Hello World": a basic Start/Stop circuit. This program employs a start button to energize an output (such as a motor) and a stop button to shut off. This project introduces the extremely valuable topic of latching logic, also referred to as sealing logic.
Next, master the main building blocks of automation: timers and counters.
These two instructions are found in nearly every PLC program.
Make your programs smarter with comparison and math instructions.
Comparison instructions (EQU, GRT, etc.) let your program make decisions by comparing two values. For example, "Is the tank level greater than 90?" Math instructions (ADD, SUB, etc.) can perform basic arithmetic for tasks like totaling production counts.
Learn to transfer data inside the PLC. The Move (MOV) instruction is most helpful in copying a value from one location to another. You will use it to load presets into timers, place counts from counters into data registers, or transfer recipe values.
Become acquainted with analog inputs. That is, the fundamental principle of scaling—taking a raw electrical signal (such as 4-20mA) from a sensor and translating it into a practical engineering unit, such as a 0-100 degree temperature reading or a 0-300 gallon tank level.

Theory gives you the rules, but practice is how you learn to play the game. The only way to get good at PLC programming is to apply what you've learned by building actual projects. This is where the concepts really start to stick.
Start with beginner projects and then move on to intermediate ones as you get more comfortable. The table below gives you some ideas.
| Project Idea | Skills You'll Use | Level |
| Traffic Light Controller | Basic Logic, Timers (On-Delay) | Beginner |
| Garage Door Opener | Latching Logic, Input/Output Control (Limit Switches) | Beginner |
| Simple Conveyor Belt System | Start/Stop Circuits, Counters | Beginner |
| Tank Filling and Draining System | Comparison Logic (Greater/Less Than), Analog Scaling | Intermediate |
| Automated Sorting System | Multiple Sensors, Data Movement (MOV), Counters | Intermediate |
As you work on these projects, make a point of keeping them recorded. Screen capture your Ladder Logic and a short explanation of what the program is supposed to do and how it does it. This record will become your professional portfolio—it's evidence of your capability to which you can refer during a job interview with potential employers.

The basics will get you far, but the automation field is enormous. After you're comfortable with the basics, then you can begin to branch out into more advanced areas.
For ongoing education, the manufacturers' official manuals for PLCs are your best friend. Online forums such as PLCTalk and communities on Reddit are also excellent websites where you can ask questions and learn from field-proven experts.
It is a clever decision for any engineer interested in automation to learn PLC programming from the ground up. Begin with the fundamentals, utilize simulation software, and perform hands-on exercises. Be patient, continue to hone your skills, and you will be prepared to handle larger automation projects and grow your career in no time. If you're willing to take it to the next level, look for free online tutorials and join a PLC forum to socialize with fellows on the same path.