Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Manual de programacin
Debido a la variedad de usos de los productos descritos en esta publicacin, las personas responsables de la aplicacin y uso de estos productos deben asegurarse de que se hayan seguido todos los pasos necesarios para que cada aplicacin y uso cumpla con todos los requisitos de rendimiento y seguridad, incluyendo leyes, reglamentos, cdigos y normas aplicables. En ningn caso se responsabilizar a Rockwell Automation por daos indirectos o resultantes del uso o aplicacin de estos productos. Los ejemplos de ilustraciones, grficos, programas y esquemas mostrados en esta publicacin tienen la nica intencin de ilustrar el texto. Debido a las muchas variables y requisitos asociados con cualquier instalacin particular, Rockwell Automation no puede asumir responsabilidad u obligacin (incluyendo responsabilidad de propiedad intelectual) por el uso real basado en los ejemplos mostrados en esta publicacin. La publicacin SGI-1.1 de Allen-Bradley, Safety Guidelines for the Application, Installation and Maintenance of Solid-State Control (disponible a travs de la oficina regional de Rockwell Automation), describe algunas diferencias importantes entre dispositivos de estado slido y dispositivos electromecnicos, las cuales deben tenerse en consideracin al usar productos tales como los descritos en esta publicacin. Est prohibida la reproduccin total o parcial del contenido de esta publicacin de propiedad exclusiva, sin el permiso escrito de Rockwell Automation. En esta publicacin hacemos estas anotaciones para informarle de consideraciones de seguridad Las siguientes anotaciones y sus declaraciones ayudarn a identificar un posible peligro, evitar un posible peligro y reconocer las consecuencias de un posible peligro.
ADVERTENCIA
!
ATENCIN
Identifica informacin acerca de prcticas o circunstancias que pueden causar una explosin en un ambiente peligroso, lo cual podra causar lesiones personales o la muerte, daos materiales o prdidas econmicas.
!
IMPORTANTE
Identifica informacin sobre prcticas o circunstancias que pueden conducir a lesiones personales o la muerte, o a daos materiales o prdidas econmicas.
Identifica informacin importante para la aplicacin y entendimiento correctos del producto. Srvase tomar nota de que en esta publicacin se usa el punto decimal para separar la parte entera de la decimal de todos los nmeros.
Informacin adicional sobre cmo planificar las tareas de un proyecto, inclusive la seleccin del lenguaje de programacin apropiado para la aplicacin Procedimientos adicionales sobre cmo trabajar con el organizador del controlador, cmo crear tareas, cmo crear programas y cmo crear las rutinas. Nueva informacin sobre cmo disear un organigrama de funciones secuenciales para la mquina o proceso. Nueva informacin sobre cmo introducir y configurar un organigrama de funciones secuenciales usando el software RSLogix 5000 Nueva informacin sobre cmo usar el lenguaje de programacin de texto estructurado, incluyendo asignaciones, expresiones, instrucciones, construcciones y comentarios Informacin adicional sobre cmo programar un diagrama de bloque de funcin, incluyendo cmo usar las hojas, cmo definir el orden de ejecucin, cmo resolver lazos, cmo definir el control del programa/operador, cmo introducir elementos y cmo configurar elementos Informacin adicional sobre cmo organizar e introducir la lgica de escalera Informacin nueva sobre cmo obtener informacin de memoria para un controlador Informacin actualizada sobre el forzado de valores de E/S Nueva informacin sobre como forzar y ejecutar los elementos SFC paso a paso Nueva informacin sobre la tarjeta 1784-CF64 Industrial CompactFlash (memoria no voltil para el controlador 1756-L63 ControlLogix) Procedimientos actualizados para la funcin de proteccin de la rutina de origen 2 nuevos cdigos de fallo mayores Informacin adicional sobre cumplimiento de la norma IEC61131-3 relacionada con los lenguajes de programacin de diagrama de funciones secuenciales y texto estructurado Nuevas definiciones relacionadas con los diagramas de funciones secuenciales
4 5 6 7
8 9 18 23 24 A B Glosario
Notas:
Prefacio
Este manual sirve como gua para el desarrollo de proyectos para los controladores Logix5000. Proporciona procedimientos paso a paso sobre cmo realizar las siguientes tareas, las cuales son comunes para todos los controladores Logix5000. Organizacin de tareas, programas y rutinas Organizacin de tags Diseo de un diagrama de funciones secuenciales Programacin de rutinas Prueba de un proyecto Manejo de fallos
El trmino controlador Logix5000 se refiere a cualquier controlador basado en el sistema operativo Logix, tal como: controladores controladores controladores controladores CompactLogix ControlLogix FlexLogix SoftLogix
Este manual se usa junto con los manuales del usuario para el tipo de controlador especfico. Los manuales del usuario cubren tareas tales como: Colocacin y configuracin de E/S Comunicacin con dispositivos a travs de diversas redes Mantenimiento de la batera
Este manual est diseado para quienes programan aplicaciones que usan controladores Logix5000, tales como: ingenieros de software ingenieros de control ingenieros de aplicacin tcnicos de instrumentacin
Prefacio
Use este manual cuando realice las siguientes acciones: desarrollo del cdigo bsico de la aplicacin modificacin de una aplicacin existente realizacin de pruebas aisladas de la aplicacin A medida que integre la aplicacin con los dispositivos de E/S, controladores y redes en el sistema: Consulte el manual del usuario del tipo especfico de controlador. Use este manual como referencia, cuando sea necesario.
Este manual est dividido en las tareas bsicas que se realizan durante la programacin de un controlador Logix5000. Cada captulo cubre una tarea. Las tareas estn organizadas en la secuencia en la cual normalmente se realizaran. A medida que use este manual, ver algunos trminos que estn formateados diferentemente del resto del texto:
Identifica:
Por ejemplo:
Significa: Haga clic con el botn derecho del mouse en el tem que tiene el nombre Definido por el usuario. Si desea informacin adicional, consulte nombre en el Glosario. Si est viendo el archivo PDF del manual, haga clic en nombre para saltar a la entrada del glosario.
el nombre real de un tem que usted Haga clic con el botn derecho ve en la pantalla o en un ejemplo del mouse en Definido por el usuario una entrada en el Glosario Escriba un nombre
negrita
courier
informacin que debe suministrar basada en su aplicacin (una variable) una tecla del teclado
Haga clic con el botn derecho del mouse en name_of_program Presione [Enter].
Usted debe identificar el programa especfico en la aplicacin. Generalmente es un nombre o variable que usted ha definido. Presione la tecla Enter.
entre corchetes
Tabla de contenido
Captulo 1 Administracin de archivos del proyecto
Creacin de un archivo de proyecto . . . . . . . . . . . . . . . . . 1-1 Guarde los cambios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3
ii
Tabla de contenido
Conectar a un paso previo . . . . . . . . . . . . . Aadir acciones para cada paso. . . . . . . . . . . . Cmo desea usar la accin?. . . . . . . . . . . . Usar una accin no booleana . . . . . . . . . . . Usar una accin booleana . . . . . . . . . . . . . Estructura SFC_ACTION . . . . . . . . . . . . . . . Describir cada accin en pseudocdigo . . . . . . Seleccionar un calificador para una accin . . . . Definir las condiciones de la transicin . . . . . . Tag de transicin . . . . . . . . . . . . . . . . . . . . Cmo desea programar la transicin?. . . . . Usar una expresin BOOL . . . . . . . . . . . . . Llamar a una subrutina. . . . . . . . . . . . . . . . Transicin despus de un tiempo especificado. Desactivar un dispositivo al final de un paso . . Seleccionar la opcin de un ltimo escn . . Usar la opcin Dont Scan . . . . . . . . . . . . . Usar la opcin Programmatic Reset. . . . . . . Usar la opcin Automatic Reset . . . . . . . . . Mantener algo activado de paso a paso . . . . . . Cmo desea controlar el dispositivo? . . . . . Usar una bifurcacin simultnea . . . . . . . . . Almacenar y restablecer una accin . . . . . . Usar un paso grande . . . . . . . . . . . . . . . . . Terminar el SFC . . . . . . . . . . . . . . . . . . . . . . . Al final del SFC, qu desea hacer? . . . . . . . Usar un elemento de paro . . . . . . . . . . . . . Reiniciar (restablecer) el SFC . . . . . . . . . . . Estructura SFC_STOP . . . . . . . . . . . . . . . . . Anidar un SFC. . . . . . . . . . . . . . . . . . . . . . . . . Pasar parmetros . . . . . . . . . . . . . . . . . . . . Configurar cundo retornar al OS/JSR . . . . . . . Pausa o restablecer un SFC . . . . . . . . . . . . . . . Diagramas de ejecucin . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-16 4-17 4-17 4-17 4-18 4-19 4-20 4-21 4-22 4-24 4-24 4-24 4-25 4-26 4-29 4-29 4-31 4-32 4-34 4-35 4-35 4-36 4-37 4-39 4-40 4-40 4-40 4-41 4-42 4-43 4-44 4-44 4-45 4-45
Tabla de contenido
iii
Establecer las prioridades de una bifurcacin de seleccin Regresar a un paso previo . . . . . . . . . . . . . . . . . . . . . . . . Conectar un cable al paso . . . . . . . . . . . . . . . . . . . . . Ocultar un cable . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mostrar un cable oculto . . . . . . . . . . . . . . . . . . . . . . . Cambiar el nombre de un paso . . . . . . . . . . . . . . . . . . . . Configurar un paso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Asignar el tiempo preseleccionado para un paso. . . . . Configurar alarmas para un paso . . . . . . . . . . . . . . . . Usar una expresin para calcular un tiempo . . . . . . . . Cambiar el nombre de una transicin. . . . . . . . . . . . . . . . Programar una transicin. . . . . . . . . . . . . . . . . . . . . . . . . Introducir una expresin BOOL . . . . . . . . . . . . . . . . . Llamar a una subrutina. . . . . . . . . . . . . . . . . . . . . . . . Aadir una accin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cambiar el nombre de una accin . . . . . . . . . . . . . . . . . . Configurar una accin . . . . . . . . . . . . . . . . . . . . . . . . . . . Cambiar el calificador de una accin . . . . . . . . . . . . . Calcular un tiempo preseleccionado en tiempo de ejecucin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Marcar una accin como accin booleana. . . . . . . . . . Programar una accin . . . . . . . . . . . . . . . . . . . . . . . . . . . Introducir texto estructurado . . . . . . . . . . . . . . . . . . . Llamar a una subrutina. . . . . . . . . . . . . . . . . . . . . . . . Asignar el orden de ejecucin de las acciones . . . . . . . . . Documentar el SFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aadir comentarios de texto estructurado . . . . . . . . . . Aadir una descripcin de tag . . . . . . . . . . . . . . . . . . Aadir un cuadro de texto . . . . . . . . . . . . . . . . . . . . . Mostrar u ocultar cuadros de texto o descripciones de tag Mostrar u ocultar cuadros de texto o descripciones . . . Ocultar una descripcin de tag individual . . . . . . . . . . Configurar la ejecucin del SFC . . . . . . . . . . . . . . . . . . . . Verificar la rutina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-8 5-9 5-9 5-10 5-10 5-11 5-11 5-11 5-12 5-12 5-14 5-14 5-14 5-15 5-16 5-16 5-17 5-17 5-18 5-19 5-19 5-19 5-21 5-22 5-23 5-23 5-24 5-25 5-26 5-26 5-27 5-28 5-29
iv
Tabla de contenido
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
Tabla de contenido
Condicin de rengln . . . . . . . . . . . . . . . . . . . . Escritura de lgica de escalera . . . . . . . . . . . . . . . . . Seleccione las instrucciones requeridas . . . . . . . . Organice las instrucciones de entrada . . . . . . . . . Organice las instrucciones de salida . . . . . . . . . . Seleccione un nombre de tag para un operando . Introduccin de la lgica de escalera . . . . . . . . . . . . Aada un elemento en la ubicacin del cursor . . Arrastre y coloque un elemento . . . . . . . . . . . . . Asignacin de operandos . . . . . . . . . . . . . . . . . . . . Cree y asigne un nuevo tag . . . . . . . . . . . . . . . . Seleccione un nombre o un tag existente . . . . . . Arrastre un tag desde la ventana Tags. . . . . . . . . Asigne un valor inmediato (constante) . . . . . . . . Verificacin de la rutina . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
8-4 8-5 8-5 8-6 8-7 8-7 8-9 8-9 8-10 8-10 8-10 8-11 8-12 8-12 8-12
vi
Tabla de contenido
Tabla de contenido
vii
Introducir los ID de producto y nmeros de ruta Verificar los caracteres del cdigo de barras . . . . . . . Convertir un valor . . . . . . . . . . . . . . . . . . . . . . . . . . Descodificar un mensaje ASCII . . . . . . . . . . . . . . . . Crear una cadena . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . 18-9 . . . . 18-9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-9 . 18-9 18-11 18-12 18-13 18-14 18-14 18-14 18-15 18-15 18-15 18-15
viii
Tabla de contenido
Cmo borrar un fallo mayor durante el preescn . . . . Identificar cuando el controlador est en preescn Obtener el tipo y cdigo del fallo . . . . . . . . . . . . . Verificacin de un fallo especfico . . . . . . . . . . . . Borrar el fallo . . . . . . . . . . . . . . . . . . . . . . . . . . . Prueba de una rutina de fallo . . . . . . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . 24-5 . . 24-5
Tabla de contenido
ix
Crear un archivo para las claves de origen . . . . . . . . . Proteccin de una rutina con una clave de origen . . . . Retirar el acceso a una rutina protegida . . . . . . . . . . . Inhabilitar la proteccin de origen de rutina . . . . . . . . Obtener acceso a una rutina protegida . . . . . . . . . . . . Use RSI Security Server para proteger un proyecto . . . . . . Instalacin del software RSI Security Server. . . . . . . . . Configuracin de DCOM . . . . . . . . . . . . . . . . . . . . . . Habilitacin del software Security Server para RSLogix 5000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Importacin del archivo RSLogix5000Security.bak . . . . Definicin de acciones globales para los usuarios . . . . Definicin de acciones del proyecto para los usuarios. Aadir usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aadir grupos de usuarios . . . . . . . . . . . . . . . . . . . . . Asignar acceso global al software RSLogix 5000 . . . . . Asignar acciones de proyecto para nuevos proyectos RSLogix 5000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Habilitar la seguridad para un proyecto RSLogix 5000 . Asignar acceso a un proyecto RSLogix 5000 . . . . . . . . Regenerar el software RSLogix 5000, si es necesario . .
. 24-6 . 24-7 . 24-8 . 24-8 . 24-9 24-12 24-12 24-13 24-13 24-14 24-14 24-16 24-19 24-19 24-20 24-21 24-21 24-22 24-23
Tabla de contenido
Captulo
Antes de programar un controlador Logix5000, debe crear un proyecto: 1. Inicie el software RSLogix 5000. 2. En el men Archivo, seleccione Nuevo.
3. 4. 5.
6. 7. 8.
42194
3. Seleccione el tipo de controlador. 4. Escriba un nombre para el controlador. 5. Escriba una descripcin de las operaciones que realiza el controlador (opcional). 6. Seleccione el tipo de chasis (nmero de ranuras) que contiene el controlador (no se aplica en el caso de algunos controladores). 7. Seleccione o escriba el nmero de ranura donde est instalado el controlador (no se aplica en el caso de algunos controladores). 8. Para almacenar el archivo en una carpeta diferente (que no sea la ruta de acceso predeterminada Crear en), haga clic en Examinar y seleccione una carpeta. 9. Haga clic en Aceptar.
1-2
Cuando usted crea un proyecto, el nombre del archivo del proyecto es igual al nombre del controlador.
42371
1-3
A medida que vaya creando la lgica y haciendo cambios de configuracin, guarde su proyecto.
Para: guardar los cambios haga una copia del proyecto abierto pero mantenga el nombre existente del controlador haga una copia del proyecto y asigne un nombre diferente al controlador. Haga lo siguiente: En el men Archivo, seleccione Guardar. A. En el men Archivo, seleccione Guardar como. B. Introduzca un nombre para el archivo del proyecto. Use subrayado [ _ ] en lugar de espacios. C. Haga clic en Guardar. A. En el men Archivo, seleccione Guardar como. B. Introduzca un nombre para el archivo del proyecto. Use subrayado [ _ ] en lugar de espacios. C. Haga clic en Guardar. D. En el Organizador de controller, haga clic con el botn derecho del mouse en la carpeta Controller name_of_controller y seleccione Propiedades. E. Introduzca un nuevo nombre para el controlador. F. Haga clic en Aceptar.
Los nombres se descargar al controlador, mientras que la documentacin (descripciones comentarios de rengln) no se descarga al controlador. Para cambiar el nombre, tamao de chasis o nmero de ranura del controlador: a. En el Organizador de controller, haga clic con el botn derecho del mouse en la carpeta Controller name_of_controller y seleccione Propiedades. b. Cambie la informacin requerida. c. Haga clic en Aceptar.
1-4
Notas:
Captulo
Use este procedimiento para realizar lo siguiente: definir la organizacin general del proyecto. seleccionar un lenguaje de programacin para cada funcin principal de la mquina o proceso. Crear las tareas, programas y rutinas en los cuales programar la lgica
Antes de comenzar
Para determinar cules lenguajes de programacin estn instalados en la versin del software RSLogix 5000: 1. Inicie el software RSLogix 5000. 2. En el men Help, seleccione About RSLogix 5000. Para aadir un lenguaje de programacin, consulte el documento ControlLogix Selection Guide, publicacin 1756-SG001.
Para organizar el proyecto en tareas, programas y rutinas: Revise las Definiciones Planifique las tareas del proyecto Use el Controller Organizer Cree una tarea peridica Cree un programa Cree una rutina Configure una rutina como rutina principal Verifique el proyecto
2-2
Definiciones
Antes de usar los procedimientos descritos en este captulo, familiarcese con las definiciones.
tarea
rutina
tarea peridica
rutina principal
tarea
Una tarea proporciona informacin de programacin y prioridades para un conjunto de uno o ms programas que se ejecutan segn criterios especficos. Una vez que se activa una tarea, todos los programas asignados (programados) a la tarea se ejecutan en el orden en el cual se muestran en el organizador del controlador.
tarea continua
La tarea continua se ejecuta en el segundo plano. Cualquier tiempo de CPU no asignado a otras operaciones (tales tareas de movimiento, comunicaciones y peridicas) se puede usar para ejecutar los programas dentro de la tarea continua. La tarea continua se ejecuta todo el tiempo. Cuando la tarea continua realiza un escn completo, se reinicia inmediatamente. Un proyecto no requiere una tarea continua. Si se usa, slo puede haber una tarea continua.
2-3
tarea peridica
Una tarea peridica realiza una funcin segn un rgimen especfico. Cada vez que caduca el tiempo de la tarea peridica, la tarea interrumpe la tarea continua, se ejecuta una vez y luego devuelve el control donde se interrumpi la tarea continua. El perodo de tiempo se puede configurar de 1 ms a 2000 s. La opcin predeterminada es 10 ms. Se pueden crear hasta 32 tareas peridicas y asignar una prioridad a cada una: La tarea de mayor prioridad interrumpe a todas las tareas de menor prioridad. Una tarea de mayor prioridad puede interrumpir una tarea de menor prioridad mltiples veces. Las tareas que tienen la misma prioridad se ejecutan segn una base de segmento de tiempo a intervalos de 1 ms. El siguiente ejemplo muestra la ejecucin de un proyecto con tres tareas. Orden de ejecucin de tareas para un proyecto con dos tareas peridicas y una tarea continua
Tarea: 1 2 3 Leyenda: La tarea se ejecuta. La tarea se interrumpe (se suspende). Tipo de tarea: 20 ms peridica 10 ms peridica continua Nivel de prioridad: Tiempo de ejecucin: 5 10 ninguno (ms bajo) 2 ms 4 ms 24 ms
EJEMPLO
Tarea 1
Tarea 2
2-4
Programa
Un programa es una subdivisin de una tarea. Cuando se activa una tarea, los programas programados dentro de la tarea se ejecutan hasta completarse, desde el primero al ltimo. Cada programa contiene tags de programa, una rutina principal, otras rutinas y una rutina de fallo opcional.
Rutina
Las rutinas proporcionan el cdigo de ejecucin para el proyecto en un controlador (similar a un archivo de programa en un controlador PLC o SLC). Cada rutina usa un lenguaje de programacin especfico, tal como lgica de escalera.
Rutina principal
Cuando un programa se ejecuta, su rutina principal se ejecuta primero. Use la rutina principal para llamar (ejecutar) otras rutinas (subrutinas). Para llamar a otra rutina dentro del programa, use una instruccin Jump to Subroutine (JSR).
Para identificar las tareas, programas y rutinas de la lgica, tome las siguientes decisiones: Defina las funciones del proyecto Asigne cada funcin a una tarea Estas decisiones generalmente son iterativas. Despus de tomar algunas decisiones iniciales, revise sus decisiones a medida que contina desarrollando el proyecto.
2-5
En general, si la funcin o grupo de funciones representa: ejecucin continua o paralela de mltiples operaciones (que no tienen secuencia) operaciones booleanas o basadas en bit operaciones lgicas complejas procesamiento de comunicacin y mensajes enclavamiento de mquina el personal de mantenimiento u operaciones de servicio quizs tengan que efectuar interpretaciones para solucionar problemas de la mquina o el proceso. control de variador y proceso continuo control de lazo clculos en flujo de circuito administracin de alto nivel de mltiples operaciones secuencias de operaciones repetitivas proceso de lote control de movimiento usando texto estructurado estado de operaciones de mquina operaciones matemticas complejas procesamiento de lazo o matriz especial manejo de cadenas ASCII o procesamiento de protocolo
texto estructurado
2-6
2-7
El Controller Organizer proporciona una descripcin general grfica del proyecto. A medida que usted desarrolle su proyecto, ir realizando las siguientes acciones comunes: Abra o cierre una carpeta Abra una rutina
Para abrir una carpeta y mostrar su contenido (expandir), realice una de las siguientes acciones: Haga doble clic en la carpeta. Seleccione la carpeta y presione la tecla . Haga clic en el signo +.
Para cerrar una carpeta y ocultar su contenido (contraer), realice una de las siguientes acciones: Haga doble clic en la carpeta. Seleccione la carpeta y presione la tecla . Haga clic en el signo .
2-8
Para abrir una rutina, haga doble clic en la rutina. Si la rutina apare atenuada, no podr abrir la rutina.
IMPORTANTE
Si el origen de una rutina no est disponible, no exporte el proyecto. Un archivo de exportacin (.L5K) contiene slo rutinas donde el cdigo de origen est disponible. Si usted exporta un proyecto donde el cdigo de origen no est disponible para todas las rutinas, no podr restaurar la totalidad del proyecto.
2-9
Una tarea peridica realiza una funcin o funciones segn un rgimen especfico. Asegrese de que el perodo de tiempo sea ms largo que la suma de los tiempos de ejecucin de todos los programas asignados a la tarea. Si el controlador detecta que ocurre una activacin de la tarea peridica para una tarea que ya est en operacin, ocurre un fallo menor.
ATENCIN
1.
1. En el Controller Organizer, haga clic con el botn derecho del mouse en la carpeta Tasks y seleccione New Task.
2.
3. 4.
5. 6.
2. En el cuadro de texto Name, escriba un nombre para la tarea. 3. En la lista Type, seleccione Periodic (opcin predeterminada). 4. En la lista Watchdog, escriba el tiempo de watchdog para la tarea.
2-10
5. En el cuadro de texto Rate, escriba el rgimen al cual desea que se ejecute la tarea. 6. En el cuadro de texto Priority, escriba la prioridad para la tarea. 7. Seleccione
Cree un programa
Cada tarea requiere por lo menos un programa. Se pueden crear mltiples programas para una tarea.
1.
1. En el Controller Organizer, haga clic con el botn derecho del mouse en la tarea que ejecutar el programa y seleccione New Program.
2.
2-11
Cada programa requiere por lo menos una rutina. Use una rutina para ejecutar la lgica.
1.
1. En el Controller Organizer, haga clic con el botn derecho del mouse en el programa que ejecutar la rutina y seleccione New Routine.
2.
3.
2. En el cuadro de texto Name, escriba un nombre para la rutina. 3. En la lista Type, seleccione el lenguaje de programacin para la rutina 4. Seleccione
2-12
Cada programa requiere una rutina principal.La rutina principal se ejecuta cada vez que el programa se ejecuta.
1.
1. En el Controller Organizer, haga clic con el botn derecho del mouse en el programa que ejecutar la rutina y seleccione New Properties.
2.
3.
2. Haga clic en la ficha Configuration. 3. En la lista Main, seleccione el nombre de la rutina. 4. Seleccione
Verifique el proyecto
A medida que va programando el proyecto, verifique peridicamente su trabajo: 1. En la barra de herramientas del extremo superior de la ventana RSLogix 5000, haga clic en 2. Si hay errores listados en la parte inferior de la ventana: a. Vaya al primer error o advertencia, presione [F4]. b. Corrija el error de conformidad con la descripcin indicada en la ventana Results. c. Vaya al paso 1. 3. Para cerrar la ventana Results, presione [Alt] + [1].
Captulo
Organizacin de tags
Los controladores Logix5000 almacenan datos en tags (a diferencia de archivos de datos fijos, los cuales se direccionan numricamente). Con los tags usted puede organizar los datos para reflejar la maquinaria documentar (mediante nombres de tag) la aplicacin a medida que se va desarrollando Cuando se crea un tag se asignan las siguientes propiedades:
Tabla 3.A Propiedades de tag Propiedad: alcance nombre tipo de datos Descripcin: define que rutinas pueden tener acceso a los datos identifica a los datos (tags con diferentes alcances pueden tener el mismo nombre). define la organizacin de los datos, tal como nmero de coma flotante, entero o bit
3-2
Organizacin de tags
Los siguientes ejemplos muestran los diferentes niveles a los cuales se pueden organizar los datos: Tags de un solo elemento, en la pgina 3-3 Matriz de una sola dimensin, en la pgina 3-4 Matriz de dos dimensiones, en la pgina 3-5 Tipo de datos definido por el usuario que almacena una receta, en la pgina 3-6 Tipo de datos definido por el usuario que almacena los datos requeridos para ejecutar una mquina, en la pgina 3-7
Organizacin de tags
3-3
EJEMPLO
dispositivo de E/S analgico valor entero acenamiento contador temporizador tivo digital
42364
3-4
Organizacin de tags
EJEMPLO
Matriz de una sola dimensin En este ejemplo, una sola instruccin de temporizacin temporiza la duracin de varios pasos. Cada paso requiere un valor preseleccionado diferente. Puesto que todos los valores tienen el mismo tipo de datos (DINT), se usa una matriz.
Para expandir una matriz y mostrar sus elementos, haga clic en el signo +.
Para contraer una matriz y ocultar sus elementos, haga clic en el signo . elementos de timer_presets
Esta matriz contiene seis elementos del tipo de datos DINT. seis DINT
42367
Organizacin de tags
3-5
EJEMPLO
Matriz de dos dimensiones Una perforadora puede perforar de uno a cinco agujeros en un libro. La mquina requiere un valor para la posicin de cada agujero desde el borde delantero del libro. Para organizar los valores en configuraciones, se usa una matriz de dos dimensiones. El primer subndice indica el agujero al cual corresponde el valor y el segundo subndice indica cuntos agujeros se perforarn (uno a cinco).
subndice de segunda dimensin 0 subndice de primera dimensin 0 1 2 3 4 5 1.5 2.5 8.0 1.25 5.5 9.75 1.25 3.5 7.5 9.75 1.25 3.5 5.5 7.5 9.75 Posicin del primer agujero desde el borde delantero del libro Posicin del segundo agujero desde el borde delantero del libro Posicin del tercer agujero desde el borde delantero del libro Posicin del cuarto agujero desde el borde delantero del libro Posicin del quinto agujero desde el borde delantero del libro 1 2 3 4 5 Descripcin
Esta matriz contiene una cuadrcula de elementos de dos dimensiones, seis elementos por seis elementos.
42367
La dimensin del extremo derecho se incrementa a su valor mximo y luego vuelve a empezar. Cuando vuelve a empezar la dimensin del extremo derecho, la dimensin de la izquierda aumenta por un valor de uno.
3-6
Organizacin de tags
EJEMPLO
Tipo de datos definido por el usuario que almacena una receta En un sistema de varios tanques, cada tanque puede ejecutar una variedad de recetas. Puesto que la receta requiere una combinacin de tipos de datos (REAL, DINT, BOOL, etc.), se usa un tipo de datos definido por el usuario.
Nombre (del tipo de datos): TANK Nombre del miembro temp banda muerta paso step_time preseleccionado combinacin Tipo de datos REAL REAL DINT TIMER DINT[6] BOOL
matriz de recetas
primera receta
miembros de la receta
42368
Organizacin de tags
3-7
EJEMPLO
Tipo de datos definido por el usuario que almacena los datos requeridos para ejecutar una mquina Puesto que varias estaciones de perforacin requieren la siguiente combinacin de datos, se crea un tipo de datos definido por el usuario.
Nombre (del tipo de datos): DRILL_STATION Nombre del miembro part_advance hole_sequence type hole_position depth total_depth Tipo de datos BOOL CONTROL DINT REAL REAL REAL
matriz de taladros
primer taladro
42583
3-8
Organizacin de tags
42195
1. Haga clic con el botn derecho del mouse en Definido por el usuario y seleccione Nuevo Data type.
2. 3.
42196
4.
5.
6.
7.
2. Introduzca un nombre para el tipo de datos. 3. Introduzca una descripcin (opcional). 4. Escriba el nombre del primer miembro.
Organizacin de tags
3-9
5. Especifique el tipo de datos del miembro. Vea Tabla 3.B en la pagina 3-1. Use el siguiente formato para una matriz: data_type[x] donde: x es el nmero de elementos en la matriz. EJEMPLO Si el miembro es una matriz de seis DINT, escriba DINT[6].
6. Para mostrar el valor (s) del miembro en un estilo diferente (base), seleccione el estilo. 7. Escriba una descripcin para el miembro (opcional). 8. Haga clic en Aplicar. 9. Ms miembros?
Si: S No Entonces: Repita los pasos 4. a 8. Haga clic en Aceptar.
Notas:
Si incluye miembros que representan dispositivos de E/S, debe usar la lgica de escalera para copiar los datos entre los miembros en la estructura y los tags de E/S correspondientes. Vea Almacenamiento de E/S en el bfer en la pgina 12-1. Cuando use los tipos de datos BOOL, SINT o INT, coloque los miembros que usan el mismo tipo de datos en secuencia:
ms eficiente BOOL BOOL BOOL DINT DINT menos eficiente BOOL DINT BOOL DINT BOOL
3-10
Organizacin de tags
Creacin de un tag
Para crear un tag (incluyendo una matriz): 1. En el men Lgica, seleccione Editar tag.
2.
42350
3.
4.
5.
donde: data_type es el tipo de datos que el tag o matriz almacena. Vea Tabla 3.B en la pagina 3-1. x es el nmero de elementos en la primera dimensin. y es el nmero de elementos en la segunda dimensin. y es el nmero de elementos en la tercera dimensin. 5. Escriba una descripcin (opcional).
Organizacin de tags
3-11
Tambin puede usar un software de hojas de clculo, tal como Microsoft Excel para crear y editar tags. Esto permite aprovechar las funciones de edicin del software de hojas de clculo. Para crear tags usando Excel: 1. Abra el proyecto RSLogix 5000. 2. Cree varios tags. (Esto ayuda a formatear la hoja de clculo Excel). 3. En el men Herramientas, seleccione Exportar tag.
4.
5.
42361
4. Apunte el nombre del archivo de exportacin (project_name-Tags). 5. Seleccione el alcance de los tags a exportar. Si selecciona Tag de program, seleccione los tags del programa a exportar. 6. Haga clic en Exportar. 7. En el software Microsoft Excel, abra el archivo de exportacin.
3-12
Organizacin de tags
DESCRIPCIN DESCRIPCIN
TIPO DE DATOS DINT TIPO DE DATOS BOOL BOOL DRILL_STATION REAL[6,6] BOOL
8.
9.
10.
11.
10. Introduzca el nombre del tag 11. Introduzca el tipo de datos del tag. 12. Repita los pasos 8. a 11. para cada tag adicional. 13. Guarde y cierre el archivo. (Mantngalo como formato .CSV). 14. En el software RSLogix 5000, en el men Herramientas, seleccione Importar tag.
Organizacin de tags
3-13
15. Seleccione el archivo que contiene los tags y haga clic en Importar. Se importan los tags al proyecto. La seccin inferior de la ventana RSLogix 5000 muestra los resultados. Los tags se pueden configurar para comunicarse directamente con otros controladores:
Para: enviar datos por el backplane y la red ControlNet a un intervalo especificado recibir datos de otro controlador por el backplane o la red ControlNet a un intervalo especificado Use un: tag producido tag consumido
Si piensa usar tags producidos o consumidos, debe seguir pautas adicionales a medida que organiza los tags. Vea Comunicacin con otro controlador en la pgina 14-1. Los siguientes tipos de datos enteros tambin estn disponibles: SINT (entero de 8 bits) INT (entero de 16 bits) Normalmente, las instrucciones convierten valores SINT o INT a un tipo de datos ptimo (generalmente un valor DINT o REAL) durante la ejecucin. Puesto que esto requiere memoria y tiempo adicional, minimice el uso de los tipos de datos SINT e INT.
3-14
Organizacin de tags
Notas:
Captulo
Use este procedimiento para disear un diagrama de funciones secuenciales (SFC) para su proceso o sistema. Un SFC es similar a un diagrama de flujo de proceso. Define los pasos o estados a travs de los cuales progresa el sistema. Use el SFC para: organizar la especificacin de funciones del sistema programar y controlar el sistema como una serie de pasos y transiciones Usar un SFC para especificar el proceso tiene las siguientes ventajas: Puesto que un SFC es una representacin grfica del proceso, es ms fcil de organizar y leer que una versin de texto. Adems, el software RSLogix 5000 le permite: aadir notas que aclaran los pasos o capturan informacin importante para uso posterior imprimir el SFC para compartir la informacin con otras personas Puesto que los controladores Logix5000 son compatibles con los SFC, no necesita introducir la especificacin por segunda vez. Usted programa el sistema tal como lo especifica. Usar un SFC para programar el proceso tiene las siguientes ventajas: divisin grfica de procesos en sus componentes lgicos principales (pasos) ejecucin repetida ms rpida de componentes individuales de la lgica pantalla ms simple menos tiempo para disear y depurar el programa resolucin de problemas ms rpida y ms fcil acceso directo al punto en la lgica donde una mquina entr en fallo actualizaciones y mejoras fciles
Generalmente, el desarrollo de un SFC es un proceso iterativo. Si lo desea, puede usar el software RSLogix 5000 para bosquejar y refinar el SFC. Para obtener informacin sobre los procedimientos especficos para introducir un SFC, vea Programacin de un diagrama de funciones secuenciales en la pgina 5-1.
4-2
Un diagrama de funciones secuenciales (SFC) es similar a un diagrama de flujo. Utiliza pasos y transiciones para realizar operaciones o acciones especficas. En la Figura 4.1 y en la Figura 4.2 se proporcionan ejemplos que muestran los elementos de un SFC:
Figura 4.1 Ejemplo de SFC Un paso representa una funcin principal del proceso. Contiene las acciones que ocurren en un tiempo, fase o estacin especfica. Una accin es una de las funciones que realiza un paso.
Una transicin es una condicin verdadera o falsa que le indica al SFC cundo ir al siguiente paso. Un calificador determina cundo comienza y se detiene una accin.
4-3
Figura 4.2 Ejemplo de SFC (contina de la pgina anterior) Una bifurcacin de seleccin selecciona entre rutas de ejecucin diferentes.
Un paro le permite parar y esperar que se reinicie un comando. Un cable conecta un elemento a otro elemento en cualquier lugar del diagrama. Este cable le lleva al paso conveyor en la Figura 4.1 en la pgina anterior.
4-4
Para disear un SFC, se realizan las siguientes tareas: Definir las tareas Seleccionar cmo ejecutar el SFC Definir los pasos del proceso Organizar los pasos Aadir acciones para cada paso Describir cada accin en pseudocdigo Seleccionar un calificador para una accin Definir las condiciones de la transicin Transicin despus de un tiempo especificado Desactivar un dispositivo al final de un paso Mantener algo activado de paso a paso Terminar el SFC Anidar un SFC Configurar cundo retornar al OS/JSR Pausa o restablecer un SFC Las secciones restantes de este captulo describen en detalle cmo realizar cada tarea:
4-5
El primer paso en el desarrollo de un SFC es separar la configuracin y regulacin de dispositivos de los comandos para esos dispositivos. Los controladores Logix5000 le permiten dividir el proyecto en una tarea continua y mltiples tarea peridicas. 1. Organice el proyecto de la siguiente manera:
Estas funciones: configurar y regular dispositivos comandar de un estado especfico para un dispositivo establecer una secuencia de la ejecucin del proceso Vaya aqu: tarea peridica SFC en la tarea continua
2. Para las funciones que van en una tarea peridica, agrupe las funciones de acuerdo a regmenes de actualizacin similares. Cree una tarea peridica para cada rgimen de actualizacin. Por ejemplo, los dispositivos de 2 estados pueden requerir actualizaciones ms rpidas que los lazos PID. Use tareas peridicas separadas para cada uno. El siguiente ejemplo muestra un proyecto que usa dos tareas peridicas para regular motores, vlvulas y lazos de temperatura. El proyecto usa un SFC para controlar el proceso. Definir las tareas
EJEMPLO
Esta tarea (peridica) usa diagramas de bloques de funcin para activar o desactivar motores y abrir o cerrar vlvulas. El SFC en MainTask emite el comando de estado para cada dispositivo. Los diagramas de bloques de funcin establecen y mantienen dicho estado.
Esta tarea (peridica) usa diagramas de bloques de funcin para configurar y regular los lazos de temperatura. El SFC en MainTask emite los comandos de temperatura. Los diagramas de bloques de funcin establecen y mantienen dichas temperaturas. Esta tarea (continua) ejecuta el diagrama de funciones secuenciales (SFC). El SFC emite los comandos de estado especfico o temperatura para cada dispositivo o lazo de temperatura.
4-6
Para ejecutar un SFC, configrelo ya sea como rutina principal de un programa o llmelo como subrutina.
Si: El SFC es la nica rutina en el programa. El SFC llama a todas las otras rutinas del programa. El programa requiere que otras rutinas se ejecuten independientemente del SFC. El SFC usa acciones booleanas. Entonces: Configure el SFC como la rutina principal del programa. 1. Configure otra rutina como la rutina principal del programa. 2. Use la rutina principal para llamar al SFC como subrutina.
Si el SFC usa acciones booleanas, entonces otra lgica debe ejecutarse independientemente del SFC y monitorear los bits de estado del SFC.
Un paso representa una funcin principal del proceso. Contiene las acciones que ocurren en un tiempo, fase o estacin especfica.
Paso Un paso se ejecuta continuamente hasta que una transicin le indique al SFC que vaya al siguiente paso.
Acciones
Hacer esto
MEZCLAR
y hacer esto
Una transicin termina el paso. La transicin define las condiciones fsicas que deben ocurrir o cambiar para ir al siguiente paso.
4-7
Pintar
Paint_Flow
Air_Flow
Elec_Charg
Limpiar Transfr_Out
Limpiar Transfr_Out
Cuando usted inicialmente abre una rutina de SFC, sta contiene un paso y transicin inicial. Use este paso para inicializar el proceso.
paso inicial
transicin inicial
Para identificar un paso, busque un cambio fsico en el sistema, tal como una nueva pieza que est en posicin, una temperatura alcanzada, un tiempo predeterminado alcanzado o una seleccin de receta que haya ocurrido. El paso consta de las acciones que se realizan antes de dicho cambio. Detngase cuando los pasos estn in incrementos significativos. Por ejemplo:
Esta organizacin de pasos: produce_solution set_mode, close_outlet, set_temperature, open_inlet_a, close_inlet_a, set_timer, reset_temperature, open_outlet, reset_mode preset_tank, add_ingredient_a, cook, drain Representa: probablemente demasiado grande probablemente demasiado pequeo probablemente correcto
4-8
Estructura SFC_STEP
Cada paso usa un tag para proporcionar informacin acerca del paso. Acceda a esta informacin ya sea mediante el cuadro de dilogo Step Properties o la ficha Monitor Tags de la ventana Tags:
Si desea: Entonces verifique o establezca este miembro: T Tipo de datos: Detalles:
DINT
Cuando un paso se activa, el valor del temporizador (T) se restablece y luego comienza a contar progresivamente en milisegundos. El temporizador contina contando progresivamente hasta que el paso se desactiva, independientemente del valor preseleccionado (PRE). Introduzca el tiempo en el miembro preseleccionado (PRE). Cuando el temporizador (T) llega al valor preseleccionado, el bit de efectuado (DN) se activa y permanece activado hasta que el paso vuelva a activarse. Como opcin, introduzca una expresin numrica que calcule el tiempo durante la ejecucin.
PRE
DINT
DN
BOOL
Cuando el temporizador (T) llega al valor preseleccionado (PRE), el bit de efectuado (DN) se activa y permanece activado hasta que el paso vuelva a activarse. Introduzca el tiempo en el miembro LimitLow (milisegundos). Si el paso se desactiva antes que el temporizador (T) llegue al valor de LimitLow, se activa el bit AlarmLow. El bit AlarmLow permanecer activado hasta que usted lo restablezca. Para usar esta funcin de alarma, active (seleccione) el bit AlarmEnable (AlarmEn). Como opcin, introduzca una expresin numrica que calcule el tiempo durante la ejecucin.
LimitLow
DINT
AlarmEn AlarmLow
BOOL BOOL
Para usar los bits de alarma, active (seleccione) el bit AlarmEnable (AlarmEn). Si el paso se desactiva antes que el temporizador (T) llegue al valor de LimitLow, se activa el bit AlarmLow. Este bit permanecer activado hasta que usted lo restablezca. Para usar esta funcin de alarma, active (seleccione) el bit AlarmEnable (AlarmEn). Introduzca el tiempo en el miembro LimitHigh (milisegundos). Si el temporizador (T) llega al valor de LimitHigh, se activar el bit AlarmHigh. El bit AlarmHigh permanecer activado hasta que usted lo restablezca. Para usar esta funcin de alarma, active (seleccione) el bit AlarmEnable (AlarmEn). Como opcin, introduzca una expresin numrica que calcule el tiempo durante la ejecucin.
LimitHigh
DINT
AlarmEn AlarmHigh
BOOL BOOL
Para usar los bits de alarma, active (seleccione) el bit AlarmEnable (AlarmEn). Si el temporizador (T) llega al valor de LimitHigh, se activar el bit AlarmHigh. Este bit permanecer activado hasta que usted lo restablezca. Para usar esta funcin de alarma, active (seleccione) el bit AlarmEnable (AlarmEn).
4-9
Si desea:
Tipo de datos:
Detalles:
hacer algo mientras el paso est activo (incluyendo el primer y ltimo escn)
BOOL
El bit X est activado todo el tiempo que el paso est activo (ejecutndose). Normalmente, recomendamos usar una accin con un calificador N Non-Stored para lograr esto.
FS
BOOL
El bit FS se activa durante el primer escn del paso. Normalmente, recomendamos usar una accin con un calificador P1 Pulse (Rising Edge) para lograr esto.
hacer algo mientras el paso est activo, excepto en el primer y ltimo escn hacer algo una vez en el ltimo escn del paso
SA
BOOL
El bit SA est activo cuando el paso est activo, excepto durante el primer y ltimo escn del paso. El bit LS se activa durante el ltimo escn del paso. Use este bit slo en caso de hacer lo siguiente: en el cuadro de dilogo Controller Properties, ficha SFC Execution, establezca Last Scan of Active Step en Dont Scan o Programmatic reset. Normalmente, recomendamos usar una accin con un calificador P0 Pulse (Falling Edge) para lograr esto.
LS
BOOL
Reset
BOOL
Una instruccin SFC Reset (SFR) restablece el SFC en un paso o paro que la instruccin especifica. El bit de restablecimiento indica a cul paso o paro ir el SFC para comenzar la ejecucin nuevamente. Una vez que el SFC se ejecuta, el bit de restablecimiento se restablece. selo para fines de diagnstico. El controlador restablece este valor slo cuando usted selecciona Restart Position de Restart at initial step y el controlador cambia de modo o se desconecta y se vuelve a conectar la alimentacin elctrica. selo para fines de diagnstico.
determinar el tiempo mximo que un paso estuvo activo durante cualquiera de sus ejecuciones determinar si el valor del temporizador (T) se reinicia a un valor negativo determinar cuntas veces se activ un paso
TMax
DINT
OV
BOOL
Count
DINT
Esto no es un conteo de escanes del paso. El conteo incrementa cada vez que se activa el paso. Se incrementa nuevamente slo despus que el paso se desactiva y se vuelve a activar. El conteo se restablece slo si usted configura el SFC para que se reinicie en el paso inicial. Con esa configuracin, se restablece cuando el controlador cambia del modo Programa al modo Marcha.
4-10
Si desea:
Tipo de datos:
Detalles:
DINT
Para este miembro: Use este bit: Reset AlarmHigh AlarmLow AlarmEn OV DN LS SA FS X 22 23 24 25 26 27 28 29 30 31
step_name.X
step_name.FS
step_name.SA
4-11
Una vez que haya definido los pasos del proceso, organcelos en secuencias, bifurcaciones simultneas, bifurcaciones de seleccin o lazos.
Descripcin general
Para: Ejecutar 1 o ms pasos en secuencia: Uno se ejecuta repetidamente. Luego el siguiente se ejecuta repetidamente. Use esta estructura: Secuencia Con estas consideraciones: El SFC verifica la transicin al final del paso: Si es verdadera, el SFC va al paso siguiente. Si es falsa, el SFC repite el paso.
Seleccionar entre pasos alternativos Bifurcacin de seleccin o grupos de pasos dependiendo de las condiciones de la lgica Ejecutar un paso o pasos, o saltar el paso o pasos, dependiendo de las condiciones de la lgica
Es correcto que una ruta no tenga pasos y tenga slo una transicin. Esto le permite al SFC saltar la bifurcacin de seleccin. Como opcin predeterminada, el SFC verifica de izquierda a derecha las transiciones que inician cada ruta. ste toma la primera ruta verdadera. Si no hay transiciones verdaderas, el SFC repite el paso previo. El software RSLogix 5000 le permite cambiar el orden en el cual el SFC verifica las transiciones.
Ejecutar 2 o ms pasos simultneamente. Todas las rutas deben terminar antes de que contine el SFC
Bifurcacin simultnea
Una transicin nica termina la bifurcacin. El SFC verifica la transicin final despus de que el ltimo paso en cada ruta se haya ejecutado por lo menos una vez. Si la transicin es falsa, el SFC repite el paso previo. Conecte el cable al paso o bifurcacin simultnea donde desea ir. No conectar en, fuera de, ni entre una bifurcacin simultnea.
4-12
45
46
Bifurcacin de seleccin
Perforar
Pulir
Para simplificar mi programacin, deseo separar las transferencias de bloques y comunicaciones de otra lgica de control Todas ocurren al mismo tiempo.
Bifurcacin simultnea
CONTROL
Comunicacion
BTs
En un rea de tratamiento trmico, la temperatura sube a un rgimen especfico, se mantiene durante un tiempo especfico y luego se enfra a un rgimen especfico.
Secuencia
Rampa Mantener Enfriar
En la estacin 12, la mquina perfora, hace la rosca y fija con perno una pieza. Los pasos ocurren uno despus del otro.
Secuencia
Perforar Hacer Fijar con
El paso 12 inspecciona un proceso para determinar si la mezcla de Cable productos qumicos es correcta. Si es correcta, continuar con los pasos restantes. Si no es correcta, ir al comienzo del SFC y purgar el sistema.
Paso 12
No es correcto
Correcto
4-13
Secuencia
Una secuencia es un grupo de pasos que se ejecutan uno despus del otro.
Hacer esto
LUEGO esto
LUEGO esto
Para obtener un diagrama detallado de la ejecucin de una secuencia de pasos, vea la Figura 4.5 en la pgina 4-46. Para anular el estado de una transicin, vea Forzado de elementos lgicos en la pgina 18-1.
4-14
Bifurcacin de seleccin
Una bifurcacin de seleccin representa una opcin entre una ruta (paso o grupo de pasos) y otra ruta (por ej., una estructura OR). Solamente una ruta se ejecuta. De manera predeterminada, el SFC verifica las transiciones de izquierda a derecha. El SFC toma la primera ruta verdadera. El software RSLogix 5000 le permite cambiar el orden en el cual el SFC verifica las transiciones. Vea Programacin de un diagrama de funciones secuenciales en la pgina 5-1.
lnea horizontal simple cada ruta tiene su propia transicin Hacer esto O esto O esto
Para obtener un diagrama detallado de la ejecucin de una bifurcacin de seleccin, vea la Figura 4.7 en la pgina 4-48. Para anular el estado de una transicin, vea Forzado de elementos lgicos en la pgina 18-1.
4-15
Bifurcacin simultnea
Una bifurcacin simultnea representa las rutas (pasos o grupos de pasos) que ocurren simultneamente (por ej., una estructura AND). Todas las rutas se ejecutan. Todas las rutas deben terminar antes de continuar con el SFC El SFC verifica la transicin despus de que el ltimo paso de cada ruta se haya ejecutado por lo menos una vez.
Para obtener un diagrama detallado de la ejecucin de una bifurcacin simultnea, vea la Figura 4.6 en la pgina 4-47. Para anular la bifurcacin y evitar la ejecucin de una ruta, vea Forzado de elementos lgicos en la pgina 18-1.
4-16
ir a este paso
4-17
Use accins para dividir un paso en las funciones diferentes que realiza el paso, tales como emitir un comando para el motor, establecer el estado de una vlvula o colocar un grupo de dispositivos en un modo especfico.
Paso
Acciones
Hacer esto
MEZCLAR
y hacer esto
4-18
Cuando el paso S_Complete_the_Batch est activo, la accin S_Open_Outlet se ejecuta. La accin establece el tag Outlet.ProgCommand igual a 1, lo cual abre la vlvula de salida. reutilizar lgica en mltiples pasos usar otro lenguaje para programar la accin, tal como lgica de escalera anidar un SFC Llame a una subrutina. Por ejemplo:
Cuando el paso S_Complete_the_Batch est activo, la accin S_Open_Outlet se ejecuta. La accin llama a la rutina Open_Outlet. Rutina Open_Outlet
Cuando la rutina Open_Outlet se ejecuta, la instruccin OTE establece el tag Outlet.ProgCommand igual a 1, lo cual abre la vlvula de salida.
No se puede reutilizar una accin no booleana dentro del mismo SFC excepto para restablecer una accin almacenada. Slo se permite una instancia de una accin no booleana especfica por SFC.
4-19
ste es un ejemplo:
Cuando el paso S_Complete_the_Batch est activo, la accin S_Open_Outlet se ejecuta. Cuando la accin est activa, su bit Q se activa.
Una rutina de lgica de escalera monitorea el bit Q (S_Open_Outlet.Q). Cuando el bit Q se activa, la instruccin JSR se ejecuta y abre la vlvula de salida.
Se puede reutilizar una accin booleana mltiples veces dentro del mismo SFC.
Estructura SFC_ACTION
Cada accin (no booleana y booleana) utiliza un tag para proporcionar informacin acerca de la accin. Acceda a esta informacin ya sea mediante el cuadro de dilogo Action Properties o la ficha Monitor Tags de la ventana Tags:
Si desea: Entonces verifique o establezca este miembro: Q Tipo de datos: Detalles:
BOOL
El estado del bit Q depende de si la accin es una accin booleana o una accin no booleana: Si la accin es: booleana Entonces el bit Q est: activado (1) durante todo el tiempo que la accin est activa, incluyendo el ltimo escn de la accin activado (1) mientras la accin est activa, pero desactivado (0) en el ltimo escn de la accin
no booleana
Si va a usar un bit para determinar cundo est activa una accin, use el bit Q. A determinar cunto tiempo estuvo activo una accin (milisegundos) T BOOL DINT El bit A est activado todo el tiempo que la accin est activa Cuando una accin activa, el valor del temporizador (T) se restablece y luego comienza a contar progresivamente en milisegundos. El temporizador contina contando progresivamente hasta que la accin se desactiva, independientemente del valor preseleccionado (PRE). Introduzca el tiempo lmite o el retardo en el miembro preseleccionado (PRE). La accin comienza o se detiene cuando el temporizador (T) llega al valor preseleccionado. Como opcin, introduzca una expresin numrica que calcule el tiempo durante la ejecucin.
PRE
DINT
4-20
Si desea:
Tipo de datos:
Detalles:
DINT
Esto no es un conteo de escanes de la accin. El conteo incrementa cada vez que se activa la accin. Se incrementa nuevamente slo despus que la accin se desactiva y se vuelve a activar. El conteo se restablece slo si usted configura el SFC para que se reinicie en el paso inicial. Con esa configuracin, se restablece cuando el controlador cambia del modo Programa al modo Marcha. Para este miembro: Use este bit: Q A 30 31
Estado
DINT
Para organizar la lgica para una accin, primero describa la accin en pseudocdigo. Si no est familiarizado con el pseudocdigo, siga estas pautas: Use una serie de instrucciones cortas que describan exactamente lo que debe suceder. Use trminos o smbolos tales como: if, then, otherwise, until, and, or, =, >, <. Coloque en secuencia las instrucciones en el orden en que se deben ejecutar. Si fuera necesario, asigne nombre a las condiciones para verificar la primera (when 1st/cundo primero) y luego la accin que se realizar en segundo lugar (what 2nd/qu segundo). Introduzca el pseudocdigo en el cuerpo de la accin. Despus de introducir el pseudocdigo, puede: Refinar el pseudocdigo para que se ejecute como texto estructurado. Usar el pseudocdigo para disear la lgica y dejar el pseudocdigo como comentarios. Puesto que todos los comentarios de texto estructurado se descargan al controlador, el pseudocdigo siempre est disponible como documentacin para la accin. Para convertir el pseudocdigo a comentarios de texto estructurado, aada los siguientes smbolos de comentarios:
Para un comentario: en una sola lnea que abarque ms de una lnea Use uno de estos formatos: //comment (*start of comment . . . end of comment*) /*start of comment . . . end of comment*/
4-21
Cada accin (no booleana y booleana) utiliza un calificador para determinar cundo comienza y se detiene. El calificador predeterminado es Non-Stored. La accin comienza cuando se activa el paso y se detiene cuando se desactiva el paso. Para cambiar cundo comienza o se detiene una accin, asigne un calificador diferente:
Tabla 4.1 Seleccionar un calificador para una accin Si desea que la accin: Y: Entonces asigne este calificador: N P1 l S SL Lo cual significa: No almacenado Pulso (flanco ascendente) Tiempo limitado Almacenado Almacenado y tiempo limitado Retardo de tiempo Retardado y almacenado Almacenado y retardo de tiempo Pulso Pulso (flanco descendente) Restablecer
se detenga cuando el paso se desactive se ejecute slo una vez se detenga antes de que se desactive el paso o cuando se desactive el paso permanezca activa hasta que una accin Reset desactive esta accin permanezca activa hasta que una accin Reset desactive esta accin o caduque un tiempo especfico, aunque el paso se desactive
comience un tiempo especfico despus que el paso se active y el paso contine activo
se detenga cuando el paso se desactive permanezca activa hasta que una accin Reset desactive esta accin
D DS SD
comience un tiempo especfico despus que el paso se active, aunque el paso se desactive antes de este tiempo se ejecute una vez cuando el paso se active comience cuando el paso se desactive desactive (restablezca) una accin almacenada: S Almacenado SL Almacenado y tiempo limitado DS Retardado y almacenado SD Almacenado y retardo de tiempo
permanezca activa hasta que una accin Reset desactive esta accin se ejecute una vez cuando el paso se desactive se ejecute slo una vez
P P0 R
4-22
La transicin representa las condiciones fsicas que deben ocurrir o cambiar para ir al siguiente paso.
transicin
pasos transiciones
bifurcacin de seleccin
transiciones
bifurcacin simultnea
transiciones
4-23
Los siguientes son dos ejemplos de transiciones: EJEMPLO Usted desea: a. Activar 2 compresores. Cuando un compresor se activa, el bit Device1State se activa (init). b. Cuando ambos compresores estn activados, ir al siguiente paso. Solucin:
Init Init_Done compressor_1.Device1State = on (1) y compressor_2.Device1State = on (1)
EJEMPLO
Usted desea: a. Empacar (package) el producto. Cuando el producto est en el paquete, el bit package_done se activa. b. Empacar el producto a razn de 8 por caja o 16 por caja. Solucin:
Package
carton_16
Para anular el estado de una transicin, vea Forzado de elementos lgicos en la pgina 18-1.
4-24
Tag de transicin
Cada transicin usa un tag BOOL para representar el estado verdadero o falso de la transicin.
Si la transicin es: verdadera falsa El valor es: 1 0 Y: El SFC avanza al paso siguiente. El SFC contina ejecutando el paso actual.
bool_tag_a
dint_tag_a > 8
4-25
3 1
JSR - o bien -
If condition_1 & condition_2 & condition_3 then BOOL_tag := 1; Else BOOL_tag := 0; End_if;
EOT(BOOL_tag);
1. Llame a una subrutina. 2. Verifique las condiciones requeridas. Cuando dichas condiciones son verdaderas, active un tag BOOL. 3. Use una instruccin EOT para establecer el estado de la transicin igual al valor del tag BOOL. Cuando el tag BOOL se activa (verdadero), la transicin es verdadera.
4-26
Cada paso del SFC incluye un temporizador de milisegundos que funciona cuando el paso se activa. Use el temporizador para: sealar cuando el paso se ha ejecutado por el tiempo requerido y el SFC debe avanzar al siguiente paso. sealar cuando el paso se ha ejecutado demasiado tiempo y el SFC debe ir a un paso de error.
Figura 4.3 El siguiente diagrama muestra la accin del temporizador y los bits asociados de un paso:
step_name.X
step_name.PRE
step_name.T
step_name.DN
1 Descripcin:
1. El paso se activa. El bit X se activa. El temporizador (T) comienza a incrementar. 2. El temporizador llega al valor preseleccionado (PRE) del paso. El bit DN se activa. El temporizador contina incrementando. 3. El paso se desactiva. El bit X se desactiva. El temporizador retiene su valor. DN permanece activado. 4. El paso se activa. El bit X se activa. El temporizador se restablece y comienza a incrementar. El bit DN se desactiva.
4-27
Figura 4.4 El siguiente diagrama muestra la accin de las alarmas baja y alta de un paso:
step_name.AlarmHigh
step_name.AlarmLow
Descripcin: 1. AlarmEn est activado. Para usar las alarmas baja y alta, active este bit. Active este bit mediante el cuadro de dilogo Properties o el tag para dicho paso. 2. El paso se activa. El bit X se activa. El temporizador (T) comienza a incrementar. 3. El paso se desactiva. El bit X se desactiva. El temporizador retiene su valor. Puesto que el temporizador es menor que LimitLow, el bit AlarmLow se activa. 4. El paso se activa. El bit X se activa. El temporizador se restablece y comienza a incrementar. AlarmLow permanece activado. (Usted tiene que desactivarlo manualmente). 5. El temporizador llega al valor LimitHigh del paso. El bit AlarmHigh se activa. El temporizador contina incrementando. 6. El paso se desactiva. El bit X se desactiva. El temporizador retiene su valor. AlarmHigh permanece activado. (Usted tiene que desactivarlo manualmente).
4-28
El siguiente es un ejemplo de uso del tiempo preseleccionado de un paso. EJEMPLO La especificacin funcional dice: a. Cocinar (cook) los ingredientes en el tanque durante 20 segundos. b. Vaciar el tanque. Solucin:
Cook Cook_Done Empty_Tank Cook.PRE = 20000 ms Cook.DN = on (1)
El siguiente es un ejemplo de uso de la alarma alta de un paso. EJEMPLO La especificacin funcional dice: a. Poner en posicin inicial (init) a 8 dispositivos. b. Si los 8 dispositivos no estn en la posicin inicial en 20 segundos, entonces desactivar (shutdown) el sistema. Solucin:
Init Init.LimitHigh = 20000 ms
Init_OK Step_1
Init_Not_OK Shutdown
Init.AlarmHigh
4-29
Cuando el SFC sale de un paso, usted tiene varias opciones respecto a cmo desactivar los dispositivos que el paso activ.
Programmatic Reset
Automatic Reset
Cada opcin requiere que usted haga las siguientes selecciones: 1. Seleccionar la opcin de un ltimo escn. 2. Basado en la opcin de ltimo escn, desarrollar la lgica de manera que el ltimo escn retorne los datos a los valores deseados.
Ejecutar slo las acciones P y P0 y usarlas para Usar la opcin Dont Scan restablecer los datos requeridos. Ejecutar todas las acciones y usar cualquiera de estas opciones para restablecer los datos requeridos: bits de estado del paso o accin para condicionar la lgica Acciones P y P0 Usar la opcin Programmatic Reset
pgina 4-34
4-30
La siguiente tabla compara las diferentes opciones para manejar el ltimo escn de un paso:
Caracterstica: acciones de ejecucin Durante el ltimo escn de un paso, esta opcin hace lo siguiente: Dont scan Slo las acciones P y P0 se ejecutan. Se ejecutan segn su lgica. Programmatic reset Todas las acciones se ejecutan segn su lgica Automatic reset Las acciones P y P0 se ejecutan segn su lgica. Todas las otras acciones se ejecutan en el modo post-escn. En el siguiente escn de la rutina, las acciones P y P0 se ejecutan en el modo post-escn. Los datos regresan a sus valores para post-escn. Los tags a la izquierda de las asignaciones [:=] se restablecen a cero. Use uno de los siguientes: Asignacin [:=] (asignacin o retentiva) instrucciones que restablecen sus datos durante el post-escn Para la propiedad Restart Position, si usted selecciona la opcin Restart at initial step, entonces: Un SFC anidado se restablece a su paso inicial. El bit X de un elemento de paro en un SFC anidado se restablece a cero.
Use uno de los siguientes: bits de estado del paso o accin para condicionar la lgica Acciones P y P0 Un SFC anidado permanece en su paso actual.
4-31
EJEMPLO
Esta accin activa el transportador. Cuando conveyor_state se activa, el transportador se activa. Antes de que el SFC salga del paso, la accin P0 desactiva el transportador. En el ltimo escn del paso, conveyor_state se desactiva. Esto desactiva el transportador.
4-32
EJEMPLO
Cuando el paso no est en su ltimo escn (conveyor_fwd.LS = 0), esta instruccin activa conveyor_state. Cuando conveyor_state se activa, el transportador se activa. En el ltimo escn del paso (conveyor_fwd.LS =1), esta instruccin desactiva conveyor_state. Cuando conveyor_state se desactiva, el transportador se desactiva.
4-33
Para una accin que usa uno de los calificadores almacenados, use el bit Q de la accin para condicionar la lgica. Vea Estructura SFC_ACTION en la pgina 4-19. Usar la opcin Programmatic Reset y el bit Q
EJEMPLO
Cuando la accin no est en su ltimo escn (conveyor_start.Q =1), esta instruccin activa conveyor_state. Cuando conveyor_state se activa, el transportador se activa. En el ltimo escn de la accin (conveyor_start.Q =0), esta instruccin desactiva conveyor_state. Cuando conveyor_state se desactiva, el transportador se desactiva.
Tambin puede usar una accin P0 Pulse (Falling Edge) para restablecer los datos. El siguiente ejemplo usa una accin para activar un transportador al comienzo de un paso.Una accin diferente desactiva el transportador al final del paso. Usar la opcin Programmatic Reset y una accin P0
EJEMPLO
Esta accin activa el transportador. Cuando conveyor_state se activa, el transportador se activa. Antes de que el SFC salga del paso, la accin P0 desactiva el transportador. En el ltimo escn del paso, conveyor_state se desactiva. Esto desactiva el transportador.
4-34
IMPORTANTE
Como regla general, el post-escn ejecuta las instrucciones como si todas las condiciones fueran falsas. Por ejemplo, la instruccin Output Energize (OTE) restablece sus datos durante el post-escn. Algunas instrucciones no siguen la regla general durante el post-escn. Para obtener una descripcin de cmo una instruccin especfica se ejecuta durante el post-escn, consulte los siguientes manuales. Logix5000 Controllers General Instructions Reference Manual, publicacin 1756-RM003 Logix5000 Controllers Process and Drives Instructions Reference Manual, publicacin 1756-RM006 Logix5000 Controllers Motion Instruction Set Reference Manual, publicacin 1756-RM007
4-35
El siguiente es un ejemplo que usa una asignacin no retentiva para controlar un transportador. Activa un transportador al comienzo de un paso y desactiva automticamente el transportador cuando el paso se ha efectuado. Restablece los datos automticamente
EJEMPLO
Esta accin activa el transportador. Cuando conveyor_state se activa, el transportador se activa. Cuando el SFC sale del paso, conveyor_state se desactiva. Esto desactiva el transportador.
Paint
Fan CONTROL
Clean Transfr_Out
Almacenar y restablecer una accin Observe el paso que activa el dispositivo y el paso que desactiva el dispositivo.
Transfer_In
activar el ventilador
Paint Posteriormente, defina una accin Almacenado y Restablecido para controlar el dispositivo. Clean Transfr_Out desactivar el ventilador Usar un paso grande Paint Use un paso grande que contenga todas las acciones que ocurren mientras el dispositivo est activado.
transferir, pintar, limpiar, transferir controlar el ventilador
4-36
EJEMPLO
Transfer_In
Paint_Flow
Air_Flow
Elec_Charg
Fan CONTROL
Clean Transfr_Out
4-37
ms pasos
Action_Name
el mismo nombre que la accin almacenada
Cuando el SFC sale del paso que almacena la accin, el software RSLogix 5000 contina mostrando la accin almacenada como activa. (De manera predeterminada, un borde verde se muestra alrededor de la accin). Esto le indica que el SFC est ejecutando la lgica de esa accin.
4-38
Para usar una accin almacenada, siga estas pautas: La accin Reset slo desactiva la accin almacenada. No desactiva automticamente los dispositivos de la accin. Para desactivar el dispositivo, contine la accin Reset con otra accin que desactive el dispositivo. O use la opcin Automatic reset descrita en la pgina 4-34. Tenga cuidado cuando salte entre un paso que almacena una accin y un paso que restablece la accin. Una vez que usted restablece una accin, sta slo se inicia cuando usted ejecuta el paso que almacena la accin. En el siguiente ejemplo, los pasos 1 4 requieren que un ventilador est activo. Al final del step_4, el ventilador se restablece (se desactiva). Cuando el SFC salta nuevamente al step_3, el ventilador permanece desactivado.
step_1
step_2
step_4
Para volver a activar el ventilador, el SFC tiene que saltar nuevamente al step_1.
4-39
EJEMPLO
Para obtener informacin adicional sobre cmo anidar un SFC, vea Anidar un SFC en la pgina 4-43.
4-40
Terminar el SFC
Una vez que el SFC concluye su ltimo paso, no se reinicia automticamente en el primer paso. Usted debe indicar al SFC qu hacer cuando concluya el ltimo paso.
hacer un lazo a un paso anterior Conecte la ltima transicin a la parte superior del paso automticamente al cual desea ir. Vea Conectar a un paso previo en la pgina 4-16. parar y esperar un comando para reiniciar Usar un elemento de paro. Vea Usar un elemento de paro en la pgina 4-40.
4-41
EJEMPLO
Cuando el SFC llega a last_step yprocess_done es verdadero, la ejecucin del SFC se detiene.
Programmatic reset Dont scan NO anidado (por ej., ningn SFC llama a este SFC como subrutina)
4-42
El siguiente ejemplo muestra el uso de la instruccin SFC Reset (SFR) para reiniciar el SFC y restablecer el bit X del elemento de paro. Reiniciar (restablecer) el SFC Si SFC_a_stop.X = on (SFC_a est en la parte superior) y SFC_a_reset = on (tiempo para restablecer el SFC) entonces por un escn (ons[0] = on): Restablecer SFC_a a SFC_a_Step_1 SFC_a_stop.X = 0
EJEMPLO
Estructura SFC_STOP
Cada paro usa un tag para proporcionar la siguiente informacin acerca del elemento de paro:
Si desea: Entonces verifique o establezca este miembro: X Tipo de datos: Detalles:
BOOL
Cuando el SFC llega al paro, el bit X se activa. El bit X se restablece si usted configura los SFC para que se reinicien en el paso inicial y el controlador cambia del modo Programa al modo Marcha. En un SFC anidado, el bit X tambin se restablece si usted configura los SFC para restablecimiento automtico, y el SFC sale del paso que llama al SFC anidado.
Reset
BOOL
Una instruccin SFC Reset (SFR) restablece el SFC en un paso o paro que la instruccin especifica. El bit de restablecimiento indica a cul paso o paro ir el SFC para comenzar la ejecucin nuevamente. Una vez que el SFC se ejecuta, el bit de restablecimiento se restablece. Esto no es un conteo de escanes del paro. El conteo incrementa cada vez que se activa el paro. Se incrementa nuevamente slo despus que el paro se desactiva y se vuelve a activar. El conteo se restablece slo si usted configura el SFC para que se reinicie en el paso inicial. Con esa configuracin, se restablece cuando el controlador cambia del modo Programa al modo Marcha. Para este miembro: Use este bit: Reset X 22 31
Count
DINT
Status
DINT
4-43
Anidar un SFC
Un mtodo para organizar el proyecto es crear un SFC que proporcione una visualizacin de alto nivel del proceso. Cada paso de dicho SFC llama a otro SFC que realiza los procedimientos detallados del paso (SFC anidado). La siguiente figura muestra una manera de anidar un SFC. En este mtodo, la opcin de ltimo escn del SFC se configura ya sea para Programmatic reset o Dont scan. Si usted configura el SFC para Automatic reset, entonces el paso 1 no es necesario.
SFC_a
SFC_b
3 1. Restablezca el SFC anidado. La instruccin SFR reinicia el SFC_b en SFC_b_Step_1. Cada vez que el SFC_a sale de este paso y luego regresa, usted tiene que restablecer el SFC_b. La accin tambin restablece el bit X del elemento de paro. 2. Llame al SFC_b. 3. Pare el SFC_b. Esto establece el bit X del elemento de paro. 4. Use el bit X del elemento de paro para indicar que el SFC_b est efectuado y es tiempo de ir al siguiente paso.
4-44
Pasar parmetros
Para pasar parmetros hacia o desde un SFC, coloque un elemento de subrutina/retorno en el SFC.
Parmetros de entrada Parmetros de retorno
SFC_b
De manera predeterminada, un SFC ejecuta un paso o grupo de pasos simultneos y luego retorna al sistema operativo (OS) o a la rutina que efectu la llamada (JSR).
predeterminado
Usted tiene la opcin de dejar que el SFC se ejecute hasta que llegue a una transicin falsa. Si varias transiciones son verdaderas al mismo tiempo, esta opcin reduce el tiempo para llegar al paso deseado. Use la opcin Execute until FALSE transition slo cuando: 1. No necesite actualizar los parmetros de JSR antes de cada paso. Los parmetros se actualizan slo cuando el SFC retorna a la JSR. Vea Pasar parmetros en la pgina 4-44. 2. Una transicin falsa ocurre dentro del temporizador de control (watchdog) para la tarea. Si el tiempo requerido para regresar a la JSR y completar e resto de la tarea es mayor que el temporizador de control (watchdog), ocurrir un fallo mayor. Para obtener un diagrama detallado de la ejecucin de cada opcin, vea la Figura 4.9 en la pgina 4-49.
4-45
Hay dos instrucciones opcionales disponibles para darle mayor control sobre la ejecucin del SFC:
Si desea: poner en pausa un SFC restablecer un SFC a un paso o paro especfico Entonces use esta instruccin: Pause SFC (SFP) Reset SFC (SFR)
Ambas instrucciones estn disponibles en los lenguajes de lgica de escalera y programacin de texto estructurado. Para obtener ms informacin, use cualquiera de los siguientes recursos: En el software RSLogix 5000, en el men Help, seleccione Instruction Help. Vea la categora Program Control Instructions. Vea Logix5000 Controllers General Instructions Reference Manual, publicacin 1756-RM003.
Diagramas de ejecucin
Los siguientes diagramas muestran la ejecucin de un SFC con diferentes organizaciones de pasos o diferentes selecciones de opciones de ejecucin. Use los diagramas si necesita un entendimiento ms detallado de cmo se ejecuta el SFC.
Vea la pgina: 4-46 4-47 4-48 4-48 4-49
Para el diagrama de: Ejecucin de una secuencia Ejecucin de una bifurcacin simultnea Ejecucin de una bifurcacin de seleccin Cuando los parmetros entran y salen de un SFC Opciones para el control de ejecucin
4-46
step_1
falso
regresar a OS/JSR
ltimo escn
step_2
falso
regresar a OS/JSR
ltimo escn
4-47
ltimo escn
step_2
step_3
tran_2 verdadero
falso
step_3
falso
regresar a OS/JSR
ltimo escn
step_3
4-48
regresar a OS/JSR
ltimo escn
falso
falso
ltimo escn
falso
tran_1 verdadero
parmetros de retorno
parmetros de entrada
ltimo escn
4-49
Lo siguiente
step_1 tran_1 step_2 tran_2
falso
regresar a OS/JSR
tran_1 verdadero
falso
regresar a OS/JSR
step_1
ltimo escn
step_2
falso
tran_2 verdadero
falso
regresar a OS/JSR
step_2
ltimo escn
4-50
Notas:
Captulo
Use este procedimiento para introducir un diagrama de funciones secuenciales (SFC) en el software RSLogix 5000. Introduzca el SFC a medida que lo disea. O primero disee el SFC y luego introdzcalo. Para disear el SFC, vea Diseo de un diagrama de funciones secuenciales en la pgina pgina 4-1.
Antes de usar este procedimiento, asegrese de que puede realizar las siguientes tareas:
Para obtener ms informacin sobre cualquiera de esas tareas, vea Organizacin de tareas, programas y rutinas en la pgina 2-1.
5-2
Para programar un SFC: Aadir un elemento de SFC Crear una bifurcacin simultnea Crear una bifurcacin de seleccin Establecer las prioridades de una bifurcacin de seleccin Regresar a un paso previo Cambiar el nombre de un paso Configurar un paso Cambiar el nombre de una transicin Programar una transicin Aadir una accin Cambiar el nombre de una accin Configurar una accin Programar una accin Asignar el orden de ejecucin de las acciones Documentar el SFC Mostrar u ocultar cuadros de texto o descripciones de tag Configurar la ejecucin del SFC Verificar la rutina
5-3
paso y transicin
Para aadir un elemento al SFC, tiene estas opciones: Aadir y conectar manualmente los elementos Aadir y conectar automticamente los elementos Arrastrar y colocar elementos
punto verde
3. Para cablear (conectar) dos elementos juntos, haga clic en un pin en uno de los elementos A y luego haga clic en el pin en el otro elemento B . Un punto verde muestra un punto de conexin vlido.
5-4
punto verde
5-5
A B
punto verde
3. Para cablear la bifurcacin simultnea a la transicin precedente, haga clic en el pin inferior de la transicin A y luego haga clic en la lnea horizontal de la bifurcacin. B . Un punto verde muestra un punto de conexin vlido.
5-6
B A
punto verde
4. Para cablear la bifurcacin simultnea a la transicin, haga clic en el pin superior de la transicin A y luego haga clic en la lnea horizontal de la bifurcacin B . Un punto verde muestra un punto de conexin vlido.
A B
punto verde
3. Para cablear la bifurcacin de seleccin al paso precedente, haga clic en el pin inferior del paso A y luego haga clic en la lnea horizontal de la bifurcacin B . Un punto verde muestra un punto de conexin vlido.
5-7
2. En la barra de herramientas SFC, haga clic en el botn 3. Aada el paso que sigue a la bifurcacin de seleccin.
B A
punto verde
4. Para cablear la bifurcacin de seleccin al paso, haga clic en el pin superior del paso A y luego haga clic en la lnea horizontal de la bifurcacin B . Un punto verde muestra un punto de conexin vlido.
5-8
De manera predeterminada, el SFC verifica las transiciones que inician una bifurcacin de seleccin de izquierda a derecha. Si desea verificar una transicin diferente primero, asigne una prioridad a cada ruta de la bifurcacin de seleccin. Por ejemplo, es una buena prctica verificar primero si hay condiciones de error. Luego verificar las condiciones normales. Para asignar prioridades a una bifurcacin de seleccin: 1. Haga clic con el botn derecho del mouse en la lnea horizontal que inicia la bifurcacin y seleccione Set Sequence Priorities.
2.
3. 4.
2. Borre la marca de verificacin del cuadro de dilogo Use default priorities. 3. Seleccione una transicin. 4. Use los botones Move para aumentar o bajar la prioridad de la transicin. 5. Cuando todas las transiciones tengan la prioridad deseada, seleccione Cuando usted borra la marca de verificacin del cuadro de dilogo Use default priorities, los nmeros muestran la prioridad de cada transicin.
5-9
Para saltar a un paso diferente en el SFC: Conectar un cable al paso Ocultar un cable Mostrar un cable oculto
1.
Luego haga clic aqu.
2.
Arrastre la barra horizontal aqu.
punto verde
5-10
Ocultar un cable
Si un cable se interpone o estorba a otras piezas del SFC, oculte el cable para facilitar la lectura del SFC. Para ocultar un cable haga clic con el botn derecho del mouse en el cable y seleccione Hide Wire.
Para ver el elemento SFC adonde va el cable, haga clic en la ubicacin de la cuadrcula en el cable.
cable oculto
5-11
Cada paso usa un tag para almacenar la informacin de configuracin y estado acerca del paso. Para cambiar el nombre del tag del paso: 1. Haga clic en el botn 2. Haga clic en la ficha Tag. del paso.
3.
Configurar un paso
Para configurar un paso, tiene estas opciones: Asignar el tiempo preseleccionado para un paso Configurar alarmas para un paso Usar una expresin para calcular un tiempo
2. Escriba el tiempo para el paso, en milisegundos. 3. Seleccione Cuando el paso est activo por el tiempo preseleccionado (Timer = Preset), el bit DN del paso se activa. Para calcular el tiempo preseleccionado de un paso durante el tiempo de ejecucin, vea Usar una expresin para calcular un tiempo en la pgina 5-12.
5-12
3. 4.
3. Escriba el tiempo para la alarma alta, en milisegundos. 4. Escriba el tiempo para la alarma baja, en milisegundos. 5. Seleccione Para calcular el tiempo de una alarma durante el tiempo de ejecucin, vea Usar una expresin para calcular un tiempo en la pgina 5-12.
5-13
2.
3.
5.
4. Escriba una expresin numrica que defina el tiempo. Use los botones a lo largo del cuadro de dilogo como ayuda para completar la expresin. Para obtener informacin sobre expresiones numricas, vea Expresiones en la pgina 6-4. 5. Seleccione 6. Para cerrar el cuadro de dilogo Step Properties, seleccione
5-14
Cada transicin usa un tag para almacenar el estado de la transicin. Para cambiar el nombre del tag de la transicin: 1. Haga clic en el botn 2. Haga clic en la ficha Tag. de la transicin.
3.
Para programar una transicin, tiene estas opciones: Introducir una expresin BOOL Llamar a una subrutina
BOOL_expression
5-15
Los siguientes ejemplos muestran tres transiciones que usan una expresin BOOL. EJEMPLO Introducir una expresin BOOL
2.
JSR(routine_name)
5-16
Haga clic con el botn derecho del mouse en el paso en el cual se ejecuta la accin y seleccione Add Action.
Para cambiar el nombre de una accin a algo que sea especfico para su aplicacin: 1. Haga clic en el botn 2. Haga clic en la ficha Tag. de la accin.
3.
5-17
Para configurar una accin, tiene estas opciones: Cambiar el calificador de una accin Calcular un tiempo preseleccionado en tiempo de ejecucin Marcar una accin como accin booleana
2. 3.
2. Asigne un calificador para la accin. 3. Si selecciona un calificador temporizado, escriba el lmite de tiempo o el retardo para la accin, en milisegundos. Los calificadores temporizados incluyen: L Tiempo limitado SL Almacenado y tiempo limitado D Retardo de tiempo DS Retardado y almacenado SD Almacenado y retardo de tiempo 4. Seleccione
5-18
2.
3.
5.
4. Escriba una expresin numrica que defina el tiempo preseleccionado. Use los botones a lo largo del cuadro de dilogo como ayuda para completar la expresin. Para obtener informacin sobre expresiones numricas, vea Expresiones en la pgina 6-4. 5. Seleccione 6. Para cerrar el cuadro de dilogo Action Properties, seleccione
5-19
2.
Para programar una accin, tiene estas opciones: Introducir texto estructurado Llamar a una subrutina
1. Haga doble clic en el rea de texto de la accin. 2. Escriba el texto estructurado requerido. 3. Para cerrar la ventana de entrada, presione [Ctrl] + [Enter].
5-20
5-21
2.
3.
4.
2. Seleccione la rutina que desea llamar. 3. Para pasar un parmetro a la rutina, haga clic en el cuadro de texto vaco Input Parameters. Luego use la flecha hacia abajo para seleccionar el tag que contiene el parmetro. 4. Para recibir a un parmetro proveniente de la rutina, haga clic en el cuadro de texto vaco Return Parameters. Luego use la flecha hacia abajo para seleccionar el tag en el cual desea almacenar el parmetro proveniente de la rutina. 5. Seleccione
5-22
Para cambiar el orden en el cual se ejecuta una accin, arrastre la accin al lugar deseado en la secuencia. Una barra verde muestra un lugar de ubicacin vlido. Por ejemplo:
5-23
Documentar el SFC
Para documentar lo siguiente: informacin general acerca del SFC paso
transicin
Para obtener ms informacin, vea Comentarios en la pgina 6-26. Para introducir los comentarios:
5-24
1. Haga doble clic en el rea de texto de la accin. 2. Escriba los comentarios. 3. Para cerrar la ventana de entrada, presione [Ctrl] + [Enter].
3.
3. Escriba la descripcin del elemento (tag). 4. Seleccione 5. Arrastre el cuadro de descripcin al lugar deseado en el SFC.
5-25
2. Arrastre el cuadro de texto a un lugar cerca del elemento al cual se aplica. 3. Haga doble clic en el cuadro de texto y escriba la nota. Luego presione [Ctrl] + [Enter]. 4. A medida que mueve el elemento en el SFC, qu desea que haga el cuadro de texto?
Si usted desea que el cuadro de texto: permanezca en el mismo lugar se mueva con el elemento a donde se aplica Entonces: Detngase. Ya termin. Vaya al paso paso 5
B A punto verde
5. Haga clic en el smbolo del pin en el cuadro de texto y luego haga clic en el elemento SFC al cual desea conectar el cuadro de texto. Un punto verde muestra un punto de conexin vlido.
5-26
Tiene la opcin de mostrar u ocultar los cuadros de texto y las descripciones de tag. Si selecciona mostrar descripciones, la ventaja SFC slo muestra las descripciones de pasos, transiciones y paros (no acciones). Para mostrar u ocultar cuadros de texto o descripciones, tiene estas opciones: Mostrar u ocultar cuadros de texto o descripciones Ocultar una descripcin de tag individual
2.
4. Seleccione
5-27
3. Seleccione Para mostrar otras descripciones, vea Mostrar u ocultar cuadros de texto o descripciones en la pgina 5-26.
5-28
La ficha SFC Execution del cuadro de dilogo Controller Properties le permite configurar lo siguiente: qu hacer cuando una transicin es verdadera dnde comenzar despus de una transicin al modo Marcha o de una recuperacin de una prdida de alimentacin elctrica qu hacer en el ltimo escn de un paso
1.
1. En la barra de herramientas en lnea, haga clic en el botn Controller Properties. 2. Haga clic en la ficha SFC Execution.
2.
3.
4.
5.
3. Seleccione si regresar o no a la instruccin OS/JSR si una transicin es verdadera. 4. Seleccione dnde reiniciar el SFC despus de una transicin al modo Marcha o de una recuperacin de una prdida de alimentacin elctrica. 5. Seleccione qu hacer en el ltimo escn de un paso. 6. Seleccione
5-29
Verificar la rutina
A medida que va programando la rutina, verifique peridicamente su trabajo: 1. En la barra de herramientas del extremo superior de la ventana RSLogix 5000, haga clic en 2. Si hay errores listados en la parte inferior de la ventana: a. Vaya al primer error o advertencia, presione [F4]. b. Corrija el error de conformidad con la descripcin indicada en la ventana Results. c. Vaya al paso 1. 3. Para cerrar la ventana Results, presione [Alt] + [1].
5-30
Notas:
Captulo
Use este captulo para escribir e introducir texto estructurado para una: rutina de texto estructurado accin de un diagrama de funcin secuencial (SFC) transicin de un diagrama de funcin secuencial (SFC)
El texto estructurado es un lenguaje de programacin textual que utiliza comandos para definir lo que se va a ejecutar. El texto estructurado no distingue entre maysculas y minsculas. Use tabulaciones y retornos de carro (lneas separadas) para facilitar la lectura del texto estructurado. stos no tienen efecto en la ejecucin del texto estructurado. El texto estructurado puede contener estos componentes:
Definicin: Use un comando de asignacin para asignar valores a los tags. El operador := es el operador de asignacin. Termine la asignacin con un signo de punto y coma ;. Una expresin es una parte de una asignacin completa o un comando de construccin. Una expresin evala a un nmero (expresin numrica) o a un estado de verdadero o falso (expresin BOOL). Una expresin contiene: tags Un rea con nombre de la memoria, donde se almacenan datos (BOOL, SINT,INT,DINT, REAL, cadena). Un valor constante. Un smbolo o mnemnico que especifica una operacin dentro de una expresin. Cuando se ejecuta, una funcin produce un valor. Use parntesis para contener el operando de una funcin. Aunque su sintaxis es similar, las funciones se diferencian de las instrucciones en que las funciones slo se pueden usar en expresiones. Las instrucciones no se pueden usar en expresiones.
value1
6-2
Trmino:
Definicin:
instruccin Una instruccin es un comando autnomo. (vea la pgina 6-11) Una instruccin usa parntesis para contener sus operandos. Dependiendo de la instruccin, puede haber cero, uno o mltiples operandos. Cuando se ejecuta, una instruccin produce uno o ms valores que son parte de una estructura de datos. Termine la instruccin con un signo de punto y coma ;. Aunque su sintaxis es similar, las instrucciones se diferencian de las funciones en que las instrucciones no se pueden usar en expresiones. Las funciones slo se pueden usar en expresiones. construccin Un comando condicional usado para activar el cdigo de texto (vea la pgina 6-12) estructurado (por ej., otros comandos). Termine la construccin con un signo de punto y coma ;.
IF...THEN CASE FOR...DO WHILE...DO REPEAT...UNTIL EXIT //comment (*start of comment . . . end of comment*) /*start of comment . . . end of comment*/
comentario Texto que explica o aclara lo que hace una seccin de texto (vea la pgina 6-26) estructurado. Use comentarios para facilitar la interpretacin de texto estructurado. Los comentarios no afectan la ejecucin del texto estructurado. Los comentarios pueden aparecer en cualquier lugar del texto estructurado.
Asignaciones
Use una asignacin para cambiar el valor almacenado en un tag. Una asignacin tiene esta sintaxis: tag := expression ; donde:
Componente: tag := expresin Descripcin: representa el tag que obtiene el nuevo valor el tag debe ser BOOL, SINT, INT, DINT o REAL es el smbolo de la asignacin representa el nuevo valor que se va a asignar al tag Si el tag es este tipo de datos: BOOL SINT INT DINT REAL ; finales de asignacin Use este tipo de expresin: expresin BOOL expresin numrica
6-3
El tag retiene el valor asignado hasta que otra asignacin cambia el valor. La expresin puede ser simple, tal como un valor inmediato u otro nombre de tag, o la expresin puede ser compleja e incluir varios operadores y/o funciones. Vea la siguiente seccin Expresionesen la pgina 6-4 para obtener detalles.
6-4
Para aadir o insertar una cadena de caracteres a un tag de cadena, use cualquiera de estas instrucciones de cadena ASCII:
Para: aadir caracteres al fin de una cadena insertar caracteres en una cadena Use esta instruccin: CONCAT INSERT
Expresiones
Una expresin es una comparacin, una ecuacin o un nombre de tag. Para escribir una expresin, use cualquiera de los siguientes: el nombre del tag que almacena el valor (variable) el nmero que usted introduce directamente en la expresin (valor inmediato) funciones, tales como: ABS, TRUNC operadores, tales como: +, , <, >, And, Or Cuando escriba las expresiones, siga estas reglas generales: Use cualquier combinacin de letras en maysculas o minsculas. Por ejemplo, estas tres variaciones de AND son aceptables: AND, And, and. Para requisitos ms complejos, use parntesis para agrupar expresiones dentro de expresiones. Esto facilita la lectura de toda la expresin y asegura que la expresin se ejecute en la secuencia deseada. Vea Determine el orden de ejecucin en la pgina 6-10. En el texto estructurado, se utilizan dos tipos de expresin: Expresin BOOL: Una expresin que produce ya sea el valor BOOL de 1 (verdadero) o 0 (falso). Una expresin bool usa tags bool, operadores de relacin y operadores lgicos para comparar valores y verificar si las condiciones son verdaderas o falsas. Por ejemplo, tag1>65. Una expresin bool simple puede ser un tag BOOL simple. Normalmente se usan expresiones bool para condicionar la ejecucin de la lgica.
6-5
Expresin numrica: Una expresin que calcula un valor entero o de punto flotante (coma flotante). Una expresin numrica usa operadores aritmticos, funciones aritmticas y operadores de bit. Por ejemplo, tag1+5. Generalmente se anida una expresin numrica dentro de una expresin booleana. Por ejemplo, (tag1+5)>65. Use la siguiente tabla para seleccionar operadores para la expresin:
Si desea: Calcular un valor aritmtico Comparar dos valores o cadenas Verificar si las condiciones son verdaderas o falsas Comparar bits dentro de valores Entonces: Use funciones y operadores y aritmticos en la pgina 6-5. Use operadores de relacin en la pgina 6-7. Use operadores lgicos en la pgina 6-9. Use operadores de bit en la pgina 6-10.
6-6
Las funciones aritmticas realizan operaciones matemticas. Especifique una constante, un tag no booleano o una expresin para la funcin.
Para: valor absoluto arco coseno arco seno arco tangente coseno radianes a grados logaritmo natural logaritmo de base 10 grados a radianes seno raz cuadrada tangente truncar Use esta funcin: ABS (numeric_expression) ACOS (numeric_expression) ASIN (numeric_expression) ATAN (numeric_expression) COS (numeric_expression) DEG (numeric_expression) LN (numeric_expression) LOG (numeric_expression) RAD (numeric_expression) SIN (numeric_expression) SQRT (numeric_expression) TAN (numeric_expression) TRUNC (numeric_expression) Tipo de datos ptimo: DINT, REAL REAL REAL REAL REAL DINT, REAL REAL REAL DINT, REAL REAL DINT, REAL REAL DINT, REAL
Por ejemplo:
Use este formato: Ejemplo: Para esta situacin: value1 operator value2 Si gain_4 y gain_4_adj son tags DINT y su especificacin dice: Aadir 15 a gain_4 y guardar el resultado en gain_4_adj. Si alarm y high_alarm son tags DINT y su especificacin dice: Cambiar signo de high_alarm y guardar el resultado en alarm. Si overtravel y overtravel_POS son tags DINT y su especificacin dice: Calcular el valor absoluto de overtravel y guardar el resultado en overtravel_POS. Si adjustment y position son tags DINT y sensor1 y sensor2 son tags REAL y su especificacin dice: Hallar el valor absoluto del promedio de sensor1 y sensor2, aadir el valor de adjustment, y guardar el resultado en position. Usted escribira: gain_4_adj := gain_4+15; alarm:= high_alarm; overtravel_POS := ABS(overtravel);
operator value1
function(numeric_expression)
6-7
Por ejemplo:
Use este formato: Ejemplo: Para esta situacin: value1 operator value2 stringtag1 operator stringtag2 char1 operator char2 Para introducir un carcter ASCII directamente en una expresin, introduzca el valor decimal del carcter. bool_tag := bool_expressions Usted escribira: Si temp es un tag DINT y su especificacin dice: IF temp<100 THEN... Si temp es menor que 100 entonces Si bar_code y dest son tags de cadena y su especificacin dice: Si bar_code es igual que dest entonces Si bar_code es un tag de cadena y su especificacin dice: Si bar_code.DATA[0] es igual que A entonces IF bar_code=dest THEN...
IF bar_code.DATA[0]=65 THEN...
Si count y length son tags DINT, done es un tag BOOL y su especificacin dice Si count es mayor o igual que length, ya termin de contar.
6-8
Cdigos hexadecimales $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B
1b A AB B a ab
Las cadenas son iguales si sus caracteres son iguales. Los caracteres distinguen entre maysculas y minsculas. Una A mayscula ($41) no es igual a una a minscula ($61). Para obtener el valor decimal y el cdigo hexadecimal de un carcter, vea la contraportada de este manual.
6-9
Por ejemplo:
Use este formato: Ejemplo: Para esta situacin:
BOOLtag
Si photoeye es un tag BOOL y su especificacin dice: Si photoeye_1 est encendido, entonces Si photoeye es un tag BOOL y su especificacin dice: Si photoeye est apagado, entonces Si photoeye es un tag BOOL, temp es un tag DINT y su especificacin dice: Si photoeye est encendido y temp es menos de 100 entonces. Si photoeye es un tag BOOL, temp es un tag DINT y su especificacin dice: Si photoeye est encendido o temp es menos de 100 entonces. Si photoeye1 y photoeye2 son tags BOOL y su especificacin dice: Si: photoeye1 est encendido mientras que photoeye2 est apagado o photoeye1 est apagado mientras que photoeye2 est encendido entonces Si photoeye1 y photoeye2 son tags BOOL, open es un tag BOOL y su especificacin dice: Si photoeye1 y photoeye2 estn encendidos, establezca open en verdadero.
expression1 OR expression2
6-10
Por ejemplo:
Use este formato: Ejemplo: Para esta situacin: value1 operator value2 Usted escribira: Si input1, input2 y result1 son tags DINT y su result1 := input1 AND especificacin dice: Calcular el resultado bit a bit de input2; input1 e input2. Guardar el resultado en result1.
6-11
Instrucciones
Los comandos de texto estructurado tambin pueden ser instrucciones. Vea la tabla de ubicacin al comienzo de este manual para obtener una lista de las instrucciones disponibles en texto estructurado. Una instruccin de texto estructurado se ejecuta cada vez que se escanea. Una instruccin de texto estructurado dentro de una construccin se ejecuta cada vez que las condiciones de la construccin son verdaderas. Si las condiciones de la construccin son falsas, los comandos dentro de la construccin no se escanean. No hay condicin de rengln ni transicin de estado que active la ejecucin. Esto es diferente de las instrucciones de bloque de funcin que usan EnableIn para activar la ejecucin. Las instrucciones de texto estructurado se ejecutan como si EnableIn estuviera siempre establecido. Esto tambin es diferente de las instrucciones de lgica de escalera de rel que usan la condicin de entrada de rengln para activar la ejecucin. Algunas instrucciones de lgica de escalera de rel slo se ejecutan cuando la condicin de entrada de rengln cambia de falso a verdadero. Estas son instrucciones de lgica de escalera de rel transitorias. En texto estructurado, las instrucciones se ejecutarn cada vez que se escaneen, a menos que usted condicione previamente la ejecucin de la instruccin de texto estructurado. Por ejemplo, la instruccin ABL es una instruccin transitoria en la lgica de escalera de rel. En este ejemplo, la instruccin ABL slo se ejecuta en un escn cuando tag_xic cambia de restablecido a establecido. La instruccin ABL no se ejecuta cuando tag_xic permanece establecido ni cuando tag_xic se restablece.
En texto estructurado, si usted escribe este ejemplo como: IF tag_xic THEN ABL(0,serial_control); END_IF; La instruccin ABL se ejecutar en cada escn que tag_xic est establecido, no slo cuando tag_xic cambie de restablecido a establecido.
6-12
Si desea que la instruccin ABL se ejecute slo cuando tag_xic cambia de restablecido a establecido, tiene que condicionar la instruccin de texto estructurado. Use captacin de un impulso para activar la ejecucin.
osri_1.InputBit := tag_xic; OSRI(osri_1);
Construcciones
Si desea: hacer algo si o cuando ocurran condiciones especficas seleccionar qu hacer basado en un valor numrico
Las construcciones pueden programarse de manera simple o anidadas dentro de otras construcciones.
Use esta construccin: IF...THEN CASE...OF FOR...DO WHILE...DO REPEAT...UNTIL Disponible en estos lenguajes: texto estructurado texto estructurado texto estructurado texto estructurado texto estructurado Vea la pgina: 6-13 6-16 6-18 6-21 6-23
hacer algo un nmero de veces especfico antes de hacer algo diferente continuar haciendo algo siempre que ciertas condiciones sean verdaderas continuar haciendo algo hasta que una condicin sea verdadera
6-13
IF...THEN
Operandos:
Texto estructurado
IF bool_expression THEN <statement>; END_IF;
Tipo: BOOL
Introduzca: Expresin o tag BOOL que evale a un valor BOOL (expresin BOOL)
. . .
opcional
. . .
opcional
. . .
END_IF; Para usar ELSIF o ELSE, siga estas pautas:
1. Para seleccionar entre varios posibles grupos de comandos, aada uno o ms comandos ELSIF. Cada ELSIF representa una ruta alternativa. Especifique la cantidad de rutas ELSIF que necesite. El controlador ejecuta el primer IF o ELSIF verdadero y se salta el resto de ELSIF y ELSE. 2. Para hacer algo cuando todas las condiciones IF o ELSIF son falsas, aada un comando ELSE.
6-14
La siguiente tabla resume las diferentes combinaciones de IF, THEN, ELSIF y ELSE.
Si desea: Y: Entonces use esta construccin
hacer algo si o cuando las condiciones no hacer nada si las condiciones son falsas IFTHEN sean verdaderas hacer algo diferente si las condiciones son falsas IFTHENELSE seleccionar entre comandos alternativos (o grupos de comandos) basados en condiciones de entrada no hacer nada si las condiciones son falsas asignar comandos predeterminados si todas las condiciones son falsas IFTHENELSIF IFTHENELSIFELSE
Ejemplo 2: IFTHENELSE
Si desea lo siguiente: Si contacto de direccin de transportador = avance (1) entonces luz = apagada De lo contrario luz = encendida Introduzca este texto estructurado: IF conveyor_direction THEN light := 0; ELSE light [:=] 1; END_IF;
[:=] indica al controlador que restablezca light cada vez que el controlador: entra al modo RUN sale del paso de un SFC si usted configura el SFC para Automatic Reset (Esto slo se aplica si usted incorpora la asignacin en la accin del paso o usa la accin para llamar a una rutina de texto estructurado mediante una instruccin JSR).
6-15
Ejemplo 3: IFTHENELSIF
Si desea lo siguiente: Si interruptor de lmite bajo de azcar = bajo (activado) e interruptor de lmite alto de azcar = no alto (activado) entonces vlvula de entrada = abierta (activado) Hasta que interruptor de lmite alto de azcar = alto (desactivado) Introduzca este texto estructurado: IF Sugar.Low & Sugar.High THEN
[:=] le indica al controlador que restablezca Sugar.Inlet cada vez que el controlador: entra al modo RUN deja el paso de un SFC si usted configura el SFC para Automatic Reset (Esto slo se aplica si usted incorpora la asignacin en la accin del paso o usa la accin para llamar a una rutina de texto estructurado mediante una instruccin JSR).
Ejemplo 4: IFTHENELSIFELSE
Si desea lo siguiente: Si la temperatura del tanque > 100 entonces bomba = lenta Si la temperatura del tanque > 200 entonces bomba = rpida de lo contrario bomba = desactivada ELSE pump.fast :=0; pump.slow :=0; pump.off :=1; END_IF; Introduzca este texto estructurado: IF tank.temp > 200 THEN pump.fast :=1; pump.slow :=0; pump.off :=0; ELSIF tank.temp > 100 THEN pump.fast :=0; pump.slow :=1; pump.off :=0;
6-16
CASE...OF
Operandos:
Texto estructurado
CASE numeric_expression OF selector1: statement; selectorN: statement; ELSE statement; END_CASE; selector
Operando:
numeric_ expression
valor inmediato
IMPORTANTE
Si usa valores REAL, use un rango de valores para un selector porque es ms probable que un valor REAL est dentro de un rango de valores que una coincidencia exacta de un valor especfico.
selector2 :
. . .
selector3 : <statement>;
. . .
ELSE <statement>;
opcional
. . .
END_CASE;
Vea la tabla en la siguiente pgina para obtener los valores de selector vlidos.
6-17
[:=] indica al controlador que restablezca tambin los tags de salida cada vez que el controlador: entra al modo RUN sale del paso de un SFC si usted configura el SFC para Automatic Reset (Esto slo se aplica si usted incorpora la asignacin en la accin del paso o usa la accin para llamar a una rutina de texto estructurado mediante una instruccin JSR).
Publicacin 1756-PM001E-ES-P - Agosto 2002
6-18
FORDO
Operandos:
Use el lazo FORDO para hacer algo un nmero de veces especfico antes de hacer algo diferente.
Texto estructurado
FOR count:= initial_value TO final_value BY increment DO <statement>; END_FOR;
Operando: count
Tipo: SINT INT DINT SINT INT DINT SINT INT DINT SINT INT DINT
Formato: tag
Descripcin: tag para almacenar posicin de conteo a medida que FORDO se ejecuta debe evaluar a un nmero especifica el valor inicial del conteo
initial_ value
tag expresin valor inmediato tag expresin valor inmediato tag expresin valor inmediato
final_ value
especifica el valor final del conteo, lo cual determina cundo salir del lazo
increment
(opcional) cantidad que incrementa el conteo cada vez a travs del lazo Si no se especifica un incremento, el conteo incrementa un valor de 1.
IMPORTANTE
Asegrese de no efectuar iteraciones dentro de un lazo demasiadas veces en un solo escn. El controlador no ejecuta ningn otro comando en la rutina hasta que se complete el lazo. Si el tiempo requerido para completar el lazo es mayor que el temporizador de control (watchdog) de la tarea, ocurrir un fallo mayor. Considere usar una construccin diferente, tal como IF...THEN.
opcional
END_IF;
Si existen condiciones cuando usted desea salir del lazo anticipadamente, use otros comandos, tales como una construccin IF...THEN, para condicionar un comando EXIT.
END_FOR;
6-19
Los siguientes diagramas muestran cmo se ejecuta un lazo FOR...DO y cmo un comando EXIT sale del lazo anticipadamente.
Efectuado x s nmero de veces? no comando 1 comando 2 comando 3 comando 4 resto de la rutina Efectuado x s nmero de veces? no comando 1 comando 2 comando 3 comando 4 Salir ? no resto de la rutina
Para detener el lazo antes que el conteo llegue al ltimo valor, use el comando EXIT.
Ejemplo 1:
Si desea lo siguiente: Restablecer los bits 0 31 en una matriz de BOOL: 1. Inicializar el tag subscript a 0. 2. Restablecer array[ subscript ]. Por ejemplo, cuando subscript = 5, restablecer array[5]. 3. Aadir 1 a subscript. 4. Si subscript es que 31, repetir 2 y 3. De lo contrario, parar. Introduzca este texto estructurado: For subscript:=0 to 31 by 1 do array[subscript] := 0; End_for;
6-20
Ejemplo 2:
Si desea lo siguiente: Introduzca este texto estructurado:
Un tipo de datos definido por el usuario (estructura) almacena SIZE(Inventory,0,Inventory_Items); la siguiente informacin acerca de un tem en el inventario: For position:=0 to Inventory_Items 1 do ID de cdigo de barras del tem (tipo de datos de cadena) If Barcode = Inventory[position].ID then Cantidad en inventario del tem (tipo de datos DINT) Quantity := Inventory[position].Qty; Una matriz de la estructura anterior contiene un elemento para cada tem diferente en el inventario. Usted desea buscar Exit; la matriz de un producto especfico (usar su cdigo de barras) y End_if; determinar la cantidad en inventario. 1. Obtener el tamao (nmero de tems) de la matriz End_for; Inventory y almacenar el resultado en Inventory_Items (tag DINT). 2. Inicializar el tag position a 0. 3. Si Barcode coincide con el ID de un tem en la matriz, entonces: a. Establezca el tag Quantity = Inventory[position].Qty. Esto produce la cantidad del tem en inventario. b. Detngase. Barcode es una cadena que almacena el cdigo de barras del tem que usted est buscando. Por ejemplo, cuando position = 5, compare Barcode con Inventory[5].ID. 4. Aadir 1 a position. 5. Si position es que (Inventory_Items 1), repetir 3 y 4. Puesto que los nmeros de elementos comienzan en 0, el ltimo elemento es 1 menos que el nmero de elementos en la matriz. De lo contrario, parar.
6-21
WHILEDO
Operandos:
Use el lazo WHILEDO para continuar haciendo algo, siempre que ciertas condiciones sean verdaderas.
Texto estructurado
WHILE bool_expression DO <statement>; END_WHILE;
Tipo: BOOL
IMPORTANTE
Asegrese de no efectuar iteraciones dentro de un lazo demasiadas veces en un solo escn. El controlador no ejecuta ningn otro comando en la rutina hasta que se complete el lazo. Si el tiempo requerido para completar el lazo es mayor que el temporizador de control (watchdog) de la tarea, ocurrir un fallo mayor. Considere usar una construccin diferente, tal como IF...THEN.
END_IF;
END_WHILE; Los siguientes diagramas muestran cmo se ejecuta un lazo WHILE...DO y cmo un comando EXIT sale del lazo anticipadamente.
expresin BOOL verdadero comando 1 comando 2 comando 3 comando 4 resto de la rutina falso expresin BOOL verdadero comando 1 comando 2 comando 3 comando 4 Salir ? no resto de la rutina falso
Mientras que bool_expression es verdadero, el controlador ejecuta slo los comandos dentro del lazo WHILEDO.
Para detener el lazo antes de que las condiciones sean verdaderas, use el comando EXIT.
6-22
Ejemplo 1:
Si desea lo siguiente: El lazo WHILE...DO evala sus condiciones primero. Si las condiciones son verdaderas, entonces el controlador ejecuta los comandos dentro del lazo. Esto es diferente del lazo REPEAT...UNTIL porque el lazo REPEAT...UNTIL ejecuta los comandos en la construccin y luego determina si las condiciones son verdaderas antes de ejecutar los comandos nuevamente. Los comandos en un lazo REPEAT...UNTIL siempre se ejecutan por lo menos una vez. Los comandos en un lazo WHILE...DO puede ser que nunca se ejecuten. Introduzca este texto estructurado: pos := 0; While ((pos <= 100) & structarray[pos].value <> targetvalue)) do pos := pos + 2; String_tag.DATA[pos] := SINT_array[pos]; end_while;
Ejemplo 2:
Si desea lo siguiente: Transferir caracteres ASCII de una matriz SINT a un tag de cadena. (En una matriz SINT, cada elemento contiene un carcter). Detenerse al llegar al retorno de carro. 1. Inicializar Element_number a 0. 2. Contar el nmero de elementos en SINT_array (matriz que contiene los caracteres ASCII) y almacenar el resultado en SINT_array_size (tag DINT). 3. Si el carcter en SINT_array[element_number] = 13 (valor decimal del retorno de carro), entonces parar. 4. Establecer String_tag[element_number] = el carcter en SINT_array[element_number]. 5. Aadir 1 a element_number. Esto permite que el controlador verifique el siguiente carcter en SINT_array. 6. Establecer el miembro Length de String_tag = element_number. (Esto registra el nmero de caracteres en String_tag hasta el momento). 7. Si element_number = SINT_array_size, entonces parar. (Usted se encuentra al final de la matriz y sta no contiene un retorno de carro). 8. Vaya al paso 3 Introduzca este texto estructurado: element_number := 0; SIZE(SINT_array, 0, SINT_array_size); While SINT_array[element_number] <> 13 do String_tag.DATA[element_number] := SINT_array[element_number]; element_number := element_number + 1; String_tag.LEN := element_number; If element_number = SINT_array_size then exit; end_if; end_while;
6-23
REPEATUNTIL
Operandos:
Use el lazo REPEATUNTIL para continuar haciendo algo hasta que las condiciones sean verdaderas.
Texto estructurado
REPEAT <statement>; UNTIL bool_expression END_REPEAT;
Tipo: BOOL
Introduzca: Expresin o tag BOOL que evale a un valor BOOL (expresin BOOL)
IMPORTANTE
Asegrese de no efectuar iteraciones dentro de un lazo demasiadas veces en un solo escn. El controlador no ejecuta ningn otro comando en la rutina hasta que se complete el lazo. Si el tiempo requerido para completar el lazo es mayor que el temporizador de control (watchdog) de la tarea, ocurrir un fallo mayor. Considere usar una construccin diferente, tal como IF...THEN.
END_IF;
6-24
Los siguientes diagramas muestran cmo se ejecuta un lazo REPEAT...UNTIL y cmo un comando EXIT sale del lazo anticipadamente.
comando 1 comando 2 comando 3 comando 4 expresin BOOL falso resto de la rutina falso resto de la rutina comando 1 comando 2 comando 3 comando 4 Salir ? no expresin BOOL verdadero
verdadero
Mientras que bool_expression es falso, el controlador ejecuta slo los comandos dentro del lazo REPEATUNTIL.
Para detener el lazo antes de que las condiciones sean falsas, use el comando EXIT.
Ejemplo 1:
Si desea lo siguiente: El lazo REPEAT...UNTIL ejecuta los comandos en la construccin y luego determina si las condiciones son verdaderas antes de ejecutar los comandos nuevamente. Introduzca este texto estructurado: pos := 1; REPEAT
pos := pos + 2; Esto es diferente del lazo WHILE...DO porque el lazo WHILE...DO evala sus condiciones primero. Si las condiciones son verdaderas, UNTIL ((pos = 101) OR entonces el controlador ejecuta los comandos dentro del lazo. Los (structarray[pos].value = targetvalue)) comandos en un lazo REPEAT...UNTIL siempre se ejecutan por lo end_repeat; menos una vez. Los comandos en un lazo WHILE...DO puede ser que nunca se ejecuten.
6-25
Ejemplo 2:
Si desea lo siguiente: Transferir caracteres ASCII de una matriz SINT a un tag de cadena. (En una matriz SINT, cada elemento contiene un carcter). Detenerse al llegar al retorno de carro. 1. Inicializar Element_number a 0. 2. Contar el nmero de elementos en SINT_array (matriz que contiene los caracteres ASCII) y almacenar el resultado en SINT_array_size (tag DINT). 3. Establecer String_tag[element_number] = el carcter en SINT_array[element_number]. 4. Aadir 1 a element_number. Esto permite que el controlador verifique el siguiente carcter en SINT_array. 5. Establecer el miembro Length de String_tag = element_number. (Esto registra el nmero de caracteres en String_tag hasta el momento). 6. Si element_number = SINT_array_size, entonces parar. (Usted se encuentra al final de la matriz y sta no contiene un retorno de carro). 7. Si el carcter en SINT_array[element_number] = 13 (valor decimal del retorno de carro), entonces parar. De lo contrario, ir a 3. Introduzca este texto estructurado: element_number := 0; SIZE(SINT_array, 0, SINT_array_size); Repeat String_tag.DATA[element_number] := SINT_array[element_number]; element_number := element_number + 1; String_tag.LEN := element_number; If element_number = SINT_array_size then exit; end_if; Until SINT_array[element_number] = 13 end_repeat;
6-26
Comentarios
Para facilitar la interpretacin del texto estructurado, adale comentarios. Los comentarios le permiten usar un lenguaje simple para describir cmo funciona el texto estructurado. Los comentarios no afectan la ejecucin del texto estructurado. Para aadir comentarios al texto estructurado:
Para aadir un comentario: en una sola lnea al final de una lnea de texto estructurado dentro de una lnea de texto estructurado que abarque ms de una lnea Use uno de estos formatos: //comment (*comment*) /*comment*/ (*comment*) /*comment*/ (*start of comment . . . end of comment*) /*start of comment . . . end of comment*/
Por ejemplo:
Formato: //comment Ejemplo: Al comienzo de una lnea //Check conveyor belt direction IF conveyor_direction THEN... Al final de una lnea ELSE //If conveyor isnt moving, set alarm light light := 1; END_IF; Sugar.Inlet[:=]1;(*open the inlet*) IF Sugar.Low (*low level LS*)& Sugar.High (*high level LS*)THEN... (*Controla la velocidad de la bomba de recirculacin. La velocidad depende de la temperatura en el tanque.*) IF tank.temp > 200 THEN... /*comment*/ Sugar.Inlet:=0;/*close the inlet*/ IF bar_code=65 /*A*/ THEN... /*Obtiene el nmero de elementos en la matriz Inventory y almacena el valor en el tag Inventory_Items*/ SIZE(Inventory,0,Inventory_Items);
(*comment*)
Captulo
Use este procedimiento para hacer lo siguiente: organizar una rutina de bloques de funcin desarrollar uno o ms diagramas de bloques de funcin para la rutina introducir los diagramas de bloques de funcin en la rutina
Antes de usar este procedimiento, asegrese de que puede hacer las siguientes tareas:
Para obtener ms informacin sobre cualquiera de esas tareas, vea Organizacin de tareas, programas y rutinas en la pgina 2-1.
Para programar una rutina de bloques de funcin, realice los pasos siguientes: Identifique las hojas para la rutina Seleccione los elementos de los bloques de funcin Seleccione un nombre de tag para un elemento Defina el orden de ejecucin Identifique los conectores Defina el control de programa/operador Aada una hoja Aada un elemento de bloque de funcin Conecte los elementos Asigne un tag Asigne un valor inmediato (constante) Conecte bloques con un OCON e ICON Verifique la rutina
7-2
Para facilitar la navegacin por una rutina de bloques de funcin, divida la rutina en una serie de hojas: Las hojas le ayudan a organizar y encontrar los bloques de funcin. No afectan el orden en que se ejecutan los bloques de funcin. Cuando se ejecuta la rutina, todas las hojas se ejecutan. En general, use una hoja para cada dispositivo (motor, vlvula, etc.) El siguiente ejemplo muestra una rutina de bloques de funcin que controla 4 motores.
EJEMPLO
Hoja 3 de 4
motor 3
Hoja 4 de 4
motor 4
7-3
bloque de funcin
Use la siguiente tabla para seleccionar los elementos de los bloques de funcin:
Si desea: enviar un valor a un dispositivo de salida o tag realizar una operacin con un valor o valores de entrada y producir un valor o valores de salida transferir datos entre bloques de funcin cuando stos estn: bastante separados en la misma hoja en hojas diferentes dentro de la misma rutina dispersar datos a varios puntos en la rutina Entonces use un/una: referencia de salida (OREF) bloque de funcin conector de cable de salida (OCON) y un conector de cable de entrada (ICON) conector de cable de salida nico (OCON) y mltiples conectores de cable de entrada (ICON)
7-4
Cada bloque de funcin usa un tag para almacenar la informacin de configuracin y estado acerca de la instruccin. Cuando se aade una instruccin de bloque de funcin, el software RSLogix 5000 automticamente crea un tag para el bloque. Se puede usar este tag tal como est, cambiar el nombre del tag o asignar un tag diferente. Para IREF y OREF, es necesario crear un tag o asignar un tag existente. La siguiente tabla indica el formato para un nombre de tag:
Para un: tag nmero de bit de un tipo de datos ms grande miembro de una estructura elemento de una matriz de una dimensin elemento de una matriz de dos dimensiones elemento de una matriz de tres dimensiones elemento de una matriz dentro de una estructura miembro de un elemento de una matriz
donde: x es la ubicacin del elemento en la primera dimensin. y es la ubicacin del elemento en la segunda dimensin. z es la ubicacin del elemento en la tercera dimensin. Para una estructura dentro de una estructura, aada un .member_name adicional.
7-5
El orden de ejecucin (flujo de datos) se define cableando bloques de funcin juntos e indicando cualquier cable de entrada (retroalimentacin), si es necesario. La ubicacin de un bloque no afecta el orden en el cual se ejecutan los bloques.
los datos fluyen desde los pines de salida hasta los pines de entrada
pin de salida
cable
cable
pin de entrada
Enclavamiento de datos
Si usted usa una IREF para especificar datos de entrada para una instruccin de bloque de funcin, los datos en la IREF se enclavan para el escn de la rutina del bloque de funcin. La IREF enclava datos desde los tags cubiertos por el programa y tags cubiertos por el controlador. El controlador actualiza todos los datos IREF al comienzo de cada escn.
IREF
7-6
En este ejemplo, el valor de tagA se almacena al comienzo de la ejecucin de la rutina. El valor almacenado se usa cuando se ejecuta Block_01. El mismo valor almacenado tambin se usa cuando se ejecuta Block_02. Si el valor de tagA cambia durante la ejecucin de la rutina, el valor almacenado de tagA en IREF no cambia hasta la siguiente ejecucin de la rutina.
Block_01
tagA
Block_02
Este ejemplo es igual al anterior. El valor de tagA se almacena slo una vez al comienzo de la ejecucin de la rutina. La rutina usa este valor almacenado en toda la rutina.
Block_01
tagA
Block_02
tagA
7-7
Comenzando con el software RSLogix 5000, versin 11, se puede usar el mismo tag en mltiples IREF y en un OREF en la misma rutina. Puesto que los valores de los tags en las IREF se enclavan en cada escn en toda la rutina, todas las IREF usarn el mismo valor, aunque una OREF obtenga un valor de tag diferente durante la ejecucin de la rutina. En este ejemplo, si tagA tiene un valor de 25.4 cuando la rutina comienza a ejecutar este escn, y Block_01 cambia el valor de tagA a 50.9, la segunda IREF cableada en Block_02 seguir usando un valor de 25.4 cuando Block_02 ejecute este escn. El nuevo valor de tagA de 50.9 no ser usado por ninguna IREF en esta rutina hasta el comienzo del siguiente escn.
Orden de ejecucin
El software de programacin RSLogix 5000 determina automticamente el orden de ejecucin de los bloques de funcin en una rutina cuando usted: verifica una rutina de bloque de funcin verifica un proyecto que contiene una rutina de bloque de funcin descarga un proyecto que contiene una rutina de bloque de funcin El orden de ejecucin se define cableando bloques de funcin juntos e indicando el flujo de datos de los cables de retroalimentacin, si es necesario. Si los bloques de funcin no estn cableados juntos, no importa cul bloque se ejecuta primero. No existe un flujo de datos entre los bloques.
7-8
Si los bloques se cablean de manera secuencial, el orden de ejecucin va de entrada a salida. Las entradas de un bloque requieren que los datos estn disponibles para que el controlador pueda ejecutar dicho bloque. Por ejemplo, el bloque 2 tiene que ejecutarse antes que el bloque 3 porque las salidas del bloque 2 alimentan a las entradas del bloque 3.
1 2 3
El orden de ejecucin est relacionado slo a los bloques que estn cableados juntos. El siguiente es un buen ejemplo porque los dos grupos de bloques no estn cableados juntos. Los bloques dentro de un grupo especfico se ejecutan en el orden apropiado en relacin con los bloques de dicho grupo.
1 3 5
Resuelva un lazo
Para crear un lazo de retroalimentacin alrededor de un bloque, cablee un pin de salida de un bloque a un pin de entrada del mismo bloque. El siguiente es un buen ejemplo. El lazo contiene un solo bloque, por lo tanto el orden de ejecucin no es importante.
Este pin de entrada usa una salida que el bloque produjo en el escn anterior.
7-9
Si hay un grupo de bloques en un lazo, el controlador no puede determinar cul bloque debe ejecutarse primero. En otras palabras, no puede resolver el lazo.
? ? ?
Para identificar cul bloque debe ejecutarse primero, marque el cable de entrada que crea el lazo (el cable de retroalimentacin) con el indicador Assume Data Available. En el siguiente ejemplo, el bloque 1 usa la salida del bloque 3 que se produjo en la ejecucin previa de la rutina.
1 2 3
Este pin de entrada usa la salida que el bloque 3 produjo en el escn anterior. Indicador Assume Data Available
El indicador Assume Data Available define el flujo de datos dentro del lazo. La flecha indica que el dato sirve como entrada para el primer bloque en el lazo. No marque todos los cables de un lazo con el indicador Assume Data Available.
Esto es correcto 1 2 ? Esto no es correcto ?
Indicador Assume Data Available El indicador Assume Data Available define el flujo de datos dentro del lazo.
El controlador no puede resolver el lazo porque los cables usan el indicador Assume Data Available.
7-10
Indicador Assume Data Available Ambos cables usan el indicador Assume Data Available.
7-11
Resumen
En resumen, una rutina de bloque de funcin se ejecuta en este orden: 1. El controlador enclava todos los valores de datos en IREF. 2. El controlador ejecuta los otros bloques de funcin en el orden determinado segn su cableado. 3. El controlador escribe salidas en OREF.
Al igual que los cables, los conectores transfieren datos desde los pines de salida hasta los pines de entrada. Utilice conectores cuando: los elementos que desea conectar estn en hojas diferentes dentro de la misma rutina exista dificultad para encaminar un cable alrededor de otros cables o elementos desee dispersar datos a diversos puntos en la rutina
Connector_A datos
Connector_A
Para usar los conectores, siga estas reglas: Cada OCON requiere un nombre nico. Por cada OCON, usted debe tener por lo menos un ICON respectivo (por ej., un ICON con el mismo nombre que el OCON). Mltiples ICON pueden hacer referencia al mismo OCON. Esto le permite dispersar datos a diversos puntos en la rutina.
7-12
Hay varias instrucciones compatibles con el concepto de control de programa/operador. Estas instrucciones incluyen: Enhanced Select (ESEL) Totalizer (TOT) Enhanced PID (PIDE) Ramp/Soak (RMPS) Discrete 2-State Device (D2SD) Discrete 3-State Device (D3SD)
El control de programa/operador permite controlar estas instrucciones simultneamente desde el programa de usuario y desde un dispositivo de interface de operador. En control de programa, la instruccin es controlada por las entradas del programa a la instruccin; En control de operador, la instruccin es controlada por las entradas del operador a la instruccin. El control de programa u operador se determina mediante el uso de estas entradas:
Entrada: .ProgProgReq .ProgOperReq .OperProgReq .OperOperReq Descripcin: Una peticin del programa para ir a control de programa. Una peticin del programa para ir a control de operador. Una peticin del operador para ir a control de programa. Una peticin del operador para ir a control de operador.
Para determinar si una instruccin est en control de programa o de operador, examine la salida ProgOper. Si ProgOper est establecido, la instruccin est en control de programa; Si ProgOper est restablecido, la instruccin est en control de operador. El control de operador tiene precedencia sobre el control de programa si ambos bits de peticin de entrada estn establecidos. Por ejemplo, si ProgProgReq y ProgOperReq estn establecidos, la instruccin pasa a control de operador.
7-13
Las entradas de peticin de programa tienen precedencia sobre las entradas de peticin de operador. Esto proporciona la capacidad de usar las entradas ProgProgReq y ProgOperReq para bloquear una instruccin en un control deseado. Por ejemplo, supongamos que una instruccin Totalizer siempre se usar en el control de operador y que el programa de usuario nunca controlar la ejecucin o paro de Totalizer. En este caso, usted podra cablear un valor literal de 1 en ProgOperReq. Esto impedira que el operador pueda poner Totalizer en el control de programa estableciendo OperProgReq desde un dispositivo de interface de operador.
Puesto que la entrada ProgOperReq siempre se establece, no tiene ningn efecto presionar el botn Program en la cartula (lo cual establece la entrada OperProgReg). Normalmente, establecer OperProgReq pone a TOT en control del programa.
Cablear un 1 en ProgOperReq significa que el programa de usuario desea que TOT siempre est en control de operador.
7-14
De igual modo, el establecer constantemente ProgProgReq puede bloquear la instruccin en control de programa. Esto es til para las secuencias de puesta en marcha automtica cuando usted desea que el programa controle la accin de la instruccin sin preocuparse de que un operador tome control accidentalmente de la instruccin. En este ejemplo el programa establece la entrada ProgProgReq durante la puesta en marcha y luego restablece la entrada ProgProgReq una vez que concluye la puesta en marcha. Una vez que se restablece la entrada ProgProgReq, la instruccin permanece en control de programa hasta que recibe una peticin de cambiar. Por ejemplo, el operador podra establecer la entrada OperOperReq desde la cartula para asumir el control de esa instruccin. El siguiente ejemplo muestra cmo bloquear una instruccin en control de programa.
Cuando se establece StartupSequenceActive, la instruccin PIDE se coloca en control de programa y modo manual. El valor StartupCV se usa como salida de lazo.
Las entradas de peticin de operador a una instruccin siempre son restablecidas por la instruccin cuando sta se ejecuta. Esto permite que las interfaces de operador funcionen con estas instrucciones simplemente estableciendo el bit de peticin del modo deseado. No es necesario programar la interface de operador para restablecer los bits de peticin. Por ejemplo, si una interface de operador establece la entrada OperAutoReq a una instruccin PIDE, cuando se ejecuta la instruccin PIDE, sta determina cul debe ser la respuesta apropiada y restablece OperAutoReq.
7-15
Las entradas de peticin de programa normalmente no son restablecidas por la instruccin porque stas normalmente estn cableadas como entradas en la instruccin. Si la instruccin establece estas entradas, la entrada sera establecida nuevamente por la entrada cableada. Pueden haber situaciones en las que usted desee usar otra lgica para establecer las peticiones del programa de manera tal que desee que las peticiones del programa sean restablecidas por la instruccin. En este caso puede establecer la entrada ProgValueReset y la instruccin siempre restablecer las entradas de peticin del modo programa cuando sta se ejecute. En este ejemplo se usa un rengln de lgica de escalera en otra rutina para enclavar con un impulso ProgAutoReq a una instruccin PIDE cuando se presiona un botn pulsador. Puesto que la instruccin PIDE automticamente restablece las peticiones del modo programa, usted no tiene que escribir ninguna lgica de escalera para restablecer ProgAutoReq despus que se ejecute la rutina, y la instruccin PIDE recibir slo una peticin para pasar al modo Auto cada vez que se presione el botn pulsador.
Cuando se presiona el botn pulsador TIC101AutoReq, ocurre un enclavamiento de un impulso de ProgAutoReq para la instruccin PIDE TIC101. TIC101 se ha configurado con la entrada ProgValueReset establecida, por lo tanto, cuando se ejecuta la instruccin PIDE, sta automticamente restablece ProgAutoReq.
7-16
1. Haga clic en 2. Escriba una descripcin de la hoja (50 caracteres como mximo).
Use la barra de herramientas Language Element para aadir un elemento de bloque de funcin a la rutina.
IREF
bloques de funcin
Para aadir un elemento: 1. En la barra de herramientas Language Element, haga clic en el botn del elemento que desea aadir. 2. Arrastre el elemento a la posicin deseada. Por ejemplo:
7-17
Tambin puede arrastrar el botn del elemento directamente a la ubicacin deseada. Por ejemplo:
7-18
Para definir el flujo de datos: Mostrar u ocultar un pin Conecte elementos juntos Marque un cable con el indicador Assume Data Available
2.
3. Seleccione
7-19
punto verde
cable de entrada
7-20
Asigne un tag
Para asignar un tag a un elemento de bloque de funcin, hay estas opciones: Cree y asigne un nuevo tag Cambie el nombre del tag de un bloque de funcin Asigne un tag existente
5.
6.
5. Seleccione el tipo de datos para el tag. 6. Si desea definir el tag como matriz, escriba el nmero de elementos en cada dimensin. 7. Seleccione
7-21
8.
3.
1. Haga doble clic en el rea del operando. 2. Haga clic en w 3. Seleccione el tag:
Para seleccionar un: tag nmero de bit Haga lo siguiente: Haga doble clic en el nombre del tag. A. Haga clic en el nombre del tag. B. A la derecha del nombre del tag, haga clic en w C. Haga clic en el bit requerido.
7-22
Para asignar un valor constante en lugar de un valor de tag a un parmetro de entrada, hay estas opciones:
Si desea: que el valor est visible en el diagrama e informes tener la capacidad de cambiar el valor en lnea sin editar la rutina Entonces: Use un IREF Introduzca un valor en el tag de un bloque
Use un IREF
1. Aada un IREF. 2. Conecte IREF al pin de entrada que obtiene el valor.
3.
3. Haga doble clic en el rea del operando de IREF. 4. Escriba el valor y presione la tecla Enter.
2.
7-23
ICON OCON
Aada un OCON
1. Aada un conector de cable de salida (OCON) y colquelo cerca del pin de salida que suministra el valor. 2. Conecte el OCON al pin de salida. 3. Haga doble clic en el rea del operando de OCON. 4. Escriba un nombre que identifique el conector y presione [Enter].
Aada un ICON
1. Aada un conector de cable de entrada (ICON) y colquelo cerca del pin de entrada que obtiene el valor del OCON respectivo. 2. Conecte el ICON al pin de entrada. 3. Haga doble clic en el rea del operando de ICON. 4. Seleccione el nombre del OCON que proporciona el valor a este conector y luego haga clic en un lugar en blanco en el diagrama.
7-24
Verifique la rutina
A medida que va programando la rutina, verifique peridicamente su trabajo: 1. En la barra de herramientas del extremo superior de la ventana RSLogix 5000, haga clic en 2. Si hay errores listados en la parte inferior de la ventana: a. Vaya al primer error o advertencia, presione [F4]. b. Corrija el error de conformidad con la descripcin indicada en la ventana Results. c. Vaya al paso 1. 3. Para cerrar la ventana Results, presione [Alt] + [1].
Captulo
Use este procedimiento para realizar lo siguiente: desarrollar la lgica para una rutina de lgica de escalera introducir la lgica en la rutina
Antes de usar este procedimiento, asegrese de que puede realizar las siguientes tareas:
Para obtener ms informacin sobre cualquiera de estas tareas, vea Organizacin de tareas, programas y rutinas en la pgina 2-1.
Para programar la rutina de lgica de escalera, realice estas tareas: Revise las Definiciones Escritura de lgica de escalera Introduccin de la lgica de escalera Asignacin de operandos Verificacin de la rutina
8-2
Definiciones
Antes de escribir o introducir la lgica de escalera, revise los siguientes trminos: Instruccin Bifurcacin Condicin de rengln
Instruccin
La lgica de escalera se organiza como los renglones de una escalera y las instrucciones se colocan en cada rengln. Hay dos tipos bsicos de instrucciones: Instruccin de entrada: Una instruccin que verifica, compara o examina condiciones especficas de la mquina o proceso. Instruccin de salida: Una instruccin que realiza alguna accin, tal como encender un dispositivo, apagar un dispositivo, copiar datos o calcular un valor.
instrucciones de entrada
instrucciones de salida
Bifurcacin
Una bifurcacin consta de dos o ms instrucciones en paralelo.
bifurcacin
bifurcacin
8-3
No hay un lmite del nmero de niveles de bifurcacin en paralelo que usted puede introducir. La figura siguiente muestra una bifurcacin en paralelo con cinco niveles. El rengln principal es el primer nivel de bifurcacin, seguido por cuatro bifurcaciones adicionales.
instruccin de salida
instruccin de entrada
Se pueden anidar las bifurcaciones hasta en 6 niveles. La figura siguiente muestra una bifurcacin anidada. La instruccin de salida inferior se encuentra en una bifurcacin anidada que tiene tres niveles.
instruccin de entrada instruccin de salida
8-4
Condicin de rengln
El controlador evala las instrucciones de lgica de escalera segn la condicin de rengln que precede a la instruccin (condicin de entrada del rengln).
instruccin de entrada instruccin de salida
Slo las instrucciones de entrada afectan la condicin de entrada de rengln de instrucciones subsiguientes en el rengln. Si la condicin de entrada del rengln a una instruccin de entrada es verdadera, el controlador evala la instruccin y establece la condicin de salida del rengln para que coincida con los resultados de la evaluacin. Si la instruccin se evala como verdadera, la condicin de salida del rengln es verdadera. Si la instruccin se evala como falsa, la condicin de salida del rengln es falsa. Una instruccin de salida no cambia la condicin de salida del rengln. Si la condicin de entrada del rengln a una instruccin de salida es verdadera, la condicin de salida del rengln se establece como verdadera. Si la condicin de entrada del rengln a una instruccin de salida es falsa, la condicin de salida del rengln se establece como falsa.
8-5
Para desarrollar la lgica de escalera, realice las acciones siguientes: Seleccione las instrucciones requeridas Organice las instrucciones de entrada Organice las instrucciones de salida Seleccione un nombre de tag para un operando
activado (1) desactivado (0) Output Energize OTE Si las instrucciones a la izquierda (condicin de entrada de rengln) son: verdaderas falsas
8-6
todas las condiciones deben cumplirse en orden para que se realice En serie: la accin
condicin_1 condition_2 condition_3
Por ejemplo, si condition_1 Y condition_2 Y condition_3 cualquiera de varias condiciones debe cumplirse para que se realice En paralelo: la accin
condition_1
condition_3
hay una combinacin de lo anterior Por ejemplo: Si condition_1 Y condition_2 o bien Si condition_3 Y condition_2
En combinacin:
condition_1 condition_2
condition_3
CONSEJO
El controlador ejecuta todas las instrucciones en un rengln, independientemente de la condicin de entrada del rengln. Para obtener un rendimiento ptimo de una serie de instrucciones, coloque las instrucciones en secuencia desde la que ms probablemente es falsa a la izquierda hasta la que menos probablemente es falsa a la derecha.
instruccin que ms probablemente es FALSA instruccin que menos probablemente es FALSA
Cuando el controlador encuentra una instruccin falsa, ejecuta las instrucciones restantes en la serie con la condicin de entrada de rengln establecida en falso. Normalmente, una instruccin se ejecuta ms rpidamente cuando su condicin de entrada de rengln (rengln) es falso en lugar de verdadero.
8-7
Coloque las instrucciones de salida entre instrucciones de entrada, siempre que la ltima instruccin del rengln sea una instruccin de salida.
donde: x es la ubicacin del elemento en la primera dimensin. y es la ubicacin del elemento en la segunda dimensin. z es la ubicacin del elemento en la tercera dimensin.
8-8
EJEMPLO
Para acceder a: tag machine_on nmero de bit del tag one_shots miembro (bit) DN del temporizador running_seconds miembro mix del tag north_tank elemento 2 en la matriz recipe y elemento 1,1 en la matriz tanks
one_shots.1
running_seconds.DN
north_tank.mix
COP Copy File Source recipe[2] Dest tanks[1,1] Length 1 CLR Clear Dest north_tank.preset[2] 0
drill[1].part_advance
42357
8-9
Una nueva rutina contiene un rengln que est listo para las instrucciones.
cursor (azul) Cuando se aade una instruccin o bifurcacin, sta aparece a la derecha del cursor.
Use la barra de herramientas Language Element para aadir un elemento de lgica de escalera a la rutina.
otras instrucciones
Para aadir un elemento: Aada un elemento en la ubicacin del cursor Arrastre y coloque un elemento
8-10
Asignacin de operandos
Para asignar un operando, existen estas opciones: Cree y asigne un nuevo tag Seleccione un nombre o un tag existente Arrastre un tag desde la ventana Tags Asigne un valor inmediato (constante)
8-11
5.
6.
5. Seleccione el tipo de datos para el tag. 6. Si desea definir el tag como matriz, escriba el nmero de elementos en cada dimensin. 7. Seleccione
8.
8-12
Verificacin de la rutina
A medida que va programando la(s) rutina(s), verifique peridicamente su trabajo: 1. En la barra de herramientas del extremo superior de la ventana RSLogix 5000, haga clic en 2. Si hay errores listados en la parte inferior de la ventana: a. Vaya al primer error o advertencia, presione [F4]. b. Corrija el error de conformidad con la descripcin indicada en la ventana Results. c. Vaya al paso 1. 3. Para cerrar la ventana Results, presione [Alt] + [1].
Captulo
Use este procedimiento para obtener o usar informacin de estado acerca del controlador Logix5000.
Vea: Monitoreo de los indicadores de estado en la pgina 9-1 Obtener y establecer datos del sistema en la pgina 9-3 Determine la informacin de memoria del controlador en la pgina 9-6
usar contraseas especficas en la lgica para monitorear eventos especficos obtener o establecer valores del sistema obtener informacin acerca de la memoria del controlador
El controlador acepta contraseas de estado que usted puede usar en la lgica para monitorear eventos especficos: Las contraseas de estado no distinguen entre maysculas y minsculas. Debido a que los indicadores de estado pueden cambiar rpidamente, el software RSLogix 5000 no muestra el estado de los indicadores. (Por ejemplo, an cuando un indicador de estado est establecido, una instruccin que se refiera a dicho indicador no aparecer resaltada). No es posible definir un alias de tag en relacin con una contrasea.
9-2
9-3
El controlador almacena datos de sistema en los objetos. No hay un archivo de estado, a diferencia del controlador PLC-5. Use las instrucciones GSV/SSV para recibir y enviar datos de sistema del controlador que se almacenan en los objetos: La instruccin GSV recupera la informacin especificada y la coloca en el destino. La instruccin SSV establece el atributo especificado con datos del origen.
ATENCIN
Use la instruccin SSV con cuidado. El hacer cambios a los objetos puede causar una operacin inesperada del controlador o lesiones personales.
Para obtener o establecer un valor del sistema: 1. Abra el proyecto RSLogix 5000. 2. En el men Help, seleccione Contents. 3. Haga clic en la ficha Index. 4. Escriba gsv/ssv objects y haga clic en Display.
9-4
tiempo coordinado del sistema para los dispositivos en un chasis CST driver de comunicacin DF1 para el puerto en serie historial de fallos para un controlador atributos de una instruccin de mensaje estado, fallos y modo de un mdulo grupo de ejes informacin de fallo o tiempo de escn para un programa nmero de instancia de una rutina configuracin del puerto en serie propiedades o tiempo transcurrido de una tarea hora del reloj de un controlador DF1 FAULTLOG MESSAGE MODULE MOTIONGROUP PROGRAM ROUTINE SERIALPORT TASK WALLCLOCKTIME
6. En la lista de atributos del objeto, identifique el atributo al que desea acceder. 7. Cree un tag para el valor del atributo:
Si el tipo de datos del atributo es: Entonces: un elemento (por ej., DINT) ms de un elemento (por ej., DINT[7] ) Cree un tag para el atributo. A. Cree un tipo de datos definido por el usuario con una organizacin de datos igual a la usada por el atributo. B. Cree un tag para el atributo y use el tipo de datos del paso A..
9-5
Source (SSV)
En los siguientes ejemplos se obtiene la fecha y hora actual. Obtener un valor del sistema
EJEMPLO
En el primer escn, obtiene el atributo DateTime del objeto WALLCLOCKTIME y lo almacena en el tag wall_clock, el cual se basa en un tipo de datos definido por el usuario.
42370
Para obtener ms informacin, vea Logix5000 Controllers General Instructions Reference Manual, publicacin 1756-RM003.
9-6
La memoria del controlador se divide en memoria de E/S y memoria de expansin. La siguiente tabla muestra cmo el controlador usa cada tipo de memoria:
Los siguientes: tags de E/S tags producidos tags consumidos comunicacin mediante instrucciones Message (MSG) comunicacin con estaciones de trabajo comunicacin con tags encuestados (OPC/DDE) que usan el software RSLinx(1) tags que no son tags de E/S, producidos ni consumidos rutinas de lgica comunicacin con tags encuestados (OPC/DDE) que usan el software RSLinx(1)
(1)
memoria de expansin
Para comunicarse con tags encuestados, el controlador usa la memoria de E/S y la memoria de expansin.
Utilice este procedimiento para obtener la siguiente informacin acerca de la memoria de un controlador. IMPORTANTE El controlador retorna los valores en nmero de palabras de 32 bits. Para ver un valor en bytes, multiplquelo por 4.
memoria de E/S disponible memoria de expansin disponible total de memoria de E/S total de memoria de expansin bloque contiguo ms grande de memoria de E/S bloque contiguo ms grande de memoria de expansin
Para obtener informacin sobre memoria para el controlador: Obtener informacin sobre memoria proveniente del controlador Seleccione la informacin de memoria que desea Conversin de INT a DINT
9-7
9-8
Si usted desea el/la: cantidad de memoria de E/S disponible (palabras de 32 bits) cantidad de memoria de expansin disponible (palabras de 32 bits) controladores 1756-L55M16 solamentecantidad de memoria de expansin disponible adicional (palabras de 32 bits) tamao total de memoria de E/S (palabras de 32 bits) tamao total de memoria de expansin (palabras de 32 bits) controladores 1756-L55M16 solamentememoria de expansin adicional (palabras de 32 bits) controladores 1756-L55M16 solamentebloque contiguo ms grande de memoria de expansin disponible adicional (palabras de 32 bits) bloque contiguo ms grande de memoria de E/S disponible (palabras de 32 bits) bloque contiguo ms grande de memoria de expansin disponible (palabras de 32 bits)
Entonces copie estos elementos de matriz: INT_array[3] INT_array[4] INT_array[5] INT_array[6] INT_array[7] INT_array[8] INT_array[11] INT_array[12] INT_array[13] INT_array[14] INT_array[15] INT_array[16] INT_array[19] INT_array[20] INT_array[23] INT_array[24] INT_array[27] INT_array[28]
9-9
En el siguiente ejemplo, la instruccin COP produce el valor de 32 bits que representa la cantidad de memoria de E/S disponible, en palabras de 32 bits. EJEMPLO Conversin de INT a DINT Los elementos 3 de INT_array representan los 16 bits inferiores de la cantidad de memoria de E/S disponible. El elemento 4 representa los 16 bits superiores. Memory_IO_Free es un tag DINT ((32 bits) en el cual se almacena el valor de la cantidad de memoria de E/S disponible. Para copiar los 32 bits, especifique una longitud de 1. Esto indica a la instruccin que copie 1 vez el tamao del destino (32 bits). Esto copia ambos elementos 3 (16 bits) y el elemento 4 (16 bits) y coloca el resultado de 32 bits en Memory_IO_Free.
9-10
Notas:
Captulo
10
Asignacin de alias
Alias
Un alias le permite crear un tag que representa otro tag. Ambos tags comparten el mismo valor (es). Cuando el valor (es) de uno de los tags cambia, el otro tag tambin refleja el cambio. Use alias en las siguientes situaciones: programar lgica anteriormente a los diagramas de cableado asignar un nombre descriptivo a un dispositivo de E/S proporcionar un nombre ms simple para un tag complejo usar un nombre descriptivo para un elemento de una matriz
drill_1_depth_limit es un alias para Local:2:I.Data.3 (un punto de entrada digital). Cuando la entrada se activa, el alias tambin se activa.
drill_1_on es un alias para Local:0:O.Data.2 (un punto de salida digital). Cuando el alias se activa, el tag de salida tambin se activa.
La (C) indica que el tag est dentro del alcance del controlador.
Un uso comn de los alias es programar la lgica antes que los diagramas de cableado estn disponibles: 1. Para cada dispositivo de E/S cree un tag con un nombre que describa el dispositivo, tal como conveyor para el motor del transportador.
10-2
Asignacin de alias
2. Programe la lgica usando los nombres de tags descriptivos. (Puede incluso probar la lgica sin hacer conexin a la E/S). 3. Posteriormente, cuando los diagramas de cableado estn disponibles, aada los mdulos de E/S a la configuracin de E/S del controlador. 4. Finalmente, convierta los tags descriptivos a alias para sus puntos de E/S o canales respectivos. La siguiente lgica se program inicialmente usando nombres de tags descriptivos, tales como stop y conveyor_on. Posteriormente, los tags se convirtieron a alias para los dispositivos de E/S correspondientes.
stop es un alias para Local:2:I.Data.1 (el botn de paro en el panel del operador)
stop <Local:2:I.Data.1>
conveyor_on es un alias para Local:0:O.Data.0 (el contactor arrancador para el motor del transportador)
42351
Para mostrar (en la lgica) el tag al cual apunta un alias: 1. En el men Herramientas, seleccione Opciones. 2. Haga clic en la ficha Visualizacin de lgica de escalera. 3. Seleccione la casilla de verificacin Mostrar Informacin de alias de tag. 4. Haga clic en Aceptar.
Asignacin de un alias
Para asignar un tag como un alias para otro tag: 1. En el men Lgica, seleccione Editar tag.
Asignacin de alias
10-3
2.
42360
3.
2. Seleccione el alcance del tag. 3. A la derecha del nombre de tag, haga clic en la celda Alias para. La celda muestra w 4. Haga clic en w 5. Seleccione el tag que el alias representar:
Para: seleccionar un tag seleccionar un nmero de bit Haga lo siguiente: Haga doble clic en el nombre del tag. A. Haga clic en el nombre del tag. B. A la derecha del nombre del tag, haga clic en w . C. Haga clic en el bit requerido.
10-4
Asignacin de alias
Notas:
Captulo
11
Si desea que una instruccin tenga acceso a diferentes elementos en una matriz, use un tag en el subndice de la matriz (una direccin indirecta). Al cambiar el valor del tag, se cambia el elemento de la matriz a la que hace referencia la lgica.
Cundo el ndice es igual a 1, array[index] apunta aqu. array[0] array[1] array[2] array[3] Cundo el ndice es igual a 2, array[index] apunta aqu. 4500 6000 3000 2500
La siguiente tabla indica algunos usos comunes para una direccin indirecta:
Para: seleccionar una receta de una matriz de recetas cargar la configuracin de una mquina especfica desde una matriz de posibles configuraciones cargar parmetros o estados desde una matriz, un elemento a la vez registrar cdigos de error realizar varias acciones en un elemento de matriz y luego indexar al siguiente elemento Use un tag en el subndice y: Introduzca el nmero de la receta en el tag. Introduzca la configuracin deseada en el tag. A. Realice la accin requerida en el primer elemento. B. Use una instruccin ADD para incrementar el valor del tag y apunte al siguiente elemento en la matriz.
11-2
El siguiente ejemplo carga una serie de valores preseleccionados en un temporizador, un valor (elemento de matriz) a la vez. Ejecute una matriz paso a paso
EJEMPLO
La matriz timer_presets almacena una serie de valores preseleccionados para el temporizador en el siguiente rengln. El tag north_tank.step apunta el elemento de la matriz a usar. Por ejemplo, cuando north_tank.step es igual a 0, la instruccin carga timer_presets[0] en el temporizador (6000 ms).
MOV Move Source timer_presets[north_tank.step] 60000 Dest north_tank.step_time.PRE 60000 north_tank.step_time.DN / TON Timer On Delay Timer north_tank.step_time Preset 60000 Accum 0
EN DN
Cuando north_tank.step_time termina, el rengln incrementa north_tank.step al siguiente nmero y dicho elemento de la matriz timer_presets se carga en el temporizador.
north_tank.step_time.DN Add Source A ADD 1
Cuando north_tank.step excede el tamao de la matriz, el rengln restablece el tag para empezar en el primer elemento de la matriz. (El arreglo contiene los elementos 0 a 3).
EQU Equal Source A north_tank.step 0 Source B 4 MOV Move Source 0
Dest north_tank.step 0
42358
11-3
Expresiones
Tambin se puede usar una expresin para especificar el subndice de una matriz. Una expresin usa operadores tales como + o , para calcular un valor. El controlador calcula el resultado de la expresin y lo usa como el subndice de la matriz. Puede usar estos operadores para especificar el subndice de una matriz:
Operador: + Descripcin: sumar restar/cambiar signo multiplicar dividir Valor absoluto AND BCD a nmero entero Operador: MOD NOT OR SQR TOD TRN XOR Descripcin: Mdulo complemento OR raz cuadrada nmero entero a BCD Truncar O exclusivo
11-4
Notes:
Captulo
12
El almacenamiento de E/S en el bfer es una tcnica en la cual la lgica no manipula ni hace referencia directa a los tags de los dispositivos de E/S reales. En lugar de ello, la lgica usa una copia de los datos de E/S. Almacene E/S en el bfer en las siguientes situaciones: Para evitar que un valor de entrada o salida cambie durante la ejecucin de un programa. (Las E/S se actualizan de manera asncrona a la ejecucin de la lgica). Para copiar un tag de entrada o salida a un miembro de una estructura o elemento en una matriz.
Para almacenar E/S en el bfer, realice estas acciones: 1. En el rengln antes de la lgica para la funcin (es), copie o mueva los datos desde los tags de entrada requeridos a sus tags de bfer correspondientes. 2. En la lgica de la funcin (es), haga referencia a los tags de bfer. 3. En el rengln despus de la funcin (es), copie los datos desde los tags de bfer a los tags de salida correspondientes.
12-2
El siguiente ejemplo copia entradas y salidas a los tags de una estructura para una mquina perforadora. Almacenar E/S en el bfer
EJEMPLO
La rutina principal del programa ejecuta las siguientes subrutinas en esta secuencia.
La rutina map_inputs copia los valores de los dispositivos de entrada a sus correspondientes tags que se usan en la rutina drill.
_1791_8AC:I.Data[0].0 drill[1].depth_limit
_1791_8AC:I.Data[0].4
drill[1].home_limit
drill[1].depth_limit drill[1].retract
drill[1].home_limit /
drill[1].retract
La rutina map_outputs copia los valores de los tags de salida en la rutina drill a sus dispositivos de salida correspondientes.
drill[1].forward _1791_8AC:O.Data[0].0
drill[1].retract
_1791_8AC:O.Data[0].1
42369
El siguiente ejemplo utiliza la instruccin CPS para copiar una matriz de datos que representa los dispositivos de entrada de una red DeviceNet.
12-3
EJEMPLO
Local:0:I.Data almacena los datos de entrada para la red DeviceNet conectada al mdulo 1756-DNB de la ranura 0. Para sincronizar las entradas con la aplicacin, la instruccin CPS copia los datos de entrada a input_buffer. Mientras la instruccin CPS copia los datos, ninguna actualizacin de E/S puede cambiar los datos. Mientras se est ejecutando la aplicacin, sta utiliza los datos de entrada de input_buffer para sus entradas.
CPS Synchronous Copy File Source Local:0:I.Data[0] Dest input_buffer[0] Length 20
42578
12-4
Notas:
Captulo
13
Prueba de un proyecto
Prueba de un proyecto
Para probar un proyecto realice las siguientes acciones: Configure un driver de comunicacin Descargue el proyecto al controlador Seleccione un modo para el controlador Correccin de fallos mayores Guarde los cambios en lnea
Adems, puede realizar estas acciones: use instrucciones de control de programa para aislar la ejecucin de la lgica a rutinas o renglones especficos. Vea Logix5000 Controllers General Instructions Reference Manual, publicacin 1756-RM003. Fuerce valores de entrada o salida. Consulte Forzado de elementos lgicos en la pgina 18-1.
El software RSLogix 5000 requiere un variador de comunicacin para comunicarse con un controlador. Los variadores de comunicacin se configuran usando el software RSLinx. 1. Inicie el software RSLinx. 2. En el men Comunicaciones, seleccione Configurar variadores. 3. De la lista desplegable Tipos de variadores disponibles, seleccione un driver:
Seleccione este driver: Computadora de escritorio Dispositivos RS-232 DF1 1784-KT/KTX(D)/PKTX(D) 1784-KTC(X) Dispositivos Ethernet Drivers DeviceNet (drivers 1784-PCD/PCIDS, 1770-KFD, SDNPT) Computadora porttil Dispositivos RS-232 DF1 1784-PCMK 1784-PCC Dispositivos Ethernet Drivers DeviceNet (drivers 1784-PCD/PCIDS, 1770-KFD, SDNPT)
13-2
Prueba de un proyecto
5. Si desea asignar un nombre descriptivo al driver, cambie el nombre predeterminado. 6. Seleccione Aceptar. 7. Configure el variador:
Para este variador: en serie Haga lo siguiente: A. En la lista desplegable Puerto de com, seleccione el puerto en serie que usar el variador. B. De la lista desplagable Dispositivo, seleccione Logix 5550-Puerto en serie. C. Haga clic en Autoconfiguracin. A. En el cuadro Nombre de estacin, escriba un nombre que identificar a la computadora en la ventana RSWho. B. Seleccione el valor de interrupcin, la direccin de memoria y la direccin base de E/S. C. En el cuadro Direccin de red, escriba el nmero de nodo ControlNet que desea asignar a la computadora. A. En la lista desplegable Valor, seleccione el tipo de tarjeta de interface que usar el variador. B. En la lista Propiedades, seleccione el siguiente tem. C. En el cuadro Valor, escriba o seleccione el valor apropiado. D. Repita los pasos B. y C. para las propiedades restantes. Por cada dispositivo Ethernet en esta red con el cual desea comunicarse (por ej., cada mdulo 1756-ENET o controlador PLC-5E), aada una entrada de asignacin: A. En la columna Tipo de Host, escriba la direccin IP o nombre de host del dispositivo Ethernet. B. Desea comunicarse con otro dispositivo Ethernet en esta red? Si: S No Entonces: 1. Seleccione Aadir nuevo. 2. Vaya al paso A. Vaya al siguiente paso.
ControlNet
DH+
Ethernet
Prueba de un proyecto
13-3
Use este procedimiento para descargar un proyecto al controlador, a fin de poder ejecutar su lgica. Cuando usted descarga un proyecto, se pierden el proyecto y los datos que actualmente estn en el controlador, de haberlos. Si la revisin del controlador no coincide con la revisin del proyecto, el sistema le solicita que actualice el firmware del controlador. El software RSLogix 5000 le permite actualizar el firmware del controlador como parte de la secuencia de descarga. Cuando usted descarga un proyecto o actualiza el firmware, todos los servoejes activos se desactivan. Antes de descargar un proyecto o actualizar el firmware, asegrese de que esto no causar un movimiento inesperado de un eje.
ATENCIN
!
IMPORTANTE
Para actualizar el firmware de un controlador, primero instale el paquete de actualizacin de firmware. El paquete de actualizacin se enva en un CD suplementario junto con el software RSLogix 5000. Para descargar un paquete de actualizacin, vaya a www.ab.com. Seleccione Soporte de productos. Seleccione Actualizaciones de firmware.
1. Abra el proyecto RSLogix 5000 que desea descargar. 2. Del men Comunicaciones, seleccione Quin activo. 3. Expanda la red hasta que vea el controlador.
Para ampliar la red a un nivel superior, efecte una de las tareas siguientes: Haga doble clic en la red. Seleccione la red y presione la tecla . Haga clic en el signo +.
Estacin de trabajo
mdulo de comunicacin
backplane
controlador
13-4
Prueba de un proyecto
7. Seleccione Descargar. El proyecto se descarga al controlador y el software RSLogix 5000 entra en lnea. 8. Omita el resto del procedimiento. 9. Seleccione Actualizar firmware.
10.
11.
43056
10. Seleccione la revisin requerida para el controlador. 11. Seleccione Actualizar. Un cuadro de dilogo le solicitar que confirme la operacin de actualizacin. 12. Para actualizar el controlador, seleccione S. Ocurren los siguientes eventos: Se actualiza el firmware del controlador. Se descarga el proyecto al controlador. El software RSLogix 5000 entra en lnea.
Prueba de un proyecto
13-5
42627
A
42525
Si desea:
Entonces seleccione uno de estos modos: Marcha PROG Marcha REM programa Prueba
A B
poner las salidas en el estado comandado por la lgica del proyecto poner las salidas en su estado configurado para el modo Programa ejecutar (escanear) tareas cambiar el modo del controlador mediante el software descargar un proyecto programar una red ControlNet mientras est en lnea, editar el proyecto enviar mensajes enviar y recibir datos en respuesta a un mensaje de otro controlador producir y consumir tags
13-6
Prueba de un proyecto
Si el controlador entra al modo con fallo, ocurri un fallo mayor y el controlador detuvo la ejecucin de la lgica.
43057
1.
2. Utilice la informacin de la Lista de fallos recientes para corregir la causa del fallo. Consulte Cdigos de fallo mayor en la pgina A-1. 3. Haga clic en el botn Borrar mayores.
CONSEJO
Tambin puede borrar un fallo mayor usando el interruptor de llave del controlador. Ponga el interruptor de llave en Prog, luego en Marcha y de nuevo en Prog.
Si hace cambios al proyecto mientras est en lnea, guarde el proyecto de manera que el archivo del proyecto fuera de lnea coincida con el archivo del proyecto en lnea:
Si desea: guardar cambios en lnea pero no valores de datos en lnea Haga lo siguiente: A. En el men Comunicaciones, seleccione Ir fuera de lnea. B. En el men Archivo, seleccione Guardar.
Captulo
14
Use este procedimiento para transferir datos entre controladores (enviar o recibir datos). Puede transferir los datos usando cualquiera de estos mtodos: Producir y consumir un tag Enviar un mensaje
Si los datos: necesitan transmisin regular a una velocidad que usted especifica (por ej. determinstica) se envan cuando ocurre una condicin especfica en la aplicacin se recolectan de mltiples controladores (y los tags consumidos no son una opcin o no se desean)
14-11 14-13
Un tag producido enva sus datos a uno o ms tag consumidos (consumidores) sin usar lgica de escalera.
14-2
Usted puede producir y consumir tags con las siguientes combinaciones de controladores y redes.
Este controlador: SLC 500 PLC-5 ControlLogix FlexLogix SoftLogix Puede producir y consumir tags mediante esta red: Backplane ControlNet Ethernet
Los tags producidos y consumidos funcionan de la siguiente manera: Una conexin transfiere los datos entre controladores: Mltiples controladores pueden consumir (recibir) los datos. Los datos se actualizan en el intervalo entre paquetes solicitados (RPI), segn lo configurado por los tags de consumo. Cada tag producido o consumido usa el siguiente nmero de conexiones:
Cada: tag producido tag consumido Usa esta cantidad de conexiones: number_of_consumers + 1 1
EJEMPLO
Conexiones usadas por tags producidos o consumidos La produccin de un tag para 5 controladores (consumidores) usa 6 conexiones (5 consumidores + 1 = 6). La produccin de 4 tags para 1 controlador usa 8 conexiones: Cada tag usa 2 conexiones (1 consumidor + 1 = 2). 2 conexiones por tag x 4 tags = 8 conexiones El consumo de 4 tags desde un controlador usa 4 conexiones (1 conexin por tag x 4 tags = 4 conexiones).
14-3
14-4
6. Limite el tamao del tag a 500 bytes o menos. Si tiene que transferir ms de 500 bytes, cree lgica para transferir los datos en paquetes. Consulte Produccin de una matriz grande en la pgina 15-1. 7. Si usted produce el tag mediante una red ControlNet, puede ser necesario que el tag sea de un tamao menor que 500 bytes. Consulte Ajuste para limitaciones de amplitud de banda en la pgina 14-10. 8. Si desea producir varios tags para el mismo controlador: Agrupe los datos en uno o ms tipos de datos definidos por el usuario. (Esto utiliza menos conexiones que producir cada tag separadamente). Agrupe los datos segn las velocidades de actualizacin similares. (Para conservar el ancho de banda de la red, use un RPI mayor para datos menos crticos). Por ejemplo, puede crear un tag para los datos crticos y otro tag para los datos no crticos.
Producir un tag
1. Abra el proyecto RSLogix 5000 que contiene el tag que usted desea producir. 2. En el men Lgica, seleccione Editar tag. 3. Desde Alcance, seleccione name_of_controller(controlador). (Slo los tags que estn dentro del alcance del controlador pueden producir datos). 4. Seleccione el tag que producir los datos y presione las teclas ALT + Enter.
5.
6.
42352
14-5
5. Seleccione el botn de la opcin Producido. 6. Escriba o seleccione el nmero de controladores que consumirn (recibirn) el tag. 7. Haga clic en Aceptar. 8. Configure un tag en otro controlador (s) para consumir este tag producido. Consulte Consumir un tag producido en la pgina 14-5.
6. 7. 8. 9.
42353
10.
14-6
7. Seleccione el controlador que contiene el tag producido. 8. Escriba el nombre del tag producido. 9. Seleccione el mismo tipo de datos que el tag producido. 10. Escriba o seleccione el tiempo entre actualizaciones del tag: Use el valor ms alto permitido para la aplicacin. Si el controlador consume el tag mediante una red ControlNet, use un binario mltiple del tiempo de actualizacin de la red (NUT) ControlNet. Por ejemplo, si el NUT es 5 ms, escriba un rgimen de 5, 10, 20, 40 ms, etc. 11. Haga clic en Aceptar. 12. Si comparte el tag a travs de una red ControlNet, use el software RSNetWorx para ControlNet para programar la red.
IMPORTANTE
Si una conexin del tag consumido entra en fallo, todos los otros tags consumidos desde el controlador remoto dejan de recibir nuevos datos.
14-7
3. Abra el software RSNetWorx para ControlNet. 4. En la configuracin ControlNet para el controlador PLC-5C de destino: a. Inserte un Mensaje programado de recepcin. b. En el Tamao de mensaje, introduzca dos veces el nmero de REAL en el tag producido. Por ejemplo, si el tag producido contiene 10 REAL, introduzca 20 para el tamao de mensaje. CONSEJO Cuando un controlador PLC-5C consume un tag producido por un controlador Logix5000, almacena los datos en nmeros enteros consecutivos de 16 bits. El PLC-5C almacena los datos de coma flotante, el cual requiere 32 bits independientemente del tipo de controlador, segn lo siguiente: El primer nmero entero contiene los bits superiores (del extremo izquierdo) del valor. El segundo nmero entero contiene los bits inferiores (del extremo derecho) del valor. Esta configuracin contina para cada valor de coma flotante.
14-8
5. En el controlador PLC-5C, vuelva a construir los datos de coma flotante segn se ilustra en el siguiente ejemplo: EJEMPLO Cmo volver a construir un valor de coma flotante
Las dos instrucciones MOV invierten el orden de los nmeros enteros a la vez que stos se transfieren a otro lugar. Puesto que el destino de la instruccin COP es una direccin de coma flotante, usa dos nmeros enteros consecutivos (un total de 32 bits) y los convierte a un solo valor de coma flotante.
42354
14-9
Data Type
14-10
El formato de optimizacin de racks usa 8 bytes adicionales para cada ranura en su chasis. Los mdulos analgicos o los mdulos que envan o reciben datos de diagnsticos, de fusible, sello de hora o priorizacin requieren conexiones directas y no pueden usar el formato de rack optimizado. La seleccin Ninguno hace disponibles 8 bytes por ranura para otros usos, tales como tags producidos o consumidos. Separe el tag en dos o ms tags: Agrupe los datos segn las velocidades de actualizacin similares. Por ejemplo, puede crear un tag para los datos crticos y otro tag para los datos no crticos. Asigne un RPI diferente a cada tag. Cree lgica para transferir los datos en secciones ms pequeas (paquetes). Consulte Produccin de una matriz grande en la pgina 15-1.
14-11
Enviar un mensaje
Para organizar los datos para un mensaje, siga estas pautas: 1. Para cada mensaje, cree un tag para controlar el mensaje: Cree el tag dentro del alcance del controlador. Use el tipo de datos MESSAGE. El siguiente ejemplo muestra el uso del tipo de datos MESSAGE:
EJEMPLO
count_send
count_msg.en /
count_msg ...
EN DN ER
42188
2. Para los tags que los mensajes usarn (tags de origen o destino), cree los tags dentro del alcance del controlador. 3. En el controlador Logix5000, use el tipo de datos DINT para enteros siempre que sea posible: Los controladores Logix5000 ejecutan ms eficientemente y usan menos memoria cuando trabajan con enteros de 32 bits (DINT).
14-12
4. Si su mensaje es desde un controlador PLC-5 o SLC 500 y transfiere enteros (no REAL), use un bfer de INT: a. Cree un bfer para los datos (alcance del controlador) usando el tipo de datos INT[x]. donde: x es el nmero de enteros en el mensaje. (Para un entero solamente, omita [x].) b. Use el bfer en el mensaje. c. Use una instruccin FAL para mover los datos entre el bfer y la aplicacin. EJEMPLO Escribir valores enteros a un controlador PLC-5.
Continuamente mueve los valores en dint_array a int_buffer. Esto convierte los valores a enteros de 16 bits (INT). Luego la instruccin de mensaje enva int_buffer a un controlador PLC-5.
message.EN / fal_control RES FAL File Arith/Logical Control fal_control Length ? Position 0 Mode all Dest int_buffer[fal_control.pos] ?? Expression dint_array[fal_control.pos] EN DN ER MSG Type - Unconfigured Message Control EN DN ER
message ...
42192
message ...
EN DN ER
message.DN
fal_control RES
FAL File Arith/Logical Control fal_control Length ? Position 0 Mode all Dest dint_array[fal_control.pos] ?? Expression int_buffer[fal_control.pos]
EN DN ER
42192
14-13
Use el siguiente procedimiento para programar una instruccin de mensaje para comunicarse con mltiples controladores. Para reconfigurar una instruccin MSG durante el tiempo de ejecucin, escriba nuevos valores a los miembros del tipo de datos MESSAGE. IMPORTANTE En el tipo de datos MESSAGE, el miembro RemoteElement almacena el nombre del tag o direccin de los datos en el controlador que recibe el mensaje.
Si el mensaje: lee datos escribe datos Entonces RemoteElement es el: Elemento de origen Elemento de destino
Nombre de tag
+ message.Channel. + message.Rack.
A B
A. Si usted usa un asterisco [*] para designar el nmero de elemento de la matriz, el valor en B proporciona el nmero de elemento. B. El cuadro ndice slo est disponible cuando usted usa un asterisco [*] en el Elemento de origen o en el Elemento de destino. La instruccin substituye el valor del ndice por el asterisco [*].
14-14
Para enviar un mensaje a mltiples controladores: CONSEJO Establecer la configuracin de E/S Definir los elementos de origen y destino Crear el tipo de datos MESSAGE_CONFIGURATION Crear la matriz de configuracin Obtener el tamao de la matriz local Cargar las propiedades del mensaje para un controlador Configurar el mensaje Ir al siguiente controlador Reiniciar la secuencia
Para copiar los componentes anteriores desde un ejemplo de proyecto, abra la carpeta \RSLogix 5000\Proyectos\Ejemplos.
MSG_to_Multiple_Controllers.ACD
43055
peer_controller
Configuracin de I/O
14-15
14-16
Para almacenar las variables de configuracin para el mensaje a cada controlador, cree el siguiente tipo de datos definido por el usuario.
Tipo de datos:MESSAGE_CONFIGURATION
nombre descripcin Miembros nombre tipo de datos cadena cadena estilo descripcin MESSAGE_CONFIGURATION Propiedades de configuracin para un mensaje a otro controlador
Data Types
Definido por el usuario
Haga clic con el botn derecho del mouse y seleccione Nuevo Data Type.
14-17
Pasos:
1. Para guardar las propiedades de configuracin del mensaje, cree la siguiente matriz:
Nombre de tag message_config Tipo MESSAGE_CONFIGURATION[number ] alcance cualquiera
14-18
2. En la matriz message_config, introduzca la ruta de acceso al primer controlador que recibe el mensaje.
Nombre de tag valor {} {}
Haga clic con el botn derecho del mouse y seleccione Ir a Editor de ruta de mensaje.
Escriba la ruta de acceso al controlador remoto. o bien Desplcese hasta el controlador remoto.
3. En la matriz message_config, introduzca el nombre del tag o direccin de los datos en el primer controlador que va a recibir el mensaje.
Nombre de tag valor {} {}
{}
14-19
{}
1. 2. 3.
43051
1. La instruccin SIZE cuenta el nmero de elementos en local_array. 2. La instruccin SIZE cuenta el nmero de elementos en la Dimensin 0 de la matriz. En este caso, esa es la nica dimensin. 3. Local_array_length almacena el tamao (nmero de elementos) de local_array. Este valor le indica a un rengln subsiguiente cuando el mensaje ha sido enviado a todos los controladores y que comience con el primer controlador nuevamente.
Nombre de tag local_array_length Tipo DINT
14-20
4. 5.
6.
43051
1. Esta instruccin XIO condiciona al rengln para que enve continuamente el mensaje.
Nombre de tag mensaje Tipo MESSAGE alcance controlador
2. La instruccin COP carga la ruta de acceso para el mensaje. El valor de ndice determina cul elemento carga la instruccin desde message_config. Vea la Figura 14.1 en la pgina 14-17.
Nombre de tag ndice Tipo DINT alcance cualquiera
3. La instruccin carga 1 elemento desde message_config. 4. La instruccin COP carga el nombre del tag o direccin de los datos en el controlador que recibe el mensaje. El valor de ndice determina cul elemento la instruccin carga desde message_config. Vea la Figura 14.1 en la pgina 14-17. 5. La instruccin carga 1 elemento desde message_config. 6. Instruccin MSG
14-21
Configurar el mensaje
Aunque la lgica controla el elemento remoto y la ruta de acceso para el mensaje, el cuadro de dilogo Propiedades de message requiere una configuracin inicial.
IMPORTANTE
43054
Si desea:
Escriba o seleccione: el tipo de lectura que corresponde a los otros controladores tag o direccin que contiene los datos en el primer controlador 1 local_array[*] 0 el tipo de escritura que corresponde a los otros controladores local_array[*] 0 1 tag o direccin que contiene los datos en el primer controlador ruta de acceso al primer controlador Borre la casilla de verificacin Conexin Cach. Puesto que este procedimiento continuamente cambia la ruta de acceso al mensaje, es ms eficiente borrar esta casilla de verificacin.
leer (recibir) datos desde otros Tipo de message controladores Elemento de origen Nmero de elementos Tag de destino ndice escribir (enviar) datos a los otros controladores Tipo de message Tag de origen ndice Nmero de elementos Elemento de destino
Comunicacin
14-22
Ir al siguiente controlador
1. 2. 3.
43051
1. Despus que la instruccin MSG enva el mensaje... 2. La instruccin ADD incrementa el ndice. Esto permite que la lgica cargue las propiedades de configuracin para el siguiente controlador en la instruccin MSG. 3. La instruccin ADD incrementa el miembro LocalIndex de la instruccin MSG. Esto permite que la lgica cargue el valor desde el siguiente controlador al siguiente elemento de local_array..
Reiniciar la secuencia
1. 2. 3.
43051
1. Cuando el ndice es igual a local_array_length, el controlador envi el mensaje a todos los otros controladores. 2. Esta instruccin CLR establece el ndice en un valor igual a 0. Esto permite que la lgica cargue las propiedades de configuracin para el primer controlador en la instruccin MSG y que comience la secuencia de mensajes nuevamente. 3. La instruccin CLR establece el miembro LocalIndex de la instruccin MSG en un valor igual a 0. Esto permite que la lgica cargue el valor desde el primer controlador en el primer elemento de local_array..
Captulo
15
El controlador Logix5550 puede enviar hasta 500 bytes de datos a travs de una sola conexin programada. Esto corresponde a 125 elementos DINT o REAL de una matriz. Para transferir una matriz con ms de 125 DINT o REAL, use un tag producido/consumido para crear un paquete de datos. Puede usar el paquete para enviar la matriz en fragmentos a otro controlador. Cuando enva una matriz grande de datos en paquetes ms pequeos, hay que asegurarse de que la transmisin de un paquete sea concluida antes de transferir los datos a la matriz de destino debido a lo siguiente: Los datos producidos mediante el backplane ControlLogix se envan en segmentos de 50 bytes. La transmisin de datos ocurren asncronamente con el escn del programa. La lgica de esta seccin usa una palabra de confirmacin para asegurar que cada paquete contenga nuevos datos antes de que los datos se transfieran a la matriz de destino. La lgica tambin usa un valor de offset para indicar el elemento inicial del paquete dentro de la matriz. Debido a los elementos de offset y confirmados, cada paquete lleva 123 elementos de datos de la matriz, segn se muestra a continuacin:
Productor Consumidor
matriz
offset confirmacin
15-2
Adems, la matriz debe contener 122 elementos adicionales. Es decir, debe tener 122 elementos ms que el nmero mayor de elementos que usted desea transferir: Estos elementos sirven como bfer. Puesto que cada paquete contiene el mismo nmero de elementos, el bfer evita que el controlador copie ms all de los lmites de la matriz. Sin el bfer, esto ocurrira si el ltimo paquete contuviera menos de 123 elementos de datos reales.
1. Abra el proyecto RSLogix 5000 que producir la matriz. 2. En la carpeta Tags del controller, cree los tags siguientes:
P Nombre de tag array_ack Tipo DINT[2] DINT[125]
donde:
array_packet
array es el nombre para los datos que usted enva. 3. Convierta array_ack a un tag consumido:
Para: Controlador Nombre de tag remoto Especifique: nombre del controlador que est recibiendo el paquete array_ack Ambos controladores usan el mismo nombre para este dato compartido.
15-3
4. Cree los tags siguientes en la carpeta Tag de Controller o la carpeta de tags del programa que contendr la lgica de la transferencia:
Nombre de tag matriz array_offset array_size array_transfer_time array_transfer_time_max array_transfer_timer Tipo DINT[x] donde x es igual al nmero de elementos a transferir ms 122 elementos DINT DINT DINT DINT TIMER
donde: array es el nombre para los datos que usted enva. 5. En el tag array_size, introduzca el nmero de elementos de datos reales. (El valor de x del paso 4. menos los 122 elementos del bfer). 6. Cree o abra una rutina para la lgica que crear paquetes de datos. 7. Introduzca la lgica siguiente: Multiplicado por el tiempo necesario para enviar todo la matriz
TON Timer On Delay Timer array_transfer_timer Preset 10000000 Accum 0 EN DN
Cuando el valor de offset en array_ack[0] no es igual al valor de offset actual, pero array_ack[1] es igual a 999, el consumidor ha comenzado a recibir un paquete nuevo, por lo tanto los renglones mueven 999 al ltimo elemento del paquete. El consumidor espera hasta recibir el valor 999 antes de copiar el paquete a la matriz. Esto asegura que el consumidor tenga datos nuevos.
NEQ Not Equal Source A array_ack[0] 0 Source B array_packet[123] 0 EQU Equal Source A array_ack[1] 0 Source B -999 MOV Move Source -999
Dest array_packet[124] 0
15-4
Cuando el valor de offset en array_ack[0] es igual al valor de offset actual, el consumidor ha copiado el paquete a la matriz; por lo tanto, el rengln busca para ver si hay ms datos a transferir. Si el valor de offset ms 123 es menor que el tamao de la matriz, hay ms datos que transferir; por lo tanto, el rengln aumenta el offset en 123. De lo contrario, no hay ms datos que transferir; por lo tanto, el rengln restablece el valor de offset, registra el tiempo de transferencia y restablece el temporizador. En ambos casos, el rengln usa el valor de offset nuevo para crear un paquete nuevo de datos, aade el valor de offset nuevo al paquete y borra el elemento de confirmacin del paquete (packet[124]).
EQU Equal Source A array_ack[0] 0 Source B array_packet[123] 0 CMP Compare Expression (array_ack[0] + 123) < array_size ADD Add Source A array_packet[123] 0 Source B 123 Dest CMP Compare Expression (array_ack[0] + 123) >= array_size array_offset 0 CLR Clear Dest array_offset 0 MOV Move Source array_transfer_timer.ACC 0 Dest array_transfer_time 0 array_transfer_timer RES COP Copy File Source array[array_offset] Dest array_packet[0] Length 123 MOV Move Source array_offset 0 Dest array_packet[123] 0 CLR Clear Dest array_packet[124] 0
Si el tiempo de transferencia actual es mayor que el tiempo de transferencia mximo, ste se actualiza. Esto mantiene un registro del tiempo mximo necesario para transferir los datos.
GRT Greater Than (A>B) Source A array_transfer_time 0 Source B array_transfer_time_max 0 MOV Move Source array_transfer_time 0 Dest array_transfer_time_max 0
42355
15-5
8. Abra el proyecto RSLogix 5000 que consumir la matriz. 9. En la carpeta Tag de Controller, cree los tags siguientes:
P Nombre de tag array_ack array_packet Tipo DINT[2] DINT[125]
donde: array es el nombre para los datos que usted enva. Use el mismo nombre que en el controlador que produce (paso 2.). 10. Convierta array_packet a un tag consumido:
Para: Controlador Nombre de tag remoto Especifique: nombre del controlador que est enviando el paquete array_packet Ambos controladores usan el mismo nombre para este dato compartido.
Vase Consumir un tag producido en la pgina 14-5. 11. Cree los tags siguientes en la carpeta Tag de Controller o la carpeta de tags del programa que contendr la lgica de la transferencia:
Nombre de tag arreglo array_offset Tipo DINT[x] donde x es igual al nmero de elementos a transferir ms 122 elementos DINT
donde: array es el nombre para los datos que usted enva. 12. Cree o abra una rutina para la lgica que mover los datos desde los paquetes a la matriz de destino.
15-6
13. Introduzca la lgica siguiente: Cuando el valor de offset en array_packet[123] es diferente que el valor de offset en array_ack[0], el controlador ha comenzado a recibir un paquete nuevo de datos; por lo tanto, el rengln busca el valor de 999 en el ltimo elemento del paquete. Si el ltimo elemento del paquete es igual a 999, el controlador ha recibido un paquete entero de datos nuevos y comienza la operacin de copia: El valor de offset se transfiere del paquete a array_offset. Las instrucciones COP copian los datos del paquete a la matriz de destino a partir del valor de offset. El valor de offset se transfiere a array_ack[0], lo cual indica que ha concluido la operacin de copia. Array_ack[1] se pone a cero y espera para indicar la llegada de un paquete nuevo. Si el ltimo elemento del paquete no es igual a 999, es posible que la transferencia del paquete no haya concluido, por lo tanto 999 se transfiere a array_ack[1]. Esto indica al productor que retorne el valor de 999 en el ltimo elemento del paquete para verificar la transmisin del paquete.
NEQ Not Equal Source A array_packet[123] 0 Source B array_ack[0] 0 EQU Equal Source A array_packet[124] 0 Source B -999 MOV Move Source array_packet[123] 0 Dest array_offset 0 COP Copy File Source array_packet[0] Dest array[array_offset] Length 123 MOV Move Source array_packet[123] 0 Dest array_ack[0] 0 CLR Clear Dest array_ack[1] 0 NEQ Not Equal Source A array_packet[124] 0 Source B -999 MOV Move Source -999
Dest array_ack[1] 0
42356
15-7
La transferencia de una matriz grande en paquetes ms pequeos mejora el rendimiento del sistema y es ms eficaz que otros mtodos de transferir datos: Se usan menos conexiones, a diferencia de separar los datos en mltiples matrices y enviar cada uno como un tag producido. Por ejemplo, una matriz con 5000 elementos necesita 40 conexiones (5000/125 = 40) usando matrices individuales. Se consiguen velocidades de transmisin ms rpidas usando este mtodo, a diferencia de usar una instruccin de mensaje para enviar todo la matriz. Se programa y se ejecutan los mensajes solamente durante la porcin de tiempo de procesamiento interno de la ejecucin de Logix5550. Como consecuencia, puede ser necesario un plazo sumamente largo para concluir la transferencia. Usted puede mejorar el tiempo de transferencia aumentando el segmento del tiempo de procesamiento del sistema; no obstante, esto reduce el rendimiento de la tarea continua.
15-8
Notas:
Captulo
16
Use este procedimiento para intercambiar datos ASCII con un dispositivo a travs del puerto en serie del controlador. Por ejemplo, puede usar el puerto en serie para: leer caracteres ASCII desde un mdulo de bscula o lector de cdigos de barra enviar y recibir mensajes desde un dispositivo activado ASCII, tal como un terminal MessageView.
42237
Antes de usar este procedimiento: Configure el dispositivo ASCII para su aplicacin Para completar este procedimiento, realice las siguientes tareas: Conecte el dispositivo ASCII Configure el puerto en serie Configure el protocolo del usuario Cree tipos de datos de cadena Lea los caracteres desde el dispositivo Enve los caracteres al dispositivo
16-2
1. Para el puerto en serie del dispositivo ASCII, determine cules pines envan seales y cules reciben seales. 2. Conecte los pines de envo a los pines de recepcin correspondientes y conecte los puentes:
Si las comunicaciones: tienen handshaking
Dispositivo ASCII
1 CD 2 RDX 3 TXD 4 DTR COMMON 6 DSR 7 RTS 8 CTS 9
Controlador
1 CD 2 RDX 3 TXD 4 DTR COMMON 6 DSR 7 RTS 8 CTS 9
42231
no tienen handshaking
Dispositivo ASCII
1 CD 2 RDX 3 TXD 4 DTR COMMON 6 DSR 7 RTS 8 CTS 9
Controlador
1 CD 2 RDX 3 TXD 4 DTR COMMON 6 DSR 7 RTS 8 CTS 9
42232
3. Conecte el blindaje del cable a los dos conectores 4. Conecte el cable al controlador y al dispositivo ASCII.
16-3
1. Determine los siguientes parmetros de comunicacin para el dispositivo ASCII: a. b. c. d. velocidad en baudios bits de datos paridad bits de paro
42627
3. En la barra de herramientas En lnea, haga clic en el botn del controlador. 4. Haga clic en la ficha Puerto en serie.
5.
6.
42251
5. Seleccione Usuario. 6. Seleccione los parmetros para el dispositivo ASCII del paso 1.
16-4
7.
8. 9.
42251
Full Duplex Half Duplex Half Duplex Seleccione la casilla de verificacin Portador continuo. Borre la casilla de verificacin Portador continuo (opcin predeterminada).
8. Introduzca la cantidad de retardo (unidades de 20 ms) entre el tiempo de activacin (alto) de la seal RTS y el tiempo en que se envan los datos. Por ejemplo, un valor de 4 produce un retardo de 80 ms. 9. Introduzca la cantidad de retardo (unidades de 20 ms) entre el tiempo desde el envo del ltimo carcter y el tiempo en que se desactiva (bajo) la seal RTS. 10. Haga clic en Aplicar.
16-5
2. 3.
42252
2. Seleccione o introduzca un nmero mayor que o igual al nmero mayor de caracteres en una transmisin. (Una pauta general es dos veces el nmero de caracteres.) 3. Si usted usa las instrucciones ABL o ARL, introduzca los caracteres que indican el fin de los datos. Para obtener el cdigo ASCII de un carcter, vea la contraportada de este manual.
Si el dispositivo enva: un carcter de terminacin Entonces: A. En el cuadro de texto Carcter de terminacin 1, introduzca el cdigo ASCII hexadecimal para el primer carcter. B. En el cuadro de texto Carcter de terminacin 2, introduzca $FF. En los cuadros de texto Carcter de terminacin 1 y 2, introduzca el cdigo ASCII hexadecimal para cada carcter. Notas: Para los caracteres imprimibles, tales como 1 A, introduzca el carcter.
16-6
4. 5. 6.
7.
42252
4. Si usa la instruccin AWA, introduzca los caracteres que desea aadir a los datos.Para obtener el cdigo ASCII de un carcter, vea la contraportada de este manual.
Para aadir: un carcter Entonces: A. En el cuadro de texto Caracteres aadidos 1, introduzca el cdigo ASCII hexadecimal para el primer carcter. B. En el cuadro de texto Caracteres aadidos 2, introduzca $FF. En los cuadros de texto Caracteres aadidos 1 y 2, introduzca el cdigo ASCII hexadecimal para cada carcter. Notas: Para los caracteres imprimibles, tales como 1 A, introduzca el carcter.
dos caracteres
5. Si el dispositivo ASCII est configurado para el control de flujo XON/XOFF, seleccione la casilla de verificacin XON/XOFF. 6. Si el dispositivo ASCII es una CRT o est preconfigurado para la transmisin half-duplex, seleccione la casilla de verificacin Modo eco.
16-7
CRT
impresora
Impresora
Ignorar
16-8
Los caracteres ASCII se almacenan en tags que usan un tipo de datos de cadena.
42811
42812
Puede usar el tipo de datos STRING predeterminado. ste almacena hasta 82 caracteres.
o bien
Puede crear un nuevo tipo de datos de cadena para almacenar el nmero de caracteres definido.
IMPORTANTE
Tenga cuidado cuando cree un nuevo tipo de datos de cadena. Si posteriormente decide cambiar el tamao del tipo de datos de cadena, puede perder datos en cualquier tag que actualmente use ese tipo de datos.
Si usted: hace un tipo de datos de cadena ms pequeo hace un tipo de datos de cadena ms grande Entonces: Los datos se truncan. LEN no se cambia. El dato y LEN se restablecen a cero.
Entonces: Vaya a Lea los caracteres desde el dispositivo en la pgina 16-9. Vaya al paso 2.
no s
2. En el organizador del controller, haga clic con el botn derecho del mouse en Cadenas y seleccione Nuevo tipo de datos de Cadena 3. Escriba un nombre para el tipo de d-atos. 4. Escriba el mximo nmero de caracteres que este tipo de datos de cadena almacenar.
42233
5. Seleccione Aceptar.
4.
16-9
Por lo general, antes de leer el bfer, se recomienda usar una instruccin ACB o ABL para verificar que el bfer tenga los caracteres requeridos: Una instruccin ARD o ARL contina leyendo el bfer hasta que la instruccin lee los caracteres requeridos. Mientras una instruccin ARD o ARL lee el bfer, no se pueden ejecutar otras instrucciones del puerto en serie ASCII, excepto la instruccin ACL. El verificar que el bfer tenga los caracteres requeridos evita que la instruccin ARD o ARL interrumpa la ejecucin de las otras instrucciones del puerto en serie ASCII mientras el dispositivo de entrada enva los datos. Para obtener informacin adicional sobre las instrucciones del puerto en serie ASCII, consulte Logix5000 Controllers General Instructions Reference Manual, publicacin 1756-RM003.
IMPORTANTE
Si no est familiarizado con la introduccin de lgica de escalera en un proyecto RSLogix 500, primero revise Programacin de rutinas en la pgina 4-1.
42235a
3. Introduzca 0. (El puerto en serie es el canal 0). 4. Introduzca un nombre de tag para la instruccin ACB y defina el tipo de datos como SERIAL_PORT_CONTROL. 5. Introduzca el bit EN del tag ACB. (El tag del paso 4.)
16-10
7.
8.
11.
12.
42235a
7. Introduzca el miembro POS del tag ACB. (El tag del paso 4.) 8. Introduzca el nmero de caracteres en los datos. 9. Introduzca 0. 10. Introduzca un nombre de tag para almacenar los caracteres ASCII. Defina el tipo de datos como una cadena. 11. Introduzca un nombre de tag para la instruccin ARD y defina el tipo de datos como SERIAL_PORT_CONTROL. 12. Introduzca el nmero de caracteres en los datos.
16-11
EJEMPLO
Un lector de cdigos de barra enva cdigos de barra al puerto en serie (canal 0) del controlador. Cada cdigo de barra contiene 24 caracteres. Para determinar cundo el controlador recibe un cdigo de barras, la instruccin ACB cuenta continuamente los caracteres en el bfer.
ACB ASCII Chars in Buffer Channel 0 SerialPort Control bar_code_count Character Count 0
bar_code_count.EN /
EN DN ER
Cuando el bfer contiene por lo menos 24 caracteres, el controlador ha recibido un cdigo de barras. La instruccin ARD mueve el cdigo de barras al tag bag_bar_code.
GEQ Grtr Than or Eql (A>=B) Source A bar_code_count.pos 0 Source B 24 ARD ASCII Read Channel Destination SerialPort Control String Length Characters Read EN 0 bag_bar_code '' bar_code_read 24 0 DN ER
42227
16-12
42235
15. Introduzca 0. 16. Introduzca un nombre de tag para la instruccin ABL y defina el tipo de datos como SERIAL_PORT_CONTROL. 17. Introduzca el bit EN del tag ABL. (El tag del paso 16.) 18. Introduzca el siguiente rengln:
21. 19. 20.
22.
23.
42235
19. Introduzca el bit FD del tag ABL. (El tag del paso 16.) 20. Introduzca 0. 21. Introduzca un nombre de tag para almacenar los caracteres ASCII. Defina el tipo de datos como una cadena. 22. Introduzca un nombre de tag para la instruccin ARL y defina el tipo de datos como SERIAL_PORT_CONTROL. 23. Introduzca 0. Esto permite que la instruccin establezca la longitud de control de SerialPort igual al tamao del destino.
16-13
EJEMPLO
Continuamente prueba el bfer para determinar si hay un mensaje proveniente del terminal MessageView. Puesto que cada mensaje termina en un retorno de carro ($0D), el retorno de carro se configura como el carcter de terminacin en el cuadro de dilogo Propiedades del controller, ficha Protocolo de usuario. Cuando ABL encuentra un retorno de carro, establece el bit FD.
MV_line.EN /
ABL ASCII Test For Buffer Line Channel 0 SerialPort Control MV_line Character Count 0
EN DN ER
Cuando la instruccin ABL encuentra el retorno de carro (MV_line.FD se establece), el controlador retira los caracteres del bfer, hasta e incluyendo el retorno de carro, y los coloca en el tag MV_msg.
MV_line.FD ARL ASCII Read Line Channel Destination SerialPort Control String Length Characters Read
42226
16-14
Y: desea aadir uno o dos caracteres al fin de los datos no desea aadir caracteres desea aadir uno o dos caracteres al fin de los datos no desea aadir caracteres
6.
7.
42236a
3. Introduzca la(s) condicin(es) de entrada que determina(n) cundo se van a enviar los caracteres: Puede usar cualquier tipo de instruccin de entrada. La instruccin debe cambiar de falso a verdadero cada vez que se van a enviar los caracteres. 4. Introduzca 0. 5. Introduzca el nombre del tag que almacena los caracteres ASCII. Defina el tipo de datos como una cadena. 6. Introduzca un nombre de tag para la instruccin AWA y defina el tipo de datos como SERIAL_PORT_CONTROL. 7. Introduzca el nmero de caracteres que se envan. Omita los caracteres aadidos por la instruccin.
16-15
EJEMPLO
Cuando la temperatura excede el lmite alto (temp_high est activado), la instruccin AWA enva cinco caracteres desde el tag string[1] a un terminal MessageView. El $14 cuenta como un carcter. Es el cdigo hex del carcter Ctrl-T. La instruccin tambin enva (aade) los caracteres definidos en el protocolo de usuario. En este ejemplo, la instruccin AWA enva un retorno de carro ($0D), el cual indica el fin del mensaje.
temp_high
AWA ASCII Write Append Channel Source SerialPort Control String Length Characters Sent
42229
16-16
13.
14.
42236b
10. Introduzca la(s) condicin(es) de entrada que determina(n) cundo se van a enviar los caracteres: Puede usar cualquier tipo de instruccin de entrada. La instruccin debe cambiar de falso a verdadero cada vez que se van a enviar los caracteres. 11. Introduzca 0. 12. Introduzca el nombre del tag que almacena los caracteres ASCII. Defina el tipo de datos como una cadena. 13. Introduzca un nombre de tag para la instruccin AWT y defina el tipo de datos como SERIAL_PORT_CONTROL. 14. Introduzca el nmero de caracteres que se envan.
EJEMPLO
Cuando la temperatura llega al lmite bajo (temp_low est activado), la instruccin AWT enva nueve caracteres desde el tag string[2] a un terminal MessageView. (El $14 cuenta como un carcter. Es el cdigo hex del carcter Ctrl-T.
AWT ASCII Write Channel Source SerialPort Control String Length Characters Sent EN 0 string[2] '$142224\01$r' temp_low_write 9 9 DN ER
temp_low
42229
16-17
21.
22.
20.
42236c
17. Introduzca la(s) condicin(es) de entrada que determina(n) cundo se van a enviar los caracteres: Puede usar cualquier tipo de instruccin de entrada. La instruccin debe cambiar de falso a verdadero cada vez que se van a enviar los caracteres. 18. Introduzca 0. 19. Introduzca el nombre del tag que almacena los caracteres ASCII. Defina el tipo de datos como una cadena. 20. Introduzca un nombre de tag para la instruccin AWA y defina el tipo de datos como SERIAL_PORT_CONTROL. 21. Introduzca el miembro LEN del tag Source. (El tag del paso 19.) 22. Introduzca el miembro LEN de la instruccin AWA. (El tag del paso 20.)
16-18
EJEMPLO
Cuando la alarma est activada, la instruccin AWA enva los caracteres en alarm_msg y aade un carcter de terminacin. Puesto que el nmero de caracteres en alarm_msg vara, el rengln primero transfiere la longitud de alarm_msg (alarm_msg.LEN) a la longitud de la instruccin AWA (alarm_write.LEN). En alarm_msg, el $14 cuenta como un carcter. Es el cdigo hex del carcter Ctrl-T.
alarm
AWA ASCII Write Append Channel Source SerialPort Control String Length Characters Sent
42229
16-19
29.
30.
28.
42236d
25. Introduzca la(s) condicin(es) de entrada que determina(n) cundo se van a enviar los caracteres: Puede usar cualquier tipo de instruccin de entrada. La instruccin debe cambiar de falso a verdadero cada vez que se van a enviar los caracteres. 26. Introduzca 0. 27. Introduzca el nombre del tag que almacena los caracteres ASCII. Defina el tipo de datos como una cadena. 28. Introduzca un nombre de tag para la instruccin AWT y defina el tipo de datos como SERIAL_PORT_CONTROL. 29. Introduzca el miembro LEN del tag Source. (El tag del paso 27.) 30. Introduzca el miembro LEN de la instruccin AWT. (El tag del paso 28.)
16-20
EJEMPLO
Cuando MV_update est activado, la instruccin AWT enva los caracteres en MV_msg. Puesto que el nmero de caracteres en MV_msg vara, el rengln primero transfiere la longitud de MV_msg (MV_msg.LEN) a la longitud de la instruccin AWT (MV_write.LEN). En MV_msg, el $16 cuenta como un carcter. Es el cdigo hex del carcter Ctrl-V.
MV_update
AWT ASCII Write Channel Source EN DN ER 0 MV_msg '$161365\8\1$r' SerialPort Control MV_write String Length 10 Characters Sent 10
42229
16-21
IMPORTANTE
Esta ventana Explorador de cadenas muestra los caracteres hasta el valor del miembro LEN del tag de cadena. El tag de cadena puede contener datos adicionales que la ventana Explorador de cadenas no muestra.
1.
42616
2.
signo de dlar ($24) una comilla ($27) salto de lnea ($0A) nueva lnea ($0D$0A) alimentacin de impresora ($0C) retorno de carro ($0D) tab ($09)
42615
El nmero de caracteres que usted ve en la ventana. ste es el mismo que el miembro LEN del tag de cadena.
16-22
Notas:
Captulo
17
Use este procedimiento para: interpretar un cdigo de barras y realizar una accin basada en el cdigo de barras usar un peso de una bscula cuando el peso se enva en caracteres ASCII descodificar un mensaje de un dispositivo activado ASCII, tal como un terminal de operador crear una cadena para un dispositivo activado ASCII usando variables de su aplicacin
Si no est familiarizado con la introduccin de lgica de escalera en un proyecto RSLogix 500, primero revise "Programacin de rutinas en la pgina 4-1.
Dependiendo de la aplicacin, es posible que necesite realizar todas las tareas indicadas en este procedimiento. Use la siguiente tabla para determinar dnde comenzar:
Si desea: aislar informacin especfica de un cdigo de barras buscar en una matriz una cadena especfica de caracteres comparar dos cadenas de caracteres usar un peso de una bscula descodificar un mensaje proveniente de un terminal de operador crear una cadena para enviar a un terminal de operador Entonces vaya a: En la pgina:
Extraer una parte de un cdigo 17-2 de barras Buscar un cdigo de barras Verificar los caracteres del cdigo de barras Convertir un valor Descodificar un mensaje ASCII Crear una cadena 17-4 17-10 17-12 17-14 17-18
Para obtener informacin adicional sobre las instrucciones relacionadas con ASCII, consulte Logix5000 Controllers General Instructions Reference Manual, publicacin 1756-RM003.
17-2
Use los pasos siguientes para extraer una parte de un cdigo de barras a fin de realizar una accin basada en este valor. Por ejemplo, un cdigo de barras puede contener informacin acerca de un equipaje en un transportador de un aeropuerto. Para verificar el nmero de vuelo y destino del equipaje, se extraen los caracteres 10 - 18.
lnea area origen H 4 5 6 O 7 P 8 9 5 No. de vuelo 0 5 8 A destino M S 0 2 fecha 2 2 0 1
N 1
W A 2 3
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
M S
9 caracteres
Pasos:
1. Introduzca el siguiente rengln:
5. 3. 2. 6. 4.
42808
2. Introduzca el bit EM de la instruccin ARD que lee el cdigo de barras 3. Introduzca el tag cadena que contiene el cdigo de barras. 4. Introduzca el nmero de caracteres en la parte del cdigo de barras que desea verificar. 5. Introduzca la posicin del primer carcter en la parte del cdigo de barras que desea verificar. 6. Introduzca el nombre del tag que va a almacenar la parte del cdigo de barras que desea verificar. Defina el tipo de datos como una cadena.
17-3
EJEMPLO
En el transportador de equipaje de un aeropuerto, cada equipaje tiene un cdigo de barras. Los caracteres 10 - 18 del cdigo de barras son el nmero de vuelo y el aeropuerto de destino del equipaje. Despus que el cdigo de barras es ledo (bag_read.EM est activado) la instruccin MID copia el nmero de vuelo y el aeropuerto de destino al tag bag_flt_and_dest.
42808
17-4
Realice los pasos siguientes para devolver informacin especfica acerca de un tem basado en su cdigo de barras. Por ejemplo, en una operacin de clasificacin, una matriz de un tipo de datos definido por el usuario crea una tabla que muestra el nmero de ruta para cada tipo de producto. Para determinar en qu ruta encaminar un producto, el controlador busca el ID del producto (caracteres del cdigo de barras que identifican al producto) en la tabla.
Nombre de tag valor
sort_table
product_id GHI
Para buscar un cdigo de barras: CONSEJO Cree el tipo de datos PRODUCT_INFO Bsqueda de caracteres Identificar el nmero de ruta Rechazar caracteres incorrectos Introducir los ID de producto y nmeros de ruta
Para copiar los componentes anteriores desde un ejemplo de proyecto, abra la carpeta \RSLogix 5000\Proyectos\Ejemplos.
43039
17-5
Cree el siguiente tipo de datos definido por el usuario. + Controlador Your_Project + Tareas + Motion Groups
Tendencias
Tipo de datos:PRODUCT_INFO
nombre descripcin Miembros nombre tipo de datos cadena DINT Decimal estilo descripcin Caracteres ASCII que identifican el tem Destino del tem, basado en su ID PRODUCT_INFO Identifica el destino de un tem basado en una cadena ASCII de caracteres que identifican el tem
Types
definido por el usuario
Data
+ Product_ID
Ruta
Haga clic con el botn derecho del mouse y seleccione Nuevo Data Type.
17-6
Bsqueda de caracteres
1. 2. 3.
43038
1. La instruccin SIZE cuenta el nmero de elementos en la matriz sort_table. Esta matriz contiene el ID del producto para cada tem y el nmero de ruta correspondiente para el tem.
Nombre de tag sort_table Tipo PRODUCT_INFO[number_of_items ] donde: number_of_items es el nmero de tems que usted debe clasificar.
2. La instruccin SIZE cuenta el nmero de elementos en la Dimensin 0 de la matriz. En este caso, esa es la nica dimensin. 3. La instruccin SIZE establece la longitud de la instruccin FSC subsiguiente en un valor igual al tamao de la matriz sort_table. Esto asegura que la instruccin FSC busque el tamao exacto de la matriz.
Nombre de tag sort_table_search Tipo CONTROL
17-7
4. 5. 6.
43038
4. El tag sort_table_search controla la instruccin FSC, la cual busca los caracteres de cdigo de barras en la matriz sort_table. 5. Aunque la instruccin previa establece la longitud de esta instruccin, el software requiere un valor inicial para verificar el proyecto. 6. El tag product_id contiene los caracteres de cdigo de barras que identifican el tem. La instruccin FSC busca cada miembro Product_ID en la matriz sort_table hasta que encuentra una coincidencia con el tag. product_id.
Nombre de tag product_id Tipo cadena
17-8
43038
1. Cuando la instruccin FSC encuentra el ID del producto dentro de la matriz sort_table, la instruccin establece el bit FD. 2. Cuando la instruccin FSC encuentra una coincidencia, el miembro POS indica el nmero de elemento dentro de la matriz sort_table de la coincidencia. El miembro LANE correspondiente indica el nmero de ruta de la coincidencia. 3. En base al valor POS, la instruccin MOV mueve el nmero de ruta correspondiente al tag lane. El controlador usa el valor de este tag para encaminar el tem.
Nombre de tag lane Tipo DINT
4. Despus que la instruccin MOV establece el valor del tag lane, la instruccin RES restablece la instruccin FSC a fin de que pueda buscar el siguiente ID de producto.
17-9
43038
1. Si la instruccin FSC no encuentra el ID del producto dentro de la matriz sort_table, la instruccin establece el bit DN. 2. Cuando no se encuentra una coincidencia, la instruccin mueve 999 al tag lane. Esto indica al controlador que rechace o vuelva a encaminar el tem. 3. Despus que la instruccin MOV establece el valor del tag lane, la instruccin RES restablece la instruccin FSC a fin de que busque el siguiente ID de producto.
17-10
En esta tarea, usted usa una instruccin de comparacin (EQU, GEQ, GRT, LEQ, LES, NEQ) para verificar caracteres especficos. Los valores hexadecimales de los caracteres determinan si una cadena es menor o mayor que otra cadena. Cuando las dos cadenas estn clasificadas como en un directorio telefnico, el orden de las cadenas determina cul es mayor.
Caracteres ASCII 1ab
l e s s e r m a y o r q u e
Cdigos hexadecimales $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B
1b A AB B a ab
Pasos:
1. Introduzca un rengln y una instruccin de comparacin:
Para ver si la cadena es: igual a caracteres especficos diferente a caracteres especficos mayor que caracteres especficos igual o mayor que caracteres especficos menor que caracteres especficos igual o menor que caracteres especficos Introduzca esta instruccin: EQU NEQ GRT GEQ LES LEQ
17-11
2.
3.
6.
4.
42808
2. Introduzca el tag que almacena la parte del cdigo de barras que desea verificar. (El destino de Extraer una parte de un cdigo de barras, paso 6.) 3. Introduzca un nombre de tag para almacenar los caracteres contra los cuales desea realizar la prueba. Defina el tipo de datos como una cadena. 4. Haga doble clic en el rea de valor del origen B. 5. Escriba los caracteres ASCII contra los cuales va a realizar la prueba y seleccione Aceptar.
42615
EJEMPLO
Cuando bag_flt_and_dest es igual a gate[1], xfer{1] se activa. Esto encamina al equipaje hacia la puerta requerida.
42808
17-12
Convertir un valor
Realice los pasos siguientes para convertir la representacin ASCII de un valor a un valor DINT o REAL que usted pueda usar en la aplicacin. Las instrucciones STOD y STOR omiten cualquier control inicial o caracteres no numricos (excepto el signo menos ubicado delante de un nmero). Si la cadena contiene mltiples grupos de nmeros separados por delimitadores (por ej., / ), las instrucciones STOD y STOR convierten slo el primer grupo de nmeros.
Pasos:
1. De qu tipo de nmero es el valor?
Si: punto flotante (coma flotante) entero Entonces: Vaya al paso 2. Vaya al paso 7.
42810
3. Introduzca el bit EM de la instruccin ARD o ARL que ley el valor. 4. Introduzca el tag de cadena que contiene el valor. 5. Introduzca un nombre de tag para almacenar el valor para uso en su aplicacin. Defina el tipo de datos como REAL.
EJEMPLO
Despus de leer el peso de la bscula (weight_read.EM est activado), la instruccin STOR convierte los caracteres numricos en weight_ascii a un valor REAL y almacena el resultado en weight.
42810
17-13
42810
8. Introduzca el bit EM de la instruccin ARD o ARL que ley el valor. 9. Introduzca el tag de cadena que contiene el valor. 10. Introduzca un nombre de tag para almacenar el valor para uso en su aplicacin. Defina el tipo de datos como DINT.
EJEMPLO
Cuando MV_read.EM est activado, la instruccin STOD convierte el primer conjunto de caracteres numricos en MV_msg a un valor entero. La instruccin salta el carcter de control inicial ($06) y se detiene en el delimitador ( \ ).
42620
11. Tiene esta cadena otro valor que usted desea usar?
Si: s no Entonces: Vaya a Descodificar un mensaje ASCII en la pgina 17-14. Detngase. Ya termin con este procedimiento.
17-14
Use los pasos siguientes para extraer y convertir un valor de un mensaje ASCII que contiene mltiples valores. Por ejemplo, un mensaje puede ser similar a este:
primer valor segundo valor tercer valor
\ accin de tecla F
[CR]
carcter de control
delimitador delimitador
carcter de terminacin
42810
42810
17-15
4. 3.
5. 6.
42810
8.
9.
3. Introduzca el bit EM de la instruccin ARL que ley el valor. 4. Introduzca el tag de cadena que contiene el valor. 5. Introduzca un nombre de tag para almacenar el delimitador que marca el comienzo del valor. Defina el tipo de datos como una cadena. 6. Haga doble clic en el rea del valor de Bsqueda.
42615
7. Escriba el delimitador y seleccione Aceptar. 8. Introduzca la posicin en la cadena para iniciar la bsqueda. Inicialmente, puede usar 0 para buscar el primer delimitador. Para descodificar datos adicionales, aumente este valor para buscar el siguiente delimitador. 9. Introduzca un nombre de tag para almacenar la ubicacin del delimitador. Defina el tipo de datos como DINT.
17-16
10.
11.
42810
12.
13.
10. Introduzca el tag cadena que contiene el cdigo de barras. 11. Introduzca el mximo nmero de caracteres que este valor puede contener. 12. Introduzca el tag que almacena la posicin del delimitador. (El tag del paso 9.) 13. Introduzca un nombre de tag para almacenar este valor. Defina el tipo de datos como una cadena. 14. Qu tipo de instruccin de conversin us?
Si: STOR STOD Entonces: Vaya al paso 15. Vaya al paso 18.
17-17
15.
16.
42809
15. Introduzca el tag que almacena el valor. (El tag del paso 13.) 16. Introduzca un nombre de tag para almacenar el valor para uso en su aplicacin. Defina el tipo de datos como REAL. 17. Vaya al paso 20.
18. 19.
42809
18. Introduzca el tag que almacena el valor. (El tag del paso 13.) 19. Introduzca un nombre de tag para almacenar el valor para uso en su aplicacin. Defina el tipo de datos como DINT. 20. Tiene la cadena otro valor que usted desea usar?
Si: s Entonces: A. Aada 1 al resultado de la instruccin Buscar. (El tag del paso 9.) B. Repita los pasos 2 - 19. Detngase. Ya termin con este procedimiento.
no
17-18
Realice los pasos siguientes para crear una cadena proveniente de las variables de su aplicacin. Luego puede enviar la cadena a un dispositivo activado ASCII, tal como un terminal MessageView. En este procedimiento, usted crea una cadena que contiene dos variables. Por ejemplo, un terminal de operador puede requerir una cadena similar a esta:
[Ctrl-F] mensaje # \ direccin [CR]
carcter de control
delimitador
carcter de terminacin
Si necesita incluir ms variables, use la instruccin INSERTAR o CONCATENAR. Si necesita enviar un valor de punto flotante (coma flotante), use una instruccin RTOS en lugar de la instruccin DTOS. La cadena final no incluir el carcter de terminacin. Cuando enve la cadena, use una instruccin AWA para anexar automticamente el carcter de terminacin.
Pasos:
1. Introduzca el siguiente rengln:
2. 3. 4.
42813
2. Introduzca la(s) condicin(es) de entrada que determinan cundo crear la cadena. 3. Introduzca el tag DINT que contiene el primer valor para la cadena. 4. Introduzca un nombre de tag para almacenar la representacin ASCII del valor. Defina el tipo de datos como una cadena.
17-19
5.
6.
8.
42813
9.
10.
5. Introduzca un nombre de tag para almacenar los caracteres de control y delimitador para la cadena. Defina el tipo de datos como una cadena. 6. Haga doble clic en el rea de valor del origen A.
42615
7. Escriba el carcter de control y el delimitador y seleccione Aceptar. Para un carcter de control, escriba el cdigo hexadecimal del carcter. Para obtener una lista de cdigos hexadecimales, vea la contraportada de este manual. 8. Introduzca el tag que almacena la representacin ASCII del primer valor. (El tag del paso 4.) 9. Introduzca 2. Esto coloca el valor despus del primer carcter (carcter de control) en el origen A. 10. Introduzca un nombre de tag para almacenar la cadena parcialmente completada. Defina el tipo de datos como una cadena.
17-20
11.
12.
13.
14.
42813
15.
11. Introduzca el tag DINT que contiene el segundo valor para la cadena. 12. Introduzca un nombre de tag para almacenar la representacin ASCII del valor. Defina el tipo de datos como una cadena. 13. Introduzca el tag que almacena la cadena parcialmente completada. (El tag del paso 10.) 14. Introduzca el tag que almacena la representacin ASCII del segundo valor. (El tag del paso 12.) 15. Introduzca un nombre de tag para almacenar la cadena completada. Defina el tipo de datos como una cadena.
17-21
EJEMPLO
Para activar un mensaje en un terminal MessageView, el controlador enva al terminal un mensaje en el siguiente formato: [Ctrl-T] mensaje # \ direccin [CR] Cuando send_msg est activado, el rengln hace lo siguiente: La primera instruccin DTOS convierte el nmero del mensaje a caracteres ASCII. La instruccin INSERT inserta el nmero de mensaje (en ASCII) despus del carcter de control [Ctrl-T]. (El cdigo hexadecimal de Ctrl-T es $14.) La segunda instruccin DTOS convierte el nmero de nodo del terminal a caracteres ASCII. La instruccin CONCATENAR coloca el nmero de nodo (en ASCII) despus del signo diagonal inverso [ \ ] y almacena la cadena final en msg. Para enviar el mensaje, una instruccin AWA enva el tag msg y anexa el retorno de carro [CR].
42813
17-22
Notas:
Captulo
18
Use un forzado para anular datos que la lgica usa o produce. Por ejemplo, use forzados en las siguientes situaciones: probar y depurar la lgica revisar el cableado a un dispositivo de salida mantener funcionando temporalmente el proceso cuando un dispositivo de entrada tuvo un fallo Use los forzados slo como una medida temporal. No se han diseado para ser parte permanente de la aplicacin.
revisar informacin general acerca de los forzados de E/S, que incluya los elementos que se Cundo usar un forzado de E/S en la pueden forzar y cmo un forzado de E/S afecta el proyecto pgina 18-6 forzar un valor de E/S revisar informacin general acerca de cmo avanzar un paso en una transicin o una ruta simultnea avanzar un paso en una transicin activa avanzar un paso en una ruta simultnea forzada a falso revisar informacin general acerca de forzados de SFC, que incluya los elementos que pueden forzarse y cmo los forzados afectan la ejecucin del SFC forzar una transicin o ruta simultnea adentro de un SFC detener los efectos de un forzado Adicin de un forzado de E/S en la pgina 18-8 Cundo usar la opcin Step Through en la pgina 18-9 Funcin Step Through en una transicin o forzado de una ruta en la pgina 18-9 Cundo usar un forzado de SFC en la pgina 18-9 Adicin de un forzado de SFC en la pgina 18-12 Eliminacin o inhabilitacin de forzados en la pgina 18-13
18-2
Precauciones
ATENCIN
Un forzado puede causar un movimiento inesperado de la mquina, lo cual puede causar lesiones personales. Antes de usar un forzado, determine cmo el forzado afectar la mquina o el proceso, y mantenga al personal lejos del rea de la mquina. La habilitacin de forzados de E/S causa que cambien los valores de entrada, salida, producidos o consumidos. La habilitacin de forzados de SFC causa que la mquina o proceso pase a un estado o fase diferente. Cuando se eliminan los forzados pueden quedar forzados en estado habilitado. Si hay forzados habilitados y usted instala un forzado, el nuevo forzado se hace efectivo inmediatamente.
Habilitacin de forzados
Para que un forzado se haga efectivo, usted tiene que habilitar los forzados. Slo se pueden habilitar e inhabilitar los forzados a nivel de controlador. Es posible habilitar forzados de E/S y forzados de SFC separadamente o simultneamente. No es posible habilitar ni inhabilitar forzados para un mdulo, conjunto de tags o elemento de tag especficos.
IMPORTANTE
Si descarga un proyecto que tiene forzados habilitados, el software de programacin le indicar que habilite o inhabilite los forzados despus que haya concluido la descarga.
18-3
junto al
ATENCIN
Los cambios en los forzados pueden causar un movimiento inesperado de la mquina, lo cual puede causar lesiones personales. Antes de inhabilitar o eliminar forzados, determine cmo el cambio afectar la mquina o el proceso, y mantenga al personal lejos del rea de la mquina.
18-4
Antes de usar un forzado, determine el estado de los forzados para el controlador. El estado de los forzados se puede verificar de las siguientes maneras:
Para determinar el estado de: forzados de E/S Use cualquiera de los siguientes: Barra de herramientas Online Indicador LED FORCE Instruccin GSV forzados de SFC Barra de herramientas Online
Ficha Forces
Lo siguiente: Enabled
Significa: Si el proyecto contiene forzados de este tipo, stos estn anulando la lgica. Si usted aade un forzado de este tipo, el nuevo forzado se hace efectivo inmediatamente. Los forzados de este tipo estn inactivos. Si el proyecto contiene forzados de este tipo, stos no estn anulando la lgica. Por lo menos un forzado de este tipo existe en el proyecto. No existen forzados de este tipo en el proyecto.
Disabled
18-5
Instruccin GSV
IMPORTANTE El atributo ForceStatus muestra slo el estado de los forzados de E/S. No muestra el estado de los forzados de SFC.
El siguiente ejemplo muestra cmo usar una instruccin GSV para obtener el estado de los forzados.
18-6
Qu elementos forzar
Si desea:
anular un valor de entrada, un valor de salida, un tag producido o un tag consumido anular las condiciones de una transicin una vez para ir de un paso activo al siguiente paso anular una vez el forzado de una ruta simultnea y ejecutar los pasos de la ruta anular las condiciones de una transicin en un diagrama de funciones secuenciales ejecutar algunas pero no todas las rutas de una bifurcacin simultnea de un diagrama de funciones secuenciales
Use un forzado de E/S para realizar lo siguiente: anular un valor de entrada desde otro controlador (por ej., un tag consumido) anular un valor de entrada desde un dispositivo de entrada anular la lgica y especificar un valor de salida para otro controlador (por ej., un tag producido) anular la lgica y especificar el estado de un dispositivo de salida
IMPORTANTE
El forzado aumenta el tiempo de ejecucin de la lgica. A ms valores forzados, ms tiempo se requiere para ejecutar la lgica.
IMPORTANTE
Los forzados de E/S son retenidos por el controlador y no por la estacin de trabajo de programacin. Los forzados permanecen igual si se desconecta la estacin de trabajo de programacin.
Cuando usted fuerza un valor de E/S: Puede forzar todos los datos de E/S, excepto los datos de configuracin. Si el tag es una matriz o una estructura, tal como un tag de E/S, fuerce un elemento o miembro BOOL, SINT, INT, DINT o REAL. Si el dato es un valor SINT, INT o DINT, puede forzar todo el valor o puede forzar bits individuales dentro del valor. Los bits individuales pueden tener uno de los siguientes estados de forzado: sin forzado forzado activado forzado desactivado
18-7
Tambin puede forzar un alias de un miembro de estructura de E/S, de un tag producido o de un tag consumido. Un tag alias comparte el mismo valor de dato que su tag base, por lo tanto al forzar un tag alias tambin se fuerza al tag base asociado. Al eliminarse un forzado de un tag alias tambin se elimina el forzado del tag base asociado.
18-8
Para anular un valor de entrada, un valor de salida, un tag producido o un tag consumido, use un forzado de E/S:
Un forzado puede causar un movimiento inesperado de la mquina, lo cual puede causar lesiones personales. Antes de usar un forzado, determine cmo el forzado afectar la mquina o el proceso, y mantenga al personal lejos del rea de la mquina. La habilitacin de forzados de E/S causa que cambien los valores de entrada, salida, producidos o consumidos. Si hay forzados habilitados y usted instala un forzado, el nuevo forzado se hace efectivo inmediatamente. 1. Cul es el estado del indicador de forzados de E/S?
Si: apagado parpadeando Entonces, tome nota de lo siguiente: Actualmente no existen forzados de E/S. No hay forzados de E/S activos. Pero existe por lo menos un forzado en el proyecto. Cuando usted habilita los forzados de E/S, todos los forzados de E/S existentes tambin se hacen efectivos. Los forzados de E/S estn habilitados (activos). Cuando usted instala (aade) un forzado, ste se hace efectivo inmediatamente.
fijo
2. Abra la rutina que contiene el tag que desea forzar. 3. Haga clic con el botn derecho del mouse en el tag y seleccione Monitor Si es necesario, expanda el tag para mostrar el valor que desea forzar (por ej., el valor BOOL de un tag DINT). 4. Instale el valor forzado:
Para forzar un: valor BOOL valor que no es BOOL Haga lo siguiente: Haga clic con el botn derecho del mouse en el tag y seleccione Force ON o Force OFF. En la columna Force Mask para el tag, escriba el valor al cual desea forzar el tag. Luego presione la tecla Enter.
18-9
Para anular una transicin falsa una vez y ir de un paso activo al siguiente paso, use la opcin Step Through. Con la opcin Step Through: Usted no tiene que aadir, habilitar, inhabilitar o eliminar forzados. La prxima vez que el SFC llegue a la transicin, se ejecutar segn las condiciones de la transicin. Esta opcin tambin le permite anular una vez el forzado falso de una ruta simultnea. Cuando usted avanza un paso a travs del forzado, el SFC ejecuta los pasos de la ruta.
Para avanzar un paso en la transicin de un paso activo o un forzado de una ruta simultnea: 1. Abra la rutina SFC. 2. haga clic con el botn derecho del mouse en la transicin o en la ruta forzada y seleccione Step Through.
18-10
Si usted fuerza a falso una transicin dentro de una bifurcacin simultnea, el SFC permanecer en la bifurcacin simultnea, siempre que el forzado est activo (instalado y habilitado). Para salir de una bifurcacin simultnea, el ltimo paso de cada ruta debe ejecutarse por lo menos una vez y la transicin debajo de la bifurcacin debe ser verdadera. Al forzar una transicin a falso se evita que el SFC llegue al ltimo paso de una ruta. Cuando se elimina o inhabilita el forzado, el SFC puede ejecutar el resto de los pasos en la ruta.
Por ejemplo, para salir de esta bifurcacin, el SFC debe: ejecutar Step_011 por lo menos una vez pasar Tran_011 y ejecutar Step_012 por lo menos una vez determinar que Tran_012 es verdadera
18-11
Si usted fuerza a falso una ruta de una bifurcacin simultnea, el SFC permanecer en la bifurcacin simultnea, siempre que el forzado est activo (instalado y habilitado). Para salir de una bifurcacin simultnea, el ltimo paso de cada ruta debe ejecutarse por lo menos una vez y la transicin debajo de la bifurcacin debe ser verdadera. El forzar una ruta a falso evita que el SFC entre a una ruta y ejecute sus pasos. Cuando se elimina o inhabilita el forzado, el SFC puede ejecutar los pasos en la ruta.
18-12
Un forzado puede causar un movimiento inesperado de la mquina, lo cual puede causar lesiones personales. Antes de usar un forzado, determine cmo el forzado afectar la mquina o el proceso, y mantenga al personal lejos del rea de la mquina. La habilitacin de forzados de SFC causa que la mquina o proceso pase a un estado o fase diferente. Si hay forzados habilitados y usted instala un forzado, el nuevo forzado se hace efectivo inmediatamente. 1. Cul es el estado del indicador de forzados de SFC?
Si: apagado parpadeando Entonces, tome nota de lo siguiente: Actualmente no existen forzados de SFC. No hay forzados de SFC activos. Pero existe por lo menos un forzado en el proyecto. Cuando usted habilita los forzados de SFC, todos los forzados de SFC existentes tambin se hacen efectivos. Los forzados de SFC estn habilitados (activos). Cuando usted instala (aade) un forzado, ste se hace efectivo inmediatamente.
fijo
2. Abra la rutina SFC. 3. Haga clic con el botn derecho del mouse en la transicin o inicio de una ruta simultnea que usted desee forzar, y seleccione ya sea Force TRUE (slo para una transicin) o Force FALSE. 4. Estn habilitados los forzados de SFC? (Vea el paso 1).
Si: no s Entonces: En el men Logic, seleccione SFC Forcing Enable All SFC Forces. Luego seleccione Yes para confirmar. Detngase.
18-13
!
Si desea: detener un forzado individual detener todos los forzados de E/S y SFC detener todos los forzados de E/S pero dejar todos los forzados de SFC activos detener todos los forzados de SFC pero dejar todos los forzados de E/S activos
Y: dejar otros forzados habilitados y efectivos dejar los forzados en el proyecto eliminar los forzados del proyecto dejar los forzados de E/S en el proyecto eliminar los forzados de E/S del proyecto dejar los forzados de SFC en el proyecto eliminar los forzados de SFC del proyecto
Entonces: Eliminacin de un forzado individual Inhabilitacin de todos los forzados de E/S y SFC Eliminacin de todos los forzados de E/S y SFC Inhabilitacin de todos los forzados de E/S Eliminacin de todos los forzados de E/S Inhabilitacin de todos los forzados de SFC Eliminacin de todos los forzados de SFC
18-14
ATENCIN
3. Haga clic con el botn derecho del mouse en el tag que tiene el forzado y seleccione Monitor Si es necesario, expanda el tag para mostrar el valor que desea forzar (por ej., el valor BOOL de un tag DINT). Si es necesario, expanda el tag para mostrar el valor forzado (por ej., el valor BOOL de un tag DINT). 4. Haga clic con el botn derecho del mouse en el tag o elemento que tiene el forzado y seleccione Remove Force.
18-15
18-16
Notas:
Captulo
19
Si ocurre una condicin de fallo que es suficientemente severa para que el controlador se desactive, el controlador genera un fallo mayor y detiene la ejecucin de la lgica. Dependiendo de la aplicacin, es posible que usted no desee que todos los fallos mayores desactiven todo el sistema. En esos casos, se puede usar una rutina de fallo para borrar un fallo especfico y permitir que por lo menos parte del sistema contine funcionando. EJEMPLO Use una rutina de fallo En un sistema que usa nmeros de receta como direcciones indirectas, un nmero mal introducido podra producir un fallo mayor, tal como el tipo 4, cdigo 20. Para evitar que todo el sistema se desactive, una rutina de fallo borra los fallos mayores tipo 4, cdigo 20.
Para desarrollar una rutina de fallo: Crear el tipo de datos FAULTRECORD Creacin de una rutina de fallo Cmo borrar un fallo mayor Cmo borrar un fallo mayor durante el preescn Prueba de una rutina de fallo
19-2
Cree el siguiente tipo de datos definido por el usuario. ste almacena informacin acerca del fallo.
Tipo de datos:FAULTRECORD
nombre descripcin Miembros nombre Time_Low Time_High tipo de datos DINT DINT INT INT DINT[8] estilo Decimal Decimal Decimal Decimal Hex descripcin los 32 bits ms bajos del valor de sello de hora del fallo los 32 bits ms altos del valor de sello de hora del fallo tipo de fallo (program, I/O, etc) cdigo nico del fallo informacin especfica del fallo FAULTRECORD Almacena el atributo MajorFaultRecord o el atributo MinorFaultRecord del objeto PROGRAM.
Data Types
definido por el usuario
Haga clic con el botn derecho del mouse y seleccione Nuevo Data Type.
19-3
Una rutina de fallo le permite usar la lgica de escalera para borrar fallos especficos a fin de que el controlador contine la ejecucin. El lugar donde se coloca la rutina depende del tipo de fallo que desea borrar.
En el caso de un Haga lo siguiente: fallo debido a: ejecucin de una instruccin Cree una rutina de fallo a un programa: A. En el Organizador de controlador, haga clic con el botn derecho del mouse en name_of_program y seleccione Nueva routina. B. En el cuadro Nombre, escriba un nombre para la rutina de fallo (name_of_fault_routine ). C. De la lista desplegable Tipo, seleccione Escalera. D. Haga clic en Aceptar. E. Haga clic con el botn derecho del mouse en name_of_program y seleccione Propiedades. F. Haga clic en la ficha Configuracin. G. De la lista desplegable Fallo, seleccione name_of_fault_routine. H. Haga clic en Aceptar. Cree un programa y una rutina principal para el Administrador de fallos del controlador: A. En el Organizador del Controlador, haga clic con el botn derecho del mouse en Administrador de fallos del controlador y seleccione Nuevo programa. B. Tipo: name_of_program descripcin (opcional) C. Haga clic en Aceptar. D. Haga clic en el signo + ubicado junto al Administrador de fallos del controlador. E. Haga clic con el botn derecho del mouse en name_of_program y seleccione Nueva routina. F. Tipo: name_of_routine descripcin (opcional) G. De la lista desplegable Tipo, seleccione el lenguaje de programacin para la rutina. H. Haga clic en Aceptar. I. Haga clic con el botn derecho del mouse en name_of_program y seleccione Propiedades. J. Haga clic en la ficha Configuracin. K. De la lista desplegable Principal, seleccione name_of_routine L. Haga clic en Aceptar.
19-4
Para borrar un fallo mayor que ocurre durante la ejecucin del proyecto, introduzca la siguiente lgica en la rutina de fallo apropiada. (Vea Creacin de una rutina de fallo en la pgina 19-3.) Obtener el tipo y cdigo del fallo Verificacin de un fallo menor Borrar el fallo
1. 2.
42372
1. La instruccin GSV permite acceso al atributo MAJORFAULTRECORD de este programa. Este atributo almacena informacin acerca del fallo. 2. La informacin GSV almacena la informacin de fallo en el tag major_fault_record. Cuando introduzca un tag basado en una estructura, introduzca el primer miembro del tag.
Nombre de tag major_fault_record Tipo FAULTRECORD
19-5
42372
3.
4.
1. Esta instruccin EQU verifica un tipo de fallo especfico, tal como Program, I/O. En el Origen B, introduzca el valor para el tipo de fallo que desea borrar. 2. Esta instruccin EQU verifica un cdigo de fallo especfico. En el Origen B, introduzca el valor para el cdigo que desea borrar. 3. Esta instruccin CLR establece en cero el valor del tipo de fallo en el tag major_fault_record. 4. Esta instruccin CLR establece en cero el valor del cdigo de fallo en el tag major_fault_record.
Borrar el fallo
1. 2.
42372
1. La instruccin SSV escribe nuevos valores en el atributo MAJORFAULTRECORD de este programa. 2. La instruccin SSV escribe los valores contenidos en el tag major_fault_record. Puesto que los miembros Type y Code se establecen en cero, el fallo se borra y el controlador contina con la ejecucin.
19-6
Si el controlador entra en fallo inmediatamente despus de cambiar al modo Marcha, entonces examine la operacin preescn para determinar el fallo. Por ejemplo, el preescn examina direcciones indirectas (un tag sirve como puntero de un elemento dentro de una matriz). Si una direccin indirecta se inicializa durante el tiempo de ejecucin, es posible que sea muy grande para la matriz durante el preescn. Si el controlador encuentra una direccin indirecta fuera de rango durante el preescn, ocurrir un fallo mayor. Para dejar que el controlador complete el preescn, use la rutina de fallo del programa para capturar y borrar el fallo. Para borrar un fallo mayor que ocurre durante el preescn: Identificar cuando el controlador est en preescn Obtener el tipo y cdigo del fallo Verificacin de un fallo especfico Borrar el fallo
1.
1.
43063
1. Introduzca este rengln como primer rengln de la rutina principal del programa. 2. La rutina de fallo de este programa usa el estado de este bit para determinar si el fallo ocurri durante el preescn o el escn normal de la lgica. Durante el preescn, este bit est desactivado. (Durante el preescn, el controlador restablece todos los bits a los que hacen referencia las instrucciones OTE). Una vez que el controlador comienza a ejecutar la lgica, este bit siempre permanece activado.
Nombre de tag CPU_scanning Tipo BOOL
19-7
1. 2.
43064
1. La instruccin GSV tiene acceso al atributo MAJORFAULTRECORD de este programa. Este atributo almacena informacin acerca del fallo. 2. La instruccin GSV almacena la informacin de fallo en el tag major_fault_record. Cuando introduzca un tag basado en una estructura, introduzca el primer miembro del tag.
Nombre de tag major_fault_record Tipo FAULTRECORD
19-8
43064
4.
5.
1. Durante el preescn, los bits de todas las instrucciones OTE se desactivan y esta instruccin es verdadera. Una vez que el controlador comienza a ejecutar la lgica, esta instruccin siempre es falsa. 2. Esta instruccin EQU verifica un fallo de tipo 4, lo cual significa que una instruccin en este programa caus el fallo. 3. Esta instruccin EQU verifica un fallo de cdigo 20, lo cual significa que un subndice de matriz es demasiado grande o un valor POS o LEN de una estructura de control no es vlido. 4. Esta instruccin CLR establece en cero el valor del tipo de fallo en el tag major_fault_record. 5. Esta instruccin CLR establece en cero el valor del cdigo de fallo en el tag major_fault_record.
19-9
Borrar el fallo
Introduzca este rengln en la rutina de fallo del programa:
1.
2. 3.
43064
1. Durante el preescn, los bits de todas las instrucciones OTE estn desactivados y esta instruccin es verdadera. Una vez que el controlador comienza a ejecutar la lgica, esta instruccin siempre es falsa. 2. La instruccin SSV escribe nuevos valores al atributo MAJORFAULTRECORD de este programa. 3. La instruccin SSV escribe los valores contenidos en el tag major_fault_record. Puesto que los miembros Type y Code se establecen en cero, el fallo se borra y el controlador contina con la ejecucin.
19-10
Usted puede usar una instruccin para probar la rutina de fallo de un programa sin crear un error (es decir, simular un fallo): 1. Cree un tag BOOL que usar para inicializar el fallo. 2. En la rutina principal o en una subrutina del programa, introduzca el siguiente rengln:
es el: tag que usar para inicializar el fallo (paso 1.) la rutina de fallo del programa
EJEMPLO
Cuando est activado test_fault_routine, ocurre un fallo mayor y el controlador ejecuta Fault_Routine.
Captulo
20
Si desea suspender (desactivar) el controlador segn condiciones especficas de la aplicacin, cree un fallo mayor definido por el usuario. Con un fallo mayor definido por el usuario: Usted define un valor para el cdigo de fallo. El controlador maneja el fallo de la misma manera que otros fallos mayores: El controlador cambia al modo con fallo (fallo mayor) y detiene la ejecucin de la lgica de escalera. Las salidas se establecen en su estado configurado o valor para el modo con fallo.
EJEMPLO
Fallo mayor definido por el usuario Cuando input_value es mayor que 80, producir un fallo mayor y generar un cdigo de fallo de 999.
20-2
donde: name_of_fault_routine x
EJEMPLO
Cuando input_value es mayor o igual que 80, la ejecucin salta a name_of_fault_routine. Se produce un fallo mayor y el controlador entra al modo de fallo. Las salidas van al estado fallo. El cuadro de dilogo Propiedades del controller, ficha Major Fault, muestra el cdigo 999.
GEQ Grtr Than or Eql (A>=B) Source A input_value 0 Source B 80 JSR Jump to Subroutine Routine name name_of_fault_routine Input par 999
42373
Captulo
21
Si ocurre una condicin de fallo que no es suficientemente severa para que el controlador se desactive, el controlador genera un fallo menor. El controlador contina ejecutndose. No es necesario borrar un fallo menor. Para optimizar el tiempo de ejecucin y asegurar la precisin del programa, usted debe monitorizar y corregir los fallos menores.
Para usar la lgica de escalera para obtener informacin respecto a un fallo menor:
Haga lo siguiente: 1. Introduzca una instruccin GSV que obtenga el objeto FAULTLOG, atributo MinorFaultBits. 2. Monitorice el bit 6. 1. Introduzca una instruccin GSV que obtenga el objeto FAULTLOG, atributo MinorFaultBits. 2. Monitorice el bit 7. 1. Introduzca una instruccin GSV que obtenga el objeto FAULTLOG, atributo MinorFaultBits. 2. Monitorice el bit 9. 1. Introduzca una instruccin GSV que obtenga el objeto FAULTLOG, atributo MinorFaultBits. 2. Monitorice el bit 10. 1. Cree un tipo de datos definido por el usuario que almacenar la informacin de fallo. Asigne el nombre FaultRecord al tipo de datos y asigne los miembros siguientes: Nombre: TimeLow TimeHigh Tipo Cdigo: Info Tipo de datos: DINT DINT INT INT DINT[8] Estilo: Decimal Decimal Decimal Decimal Hex
2. Cree un tag que almacenar los valores del atributo MinorFaultRecord. Seleccione el tipo de datos del paso 1. 3. Monitorice S:MINOR. 4. Si S:MINOR est activado, use una instruccin GSV para obtener los valores del atributo MinorFaultRecord. 5. Si desea detectar un fallo menor causado por otra instruccin, restablezca S:MINOR. (S:MINOR permanece establecido hasta el final del escn).
21-2
EJEMPLO
Minor_fault_check tiene una temporizacin de 1 minuto (60000 ms) y luego se reinicia automticamente.
Cada minuto, minor_fault_check.DN se activa para un escn. Cuando esto ocurre, la instruccin GSV obtiene el valor del objeto FAULTLOG, atributo MinorFaultBits, y lo almacena en el tag minor_fault_bits. Puesto que la instruccin GSV slo se ejecuta una vez cada minuto, se reduce el tiempo de la mayora de escanes.
42373
21-3
El siguiente ejemplo verifica un fallo menor causado por una instruccin especfica. Verificacin de un fallo menor causado por una instruccin.
EJEMPLO
Multiplica value_a por 1000000 y verifica un fallo menor, tal como un desbordamiento matemtico: Para asegurarse que una instruccin previa no produjo el fallo, el rengln primero restablece S:MINOR. Luego el rengln ejecuta la instruccin multiplicar. Si la instruccin produce un fallo menor, el controlador establece S:MINOR. Si se establece S:MINOR, la instruccin GSV obtiene informacin acerca del fallo y restablece S:MINOR.
42373
21-4
Notas:
Captulo
22
El administrador de encendido es una tarea opcional que se ejecuta cuando el controlador se enciende en el modo Marcha.
42195
Use el administrador de encendido cuando desee realizar cualquiera de las siguientes actividades despus de una prdida de alimentacin elctrica y su respectiva restauracin: Evitar que el controlador regrese al modo Marcha. El Administrador de encendido producir un fallo mayor, tipo 1, cdigo 1, y el controlador entrar al modo de fallo. Realizar acciones especficas y luego continuar con la ejecucin normal de la lgica.
Los pasos para desarrollar una rutina de inicializacion son similares a los pasos para desarrollar una rutina de fallo: 1. Cree una estructura definida por el usuario que almacenar la informacin de fallo. Asigne el nombre FaultRecord al tipo de datos y asigne los miembros siguientes:
Nombre: TimeLow TimeHigh Tipo Cdigo Info Tipo de datos: DINT DINT INT INT DINT[8] Estilo: Decimal Decimal Decimal Decimal Hex
2. Cree un tag que almacenar la informacin de fallo. Seleccione el tipo de datos FaultRecord.
22-2
2. Crear y asignar una rutina principal (la rutina que se ejecuta primero en el programa).
Realizar acciones especficas cuando se restaure la alimentacin elctrica y luego continuar con la operacin normal
22-3
4. Introduzca la siguiente lgica para borrar el fallo: Obtiene informacin de fallo y la almacena en el tag major_fault (estructura definida por el usuario)
GSV Get system value CIP Object class PROGRAM CIP Object name THIS Attribute name MAJORFAULTRECORD Dest major_fault.TimeLow 0
Establece el tipo y cdigo de fallo en el tag major_fault a cero y establece MAJORFAULTRECORD en los nuevos valores, lo cual borra el fallo.
MOV Move Source 0 Move Source MOV 0 SSV Set system value CIP Object class PROGRAM CIP Object name THIS Attribute name MAJORFAULTRECORD Source major_fault.TimeLow 0
42375
Dest major_fault.Type 0
Dest major_fault.Code 0
22-4
Notas:
Captulo
23
La memoria no voltil almacena el contenido de la memoria de usuario al momento que usted almacena el proyecto. Los cambios hechos despus de almacenar el proyecto no se reflejan en la memoria no voltil. Si cambia el proyecto pero no guarda los cambios, los sobrescribir cuando cargue el proyecto desde la memoria no voltil. Si esto ocurre, tendr que cargar o descargar el proyecto para ir en lnea. Si desea almacenar cambios tales como ediciones en lnea, valores de tag o un programa de la red ControlNet, guarde el proyecto nuevamente despus de hacer los cambios.
Use este procedimiento para almacenar o cargar un proyecto utilizando la memoria no voltil de un controlador. Si el controlador pierde alimentacin elctrica y no tiene suficiente capacidad de batera, perder el proyecto en la memoria de usuario. La memoria no voltil le permite mantener una copia de su proyecto en el controlador. El controlador no necesita alimentacin elctrica para mantener esta copia. Se puede cargar la copia de la memoria no voltil a la memoria de usuario del controlador: al momento del encendido cada vez que no hay un proyecto en el controlador y ste se enciende en cualquier momento mediante el software RSLogix 5000
23-2
Dependiendo del controlador, una actualizacin de firmware puede o no borrar el proyecto almacenado en la memoria no voltil.
Si la memoria no voltil es: no extrable (no es una tarjeta CompactFlash) extrable (tarjeta CompactFlash) Entonces: Cuando usted actualiza el firmware del controlador se borra el contenido de la memoria no voltil (revisin 10.x o posterior). Cuando usted actualiza el firmware del controlador, el proyecto permanece en la memoria no voltil.
23-3
Los siguientes controladores Logix5000 tienen memoria no voltil para el almacenamiento de proyectos.
Tipo de controlador: CompactLogix5320 CompactLogix5330 ControlLogix5555 No. de catlogo: 1769-L20 1769-L30 1756-L55M22 1756-L55M23 1756-L55M24 ControlLogix5563 DriveLogix5720 FlexLogix5433 FlexLogix5434 Serie B
(1)
Revisin de firmware: 10.x o posterior 10.x o posterior 10.x o posterior 8.x o posterior 8.x o posterior 11.x o posterior 10.x o posterior 10.x o posterior 11.x o posterior
23-4
Si est usando una tarjeta 1784-CF64 Industrial CompactFlash en su controlador, siga estas pautas: Una tarjeta CompactFlash almacena slo el proyecto RSLogix 5000. No almacena el firmware del controlador. Las revisiones mayor y menor del proyecto deben ser iguales a las revisiones mayor y menor del controlador. De lo contrario, ocurrir un fallo mayor cuando intente cargar el proyecto desde la tarjeta CompactFlash.
IMPORTANTE
Utilice slo un controlador Logix5000 para almacenar un proyecto en una tarjeta CompactFlash. La tarjeta CompactFlash requiere un formato especial. No utilice un lector CompactFlash para leer desde, o escribir a la tarjeta con una computadora. Slo guarde un proyecto Logix5000 y no guarde otros datos en una tarjeta CompactFlash. Cuando se guarda un proyecto en una tarjeta CompactFlash, se sobrescribe todo el contenido de la tarjeta. En otras palabras, se borra todo lo que actualmente est en la tarjeta. Antes de actualizar el firmware del controlador, realice cualquiera de las siguientes acciones: Extraiga la tarjeta CompactFlash del controlador. Verifique la opcin Load Image del proyecto que est actualmente en la memoria no voltil del controlador. Si est establecida en On Power Up o On Corrupt Memory, entonces guarde primero el proyecto con la opcin Load Image establecida en User Initiated. Si no realice una de las acciones indicadas anteriormente, es posible que ocurra un fallo mayor cuando actualice el firmware del controlador. Esto sucede porque las opciones On Power Up o On Corrupt Memory hacen que el controlador cargue el proyecto desde la memoria no voltil. Luego, la desigualdad de firmware despus de la carga causa un fallo mayor. Despus de actualizar el firmware del controlador, guarde el proyecto nuevamente en la memoria no voltil. Esto asegurar que la revisin del firmware del proyecto en la memoria no voltil sea igual a la revisin del firmware del controlador.
23-5
Existen varias opciones respecto a cundo (en qu condiciones) cargar el proyecto nuevamente en la memoria de usuario (RAM) del controlador:
Entonces seleccione: Al momento del encendido Notas: Durante un ciclo de la alimentacin elctrica, se perdern los cambios en lnea, los valores de tags y el programa de la red que no se hayan almacenado en la memoria no voltil. Siempre puede usarse el software RSLogix 5000 para cargar el proyecto.
cada vez que no hay un proyecto en el controlador y usted activa o desconecta y vuelve a conectar la alimentacin elctrica al chasis. slo mediante el software RSLogix 5000
Almacenar un proyecto
En esta tarea, usted almacena un proyecto en la memoria no voltil del controlador. Esto sobrescribe todo el contenido de la memoria no voltil. Durante una operacin de almacenamiento, todos los servoejes activos se desactivan.Antes de almacenar un proyecto, asegrese de que esto no causar un movimiento inesperado de un eje.
ATENCIN
Antes de almacenar el proyecto: haga todas las ediciones requeridas de la lgica descargue el proyecto al controlador: Para guardar un proyecto: Configurar la operacin de guardar Guardar el proyecto Guardar el proyecto en lnea
23-6
3.
42627
3. En la barra de herramientas en lnea, haga clic en el botn Controller Properties. 4. Haga clic en la ficha Nonvolatile Memory.
5.
42865
5. Seleccione Load/Store.
23-7
El proyecto que actualmente est en la memoria no voltil del controlador (si hay un proyecto all).
6. 7. 8.
1.
6. Seleccione cundo (en qu condiciones) desea usted cargar el proyecto nuevamente a la memoria de usuario (RAM) del controlador. 7. En el paso 6, cul opcin de imagen de carga seleccion?
Si: Al momento del encendido Ante memoria corrupta Iniciado por el usuario Entonces: Seleccione el modo al que usted desea que vaya el controlador despus de una carga: programacin remota marcha remota Para ir a este modo despus de una carga, coloque el interruptor de llave del controlador en la posicin REM. Vaya al paso paso 8
8. Escriba una nota que describa el proyecto que est almacenando, si lo desea.
23-8
Guardar el proyecto
1. Seleccione < Store. Un cuadro de dilogo le solicitar que confirme la operacin de almacenamiento. 2. Para almacenar el proyecto, seleccione Yes. Durante el almacenamiento ocurrirn los siguientes eventos. En la parte frontal del controlador, el indicador LED OK muestra la siguiente secuencia: verde parpadeante rojo verde El software RSLogix 5000 sale fuera de lnea. Un cuadro de dilogo le indica que la operacin de almacenamiento est en curso. 3. Seleccione OK. Cuando termina la operacin de almacenamiento, usted permanece fuera de lnea.
23-9
Cargar un proyecto
En esta tarea, usted usa el software RSLogix 5000 para cargar el proyecto desde la memoria no voltil. Durante una operacin de carga, todos los servoejes activos se desactivan.Antes de cargar un proyecto, asegrese de que esto no causar un movimiento inesperado de un eje.
ATENCIN
!
Pasos:
42873
Si: No S
4.
42627
4. En la barra de herramientas en lnea, haga clic en el botn Controller Properties. 5. Haga clic en la ficha Nonvolatile Memory.
23-10
6.
42865
6. Seleccione Load/Store.
El proyecto que actualmente est en la memoria no voltil del controlador (si hay un proyecto all). El proyecto que actualmente est en la memoria de usuario (RAM) del controlador.
7.
7. Seleccione Load >. Un cuadro de dilogo le solicitar que confirme la operacin de carga. 8. Para cargar el proyecto desde la memoria no voltil, seleccione Yes.
23-11
Durante la carga ocurrirn los siguientes eventos. En la parte frontal del controlador, el indicador LED OK muestra la siguiente secuencia: rojo verde El software RSLogix 5000 sale fuera de lnea. Cuando termina la operacin de carga, usted permanece fuera de lnea. Si desea entrar en lnea, debe hacerlo manualmente.
Cuando el controlador carga un proyecto desde la memoria no voltil, proporciona la siguiente informacin: registra un fallo menor (tipo 7, cdigo 49) establece el objeto FAULTLOG, atributo MinorFaultBits, bit 7 Si desea que el proyecto indique que carg de la memoria no voltil, use la siguiente lgica de escalera:
En el primer escn del proyecto (S:FS est activado) la instruccin GSV obtiene el objeto FAULTLOG, atributo MinorFaultBits, y almacena el valor en minor_fault_bits. Si el bit 7 est activado, el controlador carg el proyecto desde su memoria no voltil.
42867
representa: El tag que almacena el objeto FAULTLOG, atributo MinorFaultBits. El tipo de datos es DINT El tag que indica que el controlador carg el proyecto desde su memoria no voltil.
23-12
Para eliminar un proyecto de la memoria no voltil, realice las acciones siguientes: Verificar la opcin Current Load Image Cambiar la opcin Load Image Borrar el proyecto del controlador Almacenar la imagen vaca
2.
42627
2. En la barra de herramientas en lnea, haga clic en el botn Controller Properties. 3. Haga clic en la ficha Nonvolatile Memory.
4.
42865
23-13
3.
42865
3. Seleccione Load/Store.
23-14
42874
4.
4. Seleccione < Store. Un cuadro de dilogo le solicitar que confirme la operacin de almacenamiento. 5. Para almacenar el proyecto, seleccione Yes. Durante el almacenamiento ocurrirn los siguientes eventos. En la parte frontal del controlador, el indicador LED OK muestra la siguiente secuencia: verde parpadeante rojo verde El software RSLogix 5000 sale fuera de lnea. Un cuadro de dilogo le indica que la operacin de almacenamiento est en curso. 6. Seleccione OK. Cuando termina la operacin de almacenamiento, usted permanece fuera de lnea. Si desea entrar en lnea, debe hacerlo manualmente.
Captulo
24
Use este procedimiento para controlar quin tiene acceso al proyecto. Las siguientes opciones estn disponibles para habilitar la seguridad de un proyecto:
Si desea: Impedir que otros vean la lgica dentro de una o ms rutinas de un proyecto Asignar varios niveles de acceso a un proyecto, como por ejemplo, permitir que: los ingenieros tengan acceso total el personal de mantenimiento haga cambios limitados los operadores slo vean la lgica y los datos Entonces: Vea la pgina:
Usar proteccin de origen de 24-1 rutina Use RSI Security Server para 24-12 proteger un proyecto
Para limitar quin tiene acceso a una rutina, use el software RSLogix 5000 para asignar una clave de origen a la rutina (proteger la rutina). Para proteger una rutina, primero tiene que activar la funcin para el software RSLogix 5000. Una vez que se ha protegido una rutina, la computadora requiere la clave de origen para editar, copiar o exportar la rutina. Usted tiene la opcin de hacer que una rutina sea visible o no visible sin la clave de origen. Independientemente de que la clave de origen est o no est disponible, usted siempre puede descargar el proyecto y ejecutar todas las rutinas. Se puede volver a obtener acceso a una rutina protegida desde una computadora especfica mediante cualquiera de los siguientes mtodos: Aada el archivo de claves de origen y seale el software RSLogix 5000 respecto a la ubicacin del archivo. Cree el archivo de claves de origen e introduzca manualmente el nombre de la clave de origen. El Controller Organizer muestra el estado de proteccin de una rutina:
24-2
Entonces: Se asign una clave de origen a la rutina. Para abrir la rutina, su computadora requiere la clave de origen de la rutina. Se asign una clave de origen a la rutina. Usted slo puede abrir y ver la rutina. No puede hacer cambios ni copiar el contenido de la rutina. Se asign una clave de origen a la rutina. Usted tiene acceso total a la rutina. Se asign una clave de origen a la rutina. Usted tiene acceso total a la rutina. Las personas que no tienen la clave de origen tambin pueden ver la rutina. No se asign una clave de origen a la rutina. Usted tiene acceso total a la rutina.
IMPORTANTE
Si el origen de una rutina no est disponible, no exporte el proyecto. Un archivo de exportacin (.L5K) contiene slo rutinas donde el cdigo de origen est disponible. Si usted exporta un proyecto donde el cdigo de origen no est disponible para todas las rutinas, no podr restaurar la totalidad del proyecto.
24-3
Para asignar y administrar las claves de origen, realice las acciones siguientes:
Seleccionar el nivel de proteccin para cada rutina Seleccionar el nmero de claves de origen Definir la clave o claves de origen
Seleccionar una ubicacin para el archivo en dnde almacenar las Activar la funcin de proteccin de origen de RSLogix 5000 Crear un archivo para las claves de origen Proteccin de una rutina con una clave de origen Limitar el acceso a las rutinas protegidas desde esta computadora? S Usar estas computadoras para proteger otras rutinas? No Inhabilitar la proteccin de origen de rutina Retirar el acceso a una rutina protegida S No
Efectuad
24-4
Seleccione la cantidad de claves de origen que satisfaga sus necesidades de proteccin y ofrezca a la vez el nivel de administracin de claves de origen que desea tener.
24-5
Seleccionar una ubicacin para el archivo en dnde almacenar las claves de origen
Un archivo de claves de origen (sk.dat) almacena las claves de origen. El archivo de claves de origen est separado de los archivos de proyecto RSLogix 5000 (.acd). El archivo de claves de origen se puede almacenar en cualquier carpeta que usted seleccione.
Para realizar la entrada de registro: 1. Obtenga el CD del software RSLogix 5000. 2. Desde el CD, ejecute el siguiente archivo: language \Tools\Source Protection Tool\Enable Protected Routine Config.reg donde:
24-6
language es el idioma del software. Por ejemplo, para el software en ingls, abra la carpeta ENU. El archivo Enable Protected Routine Config.reg hace la entrada de registro requerida.
4. Seleccione Yes.
5. 7.
5. Haga clic en 6. Seleccione una carpeta donde almacenar el archivo, y seleccione OK. 7. Seleccione OK. Un cuadro de dilogo le pregunta si desea crear el archivo de claves de origen (sk.dat). 8. Seleccione Yes.
24-7
4. 3.
7. 5. 6.
5. Escriba un nombre que desee usar como clave de origen. O seleccione una clave de origen existente de la lista desplegable. 6. Si una persona no tiene la clave de origen, desea usted que pueda abrir y ver la rutina?
Si: No S Entonces: Borre la marca de verificacin en el cuadro de verificacin Allow viewing of routine (opcin predeterminada). Seleccione el cuadro de verificacin Allow viewing of routine.
7. Seleccione OK. 8. Cuando haya asignado las claves de origen requeridas para el proyecto, haga clic en Close. 9. En el men File, seleccione Save.
24-8
1. Abra el proyecto RSLogix 5000 protegido. 2. En el men Tools, seleccione Security Configure Source Protection.
3.
3. Haga clic en Clear. Un cuadro de dilogo le pregunta si desea eliminar el archivo de claves de origen (sk.dat). 4. Desea retirar el archivo de claves de origen de la computadora (evitar acceso futuro al archivo)?
Si: S No Entonces: Seleccione Yes. Seleccione No.
1. Abra el proyecto RSLogix 5000 protegido. 2. En el men Tools, seleccione Security Configure Source Protection.
24-9
4.
3. Haga clic en Disable Ability To Configure Protected Routines. Un cuadro de dilogo le solicitar que confirme la accin. 4. Seleccione Yes. Un cuadro de dilogo le pregunta si desea eliminar el archivo de claves de origen (sk.dat). 5. Desea retirar el archivo de claves de origen de la computadora (evitar acceso futuro al archivo)?
Si: S No Entonces: Seleccione Yes. Seleccione No.
4. Seleccione Yes.
24-10
5. 7.
24-11
7.
7. Haga clic en View. Si el sistema le indica que seleccione un programa con el cual abrir el archivo, seleccione un programa de procesamiento de palabras, tal como Notepad. Se abre el archivo sk.dat. 8. Escriba el nombre de la clave de origen. Para introducir mltiples claves, escriba cada clave en una lnea diferente.
sk.dat - Notepad key1 key2 key3
24-12
El software RSI Security Server le permite controlar el acceso de personas a los proyectos RSLogix 5000. Con este software, usted personaliza el acceso a proyectos en base a los siguientes factores: el usuario que est actualmente registrado en la estacin de trabajo el proyecto RSLogix 5000 al cual est accediendo el usuario la estacin de trabajo desde la cual el usuario est accediendo al proyecto RSLogix 5000 Antes de usar el software Security Server para proyectos RSLogix 5000, configure el software: Instalacin del software RSI Security Server Configuracin de DCOM Habilitacin del software Security Server para RSLogix 5000 Importacin del archivo RSLogix5000Security.bak Definicin de acciones globales para los usuarios Definicin de acciones del proyecto para los usuarios Aadir usuarios Aadir grupos de usuarios Asignar acceso global al software RSLogix 5000 Asignar acciones de proyecto para nuevos proyectos RSLogix 5000
Una vez que el software Security Server est configurado para proyectos RSLogix 5000, realice las acciones siguientes para proteger un proyecto: Habilitar la seguridad para un proyecto RSLogix 5000 Asignar acceso a un proyecto RSLogix 5000 Regenerar el software RSLogix 5000, si es necesario
Consulte la publicacin Getting Results with Rockwell Softwares Security Server (Standalone Edition) la cual se enva con el software RSI Security Server.
24-13
Configuracin de DCOM
Consulte la publicacin Getting Results with Rockwell Softwares Security Server (Standalone Edition) la cual se enva con el software RSI Security Server.
Keys.ini SetSecKeys.exe
es el: el idioma del software. Por ejemplo, para el software en ingls, abra la carpeta ENU. versin del software, tal como v10
Se abre el cuadro de dilogo Locate Project File. Como opcin predeterminada, el archivo Keys.ini ya debe estar seleccionado. 2. Seleccione Open.
24-14
donde: Language
es el: el idioma del software. Por ejemplo, para el software en ingls, abra la carpeta ENU. versin del software, tal como v10
43077
24-15
actualizar el firmware de un controlador. Las siguientes acciones globales corresponden al software RSLogix 5000.
Tabla 24.2 Acciones globales Para que un usuario pueda: habilitar la seguridad para un controlador sin seguridad crear un nuevo proyecto RSLogix 5000 abrir un archivo .L5K en el software RSLogix 5000, lo cual crea un proyecto traducir un proyecto PLC o SLC a un archivo .L5K usar el software RSLogix 5000 para iniciar el software ControlFLASH y actualizar el firmware de un controlador Update Firmware Entonces otorgue acceso a las siguientes acciones: Secure Controller New Project
Use la siguiente hoja de trabajo para registrar las acciones globales que usted permitir para cada grupo de usuarios.
Tabla 24.3 Acciones globales para cada grupo de usuarios Este grupo de usuarios: Requiere este acceso: Secure Controller (Seguridad para el controlador) New Project (Nuevo proyecto) Update Firmware (Actualizar firmware)
24-16
43075
43078
24-17
Las siguientes acciones corresponden a un proyecto o grupo de proyectos RSLogix 5000 con seguridad habilitada.
Tabla 24.4 Acciones de proyecto Para que un usuario pueda: abrir un proyecto fuera de lnea copiar componentes de un proyecto exportar los tags de un proyecto Y: Y: Otorgue acceso a esta accin: View Proyect entrar en lnea y monitorear un proyecto Go online Maintain Project guardar un proyecto guardar un proyecto como un archivo .ACD abrir una revisin antigua de un proyecto comprimir un proyecto exportar un proyecto descargar o cargar un proyecto cambiar el modo del controlador cambiar la ruta de acceso al controlador imprimir un informe borrar fallos cambiar la hora del reloj crear, eliminar, editar y ejecutar una tendencia cambiar la configuracin de un mdulo de E/S cambiar la configuracin de una instruccin MSG Introducir, habilitar, inhabilitar y eliminar forzados cambiar los valores de tags actualizar firmware Full Access
realizar todas las acciones disponibles a travs del software RSLogix 5000 excepto inhabilitar un controlador que tiene la seguridad habilitada inhabilitar la seguridad de un controlador que tiene seguridad habilitada actualizar el firmware de un controlador
24-18
Use la hoja de trabajo que se proporciona en la pgina 24-18 para registrar las acciones de un proyecto que usted permitir para cada usuario o grupo de usuarios.
Tabla 24.5 Acciones de proyecto para proyectos que estn en el grupo New RSLogix 5000 Resources y para proyectos individuales Para este proyecto o grupo de proyectos: Nuevos recursos RSLogix 5000 New RSLogix 5000 Resources New RSLogix 5000 Resources New RSLogix 5000 Resources Este usuario o grupo de usuarios: Requiere este acceso: View Project Go online Maintain Project Full Access Unsecure Controller Update Firmware
24-19
Aadir usuarios
43084
43074
24-20
3. Siga estos pasos para esta tarea. Asigne las acciones que registr en la Tabla 24.3 en la pgina 24-15.
43076
24-21
3. Siga estos pasos para esta tarea. Asigne las acciones que registr en la Tabla 24.5 en la pgina 24-18.
43076
24-22
43069
4. Seleccione RSI Security Server. 5. Seleccione OK y luego Yes. En el software Security Server, el proyecto aparece como miembro del grupo New RSLogix 5000 Resources. Si el software Security Server ya est abierto, entonces, desde el men View, seleccione Refresh.
3.
43079
24-23
4. Seleccione Apply.
7. Siga estos pasos para esta tarea. Asigne las acciones que registr en la Tabla 24.5 en la pgina 24-18.
43076
24-24
Notas:
Apndice
Cdigos de fallo
Use este apndice para interpretar: Cdigos de fallo mayor Cdigos de fallos menores
Use la siguiente tabla para determinar la causa de un fallo mayor y su accin correctiva. El tipo y cdigo corresponden al tipo y cdigo mostrado en los lugares siguientes: Cuadro de dilogo Controller Properties, ficha Major Faults Objeto PROGRAM, atributo MAJORFAULTRECORD
Tabla A.1 Tipos y cdigos de fallos mayores Tipo: 1 3 Cdigo: Causa: 1 16 El controlador se activo en el modo Run. Mtodo de recuperacin: Ejecute el administrador de prdida de alimentacin elctrica.
Fall una conexin de mdulo de E/S requerida. Verifique que el mdulo de E/S est en el chasis. Verifique los requisitos de codificacin electrnica. Vea la ficha Major Fault del cuadro de dilogo Controller Properties y la ficha Connection del cuadro de dilogo Module Properties para obtener ms informacin sobre el fallo. Es posible que exista un problema con el chasis No recuperable reemplace el chasis. ControlBus. No se estableci por lo menos una conexin requerida antes de ir al modo Run. Se encontr una instruccin desconocida. Subndice de matriz demasiado grande, la estructura de control .POS o .LEN es no vlida. Estructura de control .LEN o .POS < 0. Los parmetros de la instruccin JSR no son iguales a los de la instruccin SBR o RET asociada. Una instruccin de temporizador tiene un valor acumulado o preseleccionado negativo. JMP a una etiqueta que no existe o fue eliminada. Un diagrama de funcin secuencial (SFC) llam a una subrutina y la subrutina trat de saltar nuevamente al SFC que la llam. Esto ocurre cuando el SFC usa una instruccin JSR o FOR para llamar a la subrutina. Espere que la luz de E/S del controlador cambie a color verde antes de cambiar al modo Run. Elimine la instruccin desconocida. Esto probablemente sucedi debido a un proceso de conversin del programa. Ajuste el valor para que est dentro del rango vlido. No exceda el tamao de la matriz ni sobrepase las dimensiones definidas. Ajuste el valor para que sea > 0. Pase el nmero apropiado de parmetros. Si se pasan demasiados parmetros, el exceso de parmetros se ignora sin que ocurra ningn error. Corrija el programa para que no cargue un valor negativo en un valor acumulado o preseleccionado de temporizador. Corrija el receptor de JMP o aada la etiqueta que falta. Elimine el salto al SFC que llam a la subrutina.
3 3 4 4 4 4
20 23 16 20 21 31
4 4 4
34 42 82
A-2
Cdigos de fallo
Tabla A.1 Tipos y cdigos de fallos mayores (Contina) Tipo: 4 4 4 6 Cdigo: Causa: 83 84 89 1 Los datos probabos no estaban dentro de los lmites requeridos. Overflow de pila. En una instruccin SFR, la rutina receptora no contiene el paso especfico. Caduc el temporizador de control (watchdog) de la tarea. La tarea del usuario no se termin en el perodo de tiempo especificado. Un error del programa caus un lazo infinito, o el programa es demasiado complejo para ejecutarse tan rpidamente como se especific, o una tarea de mayor prioridad est impidiendo que termine esta tarea. Fall el almacenamiento en la memoria no voltil. Mtodo de recuperacin: Modifique el valor para que est dentro de los lmites. Reduzca los niveles de anidamiento de subrutinas o el nmero de parmetros pasados. Corrija el receptor de SFR o aada el paso que falta. Aumente el temporizador de control (watchdog) de la tarea, reduzca el tiempo de ejecucin, aumente la prioridad de esta tarea, simplifique las tareas de prioridad ms alta, o mueva parte de los cdigos a otro controlador.
40
1. Vuelva a intentar guardar el proyecto en la memoria no voltil. 2. Si el proyecto no se guarda en la memoria no voltil, reemplace la tarjeta de memoria. Actualice el firmware del controlador al mismo nivel de revisin que el proyecto que se encuentra en la memoria no voltil.
42
La carga desde la memoria no voltil fall porque la revisin de firmware del proyecto en la memoria no voltil es diferente a la revisin de firmware del controlador. Se intent colocar el controlador en el modo Run con el interruptor de llave durante la descarga. La posicin actual excedi el lmite de fin de carrera positivo. La posicin actual excedi el lmite de fin de carrera negativo.
11
Mueva el eje en direccin negativa hasta que la posicin est dentro del lmite de fin de carrera y luego ejecute el comando Motion Axis Fault Reset. Mueva el eje en direccin positiva hasta que la posicin est dentro del lmite de fin de carrera y luego ejecute el comando Motion Axis Fault Reset.
11
11 11 11 11 11
3 4 5 6 7
La posicin actual excedi la tolerancia de error Mueva la posicin dentro del lmite de tolerancia y luego ejecute el de posicin. comando Motion Axis Fault Reset. Se interrumpi la conexin de canal A, B o Z de encoder. Se detect evento de ruido de encoder o las seales de encoder no estn en cuadratura. Se activ entrada de fallo del variador. Fallo en la conexin sncrona. Vuelva a conectar el canal de encoder y luego ejecute el comando Motion Axis Fault Reset. Corrija el cableado de encoder y luego ejecute el comando Motion Axis Fault Reset. Borre el fallo del variador y luego ejecute el comando Motion Axis Fault Reset. Primero ejecute el comando Motion Axis Fault Reset. Si esto no funciona, desenchufe el servomdulo y vuelva a enchufarlo. Si el fallo persiste, reemplace el servomdulo. Reemplace el mdulo. Primero ejecute el comando Motion Axis Fault Reset. Si esto no funciona, desenchufe el servomdulo y vuelva a enchufarlo. Si el fallo persiste, reemplace el servomdulo. El rgimen aproximado de actualizacin del grupo es demasiado alto para mantener una operacin correcta. Borre el tag de fallo del grupo, eleve el rgimen de actualizacin del grupo y luego borre el fallo mayor.
11 11
8 9
11
32
Cdigos de fallo
A-3
Use la siguiente tabla para determinar la causa de un fallo menor y su accin correctiva. El tipo y cdigo corresponden al tipo y cdigo mostrado en los lugares siguientes: Cuadro de dilogo Controller Properties, ficha Minor Faults Objeto PROGRAM, atributo MINORFAULTRECORD
Tabla A.2 Tipos y cdigos de fallos menores Tipo: 4 4 4 4 4 Cdigo: 4 7 35 36 51 Causa: Ocurri un overflow aritmtico en una instruccin. Mtodo de recuperacin: Corrija el programa examinando las operaciones aritmticas (orden) o ajustando los valores.
El tag de destino GSV/SSV era demasiado pequeo para Corrija el destino para que tenga espacio suficiente. contener todos los datos. Tiempo PID delta 0. El punto de ajuste PID est fuera de rango El valor LEN del tag de cadena es mayor que el tamao DATA del tag de cadena. Ajuste el tiempo PID delta para que sea > 0. Ajuste el punto de ajuste para que est dentro del rango. 1. Verifique que ninguna instruccin est escribiendo al miembro LEN del tag de cadena. 2. En el valor LEN, introduzca el nmero de caracteres que la cadena contiene. Cree un nuevo tipo de datos de cadena que sea suficientemente grande para la cadena de salida. Use el nuevo tipo de datos de cadena como tipo de datos para el destino. Haga uno de los siguientes: Reduzca el tamao del valor ASCII. Use un tipo de datos mayor para el destino. 1. Verifique que el valor de inicio est entre 1 y el tamao DATA del origen. 2. Verifique que el valor de inicio as como el valor de cantidad sean menores o iguales al tamao DATA del origen. Haga uno de los siguientes: Cambie el parmetro Control Line del puerto en serie. Elimine la instruccin AHL. Simplifique el (los) programa(s), o aumente el perodo o eleve la prioridad relativa, etc.
52
53
El nmero de salida se encuentra fuera de los lmites del tipo de datos de destino. El valor de inicio o cantidad no es vlido.
56
57
La instruccin AHL no se ejecut porque el puerto en serie est establecido en la opcin sin handshaking.
Superposicin de tareas peridicas La tarea peridica no concluy antes de que sea tiempo de que se ejecute nuevamente. Proyecto cargado desde la memoria no voltil. Ocurri un error desconocido mientras se realizaba el servicio del puerto en serie. La lnea CTS no es la correcta para la configuracin actual.
7 9 9
49 0 1
Comunquese con el personal de GTS. Desconecte y vuelva a conectar el cable del puerto en serie al controlador. Asegrese de que el cable est correctamente conectado.
A-4
Cdigos de fallo
Tabla A.2 Tipos y cdigos de fallos menores (Contina) Tipo: 9 Cdigo: 2 Causa: Error de lista de encuestas (poll). Se detect un problema con la lista de encuestas del maestro, tal como especificacin de ms estaciones que el tamao del archivo, especificacin de ms de 255 estaciones, tratar de indizar ms all del final de la lista o encuestar la direccin de difusin (STN #255). Mtodo de recuperacin: Verifique si existe alguno de los siguientes errores en la lista de encuestas: nmero total de estaciones mayor que el espacio en el tag de lista de encuestas nmero total de estaciones mayor que 255 el puntero de la estacin actual es mayor que el tag fin de la lista de encuestas se encontr un nmero de estacin mayor que 254 Determine y corrija el retardo de la encuesta.
Tiempo de espera de encuestas DF1 esclavo Expir el temporizador de control (watchdog) de encuestas para el esclavo. El maestro no encuest este controlador en el perodo de tiempo especificado. Se perdi contacto con el mdem. Las lneas de control DCD y/o DSR no se estn recibiendo en la secuencia y/o estado correctos. No se detect la batera, o sta necesita reemplazarse.
10
10
Apndice
Introduccin
La Comisin Electrotcnica Internacional (IEC) ha desarrollado una serie de especificaciones para controladores programables. Estas especificaciones estn destinadas a promover la unificacin internacional de equipos y lenguajes de programacin para uso en la industria de controles. Estos estndares constituyen la base de los controladores Logix5000 y del software de programacin RSLogix 5000. La especificacin IEC para los controladores programables est dividida en cinco partes, cada una de las cuales se concentra en un aspecto diferente del sistema de control: Parte Parte Parte Parte Parte 1: 2: 3: 4: 5: Informacin general Prueba de equipos y requisitos Lenguajes de programacin Pautas para el usuario Especificacin del servicio de mensajes
La industria de controles se ha concentrado en la parte 3 (IEC61131-3), Lenguajes de programacin, porque stos proporcionan el elemento principal para implementar los otros estndares y ofrecen el beneficio ms importante para el usuario final mediante la reduccin de los costos de capacitacin. Por esta razn, slo la especificacin IEC61131-3 se tratar aqu.
B-2
La especificacin referente a lenguaje de programacin IEC61131-3 trata numerosos aspectos del controlador programable, incluyendo la ejecucin del sistema operativo, las definiciones de los datos, los lenguajes de programacin y el conjunto de instrucciones. Los componentes de la especificacin IEC61131-3 estn categorizados segn lo requerido por la especificacin, opcional o extensiones. De esta manera, la especificacin IEC61131-3 proporciona un conjunto mnimo de funcionalidad que puede extenderse para satisfacer las necesidades de la aplicacin del usuario final. La desventaja de este mtodo es que cada suministrador de sistemas de control programable puede implementar diferentes componentes de la especificacin o proporcionar diferentes extensiones.
Sistema operativo
El sistema operativo (OS) de los controladores Logix5000, el cual permite la priorizacin de tareas, cumple con las especificaciones de la norma IEC61131-3. Segn la especificacin IEC61131-3, el sistema operativo de los controladores programables puede contener cero o ms tareas, las cuales pueden ejecutar uno o ms programas, cada uno de los cuales puede contener una o ms funciones o rutinas. De acuerdo con IEC61131-3, el nmero de cada uno de estos componentes depende de la implementacin. Los controladores Logix5000 proporcionan mltiples tareas, cada una de las cuales contiene mltiples programas y un nmero ilimitado de funciones o rutinas. La especificacin IEC61131-3 proporciona una opcin para crear diferentes clasificaciones de ejecucin de tareas. Las tareas se pueden configurar como continuas, peridicas o basadas en evento. Una tarea continua no necesita programarse ya que utilizar el tiempo de procesamiento que reste cuando otras tareas estn inactivas. Las tareas peridicas se programan para una operacin basada en un perodo de tiempo que reocurre. La norma IEC61131-3 no especifica una base de tiempo para la configuracin de tareas peridicas. De acuerdo con IEC61131-3, una tarea basada en evento se activa con la deteccin del flanco ascendente de una entrada configurada. Los controladores Logix5000 aceptan tareas continuas y peridicas. Adems, el perodo para una tarea peridica puede configurarse empezando con un valor tan bajo como 1 milisegundo (ms).
Definicin de datos
La especificacin IEC61131-3 proporciona acceso a la memoria mediante la creacin de variables con nombre. Los nombres IEC61131-3 para las variables constan de un mnimo de seis caracteres (el software de programacin RSLogix5000 acepta un mnimo de 1 carcter) comenzando con un carcter de subrayado _ o un carcter alfabtico (A-Z), seguido de uno o ms caracteres que constan de subrayado _, carcter alfabtico (A-Z) o nmero (0-9). Opcionalmente, los caracteres alfabticos en minscula (a-z) se aceptan siempre y cuando puedan utilizarse maysculas y minsculas (A = a, B = b, C = c ). Los controladores Logix5000 cumplen plenamente con esta definicin, aceptan la opcin de minsculas y extienden el nombre para aceptar nombres de hasta 40 caracteres.
B-3
Las variables de datos segn IEC61131-3 se pueden definir de tal manera que sean accesibles a todos los programas dentro de un recurso o controlador, o se proporciona acceso limitado slo a las funciones o rutinas dentro de un solo programa. Para pasar datos entre mltiples recursos o controladores, las rutas de acceso se pueden configurar para definir la ubicacin de los datos dentro de un sistema. Los controladores Logix5000 ofrecen conformidad mediante la proporcin de datos dentro del alcance del programa, dentro del alcance del controlador y permitiendo la configuracin de rutas de acceso usando datos producidos/consumidos. La interpretacin de memoria de una variable segn IEC61131-3 se define a travs del uso de un tipo de datos elemental o de un tipo de datos derivado opcional que se crea a partir de un grupo de mltiples tipos de datos. Los controladores Logix5000 aceptan el uso de los tipos de datos elementales BOOL (1 bit), SINT (entero de 8 bits), INT (entero de 16 bits), DINT (entero de 38 bits) y REAL (nmero de punto flotante [coma flotante] IEEE). Adicionalmente, los tipos de datos derivados opcionales se aceptan mediante la creacin de estructuras y matrices definidas por el usuario.
Lenguajes de programacin
La especificacin IEC61131-3 define cinco (5) lenguajes de programacin diferentes y un conjunto de elementos comunes. Todos los lenguajes se definen como opcionales, pero debe aceptarse por lo menos uno para declarar conformidad con la especificacin. Los componentes de lenguaje de programacin IEC61131-3 se definen de la siguiente manera: Elementos Elementos Elementos Elementos Elementos Elementos Elementos (FBD) de lenguaje comunes grficos comunes de lenguaje de lista de instrucciones (IL) de lenguaje de texto estructurado (ST) de lenguaje de diagrama de lgica de escalera (LD) de lenguaje de diagrama de funcin secuencial (SFC) de lenguaje de diagrama de bloque de funciones
Los controladores Logix5000 y RSLogix5000 proporcionan compatibilidad con los elementos de lenguaje comunes y con las opciones de texto estructurado, diagrama de lgica de escalera, diagrama de funciones secuenciales, y diagrama de bloques de funciones. Adems, el entorno utiliza un formato de importacin/exportacin ASCII basado en el lenguaje de texto estructurado. Las funciones del conjunto de instrucciones y de intercambio de archivos de programa se describen en las siguientes secciones.
B-4
Conjunto de instrucciones
El conjunto de instrucciones especificado por IEC61131-3 es completamente opcional. La especificacin lista un conjunto de instrucciones limitado que, si se implementa, debe cumplir con la ejecucin y representacin visual declaradas. Sin embargo, IEC61131-3 no limita el conjunto de instrucciones a las listadas dentro de la especificacin. Cada suministrador de PLC puede implementar funciones adicionales en forma de instrucciones aparte de las listadas por la especificacin. Algunos ejemplos de dichas instrucciones extendidas son aquellas necesarias para realizar diagnsticos, control de lazo PID, control de movimiento y manipulacin de archivos de datos. Puesto que las instrucciones extendidas no son definidas por la especificacin IEC61131-3, no existe garanta de que la implementacin entre los diferentes suministradores de PLC ser compatible. Por lo tanto, la utilizacin de estas instrucciones puede impedir la transferencia de lgica entre suministradores. Los controladores Logix5000 y RSLogix5000 proporcionan un conjunto de instrucciones que se ejecutan segn lo definido por la especificacin IEC61131-3. La representacin fsica de estas instrucciones mantiene su diseo comn con sistemas existentes a fin de reducir el costo de capacitacin asociado con trabajar en el entorno. Adems de las instrucciones que cumplen con la especificacin IEC61131-3, se ha incorporado al entorno una gama completa de instrucciones de productos existentes a fin de no perder funcionalidad.
Una de los objetivos de los usuarios finales que crean programas en un entorno que cumple con las especificaciones IEC61131-3 es la transferencia o portabilidad de programas entre controladores diseados por diferentes suministradores. Esta rea es una debilidad de IEC61131-3 porque no hay un formato de intercambio de archivos definido por la especificacin. Esto significa que cualquier programa creado en el entorno de un suministrador requerir manipulacin para transferirlo al sistema de otro suministrador. A fin de minimizar el esfuerzo requerido para realizar la portabilidad entre diferentes suministradores, el software de programacin RSLogix 5000 para los controladores incluye una utilidad de exportacin e importacin ASCII. Adems, el formato de archivo utilizado por esta herramienta se basa en un hbrido de la definicin del lenguaje de texto estructurado de IEC61131-3. El sistema de operacin del controlador y las definiciones de los datos siguen los formatos IEC61131-3 apropiados. Se implementaron extensiones a fin de convertir la lgica de diagrama de lgica de escalera en texto ASCII puesto que esto no est definido por IEC61131-3. Para obtener ms informacin sobre la utilidad de exportacin e importacin ASCII del software de programacin RSLogix 5000, vea el Logix5000 Controllers Import/Export Reference Manual, publicacin 1756-RM084.
B-5
Los controladores Logix5000 y RSLogix5000 cumplen con los requisitos de IEC61131-3 referentes a las siguientes funciones de lenguaje:
Notas sobre extensiones e implementacin: Ninguno Se usa para designacin de tipo de datos de valor inmediato Se usa para descripcin y carcter de control de cadena Subndices de matriz
Descripcin de la funcin: Letras en minscula Signo de nmero (#) Signo de dlar ($) Delimitadores de subndice ([ ])
Identificadores que usan maysculas y nmeros Nombres de tag, tarea, programa, rutina, estructura Identificadores que usan maysculas, nmeros y caracteres de subrayado incorporados Nombres de tag, tarea, programa, rutina, estructura
Identificadores que usan maysculas y Nombres de tag, tarea, programa, rutina, minsculas, nmeros y caracteres de subrayado estructura incorporados Comentarios Entero literal Real literal Real literal con exponentes Base 2 literal Base 8 literal Base 16 literal Cero y uno booleano Cadena vaca '' Cadena de longitud uno que contiene un carcter 'A' Cadena de longitud uno que contiene un espacio ' ' Cadena de longitud uno que contiene un carcter de una sola comilla '$'' Cadena de longitud uno que contiene un carcter de doble comilla Cadena de longitud dos que contiene caracteres CR y LF Cadena de longitud uno que contiene el carcter LF '$0A' Cadena de longitud 5 que se imprimira como $1.00 usando '$$1.00' Cadenas equivalentes de longitud dos 'AE' y '$C4$CB' Signo de dlar en cadena '$$' Una comilla en cadena '$'' Avance de lnea en cadena '$L' o '$l' Comentarios ST, tambin soporte /* Comentario */, y // Comentarios de fin de lnea. 12, 0, -12 12.5, -12.5 -1.34E-12, 1.234E6 2#0101_0101 8#377 16#FFE0 0, 1 Editor de cadena y descripciones Editor de cadena y descripciones Editor de cadena y descripciones Editor de cadena y descripciones Editor de cadena y descripciones Editor de cadena y descripciones Editor de cadena y descripciones Editor de cadena y descripciones Editor de cadena y descripciones Editor de cadena y descripciones Editor de cadena y descripciones Editor de cadena y descripciones
3 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 6 6 6
1 1 2 3 4 5 6 7 1a 1b 1c 1d 1E 1F 1G 1H 1I 2 3 4
B-6
Nmero de funcin: 5 6 7 8 9 1 2 3 4 10 12 16 1 1 4 5 1 4 5 9 1 4 5 6 2a 1 2 3 4 1 1
Descripcin de la funcin: Nueva lnea en cadena '$N' o '$n' Alimentacin de impresora en cadena (pgina) '$P' o '$p' Retorno de carro en cadena '$R' o '$r' Tabulacin en cadena '$T' o '$t' Doble comilla en cadena $ Tipo de datos BOOL Tipo de datos SINT Tipo de datos INT Tipo de datos DINT Tipo de datos REAL Tiempo Tipo de datos STRING Jerarqua de tipos de datos Derivacin directa de tipos elementales Tipos de datos de matriz Tipos de datos estructurados Valor inicial de 0 BOOL, SINT, INT, DINT Valor inicial de 0.0 REAL, LREAL Valor inicial de tiempo de T#0s Cadena vaca '' Inicializacin de tipos derivados directamente Inicializacin de tipos de datos de matriz Inicializacin de tipos de datos estructurados derivados Invocacin textual, no formal Uso de EN y ENO Uso sin EN y ENO Uso con EN y sin ENO Uso sin EN y con ENO Funciones sobrecargadas ADD(INT, DINT) o ADD(DINT, REAL) Funcin de conversin _TO_
Notas sobre extensiones e implementacin: Editor de cadena y descripciones Editor de cadena y descripciones Editor de cadena y descripciones Editor de cadena y descripciones Editor de cadena y descripciones Definicin de variable de tag Definicin de variable de tag Definicin de variable de tag Definicin de variable de tag Definicin de variable de tag Definicin de variable de tag, estructura TIMER 8 bits Ninguno Estructuras de tipos de datos definidas por el usuario Definicin de variable de tag Estructuras de tipos de datos definidas por el usuario Definicin de variable de tag Definicin de variable de tag Definicin de variable de tag, instruccin restablecer (RES) Descripciones y cadenas Importacin/exportacin Importacin/exportacin Importacin/exportacin Disponible en ST Funcin presente en LD pero no etiquetada. Disponible en FBD. Disponible en FBD Disponible en FBD Disponible en FBD Todos los tipos sobrecargados aceptados estn documentados con cada instruccin Instrucciones RAD, DEG, Radianes hacia/desde decimal Conversin numrica de cadena STOD, STOR, RTOS, DTOS. No se necesitan otras debido a sobrecarga de instrucciones. Instruccin TRN en LD y funcin TRUNC en ST Instruccin FRD en LD
22 22
2 3
B-7
Nmero de Tabla:(1) 22 23 23 23 23 23 23 23 23 23 23 24 24 24 24 24 24 24 25 25 25 25 26 26 26 26 27 27 27 27 27
Nmero de funcin: 4 1 2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 1 2 3 4 5 6 7 8 1 2a 2b 3 4
Descripcin de la funcin: Convertir INT a BCD Valor absoluto Raz cuadrada Logaritmo natural Logaritmo de base 10 Seno en radianes Coseno en radianes Tangente en radianes Arco seno principal Arco coseno principal Arco tangente principal Suma aritmtica Multiplicacin aritmtica Resta aritmtica Divisin aritmtica Modulo Exponenciacin Transferir valor Desplazamiento de bit a la izquierda Desplazamiento de bit a la derecha Rotacin de bit hacia la izquierda Rotacin de bit hacia la derecha AND OR XOR NOT SELECT Seleccin mxima MAX Seleccin mnima MIN Lmite bajo/alto LIMIT Multiplexor MUX
Notas sobre extensiones e implementacin: Instruccin TOD en LD Instruccin ABS Instruccin SQR en LD y funciones FBD y SQRT en ST. Instruccin LN instruccin LOG Instruccin/funcin SIN Instruccin/funcin COS Instruccin/funcin TAN Instruccin ASN en LD y funciones FBD y ASIN en ST Instruccin ASC en LD y funciones FBD y ACOS en ST Instruccin ATN en LD y funciones FBD y ATAN en ST Instruccin ADD en LD y FBD y + en ST. Instruccin MUL en LD y FBD y * ST. Instruccin SUB en LD y FBD y en ST. Instruccin DIV en LD y FBD y / en ST. Instruccin MOD en LD y ST Instruccin XPY en LD y FBD y ** en ST. Instruccin MOV en LD y := en ST. Funcionalidad de la instruccin BSL en LD para desplazamiento de 1 Funcionalidad de la instruccin BSR en LD para desplazamiento de 1 Funcionalidad de la instruccin BSL en LD para desplazamiento de 1 Funcionalidad de la instruccin BSR en LD para desplazamiento de 1 Instruccin BAND en FBD y operador & en ST Instruccin BOR en FBD Instruccin BXOR en FBD Instruccin BNOT en FBD Instruccin SEL en FBD Funcionalidad de la instruccin ESEL en FBD y ST Funcionalidad de la instruccin ESEL en FBD y ST Instruccin HLL en FBD y ST Instruccin MUX en FBD
B-8
Nmero de Tabla:(1) 28 28 28 28 28 28 29 29 29 29 29 29 32 32 32 32 34 34 35 35 36
Nmero de funcin: 5 6 7 8 9 10 1 4 5 6 7 9 1 2 3 4 1 2 1 2 1b
Descripcin de la funcin: Comparacin mayor que Comparacin mayor o igual que Comparacin igual que Comparacin menor que Comparacin menor o igual que Comparacin diferente que Longitud de cadena LEN Cadena media MID Concatenar cadenas CONCAT Insertar cadena INSERT Eliminar cadena DELETE Encontrar cadena FIND Lectura de entrada Escritura de entrada Lectura de salida Escritura de salida Establecimiento biestable dominante Restablecimiento biestable dominante Detector de flanco ascendente Detector de flanco descendente Contador progresivo
Notas sobre extensiones e implementacin: Instruccin GRT en LD y FBD y > en ST. Instruccin GRE en LD y FBD y >= en ST. Instruccin EQU en LD y FBD y = en ST. Instruccin LES en LD y FBD y < en ST. Instruccin LEQ en LD y FBD y <= en ST. Instruccin NEQ en LD y FBD y <> en ST. Contenido como parmetro del tipo de datos STRING Instruccin MID en LD y ST Instruccin CONCAT en LD y ST Instruccin INSERT en LD y ST Instruccin DELETE en LD y ST Instruccin FIND en LD y ST FBD y ST FBD y ST FBD y ST FBD y ST Instruccin SETD en FBD y ST Instruccin RESD en FBD y ST Instruccin OSR en LD e instruccin OSRI en FBD y ST Instruccin OSR en LD e instruccin OSFI en FBD y ST Funcionalidad de las instrucciones CTU y RES en LD y funcionalidad de la instruccin CTUD en FBD Y ST Funcionalidad de la instruccin TON en LD y funcionalidad de la instruccin TONR en FBD y ST Funcionalidad de la instruccin TOF en LD y funcionalidad de la instruccin TOFR en FBD y ST Funcionalidad de la instruccin TON en LD y funcionalidad de la instruccin TONR en FBD y ST Funcionalidad de la instruccin TOF en LD y funcionalidad de la instruccin TOFR en FBD y ST
37
2a
37
3a
38
38
40 40 40
1a 1b 2a
Paso SFC Paso inicial SFC Paso textual SFC Importacin/exportacin, el nombre del paso se especifica usando el formato Operand := step_name
B-9
Nmero de Tabla:(1) 40
Nmero de funcin: 2b
Notas sobre extensiones e implementacin: Importacin/exportacin, usa el parmetro InitialStep y el nombre del paso se especifica usando el formato Operand := step_name Tag de respaldo de paso
40 40 41 41 41 41 41 41 42 42 43 43 43 43 44 44 44 44 44 44 45 45 45 45 45 45 45 45 45 45 45 45
3a 4 1 5 7 7a 7b 7d 1 3s 1 2 3 4 1 2 3 5 6 7 1 2 3 4 5 6 7 8 9 10 11 12
Formato general de indicador de paso SFC Transicin usando ST Formato textual de transicin Nombre de transicin Transicin establecida por LD Transicin establecida por FBD Transicin establecida por ST Accin booleana Representacin textual de accin Asociacin de Paso Accin Paso con acciones concatenadas Cuerpo textual de paso Campo cuerpo accin Calificador de bloque de accin Nombre de bloque de accin Tag indicador de accin Accin usando ST Accin usando LD Accin usando FBD Calificador de accin Ninguno Calificador de accin N No almacenado Calificador de accin R Restablecido Calificador de accin S Establecido / Almacenado Calificador de accin L Tiempo limitado Calificador de accin D Con retardo de tiempo Calificador de accin P Pulso Calificador de accin SD Almacenado y con retardo de tiempo Calificador de accin DS Con retardo de tiempo y almacenado Calificador de accin SL Almacenado y tiempo limitado Calificador de accin P1 Flanco ascendente de pulsos Calificador de accin P0 Flanco descendente de pulsos
Formato general de tiempo transcurrido de paso Tag de respaldo de paso Importacin/exportacin con formato diferente Tag de respaldo de transicin Tag de respaldo de transicin Tag de respaldo de transicin Tag de respaldo de transicin Tag de respaldo de accin Importacin/exportacin
Extendido para compatibilidad con DINT, INT, SINT o REAL adems de BOOL Compatibles con ST incorporado y rutina JSR a ST Usando rutina JSR a LD Usando rutina JSR a FBD La opcin predeterminada es N cuando None se introduce explcitamente
B-10
Descripcin de la funcin: Control de accin Control de accin Secuencia nica SFC Divergencia de seleccin de secuencias SFC Divergencia de seleccin de secuencias SFC con orden de ejecucin Convergencia de seleccin de secuencias SFC Divergencia de secuencias simultneas SFC Convergencia de secuencias simultneas SFC Salto de secuencia SFC Lazo de secuencia SFC Flechas direccionales de lazo SFC Representacin grfica de SFC Representacin grfica de SFC Requisitos mnimos de cumplimiento de paso SFC Requisitos mnimos de cumplimiento de transicin SFC Requisitos mnimos de cumplimiento de accin SFC Requisitos mnimos de cumplimiento de cuerpo de accin SFC Requisitos mnimos de cumplimiento de calificador de accin SFC Requisitos mnimos de cumplimiento de bifurcacin SFC Requisitos mnimos de cumplimiento de conexin de bloque SFC ST Parntesis (expresin) Evaluacin de funcin ST
Consulte las notas en las tablas individuales anteriores. Consulte las notas en las tablas individuales anteriores. Consulte las notas en las tablas individuales anteriores. Consulte las notas en las tablas individuales anteriores. Consulte las notas en las tablas individuales anteriores. Consulte las notas en las tablas individuales anteriores. Consulte las notas en las tablas individuales anteriores. Uso de formato de invocacin no formal para funciones incorporadas. JSR usada dentro del lenguaje ST para llamar al cdigo desarrollado por el usuario.
55 55 55 55 55 55 55 55 55
3 4 5 6 7 8 9 10 11
ST Exponenciacin ** ST Negacin ST Negacin NOT ST Multiplicar * ST Dividir / ST Modulo MOD ST Sumar + ST Restar ST Comparacin <, >, <=, >=
B-11
Nmero de Tabla:(1) 55 55 55 55 55 55 56 56 56 56 56 56 56 56 56 56 57 57 57 57 57 57 57 58 58 58 58 58 59 59 60 60 61 61 61 62
Descripcin de la funcin: ST Igualdad = ST Desigualdad <> ST Booleano AND como & ST Booleano AND ST Booleano XOR ST Booleano OR Asignacin ST := Invocacin de bloque de funcin ST ST RETORNO ST IF / ELSIF / ELSE/ END_IF ST CASE OF / ELSE / END_CASE ST FOR / END_FOR ST WHILE DO / END_WHILE ST REPEATE / UNTIL / END_REPEAT ST EXIT Comando ST vaco ; Lnea horizontal Lnea vertical Conexin horizontal / vertical Cruces del lneas sin conexin Esquinas con conexin y sin conexin Bloques con conexiones Conectores Salto incondicional Saltar receptor Salto condicional Retorno condicional Retorno incondicional Lnea de tensin izquierda Lnea de tensin derecha Vnculo horizontal Vnculo vertical Contacto normalmente abierto --| |-Contacto normalmente cerrado --| / |-Contacto de deteccin de transicin positiva -| P |Bobina --( )--
Editor LD, editor FBD Editor LD, editor FBD Editor LD, editor FBD Editor FBD Editor LD, editor FBD Editor LD, editor FBD Editor FBD Instruccin JMP en LD Instruccin LBL en LD Instruccin JMP en LD Instruccin RET en LD Instruccin RET en LD Editor LD Editor LD Editor LD Editor LD Instruccin XIC en LD Instruccin XIO en LD Instruccin ONS en LD Instruccin OTE en LD
B-12
Nmero de Tabla:(1) 62 62 62 62
(1)
Nmero de funcin: 3 4 8 9
Descripcin de la funcin: Establecer (enclavar) bobina Restablecer (desenclavar) bobina Bobina de deteccin de transicin positiva Bobina de deteccin de transicin negativa
Notas sobre extensiones e implementacin: Funcionalidad de la instruccin OTL en LD Funcionalidad de la instruccin OTU en LD Instruccin OSR en LD Instruccin OSF en LD
Se omiti la tabla asociada con lenguajes que no son texto estructurado, diagrama de funciones secuenciales, diagrama de lgica de escalera y diagrama de bloques de funciones.
Glosario
accin En un diagrama de funciones secuenciales (SFC), una accin representa una divisin funcional de un paso. Varias acciones constituyen un paso. Cada accin realiza una funcin especfica, como por ejemplo, controlar un motor, abrir una vlvula o colocar un grupo de dispositivos en un modo especfico.
Paso Acciones
Hacer esto
MEZCLAR
y hacer esto
Cada accin incluye un calificador. Cuando un paso est activo (se est ejecutando) el calificador determina cundo comienza y se detiene la accin. Vea diagrama de funciones secuenciales, paso, calificador. administrador de fallo del controlador El administrador de fallos de controlador es una tarea opcional que se ejecuta cuando: el fallo mayor no es un fallo de ejecucin de instruccin la rutina de fallo de programa: no puede borrar el fallo mayor. entr en fallo. no existe. Puede crear solamente un programa para el administrador de fallos del controlador. Despus de crear el programa, debe configurar una rutina como la rutina principal. El programa de fallo del controlador no ejecuta una rutina de fallo. Si usted especifica una rutina de fallo para el programa de puesta en marcha, el controlador nunca ejecuta dicha rutina. Puede crear rutinas adicionales y llamarlas desde la rutina principal. administrador de inicializacin Una tarea opcional que se ejecuta cuando el controlador se enciende en el modo Marcha. Para usar el Administrador de inicializacin, se debe crear un programa de encendido y la rutina principal asociada.
Glosario
42195
Se encendi el controlador en el modo Marcha? S Contiene un programa el Administrador de inicializacin? S Ocurre el fallo mayor tipo 1, cdigo 1.
No
No
alcance Define dnde se obtiene acceso a un conjunto determinado de tags. Cuando usted crea un tag, lo asigna (agrupa) como tag de controlador o tag de programa para un programa especfico, tal como se indica a continuacin.
Glosario
tags a los cuales pueden tener acceso todas las rutinas y dispositivos externos (por ejemplo, controladores)
tags a los cuales slo pueden tener acceso las rutinas en MainProgram
42195
Puede tener mltiples tags con el mismo nombre: Cada tag debe tener una alcance diferente. Por ejemplo, uno de los tags puede ser un tag de controlador y los otros tags pueden ser tags de programa para programas diferentes. O bien, cada tag puede ser un tag de programa para un programa diferente. Dentro de un programa, no es posible hacer referencia a un tag de controlador si un tag con el mismo nombre existe como tag de programa para dicho programa. Vea alcance del controlador, alcance del programa.
Glosario
alcance del controlador Estos son datos accesible en cualquier parte del controlador. El controlador contiene un conjunto de tags a los cuales las rutinas y alias pueden referirse en cualquier programa, as como otros alias dentro del alcance del controlador. Vea alcance del programa. alcance del programa Datos accesibles solamente dentro del programa actual. Cada programa contiene un conjunto de tags a los cuales las rutinas y alias pueden referirse en dicho programa. Vea alcance del controlador. almacenar Copiar un proyecto en la memoria no voltil del controlador. Esto sobrescribir cualquier proyecto que est actualmente en la memoria no voltil. Vea cargar, memoria no voltil.
Glosario
almacenar en cach Dejar la conexin abierta despus que concluye una instruccin MSG. Esto es til si se ejecuta repetidamente la instruccin MSG puesto que iniciar la conexin cada vez aumenta el tiempo de escn. La tabla siguiente indica cules mensajes usan conexin y si es posible almacenar la conexin en cach:
Este tipo de mensaje: Usando este mtodo de comunicacin: CIP CIP CIP con ID de origen DH+ CIP genrico transferencia en bloques de lectura o escritura N/A N/A 1 2 Usa una conexin: La cual se puede poner en cach:
Lectura o escritura de la tabla de datos CIP PLC2, PLC3, PLC5 o SLC (todos los tipos)
1 2
Considere almacenamiento en cach slo si el mdulo receptor requiere una conexin. Realice los siguientes pasos para seleccionar una opcin de cach para un mensaje que usted puede almacenar en cach.
Glosario
1. Cambia la ruta de acceso de un mensaje la lgica? (Por ej., se comunica una instruccin MSG con ms de un dispositivo?)
Si: S No Entonces: A. Borre la casilla de verificacin Cache Connection. B. Omita el paso 2. Vaya al paso 2.
2. A cuntos controladores enva mensajes que usted puede almacenar en cach este controlador?
Si: 16 menos controladores ms de 16 controladores Entonces: Deje seleccionada la casilla de verificacin Cache Connection. A. Seleccione 16 controladores que requieran los mensajes ms frecuentes. B. Se enva este mensaje a uno de esos controladores? Si: S No Entonces Deje seleccionada la casilla de verificacin Cache Connection. Borre la casilla de verificacin Cache Connection.
Glosario
aplicacin La combinacin de rutinas, programas, tareas y configuraciones de E/ S usadas para definir la operacin de un solo controlador. Vea proyecto. ASCII Un cdigo de 7 bits (con un bit de paridad opcional) que se usa para representar caracteres alfanumricos, signos de puntuacin y caracteres de cdigo de control. Para obtener una lista de cdigos ASCII, vea la contraportada de este manual. asncrono Acciones que ocurren independientemente una de otra y que no tienen un patrn regular. En los controladores Logix5000, los valores de E/S se actualizan de manera asncrona a la ejecucin de la lgica. Los programas dentro de una tarea obtienen acceso a los datos de entrada y salida directamente desde la memoria del controlador cubierto. La lgica dentro de cualquier tarea puede modificar los datos de alcance del controlador. Los valores de datos y E/S son asncronos y se pueden cambiar durante la ejecucin de la tarea. Un valor de entrada al cual se hace referencia al inicio de la ejecucin de la tarea puede ser diferente cuando se hace referencia al mismo ms tarde. Asegrese de que la memoria de datos contiene los valores apropiados durante toda la ejecucin de la tarea. Usted puede duplicar o almacenar en un bfer los datos al inicio del escn para proporcionar valores de referencia para la lgica.
ATENCIN
Glosario
bifurcacin No hay un lmite del nmero de niveles de bifurcacin en paralelo que usted puede introducir. La figura siguiente muestra una bifurcacin en paralelo con cinco niveles. El rengln principal es el primer nivel de bifurcacin, seguido por cuatro bifurcaciones adicionales.
instruccin de entrada
instruccin de salida
Se pueden anidar las bifurcaciones hasta en 6 niveles. La figura siguiente muestra una bifurcacin anidada. La instruccin de salida inferior se encuentra en una bifurcacin anidada que tiene tres niveles.
instruccin de entrada instruccin de salida
Glosario
binario Los valores enteros mostrados en pantalla e introducidos en base 2 (cada dgito representa un solo bit). Tiene el prefijo 2#. Se proporcionan espacios para la longitud del valor booleano o entero (1, 8, 16 32 bits). Cuando se muestra en pantalla, cada grupo de cuatro dgitos se separa mediante un carcter de subrayado para facilitar la legibilidad. Vea decimal, hexadecimal, octal. bit Dgito binario. Esta es la unidad ms pequea de memoria. Representado por los dgitos 0 (restablecido) y 1 (establecido). BOOL Un tipo de datos que almacena el estado de un solo bit, donde: 0 es igual a desactivado 1 es igual a activado byte Una unidad de memoria que consiste en 8 bits.
Glosario
10
42811
42812
Puede usar el tipo de datos STRING predeterminado. ste almacena hasta 82 caracteres.
o bien
Puede crear un nuevo tipo de datos de cadena para almacenar el nmero de caracteres definido.
Los nuevos tipos de datos de cadena son tiles en las siguientes situaciones: Si tiene un gran nmero de cadenas con un tamao fijo de menos de 82 caracteres, puede conservar memoria creando un nuevo tipo de datos de cadena. Si tiene que manejar cadenas de ms de 82 caracteres, puede crear un nuevo tipo de datos de cadena adecuado para el nmero de caracteres requerido.
Glosario
11
IMPORTANTE
Tenga cuidado cuando cree un nuevo tipo de datos de cadena. Si posteriormente decide cambiar el tamao del tipo de datos de cadena, puede perder datos en cualquier tag que actualmente use ese tipo de datos.
Si usted: hace un tipo de datos de cadena ms pequeo hace un tipo de datos de cadena ms grande Entonces: Los datos se truncan. LEN no se cambia. El dato y LEN se restablecen a cero.
El siguiente ejemplo muestra el tipo de datos STRING y un nuevo tipo de datos de cadena.
Este tag es una matriz de 20 elementos del tipo de datos STRING predeterminado.
42234
Este tag usa un nuevo tipo de datos de cadena. El usuario asign al tipo de datos el nombre STRING_24. El nuevo tipo de datos de cadena almacena slo 24 caracteres.
calificador En la accin de un organigrama de funcin secuencial (SFC), un calificador define cundo se inicia y se detiene una accin. Vea accin, diagrama de funciones secuenciales, paso. cambio de estado (COS) Cualquier cambio del estado de un punto o grupo de puntos en un mdulo de E/S.
Glosario
12
carga El proceso de transferir el contenido del controlador a un archivo del proyecto en la estacin de trabajo. Si no tiene el archivo de proyecto para un controlador, puede cargar desde el controlador y crear un archivo de proyecto. Sin embargo, no todo lo almacenado en un archivo de proyecto est disponible desde el controlador. Si carga desde un controlador, el nuevo archivo de proyecto no contendr: los comentarios de rengln las descripciones de tags, tareas, programa, rutinas, mdulos o estructuras definidas por el usuario cadenas de alias (seudnimo que indican otros alias) Las cadenas de alias no se reconstruyen completamente desde el controlador. Si hay varios nombres posibles para un tem de datos, el firmware y el software seleccionan el seudnimo ms apto que puede no reflejar cmo se especific el seudnimo en el proyecto original. Vea descarga. cargar Copiar un proyecto desde la memoria no voltil a la memoria de usuario (RAM) del controlador. Esto sobrescribir cualquier proyecto que est actualmente en el controlador. Vea memoria no voltil, almacenar. CIP Vea Protocolo de control e informacin.
Glosario
13
clave de origen Un mecanismo que limita quin puede ver una rutina. Una clave de origen se asigna a una o ms rutinas. Las claves de origen siguen las mismas reglas para nombres que otros componentes RSLogix 5000, tales como las rutinas, los tags y los mdulos. Para asignar una clave de origen a una rutina (proteger la rutina) use el software RSLogix 5000. (Primero usted tiene que activar la herramienta). Un archivo de claves de origen (sk.dat) almacena las claves de origen. El archivo de claves de origen est separado de los archivos de proyecto RSLogix 5000 (.acd). Para ver una rutina protegida por una clave de origen, usted debe tener la clave de origen. Sin la clave de origen, no se puede abrir una rutina. El software RSLogix 5000 muestra Source Not Available. Independientemente de que la clave de origen est o no est disponible, usted siempre puede descargar el proyecto y ejecutar todas las rutinas. Vea nombre. codificacin electrnica Una funcin de la lnea de E/S 1756 que permite la solicitud de mdulos para realizar una verificacin electrnica a fin de asegurar que el mdulo fsico es igual a lo que configur el software. Habilita al usuario mediante el software para evitar el uso de mdulos incorrectos o revisin incorrectas. Vea mdulo compatible, inhabilitacin de la codificacin, exactamente igual. conexin El mecanismo de comunicacin desde el controlador a otro mdulo en el sistema de control. Existe un lmite del nmero de conexiones que puede tener un solo controlador. Las comunicaciones con los mdulos de E/S, tags consumidos, tags producidos e instrucciones MSG usan conexiones para transferir los datos. conexin bidireccional Una conexin en la cual los datos fluyen en ambas direcciones: desde el originador al receptor y desde el receptor al originador. Vea conexin, conexin unidireccional.
Glosario
14
conexin de slo recepcin Una conexin de E/S en la que otro controlador posee/proporciona los datos de configuracin para el mdulo de E/S. Un controlador que usa una conexin de slo recepcin no escribe los datos de configuracin y puede mantener una conexin solamente al mdulo de E/S cuando el controlador propietario est controlando activamente el mdulo de E/S. Vea controlador propietario. conexin sin cach Con la instruccin MSG, una conexin sin cach indica al controlador que cierre la conexin una vez concluida la instruccin MSG. El cortar la conexin la hace disponible para otros usos del controlador. Vea conexin, conexin con cach. conexin unidireccional Una conexin en la cual los datos fluyen en una sola direccin: desde el originador hasta el receptor. Vea conexin, conexin bidireccional. contador Tipo de datos de estructura que contiene la informacin de estado y control para las instrucciones de contador. controlador propietario El controlador que crea la conexin primaria de configuracin y comunicacin a un mdulo. El controlador propietario escribe los datos de configuracin y establece una conexin al mdulo. Vea conexin de slo recepcin.
decimal Los valores enteros mostrados en pantalla e introducidos en base 10. Sin prefijo. No se proporcionan espacios para la longitud del valor entero. Vea binario, hexadecimal, octal. descargar El proceso de transferir el contenido del proyecto en la estacin de trabajo al controlador. Vea carga.
Glosario
15
descripcin Texto opcional que se puede usar para documentar ms detalladamente la aplicacin. Se puede usar cualquier carcter imprimible, incluso el retorno de carro, tabulacin y espacio. Las descripciones no se descargan al controlador. stas permanecen en el archivo del proyecto fuera del lnea. Las descripciones tienen las siguientes limitaciones de longitud: Para tags, se puede usar hasta 120 caracteres. Para otros objetos (tareas, programas ,mdulos, etc.) se puede usar hasta 128 caracteres. diagrama de funciones secuenciales Un diagrama de funciones secuenciales (SFC) es similar a un diagrama de flujo. Utiliza pasos y transiciones para controlar una mquina o un proceso. Vea accin, paso, transicin. difusin mltiple Un mecanismo que permite que un mdulo enve datos mediante una red que son recibidos simultneamente por ms de un dispositivo de slo recepcin. Describe la funcin de la lnea de E/S ControlLogix que permite que mltiples controladores reciban datos de entrada simultneamente desde el mismo mdulo de E/S. dimensin La especificacin del tamao de una matriz. Las matrices pueden tener hasta tres dimensiones. Vea matriz.
Glosario
16
DINT Un tipo de datos que almacena un valor entero con signo de 32 bits (4 bytes) (2,147,483,648 a +2,147,483,647). En los controladores Logix5000, use DINT para enteros: Los controladores Logix5000 se ejecutan ms eficientemente y usan menos memoria cuando trabajan con enteros de 32 bits (DINT) en lugar de enteros de 16 bits (INT) o enteros de 8 bits (SINT). Normalmente, las instrucciones convierten valores SINT o INT a un tipo de datos ptimo (generalmente un valor DINT o REAL) durante la ejecucin. Puesto que esto requiere memoria y tiempo adicional, minimice el uso de los tipos de datos SINT e INT. directa Una conexin de E/S en que el controlador establece conexiones individuales a un mdulo de E/S. Vea rack optimizado.
elemento Una unidad direccionable de datos que es una subunidad de una unidad mayor de datos. Una sola unidad de una matriz. Usted especifica un elemento en una matriz segn sus subndices:
Para esta matriz: una dimensin dos dimensiones tres dimensiones Especifique: array_name[subscript_0] array_name[subscript_0, subscript_1] array_name[subscript_0, subscript_1, subscript_2]
Vea matriz.
Glosario
17
en lnea Ver y editar el proyecto en un controlador. Vea fuera de lnea. estilo El formato en que se muestran los valores numricos. Vea ASCII, binario, decimal, exponencial, hexadecimal, octal. estructura Algunos tipos de datos son una estructura. Una estructura almacena un grupo de datos; cada grupo de datos puede ser un tipo de datos diferente. Dentro de una estructura, cada tipo de datos individual se denomina miembro. Al igual que los tags, los miembros tienen un nombre y un tipo de datos. Usted crea sus propias estructuras, llamadas tipo de datos definido por el usuario, usando cualquier combinacin de tags individuales y la mayora de las otras estructuras. Para copiar datos a una estructura, use la instruccin COP. Vea la Logix5000 Controllers General Instructions Reference Manual, publicacin 1756-RM003. Los tipos de datos COUNTER y TIMER son ejemplos de estructuras usadas comnmente.
Para expandir una estructura y mostrar sus miembros, haga clic en el signo +.
estructura COUNTER Para contraer una estructura y ocultar sus miembros, haga clic en el signo . estructura TIMER
miembros de running_seconds
42365
Glosario
18
estructura definida por producto Un tipo de datos de estructura que el software y controlador definen automticamente. La configuracin de un mdulo de E/S aade la estructura definida por producto a dicho mdulo. estructura predefinida Un tipo de datos de estructura que almacena la informacin asociada para una instruccin especfica, tal como la estructura TIMER para las instrucciones de temporizador. Las estructuras predefinidas siempre estn disponibles, independientemente de la configuracin de hardware del sistema. Vea estructura definida por producto. exactamente igual Una proteccin de codificacin electrnica que requiere que todos los atributos (suministrador, nmero de catlogo y atributos de revisin menor) del mdulo fsico y el mdulo configurado en el software sean iguales para establecer una conexin al mdulo. exponencial Los valores reales mostrados en pantalla e introducidos en formato cientfico o exponencial. El nmero siempre se muestra en pantalla con un dgito a la izquierda del punto decimal seguido por la porcin decimal y, luego, por una exponente. Vea estilo. expresin BOOL En texto estructurado, una expresin que produce ya sea el valor BOOL de 1 (verdadero) o 0 (falso). Una expresin bool usa tags bool, operadores de relacin y operadores lgicos para comparar valores y verificar si las condiciones son verdaderas o falsas. Por ejemplo, tag1>65. Una expresin bool simple puede ser un tag BOOL simple. Normalmente se usan expresiones bool para condicionar la ejecucin de la lgica.
Glosario
19
expresin numrica En texto estructurado, una expresin que calcula un valor entero o de punto flotante (coma flotante). Una expresin numrica usa operadores aritmticos, funciones aritmticas y operadores de bit. Por ejemplo, tag1+5. Generalmente se anida una expresin numrica dentro de una expresin booleana. Por ejemplo, (tag1+5)>65.
fallo mayor Una condicin de fallo que es suficientemente severa para que el controlador se desactive, a menos que se borre una condicin. Cuando ocurre un fallo mayor, el controlador: 1. Establece un bit de fallo mayor 2. Ejecuta la lgica de fallo proporcionada por el usuario, si existe. 3. Si la lgica de fallo proporcionada por el usuario no puede borrar el fallo, el controlador entra en el modo fallo. 4. Establece las salidas segn su estado de salida durante el modo de programacin. 5. El indicador LED parpadea de color rojo. El controlador es compatible con dos niveles para el manejo de los fallos mayores: la rutina de fallo de programa: Cada programa puede tener su propia rutina de fallo. El controlador ejecuta la rutina de fallo del programa cuando ocurre un fallo de instruccin. Si la rutina de fallo del programa no borra el fallo o si no existe una rutina de fallo del programa, el controlador ejecuta el administrador de fallos del controlador (si se ha definido). administrador de fallo del controlador: Si el administrador de fallos del controlador no existe o no puede borrar el fallo mayor, el controlador entra en el modo fallo y se desactiva. Entonces se actualiza el FAULTLOG. (Vea la pgina siguiente). Todos los fallos no relacionados a las instrucciones (E/S, watchdog de tarea, etc.) ejecutan directamente el manejo de fallos del controlador. (No se llama a una rutina de fallo de programa.) El fallo que no se borr, adems de hasta dos fallos adicionales no borrados, se registran en el registro de fallos del controlador.
Glosario
20
s Se borr el fallo?
No contina la ejecucin de lgica El controlador registra un fallo mayor al administrador de fallos del controlador PROGRAM MajorFaultRecord
No
Existe el administrador de fallos del controlador s ejecute el administrador de fallos del controlador
s Se borr el fallo?
Glosario
21
fallo menor Una condicin de fallo no es suficientemente severa para que el controlador se desactive:
Si ocurre lo siguiente: problema con una instruccin El controlador: 1. establece S:MINOR 2. registra informacin acerca del fallo al objeto PROGRAM, atributo MinorFaultRecord 3. establece el bit 4 del objeto FAULTLOG, atributo MinorFaultBits establece el bit 6 del objeto FAULTLOG, atributo MinorFaultBits establece el bit 9 del objeto FAULTLOG, atributo MinorFaultBits establece el bit 10 del objeto FAULTLOG, atributo MinorFaultBits
Para borrar fallos menores: 1. En el Controller Organizer, haga clic con el botn derecho del mouse en la carpeta Controller name_of_controller y seleccione Properties. 2. Haga clic en la ficha Minor Fault. 3. Utilice la informacin de la lista Recent Faults para corregir la causa del fallo. Refer to Cdigos de fallos menores on page A-3. 4. Haga clic en el botn Clear Minors. Vea fallo mayor. formato de comunicacin Define cmo un mdulo de E/S se comunica con el controlador. La seleccin de un formato de comunicacin define: qu tags de configuracin estn disponibles mediante el software de programacin el mtodo de estructura y la configuracin del tag fuera de lnea Ver y editar un proyecto que est en el disco duro de una estacin de trabajo. Vea en lnea
hexadecimal Los valores enteros mostrados en pantalla e introducidos en base 16 (cada dgito representa 4 bits). Tiene el prefijo 16#. Se proporcionan
Glosario
22
espacios para la longitud del valor booleano o entero (1, 8, 16 32 bits). Cuando se muestra en pantalla, cada grupo de cuatro dgitos se separa mediante un carcter de subrayado para facilitar la legibilidad. Vea binario, decimal, octal. hora coordinada del sistema (CST) Un valor de 64 bits que representa el nmero de microsegundos desde el cual el controlador maestro de la hora coordinada del sistema inici el conteo. El valor CST se almacena como una matriz DINT[2], donde: el primer elemento almacena los 32 bits inferiores el segundo elemento almacena los 32 bits superiores Se puede usar el sello de hora CST para comparar el tiempo relativo entre muestreos de datos.
ndice Una referencia usada para especificar un elemento dentro de una matriz. inhabilitacin de la codificacin Un modo de proteccin de codificacin electrnica que no requiere que sean iguales los atributos del mdulo fsico y el mdulo configurado en el software e igualmente establece una conexin al mdulo. Vea mdulo compatible, exactamente igual.
Glosario
23
instruccin El controlador evala las instrucciones de lgica de escalera segn la condicin de rengln que precede a la instruccin (condicin de entrada del rengln).
instruccin de entrada
instruccin de salida
Slo las instrucciones de entrada afectan la condicin de entrada de rengln de instrucciones subsiguientes en el rengln. Si la condicin de entrada del rengln a una instruccin de entrada es verdadera, el controlador evala la instruccin y establece la condicin de salida del rengln para que coincida con los resultados de la evaluacin. Si la instruccin se evala como verdadera, la condicin de salida del rengln es verdadera. Si la instruccin se evala como falsa, la condicin de salida del rengln es falsa. Una instruccin de salida no cambia la condicin de salida del rengln. Si la condicin de entrada del rengln a una instruccin de salida es verdadera, la condicin de salida del rengln se establece como verdadera. Si la condicin de entrada del rengln a una instruccin de salida es falsa, la condicin de salida del rengln se establece como falsa. En los controladores Logix5000, se puede introducir mltiples instrucciones de salida por rengln de lgica. Las instrucciones de salida se pueden introducir: en secuencia en el rengln (en serie) entre instrucciones de entrada, siempre que la ltima instruccin del rengln sea una instruccin de salida El siguiente ejemplo usa ms de una salida en un rengln.
Glosario
24
EJEMPLO
Cuando running_seconds.CU se activa, running_hours cuenta progresivamente un valor de uno y running_seconds se restablece.
running_seconds.DN Count Up Counter Preset Accum CTU running_hours 500 0 CU DN running_seconds RES
Cuando machine_on se activa, activa drill_1_on. Cuando ambos machine_on y drill[1].part_advance estn activados, se activa conveyor_on.
machine_on drill_1_on drill[1].part_advance conveyor_on
42362
Glosario
25
INT Un tipo de datos que almacena un valor entero de 16 bits (2-byte) (32,768 a +32,767). Reduzca al mnimo el uso de este tipo de datos: Normalmente, las instrucciones convierten valores SINT o INT a un tipo de datos ptimo (generalmente un valor DINT o REAL) durante la ejecucin. Puesto que esto requiere memoria y tiempo adicional, minimice el uso de los tipos de datos SINT e INT. intervalo entre paquetes solicitados (RPI) Cuando se comunica mediante la red, sta es la cantidad mxima de tiempo entre la produccin subsiguiente de datos de entrada. Este intervalo se configura tpicamente en microsegundos. La produccin de datos est limitada al mltiplo ms grande del tiempo de actualizacin de la red que sea menor que el intervalo entre paquetes solicitados seleccionado. Use una potencia de dos veces el tiempo de actualizacin de la red (NUT) ControlNet. Por ejemplo, si el NUT es 5 ms, escriba un rgimen de 5, 10, 20, 40 ms, etc.
maestro (CST) Se debe asignar solamente un controlador como el maestro de la hora coordinada del sistema (CST) dentro de un solo chasis. Todos los dems mdulos en el chasis sincronizan sus valores de hora coordinada del sistema segn el maestro de hora coordinada del sistema. matriz Una matriz le permite agrupar datos (del mismo tipo de datos) bajo un nombre comn. Una matriz es similar a un archivo. Un subndice (s) identifica a cada elemento individual dentro de la matriz. Un subndice empieza en 0 y se extiende hasta el nmero de elementos menos 1 (basado en cero).
Glosario
26
Para expandir una matriz y mostrar sus elementos, haga clic en el signo +.
Para contraer una matriz y ocultar sus elementos, haga clic en el signo . elementos de timer_presets
Esta matriz contiene seis elementos del tipo de datos DINT. seis DINT
42367
Un tag de matriz ocupa un bloque contiguo de memoria en el controlador y cada elemento es secuencial. Se pueden usar instrucciones de secuenciador y matriz para manipular o indizar a travs de los elementos de una matriz Una matriz puede tener hasta tres dimensiones. Esto proporciona flexibilidad para identificar un elemento usando uno, dos o tres subndices (coordenadas). En una matriz con dos o tres dimensiones, la dimensin del extremo derecho incrementa primero en la memoria.
Esta matriz contiene una cuadrcula de elementos de dos dimensiones, seis elementos por seis elementos.
42367
Cuando vuelve a empezar la dimensin del extremo derecho, la dimensin de la izquierda aumenta por un valor de uno.
La dimensin del extremo derecho se incrementa a su valor mximo y luego vuelve a empezar.
El nmero total de elementos en una matriz es el producto del tamao de cada dimensin, como se ilustra en los siguientes ejemplos:
Glosario
27
Por ejemplo: Nombre de tag: one_d_array Tipo DINT[7] Dimensin 0 7 Dimensin 1 -Dimensin 2 --
nmero total de elementos = 7 rango de subndice vlido DINT[x] donde x=06 dos dimensiones Nombre de tag: two_d_array Tipo DINT[4,5] Dimensin 0 4 Dimensin 1 5 Dimensin 2 --
nmero total de elementos = 4 5 = 20 rango de subndice vlido DINT[x,y] donde x=03; y=04 tres dimensiones Nombre de tag: three_d_array Tipo Dimensin 0 Dimensin 1 3 Dimensin 2 4
DINT[2,3,4] 2
nmero total de elementos = 2 3 4 = 24 rango de subndice vlido DINT[x,y, z] donde x=01; y=02, z=03
Puede modificar las dimensiones de la matriz cuando programa fuera de lnea sin perder los datos del tag. No puede modificar las dimensiones de la matriz cuando programa en lnea.
Glosario
28
memoria Medios fsicos de almacenamiento electrnicos incorporados en un controlador y usados para retener programas y datos. memoria no voltil Memoria del controlador que retiene su contenido mientras el controlador no tiene alimentacin elctrica o una batera. Vea cargar, almacenar.
Glosario
29
miembro Un elemento de una estructura que tiene su propio tipo de datos y nombre. Los miembros pueden ser tambin estructuras creando as tipos de datos de estructura anidada. Cada miembro dentro de una estructura puede ser de un tipo de datos diferente. Para hacer referencia a un miembro en una estructura, use este formato: tag_name.member_name Por ejemplo:
Esta direccin: timer_1.pre input_load as data type load_info input_load.height Hace referencia al: valor PRE de la estructura timer_1. miembro height de la estructura input_load definida por el usuario
Si la estructura est incorporada en otra estructura, use el nombre de tag de la estructura al nivel ms alto seguido por un nombre de tag de subestructura y un nombre de miembro: tag_name.substructure_name.member_name Por ejemplo:
Esta direccin: input_location como ubicacin de tipo de datos input_location.load_info.height Hace referencia al: miembro height de la estructura load_info en la estructura input_location.
Si la estructura define una matriz, use el tag de matriz seguido por la posicin en la matriz y los nombres de subestructura y miembro. array_tag[position].member o bien array_tag[position].substructure_name.member _name
Glosario
30
Por ejemplo:
Esta direccin: conveyor[10].source Hace referencia al: miembro source del 11vo elemento en la matriz conveyor (los elementos de la matriz se basan en cero). miembro height de la estructura info en el 11vo elemento la matriz conveyor (los elementos de la matriz se basan en cero).
conveyor[10].info.height
Vea estructura. modo con fallo El controlador gener un fallo mayor, no pudo borrar el fallo y se ha desactivado. Vea fallo mayor. mdulo compatible Un modo de proteccin de codificacin electrnica que requiere que el suministrador, nmero de catlogo y atributos de revisin mayor del mdulo fsico y del mdulo configurado en el software sean iguales para establecer una conexin al mdulo.Vea inhabilitacin de la codificacin, exactamente igual. mdulo de interface (IFM) Un brazo de cableado de campo de E/S precableadas. mltiples propietarios Una configuracin donde ms de un controlador tiene la misma informacin de configuracin para ser propietario simultneamente del mismo mdulo de entrada.
Glosario
31
nombre Los nombres identifican a los controladores, tareas, programas, tags, mdulos, etc. Los nombres siguen las reglas de identificacin IEC-1131-3 y: deben comenzar con un carcter alfabtico (A-Z o A-z) o un carcter de subrayado (_) pueden contener solamente caracteres alfabticos, caracteres numricos y caracteres de subrayado. pueden tener hasta 40 caracteres no deben tener caracteres de subrayado consecutivos ni al final del nombre (_) pueden utilizar maysculas/minsculas se descargan al controlador
objeto Una estructura de datos que almacena la informacin de estado. Cuando se introduce una instruccin GSV/SSV, se especifica el objeto y el atributo del mismo al cual se desea obtener acceso. En ciertos casos, existe ms de una instancia del mismo tipo de objeto, por lo tanto, tambin puede ser necesario especificar el nombre del objeto. Por ejemplo, la aplicacin puede tener diversas tareas. Cada tarea tiene su propio objeto TASK al cual se puede obtener acceso mediante el nombre de la tarea. octal Los valores mostrados en pantalla e introducidos en base 8 (cada dgito representa 3 bits). Tienen el prefijo 8#. Se proporcionan espacios para la longitud del valor booleano o entero (1, 8, 16 32 bits). Cuando se muestra en pantalla, cada grupo de tres dgitos se separa mediante un carcter de subrayado para facilitar la legibilidad. Vea binario, decimal, octal.
paso En un diagrama de funciones secuenciales (SFC), un paso representa una funcin principal de un proceso. Contiene los eventos que ocurren en un momento, fase o estacin especfica.
Glosario
32
Paso
Un paso se ejecuta continuamente hasta que una condicin lgica le indique al controlador que vaya al siguiente paso.
Acciones
Hacer esto
MEZCLAR
y hacer esto
Un paso est organizado en una o ms acciones. Cada accin realiza una funcin especfica, como por ejemplo, controlar un motor, abrir una vlvula o colocar un grupo de dispositivos en un modo especfico.
Vea accin, diagrama de funciones secuenciales, transicin. post-escn Una funcin del controlador que permite que se examine la lgica dentro de un programa antes de inhabilitar el programa a fin de restablecer las instrucciones y datos. preescn El preescn es un escn intermedio durante la transicin al modo Marcha. El controlador realiza un preescn cuando se cambia del modo de programacin al modo marcha. El preescn examina todos los programas e instrucciones e inicializa los datos en base a los resultados. Algunas instrucciones se ejecutan de manera diferente durante el preescn que durante el escn normal. prioridad Especifica cul tarea se ejecuta primero si dos tareas se activan simultneamente. La tarea con mayor prioridad se ejecuta primero. Las prioridades tienen un rango de 1 a 15; 1 es la prioridad ms alta. Una prioridad ms alta interrumpe las tareas de prioridad ms baja. Si se activan simultneamente dos tareas con la misma prioridad, el controlador alterna las tareas cada milisegundo.
Glosario
33
programa Un conjunto de rutinas y tags relacionados. Cada programa contiene tags de programa, una rutina ejecutable principal, otras rutinas y una rutina de fallo opcional. Para ejecutar las rutinas de un programa, se asigna (se programa) el programa a una tarea: Cuando se activa una tarea, los programas programados dentro de la tarea se ejecutan hasta completarse, desde el primero al ltimo. Cuando una tarea ejecuta un programa, la rutina principal del programa se ejecuta primero. La rutina principal, a su vez, puede ejecutar subrutinas usando la instruccin JSR. La carpeta Unscheduled Program contiene programas que no estn asignados a una tarea. Si la lgica del programa produce un fallo mayor, la ejecucin salta a una rutina de fallo configurada para el programa. Las rutinas dentro de un programa pueden acceder a los siguientes tags: Tags de programa del programa tags de controlador Las rutinas no pueden acceder a los tags de programa de otros programas. Vea rutina, tarea. protocolo de control e informacin El protocolo de mensajes usado por la lnea de equipo de control Logix5000 de Allen-Bradley. El protocolo de comunicaciones nativo que se usa en la red ControlNet. proyecto El archivo en la estacin de trabajo (o servidor) que almacena la lgica, la configuracin, los datos y la documentacin para un controlador. El archivo de proyecto tiene una extensin .ACD. Cuando se crea un archivo de proyecto, el nombre del archivo es el nombre del controlador. El nombre del controlador es independiente del nombre del archivo de proyecto. Si usted guarda un archivo de proyecto actual con otro nombre, no se cambia el nombre del controlador. Si el nombre del controlador es diferente al nombre del archivo del proyecto, la barra de ttulos del software RSLogix 5000 muestra ambos nombres.
Glosario
34
Vea aplicacin.
rack optimizado Una conexin de E/S en que el mdulo 1756-CNB recoge palabras de E/S digitales en una imagen de rack (similar A 1771-ASB). Una conexin de rack optimizado conserva las conexiones y el ancho de banda ControlNet; sin embargo, hay disponible informacin limitada de estado y diagnstico cuando se usa este tipo de conexin. Vea directa. REAL Un tipo de datos que almacena un valor de coma flotante de 32 bits (4 bytes) IEEE, con el siguiente rango: 3.40282347E38 a 1.17549435E38 (valores negativos) 0 1.17549435E38 a 3.40282347E38 (valores positivos) El tipo de datos REAL tambin almacena infinito, NAN, y -IND, pero la pantalla del software es diferente segn el formato de la pantalla.
Formato de la pantalla: Real Equivalencia: +infinito infinito +NAN NAN indefinido +infinito infinito +NAN NAN indefinido 1.$ 1.$ 1.#QNAN 1.#QNAN 1.#IND 1.#INF000e+000 1.#INF000e+000 1.#QNAN00e+000 1.#QNAN00e+000 1.#IND0000e+000
Exponencial
El software tambin almacena y muestra el rango subnormal IEEE: 1.17549421E38 a 1.40129846E45 (valores negativos) 1.40129846E45 a 1.17549421E38 (valores positivos)
Glosario
35
rgimen Para una tarea peridica, el rgimen segn el cual el controlador ejecuta la tarea, desde 1 ms hasta 2,000,000 ms (2000 segundos). El valor predeterminado es 10 ms. retiro e insercin con la alimentacin elctrica conectada (RIUP) Una caracterstica de ControlLogix que permite que un usuario instale o retire un mdulo con la alimentacin elctrica del chasis activada. revisin mayor La lnea de mdulos 1756 tiene indicadores de revisin mayor y menor. La revisin mayor se actualiza cuando hay un cambio funcional del mdulo. Vea codificacin electrnica, revisin menor. revisin menor La lnea de mdulos 1756 tiene indicadores de revisin mayor y menor. La revisin menor se actualiza cuando hay un cambio de un mdulo que no afecta la funcin o interface del mismo. Vea codificacin electrnica, revisin mayor.
Glosario
36
ruta de acceso La ruta de acceso describe la ruta que sigue el mensaje para llegar al destino. Si la configuracin de E/S del controlador contiene el dispositivo de destino, use el botn Browse para seleccionar el dispositivo. Esto define automticamente la ruta de acceso.
peer_controller Configuracin de I/O [0] 1756-CNB/x Local_CNB 2 [0] 1756-CNB/x chassis_b [1] 1756-L55/x peer_controller
peer_controller
Si la configuracin de E/S no contiene el dispositivo, entonces escriba la ruta de acceso al destino usando el siguiente formato: port,address,port,address
donde: port Para este: backplane de cualquier controlador o mdulo 1756 puerto DF1 desde un controlador Logix5000 puerto ControlNet de un mdulo 1756-CNB el puerto EtherNet/IP desde un mdulo 1756-ENBx o -ENET puerto DH+ mediante canal A desde un mdulo 1756-DHRIO puerto DH+ mediante canal B desde un mdulo 1756-DHRIO 3 Representa: 1 2
Glosario
37
address
nmero de ranura direccin de estacin (0-254) nmero de nodo (1-99 decimal) 8# seguido del nmero de nodo (1-77 octal). Por ejemplo, para especificar la direccin de nodo octal de 37, escriba 8#37. Usted puede especificar un mdulo en una red EtherNet/IP usando cualquiera de estos formatos: Direccin IP (es decir, 130.130.130.5) Direccin IP: Puerto (es decir, 130.130.130.5:24) Nombre DNS (es decir., depsitos) Nombre DNS: Puerto (es decir, depsitos:24)
red Ethernet/IP
Vea conexin.
Glosario
38
rutina Un conjunto de instrucciones de lgica en un solo lenguaje de programacin, tal como el diagrama de escalera. Las rutinas proporcionan el cdigo de ejecucin para el proyecto en un controlador (similar a un archivo de programa en un controlador PLC o SLC). Cada programa tiene una rutina principal: cuando el controlador activa la tarea asociada y ejecuta el programa asociado, la rutina principal es la primera rutina que se ejecuta. Para llamar a otra rutina dentro del programa, introduzca una instruccin JSR en la rutina principal. Tambin se puede especificar una rutina de fallo de programa opcional. Si alguna de las rutinas en el programa asociado producen un fallo mayor, el controlador ejecuta la rutina de fallo del programa. Vea programa, tarea. rutina principal La primera rutina que se ejecuta cuando se ejecuta un programa. Use la rutina principal para llamar (ejecutar) otras rutinas (subrutinas).
Glosario
39
segmento del tiempo de procesamiento interno del sistema Especifica el porcentaje de tiempo del controlador (excluyendo el tiempo para las tareas peridicas) que se dedica a la comunicacin y a las funciones de segundo plano (procesamiento interno del sistema): El controlador realiza funciones de procesamiento interno del sistema durante un mximo de 1 ms cada vez. Si el controlador completa las funciones de procesamiento interno en menos de 1 ms, contina con la tarea continua. Las funciones de comunicacin y de segundo plano incluyen lo siguiente: comunicarse con los dispositivos de programacin y HMI (por ejemplo, el software RSLogix 5000) responder a mensajes enviar mensajes, incluyendo transferencias en bloques restablecer y monitorear conexiones de E/S (tales como condiciones RIUP); esto no incluye las comunicaciones de E/ S normales que ocurren durante la ejecucin del programa direccionar de las comunicaciones desde el puerto serie del controlador hacia otros dispositivos ControlLogix mediante el backplane ControlLogix Si las comunicaciones no se estn realizando suficientemente rpido, aumente el segmento de tiempo del procesamiento interno. La siguiente tabla muestra la relacin entre la tarea continua y las funciones de procesamiento interno del sistema:
Con este segmento Las tareas continuas se de tiempo: ejecutan durante: 10% 20% 33% 50% 9 ms 4 ms 2 ms 1 ms Y luego el procesamiento interno se realiza como mximo durante: 1 ms 1 ms 1 ms 1 ms
Con el segmento de tiempo predeterminado de 10 %, el procesamiento del sistema interrumpe la tarea continua cada 9 ms (de tiempo de tarea continua).
Leyenda: La tarea se ejecuta. La tarea se interrumpe (se suspende).
1 ms
Glosario
40
La interrupcin de una tarea peridica aumenta el tiempo transcurrido (tiempo del reloj) entre la ejecucin del procesamiento interno del sistema.
1 ms tarea peridica 1 ms tiempo de procesamiento interno del sistema 9 ms de tiempo de tarea continua tarea continua 5 tiempo transcurrido (ms) 10 15 20 25 9 ms de tiempo de tarea continua 1 ms 1 ms 1 ms 1 ms
Si se aumenta el segmento de tiempo a 20 %, el procesamiento interno del sistema interrumpe la tarea continua cada 4 ms (de tiempo de tarea continua).
1 ms tiempo de procesamiento interno del sistema 4 ms tarea continua 5 tiempo transcurrido (ms) 10 15 20 25 4 ms 4 ms 4 ms 4 ms 1 ms 1 ms 1 ms 1 ms
Si se aumenta el segmento de tiempo a 50 %, el procesamiento interno del sistema interrumpe la tarea continua cada 1 ms (de tiempo de tarea continua).
1 ms tiempo de procesamiento interno del sistema 1 ms tarea continua 5 tiempo transcurrido (ms) 10 15 20 25
Si el controlador slo tiene una tarea (s) peridica, el valor del segmento de tiempo de procesamiento interno del sistema no tiene
Glosario
41
efecto. El procesamiento interno del sistema se ejecuta cuando no se est ejecutando una tarea peridica.
tarea peridica
Para cambiar el segmento del tiempo de procesamiento interno del sistema: 1. Abra el proyecto RSLogix 5000. 2. En el Controller Organizer, haga clic con el botn derecho del mouse en la carpeta Controller name of controller y seleccione Properties. 3. Haga clic en la ficha Advanced. 4. En el cuadro de texto System Overhead Time Slice introduzca o seleccione el porcentaje del tiempo de procesamiento interno (10 90%). 5. Haga clic en OK.
Glosario
42
sello de hora Un proceso ControlLogix que registra un cambio de los datos de entrada con una referencia relativa de tiempo respecto a cundo ocurri el cambio. SINT Un tipo de datos que almacena un valor entero con signo de 8 bits (1-byte) (128 a +127). Reduzca al mnimo el uso de este tipo de datos: Normalmente, las instrucciones convierten valores SINT o INT a un tipo de datos ptimo (generalmente un valor DINT o REAL) durante la ejecucin. Puesto que esto requiere memoria y tiempo adicional, minimice el uso de los tipos de datos SINT e INT. superposicin de tareas peridicas Una condicin que ocurre cuando una tarea se est ejecutando y la misma tarea se vuelve a activar. El tiempo de ejecucin de la tarea es mayor que el rgimen peridico configurado para dicha tarea. Vea tarea peridica.
tag Un rea determinada de la memoria del controlador donde se almacenan datos. Los tags son el mecanismo bsico para la asignar memoria, hacer referencia a datos de la lgica y monitorizar los datos. La mnima asignacin de memoria para un tag es cuatro bytes. Cuando se crea un tag que almacena un valor BOOL, SINT o INT (los cuales son menores que cuatro bytes), el controlador asigna cuatro bytes, pero los datos slo llenan la parte que necesitan. Las matrices y tipos de datos definidos por el usuario almacenan datos en la memoria contigua y condensan tipos de datos ms pequeos en palabras de 32 bits. Los ejemplos siguientes indican la asignacin de memoria para varios tags: start, que usa el tipo de datos BOOL:
Glosario
43
temp_buffer[1] temp_buffer[3]
temp_buffer[0] temp_buffer[2] Vea tag de alias, tag de base, tag consumido. tag consumido Un tag que recibe los datos que son difundidos por un tag producido mediante un backplane, ControlLogix o ControlNet. Un tag consumido debe: estar dentro del alcance del controlador ser del mismo tipo de datos (incluso cualquier dimensin de matriz) que el tag remoto (tag producido) Vea tag producido. tag de alias Un tag que hace referencia a otro tag. Un alias puede referirse A otro alias o un tag base. Un alias tambin puede hacer referencia a un componente de otro tag refirindose a un miembro de una estructura, un elemento de matriz o un bit dentro de un tag o miembro. Vea tag base.
Glosario
44
tag de base Un tag que define la memoria en que se almacena el elemento de datos. Vea alias. tag producido Un tag que el controlador hace disponible para uso de otros controladores. Todos los tags producidos siempre son tags del controlador cubiertos. Vea tag consumido. tarea Un mecanismo de programacin para la ejecucin de un programa. Como opcin predeterminada, cada archivo de proyecto nuevo contiene una tarea continua preconfigurada. Se configuran las tareas peridicas adicionales segn sea necesario. Una tarea proporciona informacin de programacin y prioridades para un conjunto de uno o ms programas que se ejecutan segn criterios especficos. Una vez que se activa una tarea, todos los programas asignados (programados) a la tarea se ejecutan en el orden en el cual se muestran en el Controller Organizer. Slo se puede asignar un programa a una tarea a la vez. Vea tarea continua, tarea peridica. tarea continua La tarea que se ejecuta continuamente. La tarea continua se ejecuta en el segundo plano. Cualquier tiempo de CPU no asignado a otras operaciones (tales tareas de movimiento, comunicaciones y peridicas) se puede usar para ejecutar los programas dentro de la tarea continua. La tarea continua se reinicia por s sola despus que termina el ltimo de sus programas. Un proyecto no requiere una tarea continua. Si se usa, slo puede haber una tarea continua. Todas las tareas peridicas interrumpen a la tarea continua. Cuando se crea un proyecto, la Tarea principal predeterminada es la tarea continua. Puede dejar esta tarea tal como est, o puede cambiar sus propiedades (nombre, tipo, etc.). Vea tarea peridica.
Glosario
45
tarea peridica Una tarea que es activada por el sistema operativo en perodos de tiempo repetitivos. Use una tarea peridica para funciones que requieren una ejecucin precisa o determinista. Cuando caduca el tiempo, se activa la tarea y se ejecutan los programas de la misma. Los datos y salidas establecidos por los programas en la tarea retienen sus valores hasta la prxima ejecucin de la tarea o hasta que otra tarea los manipula. El perodo de tiempo se puede configurar de 1 ms a 2000 s. La opcin predeterminada es 10 ms. Asegrese de que el perodo de tiempo sea ms largo que la suma de los tiempos de ejecucin de todos los programas asignados a la tarea. Si el controlador detecta que ocurre una activacin de la tarea peridica para una tarea que ya est en operacin, ocurre un fallo menor.
ATENCIN
Las tareas peridicas siempre interrumpen la tarea continua. Segn el nivel de prioridad, una tarea peridica puede interrumpir otras tareas peridicas en el controlador. Vea tarea continua. tiempo de actualizacin de la red (NUT) El intervalo de tiempo repetitivo durante el cual se pueden enviar datos en una red ControlNet. El tiempo de actualizacin de la red tiene un rango de 2 ms a 100 ms. tiempo de ejecucin El total de tiempo requerido para la ejecucin de un solo programa. El tiempo de ejecucin incluye solamente el tiempo usado por dicho programa y excluye cualquier tiempo compartido/usado por programas en otras tareas que ejecutan otras operaciones. Cuando est en lnea, use el cuadro de dilogo Program Properties para ver el tiempo de escn mximo y el ltimo tiempo de escn (en s) para el programa actual. Estos valores son los tiempos de ejecucin para el programa y no incluyen cualquier tiempo usado en espera de otros programas o tareas de prioridad superior. Vea tiempo transcurrido.
Glosario
46
tiempo de escn Vea tiempo transcurrido, tiempo de ejecucin. tiempo transcurrido El total de tiempo necesario para la ejecucin de todas las operaciones configuradas dentro de una sola tarea. Si el controlador est configurado para ejecutar mltiples tareas, el tiempo transcurrido incluye cualquier tiempo usado/ compartido por otras tareas que ejecutan otras operaciones. Mientras est en lnea, usted puede usar el cuadro de dilogo Task Properties para ver el tiempo de escn mximo y el ltimo tiempo de escn en ms para la tarea actual. Estos valores son tiempos transcurridos, los cuales incluyen cualquier tiempo usado en espera de las tareas de prioridad mayor. Vea tiempo de ejecucin. tipo de datos Una definicin del tamao de memoria y la configuracin de memoria que se asignan cuando se crea un tag de ese tipo de datos. tipo de datos definido por el usuario Tambin puede crear sus propias estructuras, llamadas tipo de datos definido por el usuario (tambin comnmente denominadas estructuras definidas por el usuario). Un tipo de datos definido por el usuario agrupa diferentes tipos de datos en una sola entidad. Dentro de un tipo de datos definido por el usuario se definen los miembros. Al igual que los tags, los miembros tienen un nombre y un tipo de datos. Tambin se pueden incluir matrices y estructuras. Una vez que se ha creado un tipo de datos definido por el usuario, se puede crear uno o ms tags usando ese tipo de datos. Reduzca al mnimo el uso de los siguientes tipos de datos porque stos generalmente aumentan los requisitos de memoria y el tiempo de ejecucin de la lgica. INT SINT Por ejemplo, algunos valores del sistema usan el tipo de datos SINT o INT. Si usted crea un tipo de datos definido por el
Glosario
47
usuario para almacenar esos valores, entonces use el tipo de datos SINT o INT correspondiente. Si incluye miembros que representan dispositivos de E/S, debe usar la lgica de escalera para copiar los datos entre los miembros en la estructura y los tags de E/S correspondientes. Vea Cundo almacenar E/S en el bfer en la pgina 12-1. Cuando use los tipos de datos BOOL, SINT o INT, coloque los miembros que usan el mismo tipo de datos en secuencia:
ms eficiente BOOL BOOL BOOL DINT DINT menos eficiente BOOL DINT BOOL DINT BOOL
Puede usar matrices de una dimensin. Puede crear, editar y eliminar los tipos de datos definidos por el usuario solamente cuando programa fuera de lnea. Si modifica un tipo de datos definido por el usuario y cambia el tamao del mismo, los valores existentes de los tags que usan el tipo de datos se ponen en cero (0). Para copiar datos a una estructura, use la instruccin COP. Vea la Logix5000 Controllers General Instructions Reference Manual, publicacin 1756-RM003. Vea estructura.
Glosario
48
tipo de datos ptimo Un tipo de datos que usa una instruccin Logix5000 (generalmente los tipos de datos DINT y REAL). En los manuales de referencia del conjunto de instrucciones, un tipo de datos en negrita indica un tipo de datos ptimo. Las instrucciones se ejecutan ms rpidamente y requieren menos memoria si todos los operandos de la instruccin usan: el mismo tipo de datos un tipo de datos ptimo Si combina tipos de datos y usa tags que no son del tipo de datos ptimo, el controlador convierte los datos segn estas reglas Es alguno de los operandos un valor REAL?
Si: S No Entonces los operandos de entrada (por ej. origen, tag en una expresin, lmite) se convierten a: REAL DINT
Despus de la ejecucin de la instruccin, el resultado (un valor DINT o REAL) se convierte al tipo de datos de destino, si es necesario. Puesto que la conversin de datos requiere memoria y tiempo adicional, se puede aumentar la eficiencia de los programas: usando el mismo tipo de datos en toda la instruccin reduciendo al mnimo el uso de tipos de datos SINT o INT En otras palabras, use solamente tags DINT, o solamente tags REAL, junto con valores inmediatos, en las instrucciones. La siguiente tabla resume cmo el controlador convierte datos entre tipos de datos:
Conversin: Resultado:
nmero entero mayor a nmero entero El controlador trunca la porcin superior del nmero entero mayor y genera un overflow. menor Por ejemplo: Decimal DINT INT SINT SINT o INT a REAL 65,665 129 127 Binario 0000_0000_0000_0001_0000_0000_1000_0001 0000_0000_1000_0001 1000_0001
Glosario
49
Resultado: Se puede perder la precisin de datos. Los dos tipos de datos almacenan los datos en 32 bit, pero el tipo real usa algunos de sus 32 bits para almacenar el valor de exponente. Si se pierde la precisin, el controlador la toma de la porcin menos significativa del DINT. El controlador redondea la parte fraccionaria y trunca la porcin superior de la parte no fraccionaria. Si se pierden los datos, el controlador establece el indicador de estado de overflow. Los nmeros se redondean de la manera siguiente: Los nmeros que no son x.5 se redondean al nmero ms cercano. X.5 se redondea al nmero par ms cercano. Por ejemplo: REAL (origen) 2.5 1.6 1.5 1.4 1.4 1.5 1.6 2.5 DINT (resultado) 2 2 2 1 1 2 2 2
Glosario
50
transicin En un organigrama de funciones secuenciales (SFC), una transicin es la condicin o condiciones verdadera(s) o falsa(s) que determina(n) cundo ir al siguiente paso.
valor con punto flotante (coma flotante) Los valores reales que se muestran en pantalla y se introducen en el formato de coma flotante. El nmero de dgitos a la izquierda del punto decimal vara segn el tamao del nmero. Vea estilo. valor inmediato Un valor real o entero con signo de 32 bits. No es un tag que almacena un valor.
watchdog Especifica cunto tiempo una tarea puede ejecutarse antes de activar un fallo mayor. Cada tarea tiene un watchdog que monitorea la ejecucin de la tarea. El rango del tiempo del watchdog puede ser de 1 ms a 2,000,000 ms (2000 segundos). El valor predeterminado es 500 ms. El watchdog comienza a temporizar a partir del inicio de la tarea y se para cuando se han ejecutado todos los programas dentro de la tarea. Si la tarea toma ms tiempo que el tiempo del temporizador de control (watchdog), ocurrir un fallo mayor: (El tiempo incluye las interrupciones por otras tareas). Tambin ocurre un fallo por sobrepasar el tiempo de espera del watchdog (fallo mayor) si se activa nuevamente una tarea cuando sta se est ejecutando (superposicin de tarea peridica). Esto puede ocurrir si una tarea de prioridad inferior es interrumpida por una tarea de prioridad superior, lo cual retarda la realizacin de la tarea de prioridad inferior. Usted puede usar el administrador de fallos del controlador para borrar un fallo del watchdog. Si el mismo fallo del watchdog ocurre dos veces durante el mismo escn de lgica, el controlador entra en el modo fallo, independientemente de que el administrador de fallos del controlador borre el fallo del watchdog.
Glosario
51
ATENCIN
Si el watchdog llega a un valor preseleccionado configurable, ocurre un fallo mayor. Dependiendo del administrador de fallos del controlador, es posible que el controlador se desactive.
Para cambiar el tiempo de watchdog de una tarea: 1. Abra el proyecto RSLogix 5000. 2. En el Controller Organizer, haga clic con el botn derecho del mouse en name_of_task y seleccione Properties. 3. Haga clic en la ficha Configuration. 4. En el cuadro de texto Watchdog, escriba un tiempo de watchdog. 5. Haga clic en OK.
Glosario
52
ndice
A
abrir rutina 2-8 accin 5-19 almacenar 4-37 aadir 5-16 asignar calificador 5-17 asignar orden 5-22 booleana 4-18 calificador 4-21 cambiar el nombre 5-16 configurar 5-17 no booleana 4-17 programa 4-17, 5-19 restablecer 4-37 seleccionar entre booleano y no booleano 4-17 tipo de datos 4-19 usar expresin 5-18 uso de texto estructurado 5-19 accin booleana 4-18, 5-19 programa 4-18 alarma diagrama de funciones secuenciales 4-26, 5-12 alias crear 10-2 uso 10-1 almacenar accin 4-37 proyecto 23-5 archivo de proyecto crear 1-1 arreglo ndice 11-1 producir arreglo grande 15-1 ASCII asignacin de texto estructurado 6-4 buscar caracteres 17-4 comparar caracteres 17-4, 17-10 conectar dispositivo 16-2 configurar protocolo de usuario 16-5 configurar puerto en serie 16-3 construir cadena 17-18 convertir caracteres 17-12 descodificar mensaje 17-14 escribir caracteres 16-14 extraer caracteres 17-2 introducir caracteres 16-21 leer caracteres 16-9 manipular caracteres 17-1 organizar datos 16-8 asignacin carcter ASCII 6-4 no retentiva 6-3 retentiva 6-2 automatic reset diagrama de funciones secuenciales 4-34
B
bifurcacin diagrama de funciones secuenciales 4-11, 5-5, 5-6 lgica de escalera 8-2 bifurcacin de seleccin asignar prioridades 5-8 crear 5-6 descripcin general 4-14 bifurcacin simultnea 4-15 forzado 18-9, 18-12 introducir 5-5 opcin "step through" 18-9 borrar fallo mayor 13-6, 19-1 fallo menor 21-1 memoria no voltil 23-12 bfer E/S 12-1 buscar un cdigo de barras 17-4
C
cable diagrama de bloques de funcin 7-5, 7-8, 7-18 diagrama de funciones secuenciales 5-9 cadena buscar una matriz de caracteres 17-4 comparar caracteres 17-4, 17-10 convertir caracteres 17-12 crear 17-18 escribir caracteres 16-14 evaluacin en texto estructurado 6-8 extraer caracteres 17-2 introducir caracteres 16-21 leer caracteres 16-9 organizar datos 16-8 Tipo de datos 16-8 calificador asignar 5-17 seleccionar 4-21 cambiar el nombre accin 5-16 bloque de funcin 7-21 paso 5-11 transicin 5-14 carga 13-6 cargar un proyecto 23-9 carpeta abrir 2-7 cerrar 2-7
Publicacin 1756-PM001E-ES-P - Agosto 2002
ii
ndice
CASE 6-16 clave de origen 24-1 cdigo de barras buscar una coincidencia 17-4 extraer caracteres 17-2 probar caracteres 17-4, 17-10 cdigos fallo mayor A-1 fallo menor A-3 comentarios texto estructurado 6-26 comparar Caracteres ASCII 17-4, 17-10 comunicarse otros controladores 14-1 condicin de rengln 8-4 conectar diagrama de funciones secuenciales 4-16 configurar accin 5-17 alarma 5-12 carga desde la memoria no voltil 23-9 cargar desde la memoria no voltil 23-5 driver 13-1 ejecucin del diagrama de funciones secuenciales 4-44, 5-28 paso 5-11 protocolo de usuario para ASCII 16-5 puerto en serie para ASCII 16-3 rutina principal 2-12 conjunto de instrucciones B-4 construccin texto estructurado 6-12 consumir enteros desde PLC-5C 14-9 tag 14-1 control de programa/operador descripcin general 7-12 controlador cambiar propiedades 1-3 desactivar 20-1 descarga 13-3 informacin sobre la memoria 9-6 memoria no voltil 23-3 modo 13-5 suspender 20-1 controller organizer abrir rutina 2-8 navegar 2-7 ControlNet configurar driver 13-1 producir y consumir datos 14-1 convertir Caracteres ASCII 17-12
Publicacin 1756-PM001E-ES-P - Agosto 2002
crear alias 10-2 archivo de proyecto 1-1 cadena 17-18 driver 13-1 estructura 3-8 matriz 3-10 programa 2-10 rutina 2-11 tag 3-10, 8-10
definiciones B-2
introduccin B-1 lenguaje de programacin B-3 portabilidad de programas B-4 sistema operativo B-2 tablas B-5
D
DATA producir y consumir 14-1 Datos ASCII 16-8 Introduzca caracteres ASCII 16-21 datos definiciones B-2 forzado 18-6, 18-8 datos del sistema acceso 9-3 desactivar el controlador 20-1 descarga 13-3 descripcin texto estructurado 6-26 diagrama de bloques de funcin aada un elemento 7-16 aada una hoja 7-16 aplicaciones para 2-5 asigne un valor inmediato 7-22 cambiar el nombre de un bloque 7-21 conecte los elementos 7-19 cree un retardo de escn 7-10 enclavamiento de datos 7-5
ndice
iii
forzar un valor 18-1 mostrar un pin 7-18 ocultar un pin 7-18 orden de ejecucin 7-5 organizacin de las hojas 7-2 resolucin de un lazo 7-8, 7-19 resolucin del flujo de datos entre dos bloques 7-10 seleccin de elementos 7-3 diagrama de funciones secuenciales accin
cambiar el nombre 5-11 configurar 5-11 definir 4-6 descripcin general 4-6 organizar 4-11
poner en pausa un SFC 4-45 regresar al paso previo 5-9 reiniciar 4-41 restablecer
asignar orden 5-22 cambiar el nombre 5-16 configurar 5-17 descripcin general 4-17 introducir 5-16 llamar a una subrutina 5-21 programa 5-19 usar una accin booleana 4-18
accin booleana 4-18 anidar 4-43 aplicaciones para 2-5 avanzar un paso en una bifurcacin simultnea 18-9 avanzar un paso en una transicin 18-9 bifurcacin de seleccin
E
E/S bfer 12-1 sincronizar con la lgica 12-1 ejecucin diagrama de funciones secuenciales 4-45, 5-28 eliminar forzado 18-3, 18-13 en serie cableado 16-2 conecte un dispositivo ASCII 16-2 configure el puerto para ASCII 16-3 enclavamiento de datos diagrama de bloques de funcin 7-5
Publicacin 1756-PM001E-ES-P - Agosto 2002
iv
ndice
enviar Caracteres ASCII 16-14 escritura Caracteres ASCII 16-14 Estado monitorear 9-3 estado forzado 18-4 memoria 9-6 monitorear 9-1 estructura crear 3-8 organizar 3-1 SFC_ACTION 4-19 SFC_STEP 4-8 SFC_STOP 4-42 estructura SFC_ACTION 4-19 estructura SFC_STEP 4-8 Estructura SFC_STOP 4-42 Ethernet configurar driver 13-1 producir y consumir tags 14-1 expresin expresin BOOL
crear definido por el usuario 20-1 desarrollar rutina para borrar fallo 19-1 desarrollo de rutina para borrar el fallo 22-1 direccin indirecta 19-6 durante el preescn 19-6 monitorizar menor 21-1 prueba de una rutina de fallo 19-10 fallo mayor cdigos A-1 crear definido por el usuario 20-1 desarrollar una rutina de fallo 19-1 desarrollo de rutina de fallo 22-1 fallo menor borrar 21-1 cdigos A-3 lgica 21-1 FORDO 6-18 forzado diagrama de funciones secuenciales 18-9, 18-12 eliminar 18-3, 18-13 habilitar 18-2 indicador LED 18-4 inhabilitar 18-3, 18-13 monitorear 18-4 opciones 18-6 precauciones de seguridad 18-2 tag 18-6, 18-8 funciones texto estructurado 6-5
G
guardar 1-3 guardar como 1-3
descripcin general 6-4 funciones 6-5 operadores aritmticos 6-5 operadores de bit 6-10 operadores de relacin 6-7 operadores lgicos 6-9
expresin BOOL diagrama de funciones secuenciales 4-24, 5-14 texto estructurado 6-4 expresin numrica 5-12, 5-18, 6-4 extraer Caracteres ASCII 17-2
H
habilitar forzado 18-2 Herramienta de proteccin de origen RSLogix 5000 24-1 hoja aadir 7-16 conectar 7-23 diagrama de bloques de funcin 7-2
I
ICON aadir 7-23 introducir 7-16 seleccin 7-3 IF...THEN 6-13 indicador "assume data available" 7-8, 7-10, 7-19 indicador LED forzado 18-4
F
fallo borrar 13-6, 19-1 cdigos de fallo mayor A-1 cdigos de fallos menores A-3
Publicacin 1756-PM001E-ES-P - Agosto 2002
ndice
inhabilitar forzado 18-3, 18-13 instruccin EOT 4-25 instruccin SFP 4-45 instruccin SFR 4-41, 4-43, 4-45 introducir accin 5-16 bifurcacin de seleccin 5-6 bifurcacin simultnea 5-5 Caracteres ASCII 16-21 diagrama de funciones secuenciales 5-3 direccin 8-10 elemento de bloque de funcin 7-16 ICON 7-23 lgica de escalera 8-9 OCON 7-23 IREF enclavamiento de datos 7-5 introducir 7-16 para asignar un valor inmediato 7-22 seleccin 7-3
almacenar un proyecto 23-5 borrar 23-12 cargar opciones de imagen 23-5 cargar un proyecto 23-9 controladores compatibles 23-3 descripcin general 23-1 Tarjeta 1784-CF64 Industrial CompactFlash 23-4 Verificar una carga 23-11 mensaje a mltiples controladores 14-13 a un solo controlador 14-11 descodificar cadena 17-14 modo controlador 13-5 modo marcha 13-5 modo programa 13-5 modo prueba 13-5 monitorear forzados 18-4
N
nombre nombre de tag 7-4, 8-7 nmero de ranura 1-3
L
lazo de retroalimentacin diagrama de bloques de funcin 7-8 lazo no resuelto diagrama de bloques de funcin 7-8 lectura Caracteres ASCII 16-9 lenguaje de programacin cumplimiento de la norma IEC61131-3 B-3 seleccionar 2-5 lgica de escalera anular un valor 18-1 aplicaciones para 2-5 asigne un valor inmediato 8-12 bifurcacin 8-2 condicin de rengln 8-4 desarrollo 8-5 forzar un valor 18-1 introducir 8-9 organice las instrucciones de entrada 8-6 organice las instrucciones de salida 8-7
O
OCON aadir 7-23 introducir 7-16 seleccin 7-3 opcin "step through" bifurcacin simultnea 18-9 transicin 18-9 opcin programmatic reset 4-32 operadores orden de ejecucin
M
manipular cadena 17-1 marcar como booleana 5-19 matriz crear 3-10 organizar 3-1 memoria 9-6 memoria no voltil
vi
ndice
P
paro diagrama de funciones secuenciales 4-40 Tipo de datos 4-42 paso alarma 4-26 aadir una accin 5-16 asignar tiempo preseleccionado 5-11 bifurcacin de seleccin 4-14 bifurcacin simultnea 4-15 cambiar el nombre 5-11 configurar 5-11 configurar alarma 5-12 definir 4-6 organizar en diagrama de funciones secuenciales 4-11 secuencia 4-13 temporizador 4-26 tipo de datos 4-8 peso convertir 17-12 PLC-5C compartir datos 14-6, 14-7, 14-9 poner en pausa un SFC 4-45 post-escn diagrama de funciones secuenciales 4-29 texto estructurado 6-3 preescn borrar un fallo mayor 19-6 prioridad bifurcacin de seleccin 5-8 tarea peridica 2-3 producir arreglo grande 15-1 tag 14-1 tags para PLC-5C 14-6, 14-7 programa accin 4-17, 5-19 accin booleana 4-18 crear 2-10 portabilidad B-4 rutina principal 2-12 programar transicin 5-14 proteccin de origen de rutina 24-1 proteger proyecto 24-1, 24-12 rutina 24-1
Publicacin 1756-PM001E-ES-P - Agosto 2002
protocolo de usuario configurar para ASCII 16-5 proyecto almacenar en la memoria no voltil 23-5 carga 13-6 carga desde la memoria no voltil 23-9 cargar desde la memoria no voltil 23-5 descarga 13-3 memoria no voltil 23-1 proteger 24-1, 24-12 restringir acceso 24-12 verificar 2-12 prueba de una rutina de fallo 19-10
R
reiniciar diagrama de funciones secuenciales 4-41 REPEATUNTIL 6-23 restablecer accin 4-37 SFC 4-41 restablecer un SFC 4-43, 4-45 retardo de escn diagrama de bloques de funcin 7-10 RSLinx configurar 13-1 rutina abrir 2-8 anidar dentro de un diagrama de funciones secuenciales 4-43 como transicin 4-25 configurar como rutina principal 2-12 crear 2-11 proteger 24-1 restringir acceso 24-1 verificar 5-29, 7-24, 8-12 rutina principal usar el diagrama de funciones secuenciales 4-6
S
salto diagrama de funciones secuenciales 4-16 seguridad proteger un proyecto 24-12 proteger una rutina 24-1 smbolo crear 10-1 sistema operativo B-2 software RSI Security Server 24-12 software Security Server 24-12 string manipular 17-1
ndice
vii
T
tabla de datos 3-1 tablas sobre cumplimiento B-5 tag asignar 8-10
forzar un valor 18-1 funciones 6-5 IF...THEN 6-13 operadores aritmticos 6-5 operadores de bit 6-10 operadores de relacin 6-7 operadores lgicos 6-9 REPEATUNTIL 6-23 WHILEDO 6-21 tipo de datos definido por el usuario crear 3-8 Tipo de datos STRING crear 16-8 transicin cambiar el nombre 5-14 definir 4-22 expresin BOOL 4-24 forzado 18-9, 18-12 instruccin EOT 4-25 llamar a una subrutina 5-15 opcin "step through" 18-9 programar 5-14 seleccionar mtodo de programacin 4-24 usar una subrutina 4-25
U
ltimo escn diagrama de funciones secuenciales 4-29
V
valor inmediato diagrama de bloques de funcin 7-22 lgica de escalera 8-12 verificar proyecto 2-12 rutina 5-29, 7-24, 8-12
W
WHILEDO 6-21
viii
ndice
[ctrl-@] NUL 0
Para obtener asistencia tcnica, llame al representante regional de Rockwell Automation o comunquese con Rockwell Automation de la siguientes manera:
Telfono Estados Unidos/Canad Fuera de Estados Unidos/Canad 1.440.646.5800 Puede obtener el nmero telefnico para su pas mediante la Internet: 1. Vaya a http://www.ab.com 2. Haga clic en Product Support (http://support.automation.rockwell.com) 3. Bajo Support Centers, haga clic en Contact Information 1. Vaya a http://www.ab.com 2. Haga clic en Product Support (http://support.automation.rockwell.com)
Internet
Contraportada
Allen-Bradley, ControlLogix, DH+, Logix5000, PLC-5, RSLogix 5000, RSLinx, RSNetWorx y SLC son marcas comerciales de Rockwell Automation. ControlNet es una marca comercial de ControlNet International, Ltd. Ethernet es una marca comercial de Digital Equipment Corporation, Intel y Xerox Corporation.
PN 957678-92
2002 Rockwell Automation. Todos los derechos reservados. Impreso en EE.UU.