Módulo 3. Texto Estructurado

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 37

Estructura para el diseño de cursos virtuales

Versión 2. Agosto de 2016

MÓDULO N° 3: LENGUAJE TEXTO ESTRUCTURADO

INFORMACIÓN ESPECÍFICA DEL MÓDULO

Programa Especialización Tecnológica en Automatización


Industrial

Número y nombre del Módulo 3. Lenguaje Texto Estructurado


módulo
Duración del módulo Dos (2) semanas

Autor del diseño Luis Carlos Meneses Silva

Fecha de actualización [email protected]


Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

TABLA DE CONTENIDO

MÓDULO N° 3: LENGUAJE TEXTO ESTRUCTURADO .................................................................... 1


INFORMACIÓN ESPECÍFICA DEL MÓDULO ...................................................................................... 1
INTRODUCCIÓN AL MÓDULO N°3 ....................................................................................................... 4
COMPETENCIAS DEL MÓDULO N°3 Y ESTRUCTURA TEMÁTICA ........................................... 5
CONTENIDO DEL MÓDULO N°3 ............................................................................................................ 6
1. UNIDAD TEMÁTICA 1. DEFINICIONES Y CARACTERÍSTICAS DEL LENGUAJE
TEXTO ESTRUCTURADO .......................................................................................................................... 6
1.1. INTRODUCCIÓN ......................................................................................................................... 6
1.2. MARCO CONCEPTUAL ............................................................................................................. 6
1.2.1. Generalidades del lenguaje de programación (ST) ............................................. 6
1.2.2. Expresiones......................................................................................................................... 7
1.2.3. Operador y operando ...................................................................................................... 7
a. Operadores .......................................................................................................................... 7
b. Operando .......................................................................................................................... 11
1.2.4. Instrucciones ................................................................................................................... 11
1.3. EJEMPLOS .................................................................................................................................. 14
1.3.1. Ejemplo temporizador motores ............................................................................... 14
1.3.2. Ejemplo motor con alarma......................................................................................... 17
1.4. EJERCICIOS DE REFLEXIÓN ............................................................................................... 19
1.5. CONCLUSIONES....................................................................................................................... 20
1.6. MATERIAL DE ESTUDIO ...................................................................................................... 20
2. UNIDAD TEMÁTICA 2. DESARROLLO DE PROGRAMAS EN TEXTO ESTRUCTURADO
BAJO EL ESTÁNDAR IEC 61131-3 ..................................................................................................... 21
2.1. INTRODUCCIÓN ...................................................................................................................... 21
2.1.1. Programación con lenguaje Texto Estructurado ............................................... 21
Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

2.1.2. Visualización .................................................................................................................... 27


2.2. MARCO CONCEPTUAL .......................................................................................................... 30
2.2.1. Aplicación de programación. Máquina taladradora ......................................... 30
2.2.2. Visualización del estado de proceso....................................................................... 32
2.3. EJERCICIOS DE REFLEXIÓN ............................................................................................... 37
2.4. CONCLUSIONES....................................................................................................................... 37
2.5. MATERIAL DE ESTUDIO ........................................... ¡Error! Marcador no definido.
3. OBJETOS DE APRENDIZAJE / RECURSOS DIGITALES SUGERIDOS PARA APOYAR
EL MÓDULO..................................................................................... ¡Error! Marcador no definido.
4. ACTIVIDADES DE APRENDIZAJE DEL MÓDULO N°¡Error! Marcador no definido.
5. PLAN DE EVALUACIÓN DEL MÓDULO N°1 ............... ¡Error! Marcador no definido.
6. REFERENCIAS BIBLIOGRÁFICAS UTILIZADAS EN EL MÓDULO N°1............... ¡Error!
Marcador no definido.
Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

INTRODUCCIÓN AL MÓDULO N°3

Actualmente al hacer referencia a procesos industriales es importante resaltar la


automatización de los mismos. Debido a la fuerte demanda que se encuentra en el
mercado, por ejemplo, las grandes industrias han buscado migrar a procesos de
producción y administrativos de la nueva era digital en la cual nos encontramos. Donde
no se puede dejar de mencionar la presencia de PLC´s para el control de toda clase de
dispositivos, utilizando lenguajes como LD, SFC, FBD, ST, IL o STL.

En este módulo se aborda principalmente el lenguaje texto estructurado, utilizado en


la mayoría de las marcas comerciales de PLC’s, de tal forma, que inicialmente se
contextualiza al estudioso sobre las características principales, como se encuentra
normalmente implementada su estructura y cómo influye en este lenguaje la IEC
61131-3. Finalmente se ilustra el tema objeto de estudio, mediante la realización de
ejemplos prácticos, desarrollados en CODESYS V3.5.

El texto estructurado es un lenguaje fácil de comprender tanto para las personas que
están empezando en el mundo de la programación como para las personas que alguna
vez han programados en C o PASCAL. Como los demás lenguajes de programación
puede ser implementado en diferentes plataformas y aplicaciones.

Usualmente es utilizado en control industrial para la programación de PLC’s como se


mencionó anteriormente. Diseñado para expresar procesos llevando a cabo tareas
específicas dirigidas a dispositivos y ordenadores.

A comparación de los demás lenguajes utilizados en este ámbito, el lenguaje ST al igual


que LD permiten una mayor flexibilidad a la hora de manejar tipos de datos y cálculos
aritméticos, puesto que en ocasiones programar en interfaces gráficas implica cierto
tipo de limitaciones, como lo son, la implementación de algunos operadores y que los
programas podrían llegar a ser un poco más extenso.
Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

COMPETENCIAS DEL MÓDULO N°3 Y ESTRUCTURA TEMÁTICA

