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 21 IEC 1131-3 22 Instrucciones/Operandos/Módulos 3 Estructura de Programas 4 Tipos de Módulos 41 Módulos de Sistema 42 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 Prestaciones eléctricas, mecánicas y funcionales y ensayos de los Información a suministrar por el fabricante equipos 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 IEC 1131-3 STEP 7 Diagrama de funciones FBD Function Block Diagram 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 Técnica modular Segmentos Comentarios Representación 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 Parte operacional Operando Identificación Parámetro Operación Operando 002: A I 10 Parámetro Identificador del operando Dirección relativa de la instrucción en el módulo respectivo Operandos OPERANDOS NEMONICO FUNCION Entradas 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 Para estructurar el programa SFB, SFC
Ejemplo de Programa Esquema Eléctrico STL/AWL FBD/FUP LAD/KOP S1 S2 H1 A I 00 AN I 01 = Q 45 I 00 I 01 & Q 45 = I 00 I 01 Q 45 Estructuración de los Programas STEP 7 provee tres posibilidades para organizar un programa Programación Programación Programación Lineal Dividida Estructurada Arranque Arranque Arranque Receta A FB1 FC1 OB1 OB1 Receta B Mezclador OB1 FB2 FC2 Descarga FC3 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 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 00 >=1 Q 40 & Q 40 I 01 = Segmento 2: Seguridad y señales de aviso I 02 & I 03 Q 41 I 04 = OB1: ejemplo de un simple módulo lineal en AWL Segmento 1: motor on/off A( O I 00 O Q 40 ) AN I 01 = Q 40 Segmento 2: Seguridad y señales de aviso A I 02 AN I 03 AN I 04 = Q 41
Programación Lineal Ejemplo Programación Dividida OB1 Ingrediente_A (CALL) FC >=1 & = Ingrediente_B Mezclador (CALL) (CALL) FC & >=1 = Descarga (CALL) FC >=1 & = FC >=1 =
Ejecución de un Programa Dividido Programa principal OB Módulo subrutina FC Procesamiento del programa Instrucción que llaman otros módulos Procesamiento del programa Fin de módulo Programa Dividido Control de nivel
Programación Estructurada I Sistema Operativo OB1 FC FB SFC SFB FB FC Otros OBs Programación Estructurada II OB1 Motor >=1 & = Descarga >=1 & & = = =
Estructura del Programa OB1 Módulo 7 Módulo 32 Módulo R Procesar módulo 7 Lamar al módulo 32 Llamar al módulo X Procesar módulo 10 Retornar Retornar Módulo 10 Retornar Retornar Retornar Nivel1 Nivel2 Nivel3 Niveles 47 Nivel 8 División Tecnológica de un Programa Inicio del ciclo OB 1 FB 10 Tren CINTA A Sistema operativo CALL FB 10 CALL FB 20 CALL FC 50 DB inst 10 FB 20 CINTA B CALL FC 50 FC 50 Accionamiento DB inst 2
Tipos de Módulos de Programa Ciclo Tiempo Proceso OB Módulo de Organización FB FC SFB Error FB FB SFC 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 Módulo de datos (DB) 127 127(1-127) 8 Kby Función del sistema (SFC) 48 53 Mód func sistema (SFB) 7 7 Módulos de Usuario Tipo de Módulo Organización (OB) Módulo de función (FB) Características - 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ódulos con memoria que puede programar el usuario - Parametrizable / retentiva - No parametrizable / retentiva - No parametrizable / no retentiva Función (FC) Módulo de Datos (DB) - Rutina de programa para funciones frecuentes - Un valor de retorno es transferido (Los parámetros deben ser asignados por la llamada) - No retentivo - Parametrizable - 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 Función del Sistema (SFC) Módulos de Funciones del Sistema (SFB) Dato de Sistema (SDB) Características - Integrados en el sistema operativo de la CPU - Un usuario puede llamar esta función (sin memoria) - Integrados en el sistema operativo de la CPU - Un usuario puede llamar esta función (con memoria) - 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 SO 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 Prioridad 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 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 Alarma Programa principal Programa de alarma Error Interrupción Interrupción Tratamiento de errores Secuencia y Profundidad de Anidamiento Inicio del ciclo Profundidad de anidamiento OB 1 FB 1 FC 1 Sistema operativo DB inst 1 FB 2 FB 1 SFC 1 DB inst 2 DB inst 1 FC 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 SO 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 SO necesita para: ejecutar el programa cíclico partes del programa que interrumpen al cíclico (ejecución otros OBs) actividades del sistema (pe 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 (pe Fun Matemáticas) ejecutar una función tecnológica (pe 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 Arranque: INT IN Revoluciones: INT IN Historial: DT IN_OUT Tiempo efec: TIME IN_OUT DB 202: Motor_2 Parámetros actuales (reales) 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) DB de instancia (DB 112) Acceso desde todos los bloques Acceso sólo desde FB 12
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 SO 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 SO 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 10 Stop: = I 11 Longitud := MW20 Ejecutar: = M21 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) FBD/FUP Dirección actual de los datos I 10 I 11 MW20 DB45 FB7 EN ENO Start ejecutar M21 Stop Longitud FB parámetro formal Llamada al FB7 (a través del módulo de datos de instancia DB45) y asignación de parámetros 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 LT a b Botón de la selección del tanque LT 0 0 0 0 Ingrediente LT A Ingrediente B Procesamiento Cíclico del Programa CPU ciclo de scan Inicia el módulo (OB 100), procesándose una vez después de conectar la alimentación, por ejemplo Iniciando el tiempo de control de ciclo 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 de entrada Módulo OB 1 A I 01 A I 11 = Q 40 Módulo de salida
Imagen del Proceso I20 I27 I05 I03 Q44 Q43 Byte 0 Byte 1 Byte 2 PII 1 Programa de usuario A( O I 20 O Q 43 ) AN I 27 AN I 05 AN I 03 = Q 44 Byte 0 Byte 1 Byte 2 PIQ 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 CON Alarma del proceso Alarma cíclica Alarma horaria Alarma de retardo Alarma por errores Arranque comprobación e inicialización de valores condiciones de arranque Procesamiento Cíclico procesamiento normal OB1 Alarma de Proceso gobierno por interrupciones Alarma cíclica periodos de tiempo predeterminados importante en lazos regulación Alarma horaria Alarma de retardo Tratamiento de Error en función de fallos sólo en algunas gamas 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 SO 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) SO Programa de usuario Tiempo de ciclo Interrupciones por alarmas PII SO Programa de usuario A I 10 = Q 40 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 I 10 1 0 Tiempo de reacción Retardo de los módulos de entrada 1 Q 40 0 tiempo PII SO Ejecución del programa A I 10 = Q 40 PIQ 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 SO 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 SO 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