Controles PLC con Texto Estructurado (ST) - Tom Mejer Antonsen - E-Book

Controles PLC con Texto Estructurado (ST) E-Book

Tom Mejer Antonsen

0,0

Beschreibung

Este libro proporciona una introducción al lenguaje de programación de Texto Estructurado (ST), usado en el control lógico programable (PLC). El libro puede ser usado para todos los tipos y marcas de PLC, incluido el Lenguaje de Control Estructurado de Siemens (SCL) y los Controladores de Automatización Programable (PAC). CONTENIDO - Antecedentes, ventajas y desafíos en la programación ST. - Sintaxis y programación fundamental del lenguaje ST. - Guía generalizada para nombrar razonablemente las variables. - CTU, TOF, TON, CASE, STRUCT, ENUM, ARRAY, STRING. - Guía para dividir en módulos de programa y funciones. - Más de 90 ejemplos de código PLC - FIFO, RND, 3D ARRAY y filtro digital. - Ejemplos de programación de LADDER a ST. - Guía para resolver ejercicios de programación. El libro incluye explicaciones aclaratorias del código PLC, y presenta una visión orientada a la escritura de un código estable, robusto, legible, estructurado y claro. Además, el autor pretende dar un enfoque autodidacta, de modo que sirva de ayuda al lector a escribir su propio código PLC, el cual no requiera de un tipo de PLC específico, y que a la postre se pueda reutilizar. La base de este libro la forma un material actualizado el cual se encuentra en constante evolución. El material incorpora comentarios de profesores y dudas de estudiantes que asisten regularmente a la Educación AP en Ingeniería de Automatización en la Academia Dania local 'Erhvervsakademi Dania', en Randers, Dinamarca. Por lo tanto, el material se 'nutre' continuamente del feedback resultante de dicha actividad académica. El autor es licenciado en Ciencias en Ingeniería Eléctrica (B.Sc.E.E.), y cuenta con 25 años de experiencia en especificación, desarrollo, programación y suministro de soluciones complejas de control y supervisión de sistemas. Dentro de estos, el autor cuenta con 7 años de experiencia en programación Pascal y 12 años de experiencia con soluciones y sistemas que contienen PLC. El autor es profesor adjunto de educación superior en temáticas relacionadas con sistemas de control PLC en la Academia Danesa de Negocios y Tecnología: Erhvervsakademi Dania, en Randers, Dinamarca.

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 171

Veröffentlichungsjahr: 2019

Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:

Android
iOS
Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



PREFACIO

Cuando empecé como Profesor Asistente (docente) en la Academia Dania, en Randers, Dinamarca, una de mis primeras tareas, fue encontrar libros que fueran adecuados para el título de técnico superior en automatización y robótica industrial. Buscando material relacionado con la programación en Texto Estructurado (ST), pronto pude constatar que no existen libros relevantes. Existen libros de 300 páginas, que contienen solamente algunas páginas dirigidas al lenguaje ST, y solo a nivel teórico. Mis estudiantes demandan constantemente ejemplos, guías y métodos para programación ST. Como consecuencia, en enero 2017, empecé a escribir cierto material didáctico:

”Comenzar con Texto Estructurado”

Desde entonces, utilizo a diario dicho material con mis alumnos, lo que me permite someterlo a una revisión y actualización continua, al tiempo que nuevos casos y materiales son continuamente añadidos. Este material ha sido altamente demandado entre mis estudiantes, lo que me empujó a plasmar todo este conocimiento en el libro que has adquirido. La lectura y estudio de la información proporcionada en este libro, ayudará a cualquier persona interesada en adquirir conocimientos en esta materia.

Espero que disfrutes de este libro y satisfaga tus expectativas.

Me gustaría agradecer a mis estudiantes, maestros y colegas por los consejos, la ayuda, y la inspiración a la hora de escribir.

Comentarios, quejas, cumplimentos y sugerencias en cuanto a mejoras, serán bien recibidos. Por favor, enviar a [email protected]

Primera edición publicada en Junio 2018 Quisiera agradecer en especial, a José A. Gil por su contribución a la hora de revisar la traducción de esta versión, y mejorarla para una mejor comprensión.

