Download Principios de Programación en STEP7
Document related concepts
Transcript
Principios de Programación en STEP7 Automatización Industrial Índice TEMA – Principios de Programación en STEP7 1. – Programas en la CPU 2. – Edición de Programas 2.1 – IEC 1131-3 2.2 – Instrucciones/Operandos/Módulos 3. – Estructura de Programas 4. – Tipos de Módulos 4.1 – Módulos de Sistema 4.2 – Módulos de Usuario 5. – Tipos de Procesamiento 6. – Tiempos de Ciclo y Respuesta 7. – Proyectos STEP7 Programas en la CPU • En una CPU corren dos programas • Sistema operativo: Está contenido en cada CPU y organiza todas las funciones y procesos de la CPU no relacionados con una tarea de control específica. Entre sus funciones están: • gestionar el arranque normal y completo del PLC/API • actualizar la imagen del proceso de entradas y salidas • llamar al programa de usuario • detectar alarmas y llamar a los programas de atención a las mismas • reconocer y tratar los errores • administrar las áreas de memoria • comunicar con unidades de programación y otros sistemas de supervisión • Programa de usuario: Hay que crearlo y cargarlo la CPU. Contiene todas las funciones necesarias para la tarea de control de una aplicación específica. Entre las tareas del programa de usuario están: • definir las condiciones de arranque (completo ó normal) de la CPU • tratar datos del proceso (funciones combinatorias, valores analógicos, ....) • reaccionar a alarmas • tratamiento de perturbaciones en el funcionamiento normal del programa La Norma IEC 1131 / EN-UNE 61131 Parte Título Contenidos Parte 1 Información general Definición de términos y glosario del PLC/API Características funcionales del PLC/API Parte 2 Especificaciones y ensayos de los equipos Prestaciones eléctricas, mecánicas y funcionales Información a suministrar por el fabricante Ensayos y verificaciones Parte 3 Lenguajes de programación Estructura del software de los PLC/API Lenguajes de programación Elementos del lenguaje Parte 4 Guía para usuarios Especificaciones y análisis del sistema Aplicación y selección del PLC/API Seguridad y protección, instalación y mantenimiento Parte 5 Comunicaciones Modelos, bloques de comunicación, mapeado en protocolos ISO Lenguajes de IEC 1131 - 3 / STEP7 Lenguaje Diagrama de funciones IEC 1131-3 FBD Function Block Diagram STEP 7 FBD/FUP Function Block Diagram Diagrama de contactos LD Ladder Diagram LAD/KOP Ladder Logic Lista de instrucciones IL Instruction List STL/AWL Statement List Texto estructurado ST Structured Text SCL Structured Control Language Gráfico secuencial SFC Sequential Function Chart GRAPH7 Diagrama de bloques CFC Continuous Function Chart Diagrama de gráfico de estados HIGRAPH7 Funcionalidad del Software • El entorno de programación permite desarrollar proyectos de control y automatización con las siguiente funcionalidad: – Crear la estructura de directorios necesaria para la gestión de cada proyecto – Configurar el hardware del equipo – Desarrollar programas off-line – Cargar y descargar programas y datos en el PLC/API (on-line) – Depurar el programa en fase de ejecución sin necesidad de interrumpir la ejecución del programa (on-line) – Realizar funciones de test o estado de variables y zonas de la memoria – Realizar funciones de forzado de variables – Elaborar documentos para la fase de mantenimiento posterior – Analizar el estado y comportamiento de la CPU (pilas, tiempos, ...) y de los módulos de señal asociados Programas de Usuario Bloque en el Programa de Usuario STEP 7 permite estructurar el programa. Esto aporta las siguientes ventajas: • • • • • • los programas se pueden dividir en bloques se pueden estandarizar secciones individuales del programa se simplifica la organización del programa las modificaciones del programa pueden realizarse más fácilmente se simplifica el test del programa, ya que puede ejecutarse por partes se simplifica la puesta en servicio Edición de un Programa Programa conjunto de todas las instrucciones y convenciones para el tratamiento de las señales, por medio de las cuales se actúa sobre la instalación a controlar (proceso), de acuerdo con unas órdenes de control Estructura Representación •Técnica modular •Segmentos •Comentarios • FBD / FUP • LAD / KOP • STL / AWL Instrucción Instrucción unidad más pequeña autónoma del programa y constituye una orden de trabajo para el procesador Instrucción 002: A Parte operacional Operando Identificación Parámetro I 1.0 Operación Operando Parámetro Identificador del operando Dirección relativa de la instrucción en el módulo respectivo Operandos OPERANDOS Entradas NEMONICO FUNCION I Imagen del proceso de entradas (PII) Salidas Q Imagen del proceso de salidas (PIQ) Marcas M Para almacenar resultados binarios intermedios Datos D Para almacenar resultados digitales intermedios Tiempos T Funciones de tiempo (temporizadores) Contadores C Funciones de cómputo (contadores) Periferia P Para acceder directamente a la periferia Locales L Datos locales temporales Módulos OB, FB, FC SFB, SFC Para estructurar el programa Ejemplo de Programa Esquema STL/AWL Eléctrico FBD/FUP LAD/KOP S1 S2 A I 0.0 AN I 0.1 = Q 4.5 I 0.0 & I 0.0 I 0.1 Q 4.5 Q 4.5 I 0.1 = H1 Estructuración de los Programas • STEP 7 provee tres posibilidades para organizar un programa. Programación Lineal Arranque Programación Dividida Arranque Programación Estructurada Arranque Receta A Receta B OB1 OB1 Mezclador FB1 OB1 FC2 FB2 Descarga Programa Lineal: Todas la instrucciones están contenidas en un módulo (normalmente en el módulo de organización, OB1) Programa dividido en áreas: Las instrucciones para funciones individuales están contenidas en módulos individuales. El OB1 llama a los módulos individuales sucesivamente. FC1 FC3 Programa Estructurado: Las funciones reutilizables son cargadas en módulos individuales. El OB1 (u otros módulos) llaman a estos módulos y les pasan datos relevantes. Estructura de Programa. Programación Lineal OB1 1ª instrucción 2ª instrucción .. .. .. . última instrucción Programación Lineal OB1: Ejemplo de de un simple módulo lineal en FUP Segmento 1: motor marcha/paro I 0.0 >=1 Q 4.0 & Q 4.0 I 0.1 = Segmento 2: Seguridad y señales de aviso I 0.2 & I 0.3 Q 4.1 I 0.4 = OB1: ejemplo de un simple módulo lineal en AWL Segmento 1: motor on/off A( O I 0.0 O Q 4.0 ) AN I 0.1 = Q 4.0 Segmento 2: Seguridad y señales de aviso A AN AN = I 0.2 I 0.3 I 0.4 Q 4.1 Programación Lineal. Ejemplo Programación Dividida FC OB1 Ingrediente_A Ingrediente_B >=1 & = (CALL) & (CALL) >=1 FC Mezclador Descarga = (CALL) >=1 (CALL) & FC = >=1 FC = Ejecución de un Programa Dividido Programa principal OB Módulo subrutina Procesamiento del programa Instrucción que llaman otros módulos Procesamiento del programa Fin de módulo Programa Dividido. Control de nivel FC Sistema Operativo Programación Estructurada I OB1 FC FB FB FC SFC SFB Otros OBs Programación Estructurada II Motor OB1 >=1 & = Descarga >=1 & = & = = Estructura del Programa OB1 Módulo 7 Módulo 32 Procesar módulo 7 Lamar al módulo 32 .. .. . Módulo R ... Llamar al módulo X Retornar Procesar módulo 10 Retornar Módulo 10 Retornar Retornar Retornar Nivel1 Nivel2 Nivel3 Niveles 4..7 Nivel 8 División Tecnológica de un Programa Sistema operativo Inicio del OB 1 ciclo FB 10 Tren CINTA A CALL FB 10 CALL FC 50 FC 50 DB inst. 10 FB 20 CINTA B CALL FB 20 CALL FC 50 DB inst. 2 Accionamiento Tipos de Módulos de Programa Ciclo OB Tiempo Proceso FB FC SFB FB FB SFC Módulo de Organización Error Modos de operación del sistema Leyenda: Módulo de datos de instancia Bloques CPU 315 CPU 315-2DP Tamaño Mód. de organización (OB) 13 14 8 Kby Módulo de función (FB) 128 128 (0-127) 8 Kby Función (FC) 128 128 (0-127) 8 Kby 8 Kby Módulo de datos (DB) 127 127(1-127) Función del sistema (SFC) 48 53 Mód. func. sistema (SFB) 7 7 Módulos de Usuario Tipo de Módulo Características Organización (OB) - Interfase de usuario entre el sistema operativo y el programa Prioridades establecidas de (1a 29) Información especial de inicio en la pila de datos locales Definen la estructura del programa de usuario Módulo de función (FB) - Módulos con memoria que puede programar el usuario Parametrizable / retentiva No parametrizable / retentiva No parametrizable / no retentiva Función (FC) - Rutina de programa para funciones frecuentes. - Un valor de retorno es transferido. (Los parámetros deben ser asignados por la llamada.) - No retentivo - Parametrizable Módulo de Datos (DB) - Estructurado, almacenamiento de datos locales (DB instan.) - Estructurado, almacenamiento de datos globales (válido en todo el programa) Módulos del Sistema Tipo de Módulo Características Función del Sistema (SFC) - Integrados en el sistema operativo de la CPU - Un usuario puede llamar esta función (sin memoria). Módulos de Funciones del Sistema (SFB) - Integrados en el sistema operativo de la CPU - Un usuario puede llamar esta función (con memoria). Dato de Sistema (SDB) - Módulo de datos para datos de configuración y parámetros Módulos de Organización – OB´s (I) Bloques de Organización (OB): • Constituyen el interfaz entre el sistema operativo y el programa de usuario. • Tienen prioridad. • En las CPUs del S7 300 la prioridad de los OBs es fija • Es posible asignar la misma prioridad a varios OBs • Con prioridad “0” se desactiva el OB de alarmas • Son llamados por el sistema operativo. • Cada OB contine una información de arranque de 20 bytes de datos locales que entrega al S.O. durante el arranque • Controlan: • El procesamiento cíclico • El procesamiento controlado por alarmas del programa • El comportamiento en el arranque del sistema de automatización • El tratamiento de errores Módulos de Organización – OB´s (II) Tipo de Alarma Módulo de organización Ciclo libre OB1 1 Alarmas horarias OB 10 a OB 17 2 Alarmas de retardo OB 20 a OB 23 de 3 a 6 Alarmas cíclicas OB 30 a OB 38 de 7 a 15 Alarmas de Proceso OB 40 a OB 47 de 16 a 23 Alarma de multiprocesamiento OB 60 25 Error de redundancia OB 70 y OB 72 25 y 28 Errores asíncronos OB 80 a OB 87 26 Ciclo no prioritario OB 90 29 Arranque OB 100 a OB 102 27 Errores síncronos OB 121y OB 122 Prioridad la del OB del error Ejecución Cíclica I Sistema operativo Programa de usuario Conectar Ciclo Programa principal Ejecución Cíclica II Sistema operativo Programa de usuario Conectar Programa de usuario Ciclo Programa principal Alarma Interrupción Programa de alarma Error Interrupción Tratamiento de errores Secuencia y Profundidad de Anidamiento Sistema operativo Inicio del ciclo Profundidad de anidamiento OB 1 FB 1 FC 1 DB inst. 1 FB 2 DB inst. 2 FC 1 FB 1 SFC 1 DB inst. 1 DB 1 Llamadas a los Módulos Llamada de un módulo (OB, FB, FC) Ejecución del programa Instrucción que llama a otro módulo Módulo llamado (FB, FC, SFB, SFC) Ejecución del programa Fin de módulo Fases de la Ejecución Cíclica El sistema operativo inicia el tiempo de vigilancia del ciclo La CPU escribe los valores de la PIQ en los módulos de salida La CPU lee el estado de las entradas en los módulos de entrada y actualiza la PII La CPU ejecuta el programa de usuario Al final del ciclo, el S.O. realiza las tareas pendientes (cargar y borrar módulos, recibir y enviar datos globales..) Tiempo de Ciclo I • El tiempo de ciclo es el tiempo que el S.O. necesita para: • ejecutar el programa cíclico • partes del programa que interrumpen al cíclico (ejecución otros OBs) • actividades del sistema (p.e. actualización de imágenes, ..) • El tiempo de ciclo se vigila • El tiempo de ciclo no es igual para cada ciclo Tiempo de Ciclo II • La figura muestra la función del tiempo de vigilancia del ciclo en la ejecución del programa en las CPUs Funciones – FC´s • Son módulos programables. Con parámetros absolutos o fromales • Es un módulo lógico “sin memoria” • Las variables temporales de FCs se memorizan en la pila de datos locales • Los datos locales se pierden tras la ejcución de las FCs • Para memorizar los datos, pueden utilizar módulos de datos globales. •A los datos locales de una FC no se le pueden asignar valores iniciles •Como una FC no tiene memoria, se han de indicar siempre parámetros actuales •Las FCs se pueden utilizar para: • devolver un valor de función al módulo invocante (p.e. Fun. Matemáticas) • ejecutar una función tecnológica (p.e. Una combinación binaria) Módulo de Función – FB´s • Son módulos programables. Con parámetros absolutos o formales • Es un módulo “con memoria” • Tiene asigando un módulo de datos como memoria (DB de instancia) • Los parámetros que se transfieren al FB y las varaiables estáticas, se memorizan en el DB de instancia • Las variables temporales se memorizan en la pila de datos locales • Los datos del DB de instancia no se pierden al finalizar la ejecución del FB • Los datos memorizados en la pila de datos locales se pierden al finalizar la ejecución del FB • Un FB contiene: • un programa que se ejecuta cada vez que se le llama desde otro módulo • facilitan la programación de funciones complejas de uso frecuente FBs y DBs de Instancia • A cada llamada de un FB que transfiere parámetros está asignado un DB de instancia • Un FB puede ejecutarse con diferentes DBs de instancia, luego se ejecuta con diferentes valores para los parámetros con cada DB de instancia FB 20: Motor Parámetros formales DB 202: Motor_2 Parámetros actuales (reales) Arranque: INT IN Revoluciones: INT IN Historial: DT IN_OUT Tiempo efec.: TIME IN_OUT Entero (16 bits): Arranque Entero (16 bits): Revoluciones Fecha y hora (48 bits): Puntero a dirección del historial Tiempo (32 bits): Tiempo ejec. Módulo de Datos Globales – DB´s • Son módulos de datos. No contienen instrucciones STEP 7 • Contienen datos de usuario, datos variables con los que trabaja el programa • Cualquier FB, FC o OB puede leer/escribir datos en un DB global • El tamaño máximo de los DBs depende de las CPUs • La estructura de los DBs de datos globales se puede definir discrecionalmente • Los datos de un DB de datos globales no se borran al cerrar el DB o concluir la ejecución del módulo de programa que lo utiliza FC 10 FC 11 FC 12 DB global (DB 20) Acceso desde todos los bloques DB de instancia Acceso sólo desde FB 12 (DB 112) Módulos del Sistema – SFB´s y SFC´s • Son módulos ya programados que ofrecen las CPUs S7 a los usuarios SFBs: • Es un FB integrado en la CPU • Forman parte del S.O. • No se cargan como parte integrante del programa • Al igual que los FBs, son módulos “con memoria” • Hay que crear los DBs de instancia y cargarlos en la CPU como parte intrgrante del programa. • Las CPUs ofrecen SFBs: • para la comunicación vía enlaces configurados • para las funciones especiales SFCs: • Es una función programada integrada en la CPU • Las SFC se pueden llamar desde el programa de usuario • Forman parte del S.O. • No se cargan como parte integrante del programa • Al igual que las FCs, las SFCs son módulos “sin memoria” • Las CPUs ofrecen SFCs para un conjunto muy amplio de aplicaciones Tipos de Módulos de Datos 8 Bits Byte de datos 0 El tamaño máximo de un módulo en la CPU 314 es 8 Kbyte. La cantidad máxima de memoria disponible en un módulo de datos depende de la CPU. Byte de datos 8191 Llamada de Módulos – Asignación de Parámetros STL/AWL FB parámetro formal CALL FB7, DB45 Start: = I 1.0 Stop: = I 1.1 Longitud := MW20 Ejecutar: = M2.1 Llamada al FB7 (a través del módulo de datos de instancia DB45) y asignación de parámetros. Dirección actual de los datos (parámetro vigente) DB45 FBD/FUP FB7 EN Dirección actual de los datos I 1.0 I 1.1 MW20 Llamada al FB7 (a través del módulo de datos de instancia DB45) y asignación de parámetros. ENO Start ejecutar Stop Longitud M2.1 FB parámetro formal Estructura del Módulo Cabecera del Módulo (36 Bytes) Cuerpo del módulo : Sección de declaración y Sección de programa o Datos Interfase Descripción breve Ejemplo de Programación Estructurada LT LT a LT Botón de la selección del tanque b LT 0 0 0 0 LT A Ingrediente Ingrediente B Procesamiento Cíclico del Programa Inicia el módulo (OB 100), procesándose una vez después de conectar la alimentación, por ejemplo Módulo de entrada Iniciando el tiempo de control de ciclo CPU ciclo de scan Lectura del estado de las señales de los módulos guardando los datos en la tabla de la imagen de proceso de entradas (PII) Ejecución del programa en el OB1 (procesamiento cíclico) Eventos (tiempo de interrupción, interrupción de proceso, etc.) Llamada a otros módulos OBs, FBs, FCs, etc. Escritura en la tabla de imagen de proceso de salida (PIQ) en los módulos de salida. Módulo OB 1 A I 0.1 A I 1.1 = Q 4.0 . . . . Módulo de salida Imagen del Proceso I2.0 I2.7 I0.5 I03 Q4.4 Q4.3 PII Byte 0 Byte 1 Byte 2 . . . . PIQ 1 Programa de usuario A( O I 2.0 O Q 4.3 ) AN I 2.7 AN I 0.5 AN I 0.3 = Q 4.4 Byte 0 Byte 1 Byte 2 . . . . 1 Módulos de Organización de Alarmas • Los OBs de alarmas permiten: • ejecutar partes del programa dependientes del tiempo • reaccionar eficazmente a señales externas al proceso Tipo de Alarma OBs de alarma Aplicación Alarma horaria OB 10 a OB 17 Calcula el flujo de un proceso de mezcla al final de un turno Alarma de retardo OB 20 a OB 23 Controla un ventilador para que se pare 20 seg después de parar un motor Alarma cíclica OB 30 a OB 38 Muestrear el valor de una señal para el control de una planta Alarma de proceso OB 40 a OB 47 Notificar que se ha alcanzado el valor máximo de un depósito Ejecución de Programas – Tipos de Procesamiento Arranque CON •comprobación e inicialización de valores •condiciones de arranque Procesamiento Cíclico •procesamiento normal. OB1 Alarma del proceso Alarma de Proceso Alarma cíclica Alarma cíclica •gobierno por interrupciones •periodos de tiempo predeterminados •importante en lazos regulación Alarma horaria Alarma de retardo Alarma horaria Alarma de retardo Tratamiento de Error •en función de fallos •sólo en algunas gamas Alarma por errores Tiempo de Ciclo Definición: El tiempo de ciclo es el tiempo que transcurre durante un ciclo de programa. Está constituido por: • Tiempo de ejecución del S.O. • Tiempo de transferencia de las imágenes del proceso (PII, PIQ) • Tiempo de ejecución del programa • Temporizadores • Funciones integradas • Carga por alarmas • Carga por comunicación (Profibus-DP, MPI) S.O. Programa de usuario Tiempo de ciclo PII S.O. Programa de usuario A I 1.0 = Q 4.0 Interrupciones por alarmas PIQ PII Tiempo de Respuesta El tiempo de respuesta es el tiempo que transcurre entre el reconocimiento de una señal de entrada y el cambio de estado de la señal de la salida correspondiente. Depende de: • Tiempo de ciclo • Retardo en las entradas y salidas • Tiempos de rotación adicionales en la red Profibus Tiempo de reacción 1 Retardo de los módulos de entrada I 1.0 0 1 Q 4.0 0 tiempo PII S.O. Ejecución del programa A I 1.0 PIQ = Q 4.0 PII Tiempo de Respuesta más Corto y más Largo El tiempo de respuesta más corto se presenta cuando el estado de la entrada observada cambia justo antes de la carga de la PII. En este caso hay que tener en cuenta: • Tiempo de retardo de la entradas • Tiempo de actualización de la PII • Tiempo de paso por el S.O. • Tiempo del programa de usuario • Tiempo de ejecución de los temporizadores • Tiempo de actualización de la PIQ • Retardo de las salidas El tiempo de respuesta más largo se presenta cuando el estado de la entrada observada cambia durante la carga de la PII. En este caso el tiempo de respuesta es: • tiempo de retardo de la entradas • 2 x tiempo de actualización de la PII • 2 x tiempo de paso por el S.O. • 2 x tiempo del programa de usuario • tiempo de ejecución de los temporizadores • 2 x tiempo de actualización de la PIQ • tiempo de retardo de las salidas Módulos de Org. de Tarea no Prioritaria • Si se ha definido un tiempo de ciclo mínimo y este es mayor que el tiempo de ciclo real, al finalizar el programa cíclico la CPU dispone de tiempo de ejecución. • El tiempo disponible se utiliza para procesar el OB de tarea no prioritaria. Módulo de Organización de Alarmas Cíclicas • Los OBs de alarmas cíclicas permiten: • ejecutar partes del programa en periodos de tiempo determinados Estructura de un Proyecto S7 Programas S7/M7 (no asignados a ningún HW) Programas de usuario con módulos S7: OBs, FBs, FCs, DBs,....... Fuentes AWL para programas de usuario Estación HW de un S7 - 400 CPU programable de un S7-400 Programas S7/M7 (asignados a HW) Programas de usuario (off-line) Fuentes AWL M7-FM programable Módulos de STEP7 Seleccionar un Módulo para la Edición • La herramienta Programar Módulo S7 (KOP, AWL) se puede utilizar para editar módulos off-line (almacenados en el dispositivo de programación) o bien on-line (módulos que están en la CPU). Hay que indicar la opción deseada y seleccionar el módulo. Partes de un Módulo Tabla de Declaración de Variables Sección de Código