The Definitive Guide to PLC Programming: A Complete Journey from Beginner to Expert

 Understanding what PLC is, the different PLC platforms available, how to learn PLC programming, and all other information needed to get started and find a job.

Introduction to PLC Programming

Most consumer goods, from food to smartphones, are manufactured in production facilities, transported through distribution channels, and delivered to retailers or directly to customers through automation. Eliminating human factors from this process is not a new concept. Machines can produce more products, have higher levels of durability, and achieve higher levels of process quality in repetitive production. Therefore, we continuously strive to automate every step of the manufacturing process.

What is a Programmable Logic Controller (PLC)?

At its core, a Programmable Logic Controller is an industrial computer with high reliability, capable of running programs continuously in a 24/7/365 environment.

Several years after transistors became more prevalent, Programmable Logic Controllers were developed as an economically efficient alternative to relay-based systems. The essence of a PLC is a highly reliable computer capable of running programs uninterrupted in a 24/7/365 environment.

Initially, PLCs were simple and easy to set up. However, as business requirements changed and the complexity of manufacturing floors became apparent, PLCs evolved. They now require a dedicated individual with knowledge of PLC programming to create programs, optimize them for specific projects, and make changes according to business needs.

Allen Bradley PLC block (photo:Allen Bradley)

Programmable Logic Controllers (PLCs) are typically the hardware that controls processes. If you were to look at one, a PLC resembles a box filled with circuits, similar to a desktop computer. PLCs are often installed within so-called electrical enclosures to protect them from the harsh environments they may control. In discussions, it's not uncommon to consider PLCs as the entire control system for a factory floor, as they are always interconnected with sensors, motors, switches, valves, and other devices.

Since their inception, PLCs have made significant strides. They remain robust, process-driven machines. However, they are beginning to integrate some functionalities commonly seen in Information Technology (IT) environments. Examples include Ethernet connections for data collection, sensor monitoring via technologies like IOLink, and protocols like MQTT that allow for server-based connections. In other words, PLCs are no longer what they were decades ago.

PLC Programming Careers

Due to the heavy reliance of global manufacturing facilities on PLCs, and the continuous evolution of this technology, the demand for experts who can develop, support, and manage these systems is steadily increasing. The opportunity to learn PLC programming has enabled many individuals to secure higher-paying jobs, work in safe environments, and experience excellent career growth.

Understanding the working environment of the manufacturing industry is crucial to comprehend how PLC programming skills can impact your job, salary, and career development. Here's an overview of each aspect from a North American perspective. Keep in mind that job titles and salaries may vary in other regions, companies, and industries.

PLC Programming for Production Line Operators

Production line operators typically have little knowledge about the systems behind the processes. In other words, they are concerned with the overall functionality of the production line but are unaware of how the system executes specific steps in the manufacturing process.

Since operators have a broad understanding of the process, they often know when they need the assistance of mechanics or electricians. However, they are typically unfamiliar with the tools or expertise of these individuals. In other words, production line operators are not involved in PLC programming, machine design, or other tasks reserved for mechanics, electricians, and engineers.

The barrier to entry for operators entering the manufacturing industry is low. It's possible to obtain an operator position after completing high school education. Therefore, the wages for operators typically fall within the lower range.

However, depending on circumstances and individual drive, the salary of individuals who excel in this position can increase significantly. They play a crucial role within the operations department.

Mechanical PLC Programming

When faults or issues arise that operators are unable to resolve, it's common to see mechanics in the production workshop. However, mechanics play a crucial role in engineering, research and development, and preventative maintenance. Their primary expertise lies in mechanical operations.

However, most mechanics learn the electrical aspects of control systems through immersion. In other words, they regularly interact with electrical infrastructure, allowing them to acquire valuable skills, including PLC programming.

In our experience, the title of mechanic indicates that the individual is capable of handling tools and aspects related to the "visible" parts of production lines and machines. However, as mentioned above, some individuals demonstrate advanced skills based on company requirements and their drive.

Mechanics typically need to undergo formal education through apprenticeship programs or possess a higher-than-average inclination towards using such systems. There is a high demand for their skills in maintenance departments, and depending on operational needs, maintenance departments may offer higher compensation. However, mechanics are often the last line of defense against failures, which, in our experience, can lead to longer work hours, demanding working environments, and higher turnover rates. Therefore, considering experience, overtime, and expertise, the compensation for mechanics can range from minimum wage to over six figures.


Electrician PLC Programming

Electricians in manufacturing facilities are often valuable assets to companies. These individuals have an understanding of both visible and invisible components in the production workshop. Electricians typically require formal training to ensure safe behavior in medium-voltage environments. This training can be conducted externally or internally within the company. However, licensed electricians typically require formal education and apprenticeship programs.

