19. STRUCTURED TEXT PROGRAMMING - infoPLC
[Pages:18]329
19. STRUCTURED TEXT PROGRAMMING
Topics: ? Basic language structure and syntax ? Variables, functions, values ? Program flow commands and structures ? Function names ? Program Example
Objectives: ? To be able to write functions in Structured Text programs ? To understand the parallels between Ladder Logic and Structured Text ? To understand differences between Allen Bradley and the standard
19.1 INTRODUCTION
If you know how to program in any high level language, such as Basic or C, you will be comfortable with Structured Text (ST) programming. ST programming is part of the IEC 61131 standard. An example program is shown in Figure 261. The program is called main and is defined between the statements PROGRAM and END_PROGRAM. Every program begins with statements the define the variables. In this case the variable i is defined to be an integer. The program follows the variable declarations. This program counts from 0 to 10 with a loop. When the example program starts the value of integer memory i will be set to zero. The REPEAT and END_REPEAT statements define the loop. The UNTIL statement defines when the loop must end. A line is present to increment the value of i for each loop.
PROGRAM main VAR
i : INT; END_VAR i := 0; REPEAT
i := i + 1; UNTIL i >= 10; END_REPEAT; END_PROGRAM
Note: Allen Bradley does not implement the standard so that the programs can be written with text only. When programming in RSLogix, only the section indicated to the left would be entered. The variable 'i' would be defined as a tag, and the program would be defined as a task.
Figure 261 A Structured Text Example Program One important difference between ST and traditional programming languages is the nature of
330
program flow control. A ST program will be run from beginning to end many times each second. A traditional program should not reach the end until it is completely finished. In the previous example the loop could lead to a program that (with some modification) might go into an infinite loop. If this were to happen during a control application the controller would stop responding, the process might become dangerous, and the controller watchdog timer would force a fault.
ST has been designed to work with the other PLC programming languages. For example, a ladder logic program can call a structured text subroutine.
19.2 THE LANGUAGE
The language is composed of written statements separated by semicolons. The statements use predefined statements and program subroutines to change variables. The variables can be explicitly defined values, internally stored variables, or inputs and outputs. Spaces can be used to separate statements and variables, although they are not often necessary. Structured text is not case sensitive, but it can be useful to make variables lower case, and make statements upper case. Indenting and comments should also be used to increase readability and documents the program. Consider the example shown in Figure 262.
FUNCTION sample
GOOD
INPUT_VAR
start : BOOL; (* a NO start input *)
stop : BOOL; (* a NC stop input *)
END_VAR
OUTPUT_VAR
motor : BOOL;(* a motor control relay
*)
END_VAR
motor := (motor + start) * stop;(* get the motor output *)
END_FUNCTION
BAD
FUNCTION sample INPUT_VAR START:BOOL;STOP:BOOL; END_VAR OUTPUT_VAR MOTOR:BOOL; END_VAR MOTOR:=(MOTOR+START)*STOP;END_FUNCTION
Figure 262 A Syntax and Structured Programming Example
331
19.2.1 Elements of the Language
ST programs allow named variables to be defined. This is similar to the use of symbols when programming in ladder logic. When selecting variable names they must begin with a letter, but after that they can include combinations of letters, numbers, and some symbols such as '_'. Variable names are not case sensitive and can include any combination of upper and lower case letters. Variable names must also be the same as other key words in the system as shown in Figure 263. In addition, these variable must not have the same name as predefined functions, or user defined functions.
Invalid variable names: START, DATA, PROJECT, SFC, SFC2, LADDER, I/O, ASCII, CAR, FORCE, PLC2, CONFIG, INC, ALL, YES, NO, STRUCTURED TEXT
Valid memory/variable name examples: TESTER, I, I:000, I:000/00, T4:0, T4:0/DN, T4:0.ACC
Figure 263 Acceptable Variable Names
When defining variables one of the declarations in Figure 264 can be used. These define the scope of the variables. The VAR_INPUT, VAR_OUTPUT and VAR_IN_OUT declarations are used for variables that are passed as arguments to the program or function. The RETAIN declaration is used to retain a variable value, even when the PLC power has been cycled. This is similar to a latch application. As mentioned before these are not used when writing Allen Bradley programs, but they are used when defining tags to be used by the structured programs.
Declaration
Description
VAR VAR_INPUT VAR_OUTPUT VAR_IN_OUT VAR_EXTERNAL VAR_GLOBAL VAR_ACCESS RETAIN CONSTANT AT
END_VAR
the general variable declaration defines a variable list for a function defines output variables from a function defines variable that are both inputs and outputs from a function
a global variable
a value will be retained when the power is cycled a value that cannot be changed can tie a variable to a specific location in memory (without this vari-
able locations are chosen by the compiler marks the end of a variable declaration
Figure 264 Variable Declarations Examples of variable declarations are given in Figure 265.
332
Text Program Line
Description
VAR AT %B3:0 : WORD; END_VAR VAR AT %N7:0 : INT; END_VAR VAR RETAIN AT %O:000 : WORD ; END_VAR VAR_GLOBAL A AT %I:000/00 : BOOL ; END_VAR VAR_GLOBAL A AT %N7:0 : INT ; END_VAR VAR A AT %F8:0 : ARRAY [0..14] OF REAL; END_VAR VAR A : BOOL; END_VAR VAR A, B, C : INT ; END_VAR VAR A : STRING[10] ; END_VAR VAR A : ARRAY[1..5,1..6,1..7] OF INT; END_VAR VAR RETAIN RTBT A : ARRAY[1..5,1..6] OF INT;
END_VAR VAR A : B; END_VAR VAR CONSTANT A : REAL := 5.12345 ; END_VAR VAR A AT %N7:0 : INT := 55; END_VAR VAR A : ARRAY[1..5] OF INT := [5(3)]; END_VAR VAR A : STRING[10] := `test'; END_VAR VAR A : ARRAY[0..2] OF BOOL := [1,0,1]; END_VAR VAR A : ARRAY[0..1,1..5] OF INT := [5(1),5(2)];
END_VAR
a word in bit memory an integer in integer memory makes output bits retentive variable `A' as input bit variable `A' as an integer an array `A' of 15 real values a boolean variable `A' integers variables `A', `B', `C' a string `A' of length 10 a 5x6x7 array `A' of integers a 5x6 array of integers, filled
with zeros after power off `A' is data type `B' a constant value `A' `A' starts with 55 `A' starts with 3 in all 5 spots `A' contains `test' initially an array of bits an array of integers filled with 1
for [0,x] and 2 for [1,x]
Figure 265 Variable Declaration Examples
Basic numbers are shown in Figure 266. Note the underline `_' can be ignored, it can be used to break up long numbers, ie. 10_000 = 10000. These are the literal values discussed for Ladder Logic.
number type
integers real numbers real with exponents binary numbers octal numbers hexadecimal numbers boolean
examples
-100, 0, 100, 10_000 -100.0, 0.0, 100.0, 10_000.0 -1.0E-2, -1.0e-2, 0.0e0, 1.0E2 2#111111111, 2#1111_1111, 2#1111_1101_0110_0101 8#123, 8#777, 8#14 16#FF, 16#ff, 16#9a, 16#01 0, FALSE, 1, TRUE
Figure 266 Literal Number Examples
Character strings defined as shown in Figure 267.
example
`' ` `, `a', `$'', `$$'
`$R$L', `$r$l',`$0D$0A' `$P', `$p' `$T', `4t' `this%Tis a test$R$L'
333
description
a zero length string a single character, a space, or `a', or a single quote, or a dollar
sign $ produces ASCII CR, LF combination - end of line characters form feed, will go to the top of the next page tab a string that results in `thisis a test'
Figure 267 Character String Data
Basic time and date values are described in Figure 268 and Figure 269. Although it should be noted that for ControlLogix the GSV function is used to get the values.
Time Value
25ms 5.5hours 3days, 5hours, 6min, 36sec
Examples
T#25ms, T#25.0ms, TIME#25.0ms, T#-25ms, t#25ms TIME#5.3h, T#5.3h, T#5h_30m, T#5h30m TIME#3d5h6m36s, T#3d_5h_6m_36s
Figure 268 Time Duration Examples
description examples
date values DATE#1996-12-25, D#1996-12-25 time of day TIME_OF_DAY#12:42:50.92, TOD#12:42:50.92 date and time DATE_AND_TIME#1996-12-25-12:42:50.92, DT#1996-12-25-12:42:50.92
Figure 269 Time and Date Examples
The math functions available for structured text programs are listed in Figure 270. It is worth noting that these functions match the structure of those available for ladder logic. Other, more advanced, functions are also available - a general rule of thumb is if a function is available in one language, it is often available for others.
334
:= + / * MOD(A,B) SQR(A) FRD(A) TOD(A) NEG(A) LN(A) LOG(A) DEG(A) RAD(A) SIN(A) COS(A) TAN(A) ASN(A) ACS(A) ATN(A) XPY(A,B) A**B
assigns a value to a variable addition subtraction division multiplication modulo - this provides the remainder for an integer divide A/B square root of A from BCD to decimal to BCD from decimal reverse sign +/natural logarithm base 10 logarithm from radians to degrees to radians from degrees sine cosine tangent arcsine, inverse sine arccosine - inverse cosine arctan - inverse tangent A to the power of B A to the power of B
Figure 270 Math Functions
Functions for logical comparison are given in Figure 271. These will be used in expressions such as IF-THEN statements.
>
greater than
>=
greater than or equal
=
equal
, >=, =, ................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.
Related download
- multiple choice trivia questions
- drama warm ups and circle games primary resources
- discrete and continuous random variables
- 19 structured text programming infoplc
- fast fourier transform matlab implementation
- homework 1 solutions
- glossary of musical terms
- practical techniques for searches on encrypted data
- corrections of the nist statistical test suite for
- hearing sheet music towards visual recognition of printed
Related searches
- advantages and disadvantages of structured interviews
- structured interview pros and cons
- advantages of structured interviews
- structured vs unstructured interviews
- structured interview definition
- disadvantages of semi structured interview
- structured and unstructured questionnaire
- structured vs semi structured interviews
- structured and unstructured interviews
- types of structured interviews
- structured unstructured and semi structured
- structured interview advantages