Tom Mejer Antonsen Dinamarca, Randers, noviembre 2020

Tabla de contenido

1 INTRODUCCIÓN

1.1 A

NTECEDENTES DEL LENGUAJE

ST

1.2 C

ALIFICACIONES PARA APRENDER EL LENGUAJE

ST

1.3 F

UNDAMENTO DEL CONOCIMIENTO

1.4 V

ENTAJAS DE LA PROGRAMACIÓN EN LENGUAJE

ST

1.5 D

ESVENTAJAS DE LA PROGRAMACIÓN EN LENGUAJE

ST

3 COMENTARIOS EN EL CÓDIGO DE PROGRAMACIÓN

4 TIPOS DE DATOS

4.1 T

IPOS DE DATOS ELEMENTALES

(INT, REAL, BOOL)

4.2 I

NTRODUCCIÓN A DATOS DE TIPO DERIVADO

4.3 T

IPO DE DATOS ESTRUCTURADO

, STRUCT

4.4 T

IPOS DE DATOS DE NUMERACIÓN

, ENUM

4.5 T

IPO DE DATOS DE SUB

-

RANGO

4.6 S

TOCK DE VALORES CON EL MISMO TIPO DE DATOS

, ARRAY

5 ÁMBITO Y ALCANCE DE LAS VARIABLES

5.1 EJEMPLO: V

ARIABLES

, Á

MBITO Y

M

ÓDULOS

-IO

6 COMO NOMBRAR LAS VARIABLES

6.1 V

ARIABLES CON UNIDAD

6.2 V

ARIABLES CON VALOR FIJO

(CONSTANT)

7 MATEMATICAS Y LÓGICA

7.1 O

PERADORES ARITMÉTICOS

(+, -, *, /)

7.2 O

PERADORES DE RELACIÓN

(=, <, <=, >, >=, <>)

7.3 O

PERADORES NUMÉRICOS

(

FUNCIONES MATEMÁTICAS

)

7.4 O

PERADORES LÓGICOS

(AND, OR, XOR, NOT)

7.5 L

ÓGICA

,

FÓRMULAS MATEMÁTICAS Y PARÉNTESIS

()

8 TRABAJANDO EN LA ASIGNACIÓN DE VARIABLES

8.1 D

ESAFÍO EN LOS CÁLCULOS MATEMÁTICOS

8.2 D

IVIDIDO ENTRE CERO

8.3 C

ÁLCULOS USANDO

REAL

E

INT

8.4 E

RRORES DECIMALES DE

REAL

8.5 V

ARIABLES DE COMUNICACIÓN DE DATOS

8.6 F

UNCIONES DE CONVERSIÓN DE TIPOS DE DATOS

8.7 E

NCONTRAR VALORES BINARIOS EN UN ENTERO

(M

ASKING BIT

)

8.8 C

ONVERTIR

REAL

EN

2

DECIMALES

(REAL

CON

2

DÍGITOS

)

9 DECLARACIÓN (SENTENCIA) CONDICIONAL

9.1 IF-THEN-ELSE

9.1.1 EJEMPLO: IF-THEN-ELSE como enclavamiento del relé

9.1.2 EJEMPLO: IF-THEN-ELSE válvula abierta y cerrada

9.2 CASE

9.2.1 EJEMPLO: CASE - Ajuste de la velocidad del motor

9.2.2 EJEMPLO: CASE - Para ejecutar programas

9.2.3 EJEMPLO: CASE - Reconociendo números

9.3 E

STADO DE

I

TERACIÓN

, LOOPS

9.4 S

ENTENCIA

FOR-DO

9.4.1 EJEMPLO: FOR - LOOPS, loop 4 veces

9.4.2 EJEMPLO: FOR - LOOP y 3D ARRAY

9.4.3 EJEMPLO: Cálculo del valor promedio

10 SPLIT-UP EN LOS MÓDULOS DEL PROGRAMA

10.1 F

UNCIONES

10.2 F

UNCIÓN

(FC)

Y

F

UNCIÓN DE BLOQUEO

(FB)

10.3 EJEMPLO: FC

PARA CONVERSIÓN DE TEMPERATURA

