Cookies are important for this site to function properly, to guarantee your safety, and to provide you with the best experience. By clicking OK, you accept all cookies. For more information, please access our Privacy Policy.
GUIDE

The Ultimate PLC Programming Starter Guide

Learn what is a PLC, what are the different PLC platforms, how to learn PLC programming, and everything else you need to know to get started and get a job.
Table content

Introduction to PLC Programming

Most consumer goods, from food to cell phones, are manufactured at a production facility, shipped through a distribution channel, and delivered to a retailer or directly to your door using automation. The process of eliminating the human element from this process is not a new concept. Machines are capable of producing more, have a higher tolerance level, and have a higher quality level of craftsmanship when it comes to repeated production. Thus, there is a constant strive to automate every step of the manufacturing process.

Different systems are used in each segment of the automation. However, they have many common goals: high reliability, high repeatability, and ease of deployment and maintenance. Based on these principles and the demand of the manufacturing segment, Programmable Logic Controllers (PLCs) were created in the last century. Their goal was to replace the relay-based circuits, simplify the process of changing operations, and improve the reliability of the system.

What is a Programmable Logic Controller (PLC)?

A Programmable Logic Controller at the core is an industrial computer with a high degree of reliability capable of running a program without interruption in a 24/7/365 environment.

Programmable Logic Controllers were created as a cost effective alternative to relay-based systems a few years after transistors become more commonplace. A Programmable Logic Controller at the core is a computer with a high degree of reliability capable of running a program without interruption in a 24/7/365 environment.

At first, PLCs were simple and easy to set up. However as the needs of the business changed and manufacturing floor complexities became apparent, PLCs evolved. They now required a dedicated person that knew PLC programming in order to create the program, optimize it for a specific project and change it depending on business needs.

Programmable Logic Controllers were created as a cost effective alternative to relay-based systems a few years after transistors become more commonplace. A Programmable Logic Controller at the core is a computer with a high degree of reliability capable of running a program without interruption in a 24/7/365 environment.

At first, PLCs were simple and easy to set up. However as the needs of the business changed and manufacturing floor complexities became apparent, PLCs evolved. They now required a dedicated person that knew PLC programming in order to create the program, optimize it for a specific project and change it depending on business needs.

Allen Bradley PLC Block

A Programmable Logic Controller is typically the hardware that will control the process. In case you're wondering, a PLC looks like a box filled with electrical circuits similar to your desktop computer. A PLC is typically housed in what's called an electrical enclosure in order to protect it from the harsh environments they may control. For the context of discussion, it's not uncommon to reference to PLCs as the entire plant floor control system as they're always tied to sensors, motors, switches, valves, etc.

Since their inception, PLCs have come a long way. They're still robust, process-driven machines. However, they're starting to incorporate some of the features we'd typically see in an Information Technology (IT) environment. Examples include Ethernet connectivity for data collection, sensor monitoring through technologies such as IOLink, MQTT protocols allowing server-based connections to be made, and much more. In other words, PLCs aren't what they used to be a few decades.

PLC Programming Careers

As manufacturing facilities around the globe rely heavily on PLCs, and the technology continues to evolve, there is an increasing need of experts capable of developing, supporting, and managing these systems. The opportunity to learn PLC programming has pushed many toward higher-paying jobs, secure work environments, and excellent career growth.

PLC Programming average salaries in the USA ( Source: Indeed.com)

It's essential to understand the manufacturing job landscape to see how the PLC programming skillset may impact your job, salary, and career progression. Here's an overview of each function from a North American perspective. Keep in mind that job titles as well as salaries may differ in other regions, companies and industries.

PLC Programming for Line Operators

A line operator would typically have little knowledge about the systems behind the process. In other words, they're concerned about the overall functionality of the production line but aren't aware of how the system executes the specific steps of the manufacturing process.

Operators are generally aware as to when they need the help of a mechanic or electrician because of their extensive knowledge of the process. However, they typically are not familiar with the tools or the know how of those individuals. In other words, line operators would not be involved in PLC programming, machine design, or other tasks reserved for mechanics, electricians, and engineers.

The barrier of entry into manufacturing as an operator is low. It's possible to land an operator position after completing high-school education. For this reason, the salary of an operator is typically in the lower range.

Manufacturing line operator average salary in the USA (Source: Indeed.com)

