- By Jack Smith
- November 02, 2023
- InTech Magazine
- ISA
- Opinion
Summary
Which programming languages do automation/control engineers use? The classic engineering answer is, “It depends.” The deeper response is, “It depends on the application or use case.” This feature originally appeared in the October 2023 issue of InTech digital magazine.
The automation industry grew up using ladder logic to tell programmable logic controllers (PLCs) what to do and how to do it. But the era of classic computerized control has moved into the era of Industry 4.0, with its emphasis on industrial digitalization and software implementations of complex systems. To keep up with this shift, the industrial automation and control engineering disciplines are evolving as well, reflecting the convergence of operational technology (OT) and information technology (IT) systems.
When I spoke with Arlen Nipper, CTO for Cirrus Link Solutions and co-inventor of MQTT at a recent technical conference, we got to talking about this evolution, I asked him to rank the programming languages automation and control engineers are using today. He told me that Python, Java, and the C-family of languages (C, C++ and C#) are the top three. But he quickly clarified that their prevalence does not in any way exclude others.
Because of their similar syntax, Python and Java are considered part of the C-family of programming languages, which also includes Julia, Perl, and many other languages. What that family does not include, however, is ladder logic—long used to develop control applications for industrial hardware like PLCs and PACs—and IEC 61131-3, a newer open programming standard.
In an article in the June 2022 issue of InTech titled “Future-Proofing Controls Programming for the Edge,” Emerson’s Darrell Halterman wrote: Programmable automation controllers (PACs) “began to take on tasks we would associate with the edge today, although their dedicated real-time operating systems (RTOS) imposed some limitations. In many cases, users found it necessary to create complex algorithms, like machine learning strategies, using modern information technology (IT)–type languages like C++ and Python, running on PCs and industrial PCs (IPCs) working in conjunction with PACs.”
In the same article, Halterman said users should seek product portfolios that embrace open programming, software, and communication standards when possible. He said that for edge controllers, this requires (among significant other criteria) that they be “programmable using C/C++, Python, and other modern languages suitable for applications like machine learning [ML] and artificial intelligence [AI].”
In an October 2022 Robotics and Automation News article titled “Most Popular Programming Languages for Automation,” author Mark Allinson wrote: “According to surveys conducted last year, [Python] is the most preferred language for developing automated systems. Its open sources and freedom are the main pros. Any new venture is strongly encouraged to use Python as its primary programming language. Python’s high level of readability makes it relatively simple to pick up.” Allinson’s article also notes the popularity of JavaScript, Java, and C# as powerful programming languages for automation and the corporate environment.
Supporting Python’s place in front, IEEE Spectrum recently released its 10th annual rankings of the top programming languages saying, “This year, Python doesn’t just remain No. 1 in our general ‘Spectrum’ ranking…but it widens its lead. Python’s increased dominance appears to be largely at the expense of smaller, more specialized, languages. It has become the jack-of-all-trades language—and the master of some, such as AI, where powerful and extensive libraries make it ubiquitous.”
What about IEC 61131-3?
Coming up through the OT ranks are open, interoperable programming standards seeking to replace the proprietary programming languages tied to specific pieces of industrial hardware. In a recent Automation.com article, “The Missing ‘Industry 4.0/Digitalization’ Link—Open Programming Standard Conformance & Certification,” Bill Lydon wrote: “The fundamentals of IEC 61131-3 have been adopted by a wide range of automation vendors throughout the world. IEC 61131-3 is supported by the PLCopen organization that extends the standard with special interest groups, standards, and certifications. These standards and certifications include motion control, safety, OPC UA, XML interchange, and reusability. Due to the task structure of a full IEC 61131 implementation, both event-driven and cyclical [programming] can be accomplished.”
Lydon points out that, regardless of the programming methods, “manufacturers and process production companies must digitize, or they will be caught in a strategic gap putting them at a large competitive disadvantage. Achieving the benefits of digitalization requires organizations to leverage Industry 4.0 and IoT (Internet of Things) concepts, technology, and architecture with open standards. Vendor compliance and certification to open interoperable programming standards will accelerate the digitalization of manufacturing, production, and process industries.”
Lydon seems concerned that, in the void left by the lack of strong conformance and certification to industrial automation programming standards like IEC 61131, “the industry may be preempted from the outside.” Does that mean the alleged IT-centric languages like Python are “from the outside?”
Concerns that these “IT-esque” solutions would never work in industrial automation reminds me of the arguments that Ethernet could never be used for industrial networking. Maybe the convergence of IT and OT systems means there are no longer “sides.” The evolution from ladder logic to Python and IEC 61131-3 and beyond speaks to where the industry has been and is headed. The PLC-oriented languages and the PC-based IT-type languages are admittedly “apples and oranges,” but they can all work together to promote digitalization.
This feature originally appeared in the October 2023 issue of InTech digital magazine.
About The Author
Jack Smith is senior contributing editor for Automation.com and ISA’s InTech magazine. He spent more than 20 years working in industry—from electrical power generation to instrumentation and control, to automation, and from electronic communications to computers—and has been a trade journalist for more than 25 years.
Did you enjoy this great article?
Check out our free e-newsletters to read more great articles..
Subscribe