10.4 EJEMPLO: FC

PARA CALCULAR EL PROMEDIO

11 TRABAJANDO CON TEXTO Y CARACTERES, STRING

11.1 EJEMPLO: FC

CON

STRING

11.2 F

UNCIONES ESTÁNDAR

, STRING

12 FUNCIONES ESTÁNDAR INCORPORADAS

12.1 E

JECUCIÓN DEL PROGRAMA UNA SOLA VEZ:

F

IRST

S

CAN

B

IT

12.2 D

ETECCIÓN DE BORDES

(O

NE SHOT

): R_TRIG, F_TRIG

12.3 F

UNCIONES DE CONTEO

: CTU, CTD, CTUD

12.4 “

LLAMADA

REPETIDO Y RETARDO DEL TEMPORIZADOR

: TON, TOF

13 FUNCIONES ESPECIALES Y ESTRUCTURAS

13.1 E

STRUCTURA DE FILA SIMPLE

(

QUEUE

)

13.2 FIFO - F

IRST

I

N

F

IRST

O

UT

13.3 G

ENERACIÓN DE NÚMEROS ALEATORIOS

(RND, R

ANDOMIZE

)

13.4 F

ILTRO DIGITAL DE PASO

-

BAJO

(LP-F

ILTER

)

13.5 S

EÑALES DE SIMULACIÓN

13.6 C

ÁLCULO DEL VOLUMEN DEL TANQUE

,

CILINDRO EN HEMISFERIO

14 DE LADDER A PROGRAMACIÓN-ST

15 MÉTODO ÓPTIMO DE PROGRAMACIÓN-ST

15.1 I

NDENTACIÓN Y

ESPACIO

15.2 L

ÍNEAS VACÍAS INSERTADAS EN EL CÓDIGO

15.3 E

VITAR EL CÓDIGO

SPAGUETTI

15.4 U

SO DE FUNCIONES Y MÓDULOS DE PROGRAMA

15.5 U

SO DE VARIABLES

15.6 M

ISCELÁNEOS

15.7 C

ÓDIGO COMPARTIDO CON INTERNET

15.8 OOP - P

ROGRAMACIÓN ORIENTADA A OBJETOS

16 GUÍA DE EJERCICIOS DE PROGRAMACIÓN

17 ÍNDICE

1 Introducción

Este libro es una introducción al lenguaje de programación Estructurado de Texto (ST) (Structured Text, por sus siglas en inglés), el cuál se utiliza en los Controladores Lógicos Programables (PLC).

El contenido se puede utilizar para todo tipo de PLCs, incluyendo Lenguaje de Control Estructurado de Siemens (SCL) y Controladores de Automatización Programada (PAC).

Este libro ha sido concebido para ser utilizado en los 2 años completos de la educación como técnico superior en automatización y robótica industrial, así como en titulaciones y ciclos formativos similares.

En los PLC de Siemens, la programación se llama Lenguaje de Control Estructurado (SCL), el cual incluye algunas diferencias en relación al lenguaje ST.

Este libro describe sistemáticamente la programación básica, incluyendo consejos, recomendaciones y las experiencias propias del autor.

El libro también incluye muchas explicaciones aclaratorias para código PLC, enfocadas en el hecho de que el lector debe aprender como escribir un código sólido, robusto, legible, estructurado y claro. Además, el objetivo es que el lector sea capaz de escribir un código PLC, el cuál no requiera un tipo específico de PLC ni de código PLC, de modo que pueda ser reutilizado. También hay que subrayar que los ejemplos de programación mostrados en este libro, pueden ser utilizados en el mercado internacional para las soluciones de automatización.

Es recomendable leer el libro completo y usarlo como referencia.

Como nota aclaratoria, los ejemplos de código PLC descritos en este libro están exentos de cualquier tipo de garantía.

1.1 Antecedentes del lenguaje ST

El ST es un lenguaje de programación de alto nivel, similar a la Programación Pascal. La Programación Pascal fue extensamente utilizada en Dinamarca desde el año 1985 hasta aproximadamente el año 2000 - un período de tiempo en el cual varias compañías empezaron a desarrollar software para PC (Personal Computer), primero DOS, y más tarde Windows.