Competencias del módulo Estructura temática a abordar en el módulo


Reconoce las características del 1. Unidad temática 1: Definiciones y
lenguaje de texto estructurado características del lenguaje texto
que le permiten establecer las estructurado
instrucciones adecuadas para
desarrollar todo tipo de 1.1. Generalidades del lenguaje de
aplicaciones de manera libre, programación (ST)
comprimida y ordenada, de 1.2. Expresiones
acuerdo con lo estudiado en el 1.3. Operador y operando
módulo. 1.4. Instrucciones
1.5. Ejemplos de aplicación

2. Unidad temática 2: Desarrollo de programas


en texto estructurado bajo el estándar IEC
Desarrolla un programa en texto
61131-3
estructurado bajo el estándar IEC
61131-3, con el fin de dar solución
2.1. Aplicación de Programación. Máquina
a una situación de su cotidianidad,
taladradora.
utilizando CODESYS V3.5
2.2. Visualización del estado de proceso
Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

CONTENIDO DEL MÓDULO N°3

1. UNIDAD TEMÁTICA 1. DEFINICIONES Y CARACTERÍSTICAS DEL LENGUAJE


TEXTO ESTRUCTURADO

1.1. INTRODUCCIÓN

El lenguaje estructurado se puede definir como una herramienta que permite


programar la mayoría de las marcas de PLC’s disponibles en el mercado actual, por lo
cual, se considera de gran utilidad profundizar en este lenguaje, ya que a un nivel
industrial en muchas ocasiones no es posible trabajar con una marca en específico de
PLC ni se cuenta con la facilidad de cambiarse de marca, de tal forma, que el manejo de
este lenguaje podría ampliar las oportunidades laborales y brindar competencias que
destaquen a los futuros especialistas en tecnología en automatización industrial de la
UMB Virtual como más competitivos y versátiles en el campo laboral.

Por otro lado, y como se mencionó anteriormente (ST) es uno de los lenguajes que
permite mayor libertad a la hora de manejar cierto tipo de operaciones, por lo cual será
explicado de forma detallada la estructura del lenguaje de programación texto
estructurado (ST), sus características y su sintaxis en la presente unidad, ilustrando
mediante definiciones y ejemplos cada una de las expresiones e instrucciones posibles
a la hora de programar en este lenguaje.

1.2. MARCO CONCEPTUAL

1.2.1. Generalidades del lenguaje de programación (ST)


El lenguaje de texto estructurado es un lenguaje de alto nivel, diseñado para expresar
procesos, llevando a cabo tareas generalmente de tipo industrial, el cual cuenta con una
composición específica (Ver figura 1). Se puede decir que este lenguaje es uno de los
que permiten mayor libertad a la hora de programar un PLC a comparación de los
demás lenguajes que en su mayoría suelen ser más gráficos, lo cual representa una
debilidad ya que en ocasiones algunas expresiones se hacen difíciles de representar
gráficamente limitando al programador o en su defecto haciendo los programas más
extensos.
Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

Figura 1. Representación de una sección ST


Tomado de: http://www2.schneider-electric.com/resources

La estructura del lenguaje (ST) está basada en expresiones donde se encuentran


operando y operadores, e instrucciones como se muestra en la figura anterior. También
se pueden hacer llamadas a bloques de función (FB). Lo cual es muy aconsejable puesto
que escribir un programa en (ST) con el uso de los bloques de función facilita la
reutilización de código, reduciendo errores. El lenguaje (ST) tiene gran cantidad de
funciones disponibles facilitando el trabajo y desarrollo de los programas, además se
recomienda hacer una descripción mediante comentarios.

1.2.2. Expresiones
Una expresión es una construcción que devuelve un valor y se compone por un
operando y un operador. Estas expresiones se ejecutan en orden de prioridad de los
operadores, desde el más significativo hasta el menos significativo y así sucesivamente
hasta que se ejecuten todas las operaciones necesarias.

1.2.3. Operador y operando

a. Operadores

Como se mencionó anteriormente los operadores son los símbolos encargados de


ejecutar una operación aritmética, lógica o un procesamiento de función. Estos
operadores se ejecutan en orden jerárquico como se ilustra en la tabla 1.
Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

Tabla 1. Tabla de operadores y jerarquías


OPERADOR SIGNIFICADO JERARQUÍA
() Paréntesis 1
FUNCNAME Procesamiento de función 2
- Negación 3
NOT Complemento 3
** Potenciación 4
* Multiplicación 5
/ División 5
MOD Módulo 5
+ Adición 6
- Sustracción 6
< Menor que 7
> Mayor que 7
<= Menor o igual que 7
>= Mayor o igual que 7
= Igualdad 8
<> Desigualdad 8
&,AND AND lógico 9
XOR OR exclusivo lógico 10
OR OR lógico 11
Tomado y adaptado de: http://www2.schneider-electric.com/resources

A continuación, se realiza una pequeña descripción para cada uno de los operadores
asumiendo que se tienen conocimientos básicos en programación en otros lenguajes
como C y C++, por ejemplo:

 Paréntesis: Es utilizado para modificar la secuencia en la que se ejecuta una


línea de código. No es lo mismo (X+4) * Y, que decir, X+4* Y.

 Procesamiento de función (FUNCNAME): Se utiliza para hacer el llamado de


funciones elementales que están disponibles en bibliotecas estas funciones son
definidas en leguaje C y no se pueden modificar desde ST,

 Negación: Invierte el signo del operando y de los valores que este pueda llegar
a tener, en caso de ser una variable, su valor de salida será el opuesto. Por
ejemplo, si X fuera 1, OUT: = -X, OUT seria -1.

 Complemento NOT: Provoca una inversión del operando por bits. Ejemplo,
