Práctica 3 Automatización Industrial (Curso 2010) Iniciación en la programación con STEP 7 1 OBJETIVO El objetivo de esta práctica es la familiarización del alumno con el uso de una herramienta profesional para la programación como es la ofrecida por la casa SIEMENS para las familias S7-300 y S7-400. Más concretamente, el laboratorio cuenta con autómatas S7-313C y la herramienta de programación es la versión 5.3 de Simatic Manager. Los autómatas están conectados cada uno con un computador a través del bus específico de Siemens denominado MPI. A su vez, cada autómata lleva asociado una unidad CP-435 que permite la comunicación mediante el bus de campo industrial PROFIBUS-DP. Simatic Manager es un entorno profesional flexible que permite programar un gran número de autómatas de la familia SIEMENS. Para ello está dotado de una potente colección de librerías que almacenan las características específicas HW (perfiles) de cada autómata y los elementos de conexionado para configuraciones en red. Al arrancar el programa, el asistente por defecto permite iniciar una sesión con la configuración HW para el S7-313C, el modelo a disposición del alumno en le laboratorio. Dicha configuración se hace efectiva si se pulsa el botón Finalizar en la ventana del asistente. Además de los lenguajes de representación ya conocidos (KOP, AWL y FUP), STEP 7 posee un potente lenguaje gráfico denominado S7-GRAPH que permite programar usando directamente Grafcets. Es habitual que el programador realice la codificación de la parte ‘estándar’ del automatismo empleando S7-GRAPH para después efectuar las modificaciones de detalle en ensamblador (AWL). En este curso no se exigirá al alumno el conocimiento de S7-GRAPH, si bien se anima al alumno a emplearlo en la realización de los trabajos. 2 DIFERENCIAS IMPORTANTES CON EL LENGUAJE STEP 5 La programación en STEP 7 es muy semejante, en líneas generales, a la ya vista para STEP 5 si bien existen algunas diferencias importantes algunas de las cuales se recogen en esta sección. 2.1 Nomenclatura de bloques En la familia de autómatas que emplean STEP 7, los bloques disponibles al usuario cambian de nombre respecto a STEP 5 y, dependiendo del modelo concreto, varían en número y funcionalidad. Se citan a continuación algunos cambios relevantes: • Bloques de organización: El OB1 sigue siendo el bloque principal en todos los modelos, pero el bloque de arranque completo (paso de STOP a RUN) se cambia a OB100 (arranque completo en caliente). En función del modelo que se disponga será necesario conocer la funcionalidad de otros bloques de organización. Esta información queda accesible al programador una vez ha definido la configuración HW desde la propia herramienta. Como ejemplo, el bloque OB35 tiene prioridad 12 (en el modelo 313-C) y se ejecuta cada 100ms 1 Práctica 3 Automatización Industrial (Curso 2010) • • • • interrumpiendo la ejecución del bloque principal OB1. Pertenece a la categoría de alarmas cíclicas y puede usarse para programar un estado de emergencia. Funciones: Estos bloques tienen como identificador las letras FC<Número> y sirven para descomponer el programa en elementos funcionales o tecnológicos, facilitando la depuración y el mantenimiento. Equivalen a los bloques PB de STEP 5. Las funciones pueden ser almacenadas y reutilizadas como librerías. El Simatic Manager lleva incorporado un gran número de funciones ya programadas y que están a disposición del programador en el catálogo de librerías. Bloques de Función: Permiten encapsular elementos más complejos referidos al automatismo a controlar, teniendo como identificador FB<Numero>. A diferencia de los bloques FC, pueden programarse con un juego de instrucciones ampliado y tienen que estar asociados obligatoriamente a un bloque de datos (DB<Número>). Si se emplea un bloque FC para encapsular el código relativo al funcionamiento de un elemento complejo del sistema (por ejemplo una bomba), el bloque de datos asociado almacenaría valores acerca de las propiedades físicas de la bomba (potencia etc.) evitando así tener que inicializar estos parámetros en el arranque completo OB100. Bloques de datos: No cambian en cuanto a su identificador respecto a STEP 5 (DB<Número>) pero pueden estar asociados a bloques FB. En cada momento no puede haber activo más que un bloque de datos global y un bloque de datos asociado a bloque de función (denominado bloque de datos de instancia). Funciones del sistema: Corresponden a funciones que ya vienen programadas en la memoria ROM para cada modelo de autómata. La sintaxis de uso es SFC<Número>. 2.2 Formato de constantes A diferencia de STEP5, las constantes numéricas adoptan la forma <Tipo>#<Número>. La tabla siguiente recoge algunos de los tipos de datos básicos más empleados. Número Tamaño Formato (bits) Rango Ejemplo ±215 L 12 12 16 100000 32 L# ±231 L L#10000 AF 8 B# 28 L B#16#AF FF99 16 W# 216 L W#16#FF99 FF99AFAF 32 DW# 232 L DW#16#FF99AFAF Binario 16 2# 26 L 2#0010101… Binario 32 2# 232 L 2#100101000101… 5min 3seg 16 S5T# 0-9990 seg. L S5T# 5M3S BCD 16 C# 0-999 L C#890 2 Práctica 3 Automatización Industrial (Curso 2010) Nótese que las constantes de tiempo para los temporizadores ya no es necesario introducirlas como en STEP 5 (KT X.Y). STEP 7 dispone de un tipo S5TIME (creado para ser compatible con STEP 5) que permite ahora escribir directamente el tiempo en horas, minutos y segundos ajustándose la mejor base de tiempos automáticamente. En STEP 5, la sintaxis KT X.Y determina un valor de temporización X para una base de tiempos Y. En STEP 7 la sintaxis equivalente es S5T#hHmMsS. Así por ejemplo, S5T#5s (STEP 7) equivale a KT 500.0 en STEP 5). En el caso de la carga de contadores, STEP 7 emplea la notación C# para una constante numérica en BCD, mientras que en STEP 5 era KZ. A destacar también que el tipo base LONG es ahora de 32 bits y que no debe confundirse con la instrucción clásica de carga L, pues el formato de la constante numérica debe ir acompañado del símbolo # (por ejemplo L L#1000, copia el número 1000 en el registro acumulador ACU-1 rellenando los bits sobrantes hasta 32 con ceros). Finalmente, todos los formatos de datos básicos sin signo (B, W, DW) necesitan que la constante numérica sea escrita en formato hexadecimal (16#). Por ejemplo el número 32 decimal como constante de tamaño doble palabra se escribe DW#16#20. 2.3 Nuevos operadores La sintaxis de STEP 7 es más rica que la de STEP 5. Algunos nuevos operadores de uso muy habitual que hay que conocer son: • Operador X : Operador binario XOR • Nuevos operadores que actúan sobre el registro lógico operacional (RLO). o NOT: Modifica el RLO al valor complementario o SET: Pone el RLO a 1 o CLR: Pone el RLO a 0. Los tres argumentos no requieren operandos (el operando implícito es el RLO). • Nuevos operadores relativos a flancos: o FP: Flanco positivo (subida) del valor del RLO en el momento de ejecución de la instrucción. Como consecuencia, el evento flanco positivo se almacena en el RLO. o FN: Flanco negativo (bajada) del valor del RLO en el momento de ejecución de la instrucción. Como consecuencia, el evento flanco negativo se almacena en el RLO. • El Simatic Manager ofrece para lenguaje de contactos (KOP) una gran variedad de elementos gráficos y el alumno debe estar familiarizado con los principales. Dentro de las operaciones lógicas destacan los relativos a contactos, flancos, bobinas Set/Reset y conectores. Para las operaciones analógicas hay que conocer el contacto MOVE y el COMPARADOR. Finalmente es necesario saber utilizar los símbolos relativos a temporizadores y contadores. La figura siguiente muestra algunos ejemplos: 3 Práctica 3 Automatización Industrial (Curso 2010) Mflanco Expresión A1.0 A1.0 = Expresión ↑ P E1.0 Expresión A1.0 = Expresión ↓ N Mflanco Expresión A1.0 A1.0 A1.0 = Expresión ⋅ ( E1.0 ↑) POS Mflanco E1.0 Expresión A1.0 A1.0 = Expresión ⋅ ( E1.0 ↓) NEG Mflanco A1.0 M10.0 Expresión # NOT A1.0 = Expresión M 10.0 = Expresión 3 ENTORNO DE PROGRAMACIÓN ‘SIMATIC MANAGER’ El entorno Simatic Manager es un entorno profesional incomparablemente superior al entorno S5Win empleado en las prácticas anteriores para STEP 5. Existen innumerables opciones para la configuración, simulación y programación que no existían en el otro entorno. La versión a disposición del alumno en el laboratorio de prácticas es la 5.3. Se recomienda al alumno que, al incio de la práctica, dedique un cierto tiempo a navegar por los diferentes menús que ofrece la aplicación hasta tener claro, al menos, los siguientes conceptos: • Como configurar un proyecto nuevo correctamente (SW y HW (PLC: S7313C)). • Como crear bloques de programa: Fundamentalmente bloques de tipo OB, FC, FB y DB (de instancia o globales) • Como editar los diferentes bloques. • Como alternar entre lenguajes AWL, KOP y FUP; como usar correctamente los elementos gráficos asociados a operaciones binarias más comunes en KOP. • Como definir una tabla de símbolos y emplear la funcionalidad de completar los identificadores a la hora de programar. Esto permite escribir variables utilizando los caracteres de comienzo del símbolo asociado, lo que facilita mucho la escritura en ensamblador (AWL). • Como arrancar y usar correctamente la aplicación simulador. Hay que conocer al menos los siguientes puntos: o Saber visualizar entadas, salidas, marcas, temporizadores y contadores o Saber ejecutar el código en modo continuo o ciclo a ciclo o Incluir los símbolos de la tabla en la pantalla de simulación • Como transferir el programa (conjunto de bloques) al PLC. 4 Práctica 3 Automatización Industrial (Curso 2010) • Como utilizar adecuadamente la ventana de edición de bloques: añadir segmentos, comentarios, usar la ventana de depuración, usar la información que proporciona el Simatic Manager acerca del programa desarrollado etc. Para facilitar esta labor se propone el siguiente ejercicio donde se crea un proyecto paso por paso. 1) Tras abrir el Simatic Manager aparece por defecto la ventana del asistente para la creación de proyectos (cabe la posibilidad de se haya deshabilitado esta opción y aparezca directamente el ventana principal tal y como quedo en su anterior uso. Si este es el caso vaya al menú Archivo-> ‘Nuevo Proyecto’ y aparecerá la ventana del asistente). 2) En la ventana del asistente pulse Preliminar. Esto mostrará la configuración HW y SW prevista para el nuevo proyecto (ver Figura 1). Figura 1. Asistente para la creación de un proyecto nuevo En la ventana de la izquierda se indica de forma jerárquica lo siguiente: nombre previsto por defecto para el nuevo proyecto (S7-Pro2 en la figura), la configuración HW (CPU312C) y la estructura SW de bloques (Programa S7 y módulo principal OB1). Si se pulsa Siguiente el asistente permitirá modificar el modelo del autómata, el conjunto de bloques de operaciones previstos para el proyecto (en función del modelo de CPU elegida) y finalmente el nombre y el lugar de almacenamiento en el disco duro. Si pulsa Finalizar en cualquier momento creará el nuevo proyecto con la configuración predefinida. 3) Cambie la CPU por defecto por la del modelo real en el laboratorio, la CPU 313C. Para ello pulse Siguiente y seleccione en el cajetín la CPU adecuada. 4) Pulse Siguiente y active la casilla OB100 (arranque ‘completo’ (y también ejecutado por el sistema operativo para los eventos que producen arranque en caliente en los S7-300), equiparable al OB21 del autómata S5-95U empleado en las prácticas anteriores). Pulse otra vez Siguiente, elija un nombre para su proyecto y pulse Finalizar tras lo que aparecerá la ventana principal (ver Figura 2). 5 Práctica 3 Automatización Industrial (Curso 2010) Figura 2. Ventana principal del Simatic Manager 5) En la parte de la izquierda aparece la configuración HW y SW de forma similar a la mostrada por el asistente de nuevos proyectos. En la parte de la derecha aparecen los elementos relacionados con el elemento seleccionador en la ventana izquierda. Compruébese esta hecho seleccionando los diferentes iconos (CPU, fuentes, bloques etc.). Una característica importante del entorno Simatic es que posee información contextual para casi cualquier icono que aparece en pantalla. Normalmente para acceder a dicha información basta con pinchar sobre el objeto con el botón derecho del ratón y seleccionar “Propiedades del objeto…” (el atajo es ALT + ENTER). Como ejemplo, seleccione el icono CPU-313C en la ventana izquierda, pulse ALT + ENTER y Aceptar en el diálogo. Aparecerá una nueva ventana con las propiedades de la CPU actual (bloques OB, marcas volátiles (MB0-MB16) etc.). 6) Abra la ventana de edición para el bloque principal OB1. Para ello seleccione el icono “Bloques” en parte izquierda y haga doble-click sobre OB1 en la parte derecha de la ventana principal. 7) La ventana de edición se abre por defecto en modo AWL en el primer segmento del módulo editado (OB1). Escriba ahora las instrucciones siguientes: U E124.0 = A 124.0 // Comentario de línea El Simatic Manager permite añadir comentarios por segmento, bloque y línea. Para añadir comentarios de línea hay que emplear el separador ‘//’ en lugar de ‘;’ como en STEP 5. En la figura siguiente se puede ver donde se pueden colocar los diferentes tipos de comentarios (títulos de bloque y segmento, comentarios de bloque y segmento y comentarios de instrucción). Figura 3. Diferentes formas de comentar el código en STEP 7 No hay que confundir el título de un bloque con el nombre simbólico asociado a dicho bloque. Para ver la diferencia Guarde los cambios en la ventana de edición (Archivo>Guardar o CTRL+S) y examine el bloque OB1 desde la ventana principal (Pulse con 6 Práctica 3 Automatización Industrial (Curso 2010) el botón derecho sobre el bloque y elija Propiedades del Objeto (o simplemente ALT + ENTER)). El nombre simbólico es ‘Cycle Excecution’, no existe comentario del símbolo y el título y comentario del bloque que se ha escrito desde el editor aparecen en el caja de texto Comentario. Figura 4. Página de propiedades del bloque OB1 8) Cierre la página de propiedades y vuelva a editar el bloque OB1. Pruebe a alternar entre los lenguajes KOP, AWL y FUP mediante los atajos CTRL+1, CTRL+2 y CTRL +3 respectivamente (o su equivalente a través del menú Ver). Observe que al cambiar la representación también cambia la ventana de la parte izquierda de la imagen. Por ejemplo, en modo contactos aparecen un sinfín de posibilidades de elementos gráficos para KOP. Basta arrastrar cada elemento sobre la zona de edición correspondiente para colocarlo. Como ejercicio, introduzca un contacto E 124.1 como AND lógico entre E 124.0 y la salida A 124.0. Para ello, expanda la carpeta “Operaciones lógicas” y arrastre el contacto ‘normalmente abierto’ entre el contacto E32.0 y la Salida. Rellene el símbolo ‘??.?’ con el nombre E 124.1. Guarde los cambios. 9) Para añadir un símbolo al contacto que acabamos de añadir seleccione dicho contacto y presiones ALT+ENTER. Aparece una ventana con la información de la tabla de símbolos relativa al bloque editado. En dicha ventana rellene la casilla Símbolo con “Entrada”, el tipo de dato con “BOOL” y añada el comentario que más le guste. Presione Aceptar para finalizar. Observe que al volver al menú edición el símbolo aparece en lugar del nombre sobre el contacto seleccionado. Pruebe ahora a personalizar la información que aparece en pantalla pulsando Ver->Mostrar y modificando las opciones activadas por defecto (por ejemplo, puede hacer que aparezca tanto el símbolo como el comentario). 10) Desde el menú de edición puede abrir la tabla de símbolos completa del proyecto seleccionando Herramientas->Tabla de Símbolos (o mediante la combinación de teclas CTRL+ALT+T). Abra el alumno la tabla y compruebe que el símbolo “Entrada” aparece asociado a la entrada E32.1. Cierre la ventana y vuelva al menú de edición del bloque OB1. 11) Desde el menú edición añada un segmento nuevo a través del menú Insertar>Segmento (o el atajo de teclas CTRL+R) y elija la opción AWL (CTRL+2). Una de las características nuevas del entorno Simatic es que permite completar los identificadores introducidos con aquellos que se encuentran predefinidos en la Tabla de Símbolos. Para ello introduzca las letras “U En” y presione el menú Insertar->Símbolo (o el atajo CTRL+J). Aparecerá una lista de todos los símbolos definidos por orden lexicográfico. 7 Práctica 3 Automatización Industrial (Curso 2010) Presione ENTER para aceptar la primera opción. De esta forma no es necesario recordar el nombre completo sino solamente alguna/s de las letras iniciales. Por ello es muy interesante empezar la implementación con las entradas, salidas y marcas de etapa ya definidas como símbolos y usar la utilidad de completar a la hora de teclear los identificadores. 12) Borre el segmento añadido seleccionando el cajetín donde aparece el texto “Segm. 2” en la cabecera del segmento y pulse Suprimir en el teclado. Guarde los cambios y cierre la ventana de edición. 13) Abra ahora el simulador mediante el menú Herramientas->Simular módulos. 14) Transfiera el código al simulador. Para ello seleccione todos los bloques que aparecen en la parte derecha de la ventana principal (bloques OB100 y OB1) y elija Sistema Destino->Cargar (o el atajo CTRL+L). Es muy importante que la aplicación de simulación esté abierta. Si el autómata no está conectado y el simulador no está en ejecución, el entorno dará un error de excepción al intentar la transferencia. 15) Una ventana de simulación vacía tiene el aspecto siguiente: Figura 5. Ventana de simulación vacía El entorno de simulación es completamente configurable y es posible guardar tanto la simulación actual como la organización de ventanas (Entradas, salidas, marcas, contadores etc.) por defecto a través del menú Archivo. Las variables predefinidas habituales pueden mostrarse en pantalla mediante el menú Insertar. Para el programa definido en el OB1 elija Insertar->Entrada e Insertar->Salida y configure las ventanas adecuadamente (Entrada EB 124 y salida AB 124). Ejecute el programa activando el cajetín de Run y compruebe que al activar el bit E 124.0 y el bit E 124.1 la salida A 124.0 se pone nivel alto. 16) Guarde la organización actual (menú Archivo->Guardar organización) con el nombre que quiera (la extensión es *.lay). Ahora si elimina todas las ventanas abiertas dentro del simulador siempre puede recuperar dicha configuración cargando la organización guardada (menú Archivo->Abrir organización). Si lo que se quiere guardar es el programa y la situación exacta de las variables de simulación entonces la opción es Archivo->Guardar PLC (o el atajo CTRL+S). 17) Incluya los símbolos definidos en la tabla de símbolos en la simulación. Para ello elija como representación de las entradas una tabla de bits verticales (los símbolos no caben en la ventana de entradas) mediante el menú Insertar->Bits verticales en la ventana de simulación. En el cajetín superior de la nueva ventana escriba ‘EB 32’, el byte donde se encuentra el único símbolo definido hasta el momento. Finalmente incluya la tabla de símbolos mediante la opción Herramientas->Opciones->Asignar símbolos y asegúrese de seleccionar la tabal de símbolos del proyecto correcto (que no será el que aparezca por defecto en el caso general) (ver Figura 6). 8 Práctica 3 Automatización Industrial (Curso 2010) Figura 6. Selección de tabla de símbolos para el simulador. Recuerde que el icono de símbolos para cualquier proyecto pertenece al objeto “Bloques” de la ventana izquierda relativa a configuración por lo que es necesario seleccionar dicho icono. Haciendo doble-click sobre el icono “Simbolos” adecuado se cargan los símbolos en el simulador. Si se ha realizado esta operación correctamente, debería aparecer una ventana EB32 como la indicada en la Figura 7. Figura 7. Símbolo “Entrada” cargado en el simulador 18) Cierre el simulador y abra nuevamente la ventana de edición del bloque OB1. El Simatic posee una función de ayuda contextual adicional muy poderosa pulsando la tecla F1. Compruebe la herramienta seleccionando cualquier instrucción (o pulsando sobre la línea con el ratón) y posteriormente seleccionando F1. 18) Cierre la pantalla de ayuda. Desde la ventana de edición seleccione Herramientas>Datos de referencia->Mostrar y pulse Aceptar. Aparecerá otra poderosa herramienta que ofrece el entorno para la depuración y mantenimiento del código la ventana de Referencias del proyecto actual (ver Figura 8). 9 Práctica 3 Automatización Industrial (Curso 2010) Figura 8. Ventana de referencias de un proyecto. Compruebe el alumno a través de las opciones del menú Ver como se despliega una gran cantidad de información relativa al proyecto actual (variables definidas y ocupación de la memoria, símbolos definidos y no utilizados, estructura del programa, identificadores sin símbolo). 4 Herramienta de depuración De forma similar al entorno de programación no profesional empleado para la programación del S5, el Simatic Manager permite la depuración de un programa en ejecución mediante la visualización de los bloques de código implementados durante la ejecución del programa tanto en el modo de simulación como en el de ejecución real sobre el autómata. La forma más sencilla de arrancar la depuración de cada bloque, durante la ejecución de un programa (bien sea en el autómata o en el simulador), es pulsar las teclas CTRL+F7 desde la ventana de edición del bloque en cuestión. Esto equivale a la secuencia Test>Observar en el menú de dicha ventana. 5 Instrucciones de salto entre bloques y dentro de un mismo bloque Existen diferencias sustanciales en STEP 7 respecto a las instrucciones de control del flujo de ejecución en STEP 5. En esta sección se enumeran los operadores principales en STEP 7 que permiten interrumpir la ejecución secuencial del código. Éstas son: • UC <Función> (unconditional call): Salta incondicionalmente al bloque indicado como operando (i.e UC FC1) • CC <Función> (conditional call): Si el RLO vale 1 salta al bloque indicado como operando (i.e. CC FC1). • CALL <Función / Bloque de Función>: Equivale a UC para funciones sin parámetros. Es obligatorio usar CALL para llamadas a bloques de función (FB) o funciones con parámetros (FC). • SPA <Etiqueta>: Salto absoluto dentro del bloque a la etiqueta indicada como operando (i.e SPA FIN). En STEP 5 esta instrucción permitía el salto interbloques (i.e SPA PB1). En STEP 7 las instrucciones SP<X> <Etiqueta> quedan reservadas para movimientos dentro del bloque donde son invocadas. • SPB <Etiqueta>: Salto condicionado dentro del bloque. Si el RLO vale 1 en el momento de la ejecución de esta instrucción, el flujo de control salta a la etiqueta utilizada como operando, que tiene que existir obligatoriamente (e.g. SPB FIN iría a la instrucción que empezara por FIN: dentro del bloque). 10 Práctica 3 Automatización Industrial (Curso 2010) • • BE / BEA: Finalización del bloque y retorno al punto de llamada en el bloque invocante. El editor coloca automáticamente una instrucción BE (ahora no visible en el bloque de edición) al final de cada bloque (en el editor S5Win dicha instrucción aparecía explícitamente en el código durante la programación). La instrucción BEA es la versión equivalente de BE para uso del programador. BEB: Finalización condicionada del bloque. Si el RLO vale 1 en el momento de la ejecución de la instrucción, el sistema retorna al punto de llamada del bloque invocante y continua con la siguiente instrucción. Ejercicio Práctico Para practicar con el entorno Simatic Manager se propone el control del sistema siguiente analizado en clase de teoría en profundidad: Impleméntese una máquina de estados reconocedora de la secuencia de caracteres binarios 101. La entrada la realizará el operario de forma manual a partir de uno de los interruptores de la periferia integrada. La entrada será validada cada 3 segundos. 1 Descripción del montaje El PLC a disposición del alumno hará el papel de reconocedor y existirá una sola entrada de datos (E 124.0) operada por el propio alumno mediante el interruptor correspondiente con la interpretación natural de nivel alto->1 y nivel bajo->0. La validación de los datos estará controlada por el propio autómata y será cada 3 segundos por dato. Cada vez que se admita un dato como válido se activará la salida A 124.0 durante un segundo, para avisar al operario de que el dato se ha leído correctamente. Al caer la salida el operario tendrá todavía 2 segundos para introducir el nuevo valor. Al terminar el proceso el número de secuencias 101 encontradas se almacenarán en el byte AB 125 (y, por tanto, se iluminarán los leds correspondientes en la periferia integrada). El ciclo termina cunado se hayan leído un número de caracteres N determinados al inicio del ciclo (por ejemplo N = 10). En ese momento se muestra el número de secuencias detectadas en el byte AB 125. El sistema debe contar con un pulsador P_ON disparado por flanco para arrancar la cuenta y un pulsador de RESET para reiniciar el proceso en cualquier momento. Hasta que no se pulse RESET no se considerará el ciclo terminado, con lo que la palabra AW 125 seguirá conteniendo el resultado del último ensayo hasta entonces. Para una mejor estructuración de la implementación, se empleará un bloque de datos global para almacenar el tiempo de validación entre datos (3 segundos) y el número de caracteres totales a leer (por ejemplo 10 bits). La máquina de estados subyacente es la que se ha vista en clase y tiene un diagrama de transición como el de la figura 9. 11 Práctica 3 Automatización Industrial (Curso 2010) 1/0 0/0 NADA 1/0 1 0/0 10 0/0 1/1 Figura 9. Máquina de Mealy para el reconocimiento de una secuencia 101. 2 Estructura de Bloques De acuerdo con lo visto en las prácticas anteriores, se recuerda al alumno que la programación estructurada es un principio básico para implementar la programación de los automatismos de mando. Una buena descomposición del código en bloques relativos a partes claramente diferenciadas del sistema a controlar es fundamental para: • Permitir la depuración y seguimiento del código • Permitir el uso de técnicas estándar de programación así como la reutilización de repositorios de bloques ya existentes en la forma de librerías de bloques. En esta práctica será obligatoria la estructuración siguiente: • OB1 y OB100: Boque principal y de arranque completo. • FC1: Bloque relativo a la parte secuencial del automatismo (activación de etapas). • FC2: Bloque relativo a los actuadores. • FC3: Bloque relativo a la detección de flancos. • FC4: Bloque que lanza el temporizador para la validación de datos. • DB1: Bloque de datos global con la información del número de caracteres total de la secuencia de entrada (10 bits) y del tiempo de validación (3s). Antes de comenzar la codificación, el alumno debe decidir si transformar la máquina de estados de la figura anterior en una máquina de Moore o si se puede trabajar con el diseño de máquina que aparece en la figura superior. Responda al profesor de prácticas convenientemente justificando la respuesta. 3 Detalles de implementación El bloque OB1 hace llamadas incondicionales al resto de bloques excepto al generador de la señal de tiempo de validación que se arranca tras pulsar P_ON estando el sistema en reposo. CALL "Flancos" CALL "Secuencial" CALL "Actuadores" U "P_ON (flanco) y Reposo" CC "Temp. de Validacion" …. Figura 10. Detalle del bloque OB1 12 Práctica 3 Automatización Industrial (Curso 2010) El bloque de validación de datos (FC4) puede ser una señal periódica S1 como la que aparece en la figura a continuación: S1 3 3 3 que puede implementarse con la siguiente instrucción en KOP : T1 S1 SV S1 S5T#3s T Q Se puede entonces utilizar el flanco de subida de S1 para la activación de la luz (señal A 124.0 que indica que se ha leído correctamente del dato (E 124.0) y que dura un segundo) y el flanco de bajada de S1 como evento de lectura del dato. La cuenta del número de caracteres leídos la llevará un contador descendente que sea arrancará con el valor inicial que se encuentra en el bloque de datos global DB1 y se decrementará con el flanco de bajada de la señal de control S1. De esta manera se puede usar el valor lógico “falso” del contador como condición de ‘lectura de todos los caracteres’. El bloque de datos global DB1 una vez definidos los dos valores (número de bits a leer y tiempo de validación) debería tener un aspecto como el de la figura: Figura 11. Bloque de Datos DB1 4 Normas para la realización de la práctica Esta práctica se realizará en el laboratorio dispuesto a tal efecto situado en la primera planta. Para la realización de la misma será necesario: 1) GRAFCET nivel 2 equivalente a la máquina de estados empleada en el control 2) Implementación del reconocedor de bits en STEP 7. Para ello será de obligatorio cumplimiento: a. Estructuración del código: De acuerdo con lo expuesto en los puntos 2 y 3. 13 Práctica 3 Automatización Industrial (Curso 2010) b. Documentación: Será imprescindible emplear una tabla de símbolos apropiada y utilizar abundantes comentarios (obligatorio para todos los programas a realizar durante el curso. c. Simulación en el ordenador, terminado el programa, así como manejo de las técnicas básicas de depuración que ofrece la herramienta. El profesor deberá comprobar el correcto funcionamiento del programa. Posteriormente se realizará una demostración sobre el autómata, siendo el alumno el que se encargue de ir introduciendo manualmente los bits a reconocer. La versión definitiva del código, junto con el GRAFCET (nivel 2) y la tabla de símbolos, se entregarán al comienzo de la siguiente práctica. 14