Skills among electricians vary. Some may only work with electrical systems, while others may be proficient in programming PLCs, field devices, and even network infrastructure. In addition to safe work practices, electricians are trained in the use of tools such as multimeters, oscilloscopes, wire strippers, and megohmmeters.

Electricians' salaries are typically higher than mechanics'. They are often knowledgeable in the mechanical field but are rarely assigned tasks in this area. Electricians are valuable assets to operations, engineering, and maintenance departments. Their working hours vary from an average of 8 hours per day to 12-hour shifts, depending on business requirements. Electricians who understand PLC programming typically enjoy better working environments, greater flexibility, and higher hourly wages.

Control System Engineer PLC Programming

Control system engineers typically have a general understanding of processes, control system theory, and a project-oriented mindset. Engineers may not necessarily excel in hands-on applications compared to electricians, but their focus is on delivering long-term project outcomes rather than the day-to-day operations of manufacturing workshops. However, they may be called upon if electricians require support or are unable to resolve specific issues related to control systems.

Control system engineers are typically very knowledgeable in PLC programming. They can implement programs from start to finish, troubleshoot existing systems, and make modifications as needed. However, skill levels may vary across different locations due to fluctuations in demand from manufacturing facilities, based on our experience.

Salaries for control system engineer positions are typically higher than those for electricians. That being said, electricians working overtime throughout the year may earn higher wages.

Control system engineers also spend less time on-site and more time managing projects. As mentioned above, their focus is on improving facilities through capital projects, process improvement initiatives, and the adoption of new technologies.

The most popular PLC brands include:

  1. Allen Bradley by Rockwell Automation
  2. SIMATIC by Siemens
  3. Beckhoff by Beckhoff
  4. AC500 by ABB


PLC Platforms, Ecosystems, and Manufacturers Overview

Like any other industry, the market for Programmable Logic Controllers (PLCs) is filled with numerous competitors. Depending on who you ask, they'll tell you that one particular brand is better than another. However, when choosing the right PLC for a task, several factors need to be considered. Depending on your specific needs, location, and objectives, we might recommend different PLC platforms and specific PLCs. In other words, understanding the different brands, their strengths, weaknesses, and the applications they are best suited for is crucial. In this section, we will delve into this topic, provide our insights, and discuss which PLCs we believe are most effective for learning PLC programming.

Different regions of the world prefer different PLC platforms. The reason being that a PLC is not just hardware; it's also an ecosystem. The ecosystem can include software, vendors, suppliers, technical resources, and system integrators. As PLC manufacturers dominate the industry, they concentrate their specific operations within a geographic space.


Allen Bradley by Rockwell Automation

Allen Bradley PLCs are extensively used within companies in North America. The company is a well-known global brand headquartered in Chicago, Illinois. Allen Bradley PLCs come in multiple price ranges. However, it is considered a premium brand in terms of price. Despite its powerful functionality and widespread application, its price is notably higher than some other PLCs. The Allen Bradley PLC series can be categorized into three different series: ControlLogix, CompactLogix, MicroLogix, and NanoLogix (Micro800 series).


Siemens SIMATIC

Siemens PLCs are the standard in Europe and Asia. They are highly reliable, come in various configurations, and serve as a robust alternative to Allen Bradley. Siemens PLCs are programmed through the TIA Portal. The Siemens PLC series is divided into 4 series: SIMATIC S7-1200, SIMATIC S7-1500, SIMATIC S7-300, and SIMATIC S7-400.


ABB AC500

ABB is another well-known PLC brand. ABB's value proposition lies in controllers being able to interface with themselves and any other modules from ABB. The ABB series includes AC500-eCo, AC500-S, and AC500-XC.

How to Choose the Right PLC Platform for Manufacturing?

  • Existing Knowledge and Infrastructure
  • Facility Location
  • Long-Term Business Goals
  • Platform Capability

When selecting a suitable PLC platform for your manufacturing environment, you should consider the following factors: existing knowledge and infrastructure, facility location, long-term goals, platform capabilities, and budget.

  1. Existing Knowledge and Infrastructure

If you already have appropriate infrastructure in place, chances are you have already set standards for the programmable logic controller (PLC), human-machine interface (HMI), and supervisory control and data acquisition (SCADA) systems you choose. Based on this decision, you have trained personnel to support the infrastructure.

Regardless of how complex the existing system is, the staff working in the facility are familiar with it and understand how it operates. In addition to the system cost, migrating to a different solution requires investment in training.

Additionally, experienced leaders are aware of the learning curve associated with any major change. Therefore, a thorough review of existing systems must be conducted before deciding to make a change.

  1. Facility Location

As mentioned earlier, PLC and control system manufacturers have their distribution networks for systems, services, and third-party system integrators. When choosing a system, it is essential to understand their presence in your region to ensure you can rely on their support when necessary. Additionally, location also affects the availability of skilled personnel.