OUT es 0011001100 si IN1 es 1100110011, entonces, OUT: = NOT IN1.
Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

 Potenciación: Consta de dos operandos uno base y el otro exponente, el


operando base es elevado a razón del valor del operando exponente.

 Operaciones aritméticas básicas: Multiplicación, división, adición y


sustracción. Donde básicamente se ejecutan sobre los operando estas
instrucciones teniendo en cuenta la jerarquía de los operadores. Se pueden
ejecutar sobre todo tipo de dato y operando.

 Módulo (MOD): En MOD, el valor del primer operando se divide entre el valor
del segundo operando, y el resto de la división (módulo) se emite como
resultado.

 Menor y mayor que (<, >), (<=, >=): Compara el valor de cualquier operando
con el valor de otro y si es mayor o menor o el caso que se defina ejecuta
determinada línea de código.

 Igualdad y desigualdad: Compara el valor de cualquier operando con el valor


de otro y si es igual o desigual ejecuta determinado tramo de código.

 AND, XOR Y OR lógico: En el caso de AND, OR y XOR se ejecuta la siguiente


instrucción o expresión si y solo si los dos operandos cumplen con la condición
lógica. En texto estructurado se puede utilizar con los tipos de datos BYTE,
WORD y DWORD, esta operación se lleva a cabo por bits.

Como se puede observar la mayoría de expresiones son muy similares a las que se
manejan en un lenguaje C. La implementación de varias instrucciones en CODESYS 3.5
se detalla a continuación en la Figura 2, en donde se puede observar una visualización
sencilla que implementa el uso de la expresión AND y NOT para condicionar el estado
de la variable booleana READY.
Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

Figura 2. Ejemplo AND Y NOT con visualización CODESYS 3.5.


Fuente: El autor.

El indicador READY únicamente va a encender cuando CA_0 y CB_0 sean asignados con
el valor booleano TRUE.

Como se ha mencionado en varias ocasiones el lenguaje estructurado permite realizar


operaciones aritméticas con facilidad. Estas operaciones nos permiten realizar
asignaciones, poner un límite, incrementar una variable, realizar conteos, etc. en
compañía de las instrucciones. Lo cual permite infinidad de aplicaciones. En la figura 3
observamos como K1 y K2 (operandos, en este caso dos variables enteras) son
afectadas por la utilización de distintos operadores dependiendo de los valores que
tome X y Y.

Figura 3. Ejemplo operaciones aritméticas implementadas en CODESYS 3.5.


Fuente: El autor.
Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

b. Operando
El operando es un valor de cualquier tipo que es afectado por otro de u mismo tipo. Un
operando podría ser una variable, un literal, salidas y entradas, funciones de bloques,
una dirección o una llamada de función. Los tipos de datos de los operandos en cuestión
deben ser iguales para que puedan ser ejecutados. Además de esto los operandos no
siempre se pueden implementar con todos los operadores como se muestra a
continuación en la Tabla 2.

Tabla 2. Tabla de operando posibles


OPERADOR OPERANDO POSIBLE
() Expresión
FUNCNAME Expresión, literal, variable, dirección (todos los tipos de datos)

- Expresión, literal, variable, dirección de los tipos de datos INT, DINT, UINT, UDINT o
REAL
NOT Expresión, literal, variable, dirección de los tipos de datos BOOL, BYTE, WORD o
DWORD
** Expresión, literal, variable, dirección de los tipos de datos REAL (base) e INT, DINT,
UINT, UDINT o REAL (exponente)
* Expresión, literal, variable, dirección de los tipos de datos INT, DINT, UINT, UDINT o
/ REAL
MOD Expresión, literal, variable, dirección de los tipos de datos INT, DINT, UINT o UDINT
+ Expresión, literal, variable, dirección de los tipos de datos INT, DINT, UINT, UDINT,
- REAL o TIME
< Expresión, literal, variable, dirección de los tipos de datos BOOL, BYTE, INT, DINT,
> UINT, UDINT, REAL, TIME, WORD, DWORD, STRING, DT, DATE o TOD
<=
&,AND Expresión, literal, variable, dirección de los tipos de datos BOOL, BYTE, WORD o
XOR DWORD
Tomado y adaptado de: http://www2.schneider-electric.com/resources

1.2.4. Instrucciones
Las instrucciones se utilizan para hacer un control de las expresiones y de esta manera
con los valores reintegrados hacer una asignación a un nuevo parámetro. En texto
estructurado permite ejecutar instrucciones de manera condicional y cíclica.

Normalmente una línea de instrucción está limitada por 300 caracteres. Una
instrucción debe ser finalizada con punto y coma y las instrucciones que se pueden
utilizar programando en texto estructurado son las siguientes (Ver tabla 3):
Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

Tabla 3. Tabla de instrucciones


INSTRUCCIÓN EJEMPLO
Asignación A: =B; CV: = CV + 1;
C:=SIN(X);
Llamada a un Bloque de CMD_TMR (IN: = %IX5, PT: =300);
Funciones y uso de la salida A:=CMD_TMR.Q;
FB
RETURN RETURN;
IF IF D: =B*B;
IF D<0.0 THEN C: =A;
ELSIF D=0.0 THEN C: =B;
ELSE
C:=D;END_IF;
CASE CASE INT1 OF1: BOOL1: = TRUE;
2: BOOL2: = TRUE;
ELSE BOOL1: = FALSE; BOOL2: = FALSE;
END_CASE;
FOR FOR J: =101; FOR I: =1 TO 100 BY 2 DO IF ARR[I] = 70 THEN J: =I;
EXIT; END_IF;END_FOR;
WHILE WHILE J<= 100 AND ARR[J] <> 70 DO J: =J+2;
END_WHILE;
REPEAT REPEAT J:=J+2;UNTIL J= 101 OR ARR[J] = 70END_REPEAT;
EXIT EXIT;
CONTINUE CONTINUE;
JMP label1: i:=i+1; IF i=10 THEN JMP label2; END_IF JMP label1; label2:
instrucción vacía ;
Tomado y adaptado de: https://www.tecnical.cat

