In this post, I outline the key technical, soft, and future skills that every PLC programmer should have to excel as an automation professional.
In this post, I'm going to outline the key skills that PLC programmers and controls engineers need to excel as automation professionals. This list is based on my personal experience as a self-taught controls engineer who has been working in the automation industry for the last decade.
Hopefully this list will help you to prioritize the skills that you focus on developing and to get the job or promotion that you have been thinking about.
Let's start by talking about the technical skills that PLC programmers are expected to have.
It probably goes without saying, but PLC programmers are expected to be able to program PLCs.
A few years ago, companies may have taken a junior engineer on with no PLC programming experience and trained them up, but these days most companies want to hire someone who can hit the ground running. That means that if you want to work as a PLC programmer, you are expected to go out and get a little bit of experience with PLC programming before getting your first job.
In general, a PLC programmer should specialize in one language and have a good understanding of the other languages. Your primary language will depend on the industry that you are working in. For example, the Function Block Diagram programming language is very popular in process industries.
PLC programmers should have a good understanding of PLC hardware.
This means that you should know what modules are available for the PLC system that you are working on and you should know how to install, configure, and troubleshoot modules.
The responsibility for selecting PLC hardware usually falls on the electrical engineer in a project, but the responsibility for installing, configuring, and getting a module working may fall on the PLC engineer.
A project is made up of more than PLC hardware, and a PLC programmer is expected to know about more than PLCs.
I am not an electrical engineer but one thing that has helped me to excel in my career is my knowledge of electrical systems. Every PLC programmer should have a basic understanding of electrical components like relays, sensors, circuit breakers, motors, and valves. They should also be able to read and understand electrical schematics and wiring diagrams to understand how the control system is built.
Most projects are made up of multiple devices that communicate using an industrial network or fieldbus. As a PLC programmer, you will be expected to configure the devices in the project to communicate with each other and to troubleshoot the network when it is not working.
PLC programmers should know what common industrial communication protocols like EtherNet/IP, PROFINET, Modbus, and DeviceNet are and should understand in detail how a handful of these networks work.
If you are working with Allen Bradley hardware, then you should know a lot about EtherNet/IP. If you are working with Siemens hardware, then you should know a lot about PROFINET.
The projects you work on may use other communication protocols as well and the protocols that you are expected to know will depend on the industry that you work in. Do your best to research your industry to understand what communication protocols are used and be informed about those protocols.
Almost anyone can do a design on paper. Getting that design to work in the real world is much harder.
A lot of your time working as a PLC programmer will be spent debugging and troubleshooting. If you are planning to work as a PLC programmer, you should be comfortable using the tools that are available to you to debug issues. You should also be comfortable with searching for answers in documentation and solving issues through trial and error.
Finally, PLC programmers do more in a project than program PLCs.
Very often, it is the PLC programmer who configures the variable frequency drives, sets up the servo drives, configures the HMI, and tests the SCADA system.
Although PLC programmers specialize in programming PLCs, they are involved in the whole project. If you want to excel as a PLC programmer, you should have basic knowledge about all of the other intelligent devices in a project and be comfortable working with them.
Now that we have talked about the technical skills that a PLC programmer needs, let's talk about the soft skills that are required.
There are very few projects where the client has defined exactly what they want from a machine or system.
To excel as a PLC programmer, you have to be able to read a set of functional requirements and decide how to build the best system using the information that you have.
This requires critical thinking skills.
Even when you know what you want to build, there are challenges and limitations that you did not plan for. To get around these problems, you need to have good problem solving skills.
Clients often define how a process should look when things go right.
A good PLC programmer also pays attention to what should happen when the process goes wrong.
How will the PLC detect when a sensor has failed? What should the PLC's reaction be?
During commissioning, this attention to detail is also very important since the PLC programmer is responsible for checking that every sensor and actuator is working correctly and that the whole system works as intended when the process is going well and when the process is going wrong.
Most PLC programmers look after their own time budget on projects.
You are ultimately responsible for making sure that your work is done within the allocated time.
Part of this work includes aligning with other members of the team to get inputs and agree on how to proceed.
Although you are not a project manager, you will have to do quite a bit of project management to ensure that your work is done on time and to the standards expected.
Communication skills go hand in hand with project management skills.
Ultimately, a PLC programmer needs to be able to communicate how the work is going, and what sticking points she needs help resolving.
Very often, you will have to convince a client that your approach is correct, you will have to report your progress to project managers, and you will have to work with operators to understand how they work and what they need from the PLC program.
PLC programmers need good communication skills.
Possibly the most important skills for PLC programmers is the ability to learn.
In industrial automation, technology changes slowly but it still changes. In the last few years, we have seen the rise of IO-Link and OPC-UA on the communication side of things.
Companies like Rockwell Automation and Siemens are releasing APIs for their products so that automation engineers can use version management tools like Git and do automated testing with their code.
New platforms like FactoryTalk Design Studio and FactoryTalk Optix are coming out that require a skill refresh to master.
If you want to have a long career in automation, you have to be ready to be constantly learning.
Finally, I'll highlight some of the skills that I think will be important in the future for PLC programmers. If you master these skills, you will be in high demand for a long time to come.
More and more devices communicate over Ethernet and many companies want to connect their OT and IT networks.
This leads to complex networks and collaboration between OT and IT teams. If you are a PLC programmer who knows a lot about industrial networks, you can add a ton of value here.
As well as unlocking data, connecting OT and IT security introduces risks to an automation system.
We are already seeing a lot of demand for PLC programmers who know about cybersecurity to help ensure that OT systems are secure. This trend will only continue as we see more OT cybersecurity threats.
OT devices are getting more intelligent and modern industrial networks makes it easy to pull data from devices and push that data to a database.
Companies want to use this data to improve their processes and any PLC programmer who can analyze this data using AI or standard tools will be in high demand.
Automation companies like Siemens and Rockwell Automation are introducing tools that let PLC programmers work like traditional software developers.
IDEs now have APIs that let you automate repetitive tasks.
PLC programs can now be written in text based languages.
This trend will continue as automation projects get more complex. To stay ahead of this trend, PLC programmers should focus on spending some time learning about traditional IT tools and methodologies.
In this post, I have outline the key technical and soft skills that all PLC programmers should have.
I have also outlined the skills that I think will be important in the future for PLC programmers.
If you are interested in learning how to write PLC programs, check out PLC Bootcamp, my free mini-course that teaches you how to write and test your first PLC program for free.
Learn how to write an test your first PLC program using Studio 5000 Logix Designer for free
Sign up to the mailing list to receive a 25% discount off all products.
Includes a free trial of Studio 5000 Logix Designer
Learn how to build and test your first project in Studio 5000 Logix Designer using Bit instructions
Includes a free trial of Studio 5000 Logix Designer
Learn how to use timer and counter instructions in your Studio 5000 Logix Designer projects
Includes a free trial of Studio 5000 Logix Designer
Learn how to compare and compute numeric data in your Studio 5000 Logix Designer projects
Includes a free trial of Studio 5000 Logix Designer
Apply the skills that you have learned to build a portfolio of projects based on real applications