Tema 2: Programación de PLCs

Documentos relacionados
Manual de formación para soluciones generales en automatización Totally Integrated Automation (T I A ) MÓDULO B5

Principios de Programación en STEP7

Práctica 5: Programación Estructurada

Manual de formación para soluciones generales en automatización Totally Integrated Automation (T I A ) MÓDULO B4. Bloques de Datos

Tema: Tipos de Bloques en S7-1200

Curso SIMATIC S7 Nivel II

Tema 2: Programación de PLCs

Tema 2: Programación de PLCs

AUTOMATIZACIÓN INDUSTRIAL

Autómata Programable (PLC)

Prácticas Presenciales

- Aprender cómo configurar el hardware del equipo de control. - Comprender los conceptos de programación estructurada.

Departamento de Ingeniería de Sistemas y Automática. STEP 7. Juego de instrucciones

INTRODUCCIÓN A LA PROGRAMACIÓN EN AWL

Tema 12: El sistema operativo y los procesos

PLCs ESTÁNDAR IEC Programa del Curso. Sistema Supervisor / SCADA. Comunicaciones. Lenguajes: LD FBD PLC SFC IEC Proyectos / Aplicaciones

PROBLEMAS TEMA 1: Estructuras de interconexión de un computador

Manual de formación para soluciones generales en automatización Totally Integrated Automation (T I A ) MÓDULO A7

Departamento de Ingeniería de Sistemas y Automática PROGRAMACION DE AUTOMÁTAS STEP 7

AUTOMATA PROGRAMABLE S7-300 Instrucciones avanzadas

2 Operaciones de byte, palabras y dobles palabras.

Introducción al PLC Simatic Siemens S7-200.

Lectura de Señales Analógicas

Arquitectura del PLC. Dpto. Electrónica, Automática e Informática Industrial)

Tema: Operaciones de Carga, Transferencia, Comparación y Aritméticas del S7-1200

Direccionamiento en STEP 7

Tema 2: Programación de PLCs

Prácticas de la asignatura Automatización Industrial

Versión 22/01/2002 Pág. 1 de 154

Máster universitario en automatización de procesos industriales

Manual de formación para soluciones generales en automatización Totally Integrated Automation (T I A ) MÓDULO A4. Programación de una CPU 315-2DP

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

SIMATIC S Actualización del manual de sistema S7-1200, edición 09/2016 Información del producto

ALGORÍTMICA. Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid.

Tema 0. Introducción a los computadores

Lenguajes de Programación de Autómatas

Controladores Lógicos Programables

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos

Ejercicio 1(30 minutos)

SIMATIC. Procesador de comunicaciones Driver de impresora CP 340 PtP. Getting Started 04/2005 A5E

ING. JONATHAN QUIROGA TINOCO. Desarrollado por Ing. Jonathan Quiroga T.

Estructura y utilización de la memoria. de la CPU SIMATIC. S Estructura y utilización de la memoria de la CPU. Prólogo. Guía de documentación

IEC Programación de FB (Functión Block)

Manual de formación para soluciones generales en automatización Totally Integrated Automation (T I A)

Tema 2: Programación de PLCs

Prácticas de Redes de Comunicación Industriales curso PRÁCTICA 5: AS-i

Introducción a los Sistemas Operativos

SISTEMAS OPERATIVOS Arquitectura de computadores

PROGRAMACIÓN DE PROCESOS SECUENCIALES

CÓMO FUNCIONA UN PLC Control Combinacional Programación del PLC

Repaso concepto de programa

CURSO: PLC S Básico. Días y horarios de impartición del curso

PROGRAMACIÓN DE PROCESOS SECUENCIALES

Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía

Manual de formación para soluciones generales en automatización Totally Integrated Automation (T I A )

2 Introducción a los Micro-PLCs S7-200

Sist s em e a m s s O per e ativos o. s Unidad V Entrada Sali l d i a.

Arquitectura de los Autómatas Programables

Estructura de Computadores. Contenido. Sistema de E/S. 7.- E/S y dispositivos periféricos

Estructura del Computador

Indice. Subrutinas vs rutinas de interrupción Subrutinas Tareas a realizar para utilizar una subrutina en el programa