A continuación, se realiza una pequeña descripción para las instrucciones más


relevantes asumiendo que se tienen conocimientos básicos en programación en otros
lenguajes como C y C++, por ejemplo:

 Asignación: Una asignación es cuando remplazamos el valor inicial de una


variable por una expresión o valor especifico. En este orden de ideas, una
asignación consta de la variable seguida del símbolo de asignación (: =), el valor
a asignar y punto y coma para finalizar la instrucción, (Ver tabla 4). Se pueden
hacer Asignaciones de una variable a la otra, de un literal a una variable, de una
operación a una variable, una asignación de un bloque de función a una variable
y asignaciones múltiples.

 Llamar bloque de funciones: Se envían y reciben valores de un bloque de


función ya existente, con el fin de transferir parámetros mediante la llamada de
las instancias del FB. Los Bloques de función facilitan la implementación de
funciones complejas utilizadas frecuente mente.
Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

 Instrucción RETURN: Esta instrucción puede ser utilizada en bloques de


función y en subrutinas para salir de ellas saltándose la ejecución de algún tramo
de código dependiendo de alguna condición especifica.

 Instrucción IF: La instrucción IF ejecuta una acción en el caso de que la


condición del IF se cumpla lo que permite controlar la ejecución de las
instrucciones. Generalmente encontramos IF…THEN… END IF, donde el THEN
empieza, donde acaba la condición y empieza la instrucción y el END IF
únicamente cumple con encerrar y finalizar el grupo de instrucciones. Se puede
utilizar también la expresión ELSE o ELSEIF para ejecutar alguna acción como
un aviso de error o una alarma etc. En caso de que la condición del IF no se
cumpla.

 Instrucción CASE: Con la instrucción CASE se pueden controlar la ejecución de


acciones diferentes mediante la dependencia del valor que tome una misma
variable

 Instrucción FOR: La instrucción FOR es un bucle que permite programar


procesos repetitivos donde se conoce de antemano la cantidad de repeticiones.
Esta instrucción repite una secuencia hasta que termina el número de
repeticiones definidas. El número de repeticiones de define al declarar la
instrucción FOR.

 Instrucción WHILE: La instrucción WHILE es un bucle en el cual no se define la


cantidad de repeticiones como ocurre en el caso de FOR. Utilizando WHILE solo
deja de ejecutarse la instrucción cuando su condición es falsa.

 Instrucción REPEAT: La instrucción REPEAT ejecuta una secuencia varias veces


hasta que se cumpla una determinada condición definida con la instrucción
UNTIL la diferencia con los demás bucles es que solamente permite salir cuando
ya se ha ejecutado como mínimo una vez.

A continuación, se puede observar una implementación en CODESYS 3.5 de las


instrucciones WHILE, ASIGNACIÓN, IF…THEN, EXIT Y LLAMADA DE FUNCIÓN
utilizando un temporizador con el fin de integrar en una pequeña aplicación las
instrucciones anteriormente descritas.
Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

Figura 4. Ejemplo instrucciones CODESYS 3.5.


Fuente: El autor

1.3. EJEMPLOS

1.3.1. Ejemplo temporizador motores


En una industria, se requiere implementar una secuencia de dos motores que mueven
unas poleas siempre en la misma dirección. La secuencia es la siguiente:

 Presionar START.
 El motor 1 se mueve durante 4 segundos.
 El motor 1 se apaga.
 El motor 2 se mueve durante 2 segundos.
 El motor 2 se apaga.

Es necesario, tener en cuenta que el motor #1 solo inicia cuando se presiona START y
el motor #2 no se puede encender hasta que el uno se apague.

Desarrollo
Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

Figura 5. Estado de motores en el tiempo CODESYS 3.5.


Fuente: El autor.

Tabla de señales

Tabla 3. Variables asociadas a motores y pulsadores ejemplo 1.3.1


VARIABLE EQUIPOS ASOCIADO DESCRIPCIÓN FUNCIONAL
ENTRADAS DIGITALES
START Botón inicio Da inicio al proceso
SALIDAS DIGITALES
M1 Motor 1 Permite la salida del motor 1 para su arranque.
M2 Motor 2 Permite la salida del motor 2 para su arranque.
Fuente: Autor

Inicialmente se define START, MOTOR1 Y MOTOR2 como variables booleanas y se


asignan 2 funciones de bloque (temporizadores). Seguido de esto la primera instrucción
está compuesta por un IF en el cual se expresa que el motor uno enciende únicamente
cuando se presione el botón START.

Figura 6. Ejemplo reflexión inicial CODESYS 3.5.


Fuente: El autor.

Se desarrolló una visualización sencilla para ilustrar el funcionamiento de los dos


motores y el estado del botón START.
Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

Figura 7. Ejemplo reflexión START CODESYS 3.5.


Fuente: El autor

Seguido de esto incluimos el temporizador asignado como entrada la variable booleana


que corresponde al motor uno y un tiempo de 4 segundos obteniendo como salida una
variable booleana llamada Q. Con la cual se condiciono mediante otro IF el apagado del
motor 1 y el encendido del motor 2.

