100% encontró este documento útil (1 voto)
39 vistas31 páginas

Guía de Programación en Texto Estructurado

El documento es un tutorial sobre la programación en Texto Estructurado (ST) según la norma IEC-61131-3, que explica su sintaxis, declaraciones, variables, y tipos de datos. Se compara el Texto Estructurado con otros lenguajes de programación de alto nivel y se discuten sus ventajas, como la legibilidad y la eficiencia en el espacio. Además, se abordan conceptos como comentarios, operadores, sentencias condicionales y bucles, así como ejemplos prácticos de programación en ST.

Traducido por

ScribdTranslations
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (1 voto)
39 vistas31 páginas

Guía de Programación en Texto Estructurado

El documento es un tutorial sobre la programación en Texto Estructurado (ST) según la norma IEC-61131-3, que explica su sintaxis, declaraciones, variables, y tipos de datos. Se compara el Texto Estructurado con otros lenguajes de programación de alto nivel y se discuten sus ventajas, como la legibilidad y la eficiencia en el espacio. Además, se abordan conceptos como comentarios, operadores, sentencias condicionales y bucles, así como ejemplos prácticos de programación en ST.

Traducido por

ScribdTranslations
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Texto Estructurado (TE)

PLC Programming with IEC-61131-3


Pedro​[Link]
Contenido del tutorial de texto estructurado
● ¿Qué es la programación en texto estructurado?
● El flujo de Texto Estructurado
● Sintaxis
○ Comentarios
● Declaraciones
● Variables y Etiquetas
○ Tipos de Datos
● Expresiones
● Operadores
○ Operadores Aritméticos
○ Operadores Relacionales
○ Operadores Lógicos
○ Operadores a nivel de bit
● Declaraciones y Operadores
● Sentencias Condicionales
○ Instrucciones IF
○ Sentencias CASE
● Bucles Repetitivos
○ Bucles FOR
○ Bucles WHILE
○ REPEAT Loops
● Software de Programación en Texto Estructurado
○ Beckhoff TwinCat 3
○ Codesys
● Conclusión
¿Qué es la programación en texto estructurado?
El texto estructurado es un lenguaje de programación de PLC definido por
​​ ​ en​IEC 61131-3​.
El lenguaje de programación es basado en texto, en comparación con el basado en gráficos de escalera.
diagrama.
Al principio, puede parecer mejor usar un lenguaje de programación gráfica para PLC
programación. Pero en mi opinión, eso solo es cierto para programas de PLC más pequeños. Al usar
un lenguaje de programación PLC basado en texto, tu programa ocupará mucho menos
espacio, y el flujo/lógica será más fácil de leer y entender.

Otra ventaja es que puedes combinar los diferentes lenguajes de programación.


Incluso puedes tener bloques de funciones que contengan funciones escritas en Texto Estructurado.

Lenguajes de programación de alto nivel

Si ya estás familiarizado con​lenguajes​ de programación de alto nivel​ como PHP, Python


y C, el Texto Estructurado te parecerá familiar. La sintaxis del Texto Estructurado es
desarrollado para parecerse a la sintaxis de un lenguaje de programación de alto nivel con bucles,
variables, conditions and operators.

Pero por otro lado, si nunca has visto un lenguaje de programación de alto nivel,
El Texto Estructurado puede ser una gran introducción a esos lenguajes y a la sintaxis utilizada.
Antes de leer este tutorial, te recomiendo que eches un vistazo breve a este PLC.
programa escrito en Texto Estructurado. Intenta ver si puedes entender la función de
Este programa. ¿Te suena familiar el Texto Estructurado?

PROGRAMA stexample
VAR
x : BOOL;
FIN_VAR
x := VERDADERO;
REPITE
x := FALSO;
HASTA x := FALSO;
FIN_REPETICIÓN;
FIN_PROGRAMA;
El Flujo de Texto Estructurado
Lo primero que debes aprender es la estructura o la sintaxis del Texto Estructurado. Cuando
si entiendes la estructura, entenderás cómo fluye tu programa
funciona.

Comenzando con el ejemplo anterior, puedes ver que todo el programa comienza con
PROGRAMA ​ y termina con E​ ND_PROGRAMA​Todo lo que está en medio es tu PLC
programa. Estas dos palabras son las palabras clave delimitadoras para las declaraciones de programa.
Más sobre palabras clave más tarde.

No te confundas acerca del END_PROGRAM, porque tu programa no terminará


completamente aquí. Cuando el PLC llega al END_PROGRAM, el ​ ​ciclo de escaneo de PLC​ voluntad
comienza de nuevo, y tu programa se repetirá.

Flujo de Programa de Texto Estructurado.

Esto es igual que la lógica de escalera o cualquier otro lenguaje de programación de PLC: se ejecutará sobre
and over again. And if you are used to programming microcontrollers, the
PROGRAM/END_PROGRAM será similar al bucle infinito en C.

Una cosa a agregar aquí es que, cuando estás programando en Texto Estructurado, tú
a menudo no se utiliza el constructo PROGRAM/END_PROGRAM. Ya se habrá hecho por el
El software de programación PLC, y el código que tienes que escribir, es lo que deseas dentro
esa construcción.

El control de flujo de los programas PLC escritos en Texto Estructurado es el mismo que en escalera
lógica​ejecutar una línea a la vez​.
Comenzando con la Sintaxis del Texto Estructurado
El​sintaxis
​ de un lenguaje de programación​ es la definición de cómo se escribe. Ser
más preciso, qué símbolos se utilizan para dar al lenguaje su forma y significado.