El lenguaje ST fue desarrollado y publicado en 1993 por la Comisión Internacional Electrotécnica (IEC), basándose en la norma IEC 61131-3 International Standard. El estándar consiste en 5 lenguajes de programación PLC, donde la Programación LADDER es la más conocida y utilizada.

La programación en lenguaje ST para los Controles de PLC ha sido publicada en varias ocasiones desde 2010; y desde 2015, varias compañías en Dinamarca han suministrado exclusivamente Controladores PLC, donde el lenguaje ST es usado como uno de los lenguajes de programación favoritos. Debido a esto, existe un número creciente de profesionales y que encuentran la necesidad de entender y usar el lenguaje ST, siendo este uno de los argumentos para la distribución de este libro.

1.2 Calificaciones para aprender el lenguaje ST

No es necesario que el lector conozca como programar en LADDER. No obstante, ciertos conocimientos de matemáticas, mecánica, electrónica, automatización y bases de PLC son necesarias, para ser capaces de aprender el lenguaje ST.

Estudiantes con conocimientos en lenguajes de programación avanzados (VB, NET, C, C#, Java), tienen la habilidad de aprender el lenguaje ST relativamente fácil, ya que las estructuras programables se parecen entre si.

El tiempo de educación para la programación del lenguaje ST, es similar al de otros lenguajes de programación de texto, de 3 a 5 años.

1.3 Fundamento del conocimiento

El autor tiene 25 años de experiencia en programación, desarrollo y entrega de sistemas complejos de control, así como en supervisión de sistemas. De los 25 años, el autor cuenta con 7 años de experiencia en Programación Pascal y 12 años en soluciones de automatización y sistemas que involucran PLCs. Sus experiencias laborales comprenden cuatro compañías internacionales y la entrega de más de mil soluciones de sistema de control para 20 países. Esta experiencia esta plasmada en este libro, y constituye uno de sus pilares básicos.

En los últimos años, el autor ha estado enseñando Sistemas de Control PLC en centros de educación superior. Sus estudiantes cuentan con experiencia profesional/vocacional en el rango de 0-20 años en el campo de la automatización y los servicios tecnológicos.

Además, internet, el Standard DS/EN 61131-3, y las series de libros de PLC, se usan como inspiración y aclaración en la forma a la hora de presentar los casos prácticos.

La base del libro es un material en constante evolución y revisión, con comentarios, sugerencias y mejoras por parte de los profesores y estudiantes atendiendo el ciclo formativo en Ingeniería de Automatización de la academia local de formación profesional Dania, Erhvervsakademi Dania (nombre en idioma danés), situada en Randers, Dinamarca. El material ha sido actualizado recientemente, así que responde a todas las preguntas que los estudiantes realizan continuamente a lo largo del curso.

El autor cuenta con una Licenciatura en Ingeniería Eléctrica (B.Sc.E.E por sus siglas en inglés) por la universidad técnica de Aarhus-DK.

1.4 Ventajas de la programación en lenguaje ST

El ST es un lenguaje de programación muy flexible y universal. El código del programa ST puede ser fácilmente replicado entre diferentes tipos de PLC y puede ser enviado vía e-mail, debido a que se encuentra basado en texto y no en gráficas como la programación LADDER Diagram (LD)

El código del programa ST es similar a las oraciones de texto, y la escritura del código, se lleva a cabo como en un programa de procesador de textos (p. ej. Microsoft Word); lo cuál facilita su manejo. Consecuentemente, los mismos métodos de trabajo son aplicados como en un programa de procesador de textos.

El alto grado de estructuración del lenguaje ST, lo convierte en ideal para tareas basadas en matemáticas complejas, reutilización de códigos o toma de decisiones (p. ej., optimización automática de energía, algoritmos, recolección y regulación de datos en plantas de proceso).

Contando con experiencia en programación PLC, la transición hacia otros lenguajes de programación con Control PLC y automatización tales como robótica de programación o programación en Visual Basic, debería ser más sencilla.

En los últimos años, el número de compañías que se han cambiado a la Programación ST ha aumentado, debido sobre todo a las ventajas que el lenguaje ST ofrece sobre los otros cuatro lenguajes de programación PLC (LAD, SFC, FBD e IL).

Las ventajas son las siguientes:

El código de programación ST puede ser replicado relativamente fácil entre diferentes tipos de PLC. 1)Es el lenguaje PLC más sencillo para cálculos matemáticos, fórmulas y algoritmos 2) así como para operar con gran cantidad de datos (bigdata).Las soluciones PLC actuales son más exigentes que las de hace 20 años 3)Muchos lenguajes de programación generalizados para PC (C++, C#, VB, PASCAL) se asemeja en gran medida a la estructura del lenguaje ST.Los otros lenguajes PLC (LAD, SFC y FBD) requieren que parte del código esté programado en ST.Utiliza menos espacio cuando el código PLC debe ser documentado, descrito e impreso.Es el lenguaje PLC más sencillo para el control de versiones a través de comentarios en el código del programa o vía GIT 4) o Subversion4).

Se espera que la lista de instrucciones del lenguaje de programación PLC (IL), la cual se aplica a controles de PLC complejos, quede obsoleta en pocos años (cf. DS/EN 61131-3 sección 7.2.1). Esto provocará el reemplazo de estas soluciones por el lenguaje ST.

1.5 Desventajas de la programación en lenguaje ST

Una gran desventaja del lenguaje ST, es el hecho de que muchos técnicos y electricistas solamente son capaces de programar en LADDER Diagram. Para estos grupos de profesionales resulta difícil entender la programción ST, la cuál se basa en texto y no en gráficas como en LADDER Diagram 5) .