In other words, if you intend to use Siemens-based controllers in North America, you may face limitations in the engineering pool and may need to pay extra for personnel with experience in Siemens PLC platforms.

  1. Long-Term Business Goals

PLC programmers often forget that the goal of a control system is to support the business. A proactive control system should be able to accommodate the expansion of a thriving business over the next few years. Some of our clients fall victim to salespeople who promise the world but fail to deliver when the business chooses to expand its facilities two years later. Certain PLC systems are suitable for smaller manufacturers, machines, and infrastructures. They are cost-effective, which may not be ideal for the scale required by multi-facility manufacturing companies.

If the goal for next year is to upgrade the system to collect data from all assets, choosing one of the systems today to save costs may not be wise.

  1. Platform Capability

The technical capabilities of each platform vary by vendor and control series. Audit your facility and create a list of critical requirements. This list may include the need to support multiple production lines, high-speed manufacturing, integration with vision systems, integration with existing assets, remote data and control, etc.

Based on these requirements, you can quickly eliminate many options and narrow down the search to only those within the business budget. We all care about the cost of a complete control system for manufacturing facilities. However, experienced leaders evaluate investments based on potential returns. In other words, higher costs may prove worthwhile if sacrificing the advantages of a specific system has a greater impact on the business. In this process, business knowledge and a high-level perspective are crucial.


How to Learn PLC Programming

Regardless of which system you choose, everyone who interacts with a programmable logic controller must undergo a series of courses related to PLC hardware, programming, troubleshooting, and design.

Due to the complexity of PLC systems, the learning path may not be obvious for many entering the field. Coupled with the complexity of acquiring hardware and software, this has led many to shy away from control system automation. We aim to outline a path we believe is best suited for individuals to learn PLC programming and related systems to become automation engineers.

Lay the Foundation for Your PLC Training

If you aim to find a job in the industry, we strongly recommend choosing one of the two most significant platforms currently on the market. These platforms are Allen Bradley (Rockwell Automation) and Siemens. Additionally, if you are in North America, we suggest Allen Bradley, while if you are in other parts of the world, we recommend Siemens.

Your first task is to familiarize yourself with the tools required to learn either platform. For Allen Bradley, we suggest getting acquainted with RSLogix 500 as your first software package. For Siemens, you must become familiar with TIA Portal.

Please note that you may need to download the free versions of RSLogix 500 Lite, RSLinx, and RSLogix 500 Emulate to get started. Siemens offers a 30-day equivalent trial software package on its website.


Introduction to Basic PLC Programming

There are several programming languages that people can use to program PLCs: ladder logic, function block diagrams, structured text, and sequential function charts. While it may be tempting to choose a method based on simplicity or familiarity with other languages, ladder logic should be the first language you master. The reason is that ladder logic, due to its roots in relay logic, is widely propagated, simple to implement, and easy to debug, making it the most widely used type of PLC programming.

Basic Logic with Ladder Logic

Ladder logic utilizes the following three instructions for basic logic: examine if closed (XIC), examine if open (XIO), and output energize (OTE). Additionally, learning ladder logic structure and branching should be highly prioritized in this phase.

Begin by implementing logic routines using the aforementioned three instructions. Understand how they affect the associated boolean values and try out different ladder configurations. As you construct different structures, consider how they reflect systems in our everyday lives. Can you build a two-way switch or a backup system so that you have an alternative power source in case of a main power failure?

What are the top 5 PLC programming languages?

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

  • Ladder Logic
  • Structured Text
  • Function Block Diagram
  • Sequential Function Chart
  • Instruction List

Each language is unique and offers certain advantages and disadvantages for programmers. As a result, programmers may switch languages in certain situations.

The most commonly used PLC programming language is Ladder Logic. It originates from the layout of relay logic circuits, providing a familiar structure. Ladder Logic is the language we recommend for most beginners to start with, as it offers the highest level of platform similarity, is the most documented language, and dominates in most facilities.

Is PLC programming easy?

PLC programming is comparatively easier to grasp than most other modern programming languages. However, the scope of work for PLC programmers is broader than just PLC programming.

From a software perspective, most PLC programs lack the common structures found in other languages, such as classes, polymorphism, extensive libraries, and so forth. This is because PLC programming is limited to systems with known states.

Beyond software, PLC programming also requires engineers to possess knowledge beyond the basics of system operation. In different factories, PLC programmers need to master essentially analog chemical processes, while in others, knowledge of mechanical conversions is key.

What programming languages do PLCs use?

Programmable Logic Controllers (PLCs) execute logic in a sequential manner. They are programmed using ladder logic, structured text, sequential function charts, function blocks, or instruction lists. Engineers design programs that connect to control systems via various sensors, sending digital and analog data. The program responds to these changes by setting various outputs according to the desired outcomes. These outputs control operations of motors, valves, actuators, and other field devices as requested by the PLC.