Como puedes ver en el ejemplo, el Texto Estructurado está lleno de dos puntos, puntos y comas y otros
símbolos. Todos estos símbolos tienen un significado y se utilizan para representar algo. Algunos
de ellos son operadores, algunos son funciones, sentencias o variables.

Todos los detalles de la sintaxis se explicarán a medida que avances a través de este tutorial. Pero
hay algunas reglas generales para la sintaxis del Texto Estructurado que debes conocer
acerca de.
No tienes que ​ ​memoriza toda la sintaxis​ reglas por ahora, como lo harás cuando consigas
tus manos en la programación:

● Todas las declaraciones están divididas por punto y coma.


● El texto estructurado consiste en sentencias y punto y coma para separarlas.
● El lenguaje no distingue entre mayúsculas y minúsculas.
● Aunque es una buena práctica usar mayúsculas y minúsculas parar​ legibilidad
​ ​, es
no es necesario.
● Los espacios no tienen función.
● Pero deberían usarse para la legibilidad.

Lo que realmente es importante entender aquí es que, cuando escribes un programa PLC en
El Texto Estructurado, tu computadora lo traducirá a un lenguaje que la PLC puede
entender.

Cuando subes el programa de texto estructurado PLC a tu PLC, la programación


el software que usas ​​ ​ tu programa. Esto significa que traducirá el código
a una especie de código de máquina
​ ​

El compilador utiliza la sintaxis del lenguaje de programación para entender tu


programa.
Por ejemplo: Cada vez que el compilador ve un ​ ​ ​fin de
se alcanza la declaración actual.
​ El compilador leerá todo hasta que alcance
un punto y coma, y luego ejecutar esa declaración.

Sintaxis de Comentarios

En los lenguajes de programación textuales tienes la capacidad de escribir texto que no se


ejecutado. Esta función se utiliza para hacer comentarios en tu código.
Los comentarios son buenos, y como principiante siempre deberías comentar tu código. Eso
hace que sea más fácil entender tu código más tarde.

En texto estructurado puedes hacer comentarios de una línea o comentarios de múltiples líneas.

Comentario de una sola línea:


// comentario

Comentario después del final de la línea ST:

<expresión>; /* comentario */
or
<declaración>; (* comentario *)

Comentario de múltiples líneas:


/* comenzar comentario
...
fin del comentario */

o
( * iniciar comentario
...
fin del comentario *)

¿Deberías comentar cada detalle?


A medida que vas mejorando cada vez más, deberías hacer cada vez menos comentarios.
sobre la funcionalidad. La razón de esto es​El Tao de la​ Programación​, que es un/a
libro sobre programación inspirado en el antiguo Tao Te Ching chino. O en realidad el
el principio detrás del libro es la razón.

Toma esta pequeña historia en el capítulo 2.4:


Un novato le preguntó al Maestro: "Aquí hay un programador que nunca diseña, documenta o prueba."
sus programas. Sin embargo, todos los que lo conocen lo consideran uno de los mejores programadores en el
mundo. ¿Por qué es esto?
El Maestro respondió: "Ese programador ha dominado el Tao. Ha ido más allá del
necesidad de diseño; no se enoja cuando el sistema se bloquea, sino que acepta el
universo sin preocupación. Ha ido más allá de la necesidad de documentación; ya no
le importa si alguien más ve su código. Ha ido más allá de la necesidad de pruebas; cada uno de sus
los programas son perfectos en sí mismos, serenos y elegantes, su propósito es evidente.
De verdad, él ha entrado en el misterio del Tao.

Aunque esto puede parecer exagerado, siempre deberías escribir tu código de manera que sea lo más
tan fácil como sea posible de entender. Incluso sin comentarios. Empiezas a hacer esto por
simplemente hacer que el código sea fácil de leer con espacios.

Pero por ahora, no deberías preocuparte por los comentarios. Haz tantos como quieras mientras
todavía eres un principiante.
Haciendo Declaraciones con Texto Estructurado
Así que, el Texto Estructurado consiste en​declaraciones​Pero, ¿qué son las declaraciones?
You probably know statements as something coming from humans. You can make a
una declaración, un presidente o incluso una empresa puede hacer una declaración. Y en PLC
programación, las declaraciones son casi las mismas.

A ​declaración​ estás diciéndole a la PLC qué hacer.

Tomemos la primera declaración como ejemplo:

X : BOOL;

El compilador leerá esto como​una declaración​, porque cuando llega a la


punto y coma, sabe que este es el final de esa declaración. Recuerda, las declaraciones son
separados por punto y coma. Esa es la regla principal de sintaxis de este lenguaje.

En ​ declaración que le estás diciendo al PLC que


​ ​ ​ llamado​ ​ y eso
la variable debería ser un Tipo BOOL.
​ ​
Uso de Variables en Texto Estructurado
Antes de profundizar en la declaración, déjame regresar a las palabras clave que mencioné.
antes. Como puedes ver, la variable X está definida entre dos otras palabras clave - ​VAR
yFIN_VAR
​ ​.

Tanto el PROGRAM/END_PROGRAM como el VAR/END_VAR son​construcciones​, lo que significa que


delimitan un área determinada en tu programa para algo específico. EL PROGRAMA
el constructo es donde se encuentra todo tu programa PLC, y el constructo VAR es donde defines
variables.

Los cuatro se llaman palabras clave, porque son palabras reservadas. No puedes usar esas.
palabras para cualquier otra cosa cuando estás programando en Texto Estructurado. El nombre de
tu programa no puede ser PROGRAM ni siquiera program (STL no distingue entre mayúsculas y minúsculas),
porque esa palabra solo se puede utilizar para hacer un constructo que delimite tu programa PLC.

