Control programming software strategies for industrial systems | Control Engineering (2024)

What are the options when preparing industrial control system applications? Does the user have to choose between robustness and functionality of the control solution? Are there solutions for rapid prototyping of industrial control systems?

Control system programming languages

Most of the off-the-shelf programmable logic controllers (PLCs) can be programmed in at least one of the languages described in IEC 61131-3:

  • IL – Instruction List – low-level programming language similar to Assembler
  • LD – Ladder Diagram – graphical language based on rules of the electrical circuits with wires, relays, etc.
  • FBD – Function Block Diagram – graphical language with the possibilities to implement complex control and numerical functions in a simple way. User can use provided function blocks grouped in libraries and create custom blocks (written in any of the IEC 61131-3 compliant languages) to build a control algorithm.
  • ST – Structured Text – text language similar in its syntax to Pascal and Basic; effective solution for every complex control algorithm
  • SFC – Sequential Function Chart – graphical language describing operation of the process and machine. This is the only language in the IEC 61131-3 standard that depends on usage of at least one other language from the list. SFC is used to create a state machine of the process; each state is created with another language, such as ST or IL.

What are the most popular control system programming languages?

What’s most commonly used now? In a poll of Control Engineering U.S. and Control Engineering Poland readers, the most popular programming language is Ladder Diagram.

Function block diagram language, similar to circuit with logic elements, is in second place among PLC programming languages.

In third place is Instruction List language. Advanced accumulator management engines help with the most complex numerical dependencies within a control system algorithm.

Structured Text language can be used to implement any control algorithms. Advanced users can easily create their own regulator function blocks controlling both Single-Input Single-Output (SISO) and Multiple-Input Multiple-Output (MIMO) processes. This language takes fourth place on the most popular PLC programming languages list. It’s becoming more popular with the increasing computing power of the newest PLCs.

Structured Text language is the perfect tool to create user libraries, which add value to every PLC. Function block usage is the first step in creating object-oriented tasks for PLC. The number of people declaring knowledge of ST is increasing each year. Many young engineers prefer ST to LD, so it will be gaining popularity in the industry in coming years.

With SFC language, known as “language of the technologist,” users can create flowcharts of the whole machine or process.

Certain PLCs now accept programming using ANSI C language, compliant with the Kernighan and Ritchie standard. Some advanced models can be even programmed with C++.

Industrial control software

Industrial control systems manufacturers often offer additional, platform-dependent, dedicated programming languages. They are prepared by manufacturers to easily integrate with hardware-specific functions, such as access to BIOS, unique serial numbers, etc.

Industrial PCs (IPC) are equipped with traditional operating systems, usually Microsoft Windows, and real-time systems running on the same PC. The advantage of such a connection is the use of “real-time” languages from the IEC 61131-3 list and Microsoft Windows-based high-level languages like C++ or C#. During recent years many traditional PLCs have evolved, and sometimes it’s hard to distinguish PLCs from IPCs. When the device has much more functionality than PLC, computing power similar to IPC, but the robust enclosure of a PLC, it is a programmable automation controller (PAC). PACs have gained distributed control system (DCS) manufacturers’ attention; some are using PACs in their DCS offerings. PACs allow the use of a larger number of textual high-level programming languages (C, C++, C#) as well as graphical ones (see below).

To program complex control systems, a new programming language has been introduced, Continuous Function Chart (CFC). CFC is high-level graphical language similar to FBD, but it has the additional functionality of being able to create multi-thread algorithms that can be computed in parallel from a programmer’s point of view.

Graphical programming

Graphical programming (such as Mathworks Matlab/Simulink, National Instruments LabVIEW, and others) is gaining more attention since these tools usually integrate programming and simulation functionality. Users can check or even look for correct regulator gains and prototype control algorithm of the machine/process in the software-in-the-loop mode.

Graphical integrated development environment (IDE) interfaces, if properly designed, can be very helpful during system setup and debugging. Many new IDEs let users specify system configuration with drag-and-drop methods instead of hard-coding every parameter.

Control system design, simulation

Most control equipment IDEs—where control, visualization, and motion are designed—can simulate the final project before it is compiled and uploaded to the hardware. The newest advanced IDEs are complex IT systems supporting pure OPC technology (OLE for Process Control) and OPC Data Access protocol. (For instance, Mathworks Matlab/Simulink can be an OPC DA client and get data from an industrial control system supporting OPC.)

Mechatronic parallel design

Mechatronic design techniques help create proper machine control systems. To rapidly prototype the software-hardware design of a new control algorithm (with a scientific approach), the following steps must be taken:

  1. Preparing of simulation model
  2. Compilation of the project and testing in hardware prototyping platform
  3. Designing of the dedicated hardware platform based on microcontrollers, FPGAs, etc.

A new approach for industrial control systems prototyping eliminates the necessity of using a dedicated interface card (such as dSpace DS1104 or others). It enables the possibility for final target system programming from the level of simulation software. It also assures a short time to market for new, complex products.