Finalmente, en la figura 8 observamos como el motor uno está en funcionamiento y


cuando TIME1 termina de ejecutar los cuatro segundos de espera se apaga y se
enciende el motor 2 el cual mediante el temporizador 2 se mantiene encendido 2
segundos.

Figura 8. Ejemplo reflexión 2do motor CODESYS 3.5.


Fuente: El autor.
Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

1.3.2. Ejemplo motor con alarma


En una planta de tratamiento de agua potable, se necesita implementar una alarma para
indicar cuando un motor supera 2 ciclos, la secuencia es la siguiente:

 Se presiona el botón START


 Se enciende el motor
 Se enciende un indicador de alarma cuando el motor se enciende dos veces

Condiciones

 El motor se enciende manualmente


 Debe ser posible resetear el contador
 La alarma se activa si el motor enciende más de una vez

Desarrollo

Inicialmente se definieron las variables booleanas MOTOR, ALARM, RESET Y START y


el contador que un bloque de función. Seguido de esto se declara que el motor enciende
y apaga manualmente con el botón START.

Figura 9. Ejemplo reflexión inicial CODESYS 3.5.


Fuente: El autor.
Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

Al encenderse el motor se asigna este valor TRUE a la variable de entrada CU del


Contador. El cual cuenta el primer ciclo de encendido del motor como se puede ver en
la figura siguiente.

Figura 10. Ejemplo reflexión contador CODESYS 3.5.


Fuente: El autor.

Cuando el motor realiza dos ciclos se activa la alarma como se observa a continuación.
Esto depende de la variable tipo WORD CV del contador. Cuando CV es mayor o igual a
2 asigna a ALARM un valor de TRUE y de lo contrario FALSE.

Figura 11. Ejemplo reflexión alarma CODESYS 3.5.


Fuente: El autor.
Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

Finalmente, y como se puede observar en la siguiente figura existe un botón de RESET


que esta enunciado en la llamada del Contador donde se resetea el valor de CV.

Figura 12. Ejemplo reflexión RESET CODESYS 3.5.


Fuente: El autor.

1.4. EJERCICIOS DE REFLEXIÓN

Asumamos que usted es el encargado de la automatización en la Ensambladora


Mendoza Rodríguez S.A. y necesita desarrollar un sistema de automatización para dos
motores con una alarma de finalización de ciclo. En el cual se ejecute la siguiente
secuencia:

 Se inicie con el botón START


 Enciende el motor 1 durante 3 segundos
 Enciende el motor dos durante 3 segundos
 Repite el ciclo cuatro veces el motor 1 y 3 el motor 2

Condiciones

 El sistema se inicia con START


 El sistema es automático
 El motor dos solo se enciende cuando el motor 1 se apaga

De acuerdo al caso descrito, mencione:


Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

1. Que lenguaje considera es el apropiado para dicha automatización, diferente al


estudiado en la unidad.
2. Cuáles son las variables en cada ciclo de los motores
3. Cuál es la programación final para dar solución a la necesidad de la
ensambladora Mendoza Rodríguez S.A.

1.5. CONCLUSIONES

 Es una ventaja conocer un lenguaje que abarque varias marcas de PLC’s, debido
a que podría facilitar la experiencia en una determinada industria y resultar más
provechoso.
 El lenguaje de texto estructurado es fácil de aprender para aquellas personas
que tienen experiencia programando otro tipo de lenguajes. El lenguaje de texto
estructurado es similar a lenguajes como C++ y C, pues utiliza muchas
instrucciones similares.
 El lenguaje de texto estructurado tiene gran cantidad de instrucciones con las
que un programador puede desarrollar todo tipo de aplicaciones de manera
libre, comprimida y ordenada.
 La utilización de bloques de función y comentarios facilitan el desarrollo de un
programa debido a que permiten la reutilización de código.
 Es una buena idea hacer uso de los comentarios pues hace que el programa sea
más fácil de entender y por ende de corregir o modificar.

1.6. MATERIAL DE ESTUDIO

Ubicación (el link web o la base


Temas que abordan Referencia bibliográfica (APA)
de datos)
3S-Smart Software Solution GmbH. https://www.parkermotion.co
Programación en Texto (2010). User Manual for PLC m/manuals/Hauser/Compax3
Estructurado Programming with Codesys 2.3. /CoDeSys_Manual_V2p3.pdf

Texto estructurado y Tohid Alizadeh,. [Tohid Alizadeh]. (2016, https://www.youtube.com/wa


ejemplos aplicados en agosto 19). Structured Text PLC tch?v=XYSP1wRmij4&index=3
CODESYS V 3.5. programming in CODESYS. &list=PL59Y6KWIp-Df9b-
8hUortXmdExWCgSB0M
Instrucciones y (3S-Smart Software Solution GmbH, http://www.infoplc.net/desca
expresiones en lenguaje 2010) rgas/42-codesys
estructurado utilizando
CODESYS.
Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

2. UNIDAD TEMÁTICA 2. DESARROLLO DE PROGRAMAS EN TEXTO


ESTRUCTURADO BAJO EL ESTÁNDAR IEC 61131-3

2.1. INTRODUCCIÓN

Como se definió en la temática anterior el Texto Estructurado es una herramienta usada


con frecuencia en la programación de PLC’s debido a su versatilidad a la hora de
programar sentencias y condiciones que en otros lenguajes no se podrían definir, tales
como: asignación de valores a variables, sentencias con condiciones o bucles, etcétera.

En esta unidad, se abarcará la programación y visualización de problemas solucionados


a partir del lenguaje de Texto Estructurado, además se explicará cómo realizar un
código y la definición de variables, finalmente se realiza una visualización por estados
de las variables que tenga un programa y la creación de visualización grafica de un
programa en Codesys V3.5