De vuelta a​variables​...

Si conoces otros lenguajes de programación, es probable que sepas sobre


variables ya.
Pero si no lo haces, aquí tienes una introducción a las variables que probablemente te gustará:

Una variable es un lugar donde puedes almacenar datos.

Dependiendo del tipo de datos que quieras almacenar, hay varios ​tipos de datos
disponible. Los diferentes tipos de datos se llaman tipos de datos. Por ejemplo, si tienes un
variable donde deseas almacenar ya sea ​ ​o ​ ​ ​BOOL
tipo.
El tipo BOOL es un ​ ​ ​
valor(Verdadero o Falso).

Ahora, eso eran dos cosas sobre las variables. Tienen un cierto tipo de datos, y ellos
contiene un valor de ese tipo de dato. Pero hay una cosa más que puedes controlar en tu
variables. El nombre de la variable.

Para facilitarte el uso de tus variables a lo largo de tu programa PLC, todas ellas
tienen nombres. Cuando defines una variable en la construcción VAR, comienzas dándole el
el nombre de la variable:

X : BOOL;

Esta declaración creará una variable llamada X, con un tipo de dato BOOL.

Ten en cuenta que cuando estás programando con algún software de PLC como Siemens STEP
7 o Rockwell no utilizarás VAR/END_VAR para declarar variables. En su lugar, las variables
a menudo se les llama etiquetas o símbolos, y aunque estás programando en Estructurado
Text, you declare them visually (like in the image below) or in a function block.

¿Variables, Etiquetas o Símbolos?

Una última cosa que agregar aquí es que las variables a menudo se llaman​etiquetas​ en programación PLC.
En el software de programación PLC Studio 5000 Logix Designer para PLC de Allen Bradley,
las variables se llaman etiquetas. Pero si estás programando en versiones anteriores de SIMATIC
El software de programación STEP 7 para PLC de Siemens, las variables se llaman símbolos. En el
Las versiones más recientes de STEP 7 (desde la versión 11 del TIA Portal) llaman a las variables etiquetas.

Las variables del SIMATIC STEP 7 TIA Portal se llaman etiquetas PLC.

Pero no importa qué variables se llamen, siempre tienen la misma función. Y con
Software de programación IEC 61131-3 como STEP 7, Codesys o Studio 5000, el estándar
los tipos de datos siempre estarán disponibles.

Tipos de datos en texto estructurado


Dependiendo de la marca de PLC que estés utilizando, tendrás algunos tipos de datos diferentes
disponible. En un PLC Siemens tienes​tipos ​ de datos en STEP 7​ disponibles que son similares a
los estándares en IEC 61131-3. Pero también tendrás otros tipos de datos que solo se utilizan en
PLC de SIEMENS como el S5TIME.

Todos los tipos de datos estándar están definidos por la organización PLCOpen y son
parte de los lenguajes de programación de PLC. Cada software de programación de PLC con
Structured Text has these data types included. In the IEC standard the data types are
dividido en dos categorías: ​ ​ y​tipos de datos derivados​.
Tipos de datos elementales
● Números enteros
● Puntos flotantes
● Tiempo
● Cadenas
● Cadenas de bits

Bajo cada tipo de dato elemental hay varios ​ ​ disponible. Estos


¿Están los tipos de datos definidos en
​ ​

Números enteros:
Datos IEC Format Rango
Tipo

SINT Entero Corto -128 ​ ​ 127

INT Entero -32768 ...



32767

DINT Doble Entero -2^31 ​ ​ 2^31-1

LINT Entero largo -2^63 ​ ​ 2^63-1

USINT Corto sin signo 0 ​ ​ 255


Entero

UINT Entero sin signo 0 ​ ​ 2^16-1

LDINT Doble Largo 0 ​ ​ 2^32-1


Entero

ULINT Entero largo sin signo 0 ​ ​ 2^64-1


Entero

Puntos flotantes:
Datos IEC Formato Rango
Tipo

REAL Números Reales ±10^±38

LREAL Real largo ±10^±30


Números 8

Hora:
Tipo de Datos IEC Formato Use
TIEMPO Duración de tiempo después T#10d4h38m57s12ms
un evento TIEMPO#10d4h38m

FECHA Fecha del calendario D#1989-05-22


FECHA#1989-05-22

TIME_OF_DAY Hora del día TOD#14:32:07


TIME_OF_DAY#14:32:07.77

DATE_AND_TIME Date and time of day DT#1989-06-15-13:56:14.77


DATE_AND_TIME#1989-06-15-13:56:14
.77

Strings:
Datos IEC Formato Rango
Escribe

CADENA Carácter Mi
Cadena cadena

Cadenas de bits:

Datos IEC Formato Rango


Tipo e

BOOL Booleano 1 bit

BYTE Byte 8 bits

PALABRA Palabra 16
bits

DWORD Doble 32
Palabra bits

LWORD Palabra Larga 64


bits

Tipos de datos derivados


● Tipos de datos estructurados
● Tipos de datos enumerados
● Tipos de datos de sub-rangos
● Tipos de datos de matriz

Los tipos de datos derivados son tuyos. ​ ​


se construyen haciendo una construcción de las palabras clave
la palabra clave es el tipo de dato derivado que deseas declarar.
Todos estos diferentes tipos de datos pueden parecer un poco abrumadores por ahora. Especialmente si
no has utilizado un lenguaje de programación textual antes. Pero no hay necesidad de
preocuparse.
Por ahora, solo tienes que recordar algunos de ellos para comenzar a programar con
Texto Estructurado. A medida que mejoras y tus programas se vuelven más complicados, tú
aprende gradualmente sobre más tipos de datos a medida que los uses. Lo que es importante aquí es que