However, depending on the circumstances and the drive of an individual, it's possible to see significant increases in salary for those who excel in this position. They play a vital role within the operations department.

PLC Programming for Mechanics

Mechanics are typically seen on the production floor when there's a breakdown or issue that an operator wasn't able to solve. However, mechanics play a vital role in engineering, research & development, and preventive maintenance. Their primary knowledge lies in the mechanical aspects of the operations.

However, most mechanics learn electrical aspects of control systems through osmosis. In other words, they're exposed to the electrical infrastructure regularly, which allows them to learn those valuable skills, including PLC programming.

Based on our experience, the title of the mechanic would indicate that the person is able to work with tools and aspects related to the "visible" portion of the line and machines. However, as mentioned above, some of these individuals exhibit advanced skill sets depending on the needs of the company and their drive.

Mechanics are required to have either formal education through an apprenticeship program or have a high average inclination of working with such systems. Their skill set is in high demand in maintenance departments, which may pay a premium rate depending on operational needs. However, mechanics are typically the last defense against breakdowns, which in our experience leads to extended work hours, demanding work environments, and a higher turnover rate. For this reason, the compensation for a mechanic can range from minimum wage to over six figures accounting for experience, overtime, and knowledge.

Manufacturing mechanic average salary in the USA (Source: Indeed.com)

PLC Programming for Electricians

An electrician within a production facility is typically an invaluable asset for the company. This individual would know the visible as well as the invisible components of the production floor. An electrician typically requires formal training to ensure safe behavior within a medium voltage environment. This training may take place outside or within the company. However, a licensed electrician typically requires formal education and an apprenticeship program.

Electricians range in skill. Some are capable of working with electrical systems only while others are capable of programming PLCs, field devices, and even network infrastructure. In addition to working safely, electricians are trained in tools such as a multimeter, oscilloscope, wire crimping, megohmmeter, and more.

The salary of an electrician would typically be higher than that of a mechanic. They'd typically be well versed in the mechanical domain but rarely assigned on those tasks. Electricians are valuable assets in operations, engineering, and maintenance departments. Their hours range from an average 8 hour day to 12-hour shifts depending on business needs. Electricians who know PLC Programming would typically have a better work environment, higher flexibility, and a higher hourly rate.

Manufacturing electrician average salary in the US (Source: Indeed.com)

PLC Programming for Control Systems Engineers

A control systems engineer typically has a general understanding of the process, understanding of control system theory, and a project-oriented mindset. Engineers aren't necessarily better than electricians at applied execution, but their focus is on long term project deliverables rather than day-to-day operations of the manufacturing floor. However, they are called upon if an electrician requires support or isn't able to solve a particular problem associated with control systems.

Control Systems Engineers generally know PLC programming very well. They can implement programs from start to finish, troubleshoot existing systems and modify them as needed. However, based on our experience, the need for manufacturing plants may fluctuate, thus making the skillset uneven across locations.

A control systems engineer would command a salaried position that would typically be of a higher rate than the pay of the electrician. That being said, an electrician who does overtime may get a higher pay over the year.

Manufacturing control systems engineer average salary in the USA (Source: Indeed.com)

Control systems engineers would also spend less time on the floor and more time managing projects. As mentioned above, their focus is to improve the facility through capital projects, process improvement initiatives, and new technology initiatives.

What are the Most Popular PLC Brands?

  • Allen Bradley by Rockwell Automation
  • SIMATIC by Siemens
  • AC500 by ABBABB

An Introduction to PLC Platforms, Ecosystems and Manufacturers

As with any other industry, there are many competitors within the Programmable Logic Controller (PLC) market. Depending on whom you speak to, they will tell you that a particular brand is better than another. However, multiple factors are at hand when it comes to choosing the right PLC for the task. Depending on your specific needs, location, and goals, we may recommend a different PLC platform as well as specific PLCs. In other words, it's essential to be aware of the different brands, their advantages, their disadvantages as well as what they may be most suited for. In this section, we will examine precisely that, give our own opinion and discuss which PLCs we believe to be most effective for learning PLC programming.

Different PLC platforms are preferred in different parts of the world. The reason is that a PLC is not just a piece of hardware. It's also the ecosystem that comes with it. An ecosystem can be the software, vendors, suppliers, technical resources, and system integrators. As PLC manufacturers took over the industry, they concentrated their specific efforts within a geographical space.

