Basics of Structured Text (ST) Programming

Let's discuss the basics of PLC programming utilizing Structured Text

In this article, we are going to discuss the basics of PLC programming utilizing Structured Text.

As one of the IEC-61131 PLC programming languages, Structured Text or just ST is based on and resembles traditional programming languages like Python or Java.

Rather than being visual or graphics-based like ladder logic or Function Block Diagram, Structured Text is just that, text!

Common Programming Languages.

Structured text programming advantages

Like all programming languages, Structured Text has advantages and disadvantages, and there are also reasons you as a programmer might choose to use Structured Text in your next PLC programming project, so let’s get right into it.

1) No PLC programming background needed

Since Structured Text is similar to traditional High-Level programming languages, it can be fairly easy for many people who may not have a background in PLC programming but have experience in traditional coding to learn and develop PLC projects.

Structured Text Advantages

2) ST is text-based

In most cases, you can also develop your Structured Text PLC programming project without using the PLC programming software. Since it is text-based, you can write your project in a simple text file and copy and paste it into your PLC project when you are ready.

Text-Based Programming Language

This also makes editing your project easier when you are debugging. While this feature of Structured Text is useful, remember that without your programming software like TIA Portal or RSLogix, you cannot compile and debug your program.

Compiling and Debugging ST Program

Most PLC manufacturers support different programming languages in their PLC’s and this is because there are many different reasons that a programmer will choose a particular programming language.

These reasons can be as simple as a client request for a specific programming language all the way to the size of the programming project.

Choosing a Programming Language

3) ST is a lightweight programming language

Since Structured Text is by definition, text-based, it means that it does not have the memory-intensive graphical interface which can allow for a smaller processor memory and therefore a reduced cost.

This makes Structured Text an ideal candidate for larger PLC programs where controller memory is at a premium.

Lightweight Programming Language

4) ST programming files can be shared very easily

Some other times you might want to use Structured Text are when you are deploying the same PLC program over and over, such as in a packaged machine that is sent to a customer for a turn-key start-up.

Platinum inert properties.

In these cases, your PLC program file can be stored offline in a text file or word document and can be easily sent as an email attachment for someone to download into the PLC and deploy.

Basic rules of ST syntax

The syntax of Structured Text follows some basic rules.

– First, all statements in Structured Text will end with a semicolon.

– A routine will close out with an End_If statement.

-Spaces and tabs are not required, but a good programmer will still use them for readability.

– Also, Structured Text is not case sensitive, but if you are assigning a variable, known as a tag or a symbol such as control valve 1, then using camelCase ControlValve1 is a good practice to get into.

Structured Text Basic Rules

Use of comments in ST programming

Another very common and useful syntax of Structured Text is the use of a comment. As a beginning programmer, the use of comments is essential to creating code that can be read later on.

Here is an example of a comment in structured text programming: 

(*this line of code will close control valve 1*)

As you can see, to add a comment in Structured Text you will start with a left parenthesis followed by an asterisk. To close your comment, you will then add another asterisk followed by a right parenthesis. 

Structured text operators

Structured Text also uses operators to manipulate data. Some examples of operators are the logical operators such as AND, OR, and NOT. A logical operator is used to compare Boolean data and create logic from it.

Structured Text Operators

Structured text examples

An example of a logical operator in Structured Text looks like this:

Logical Operator in Structured Text.

In this case, if the control valve 1 is NOT closed, the program would execute based on any following instructions that follow the instruction.

Here is another example:

Logical Operator in Structured Text - OR.

In this case, if the control valve 1 is closed, or if another parallel condition was true, the program would execute based on any following instructions that follow the instruction.

Remember, just because the expression told us that the control valve 1 is not closed, we still aren’t sure it is open! We will need to create logic that tells us that it is open.

Let’s create a simple statement in Structured Text to turn on a pump when the control valve is open.

First, let’s start by evaluating the state of the control valve. You will want to ensure that the valve is open by using this statement. IF ControlValve1_Closed is False AND ControlValve1_Open is True.

A Simple Statement in Structured Text.

With this statement, you have evaluated that the control valve is not closed and that the control valve is open.

Now, let’s turn on the pump. To do this you will add then Pump_Start is true to the statement.

Now that the pump is running, you need to add logic to stop the pump if the control valve closes. To do this you will simply add another statement to the logic as… IF ControlValve1_Closed is TRUE OR ControlValve1_Open is FALSE THEN pump start is FALSE.

Statements in Structured Text.

ELSIF statement

Now let’s put all of our statements together to create a routine. To do this you’ll have the first statement and then add ELSE below that. Next, you’ll have the second statement and then add… END_IF at the end.

With this routine, if the control valve 1 is not closed AND it’s open THEN the pump starts.

Otherwise, if the control valve 1 is closed and it’s not open then the pump stops. Very easy, right?

Pump Start-Stop program.

To make this routine easier for others to read and understand, you can also add a comment above that.

So you’ll go with a left parenthesis followed by an asterisk and then add… this routine will start the pump when the control valve is open and stop the pump when the control valve is closed or not open. To close the comment, you will add another asterisk followed by a right parenthesis.

Congratulations! You have just created your first routine in Structured Text! How cool is that? While this simple tutorial was an introduction to Structured Text, adding the ability to utilize Structured Text in your projects will be another powerful tool in your programmer’s toolbox.

It allows you to create large and complex PLC projects quickly and efficiently while maximizing the allocation of memory.

We hope you enjoyed this easy-to-follow tutorial brought to you by the RealPars team.

If you have any questions about the Structured Text, or about programming languages in general, add them in the comments below and we will get back to you in less than 24 hours.

Got a friend, client, or colleague who could use some of this information? Please share this article.

By Gregory Duranso

By Gregory Duranso

Automation Engineer

Posted on Oct 4th, 2021

Gregory Duranso

By Gregory Duranso

Automation Engineer

Posted on Oct 4th, 2021

5 Actionable Tips for Getting a PLC Programming Job with NO Experience

5 Actionable Tips for Getting a PLC Programming Job with NO Experience

In this blog post, you’ll learn about the mindset that helped me getting a PLC programming job with NO experience. This is my personal experience as someone who searched for a job in this field and as an employer who reviews resumes and interviews candidates for a variety of projects. So let’s get started!

Open PLCs: Unlocking the Power of Industrial Automation

Open PLCs: Unlocking the Power of Industrial Automation

Programmable Logic Controllers (PLCs) have been the backbone of control systems for a long time. However, traditional PLCs have been known for their close architecture which results in limited flexibility in programming and also integrations with other systems. This...

What is an Open PLC?

What is an Open PLC?

To program a PLC, I need to write a program on my computer and download it to the PLC. To be able to write the program on my computer, I need programming software, right? I can not just open up my laptop and start writing codes. For example, to write code in C++ on my...

RealPars is the world's largest online learning platform for cutting-edge industrial technologies. 

[email protected]
+31 10 316 6400
Mon - Fri  8:30 am to 5:30 pm (CET)

Rotterdam Science Tower,
Marconistraat 16,
3029AK Rotterdam, The Netherlands



Terms of Service






Sign in


Contact Us

Help & Support

Refund & Cancellation Policy

© 2023 RealPars B.V. All rights reserved.

Created with coffee and tea in Rotterdam.