For more, see the January North American print and digital edition cover story on control programming and design and related Online Extras.

– Krzysztof Pietrusewicz and Łukasz Urbański teach at West Pomeranian University of Technology, Szczecin, and contribute to Control Engineering Poland. Edited by Mark T. Hoske, Control Engineering, www.controleng.com .

www.controlengpolska.com

www.zut.edu.pl

www.controleng.com/new-products/PLCs-and-PACs.html

More about the authors

– Krzysztof Pietrusewicz, PhD, is an assistant professor at the Control Engineering and Robotics chair, Faculty of Electrical Engineering at the West Pomeranian University of Technology, Szczecin, Poland (formerly Szczecin University of Technology), and contributor to Control Engineering Poland. His current research is in control engineering, computer controlled systems, hybrid control systems, real-time systems, artificial intelligence, and mechatronics. He has introduced simplified engineering design methods of fuzzy-logic PI/PD, PID, and PIDD controllers. He is also coauthor of two books: “Two-Degrees of Freedom Robust PID Control in Practice,” Polish, in 2006, and “Programmable Automation Controllers PAC,” in Polish, in 2007. He teaches courses in embedded control systems, hybrid control systems, and programmable automation controllers, as well as PLCs and digital control of intelligent servodrives (digital motion control). Reach him at krzysztof.pietrusewicz(at)zut.edu.pl.

– Łukasz Urbański, MSc, is a PhD student at the Faculty of Electrical Engineering, West Pomeranian University of Technology. His specialty is the digital control of machines, such as computer numerically controlled milling machines. He also is a contributor to Control Engineering Poland.

Do you have experience and expertise with the topics mentioned in this content? You should consider contributing to our CFE Media editorial team and getting the recognition you and your company deserve. Click here to start this process.

Control programming software strategies for industrial systems | Control Engineering (2024)

FAQs

What is control system programming? ›

In control systems, programming is used to specify the desired behavior of the system and the conditions under which it should operate. Control systems can be programmed using a variety of languages, including C, C++, and Python.

Which programming language is widely used in control systems and automation? ›

The programming language chosen impacts the scalability, performance, and functionality of automation solutions. Python, Java, and C# are great for building enterprise-level automation frameworks. JavaScript, Ruby, and PHP simplify web automation tasks.

What are the 4 types of control systems? ›

Automatic control system and Combinational control system. Time-variant control system and Time-invariant control system. Linear control system and Non-linear control system.

What is the best programming language for control engineering? ›

Some examples of easy-to-use languages are Python, MATLAB, and LabVIEW, which are high-level and abstract and offer many built-in functions and libraries for control engineering. For control engineering typically ultra high level graphical languages primarily Ladder and FBD (Function Block Diagram) are used .

What are the two common programming languages used in control systems? ›

The 5 Most Common PLC Programming Languages
  • 1) Ladder Logic. Ladder logic is one of the most popular PLC programming languages. ...
  • 2) Function Block Diagram (FBD) Function block diagram is another graphical type of programming language. ...
  • 3) Structured Text (ST) ...
  • 4) Instruction List (IL) ...
  • 5) Sequential Function Chart (SFC)
Feb 27, 2023

Which programming language is best for industrial automation? ›

Python, C#, and Java are currently the top three programming languages for industrial automation. They have the right combination of features, frameworks, and libraries for quick and efficient application. Python or C++ better for robotics? Python is just as good as C++ for programming.

What is an example of a control system? ›

The autopilot in a passenger aircraft that maintains speed, altitude and heading is an example of a more sophisticated automatic control system. The cruise control in a car, which maintains constant speed independently of road inclines, is yet another example of a control system.

What is control system and examples? ›

A control system manages, commands, directs, or regulates the behavior of other devices or systems using control loops. It can range from a single home heating controller using a thermostat controlling a domestic boiler to large industrial control systems which are used for controlling processes or machines.

What is an example of control program? ›

For example, the primary control program in a computer is the operating system (OS). It sets the standards that all applications must use to interface with the OS (see API and OS). All peripheral devices in a computer are controlled by software, also known as a driver.

What is the difference between PLC and control system? ›

On a basic level, Programmable Logic Controllers (PLCs) control individual machines, systems, or devices while a Distributed Control System (DCS) manages multiple machines throughout an entire factory, plant, or manufacturing works.

Top Articles
Latest Posts
Article information

Author: Ray Christiansen

Last Updated:

Views: 6323

Rating: 4.9 / 5 (69 voted)

Reviews: 84% of readers found this page helpful

Author information

Name: Ray Christiansen

Birthday: 1998-05-04

Address: Apt. 814 34339 Sauer Islands, Hirtheville, GA 02446-8771

Phone: +337636892828

Job: Lead Hospitality Designer

Hobby: Urban exploration, Tai chi, Lockpicking, Fashion, Gunsmithing, Pottery, Geocaching

Introduction: My name is Ray Christiansen, I am a fair, good, cute, gentle, vast, glamorous, excited person who loves writing and wants to share my knowledge and understanding with you.