Allen Bradley by Rockwell Automation

Allen Bradley PLCs are heavily used within companies in North America. The company is an established brand with heavy global presence and headquarters in Chicago, IL. The Allen Bradley line of PLCs comes at several price points. However, it's considered to be a premium brand when it comes to price. Although it's robust and widely utilized, the PLCs are priced significantly higher than some of the other ones. The Allen Bradley families of PLCs can be broken down into three distinct lines: ControlLogix, CompactLogix, MicroLogix, and NanoLogix (Micro800 series).

SIMATIC by Siemens

Siemens PLCs are the standard in European and Asian regions. They're reliable, come in many different configurations, and are a healthy alternative to Allen Bradley. Siemens PLCs are programmed through TIA Portal. Siemens lines of PLCs are broken down into 4 families: SIMATIC S7-1200, SIMATIC S7-1500, SIMATIC S7-300, and SIMATIC S7-400

--> Read our How to Get Started with Siemens PLC tutorial

AC500 by ABB

ABB is the third known brand of PLCs. The value proposition of ABB is that the controllers are able to interface between themselves and any other module from ABB. ABB lines are the AC500-eCo, AC500-S, and the AC500-XC.

How to Pick a PLC Platform for Production?

  • Existing Knowledge and Infrastructure
  • Location of the Facility
  • Long-Term Business Goals
  • Platform Capabilities

When it comes to selecting the right PLC platform for a manufacturing environment, you should consider the following: existing knowledge and infrastructure, location of the facility, long-term goals, platform capabilities, and budget.

1. Existing Knowledge and Infrastructure

If you have an infrastructure in place, chances are, you've already set a standard when it comes to Programmable Logic Controllers (PLCs), Human Machine Interfaces (HMIs), and Supervisory Control and Data Acquisition (SCADA) systems of choice. Based on this decision, you've trained personnel to support the infrastructure.

Regardless of the complexity of the existing system, the people who work at the facility have developed a familiarity as well as knowledge of the system. Migration toward a different solution requires an investment in training in addition to the cost of the system.

Furthermore, experienced leaders are aware of the learning curve with any significant changes. Therefore, the current system must be thoroughly examined before deciding to change

2. Location of the Facility

As mentioned in a prior section, PLC and control systems manufacturers have a distribution network of their systems, services, and 3rd party system integrators. When choosing a system, it's essential to be aware of their presence in your region to ensure that you can rely on their support when necessary. Furthermore, the location impacts the skillset of the talent available for hire.

In other words, if you're looking to use Siemens based controllers in North America, you may be restricted to a smaller engineering pool and be required to pay a premium for those that have experience with the Siemens PLC platform

3. Long-Term Business Goals

PLC Programmers often forget that the goal of the control systems is to support the business. An active control system should be able to accommodate the expansion of a thriving business for the years to come. Some of our clients fall victim to salespeople who promise the world only to fall short when the business chooses to expand their facility after two years. Specific PLC systems are meant for smaller manufacturers, machines, and infrastructures. They come at a lower cost and, as a result, aren't ideal at the scale that may be needed for a multi-facility manufacturing company.

If there's a goal to upgrade the system to gather data from all assets next year, it may not be wise to choose one of those systems to save on cost today.

4. Platform Capabilities

The technical capabilities of each platform vary between vendors as well as control families. Audit your facility and create a list of critical requirements. This list may include the need to support multiple lines, high-speed manufacturing, vision system integration, integration with existing assets, remote data and control, etc.

Based on these requirements, you can quickly eliminate many options and narrow down your search to only a few platforms.Business Budget We're all concerned with the cost of a full control system for a manufacturing plant. However, experienced leaders evaluate the investment based on a potential return. In other words, a higher cost may justify the expense of the advantages of a particular system will have a higher impact on the business. In this process, business knowledge and a high-level perspective are critical.

How to Learn PLC Programming

Regardless of the system, each person who interacts with a Programmable Logic Controller has to go through a series of lessons on PLC hardware, programming, troubleshooting, and design.

Due to the complexity of PLC systems, the learning path may not be apparent to many of those entering the field. Paired with the complexity of challenging to acquire hardware and software leads many to shy away from control systems automation. We'd like to lay out the path we believe to be optimal for an individual to learn PLC programming as well as related systems to become an automation engineer.