CONTROLADORES Control Lógico Programable (PLC)

Manual de referencia de C++ Parte IV Variables Punteros. Preparado por Prof. Luis A. Ortiz Ortiz

Unidad 5 Unidad central de proceso

Manual de formación para soluciones generales en automatización Totally Integrated Automation (T I A )

Tema 2: EL TIPO DE DATOS ENTERO. INSTRUCCIÓN DE ASIGNACIÓN Y DE COMPOSICIÓN SECUENCIAL

T E M A 7. Interrupciones

ÍNDICE CAPÍTULO 1 FUNDAMENTOS DE LOS MICROCONTROLADORES

CICLOS DEL PROCESADOR

INTRODUCCIÓN A RAPID Programación con el IRB-140

Ejecución de programas

DISEÑO CURRICULAR ARQUITECTURA DEL COMPUTADOR

Tema 6 Organización y gestión de la memoria

S7-300 Primeros pasos para la puesta en marcha de la CPU 31xC: Acoplamiento punto a punto

S,L. C/ Ordóñez, 21- CP/ LEGANÉS ( Madrid) Tel.: Fax.:

SIMATIC. Equipos completos C7-623, C Tomo 2 Utilización del C7. Indice. Informaciones para el usuario. Introducción 1

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Direccionamiento. Ejecución del programa Programación Funciones lógicas. Función memoria. Bloques de Función Resumen.

Tema: Operaciones de Carga, transferencia, comparación y Aritméticas del S7-200

ITT-SE, ITT-ST, IT. Autómatas y Sistemas de Control 19 de enero de 2010 Alumno:... DNI:...

Manual de formación para soluciones generales en automatización Totally Integrated Automation (T I A )

Memoria y Entrada/Salida Tecnología Organización - Expansión

Arquitectura de Computadores II Clase #3

Unidad 1: Conceptos generales de Sistemas Operativos.

AUTOMATIZACIÓN CON PLC. UNIVERSIDAD DE ANTIOQUIA DEPARTAMENTO DE INGENIERÍA ELECTRÓNICA MEDELLÍN Sesión 5.

SIMATIC. Software de sistema para S7-300 y S7-400 Funciones estándar y funciones de sistema. Manual de referencia. Edición 08/2000 A5E

AUTOMATIZACIÓN DE LÍNEAS DE PASTEURIZACIÓN, SIEMBRA Y CULTIVO DE FERMENTOS PARA LA FABRICACIÓN DE YOGURT FIRME

TIA PORTAL S7-300 Básico

Aplicaciones Industry Sector

COMUNICACIONES INDUSTRIALES. Redes industriales

Programación MODULAR: Subalgoritmos - funciones y procedimientos

RESEÑA DE LENGUAJE C

Comunicación FDL. Tecnologías de Control

APUNTES GENERALES DE M.M.S.A.P.

S7-PLCSIM V5.3 incl. SP1

Programación en STEP 7 en lenguajes KOP y AWL.

ALGORITMOS Y PROGRAMACIÓN I Unidad 3

C/ Ordóñez, 21- CP/ LEGANÉS ( Madrid) Tel.: Fax.: AUTOMATISMOS Y AUTÓMATAS PROGRAMABLES OMRON

Control, Instrumentación e Instalaciones Ingeniería Ambiental

AUTOMATIZACIÓN INDUSTRIAL

Transcripción:

Tema 2: Programación de PLCs 1. STEP 7 2. PROGRAMACIÓN BÁSICA AWL 3. PROGRAMACIÓN ESTRUCTURADA Introducción Bloques de organización (OB) Funciones (FC) Bloques de Función (FB) Boques de datos (DB) Página 1

Introducción Facilita modularidad del programa, y clarifica su organización y análisis Permite generar funciones reutilizables y no repetir código Simplifica el test y la puesta en servicio Sistema operativo OB1 FC FB FB FC SFC SFB Otros OBs Página 2