no avanzas demasiado rápido​Quieres hacer bien lo básico.

Como puedes ver, los diferentes tipos de datos pueden contener diferentes formatos de datos y así ...
valores diferentes.

¿Pero cómo pones los valores en las variables? ¿Y cómo usas las variables?
Con sentencias y operadores.
Operadores y Expresiones en STL
Lo siguiente que deberías saber es ​operadores​. Los operadores se utilizan para
manipular datos es parte
​ de casi cualquier lenguaje de programación. Esto nos lleva a
la segunda cosa que debes saber sobre -expresiones
​ ​.

Al igual que los operadores, las expresiones son una parte crucial de los lenguajes de programación.
Una expresión es un constructo que, cuando se evalúa, produce un valor ​.
​ ​ ​ ​ ​

Esto significa que cuando el compilador compila una expresión, evaluará el


expresa y reemplaza la declaración con el resultado.

Toma este ejemplo con las dos variables ​ ​y ​B​.


A​ contiene el valor10y contiene
​ ​ ​8​ ​. ​

A+B

El resultado de esta expresión es ​18​Así que en lugar de A+B, el compilador insertará el valor
18.

Un ​ están compuestos de
​ ​ ​ y​operandos​.

¿Cuáles son los operadores y los operandos?

Dado que acabas de ver un ejemplo de una expresión, acabas de ver tanto un operador como
dos operandos. A y B son ambos operandos y el + es un operador.

Expresiones de lenguaje de programación con operandos y operadores.


Recuerda que los operadores se utilizan para manipular datos. Eso es exactamente lo que es el +.
está haciendo. Está tomando el valor de la variable A y sumándolo al valor en B.
El + también se llama el operador de adición porque la operación es la adición.

Operadores
Hay varios operadores disponibles en Texto Estructurado. Nuevamente, la IEC 61131-3 describe
todos los operadores estándar en el lenguaje de Texto Estructurado:

Operación Símbolo Precedencia


e

Paréntesis (expresión Más alta


ión n)

Función MAX(A,B)
Evaluación

Negación -
Complemento NO

Exponentiación
n

Multiplicar *
Divide /
Módulo MOD

Agregar +
Restar -

Comparación <, >, <=, >=

Igualdad =
Desigualdad <>

Y Booleano &
YY

Booleano XOR
O exclusivo

Booleano O O Más bajo

Todos los operadores en la tabla anterior están ordenados después de


​precedencia​Esto también se llama
orden de operacionesy puede
​ que lo conozcas de las matemáticas.
El orden de las operaciones es el orden en el que se ejecutan las operaciones o
calculado. Solo echa un vistazo a esta expresión:

A + B * MAX(C, D)

¿Cómo será evaluada esta expresión por el compilador?

Como puedes ver en la tabla de operadores, el operador con la mayor precedencia es


paréntesis. Esto significa que lo primero que se evaluará es todo en
(C, D)

Pero dado que MAX(C, D) es en realidad una función, podemos bajar una fila en la tabla para
evaluación de funciones.

Entonces, en la expresión anterior, lo primero que se evaluará es la función:


MAX(C, D). La función devolverá (reemplazar la función) con la respuesta. Lo cual en este
el caso es el más alto de las dos variables C y D.

Imaginemos que C es el resultado. La expresión ahora se verá así:

A+B*C

Ahora, puedes bajar por la tabla, hasta que llegues a una fila con el siguiente operador
utilizado en esta expresión.
Quedan dos operaciones: multiplicar y sumar. Pero dado que multiplicar tiene una prioridad más alta
precedencia, que será la primera en evaluarse.
B * C viene primero y luego el resultado se suma a A.
Cada vez que se evalúa una expresión, la evaluación sigue el orden de precedencia
como en la tabla anterior.

4 tipos de operadores, 4 tipos de expresiones


Los operadores utilizados para expresiones en Texto Estructurado se pueden dividir en cuatro
grupos. Cada grupo de operadores tendrá su función específica y producirá un específico
tipo de dato.
1. Operadores Aritméticos
2. Operadores Relacionales
[Link] Lógicos
4. Operadores a nivel de bit

Operadores Aritméticos
Todo el​operadores aritméticos​ a menudo se les llama simplemente operadores matemáticos porque
Representan matemáticas. El resultado siempre será el resultado matemático del
expresión.

● +(agregar)

● - ​ sustraer/negación
● * ​ multiplicar
● ** ​ (exponente)
● dividir

● MOD(módulo
​ dividir)

Ejemplo:
15 MOD 4
Result:
3

Operadores Relacionales
Para comparar o encontrar una relación entre dos valores, puedes usar uno de los​relacional
operadores ​Se utilizan para comparación y el resultado será un valor booleano
(tipo BOOL), ya sea TRUE o FALSE.
● = ​ (igual)
● < ​ (menos que)
● <= ​ (menor o igual)
● >(mayor
​ que)
● >= ​ (mayor o igual que)
● <> ​ no igual

Ejemplo:
TEMPERATURE := 93.9;
TEMPERATURA >= 100.0

Result:
FALSO

Operadores Lógicos
Si quieres comparar valores booleanos (BOOL) y hacer algo de lógica con ello, tú
tienen que usar operadores lógicos. Estos operadores también producen un valor booleano de VERDADERO o
​ ​
FALSO como resultado de la expresión.
● &orAND
​ ​
●O
● XOR
● NOT