Laying down the foundation for your PLC training

We highly recommend that you choose one of the two most significant platforms on the current market if you're looking to land a job in the industry. These platforms are Allen Bradley (Rockwell Automation) and Siemens. Furthermore, we recommend that you choose Allen Bradley if you're in the North American region and Siemens if you're elsewhere in the world.

Your first task is to become familiar with the tools required to learn either platform. For Allen Bradley, we recommend that you become familiar with RSLogix 500 as your first software package. For Siemens, you'll have to get used to TIA Portal.

Note that you may want to download the free version of RSLogix 500 Lite, RSLinx, as well as RSLogix 500, Emulate to get started. Siemens provides an equivalent trial software package for 30 days on their website

Beginner PLC Programming

One may program a PLC in several different PLC Programming languages: ladder logic, function block diagrams, structured text, and sequential flow charts. Although it may be tempting to pick one approach over others based on their simplicity or familiarity with other languages, ladder logic should be the first language you master. The reason is that it's the most widely spread type of PLC programming due to the roots of relay logic, simplicity to implement, and ease of debugging.

Most of the logic built-in ladder logic uses the following three instructions: examine if closed (XIC), examine if opened (XIO), and output energizes (OTE). Furthermore, a high emphasis should be placed on learning rung structures as well as branching at this stage of the process.

Start by implementing logic routines that use the three instructions above. Understand how they impact the booleans they're tied to and experiment with different rung configurations. As you build different structures, think about how they may reflect systems in our daily life. Can you build a two-way switch or a backup system that turns own a secondary source if the main one fails?

What are the top 5 PLC programming languages?

PLC Programming is accomplished using one of the five PLC programming languages:

  • Ladder Logic
  • Structured text
  • Function block diagrams
  • Sequential function charts
  • Instruction lists

Each language is unique and provides certain advantages and drawbacks to the programmer. Therefore, programmers may switch between languages for certain situations.

The most utilized PLC programming language is ladder logic. It stemmed from the layout of relay logic circuits and thus provides a familiar layout. Ladder logic is what we recommend most beginners to start with as it offers the greatest amount of similarity of platforms, is the most documented language and dominates within most facilities.

Is PLC programming easy?

PLC programming is much easier to grasp than most other modern programming languages. However, the job of a PLC programmer is broader in scope than PLC programming alone.

From the software standpoint, most PLC programs do not include the structures we’re used to seeing in other languages: classes, polymorphism, extensive libraries and so on. This is due to the fact that PLC programming is limited to a physical system in which states are known.

Outside of software, PLC programming requires the engineer to understand the system beyond the basics of operation. In different plants, PLC programmers need to become masters of chemical processes that are heavily analog in nature and in other plants, mechanical transformation knowledge is key.

What is the programmable language used in PLC?

Programmable Logic Controllers execute logic in a sequential manner. They are programmed in ladder logic, structured text, sequential function charts, function blocks or instruction lists. The programs designed by the engineers interface to the control system through various sensors that send digital and analog data. The program responds to these changes by setting various outputs based on the desired outcome. These outputs are motors, valves, actuators and other field devices that perform an action based on the request from the PLC.

Intermediate PLC Programming

Many PLC programmers struggle with the basic concepts outlined above. We highly recommend that you master the three instructions and rung layouts before you move on to other topics in PLC programming. Furthermore, if your goal is to land a job, chances are, most of the employers test your knowledge on the basics.

Moving into intermediate topics, we continue learning additional PLC instructions. Starting from the most important, we should focus on timers and mathematical computations. Instructions such as TON, TOF, ADD, MUL, SUB, and DIV should be familiar to you.

As you start working with these new instructions, you'll also notice new data types that may not be familiar to you. RSLogix and other PLC platforms provide particular constructs depending on the instruction. For example, the TON and TOF instructions require a structure of type COUNTER. Take note of these as they become essential in your PLC programming journey.

Advanced PLC Programming

An advanced PLC Programmer would start to learn concepts such as Add-On Instructions, User-Defined Data Tags, Fault Tolerant Programming, External Hardware and more. It's the time to start investing your focus into advanced techniques, understand how to build robust code, how to create layouts for entire machines and/or plants and more. At this stage, you should be comfortable working with most instructions in the PLC programming world; advanced applications such as recipe control, plant automation and full machine development should be of great practice at this point.