Introducción Modularización de tareas: Las tareas parciales se solucionan con sus propios módulos La asignación de parámetros flexibiliza la programación Ejemplo: Ciclo de taladro con profundidad asignable por parámetro Reutilización de los Módulos: Los Módulos pueden llamarse tantas veces como se necesite Restricciones: no se tiene acceso a direcciones globales OB 1 OB 1.. FB1 Motor 1 FB2 CALL FB1, DB2 Marcha :=E 0.0 Paro :=E 0.1 Motor_on :=A12.0 Velocidad :=AW14.. Válvulas FB10 Controlador FB 1 FC 5 Valor límite DB 2... SFC Copia Direc. Decl. Nombre Tipo 0.0 in Marcha BOOL 0.1 in Paro BOOL 2.0 out Motor_on BOOL 4.0 out Velocidad INT 6.0 stat Veloc_ant INT 0.0 temp Calc_1 INT... U #Marcha UN #Paro = #Motor_on. Página 3

Introducción Tipo de Módulo Móduo de Organización (OB) Módulo de Función (FB) Función (FC) Bloque de Datos (DB) Módulos de Función del Sistema (SFB) Función del Sistema (SFC) Bloques de Datos del Sistema (SDB) Propiedades - interfase para el usuario - prioridades graduadas (0 a 27) - información de inicio específica en la pila de datos locales - parametrizable (los parámetros pueden asignarse en una llamada) - con (rellamada) memoria (variables estáticas) - parametrizable (los parámetros deben asignarse en la llamada) - básicamente sin memoria (sólo variables temporales) - almacenamiento estructurado de datos locales (DB de instancia) - almacenamiento estructurado de datos globales (válido en todo el programa) - FB (con memoria) guardado en el sistema operativo de la CPU y llamable por el usuario - función (con memoria) guardada en el sistema operativo de la CPU y llamable por el usuario - bloque de datos para datos de configuración y parámetros Página 4

Introducción Variables/Datos Globales (válidos en todo el programa) PAE / PAA E / A M / T / Z Áreas de DB Variables/Datos Locales (sólo válidos en un bloque) Variables temporales se borran después de la ejecución del bloque asociado almacenamiento temporal en la L stack utilizables en OBs / FCs / FBs Varibales estáticas se mantienen incluso después de que sea ejecutado el bloque almacenamiento permanente en DBs. solo se pueden usar en FBs absoluto simbólico Acceso Página 5

Introducción Parámetros de Entrada (IN) solo en FBs, FCs, SFBs y SFCs Con ayuda de los parámetros de entrada se pueden asignar datos necesarios para el procesamiento del bloque. Parámetros de Salida (OUT) solo en FBs, FCs, SFBs y SFCs En los parámetros de salida, los resultados del procesamiento del bloque son depositados aquí. Parámetros de Entrada/Salida (IN_OUT) solo en FBs, FCs, SFBs y SFCs En los parámetros de Entrada/Salida, los contenidos de estos parámetros y el resultado del procesamiento del bloque depositado en ellos mismos. Datos Estáticos (STAT) sólo en FBs y SFBs Los datos estáticos son los datos locales a un bloque de función, los cuales son almacenados en un bloque de datos de instancia y por tanto preservados hasta el siguiente procesamiento del bloque. Datos Temporales (TEMP) en todos los bloques Los datos estáticos son los datos locales a un bloque que almacenan valores durante el proceso de dicho bloque en una pila de datos locales (L-Stack) y, una vez ha terminado de procesarse el bloque, el contenido de estas variables se pierde. Página 6

Introducción Los parámetros son canales para transferir información: Parámetros de Entrada (In): Parámetros de Salida (Out): Parámetros E/S (In/Out): Dir. Decl. Nombre Tipo Valor inicial... 0.0 in Marcha BOOL FALSE 0.1 in Paro BOOL TRUE 2.0 in Velocidad INT 0 2.0 out Motor_on BOOL FALSE 8.0 out Consigna INT 0 10.0 inout EMER_OFF BOOL FALSE... stat............ temp........ Los parámetros de un módulo: Están en la sección de código como variables "locales" Pueden tener cualquier tipo de dato Parámetros de entrada Parámetros In/Out EN "Motor" ENO Marcha Motor_on Paro Consigna Velocidad EMER_OFF Parám. de Salida Página 7