Ejemplo:
LIMIT_SWITCH1 := TRUE;
LIMIT_SWITCH2 := FALSE;
LIMIT_SWITCH1 O LIMIT_SWITCH2

Result:
VERDADERO
Operadores a nivel de bits

El último grupo de operadores se llama​operadores a nivel de bits​ porque las operaciones son
realizado a nivel de bits. Simplemente significa que se realiza una operación lógica para cada bit de
dos números. El resultado es un nuevo número - el resultado total de las operaciones a nivel de bits.
● & ​ o​Y
●O
● XOR
● NO

Example:
15 Y 8

Result:
15

Dado que esta operación es a nivel de bits, el cálculo se realizará por bit. Así que para entender qué es
aquí, tienes que convertir los números en valores binarios:

15 = 1111
8 = 1000

Ahora cada bit en el número 1111 (15) se puede usar en una operación lógica con el
otro número 1000 (8):

1111 Y 1000
Bit 1111 1000 (8) Resultado
número (15) t

0 1 1 1

1 1 0 0

2 1 0 0

3 1 0 0
Operadores y Declaraciones
Así que, en la sección anterior aprendiste que​expresiones evaluadas​. Esto significa que todo
las expresiones darán el resultado y el compilador reemplazará la expresión con el
resultado.
Pero, ¿qué pasa si quieres que el PLC (compilador) no evalúe algo, sino que ​HACER
¿algo?
Las declaraciones son la respuesta.

Como mencioné anteriormente en este artículo, las declaraciones son lo que le estás diciendo al PLC que haga.
Hazlo. Es la instrucción que le das al PLC para que tome acción.
Si haces una expresión que produce un resultado, eso no hará mucho. Las expresiones son todas
los cálculos y si no usas los resultados de esas expresiones en alguna acción
(declaraciones), será como comprar comestibles pero no cocinar.

Echemos un vistazo a las acciones o declaraciones que puedes hacer en Textos Estructurados.

Declaración de Asignación y Operador


Hay varias declaraciones disponibles en Texto Estructurado. Todas ellas representan un
acción ​ o un​condición​.

Comenzando con acciones, la declaración más fundamental en Texto Estructurado es la


assignmentstatement.
​ Statements are also described in the IEC standard developed
por PLCOpen, y la primera que enumeran es la declaración de asignación.

Así es como se ve una declaración de asignación:

A := B;

¿Qué le dice esta declaración al compilador que haga?

Tomar el ​ ​ de la variable ​ ​ y colócalo en la variable ​A​.

El PLC es ​ ​ un valor a una variable. Aquí hay un ejemplo aún más simple:

A := 10;

Esta declaración tomará el valor 10 y lo pondrá en la variable A. O dicho de otra forma


de la manera - la variable A se le asignará el valor 10.

Dado que el valor de A ahora es 10, podemos hacer otra declaración, pero esta vez con un
expresión

B := A + 2;
Cuando esta línea de código se compila, la expresión A + 2 se evaluará a 12. El
el compilador reemplazará la expresión con el resultado 12. La declaración ahora se verá
así al compilador:

B := 12;

Lo que sucederá ahora es que el compilador asignará el valor 12 a la variable B.

Cómo será evaluada una declaración de asignación con una expresión por el compilador.

Lo último es que el símbolo := se llama el​operador de asignación​. Sí, es un


operador al igual que los operadores utilizados en expresiones. A menudo, esos dos tipos de
los operadores se confunden entre sí y se utilizan incorrectamente.

Un error común es usar el operador de igualdad (=) en lugar de la asignación


operador (:=). Pero a pesar de que se parecen, hay una gran diferencia.

Toma estos dos ejemplos:

A=B
A := B;

La primera línea es una expresión. Dado que esto es una expresión, el operador se utilizará para
evalúa la línea. El operador de igualdad evalúa de la siguiente manera:
Si el lado derecho y el lado izquierdo son iguales, se evalúa como VERDADERO o 1. Si no, se entenderá como
evaluar a FALSO o 0.
Con algunos otros operadores, el operador de igualdad es un ​operador relacional​. Todo el
los operadores relacionales se evaluarán como VERDADERO o FALSO.

En la segunda línea verás una declaración. Esta vez se utilizará el operador para un
acción en lugar de una evaluación. La asignación es la acción, y aquí el valor de A será
se le dará el valor de B.

Por fin, siempre puedes identificar una declaración por el punto y coma. Una vez más, el
semicolon is how the compiler knows when the end of a statement is reached.
Puedes tener todo tipo de expresiones en tus declaraciones de asignación, desde simples
valores como números a variables y funciones. Porque todas las expresiones serán
evaluado primero, y luego, el resultado de esa evaluación se utilizará en la asignación
declaración.
Declaraciones Condicionales
Bueno, la declaración de asignación era bastante simple: Toma el valor del lado derecho y
almacénalo en lo que está en el lado izquierdo.

Pero hagamos un poco de zoom y pensemos en los programas de PLC. Un programa de PLC es una parte de