Teniendo en cuenta los temas abordados en la unidad temática 2, a continuación, se


explicará a través de ejemplos de aplicación el desarrollo de programas en texto
estructurado bajo el estándar IEC 61131-3, es importante mencionar que la teoría en la
cual se soporta lo abordado en esta unidad, se encuentra desarrollada en la Unidad 1,
por lo tanto se recomienda estudiar detenidamente cada uno de los temas abordados y
traerlos a colación en esta unidad.

2.1.1. Programación con lenguaje Texto Estructurado


Teniendo en cuenta que la programación de un lenguaje, requiere de su aplicación para
hacer más eficiente su comprensión, a continuación, se realizará la contextualización
de programación con el lenguaje Texto Estructurado en el cual se verá la
implementación de una sentencia, un operador y la creación de una ventana de
visualización básica para la comprensión grafica de dicho ejercicio.

Inicialmente se declaran las variables que se desean utilizar en el programa como se


evidencia en la figura 13.
Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

Figura 13. Área de variables del software Codesys V3.5


Tomado de: Software Codesys V3.5.

Dicha declaración se realiza en el caso de conocer a priori cuales tipos de datos y


variables se van a manejar en el programa, para ello se estudia el problema a desarrollar
y se realiza un mapeo de las señales y variables necesarias para la creación del
programa. Si no se realiza dicho mapeo debido a que el programa no requiere de una
cantidad considerable de variables a declarar, se puede realizar durante la
programación del programa como se ve en la figura 12.

Como se observa en la figura 13, se asignó un valor a una variable sin declarar, al hacer
esto se desplegará una ventana permitiendo declarar dicha variable para el programa,
definiendo para el tipo de dato, su valor inicial o final si es requerido, el objeto para el
cual va dirigido el cual se refiere al programa o aplicación creada y un comentario si es
necesario.

Figura 13. Declaración de variables del software Codesys V3.5


Tomado de: Software Codesys V3.5.
Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

Luego de ver cómo podemos declarar las variables usadas para el programa,
procedemos a realizarlo.

En este caso utilizaremos el operador IF para una sentencia la cual consiste en encender
un bombillo y apagar otro con respecto al estado de un interruptor que se puede
encontrar en 1 o 0.

Figura 14. Sentencia If implementada en software Codesys V3.5


Tomado de: Software Codesys V3.5.

En la figura anterior se puede observar la estructura de una sentencia IF junto con


condición ELSE, podemos ver que la asignación de un valor a una variable se realiza
mediante la forma “:= “ finalizando la asignación o instrucción mediante “ ; ” , del mismo
modo al realizar la condición para el condicional puede definirse como se observa en la
figura o de la forma “ Interruptor = TRUE “ demostrando que la variable se encuentra
presente o tiene asignado dicho valor.

Teniendo el código completo procederemos a realizar la simulación y ver el


comportamiento de cada variable; para ello es necesario compilar el programa para
asegurar de que la sentencia está escrita correctamente, esto se puede hacer mediante
la tecla F11 o el menú compilar (Ver figura 15).

Figura 15. Ventana de mensajes software Codesys V3.5


Tomado de: Software Codesys V3.5.
Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

Luego de verificar el código luego de ser compilado, se procede a entrar en simulación


para ello, por medio del menú En línea > Simulación entramos en modo simulación (Ver
figura 16).

Figura 16. Ventana En línea software Codesys V3.5


Tomado de: Software Codesys V3.5.

Posterior a ello se inicia sesión en la simulación, para ello se puede realizar la


combinación de teclas Alt+F8 o por medio del menú En línea > Iniciar Sesión. Luego de
iniciar sesión podremos visualizar el estado actual de las variables como se evidencia a
continuación (Ver figura 17).
Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

Figura 17. Simulación software Codesys V3.5


Tomado de: Software Codesys V3.5.

En este punto se puede visualizar el estado de cada variable y su comportamiento según


el cumplimiento de las condiciones descritas en la sentencia, para poder observar el
comportamiento de la secuencia en su totalidad es necesario iniciar la secuencia, se
puede iniciar mediante la tecla F5 y de este modo enviar valores preparados (Ver figura
18).

Figura 18. Testigo programa en ejecución software Codesys V3.5


Tomado de: Software Codesys V3.5.

Los valores preparados son estados que se pueden asignar a una o varias variables al
mismo tiempo para posteriormente cumplir una condición o visualizar el cambio de
estado una variable; dichas asignaciones se realizan por medio de la interface “Valor
preparado” encontrada en la tabla de simulación de las variables.
Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

Figura19. Visualización de estado de las variables en simulación software Codesys V3.5


Tomado de: Software Codesys V3.5.

En dicha taba el software Codesys V3.5 permite asignar un valor a cada variable
dependiendo del tipo de dato que sea, en este caso se asignaran los datos contrarios a
los estados en los que se encuentran, para ello se asigna el valor en la casilla definida en
“valor preparado” para cada variable.

Figura 20. Valores Preparados de estado de las variables en simulación software Codesys V3.5
Tomado de: Software Codesys V3.5.

Ulteriormente de seleccionar el estado al cual se quiere cambiar cada variable se puede


asignar mediante la combinación de las teclas Ctrl+F7 y cambiaran su estado como se
evidencia en la figura.

Figura 21. Inscripción de valores preparados en simulación software Codesys V3.5


Tomado de: Software Codesys V3.5.
Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

De este modo se puede visualizar el comportamiento de los testigos “Lamp” y “Lamp2”


al asignar valores entre “TRUE” y “FALSE” a la variable “Interruptor”.