Bloques de organización Son los encargados de poner programa de usuario a disposición de la CPU, es decir, nuestro programa debe estar incluido en un OB para poder ser ejecutado por el Autómata Los OBs son llamados cíclicamente por el sistema operativo. Nunca por otro módulo lógico. Un OB puede ser interrumpido por otro OB de mayor prioridad. Están jerarquizados en prioridades y se dividen en dos tipos: Dedicados a tareas periódicas: OB1: Programa principal (mínima prioridad) OB10: Interrupción horaria OB35: Interrupción cíclica, etc. Dedicados a tratamiento de errores: OB40: Error hardware OB121 y 122: Error síncrono, etc. Página 8

Bloques de organización Arranque OB 100 OB 101 OB 102 Ejecución Cíclica del Programa Ejecución Periódica De un programa Ejecución del programa Sujeta a eventos OB 1 OB 10...17 (Alarmas horarias) OB 20...23 (Alarmas de retardo) OB 80...87 (Errores Asíncronos) OB 30...38 (Alarmas Cíclicas) OB 40...47 (Alarmas de Proceso) OB 121, 122 (Errores Síncronos) OBs de Alarma Error OBs Página 9

Bloques de organización Ej. OB82 (Prio.26) = Manejo de Error. Ejecutado en el caso de rotura de un hilo en la entrada analógica PEW 352 Ej. OB20 (Prio.3) = Alarma de retardo. La ejecución comienza 3.25s después de la detección de un objeto. El OB1 Se ejecuta contínuamente... Nº OB Tipo de OB OB 1 Programa Cíclico OB 10 Alarma Horaria OB 20 Alarma de retardo OB 35 Alarma Cíclica OB 40 Alarma de proceso OB 82 Manejo de Error Ej. OB10 (Prio.2) = Alarma Horaria. Ejecutada una vez Por minuto desde las 9:30... Hasta que es interrumpido por otro OB Prioridad 1 2 3 12 16 26 / 28 Página 10

Bloques de organización: OB de Arranque Rearranque Completo automatico manual S7-300 / 400 Alimentación S7-300 STOP->RUN S7-400 STOP->RUN + CRST Borrado de la imagen de proceso, M, T, Z no remanentes Ejecución del OB 100 Habilitación de Salidas C I C L O Lectura de la PAE Ejecución del OB1 Escritura de la PAA Página 11

Funciones Las Funciones son módulos de código que se ejecutan al ser llamadas desde otro módulo. Cuando se la llama, la función actúa como una subrutina del programa. Cuando termina de ejecutar su código, el control se devuelve al módulo y al segmento desde el cual fue llamada. Programa Principal OB1 Módulo Subrutina FC Ejecución del programa Instrucción que llama a otro módulo Ejecución del Programa fin de bloque Las Funciones son bloques lógicos sin memoria Las variables temporales de las FCs se memorizan en la tabla de datos locales Página 12

Funciones Módulos parametrizables: tantos parámetros de entrada, salida, y entrada/salida como se necesiten. sin memoria, p.e. sólo variables temporales sin acceso a variables globales y direcciones absolutas con los mismos parámetros de entrada devuelven el mismo resultado Amplían el juego de instrucciones del procesador Ejecución del programa CALL FC 10 On_1 := E 0.1 On_2 := E 0.2 Off := A8.0 Function FC10 in On_1 BOOL in On_2 BOOL out Off BOOL...... U #On_1 U #On_2 = #Off... Página 13

Funciones: sin parámetros Contienen instrucciones a modo de subrutinas Se insertan como nuevo bloque desde el administrador SIMATIC (del mismo modo que se insertan VATs) Llamada (equivalen a CALL pero no es posible transferir parámetros): UC llamada incondicional Ej.: UC FC12 CC llamada condicionada a RLO=1 Ej.: U E125.0 CC FC1 El fin de una función se realiza con la instrucción BEA (incondicional) o BEB (condicional a RLO=0) Página 14