La programación en lenguaje ST puede ser confusa, ya que requiere de cierta experiencia en la estructuración de un programa de una forma adecuada.

Usuarios inexpertos, posiblemente encontrarán dificultades a la hora de encontrar fallos de programación en un programa en lenguaje ST.

Los tipos de PLC más pequeños normalmente no permiten la programción en lenguaje ST.

No es posible progamar un PLC de seguridad usando lenguaje ST. 6).

Alcanzar el nivel experto en programación en lenguaje ST, requiere de 3 a 5 años, tras terminar la correspondiente educación.

1) Esto es posible utilizando las herramientas de copiar-pegar y correcciones menores. Por ejemplo, Siemens usa # delante de las variables locales, mientras que Allen Bradley usa otra sintáxis para la función calls.

2) Los cálculos matemáticos son similares a las fórmulas matemáticas. Ver la sección 8.1 página 45.

3) En la actualidad existe un mayor enfoque hacia la optimización de energía, operación automática y la recolección de datos. Todas estas son soluciones las cuales requieren de código PLC más complejo que el ordinario re-lay/circuit breaker con funciones de marcha/paro.

4) Las herramientas GIT y Subversion son herramientas útiles para rastrear correcciones y extensiones en el código PLC. Esto permite poder trabajar con versiones anteriores de código PLC.

5) Para ayudar a empezar a usar la programación en lenguaje ST a las personas que usan la programación en lenguaje LADDER, en el capítulo 14, página 108, se muestran ejemplos de la programación en lenguaje LADDER equivalentes a la programación en lenguaje ST.

6) Un PLC separado o áreas especiales en un PLC ordinario, se usan para desconectar motores y otras partes móviles si la parada de emergencia se activa. Este proceso debe ser 100 % seguro con la finalidad de tener una desconexión apropiada. En este entorno, el código PLC debe ejecutarse de una manera segura, el cuál se aprueba para este propósito.

2 ¿Cómo ejecuta el PLC el código PLC?

Es importante conocer como un PLC ejecuta un programa, el cuál debe ser tomado en consideración cuando se escribe el programa PLC. Un PLC ejecuta programas secuencialmente en tiempo real, lo que significa que las partes de un solo programa deben ser ejecutadas en un período corto de tiempo. Los módulos del programa son ejecutados con un intervalo fijo (PLC scan-time); p. ej., 50 [ms]. Algunos de los PLCs más potentes tienen un scan-time de 1 [μs].