Figura 22. Visualización de variables en simulación software Codesys V3.5


Tomado de: Software Codesys V3.5.

Como se puede observar la realización de un proyecto con Codesys V3.5 en Texto


Estructurado (ST) es muy intuitivo y fácil, así mismo la simulación de las variables a
pesar de no tener una interface gráfica es sencilla de comprender.

2.1.2. Visualización
A continuación, se abarcará una pequeña parte de las herramientas que ofrece Codesys
V3.5 para la visualización e interface gráfica de programas, esto con el fin de visualizar
el ejercicio anteriormente planteado y realizar una introducción a una de las partes que
componen el ejercicio que se verá al finalizar esta unidad.

Teniendo en cuenta el ejercicio que se desarrolló en el anterior ítem crearemos y


visualizaremos el comportamiento de las variables de dicho programa; para ello se
procede a crear la ventana de visualización.
Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

Figura 23. Creación de ventana de visualización software Codesys V3.5


Tomado de: Software Codesys V3.5.

Al dirigirse a este menú y crear la visualización se desplegará una ventana la cual


permite darle nombre.

Figura 24. Nombre de visualización software Codesys V3.5


Tomado de: Software Codesys V3.5.
Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

En las propiedades de visualización se encuentra una gran variedad de formas y


dispositivos predeterminados, para este ejemplo usaremos dos testigos
predeterminados como Lámparas y un interruptor de palanca.

Figura 25. Herramientas de visualización software Codesys V3.5


Tomado de: Software Codesys V3.5.

Luego de escoger los elementos que se desean utilizar en la visualización, se realiza la


configuración de cada uno de ellos definiendo las variables que van a manejar.

Figura 26. Configuración de herramientas de visualización software Codesys V3.5


Tomado de: Software Codesys V3.5.

Luego de la configuración solo consta de entrar en simulación, iniciar sesión y ejecutar


el programa, al simular dicho programa tendremos el siguiente resultado.
Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

Figura 27. Visualización en dos estados software Codesys V3.5


Tomado de: Software Codesys V3.5.

Como se evidencia en la figura anterior vemos cómo se comporta cada lámpara con
respecto al valor que tenga el interruptor (TRUE o FALSE), teniendo en cuenta al
análisis realizado al código.

Finalmente se realizó la visualización de una sentencia IF programada bajo el lenguaje


de Texto Estructurado.

2.2. MARCO CONCEPTUAL

En la presente unidad se realiza la contextualización del desarrollo de programas de


texto estructurado bajo la plataforma Codesys V3.5 tomando como referencia una
aplicación, esto con el objetivo de lograr una mayor comprensión de la aplicación del
lenguaje. El ejemplo a utilizar será el de una máquina taladradora de piezas con
actuadores electroneumáticos (Figura 28) de ciclo único de perforación. En este
ejemplo se verá el paso a paso del desarrollo de un programa y su visualización y
control, basado en Texto Estructurado.

2.2.1. Aplicación de programación. Máquina taladradora


La aplicación de la máquina taladradora (Figura 28) consiste en una máquina en la que
se posiciona manualmente una pieza, se presiona un botón de START para dar la orden
de inicio de perforación para que un cilindro neumático, controlador por una válvula
electroneumática biestable, desciende con la broca, perfora y retorna a su posición
inicial. En la tabla 4 se relaciona las señales de control de la máquina asociadas a las
entradas y salidas del PLC.
Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

Figura 28. Máquina y secuencia Taladradora


Tomado de: (Festo Didactic, 2009)

En la Figura 28 se observa la secuencia de funcionamiento de cada cilindro, y en la figura


28 el mapeo de señales que se usarán en este ejemplo.

Tabla 4. Variables asociadas a motores y pulsadores ejemplo 1.3.1


VARIABLE EQUIPOS ASOCIADO DESCRIPCIÓN FUNCIONAL
START Interruptor de inicio Da inicio al proceso
CA_0 Cilindro A Posición retraído cilindro A
CA_1 Cilindro A Posición afuera cilindro A
CB_0 Cilindro B Posición retraído cilindro B
CB_1 Cilindro B Posición afuera cilindro B
Permite saber si la máquina está dispuesta para iniciar la
READY
secuencia
K Condición de discriminación.
Fuente: Autor

Para iniciar con la programación, se crea un proyecto Standard en Codesys V3.5


seleccionado el lenguaje texto estructurado. Posteriormente se procede a redactar las
sentencias; en este caso se realiza la primera la cual define el estado de inicio de
máquina tomando como condicionales todos los sensores en “FALSE” siendo el estado
inicial de estos, esto con el fin de definir el valor inicial de los cilindros dándoles valores
de “TRUE” a “CA_0” y “CB_0” (Figura 29).

Figura 29. Primera sentencia Codesys V3.5


Tomado de: Software Codesys V3.5.
Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

Al tener el sensor de cilindro adentro tanto para A como para B (Figura 30), significa
que la máquina esta lista para empezar, por ello se procede a colocar un testigo que nos
indique dicho estado (Figura 31).

Figura 30. Segunda sentencia Codesys V3.5


Tomado de: Software Codesys V3.5.

2.2.2. Visualización del estado de proceso


La visualización se realizará mediante lámparas ubicadas en los sensores de cada
actuador y el testigo de “READY” el cual fue programado en la secuencia anterior
(Figura 31).

Figura 31. Visualización Taladradora “READY” Codesys V3.5


Tomado de: Software Codesys V3.5.

Luego de tener la maquina en el estado deseado (READY) se procede a programar la


siguiente condición para posicionar la pieza con el cilindro A (Figura 32).
Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

Figura 32. Tercera sentencia Codesys V3.5