Funciones: con parámetros Contienen instrucciones a modo de subrutinas Se insertan como nuevo bloque desde el administrador SIMATIC (del mismo modo que se insertan DBs o FCs sin parámetros) Al darles contenido (introducir código) se debe rellenar también su Tabla de Declaración, donde se incluyen los parámetros formales de la función (con los que se diseña la función) declarados como IN, OUT o IN/OUT. Los parámetros actuales serán los que se transfieran desde el bloque actual a la función, siendo estos valores asignados a los parámetros formales de la FC para que trabaje con ellos El fin de una función con parámetros se realizará igualmente con instrucciones BEA y BEB Página 15

Funciones: con parámetros Ejemplos: Llamada a una función sin parámetros: CALL FC 12 Llamada a una función con parámetros: CALL FC 25 Velocidad := MW10 Inicio := E124.0 Alarma := A125.0 Parámetros formales: Velocidad, Inicio y Alarma Parámetros actuales: MW10, E124.0 y A125.0 Dentro de FC 25 (en su Tabla de Declaración) se habrán definido las características de Velocidad, Inicio y Alarma CALL llama a un bloque lógico independientemente del RLO Página 16

Funciones Instrucción CALL El tiempo de procesamiento para CALL depende del número y la posición de memoria de los parámetros actuales La instrucción CALL asegura que los parámetros de módulo son provistos correctamente con datos actuales Ejemplo: CALL FC10 On_1 := E 0.1 On_2 := E 0.2 Off := A 8.0 Instrucción de llamada UC y CC Llamada a módulo independiente del RLO (UC) o dependiente del RLO (CC) Ejemplos: UC FC20 ó CC FC20 Sólo se pueden usar cuando la FC no tiene parámetros Página 17

Bloques de función Es un bloque con memoria. Tiene asociado un bloque de datos DB de instancia, de tal forma que en cada nueva llamada se puede conservar el valor de las variables internas de la función. Esto no era posible en FCs DB10 Copia la parte de declaración local del FB FB1 Llamada a un módulo con los parámetros actuales Ejemplo: Call FB1,DB10 Área de Declaración Local Sección de código del módulo llamado usando los valores del área de memoria local. Página 18

Bloques de función Módulos parametrizables: tantos parámetros de entrada, salida y entrada/salida como se necesiten con memoria, es decir, con variables estáticas (también puede haber temporales) Llamada con área de datos propia (instancia) Aplicación: Funciones de temporización y contadores Unidades de control de procesos con estados internos calderas motores, válvulas, etc. CALL FB5, DB16 Marcha :=E 0.0 Paro :=E 0.1 Motor_on :=A8.0 Velocidad :=AW12 FB 5 Es necesario DB 16 Motor 0.0 Marcha BOOL 0.1 Paro BOOL 2.0 Motor_on BOOL 4.0 Velocidad INT in Marcha BOOL in Paro BOOL out Motor_on BOOL out Velocidad INT stat... Temp...... U #Marcha UN #Paro = #Motor_on... Página 19

Bloques de función Tipos de variables añadidos (no en FCs): STAT: estático; conserva el valor de la variable de un ciclo para el siguiente, ya que almacena su valor en el módulo de datos DB asociado a la función. Llamada a módulo de función: CALL FBnx, DBny CALL FB1, DB3 Desde el administrador SIMATIC se habrán creado (dentro del Proyecto y en la carpeta Bloques) FB 1 y DB 3: Primero se crea FB1: tabla de declaración de variables, código de función, etc. Después se crea DB3 (asociado a FB1) y toma la tabla de declaración de FB1 Asignación del valor actual al parámetro/variable formal: desde el DB3: Ver > datos > valor actual Desde el OB100: Load + Transfer Página 20

Bloques de función Mediante la llamada con varias instancias de un FB se pueden controlar varios equipos con el mismo FB Página 21

Bloques de datos Zonas de memoria para almacenamiento de datos organizados del programa No pierden la información cuando el programa los ha acabado de utilizar Existen DB s de dos tipos: Globales: disponibles para cualquier módulo lógico del programa. De instancia: asignado a un módulo de función, por lo que sólo es accesible por éste. Página 22