Los módulos del programa también pueden presentar diferentes scan-time, p. ej. 500 [ms] o cada minuto son posibles. Puede ocurrir que las variables que miden algunos sensores no cambien su valor rápidamente (p. ej. un sensor de temperatura) y por esta razón no es necesario obtener un scan-time rápido para todas las partes del programa.

Un programa extenso puede incluir un gran número de cálculos, lo que requiere de un mayor tiempo para ejecutarlo. Para reducir el tiempo total de ejecución, será necesario obtener diferentes scan-times para los diferentes módulos del programa.

El siguiente diagrama de flujo muestra el modo básico de operación para un PLC:

El diagrama de flujo muestra los siguientes puntos:

Tras conectar el PLC, este se iniciará/arrancará y descargará el sistema operativo, llamado

firmware

en un sistema PLC. Esto asegurará que el programa PLC esté familiarizado con el hardware conectado (HW).

Después de arrancar, todos los módulos de salida son reseteados. Es importante que todas las salidas tengan correctos los valores de arranque, de tal forma que los equipos periféricos conectados al PLC no ejecuten acciones indeseadas antes de que el programa PLC se haya iniciado.

Se establece una comunicación de datos a través de una red (

fieldbus

). En este paso, un gran número de variables son recibidas y enviadas desde/hacia otras unidades (p. ej. paneles de control, otros sistemas de control o instrumentos). Existen diversos tipos de

fieldbuses

(p. ej. Profibus, Profinet o Ethernet/IP). Sin embargo, estos

fieldbuses

cuentan básicamente con las mismas funciones y trabajan de forma parecida.

Valores procedentes de todos los sensores, contactores, interruptores, instrumentos y componentes de la máquina/unidad, son recibidos desde los módulos de entrada.

Se ejecutan todos los programas PLC una vez, dependiendo del

scan-time

. Los programas se dividen de la siguiente forma:

Módulos del programa. Ver capítulo 10, página →

Funciones. Ver sección 10.1, página →

Funciones (FC) y Funciones de bloques (FB) Ver página →

Los programas deben dividirse, con el fin de dotar al programa de una buena estructura.

Escribir valores para todos los módulos de salida, p. ej., nuevos ajustes para motores/maquinaria, válvulas, lámparas e instrumentos.

Se repiten los pasos 3 a 6. Programa de escaneo.

La ejecución del programa solo se detiene si:

El programa PLC está configurado en modo STOP.

Ocurre un error en un tiempo de ejecución.

Se desconecta el PLC de forma intencionada o por fallo en el suministro eléctrico.

3 Comentarios en el código de programación

Los comentarios son una parte muy importante de la programación. Los comentarios que se añaden en el código de programación son útiles a la hora de hacer correcciones o adiciones al código porsteriormente.

Usa los comentarios para explicar cómo un código PLC específico se desarrolla, de manera que tú mismo puedas recordarlo después. En muchos casos, el código PLC puede ser muy claro por sí mismo; es por eso, que es mejor usar los comentarios cuando el código se vuelva más complejo.

A continuación, se pueden observar dos tipos de comentario en lenguaje ST:

Line Comment

// Line comment. Forward-slash is written in front of EVERY line.

// Also used to remove/sort out PLC code – i.e. a code which is not executed

// The code has disappeared if it is deleted, therefore place // in front of the line

// instead of deleting the code. By doing this, the code is still to be seen

//but not executed

Block Comment

(* Block comment is initiated by start parenthesis and a star. It is finalized by a star and end parentheses. They are used for making more lines of PLC code inactive *)

Los comentarios de línea o line comment sólo pueden ser posicionados en la misma línea delante o después del código.

Los comentarios posicionados entre (* y *) son llamados comentarios de bloque o block comments y son usados con la finalidad de eliminar/seleccionar líneas del código, o para escribir comentarios que completan más líneas.

Para cada función o módulo del programa, se suelen escribir comentarios en la parte superior, de forma que otro programador pueda hacer una lectura rápida de la descripción o introducción de la función o del módulo del programa.

Se recomienda incluir un registro de la versión en las líneas superiores, de tal manera que sea posible llevar un control de las modificaciones realizadas en el código PLC (incluir información referente a: fecha, autor, explicación de la modificación, motivo, etc.):