Tomado de: Software Codesys V3.5.

Para ello se tuvo en cuenta el estado en el que se encuentra la máquina, en este caso la
condición del operacional fue el estado “READY” y “START” para de esta manera apagar
el testigo del cilindro A (adentro) para encender el testigo del vástago fuera que es lo
que se desea para posicionar la pieza a perforar; del mismo modo se apaga el testigo de
“READY” debido que este indica el posicionamiento para CA_0 y CB_0, condición que en
este punto ya no se cumple.

Posteriormente se visualiza y se cambia el estado de “START” mediante el interruptor


de palanca (Figura 33).

Figura 33. Visualización salida de vástago cilindro A Codesys V3.5


Tomado de: Software Codesys V3.5.

Teniendo el vástago de A fuera significa que nuestra pieza esta lista para perforar, así
que procedemos a taladrar interpretándolo como la salida del vástago del cilindro B.
Para ello como se realizó en la sentencia anterior condicionamos en el operador el
estado actual de los sensores para realizar el siguiente paso (Figura 34).
Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

Figura 34. Cuarta sentencia Codesys V3.5


Tomado de: Software Codesys V3.5.

De esta manera con respecto al estado del cilindro A (fuera) y B (dentro) se condiciona
el operacional para ulteriormente sacar el vástago del cilindro B el cual hace referencia
a la perforación de la pieza (Figura 35).

Figura 35. Visualización salida de vástago cilindro B Codesys V3.5


Tomado de: Software Codesys V3.5.

Teniendo la pieza perforada se procede a retirar el taladro de la misma para ello como
en las anteriores sentencias se condiciona el operacional y se devuelve el vástago de B
como se muestra en la figura 36.

Figura 36. Quinta sentencia Codesys V3.5


Tomado de: Software Codesys V3.5.

Luego de condicionar el sensor CA_1 y CB_1 para el operacional se procede a devolver


a su estado anterior el cilindro B, la visualización se puede observar en la figura 37.
Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

Figura 37. Visualización entrada de vástago cilindro B Codesys V3.5


Tomado de: Software Codesys V3.5.

Al tener la pieza perforada luego de su posicionamiento se procede a retirar la pieza de


la estación, para ello se pondrá el vástago del cilindro A dentro. Para ello se debe tener
en cuenta que la condición que vemos en la visualización se cumplió anteriormente en
la sentencia número 4 como se ve en la figura 38, para evitar que estas dos condiciones
se cumplan se creara una variable que al entrar en esta sentencia este en “FALSE” y al
volver a la sentencia anterior este en “TRUE”, de esta manera las condiciones que se
cumplan tanto para esta caso como para el anterior serán distintas, por consiguiente no
se cumplirán al tiempo.

Figura 38. Sexta sentencia Codesys V3.5


Tomado de: Software Codesys V3.5.

Se debe tener en cuenta que al preguntar por esta variable “K” en “FALSE” en cualquier
sentencia posterior a esta o al inicio del programa se debe cambiar a “TRUE” para que
de este modo la sentencia anterior a esta que es aquella que se debe cumplir primero,
se cumpla, esto se verá finalizando el ejemplo para dejarlo a punto.
Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

Figura 39. Visualización entrada de vástago cilindro A Codesys V3.5


Tomado de: Software Codesys V3.5.

Este sería el estado final de la máquina, recordando que se pasó por cada uno de los
estados de la máquina por medio de cada sentencia (Figura 39). Ahora se procede a
dejar a punto el programa acondicionando la variable “K” para la primera condición de
CA_1 y CB_0 para el set fuera del vástago del cilindro B (Figura 40).

Figura 40. Visualización entrada de vástago cilindro A Codesys V3.5


Tomado de: Software Codesys V3.5.
Estructura para el diseño de cursos virtuales
Versión 2. Agosto de 2016

Al tener dicha variable como se observa en el código completo del ejercicio nos
permitirá que estas dos condiciones sean discriminantes una frente a la otra y evitar
que se cumplan al tiempo.

Finalizando se puede analizar que la programación basada en Texto Estructurado es


intuitiva debido a que las estructuras de los operacionales son sencillas de utilizar y la
visualización nos permite la comprensión grafica del ejercicio.

2.3. EJERCICIOS DE REFLEXIÓN

Se desea realizar un programa el cual solucione un problema de automatización a gran


escala, es decir que su lógica conlleve a la utilización de una gran variedad de variables
que permitan la interacción entre varios dispositivos y la solución consecuente de dicho
problema; para ello se desea utilizar un lenguaje de programación fácil de comprender
para una persona que tenga experiencia en programación con lenguajes de alto nivel.

Preguntas de reflexión:

 ¿Cree usted que el lenguaje de Texto Estructurado es un lenguaje de


comprensión para personas que hayan tenido contacto con lenguajes como C++
o Pascal?, justifique se respuesta realizando una comparativa.
 ¿Si se desea visualizar un proceso industrial para que el operador tenga
conocimiento pleno conocimiento del estado del mismo, ¿Considera que
Codesys ofrece todas las herramientas para alcanzar este objetivo?

2.4. CONCLUSIONES

 El Texto Estructurado es uno de los lenguajes más versátiles usados en la


programación de PLC’s teniendo como base de programación el uso de
condicionales facilitando la lógica de programación para el usuario.
 Codesys V3.5 permite una visualización de estado de las variables de forma intuitiva
con el cual se logra comprender el comportamiento de cada una de las variables de
un proceso e interactuar con los valores asignados a estos.
 Codesys V3.5 permite crear interfaces graficas amigables con el usuario que
permiten una comprensión visual clara de lo que se está programando.

También podría gustarte