Intermediate PLC Programming

Many PLC programmers struggle to grasp the basic concepts outlined above. We strongly recommend mastering these three instructions and ladder logic layout before proceeding to other topics in PLC programming. Additionally, if your goal is to secure a job, most employers are likely to test your foundational knowledge.

Moving into intermediate topics, we continue learning about other PLC instructions. Starting with the most important ones, we should focus on timers and mathematical computations. You should become familiar with instructions such as TON, TOF, ADD, MUL, SUB, and DIV.

As you begin to use these new instructions, you will also notice new data types that you may not be familiar with. RSLogix and other PLC platforms provide specific structures based on instructions. For example, the TON and TOF instructions require structures of the COUNTER type. Take note of these as they become crucial in your journey through PLC programming.

Advanced PLC Programming

Advanced PLC programmers will begin learning concepts such as additional instructions, user-defined data tags, fault-tolerant programming, external hardware, and more. Now is the time to focus on advanced techniques, understanding how to build robust code, and creating layouts for entire machines and/or factories. At this stage, you should be able to easily use most instructions in the field of PLC programming; advanced applications such as recipe control, factory automation, and machine development should be well-practiced.

Another key area at this point should be exploring alternative methods of programming PLCs: structured text, function block diagrams, and sequential function charts. These programming methods are useful in their own ways and should be leveraged based on specific needs. Additionally, it's advisable to start getting familiar with external hardware such as variable frequency drives (VFDs), servo motion (Kinetix platform), safety circuits, and more.

The final element of a competent PLC programmer is platform diversification. As you reach a certain level of proficiency in your field, it's important to start looking outward and becoming familiar with other technologies in the field. This might mean learning SCADA applications from different vendors, understanding how to connect PLC data to SQL databases, or how to send data to cloud-based applications.

Frequently Asked Questions

We collaborate with many professionals, including manufacturers, engineers, technicians, managers, operators, and others seeking a better understanding of PLC programming. Some wish to advance their careers, while others aim for a deeper understanding of the industry to enhance communication with peers. Whatever your goal may be, we have compiled a list of common questions encountered in the realm of PLC programming, PLCs, and industrial automation.

PLC programming utilizes which languages?

According to the IEC 61131-3 protocol, PLC programming utilizes five languages: ladder diagram (LD), sequential function chart (SFC), function block diagram (FBD), structured text (ST), and instruction list (IL). In addition to these 5 languages, it's not uncommon to use languages derived from software engineering (such as C, C++, Python, and in some cases, JavaScript) for programming PLCs. It's important to remember that there is a distinction between PLCs, IPCs (Industrial PCs), and PLCs with integrated IPCs. In other words, some brands may include a computer (often based on Linux) along with their PLCs, typically used for data processing tasks rather than control systems.


Can you self-learn PLC programming?

Absolutely. I've personally guided some individuals without backgrounds in electrical engineering or any related technical fields. They invested time to understand industrial automation, purchased equipment, and spent time implementing PLC programs, ultimately landing automation jobs. The main challenge in our field is the cost of entry. While we offer very affordable training programs, obtaining software and hardware within budget can be difficult. Is PLC programming difficult?

Compared to other programming languages, PLC offers a simplified approach to programming. However, PLC programming, rooted in relay panel design, is not intuitive at first use. That said, PLC programming is typically not as complex as software engineering - PLC controls a finite set of outputs based on a finite number of inputs. 

Can I use Python in PLC?

Python is not the standard language for PLC programming. You rarely (if ever) see Python as the primary language for control systems. However, some PLCs and IPCs support Python, and other vendors have released products supporting other languages, including Python. If you're familiar with Python, you'll find various libraries that can be integrated into PLCs and allow you to interact with I/O through APIs. 

Can I use C++ in PLC?

Just like Python, you're unlikely to see widespread adoption of C++ in PLC programming. However, C++ is a widely used language in embedded systems, and PLC offers a closely related programming method - Structured Text (ST). It may not be identical to C/C++, but it's close enough for most programmers with a C or C++ background. 

What is the easiest PLC to program?

Our platform covers a variety of PLCs. We believe the easiest PLCs to program are Siemens' S7-1200 series or Rockwell Automation's CompactLogix series. They both provide an intuitive set of software tools that are modern, abstract many complexities of PLC programming, and offer an understandable approach to building PLC software.

How long does it take to learn PLC?

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

Can I use a PC instead of PLC?

In short, yes; you can use a PC instead of a PLC. However, it's important to understand why PLCs are used instead of PCs in most cases. Firstly, PLCs are highly reliable; they can work 24/7/365 for decades in hot and humid environments. Secondly, PLCs are embedded systems abstracted from software changes like operating systems and applications, making them robust. Thirdly, PLCs are a "platform" rather than just a brain - they integrate I/O modules, various motion components, safety features, and more.