UNIVERSIDAD MILITAR NUEVA GRANADA
1
SUBRUTINAS EN EL PLC S7-200 Daniela del Pilar Uscátegui Bernal,
[email protected] Germán Darío Buitrago Salazar,
[email protected] Laboratorio Laboratorio No. 5 Resumen—A subroutine or subroutine (also called procedure, functi function, on, or routi routine) ne),, as a gener general al conce concept, pt, is prese presente nted d as a sub-algorithm that is part of the main algorithm, which solves a specific task. In this report we will see in a practical manner as subroutines used in the ladder language for programming a PLC 200.
—Counters,, Sequencin Sequencing, g, PLC, Automati Automation, on, Su Index Terms—Counters broutine, Enable.
I. OBJETI OBJETIVO VOS S
I-A. Objetivo general
Realiz Realizar ar la progra programa mació ciónn un proces procesoo secuen secuencia ciall que se utiliza para fabricar trofeos, implementando subrutinas en el PLC Siemens S7 200 .
I-B. Objetivos específicos
Terminar Terminar con la etapa de Programación Básica de PLCt’s. Relacionarse con los conceptos de subrutinas y su implementación. Afianzar los conocimiento adquiridos anteriormente, como lo son el uso de marcas y contadores. Entender como se maneja en el lenguaje Ladder el uso del “ if ” y el “ else ”.
II. INTRODUCC INTRODUCCIÓN IÓN
NA subrutina o subprograma es una parte de programa que que hace hace algo algo conc concre reto to y se repi repite te a menu menudo do,, para para ahorrar memoria y esfuerzo y para hacer el programa más comprensible se agrupa en forma de subrutina. Una subrutina se debe ejecutar siempre llamándola con la instrucción CALL y al final de dicha subrutina debe haber siempre un RETURN. El esquema muestra como funcionan las subrutinas:
U
Figura 1. Funcionamiento Funcionamiento Básico Subrutinas. Imagen obtenida desde < Página de electrónica de Carlos Díaz - http://electronica.webcind http://electronica.webcindario.com/tuto ario.com/tutoriariales/imagenes/subrutina.gif>
Durante el programa principal se llama varias veces a la subrutina SUBR (el nombre es lo de menos) con la instrucción CALL. CALL. Cuando Cuando el PLC ejecut ejecutaa una instru instrucci cción ón CALL CALL se guarda en memoria la dirección de código de programa a la que tiene que retornar de tal forma que cuando se encuentra con la instrucc instrucción ión RETURN vuelve al programa programa principa principall donde lo dejó. Una subrutina no solo puede ser llamada desde el programa principal, también puede hacerse desde otra subrutina (una subrutina que llama a otra subrutina) o desde una interrupción (enseguida las veremos).[1] III. III. MARCO MARCO TEÓRICO TEÓRICO Las subrutina subrutinass facilita facilitann la estructur estructuració aciónn del programa. programa. Cuando el programa principal llama a una subrutina para que ésta se ejecute, la subrutina procesa su programa hasta el final. El sistema retorna luego el control al segmento del programa principal desde donde se llamó a la subrutina. Las subrutinas sirven para estructurar o dividir el programa en bloques más pequeños y, por tanto, más fáciles de gestionar. Los bloques más pequeños facilitan la comprobación y la eliminación de errores tanto en las subrutinas como en el programa entero. Con las subrutinas también la CPU se puede utilizar más eficientemente, llamando al bloque sólo cuando se necesite, y no ejecutar todos los bloques en todos los ciclos. La operación Llamar subrutina transfiere el control a la subrutina, se puede utilizar con o sin parámetros.
UNIVERSIDAD MILITAR NUEVA GRANADA
2
(situar una llamada a subrutina dentro de otra) hasta 8 subrutinas. Las subrutinas no se pueden anidar en 1 subrutina de interrupción. La recursión (la subrutina se llama a sí misma) está permitida de manera indirecta, es decir, una subrutina no se puede llamar a sí misma, ha de hacer la recusión por medio de otra subrutina, como muestra el cuadro.
Figura 2. Ejemplo Subrutina PLC 200. Imagen obtenida desde < http://www.isa.uniovi.es/~vsuarez/ii/CursoOnline/12asubrutinas.htm>
En cada llamada a subrutina se pueden utilizar 16 parámetros de entrada/salida como máximo. Los valores de los parámetros se asignan de la siguiente forma a la memoria local en la subrutina: Los valores se asignan a la memoria local en el orden indicado por la operación Llamar subrutina, comenzando dichos parámetros en L0. De uno a ocho valores binarios consecutivos se asignan a un sólo byte comenzando en Lx.0 hasta Lx.7. Los valores de byte, palabra y doble palabra se asignan a la memoria local en bytes (LBx, LWx, LDx). En la operación "Llamar subrutina" con parámetros, éstos deben concordar exactamente con las variables definidas en la tabla de variables locales de la subrutina. Los parámetros se deben organizar de la siguiente forma: Los parámetros de entrada. Los parámetros de entrada/salida. Los parámetros de salida. La operación Retorno condicionado desde la subrutina, nos permite finalizar la subrutina en función de la combinación lógica precedente.
Figura 4. Ejemplo de Ejemplo de Recurrencia en el PLC 200. Imagen obtenida desde < http://www.isa.uniovi.es/~vsuarez/ii/CursoOnline/12asubrutinas.htm>
Aunque la recursión esté permitida, hay que utilizarla con mucha precaución. IV. DESARROLLO DE LA PRÁCTICA La idea es realizar el programa para que la planta saque 3 cuadros, 4 cilíndros del almacén 1 y 2 cilíndros del almacén 2. Si no hay cuadros, debe seguir a preguntar si hay cilindros en el almacén 1 y si no hay, que siga a preguntar si hay cilíndros en el almacén 2.
Figura 3. Ejemplo de Subrutina con Retorno Condicional en el PLC 200. Imagen obtenida desde < http://www.isa.uniovi.es/~vsuarez/ii/CursoOnline/12asubrutinas.htm>
Un programa puede contar con 64 subrutinas como máximo. En el programa principal se pueden anidar
Figura 5. Proceso de Fabricación de Trofeos
UNIVERSIDAD MILITAR NUEVA GRANADA
Figura 6. Diagrama de Flujo proceso de fabricación deseado. Imagen obtenida c desde Microsoft Word
IV-A. PROGRAMA PRINCIPAL
3
UNIVERSIDAD MILITAR NUEVA GRANADA
4
Figura 7. Programa Principal en lengüaje Ladder para el PLC 200. Imagen c obtenida desde Step7 Micro/WIN
IV-B. RUTINA MANIPULADOR PEQUEÑO O MANIPULA DOR 1
Figura 8. Programa Manipulador 1 en lengüaje Ladder para el PLC 200. c Imagen obtenida desde Step7 Micro/WIN
IV-C. RUTINA MANIPULADOR GRANDE O MANIPULA DOR 2
UNIVERSIDAD MILITAR NUEVA GRANADA
5
IV-E. RUTINA PARA SACAR 1 CILÍNDRO ALMACÉN 1
Figura 9. Programa Manipulador 2 en lengüaje Ladder para el PLC 200. c Imagen obtenida desde Step7 Micro/WIN
IV-D. RUTINA PARA SACAR 1 CUADRO
Figura 11. Programa para Sacar 1 Cílindro del Almacén 1 en lengüaje Ladder c para el PLC 200. Imagen obtenida desde Step7 Micro/WIN
Figura 10. Programa para Sacar 1 Cuadro en lengüaje Ladder para el PLC c 200. Imagen obtenida desde Step7 Micro/WIN
UNIVERSIDAD MILITAR NUEVA GRANADA
IV-F. RUTINA PARA SACAR 1 CILÍNDRO ALMACÉN 2
6
IV-G. TABLAS DE RELACIÓN ENTRADAS Y SALIDAS
Cuadro I c TABLA DE E NTRADAS , OBTENIDA DESDE M ICROSOFT E XCEL
Cuadro II c TABLA DE S ALIDAS , OBTENIDA DESDE M ICROSOFT E XCEL
Cuadro III c TABLA DE M ARCAS , OBTENIDA DESDE M ICROSOFT E XCEL
V. CONCLUSIONES Con el desarrollo de esta práctica, se confirmaron las múltiples ventajas que tiene el uso de Subrutinas en la programación de PLCt’s, algunas de estas son:
Figura 12. Programa para Sacar 1 Cílindro del Almacén 2 en lengüaje Ladder c para el PLC 200. Imagen obtenida desde Step7 Micro/WIN
Evitan la repetición de código, puesto que una subrutina puede ser invocada varias veces desde el mismo programa. Favorecen la reutilización de código. Facilitan la lectura y comprensión de código fuente al ocultar los detalles menos importantes, siempre y cuando los nombres de las subrutinas sean informativos de su función.
UNIVERSIDAD MILITAR NUEVA GRANADA
Ayudan a corregir errores, puesto que un error en una subrutina sólo se corrige una vez aunque esa subrutina sea llamada en diferentes puntos del programa principal. Facilitan la modularidad y estructuración de los algoritmos. Facilitan la depuración y mantenimiento de los programas. Reducción de código duplicado. Descomposición de problemas complejos en simples piezas (lo que aumenta la mantenibilidad y extensibilidad). R EFERENCIAS [1] División de Ingeniería de Sistemas y Automática. AUTÓMATAS PROGRAMABLES - SUBRUTINAS. Recuperado el Domingo 10 de Marzo del 2013. Disponible en: http://www.infoplc.net/files/descargas/siemens/infoplc_net_sub_interr.pdf [2] Universidad de Oviedo. Informática Industrial. CURSO ONLINE DE PROGRAMACIÓN DE AUTÓMATAS BASADO EN SIMATIC S7-200 DE SIEMENS - Subrutinas. Recuperado el 10 de Marzo del 2013. Disponible en: http://www.isa.uniovi.es/~vsuarez/ii/CursoOnline/12asubrutinas.htm#
7