Hidden Message here.

PLCnext on LinkedInPLCnext on Instagram  PLCnext on YouTube Github PLCnext CommunityStore PLCnext Community

Modern Programming Languages and the need of Experts

5 THings your PLC can't do but should


Marcel Luhmann

Technology Manager


In current time it's hard to find skilled staff for automation engineering. The challenges in automation are getting more and more complex. The way to meet these challenges is equally complex and different than in the past. Due to the complexity, automation engineers get an even wider range of tasks like maintenance and support.


The old standard: IEC 61131-3


 DSC8636Let’s grab the issue by its horns. The industry does not get enough experts for IEC 61131-3 programming languages. IEC 61131 is an open international standard for programmable logic controllers (PLC). Part 3 (IEC 61131-3) of the standard deals with basic software architectures and programming languages. It defines the three graphical programming languages, ladder diagram (LD), function block diagram (FBD) and sequential function chart (SFC), and also the textual programming languages structured text (ST) and instruction list (IL, deprecated in 2013 with the release of the 3rd edition).

The graphical languages use graphic elements to formulate the desired behavior of the PLC. Connecting lines or so-called connectors indicate the data flow between functions and function blocks. Ladder e.g. resembles the familiar electric circuit format and even a non-programmer with an electrical background can follow the program for purposes of troubleshooting. For a viewer who is not versed in relay logic, FBD is even easier to follow. It is the ideal language for simple programs consisting of digital inputs and outputs. But for special I/Os, functions and large programs these languages are not ideal. With a considerable size they quickly become unwieldy and unmanageable.

Here come in to play. It closely resembles a high-level computer programming language such as Python and C. It provides conditional statements (IF...THEN, CASE) and line ending in semicolons. It is easier to do calculus and data analysis and helps writing compact, faster running programs for more complex workload. The disadvantage is, following the path in a ST program and troubleshooting a problem without being familiar with ST is nearly impossible. As a result, control engineers tend to use ST behind the scenes, encapsulated as functions or function blocks and being black boxes for the user embedding them in their graphical PLC program. This removes complexity in the main PLC program but allows the engineer to code more efficiently.


New Experts


So how do I get coders attracted to my company? Most of them don’t know anything about IEC 61131-3 programming languages and a job advertisement with this required would probably not get their attention. With the trend of IoT, analyzing data of the machines, and storing them in a cloud, the classical automation programming languages are not sufficient anymore. Here the modern programming languages come in to play. They are more versatile, flexible and made to solve complex issues. One of them is often well known by a student of a technical class and these are your potential employees. New developers with different skills are needed to .


High-level languages as a new opportunity 


So the question arises: what are the programming languages they learn in school and what are the most popular languages today? The last research about used programming languages in universities is some time ago. . According to the research from the Association for Computing Machinery (ACM) [i], published in 2014, for eight of the top ten elite IT institutes in the USA, the programming language Python is at the top of the curriculum. The research also shows a change from Java to Python in the years before 2014In the statistic of Redmonk [ii] Python already took over the lead from Java and in the Tiobe [iii] ranking Python is moving in big steps towards the top.


Interface with Databases

Graphic: RedMonk




In conclusion there are a lot of possibilities to fill the lack of automation engineers. Some programming languages are easy to understand and to maintain without being an expert developer and others are for experienced professionals. But to get the best out of modern PLCs like the PLCnext Control, it's recommended to use high level languages like C++, C# or Java and combine them with the usual IEC 61131 development. the search for new developers, who are probably not experts in automation systems and IEC 61131-3 programming languages. They can adapt their knowledge by working with their preferred programming languages and use the full potential of PLCnext Technology.




[i] https://cacm.acm.org/blogs/blog-cacm/176450-python-is-now-the-most-popular-introductory-teaching-language-at-top-u-s-universities/fulltext

[ii] https://redmonk.com/sogrady/2020/02/28/language-rankings-1-20/

[iii] https://www.tiobe.com/tiobe-index/