​ ​lógica de PLC​) y por lo tanto tiene que tomar algunas decisiones. Por eso usamos
lógica (yo lo llamo
un PLC u otro controlador. Para decidir y actuar sobre el estado actual.
Simplificado: El PLC examinará los estados de todas las entradas y utilizará su programa PLC.
decidir qué resultados establecer.

Entonces, en tu programa PLC necesitas una forma de tomar decisiones. Esto nos lleva a
sentencias condicionales.

Las declaraciones condicionales se utilizan precisamente para eso:


​Tomar decisiones.
Hay dos formas de hacer declaraciones condicionales en Texto Estructurado: ​Declaraciones IF
y declaraciones
​ CASE ​.

Instrucciones IF
Creo que Bill Gates es mejor explicando la declaración IF que yo. Al menos él puede
explícalo en poco más de 1 minuto en este gran video de [Link]. Puedes omitir el
video si estás familiarizado con las sentencias IF, aunque te recomendaría que tú
míralo.

YOUTUBE

Las declaraciones IF son decisiones con condiciones.

Pero aunque las declaraciones IF son bastante simples de entender, aún tienes que saber
cómo darle al PLC las declaraciones condicionales. Esto nos lleva de vuelta a la sintaxis.
Hay una sintaxis especial para las declaraciones IF. Esto significa que tienes que escribirlo en un
una forma determinada para que el compilador lo entienda. Porque así como se utilizan los punto y coma
Para finalizar sentencias, hay palabras clave especiales para hacer una declaración IF.

Así es como se ve la sintaxis para las declaraciones IF en STL:

SI [expresión booleana] ENTONCES



ELSIF [expresión booleana] ENTONCES

ELSE

FIN_SI;
Observa que la sintaxis de las declaraciones IF se parece mucho al inglés simple. El primero
la línea contiene dos palabras clave: SI y ENTONCES. Entre esas dos palabras clave están los
condición, que es una expresión. Pero no cualquier expresión. Una expresión booleana.

Expresiones Booleanas y Numéricas


Puedes dividir las expresiones en dos grupos dependiendo de lo que produzcan.
Las expresiones booleanas se evalúan a un valor de tipo BOOL, VERDADERO o FALSO.

Aquí hay un ejemplo de una expresión booleana:

1=1

Esta expresión evaluará o dará como resultado VERDADERO. Una expresión booleana también podría verse
así:

1>2

Pero esta vez la expresión booleana evaluará como FALSO, ya que 1 no es mayor que
2.
Las expresiones numéricas evalúan a un número entero o un número de punto flotante.

Una expresión numérica podría verse tan simple como esta:

13.2 + 19.8

Esta expresión se evaluará al número de punto flotante 33.0, y por lo tanto es un


expresión numérica.

Las expresiones booleanas se utilizan en las declaraciones IF como condiciones.

SI​ la expresión booleana evalúa a VERDADERO,​ENTONCES​ las siguientes declaraciones serán


ejecutado.

El PLC solo ejecutará las declaraciones después de la palabra clave ENTONCES, si la expresión
evalúa a VERDADERO. Esto se ilustra con el siguiente ejemplo:

A := 0;
SI A = 0 ENTONCES


FIN_SI;

La línea número 3 solo se ejecutará si A es igual a 0. En este caso, lo será. Se asigna A 0.


a la variable A en una declaración justo antes de la declaración IF.

¿Ves lo que acabo de hacer aquí?


En el ejemplo anterior se tomó una decisión dependiendo del valor de una variable. Ahora,
aunque esta fue una decisión bastante simple, ya podemos traducir eso en real
Programación de PLC.

Supongamos que quieres hacer un programa que establezca una salida de PLC dependiendo del estado
de una entrada. Con una simple declaración IF puedes hacer eso en Texto Estructurado:

SI ENTRADA1=VERDADERO ENTONCES


FIN_SI;

Aunque este ejemplo es solo una parte de un programa más grande (la variable INPUT1
representa una entrada y OUTPUT1 una salida) ilustra cómo se toma la decisión para un PLC
se puede generar una salida. La variable OUTPUT1 solo se establecerá en TRUE SI la INPUT1
la variable es VERDADERA.

Dado que tanto las variables INPUT1 como OUTPUT1 son del tipo BOOL, la primera línea en
la declaración también podría verse así:

SI ENTRADA1 ENTONCES

Escribir la expresión como "INPUT1" seguirá evaluándose como VERDADERO, cuando la variable sea
VERDADERO.

¿Qué MÁS SI no?


Por ahora, has visto una declaración IF simple, donde las declaraciones solo se ejecutan si un
la expresión es VERDADERA. Si esa expresión evalúa a FALSO, las declaraciones simplemente
no ser ejecutado.

¿Pero qué pasa si tu programa PLC requiere múltiples condiciones?

Por supuesto, podrías escribir esto como múltiples declaraciones IF individuales. Pero estructurado
El texto tiene más opciones para las declaraciones IF.
Al igual que la mayoría de los otros lenguajes de programación, puedes usar el
​ ​ y​SINO
palabras clave para múltiples condiciones en la misma declaración IF.

Tanto ELSIF como ELSE son opcionales en las declaraciones IF, pero así es como se ve la sintaxis
como:

SI [expresión booleana] ENTONCES



ELSIF [expresión booleana] THEN

ELSE

FIN_SI;

Si la expresión booleana en la línea 1 es FALSA, las declaraciones a continuación simplemente no estarán


ejecutado. En su lugar, el compilador verificará la expresión booleana después del ELSIF
palabra clave.
Aquí funciona igual que con la palabra clave IF: Si la expresión booleana después de la
la palabra clave es verdadera, se ejecutarán las siguientes declaraciones.

Por fin es el​ELSE​ palabra clave. Funciona como una opción predeterminada para tu declaración IF. Si todos los
Si las expresiones booleanas IF y ELSIF se evalúan como FALSAS, las declaraciones después de la
La palabra clave ELSE se ejecutará.

Cómo el PLC ejecutará instrucciones IF en Texto Estructurado.

Combinando operadores para condiciones avanzadas


Además de crear múltiples condiciones, también puedes ampliar tus condiciones para incluir
múltiples variables. Puedes combinar múltiples expresiones, lo que se hace típicamente con un
operador lógico, para obtener una expresión más grande.
¿Qué pasa si quieres que no solo 1 sino 2 entradas sean VERDADERAS antes de establecer una salida?
la expresión se vería así:

SI (ENTRADA1) Y (ENTRADA2) ENTONCES


FIN_SI;
Ahora la expresión se evaluará como VERDADERA, solo si INPUT1 e INPUT2 son VERDADERAS.

Declaraciones CASE
La segunda forma de tomar decisiones en Texto Estructurado es con sentencias CASE.
Esencialmente, las declaraciones CASE y las declaraciones IF son lo mismo. Pero las declaraciones CASE

usar​expresiones numéricas​ en lugar de expresiones booleanas. Las declaraciones CASE también tienen
una sintaxis ligeramente diferente, que la hace más adecuada para ciertos propósitos.

Así es como se ve la sintaxis para las sentencias CASE en Texto Estructurado:

CASO [expresión numérica] DE


result1: <statement>;

ELSE

FIN_DEL_CASO;

En las declaraciones CASE hay solo 1 expresión. El resultado de esa expresión es entonces
se utiliza para decidir qué declaraciones se ejecutan.

Como opción predeterminada, las sentencias CASE también tienen una palabra clave ELSE. Las sentencias después de
esa palabra clave se ejecuta solo si ninguno de los resultados (o casos) coincide con el resultado de
la expresión numérica.
Aquí hay un ejemplo muy simple:

PROGRAM_STEP := 3;
CASO PASO_DE_PROGRAMA



ELSE

FIN_DEL_CASO;

Aunque este es un ejemplo muy simple (la variable tiene un valor fijo) el ejemplo
te muestra cómo tomar una decisión dependiendo del resultado de una expresión numérica.
En este ejemplo, la expresión numérica es simplemente el valor de la variable, 3. Si
podría ser cualquier expresión que evalúe a un valor entero o de punto flotante.
Iteración con bucles repetitivos
Probablemente una de las características más poderosas en Texto Estructurado es la capacidad de hacer
bucles que repiten líneas de código.

Una vez más,​[Link]​ ha hecho una de las mejores introducciones a los bucles repetitivos. Esto
El fundador de Facebook, Mark Zuckerberg, utiliza un poco más de un minuto para explicar
bucles repetitivos.

YOUTUBE

En relación con la programación de PLC, los bucles se pueden utilizar para muchos propósitos diferentes. Tú
podría tener una función o un conjunto de declaraciones que desea ejecutar un cierto
cantidad de veces o hasta que algo detenga el bucle.

En Texto Estructurado encontrarás 3 tipos diferentes de bucles repetitivos:


[Link]
[Link]
[Link]

Común para todos los tipos de bucles es que tienen una condición para repetir o
deteniendo el bucle. La condición en ​ ​y ​ ​ decide si el bucle
debería repetir
​ o no. Pero para
​ el bucle REPEAT
​ ​ ​ ASTA condición​,
H
y decidirá si el bucle debería ​ ​.

Bucles FOR
El primer bucle es el bucle FOR y se utiliza para repetir un número específico de veces. FOR
los bucles tienen algunas otras palabras clave. A, POR, HACER y FIN_DE_BUCLE.

Esta es la sintaxis de los bucles FOR en Texto Estructurado:

PARA contar := valor_inicial HASTA valor_final POR incremento HACER


FIN_CICLO;

A primera vista, la primera línea parece un poco complicada, pero no lo es si la divides en partes:

PARA
Palabra clave que inicia la declaración del bucle FOR.

contar := valor_inicial
This assignment operation is where you set the initial value you want to count from.
Count es el nombre de la variable y initial_value es el valor con el que quieres empezar a contar
de.

A
Palabra clave antes del valor hasta contar.

final_value
Este es el valor al que quieres contar. Coloca 100 aquí y tu bucle contará hasta
100

POR
Palabra clave para usar un valor incremental personalizado.

incremento
El valor del cual deseas aumentar el conteo cada vez que se ejecute el bucle. Si tú
establecer el incremento a 10 y el conteo a 100, el bucle se ejecutará 10 veces.

HACER
<statement>;
FIN_FOR;
Esta última parte entre la palabra clave DO y END_FOR son las declaraciones que deseas
ejecutar cada vez que se ejecute tu bucle. Estas instrucciones se ejecutarán tantas veces
mientras los bucles se repiten.

Dado que los bucles FOR solo pueden tener una cantidad de tiempo preestablecida para repetir, eso es lo que
se utilizan para. En la programación de PLC esto podría ser algo tan simple como un elemento
eso tiene que ser pintado/seco cuatro veces. Un bucle FOR que cuenta hasta cuatro funcionará justo
bien aquí.

Por fin puedes usar una declaración IF con la palabra clave E​ XIT​ detener el bucle antes del
cuenta. Puedes agregar una condición booleana que si es VERDADERO detiene el bucle.

SI [expresión booleana] ENTONCES



FIN_SI;

Bucles WHILE
El bucle while es un poco diferente del bucle FOR, porque se utiliza para repetir el
bucle mientras algunas condiciones son VERDADERAS. Un bucle WHILE se repetirá mientras una
la expresión booleana evalúa a VERDADERO.

Aquí está la sintaxis de los bucles WHILE:

MIENTRAS [expresión booleana] HACER


<statement>;
FIN_MIENTRAS;

Entre las palabras clave WHILE y DO se encuentra la expresión booleana. Si esa booleana
la expresión evalúa a VERDADERO, todas las declaraciones hasta la palabra clave END_WHILE serán
ejecutado.
Cuando se alcanza END_WHILE, la expresión booleana se evaluará de nuevo. Esto
sucede una y otra vez hasta que la expresión no evalúe a VERDADERO. Pero para
haga que el bucle se detenga en un punto, debe cambiar un valor en el booleano
expresión. Solo de esa manera puede la expresión booleana pasar de VERDADERO a FALSO.

Aquí hay un ejemplo de un bucle WHILE en Texto Estructurado:

contador := 0;
MIENTRAS contador < 10 HACER
contador := contador + 1;

FIN_MIENTRAS;

Si miras la tercera línea verás cómo el bucle eventualmente dejará de repetirse.


La expresión booleana utiliza la variable contador y comprueba si su valor es menor que
o igual a 10. Pero dado que el valor del contador se establece en 0 justo antes del bucle WHILE,
la expresión booleana será VERDADERA a menos que se cambie el contador.

Eso es lo que está sucediendo en la línea 3. Esta es la primera declaración en el bucle WHILE, y
con las otras declaraciones, se ejecutan cada vez que se repite el bucle. En la tercera línea
el valor de la variable contador se incrementa en 1. Se puede decir que el incremental
el valor es 1.
En el ejemplo anterior, el bucle se repetirá 10 veces. Cuando el valor de count alcance
10, la expresión booleana se evaluará como FALSA (porque 10 no es menor que 10)
y el bucle se detendrá.

También puedes usar la palabra clave EXIT en el bucle WHILE para dejar de repetir el bucle.
antes de que la expresión booleana sea FALSA. La sintaxis es una declaración IF con el EXIT
palabra clave en. Colóquela en cualquier lugar entre las palabras clave DO y END_WHILE.

SI [expresión booleana] ENTONCES



FIN_SI;

Bucles REPEAT
El último tipo de bucle repetitivo en el Texto Estructurado es el bucle REPEAT. Funciona el
modo opuesto del bucle WHILE. Este bucle dejará de repetirse cuando un booleano
la expresión es VERDADERA.

En ST, la sintaxis para los bucles REPEAT se ve así:

REPITE

HASTA [expresión booleana]
FIN_REPETIR;
Observe aquí que, dado que la expresión booleana en este tipo de bucle está después del
las declaraciones, las declaraciones siempre se ejecutarán al menos una vez. Esto es útil si
quieres que una acción suceda una vez y luego, con una condición, decidir si eso
la acción debería ocurrir de nuevo.

Al igual que con los bucles WHILE, tienes que cambiar un valor en la expresión booleana.
a lo largo del camino, para hacer que el bucle deje de repetirse. Esto se puede hacer incrementando el
valor de una variable (para contar), o se puede hacer con una declaración condicional como un IF
declaración dentro del bucle.
Software de programación en texto estructurado
Ahora, incluso si has leído este artículo en detalle, solo has comenzado a aprender
Texto Estructurado. Lo que deberías hacer ahora es ensuciarte las manos y empezar a usar
Texto Estructurado.

Debes escribir algunos programas PLC. Porque esa es la manera de realmente aprender.
Texto estructurado y dominar el lenguaje de programación.

Beckhoff TwinCat 3
Uno de los mejores programas de software de programación PLC cuando deseas aprender
​ eckhoff
El Texto Estructurado esB ​ TwinCat 3​El software de programación de Beckhoff es
totalmente compatible con todos los lenguajes de programación PLC IEC 61131-3, incluyendo
Diagrama de Escalera (LD) y Texto Estructurado (ST).

Para los aprendices, la mayor ventaja de TwinCat 3 es que incluye un simulador.


No necesitas comprar un PLC, solo usa el​PLC suave​.

En YouTube hay una serie de videos gratis de ​​ ​Deberías seguir


¡él! Incluso hizo una serie de videos sobre suImpresora​ ​ 3D DIY​
te comenzaré con la programación en texto estructurado PLC en TwinCat 3.

YOUTUBE

Codesys
Es posible que haya oído hablar de Codesys antes. Es un entorno de software de código abierto para
Programación PLC IEC 61131-3. El código abierto simplemente significa que es gratuito para descargar.
lo que lo hace perfecto para los estudiantes.

Aunque no hay muchos recursos excelentes sobre cómo usar Codesys para principiantes,
Brian Hobbyha​ creado algunos increíbles videos tutoriales.

The first video shows you how to create a new project in Codesys. A little Ladder Logic
también está incluido en el video.

YOUTUBE

El segundo video te ayuda a programar en Texto Estructurado con Codesys.

YOUTUBE
Conclusión
Aprender un nuevo lenguaje de programación puede ser todo un desafío. Pero para los principiantes
hay algunas cosas muy básicas que siempre debes tener en cuenta:
● El aprendizaje toma tiempo
● Acabas de empezar. Date un tiempo para aprender el idioma (sintaxis,
funciones, ...)
● Practica tanto como sea posible
● Intenta hacer tantos programas y soluciones de PLC en Texto Estructurado como sea posible.
posible.
● Aprende de tus fracasos
● Cada vez que cometas un error, no te pongas triste. Aprende de ello y conviértete en un
mejor programador.
● Sigue aprendiendo
● Nunca dejes de leer, ver tutoriales y otros materiales de aprendizaje.
● Habla con otros programadores de PLC
● El último pero no menos importante es discutir en foros y hacer preguntas. Obtener
involucrarse y aprender de otros programadores de PLC.

Creo que la última parte es la más importante. Aprender de los demás con
experience can be the most effective way to learn, not just about the programming
idioma, pero cómo usarlo.

También podría gustarte