Another area of focus at this point should be other methods of programming your PLC: Structured Text, Function Block Diagrams and Sequential Function Charts. These methods of programming are useful in their own unique way and should be leveraged depending on the situation. Furthermore, it's recommended that you start becoming familiar with external pieces of hardware such as Variable Frequency Drives (VFDs), Servo Motion (Kinetix platform), safety circuits and others.

The last piece of a competent PLC programmer is platform diversification. As you reach a certain proficiency of your domain, it's important to start looking outside and become familiar with other technologies in the field. This may mean learning SCADA applications from different suppliers, understanding how to interface your PLC data into a SQL database or how to send your data to a cloud-based application.

Frequently Asked Questions

We've worked with many manufacturers, engineers, technicians, managers, operators, and other professionals that seek to better understand PLC programming. Some are looking to grow their career, others to have a high-level understanding of the industry so that they could communicate with their peers better. Regardless of your goals, we've compiled a list of questions we often encounter when it comes to PLC programming, PLCs, and industrial automation.

What languages are used in PLC Programming?

Per the IEC 61131-3 Protocol, the five PLC programming languages are Ladder Diagram (LD), Sequential Function Charts (SFC), Function Block Diagram (FBD), Structured Text (ST), and Instruction List (IL). In addition to those 5 languages, it's not uncommon to see PLCs programmed in languages that stem from software engineering - C, C++, Python, and in certain cases JavaScript. Keep in mind that there's a distinction between PLCs, IPCs (Industrial PCs), and PLCs that have an integrated IPC. In other words, some of the brands will include a (typically Linux based) computer along with their PLC that is generally meant for data processing tasks rather than control systems.

Can I teach myself PLC programming?

Absolutely. I've personally mentored individuals that had no prior background in electrical engineering, or any technical field for that matter. They've invested their time in understanding industrial automation, purchased equipment and took the time to implement PLC programs that led them to a job in automation. The main challenge of our field is cost of entry. Although we provide very affordable training programs, the software and hardware is difficult to access on a budget.

Is programming a PLC difficult?

When compared to other programming languages, PLCs offer a simplified approach to programming. However, PLCs are programmed in a way that stems out of relay panel design which isn't intuitive to wrap your mind around for the first time. That being said, PLC programming isn't generally as complex as software engineering - PLCs control a finite set of outputs based on a finite number of inputs.

Can I use Python in PLC?

Python is not a standard language in PLC programming. You'll rarely, if ever, see Python as the main language of a control system. That being said, there are PLCs and IPCs that support Python with additional vendors releasing products that support other languages including Python. If you're comfortable with Python, you'll find a variety of libraries that can integrate into PLCs and allow you to interact with I/O through the APIs.

Is C++ used in PLC?

Just like Python, you're unlikely to see a wide adoption of C++ in PLC Programming. However, C++ is a widely utilized language in embedded systems and PLCs provide a closely related way of programming - Structured Text (ST). It may not be identical to C / C++, but it's close enough for most programmers to transition into if they have a background in C or C++.

What is the easiest PLC to program?

We cover a variety of different PLCs on our platform. We believe that the easiest PLCs to program are the S7-1200 series from Siemens, or the CompactLogix series from Rockwell Automation. Both of them offer an intuitive suite of software tools that are modern, abstract a lot of complexities of PLC programming, and provide an easy to understand way of building software for PLCs.

How long will it take to learn PLC?

We get this question all the time! It typically takes someone between 3 to 6 months to learn PLC programming if they've never seen one of these systems before. Keep in mind that it entirely depends on the time invested, your previous background, and access to software and hardware. In other words, are you committed to learning, doing the exercises, practicing on your own, going through the tutorials, etc?

Can I use PC instead of PLC?

The short answer is yes; you can use a PC instead of a PLC. However, it's important to understand why PLCs were used instead of PCs in most cases. First, PLCs are highly-reliable; they'll work 24/7/365 in hot and humid environments for multiple decades. Second, PLCs are embedded systems abstracted from software changes in the operating system, applications, etc which leads to robustness. Three, PLCs are "platforms", not just the brain - PLCs integrate with I/O modules, various motion components, safety, etc.