Bloques de datos globales Son remanentes: no pierden la información aunque se corte la alimentación (en coherencia con el programa cargado en la CPU) Tras la creación de un DB, éste debe ser definido (rellenado) con las variables que se desee. Tipo de variables: Simple (bool, byte, entero, palabra, doble palabra). Compuesto (STRING, DATE_AND_TIME, ARRAY). Estructuras. Apertura: AUF DB8 Acceso: L DB8 U DB8.DBX3.0 lleva implícito AUF DB8 T DB7.DBW3 lleva implícito AUF DB7 U DB6.DBD4 lleva implícito AUF DB6 Los DB permiten la asignación de simbólicos. Página 23

Bloques de datos globales DB 99 "Valores" Dir. Nombre Tipo Acceso Tradicional absoluto Acceso Total simbólico 0.0 Estado BOOL 1.0 Estados BYTE 2.0 Numero INT 4.0 Peso[1] REAL AUF "Valores" U DBX 0.0 AUF DB 99 L DBB 1 AUF "Valores" L DBW 2 o U DB99.DBX0.0 o U Valores".Estado o L DB99.DBB1 o L Valores".Estados o L DB99.DBW2 o L Valores".Numero 8.0 Peso[2] REAL AUF DB 99 L DBD 8 o L DB99.DBD4 o L "Valores".Peso[1] Página 24

Bloques de datos globales Abrir módulo de datos Carga y transferencia en módulos de datos AUF DB 19 L DBB 1 Cargar el byte de datos 1. L DBW 2 Cargar la palabra de datos 2 (byte 2/3). L 5 Cargar el número 5. T DBW 4 Transferir a la palabra 4. L 'A' Cargar el carácter ASCII A. L DBB28 Cargar el byte de datos 28. ==I Comparar. U DBX 3.1 Consultar el bit 1 del byte 3. L DB19.DBW4 Cargar la palabra de datos 4 del DB19 (incluye AUF DB 19). Página 25

Bloques de datos de instancia Asociado a un bloque de función FB. Antes de crear un DB instancia debe existir el FB Cuando se inserta en el proyecto desde el Administrador SIMATIC, se debe asociar a un bloque de función FB ya existente. Aparecen en la tabla de variables los parámetros correspondientes al FB asociado automáticamente. Pueden asociarse varios DBs a un único FB. CALL FB22,DB201 CALL FB22,DB202 CALL FB22,DB203 Página 26

Resumen FC FB Lenguaje Sin parámetros Con parámetros sin param., sin DB inst. Con param., con DB inst. AWL CALL FC1 UC FC1 CC FC1 CALL FC2 Par1:... Par2:... Par3:... UC FB1 CC FB1 CALL FB2, DB3 Par1:... Par2:... Par3:... KOP FC1 ( CALL ) FC1 EN ENO FC2 EN ENO Par1 EN FB1 ENO DB3 FB2 EN ENO Par1 Par2 Par3 Par2 Par3 DB3 FC2 EN Par3 Par1 Par2 ENO EN FB1 ENO FB2 EN Par3 Par1 Par2 ENO Página 27

EJERCICIO (Entregable 7) Tenemos una mezcladora que produce 3 tipos de productos, magdalenas, sobaos y donuts, para lo cual controla la receta modificando las proporciones de harina (A124.0), leche (A124.1), levadura (A124.2), azúcar (A124.3) y un motor que realiza la mezcla (A124.4). La producción empezará con un flanco de subida de la señal E124.0. El byte EB125 controla el producto a fabricar: magdalenas si es 0, sobaos si vale 1 y donuts en caso de que almacene 2. En cualquier otro caso la mezcladora se mantendrá parada. La tabla de tiempos para cada producto es la siguiente: Harina Leche Levadura Azúcar T mezcla Magdalenas 3 2 3 2 4 Sobaos 1 2 3 1 3 Donuts 2 1 2 1 2 La entrada E124.5 permite elegir si los productos y el proceso de mezcla se realizan simultáneamente (si E124.2=0) o de manera secuencial (si E124.2=1) Página 28

EJERCICIO (Entregable 7) Resuelva el ejercicio utilizando: Funciones con parámetros. Bloques de función con DB s de instancia. Evite, en la medida de lo posible, el uso de saltos. Página 29