1756-pm001_-es-p

442
Procedimientos comunes de los controladores Logix5000™ 1756-Lx, 1769-Lx, 1789-Lx, 1794-Lx, PowerFlex 700 Manual de programación

Upload: alenc405833

Post on 30-Jul-2015

224 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: 1756-pm001_-es-p

Procedimientos comunes de los controladores Logix5000™1756-Lx, 1769-Lx, 1789-Lx, 1794-Lx, PowerFlex 700

Manual de programación

Page 2: 1756-pm001_-es-p

Información importante para el usuario

Debido a la variedad de usos de los productos descritos en esta publicación, las personas responsables de la aplicación y uso de estos productos deben asegurarse de que se hayan seguido todos los pasos necesarios para que cada aplicación y uso cumpla con todos los requisitos de rendimiento y seguridad, incluyendo leyes, reglamentos, códigos y normas aplicables. En ningún caso se responsabilizará a Rockwell Automation por daños indirectos o resultantes del uso o aplicación de estos productos.

Los ejemplos de ilustraciones, gráficos, programas y esquemas mostrados en esta publicación tienen la única intención de ilustrar el texto. Debido a las muchas variables y requisitos asociados con cualquier instalación particular, Rockwell Automation no puede asumir responsabilidad u obligación (incluyendo responsabilidad de propiedad intelectual) por el uso real basado en los ejemplos mostrados en esta publicación.

La publicación SGI-1.1 de Allen-Bradley, Safety Guidelines for the Application, Installation and Maintenance of Solid-State Control (disponible a través de la oficina regional de Rockwell Automation), describe algunas diferencias importantes entre dispositivos de estado sólido y dispositivos electromecánicos, las cuales deben tenerse en consideración al usar productos tales como los descritos en esta publicación.

Está prohibida la reproducción total o parcial del contenido de esta publicación de propiedad exclusiva, sin el permiso escrito de Rockwell Automation.

En esta publicación hacemos estas anotaciones para informarle de consideraciones de seguridad Las siguientes anotaciones y sus declaraciones ayudarán a identificar un posible peligro, evitar un posible peligro y reconocer las consecuencias de un posible peligro.

Identifica información acerca de prácticas o circunstancias que pueden causar una explosión en un ambiente peligroso, lo cual podría causar lesiones personales o la muerte, daños materiales o pérdidas económicas.

ATENCIÓN

!Identifica información sobre prácticas o circunstancias que pueden conducir a lesiones personales o la muerte, o a daños materiales o pérdidas económicas.

IMPORTANTE Identifica información importante para la aplicación y entendimiento correctos del producto. Sírvase tomar nota de que en esta publicación se usa el punto decimal para separar la parte entera de la decimal de todos los números.

ADVERTENCIA

!

Page 3: 1756-pm001_-es-p

Resumen de los cambios

Introducción Esta versión del documento contiene información nueva y actualizada.

Información actualizada El documento contiene los cambios siguientes:

Cambio: Capítulo/Apéndice:

Información adicional sobre cómo planificar las tareas de un proyecto, inclusive la selección del lenguaje de programación apropiado para la aplicación

2

Procedimientos adicionales sobre cómo trabajar con el organizador del controlador, cómo crear tareas, cómo crear programas y cómo crear las rutinas.

Nueva información sobre cómo diseñar un organigrama de funciones secuenciales para la máquina o proceso.

4

Nueva información sobre cómo introducir y configurar un organigrama de funciones secuenciales usando el software RSLogix 5000

5

Nueva información sobre cómo usar el lenguaje de programación de texto estructurado, incluyendo asignaciones, expresiones, instrucciones, construcciones y comentarios

6

Información adicional sobre cómo programar un diagrama de bloque de función, incluyendo cómo usar las hojas, cómo definir el orden de ejecución, cómo resolver lazos, cómo definir el control del programa/operador, cómo introducir elementos y cómo configurar elementos

7

Información adicional sobre cómo organizar e introducir la lógica de escalera 8

Información nueva sobre cómo obtener información de memoria para un controlador 9

Información actualizada sobre el forzado de valores de E/S 18

Nueva información sobre como forzar y ejecutar los elementos SFC paso a paso

Nueva información sobre la tarjeta 1784-CF64 Industrial CompactFlash (memoria no volátil para el controlador 1756-L63 ControlLogix)

23

Procedimientos actualizados para la función de protección de la rutina de origen 24

2 nuevos códigos de fallo mayores A

Información adicional sobre cumplimiento de la norma IEC61131-3 relacionada con los lenguajes de programación de diagrama de funciones secuenciales y texto estructurado

B

Nuevas definiciones relacionadas con los diagramas de funciones secuenciales Glosario

1 Publicación 1756-PM001E-ES-P - Agosto 2002

Page 4: 1756-pm001_-es-p

2 Resumen de los cambios

Notas:

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 5: 1756-pm001_-es-p

Prefacio

Propósito de este manual Este manual sirve como guía para el desarrollo de proyectos para los controladores Logix5000. Proporciona procedimientos paso a paso sobre cómo realizar las siguientes tareas, las cuales son comunes para todos los controladores Logix5000.

• Organización de tareas, programas y rutinas

• Organización de tags

• Diseño de un diagrama de funciones secuenciales

• Programación de rutinas

• Prueba de un proyecto

• Manejo de fallos

El término controlador Logix5000 se refiere a cualquier controlador basado en el sistema operativo Logix, tal como:

• controladores CompactLogix™

• controladores ControlLogix™

• controladores FlexLogix™

• controladores SoftLogix™

Este manual se usa junto con los manuales del usuario para el tipo de controlador específico. Los manuales del usuario cubren tareas tales como:

• Colocación y configuración de E/S

• Comunicación con dispositivos a través de diversas redes

• Mantenimiento de la batería

Quién debe usar este manual

Este manual está diseñado para quienes programan aplicaciones que usan controladores Logix5000, tales como:

• ingenieros de software

• ingenieros de control

• ingenieros de aplicación

• técnicos de instrumentación

1 Publicación 1756-PM001E-ES-P - Agosto 2002

Page 6: 1756-pm001_-es-p

2 Prefacio

Cuándo usar este manual Use este manual cuando realice las siguientes acciones:

• desarrollo del código básico de la aplicación

• modificación de una aplicación existente

• realización de pruebas aisladas de la aplicación

A medida que integre la aplicación con los dispositivos de E/S, controladores y redes en el sistema:

• Consulte el manual del usuario del tipo específico de controlador.

• Use este manual como referencia, cuando sea necesario.

Cómo usar este manual Este manual está dividido en las tareas básicas que se realizan durante la programación de un controlador Logix5000.

• Cada capítulo cubre una tarea.

• Las tareas están organizadas en la secuencia en la cual normalmente se realizarían.

A medida que use este manual, verá algunos términos que están formateados diferentemente del resto del texto:

El texto que está en:

Identifica: Por ejemplo: Significa:

Cursiva el nombre real de un ítem que usted ve en la pantalla o en un ejemplo

Haga clic con el botón derecho del mouse en Definido por el usuario …

Haga clic con el botón derecho del mouse en el ítem que tiene el nombre Definido por el usuario.

negrita una entrada en el “Glosario” Escriba un nombre … Si desea información 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.

courier información que debe suministrar basada en su aplicación (una variable)

Haga clic con el botón derecho del mouse en name_of_program …

Usted debe identificar el programa específico en la aplicación. Generalmente es un nombre o variable que usted ha definido.

entre corchetes una tecla del teclado Presione [Enter]. Presione la tecla Enter.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 7: 1756-pm001_-es-p

Tabla de contenido

Capítulo 1Administración de archivos del proyecto

Creación de un archivo de proyecto . . . . . . . . . . . . . . . . . 1-1Guarde los cambios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3

Capítulo 2Organización de tareas, programas y rutinas

Cuándo usar este procedimiento . . . . . . . . . . . . . . . . . . . . 2-1Antes de comenzar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1Cómo usar este procedimiento . . . . . . . . . . . . . . . . . . . . . 2-1Definiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2

tarea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2tarea continua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2tarea periódica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3Programa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4Rutina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4Rutina principal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4

Planifique las tareas del proyecto. . . . . . . . . . . . . . . . . . . . 2-4Defina las funciones del proyecto. . . . . . . . . . . . . . . . . 2-5Asigne cada función a una tarea . . . . . . . . . . . . . . . . . . 2-6

Use el Controller Organizer . . . . . . . . . . . . . . . . . . . . . . . . 2-7Abra o cierre una carpeta . . . . . . . . . . . . . . . . . . . . . . . 2-7Abra una rutina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-8

Cree una tarea periódica . . . . . . . . . . . . . . . . . . . . . . . . . . 2-9Cree un programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-10Cree una rutina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-11Configure una rutina como rutina principal . . . . . . . . . . . . 2-12Verifique el proyecto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-12

Capítulo 3Organización de tags Planifique los tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1

Creación de un tipo de datos definido por el usuario . . . . . 3-8Notas: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9

Creación de un tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10Creación de tags usando Microsoft® Excel® . . . . . . . . . . . 3-11

Capítulo 4Diseño de un diagrama de funciones secuenciales

Cuándo usar este procedimiento . . . . . . . . . . . . . . . . . . . . 4-1Cómo usar este procedimiento . . . . . . . . . . . . . . . . . . . . . 4-1¿Qué es un diagrama de funciones secuenciales? . . . . . . . . 4-2Cómo diseñar un SFC: Descripción general . . . . . . . . . . . . 4-4Definir las tareas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5Seleccionar cómo ejecutar el SFC. . . . . . . . . . . . . . . . . . . . 4-6Definir los pasos del proceso. . . . . . . . . . . . . . . . . . . . . . . 4-6

Siga estas pautas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-7Estructura SFC_STEP . . . . . . . . . . . . . . . . . . . . . . . . . . 4-8

Organizar los pasos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-11Descripción general . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-11Secuencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-13Bifurcación de selección . . . . . . . . . . . . . . . . . . . . . . . 4-14Bifurcación simultánea . . . . . . . . . . . . . . . . . . . . . . . . . 4-15

i Publicación 1756-PM001E-ES-P - Agosto 2002

Page 8: 1756-pm001_-es-p

ii Tabla de contenido

Conectar a un paso previo . . . . . . . . . . . . . . . . . . . . . . 4-16Añadir acciones para cada paso. . . . . . . . . . . . . . . . . . . . . 4-17

¿Cómo desea usar la acción?. . . . . . . . . . . . . . . . . . . . . 4-17Usar una acción no booleana . . . . . . . . . . . . . . . . . . . . 4-17Usar una acción booleana . . . . . . . . . . . . . . . . . . . . . . 4-18Estructura SFC_ACTION . . . . . . . . . . . . . . . . . . . . . . . . 4-19

Describir cada acción en pseudocódigo . . . . . . . . . . . . . . . 4-20Seleccionar un calificador para una acción . . . . . . . . . . . . . 4-21Definir las condiciones de la transición . . . . . . . . . . . . . . . 4-22

Tag de transición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-24¿Cómo desea programar la transición?. . . . . . . . . . . . . . 4-24Usar una expresión BOOL . . . . . . . . . . . . . . . . . . . . . . 4-24Llamar a una subrutina. . . . . . . . . . . . . . . . . . . . . . . . . 4-25

Transición después de un tiempo especificado. . . . . . . . . . 4-26Desactivar un dispositivo al final de un paso . . . . . . . . . . . 4-29

Seleccionar la opción de un último escán . . . . . . . . . . . 4-29Usar la opción Don’t Scan . . . . . . . . . . . . . . . . . . . . . . 4-31Usar la opción Programmatic Reset. . . . . . . . . . . . . . . . 4-32Usar la opción Automatic Reset . . . . . . . . . . . . . . . . . . 4-34

Mantener algo activado de paso a paso . . . . . . . . . . . . . . . 4-35¿Cómo desea controlar el dispositivo? . . . . . . . . . . . . . . 4-35Usar una bifurcación simultánea . . . . . . . . . . . . . . . . . . 4-36Almacenar y restablecer una acción . . . . . . . . . . . . . . . 4-37Usar un paso grande . . . . . . . . . . . . . . . . . . . . . . . . . . 4-39

Terminar el SFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-40¿Al final del SFC, qué desea hacer? . . . . . . . . . . . . . . . . 4-40Usar un elemento de paro . . . . . . . . . . . . . . . . . . . . . . 4-40Reiniciar (restablecer) el SFC . . . . . . . . . . . . . . . . . . . . 4-41Estructura SFC_STOP . . . . . . . . . . . . . . . . . . . . . . . . . . 4-42

Anidar un SFC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-43Pasar parámetros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-44

Configurar cuándo retornar al OS/JSR . . . . . . . . . . . . . . . . 4-44Pausa o restablecer un SFC . . . . . . . . . . . . . . . . . . . . . . . . 4-45Diagramas de ejecución . . . . . . . . . . . . . . . . . . . . . . . . . . 4-45

Capítulo 5Programación de un diagrama de funciones secuenciales

Cuándo usar este procedimiento . . . . . . . . . . . . . . . . . . . . 5-1Antes de usar este procedimiento . . . . . . . . . . . . . . . . . . . 5-1Cómo usar este procedimiento . . . . . . . . . . . . . . . . . . . . . 5-2Añadir un elemento de SFC . . . . . . . . . . . . . . . . . . . . . . . . 5-3

Añadir y conectar manualmente los elementos . . . . . . . 5-3Añadir y conectar automáticamente los elementos. . . . . 5-4Arrastrar y colocar elementos . . . . . . . . . . . . . . . . . . . . 5-4

Crear una bifurcación simultánea. . . . . . . . . . . . . . . . . . . . 5-5iniciar una bifurcación simultánea. . . . . . . . . . . . . . . . . 5-5Terminar una bifurcación simultánea . . . . . . . . . . . . . . 5-5

Crear una bifurcación de selección . . . . . . . . . . . . . . . . . . 5-6Iniciar una bifurcación de selección . . . . . . . . . . . . . . . 5-6Terminar una bifurcación de selección . . . . . . . . . . . . . 5-7

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 9: 1756-pm001_-es-p

Tabla de contenido iii

Establecer las prioridades de una bifurcación de selección . 5-8Regresar a un paso previo . . . . . . . . . . . . . . . . . . . . . . . . . 5-9

Conectar un cable al paso . . . . . . . . . . . . . . . . . . . . . . 5-9Ocultar un cable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-10Mostrar un cable oculto . . . . . . . . . . . . . . . . . . . . . . . . 5-10

Cambiar el nombre de un paso . . . . . . . . . . . . . . . . . . . . . 5-11Configurar un paso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-11

Asignar el tiempo preseleccionado para un paso. . . . . . 5-11Configurar alarmas para un paso . . . . . . . . . . . . . . . . . 5-12Usar una expresión para calcular un tiempo . . . . . . . . . 5-12

Cambiar el nombre de una transición. . . . . . . . . . . . . . . . . 5-14Programar una transición. . . . . . . . . . . . . . . . . . . . . . . . . . 5-14

Introducir una expresión BOOL . . . . . . . . . . . . . . . . . . 5-14Llamar a una subrutina. . . . . . . . . . . . . . . . . . . . . . . . . 5-15

Añadir una acción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-16Cambiar el nombre de una acción . . . . . . . . . . . . . . . . . . . 5-16Configurar una acción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-17

Cambiar el calificador de una acción . . . . . . . . . . . . . . 5-17Calcular un tiempo preseleccionado en tiempo de ejecución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18Marcar una acción como acción booleana. . . . . . . . . . . 5-19

Programar una acción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-19Introducir texto estructurado . . . . . . . . . . . . . . . . . . . . 5-19Llamar a una subrutina. . . . . . . . . . . . . . . . . . . . . . . . . 5-21

Asignar el orden de ejecución de las acciones . . . . . . . . . . 5-22Documentar el SFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-23

Añadir comentarios de texto estructurado . . . . . . . . . . . 5-23Añadir una descripción de tag . . . . . . . . . . . . . . . . . . . 5-24Añadir un cuadro de texto . . . . . . . . . . . . . . . . . . . . . . 5-25

Mostrar u ocultar cuadros de texto o descripciones de tag . 5-26Mostrar u ocultar cuadros de texto o descripciones . . . . 5-26Ocultar una descripción de tag individual . . . . . . . . . . . 5-27

Configurar la ejecución del SFC . . . . . . . . . . . . . . . . . . . . . 5-28Verificar la rutina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-29

Capítulo 6Programación de texto estructurado

Cuándo usar este capítulo . . . . . . . . . . . . . . . . . . . . . . . . . 6-1Sintaxis del texto estructurado . . . . . . . . . . . . . . . . . . . . . . 6-1Asignaciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2

Especifique una asignación no retentiva . . . . . . . . . . . . 6-3Asigne un carácter ASCII a una cadena . . . . . . . . . . . . . 6-4

Expresiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4Use funciones y operadores y aritméticos . . . . . . . . . . . 6-5Use operadores de relación . . . . . . . . . . . . . . . . . . . . . 6-7Use operadores lógicos . . . . . . . . . . . . . . . . . . . . . . . . 6-9Use operadores de bit . . . . . . . . . . . . . . . . . . . . . . . . . 6-10Determine el orden de ejecución . . . . . . . . . . . . . . . . . 6-10

Instrucciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-11Construcciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-12

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 10: 1756-pm001_-es-p

iv Tabla de contenido

IF...THEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-13CASE...OF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-16FOR…DO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-18WHILE…DO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-21REPEAT…UNTIL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-23Comentarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-26

Capítulo 7Programación de un diagrama de bloques de función

Cuándo usar este procedimiento . . . . . . . . . . . . . . . . . . . . 7-1Antes de usar este procedimiento . . . . . . . . . . . . . . . . . . . 7-1Cómo usar este procedimiento . . . . . . . . . . . . . . . . . . . . . 7-1Identifique las hojas para la rutina . . . . . . . . . . . . . . . . . . . 7-2Seleccione los elementos de los bloques de función. . . . . . 7-3Seleccione un nombre de tag para un elemento . . . . . . . . . 7-4Defina el orden de ejecución. . . . . . . . . . . . . . . . . . . . . . . 7-5

Enclavamiento de datos . . . . . . . . . . . . . . . . . . . . . . . . 7-5Orden de ejecución . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-7Resuelva un lazo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-8Resuelva el flujo de datos entre dos bloques . . . . . . . . . 7-10Cree un retardo de escán . . . . . . . . . . . . . . . . . . . . . . . 7-10Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-11

Identifique los conectores . . . . . . . . . . . . . . . . . . . . . . . . . 7-11Defina el control de programa/operador . . . . . . . . . . . . . . 7-12Añada una hoja. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-16Añada un elemento de bloque de función . . . . . . . . . . . . . 7-16Conecte los elementos . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-18

Mostrar u ocultar un pin. . . . . . . . . . . . . . . . . . . . . . . . 7-18Conecte elementos juntos. . . . . . . . . . . . . . . . . . . . . . . 7-19Marque un cable con el indicador Assume Data Available . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-19

Asigne un tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-20Cree y asigne un nuevo tag . . . . . . . . . . . . . . . . . . . . . 7-20Cambie el nombre del tag de un bloque de función . . . 7-21Asigne un tag existente . . . . . . . . . . . . . . . . . . . . . . . . 7-21

Asigne un valor inmediato (constante) . . . . . . . . . . . . . . . . 7-22Use un IREF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-22Introduzca un valor en el tag de un bloque . . . . . . . . . 7-22

Conecte bloques con un OCON e ICON . . . . . . . . . . . . . . 7-23Añada un OCON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-23Añada un ICON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-23

Verifique la rutina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-24

Capítulo 8Programación de lógica de escalera

Cuándo usar este procedimiento . . . . . . . . . . . . . . . . . . . . 8-1Antes de usar este procedimiento . . . . . . . . . . . . . . . . . . . 8-1Cómo usar este procedimiento . . . . . . . . . . . . . . . . . . . . . 8-1Definiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2

Instrucción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2Bifurcación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 11: 1756-pm001_-es-p

Tabla de contenido v

Condición de renglón . . . . . . . . . . . . . . . . . . . . . . . . . 8-4Escritura de lógica de escalera . . . . . . . . . . . . . . . . . . . . . . 8-5

Seleccione las instrucciones requeridas . . . . . . . . . . . . . 8-5Organice las instrucciones de entrada . . . . . . . . . . . . . . 8-6Organice las instrucciones de salida . . . . . . . . . . . . . . . 8-7Seleccione un nombre de tag para un operando . . . . . . 8-7

Introducción de la lógica de escalera . . . . . . . . . . . . . . . . . 8-9Añada un elemento en la ubicación del cursor . . . . . . . 8-9Arrastre y coloque un elemento . . . . . . . . . . . . . . . . . . 8-10

Asignación de operandos . . . . . . . . . . . . . . . . . . . . . . . . . 8-10Cree y asigne un nuevo tag . . . . . . . . . . . . . . . . . . . . . 8-10Seleccione un nombre o un tag existente . . . . . . . . . . . 8-11Arrastre un tag desde la ventana Tags. . . . . . . . . . . . . . 8-12Asigne un valor inmediato (constante) . . . . . . . . . . . . . 8-12

Verificación de la rutina . . . . . . . . . . . . . . . . . . . . . . . . . . 8-12

Capítulo 9Acceso a valores del sistema Cuándo usar este procedimiento . . . . . . . . . . . . . . . . . . . . 9-1

Cómo usar este procedimiento . . . . . . . . . . . . . . . . . . . . . 9-1Monitoreo de los indicadores de estado . . . . . . . . . . . . . . . 9-1Obtener y establecer datos del sistema. . . . . . . . . . . . . . . . 9-3Determine la información de memoria del controlador . . . . 9-6

Obtener información sobre memoria proveniente del controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-7Seleccione la información de memoria que desea . . . . . 9-8Conversión de INT a DINT. . . . . . . . . . . . . . . . . . . . . . 9-9

Capítulo 10Asignación de alias Alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-1

Visualización de información de alias. . . . . . . . . . . . . . . . . 10-2Asignación de un alias . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-2

Capítulo 11Asignación de una dirección indirecta

Cuándo asignar una dirección indirecta . . . . . . . . . . . . . . . 11-1Expresiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-3

Capítulo 12Almacenamiento de E/S en el búfer

Cuándo almacenar E/S en el búfer. . . . . . . . . . . . . . . . . . . 12-1Almacenamiento de E/S en el búfer . . . . . . . . . . . . . . . . . . 12-1

Capítulo 13Prueba de un proyecto Prueba de un proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-1

Configure un driver de comunicación . . . . . . . . . . . . . . . . 13-1Descargue el proyecto al controlador. . . . . . . . . . . . . . . . . 13-3Seleccione un modo para el controlador . . . . . . . . . . . . . . 13-5Corrección de fallos mayores. . . . . . . . . . . . . . . . . . . . . . . 13-6Guarde los cambios en línea . . . . . . . . . . . . . . . . . . . . . . . 13-6

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 12: 1756-pm001_-es-p

vi Tabla de contenido

Capítulo 14Comunicación con otro controlador

Cuándo usar este procedimiento . . . . . . . . . . . . . . . . . . . . 14-1Cómo usar este procedimiento . . . . . . . . . . . . . . . . . . . . . 14-1Producir un tag consumido . . . . . . . . . . . . . . . . . . . . . . . . 14-1

Lo que usted necesita hacer . . . . . . . . . . . . . . . . . . . . . 14-3Organizar los tags para datos producidos o consumidos 14-3Producir un tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-4Consumir un tag producido . . . . . . . . . . . . . . . . . . . . . 14-5Producir enteros para un controlador PLC-5C . . . . . . . . 14-6Producir datos REAL para un controlador PLC-5C . . . . . 14-7Consumir enteros desde un controlador PLC-5C . . . . . . 14-9Ajuste para limitaciones de amplitud de banda . . . . . . 14-10

Enviar un mensaje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-11Enviar un mensaje a múltiples controladores . . . . . . . . . . 14-13

Establecer la configuración de E/S . . . . . . . . . . . . . . . 14-14Definir los elementos de origen y destino . . . . . . . . . . 14-15Crear el tipo de datos MESSAGE_CONFIGURATION . . 14-16Crear la matriz de configuración . . . . . . . . . . . . . . . . . 14-17Obtener el tamaño de la matriz local . . . . . . . . . . . . . 14-19Cargar las propiedades del mensaje para un controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-20Configurar el mensaje . . . . . . . . . . . . . . . . . . . . . . . . 14-21Ir al siguiente controlador . . . . . . . . . . . . . . . . . . . . . 14-22Reiniciar la secuencia . . . . . . . . . . . . . . . . . . . . . . . . . 14-22

Capítulo 15Producción de una matriz grande Cuándo usar este procedimiento . . . . . . . . . . . . . . . . . . . . 15-1

Para producir una matriz grande . . . . . . . . . . . . . . . . . . . . 15-2

Capítulo 16Comunicación con un dispositivo ASCII

Cuándo usar este procedimiento . . . . . . . . . . . . . . . . . . . . 16-1Cómo usar este procedimiento . . . . . . . . . . . . . . . . . . . . . 16-1Conecte el dispositivo ASCII . . . . . . . . . . . . . . . . . . . . . . . 16-2Configure el puerto en serie . . . . . . . . . . . . . . . . . . . . . . . 16-3Configure el protocolo del usuario. . . . . . . . . . . . . . . . . . . 16-5Cree tipos de datos de cadena. . . . . . . . . . . . . . . . . . . . . . 16-8Lea los caracteres desde el dispositivo . . . . . . . . . . . . . . . . 16-9Envíe los caracteres al dispositivo . . . . . . . . . . . . . . . . . . 16-14Introduzca caracteres ASCII . . . . . . . . . . . . . . . . . . . . . . . 16-21

Capítulo 17Procesamiento de caracteres ASCII

Cuándo usar este procedimiento . . . . . . . . . . . . . . . . . . . . 17-1Cómo usar este procedimiento . . . . . . . . . . . . . . . . . . . . . 17-1Extraer una parte de un código de barras. . . . . . . . . . . . . . 17-2Buscar un código de barras . . . . . . . . . . . . . . . . . . . . . . . . 17-4

Cree el tipo de datos PRODUCT_INFO . . . . . . . . . . . . . 17-5Búsqueda de caracteres . . . . . . . . . . . . . . . . . . . . . . . . 17-6Identificar el número de ruta . . . . . . . . . . . . . . . . . . . . 17-8Rechazar caracteres incorrectos . . . . . . . . . . . . . . . . . . 17-9

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 13: 1756-pm001_-es-p

Tabla de contenido vii

Introducir los ID de producto y números de ruta . . . . . 17-9Verificar los caracteres del código de barras . . . . . . . . . . . 17-10Convertir un valor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-12Descodificar un mensaje ASCII . . . . . . . . . . . . . . . . . . . . 17-14Crear una cadena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-18

Capítulo 18Forzado de elementos lógicos Cuándo usar este procedimiento . . . . . . . . . . . . . . . . . . . . 18-1

Cómo usar este procedimiento . . . . . . . . . . . . . . . . . . . . . 18-1Precauciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-2

Habilitación de forzados. . . . . . . . . . . . . . . . . . . . . . . . 18-2Inhabilitación o eliminación de un forzado . . . . . . . . . . 18-3

Verificación del estado de forzados . . . . . . . . . . . . . . . . . . 18-4Barra de herramientas Online. . . . . . . . . . . . . . . . . . . . 18-4Indicador LED FORCE . . . . . . . . . . . . . . . . . . . . . . . . . 18-5Instrucción GSV. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-5

Qué elementos forzar . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-6Cuándo usar un forzado de E/S . . . . . . . . . . . . . . . . . . . . . 18-6

Forzado de un valor de entrada . . . . . . . . . . . . . . . . . . 18-7Forzado de un valor de salida . . . . . . . . . . . . . . . . . . . 18-7

Adición de un forzado de E/S . . . . . . . . . . . . . . . . . . . . . . 18-8Cuándo usar la opción Step Through . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-9Función Step Through en una transición o forzado de una ruta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-9Cuándo usar un forzado de SFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-9

Forzado de una transición . . . . . . . . . . . . . . . . . . . . . . 18-9Forzado de una ruta simultánea . . . . . . . . . . . . . . . . . 18-11

Adición de un forzado de SFC . . . . . . . . . . . . . . . . . . . . . 18-12Eliminación o inhabilitación de forzados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-13

Eliminación de un forzado individual . . . . . . . . . . . . . 18-14Inhabilitación de todos los forzados de E/S y SFC . . . . 18-14Eliminación de todos los forzados de E/S y SFC . . . . . 18-14Inhabilitación de todos los forzados de E/S. . . . . . . . . 18-15Eliminación de todos los forzados de E/S . . . . . . . . . . 18-15Inhabilitación de todos los forzados de SFC . . . . . . . . 18-15Eliminación de todos los forzados de SFC . . . . . . . . . . 18-15

Capítulo 19Desarrollo de una rutina de fallo Cuándo usar este procedimiento . . . . . . . . . . . . . . . . . . . . 19-1

Cómo usar este procedimiento . . . . . . . . . . . . . . . . . . . . . 19-1Crear el tipo de datos FAULTRECORD . . . . . . . . . . . . . . . . 19-2Creación de una rutina de fallo . . . . . . . . . . . . . . . . . . . . . 19-3Cómo borrar un fallo mayor . . . . . . . . . . . . . . . . . . . . . . . 19-4

Obtener el tipo y código de fallo . . . . . . . . . . . . . . . . . 19-4Verificación de un fallo menor . . . . . . . . . . . . . . . . . . . 19-5Borrar el fallo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-5

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 14: 1756-pm001_-es-p

viii Tabla de contenido

Cómo borrar un fallo mayor durante el preescán . . . . . . . . 19-6Identificar cuando el controlador está en preescán . . . . 19-6Obtener el tipo y código del fallo . . . . . . . . . . . . . . . . . 19-7Verificación de un fallo específico . . . . . . . . . . . . . . . . 19-8Borrar el fallo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-9

Prueba de una rutina de fallo . . . . . . . . . . . . . . . . . . . . . 19-10

Capítulo 20Creación de un fallo mayor definido por el usuario

Cuándo usar este procedimiento . . . . . . . . . . . . . . . . . . . . 20-1Creación de un fallo mayor definido por el usuario . . . . . . 20-1

Capítulo 21Monitorización de fallos menores Cuándo usar este procedimiento . . . . . . . . . . . . . . . . . . . . 21-1

Monitorización de fallos menores . . . . . . . . . . . . . . . . . . . 21-1

Capítulo 22Desarrollo de una rutina de inicializacion

Cuándo usar este procedimiento . . . . . . . . . . . . . . . . . . . . 22-1Desarrollo de una rutina de inicializacion. . . . . . . . . . . . . . 22-1

Capítulo 23Almacenamiento y carga de un proyecto usando la memoria no volátil

Cuándo usar este procedimiento . . . . . . . . . . . . . . . . . . . . 23-1Cómo usar este procedimiento . . . . . . . . . . . . . . . . . . . . . 23-2Seleccionar un controlador que tenga memoria no volátil . . 23-3Precauciones que se deben observar al usar la tarjeta 1784-CF64 Industrial CompactFlash . . . . . . . . . . . . . 23-4Seleccionar cuándo cargar una imagen . . . . . . . . . . . . . . . 23-5Almacenar un proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-5

Configurar la operación de guardar . . . . . . . . . . . . . . . 23-6Guardar el proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-8Guardar el proyecto en línea . . . . . . . . . . . . . . . . . . . . 23-8

Cargar un proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-9Verificar una carga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-11Borrar la memoria no volátil . . . . . . . . . . . . . . . . . . . . . . 23-12

Verificar la opción Current Load Image. . . . . . . . . . . . 23-12Cambiar la opción Load Image . . . . . . . . . . . . . . . . . . 23-13Borrar el proyecto del controlador . . . . . . . . . . . . . . . 23-13Almacenar la imagen vacía . . . . . . . . . . . . . . . . . . . . . 23-13

Capítulo 24Cómo proteger un proyecto Cuándo usar este procedimiento . . . . . . . . . . . . . . . . . . . . 24-1

Usar protección de origen de rutina. . . . . . . . . . . . . . . . . . 24-1Seleccionar el nivel de protección para cada rutina . . . . 24-4Seleccionar el número de claves de origen . . . . . . . . . . 24-4Definir la clave o claves de origen . . . . . . . . . . . . . . . . 24-5Seleccionar una ubicación para el archivo en dónde almacenar las claves de origen . . . . . . . . . . . . . . . . . . . 24-5Activar la función de protección de origen de RSLogix 5000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-5

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 15: 1756-pm001_-es-p

Tabla de contenido ix

Crear un archivo para las claves de origen . . . . . . . . . . 24-6Protección de una rutina con una clave de origen . . . . . 24-7Retirar el acceso a una rutina protegida . . . . . . . . . . . . 24-8Inhabilitar la protección de origen de rutina . . . . . . . . . 24-8Obtener acceso a una rutina protegida . . . . . . . . . . . . . 24-9

Use RSI Security Server para proteger un proyecto . . . . . . 24-12Instalación del software RSI Security Server. . . . . . . . . 24-12Configuración de DCOM . . . . . . . . . . . . . . . . . . . . . . 24-13Habilitación del software Security Server para RSLogix 5000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-13Importación del archivo RSLogix5000Security.bak . . . . 24-14Definición de acciones globales para los usuarios . . . . 24-14Definición de acciones del proyecto para los usuarios. 24-16Añadir usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-19Añadir grupos de usuarios . . . . . . . . . . . . . . . . . . . . . 24-19Asignar acceso global al software RSLogix 5000 . . . . . 24-20Asignar acciones de proyecto para nuevos proyectos RSLogix 5000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-21Habilitar la seguridad para un proyecto RSLogix 5000 . 24-21Asignar acceso a un proyecto RSLogix 5000 . . . . . . . . 24-22Regenerar el software RSLogix 5000, si es necesario . . 24-23

Apéndice ACódigos de fallo Cuándo usar este Apéndice . . . . . . . . . . . . . . . . . . . . . . . . A-1

Códigos de fallo mayor . . . . . . . . . . . . . . . . . . . . . . . . . . . A-1Códigos de fallos menores. . . . . . . . . . . . . . . . . . . . . . . . . A-3

Apéndice BCumplimiento de la norma IEC61131-3

Cómo usar este Apéndice . . . . . . . . . . . . . . . . . . . . . . . . . B-1Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-1Sistema operativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-2Definición de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-2Lenguajes de programación . . . . . . . . . . . . . . . . . . . . . . . . B-3Conjunto de instrucciones . . . . . . . . . . . . . . . . . . . . . . . . . B-4Portabilidad de programas según IEC61131-3 . . . . . . . . . . . B-4Tablas sobre cumplimiento con especificaciones IEC . . . . . B-5

Glosario

Códigos de caracteres ASCII

Contraportada

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 16: 1756-pm001_-es-p

x Tabla de contenido

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 17: 1756-pm001_-es-p

Capítulo 1

Administración de archivos del proyecto

Creación de un archivo de proyecto

Antes de programar un controlador Logix5000, debe crear un proyecto:

1. Inicie el software RSLogix 5000™.

2. En el menú Archivo, seleccione Nuevo.

3. Seleccione el tipo de controlador.

4. Escriba un nombre para el controlador.

5. Escriba una descripción de las operaciones que realiza el controlador (opcional).

6. Seleccione el tipo de chasis (número de ranuras) que contiene el controlador (no se aplica en el caso de algunos controladores).

7. Seleccione o escriba el número 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.

42194

3.

4.

5.

6.

7.

8.

1 Publicación 1756-PM001E-ES-P - Agosto 2002

Page 18: 1756-pm001_-es-p

1-2 Administración de archivos del proyecto

42371

Cuando usted crea un proyecto, el nombre del archivo del proyecto es igual al nombre del controlador.

nombre del controlador

organizador delcontrolador

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 19: 1756-pm001_-es-p

Administración de archivos del proyecto 1-3

Guarde los cambios A medida que vaya creando la lógica y haciendo cambios de configuración, guarde su proyecto.

• Los nombres se descargar al controlador, mientras que la documentación (descripciones comentarios de renglón) no se descarga al controlador.

• Para cambiar el nombre, tamaño de chasis o número de ranura del controlador:

a. En el Organizador de controller, haga clic con el botón derecho del mouse en la carpeta Controller name_of_controller y seleccione Propiedades.

b. Cambie la información requerida.

c. Haga clic en Aceptar.

Para: Haga lo siguiente:

guardar los cambios En el menú Archivo, seleccione Guardar.

haga una copia del proyecto abierto pero mantenga el nombre existente del controlador

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.

haga una copia del proyecto y asigne un nombre diferente al controlador.

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

botón 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.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 20: 1756-pm001_-es-p

1-4 Administración de archivos del proyecto

Notas:

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 21: 1756-pm001_-es-p

Capítulo 2

Organización de tareas, programas y rutinas

Cuándo usar este procedimiento

Use este procedimiento para realizar lo siguiente:

• definir la organización general del proyecto.

• seleccionar un lenguaje de programación para cada función principal de la máquina o proceso.

• Crear las tareas, programas y rutinas en los cuales programar la lógica

Antes de comenzar Para determinar cuáles lenguajes de programación están instalados en la versión del software RSLogix 5000:

1. Inicie el software RSLogix 5000.

2. En el menú Help, seleccione About RSLogix 5000.

Para añadir un lenguaje de programación, consulte el documento ControlLogix Selection Guide, publicación 1756-SG001.

Cómo usar este procedimiento

Para organizar el proyecto en tareas, programas y rutinas:

Revise las Definiciones

Planifique las tareas del proyecto

Use el Controller Organizer

Cree una tarea periódica

Cree un programa

Cree una rutina

Configure una rutina como rutina principal

Verifique el proyecto

1 Publicación 1756-PM001E-ES-P - Agosto 2002

Page 22: 1756-pm001_-es-p

2-2 Organización de tareas, programas y rutinas

Definiciones Antes de usar los procedimientos descritos en este capítulo, familiarícese con las definiciones.

tarea

Una tarea proporciona información de programación y prioridades para un conjunto de uno o más programas que se ejecutan según criterios específicos. 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 periódicas) 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 escán completo, se reinicia inmediatamente.

• Un proyecto no requiere una tarea continua. Si se usa, sólo puede haber una tarea continua.

tarea continua

programa

tarea periódica

rutina principal

rutina

tarea

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 23: 1756-pm001_-es-p

Organización de tareas, programas y rutinas 2-3

tarea periódica

Una tarea periódica realiza una función según un régimen específico.

• Cada vez que caduca el tiempo de la tarea periódica, la tarea interrumpe la tarea continua, se ejecuta una vez y luego devuelve el control donde se interrumpió la tarea continua.

• El período de tiempo se puede configurar de 1 ms a 2000 s. La opción predeterminada es 10 ms.

Se pueden crear hasta 32 tareas periódicas 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 múltiples veces.

• Las tareas que tienen la misma prioridad se ejecutan según una base de segmento de tiempo a intervalos de 1 ms.

El siguiente ejemplo muestra la ejecución de un proyecto con tres tareas.

EJEMPLO Orden de ejecución de tareas para un proyecto con dos tareas periódicas y una tarea continua

Tarea: Tipo de tarea: Nivel de prioridad: Tiempo de ejecución:

1 20 ms periódica 5 2 ms

2 10 ms periódica 10 4 ms

3 continua ninguno (más bajo) 24 ms

Leyenda:

La tarea se ejecuta.

La tarea se interrumpe (se suspende).

Tarea 1

Tarea 2

Tarea 3

5 10 15 20 25 30 35 40 45 50

tiempo transcurrido (ms)

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 24: 1756-pm001_-es-p

2-4 Organización de tareas, programas y rutinas

Programa

Un programa es una subdivisión 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 código de ejecución para el proyecto en un controlador (similar a un archivo de programa en un controlador PLC o SLC). Cada rutina usa un lenguaje de programación específico, tal como lógica 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 instrucción Jump to Subroutine (JSR).

Planifique las tareas del proyecto

Para identificar las tareas, programas y rutinas de la lógica, tome las siguientes decisiones:

Estas decisiones generalmente son iterativas. Después de tomar algunas decisiones iniciales, revise sus decisiones a medida que continúa desarrollando el proyecto.

Defina las funciones del proyecto

Asigne cada función a una tarea

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 25: 1756-pm001_-es-p

Organización de tareas, programas y rutinas 2-5

Defina las funciones del proyecto

Una de las decisiones durante el desarrollo de un proyecto Logix5000 es definir las funciones (operaciones) de la máquina o proceso.

1. Identifique las funciones (operaciones) principales de la máquina o proceso.

2. Para cada función, seleccione el lenguaje de programación más apropiado para la función.

• Es posible que necesite revisar la lista de funciones para aprovechar los diferentes lenguajes.

• Use cualquier combinación de lenguajes en el mismo proyecto.

En general, si la función o grupo de funciones representa: Entonces use este lenguaje:

ejecución continua o paralela de múltiples operaciones (que no tienen secuencia)

lógica de escalera

operaciones booleanas o basadas en bit

operaciones lógicas complejas

procesamiento de comunicación y mensajes

enclavamiento de máquina

el personal de mantenimiento u operaciones de servicio quizás tengan que efectuar interpretaciones para solucionar problemas de la máquina o el proceso.

control de variador y proceso continuo diagrama de bloques de función

control de lazo

cálculos en flujo de circuito

administración de alto nivel de múltiples operaciones Use un diagrama de funciones secuenciales (SFC)

secuencias de operaciones repetitivas

proceso de lote

control de movimiento usando texto estructurado

estado de operaciones de máquina

operaciones matemáticas complejas texto estructurado

procesamiento de lazo o matriz especial

manejo de cadenas ASCII o procesamiento de protocolo

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 26: 1756-pm001_-es-p

2-6 Organización de tareas, programas y rutinas

Asigne cada función a una tarea

Una vez que haya definido las funciones (operaciones) del proyecto, use opciones de tareas diferentes para activar la ejecución de cada función.

1. Determine el impulso de cada función (cuándo se va a ejecutar la función).

2. Según el impulso de la función, seleccione una tarea en la cual se va a ejecutar la función:

Si una función se ejecuta: Entonces:

a un régimen constante (por ej., ejecutar un lazo PID cada 100 ms)

asigne la función a una rutina dentro de una tarea periódica

muy rápidamente

cuando ocurre un evento específico o un conjunto de condiciones lógicas

asigne la función a una rutina dentro de la tarea continua (por ej., MainTask)

todo el tiempo

cuando ocurre un fallo suficientemente severo para que el controlador se desactive

asigne la función a una rutina de fallo

Vea “Desarrollo de una rutina de falloen” la página 19-1.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 27: 1756-pm001_-es-p

Organización de tareas, programas y rutinas 2-7

Use el Controller Organizer El Controller Organizer proporciona una descripción general gráfica del proyecto. A medida que usted desarrolle su proyecto, irá realizando las siguientes acciones comunes:

Abra o cierre una carpeta

El Controller Organizer guarda los diferentes componentes de un proyecto en carpetas. A su vez, cada carpeta puede contener otras carpetas.

Abra o cierre una carpeta

Abra una rutina

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 –.

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 +.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 28: 1756-pm001_-es-p

2-8 Organización de tareas, programas y rutinas

Abra una rutina

Si la rutina no se abre, vea la línea de estado del software RSLogix 5000:

Para abrir una rutina, haga doble clic en la rutina. Si la rutina apare atenuada, no podrá abrir la rutina.

Si la línea de estado dice: Entonces:

“Failed to open the routine – editor not installed”

El editor del lenguaje de la rutina no está instalado. Para obtener una lista de los paquetes de software disponibles, consulte el documento ControlLogix Selection Guide, publicación 1756-SG001.

“Source not available” Para abrir la rutina, necesita su clave de origen. Vea “Usar protección de origen de rutina” en la página 24-1.Usted puede:

• ejecutar la rutina • mostrar las propiedades de la rutina• identificar referencias cruzadas con respecto a la lógica en la rutina

IMPORTANTE Si el origen de una rutina no está disponible, no exporte el proyecto.

• Un archivo de exportación (.L5K) contiene sólo rutinas donde el código de origen está disponible.

• Si usted exporta un proyecto donde el código de origen no está disponible para todas las rutinas, no podrá restaurar la totalidad del proyecto.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 29: 1756-pm001_-es-p

Organización de tareas, programas y rutinas 2-9

Cree una tarea periódica Una tarea periódica realiza una función o funciones según un régimen específico.

1. En el Controller Organizer, haga clic con el botón derecho del mouse en la carpeta Tasks y seleccione New Task.

2. En el cuadro de texto Name, escriba un nombre para la tarea.

3. En la lista Type, seleccione Periodic (opción predeterminada).

4. En la lista Watchdog, escriba el tiempo de watchdog para la tarea.

ATENCIÓN

!Asegúrese de que el período de tiempo sea más largo que la suma de los tiempos de ejecución de todos los programas asignados a la tarea. Si el controlador detecta que ocurre una activación de la tarea periódica para una tarea que ya está en operación, ocurre un fallo menor.

1.

2.

3.

4.

5.

6.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 30: 1756-pm001_-es-p

2-10 Organización de tareas, programas y rutinas

5. En el cuadro de texto Rate, escriba el régimen 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 múltiples programas para una tarea.

1. En el Controller Organizer, haga clic con el botón derecho del mouse en la tarea que ejecutará el programa y seleccione New Program.

2. En el cuadro de texto Name, escriba un nombre para el programa.

3. Seleccione

1.

2.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 31: 1756-pm001_-es-p

Organización de tareas, programas y rutinas 2-11

Cree una rutina Cada programa requiere por lo menos una rutina. Use una rutina para ejecutar la lógica.

1. En el Controller Organizer, haga clic con el botón derecho del mouse en el programa que ejecutará la rutina y seleccione New Routine.

2. En el cuadro de texto Name, escriba un nombre para la rutina.

3. En la lista Type, seleccione el lenguaje de programación para la rutina

4. Seleccione

1.

2.

3.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 32: 1756-pm001_-es-p

2-12 Organización de tareas, programas y rutinas

Configure una rutina como rutina principal

Cada programa requiere una rutina principal.La rutina principal se ejecuta cada vez que el programa se ejecuta.

1. En el Controller Organizer, haga clic con el botón derecho del mouse en el programa que ejecutará la rutina y seleccione New Properties.

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 periódicamente 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 descripción indicada en la ventana Results.

c. Vaya al paso 1.

3. Para cerrar la ventana Results, presione [Alt] + [1].

1.

3.

2.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 33: 1756-pm001_-es-p

Capítulo 3

Organización de tags

Planifique los tags Los controladores Logix5000 almacenan datos en tags (a diferencia de archivos de datos fijos, los cuales se direccionan numéricamente). Con los tags usted puede

• organizar los datos para reflejar la maquinaria

• documentar (mediante nombres de tag) la aplicación a medida que se va desarrollando

Cuando se crea un tag se asignan las siguientes propiedades:

La siguiente tabla resume los tipos de datos más comunes y cuándo usarlos.

Tabla 3.A Propiedades de tag

Propiedad: Descripción:

alcance define que rutinas pueden tener acceso a los datos

nombre identifica a los datos (tags con diferentes alcances pueden tener el mismo nombre).

tipo de datos define la organización de los datos, tal como número de coma flotante, entero o bit

Tabla 3.B Data Types

Para: Seleccione:

dispositivo analógico en modo de coma flotante REAL

dispositivo analógico en modo entero (para velocidades de muestreo muy rápidas)

INT

Caracteres ASCII string

bit BOOL

contador COUNTER

señal de E/S digital BOOL

número de coma flotante REAL

entero (número entero) DINT

secuenciador CONTROL

temporizador TIMER

1 Publicación 1756-PM001E-ES-P - Agosto 2002

Page 34: 1756-pm001_-es-p

3-2 Organización de tags

Use la siguiente tabla para organizar los datos:

Los siguientes ejemplos muestran los diferentes niveles a los cuales se pueden organizar los datos:

• Tags de un solo elemento, en la página 3-3

• Matriz de una sola dimensión, en la página 3-4

• Matriz de dos dimensiones, en la página 3-5

• Tipo de datos definido por el usuario que almacena una receta, en la página 3-6

• Tipo de datos definido por el usuario que almacena los datos requeridos para ejecutar una máquina, en la página 3-7

Para un: Use un: Referencia:

grupo de atributos comunes usados por más de una máquina

tipo de datos definido

Vea “Creación de un tipo de datos definido por el usuario” en la página 3-8.

grupo de datos con el mismo tipo de datos

maestro (CST) Vea “Creación de un tag” en la página 3-10.

valor único tag de un elemento único

dispositivo de E/S

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 35: 1756-pm001_-es-p

Organización de tags 3-3

EJEMPLO Tags de un solo elemento

tivo digital

dispositivo de E/S analógico

valor entero

acenamiento

contador

temporizador

42364

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 36: 1756-pm001_-es-p

3-4 Organización de tags

EJEMPLO Matriz de una sola dimensión

En este ejemplo, una sola instrucción de temporización temporiza la duración 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.

42367

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 – .

Esta matriz contiene seis elementos del tipo de datos DINT.

seis DINTelementos de timer_presets

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 37: 1756-pm001_-es-p

Organización de tags 3-5

EJEMPLO Matriz de dos dimensiones

Una perforadora puede perforar de uno a cinco agujeros en un libro. La máquina requiere un valor para la posición de cada agujero desde el borde delantero del libro. Para organizar los valores en configuraciones, se usa una matriz de dos dimensiones. El primer subíndice indica el agujero al cual corresponde el valor y el segundo subíndice indica cuántos agujeros se perforarán (uno a cinco).

En la ventana Tags, los elementos están en el orden indicado a continuación.

subíndice de segunda dimensión Descripción

0 1 2 3 4 5

subíndice de primera dimensión

0

1 1.5 2.5 1.25 1.25 1.25 Posición del primer agujero desde el borde delantero del libro

2 8.0 5.5 3.5 3.5 Posición del segundo agujero desde el borde delantero del libro

3 9.75 7.5 5.5 Posición del tercer agujero desde el borde delantero del libro

4 9.75 7.5 Posición del cuarto agujero desde el borde delantero del libro

5 9.75 Posición del quinto agujero desde el borde delantero del libro

42367

La dimensión del extremo derecho se incrementa a su valor máximo y luego vuelve a empezar.

Esta matriz contiene una cuadrícula de elementos de dos dimensiones, seis elementos por seis elementos.

Cuando vuelve a empezar la dimensión del extremo derecho, la dimensión de la izquierda aumenta por un valor de uno.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 38: 1756-pm001_-es-p

3-6 Organización 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 combinación de tipos de datos (REAL, DINT, BOOL, etc.), se usa un tipo de datos definido por el usuario.

Una matriz basada en este tipo de datos se vería como la siguiente:

Nombre (del tipo de datos): TANK

Nombre del miembro Tipo de datos

temp REAL

banda muerta REAL

paso DINT

step_time TIMER

preseleccionado DINT[6]

combinación BOOL

42368

matriz de recetas

primera recetaEsta matriz contiene tres elementos del tipo de datos TANK.

miembros de la receta

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 39: 1756-pm001_-es-p

Organización de tags 3-7

EJEMPLO Tipo de datos definido por el usuario que almacena los datos requeridos para ejecutar una máquina

Puesto que varias estaciones de perforación requieren la siguiente combinación de datos, se crea un tipo de datos definido por el usuario.

Una matriz basada en este tipo de datos se vería como la siguiente:

Nombre (del tipo de datos): DRILL_STATION

Nombre del miembro Tipo de datos

part_advance BOOL

hole_sequence CONTROL

type DINT

hole_position REAL

depth REAL

total_depth REAL

42583

matriz de taladros

primer taladroEsta matriz contiene cuatro elementos del tipo de datos DRILL_STATION.

datos para la taladradora

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 40: 1756-pm001_-es-p

3-8 Organización de tags

Creación de un tipo de datos definido por el usuario

Para crear un tipo de datos definido por el usuario:

1. Haga clic con el botón derecho del mouse en Definido por el usuario y seleccione Nuevo Data type.

2. Introduzca un nombre para el tipo de datos.

3. Introduzca una descripción (opcional).

4. Escriba el nombre del primer miembro.

42195

42196

2.

3.

4. 5. 6. 7.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 41: 1756-pm001_-es-p

Organización 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 número de elementos en la matriz.

6. Para mostrar el valor (s) del miembro en un estilo diferente (base), seleccione el estilo.

7. Escriba una descripción para el miembro (opcional).

8. Haga clic en Aplicar.

9. ¿Más miembros?

Notas:

• Si incluye miembros que representan dispositivos de E/S, debe usar la lógica 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 búfer” en la página 12-1.

• Cuando use los tipos de datos BOOL, SINT o INT, coloque los miembros que usan el mismo tipo de datos en secuencia:

EJEMPLO Si el miembro es una matriz de seis DINT, escriba DINT[6].

Si: Entonces:

Sí Repita los pasos 4. a 8.

No Haga clic en Aceptar.

más eficiente

BOOL

BOOL

BOOL

DINT

DINT

menos eficiente

BOOL

DINT

BOOL

DINT

BOOL

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 42: 1756-pm001_-es-p

3-10 Organización de tags

Creación de un tag Para crear un tag (incluyendo una matriz):

1. En el menú Lógica, seleccione Editar tag.

2. Seleccione un alcance para el tag:

3. Introduzca un nombre para el tag.

4. Introduzca el tipo de datos:

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 número de elementos en la primera dimensión.

y es el número de elementos en la segunda dimensión.

y es el número de elementos en la tercera dimensión.

5. Escriba una descripción (opcional).

42350

2.

3. 5.4.

Si usará el tag: Entonces seleccione:

en más de un programa dentro del proyecto

name_of_controller (controlador)

como productor o consumidor

en un mensaje

en solamente un programa dentro del proyecto

programa que usará el tag

Si el tag: Entonces escriba:

no es un maestro (CST) (archivo) data_type

una dimensión matriz data_type[x]

una matriz de dos dimensiones data_type[x,y]

una matriz de tres dimensiones data_type[x,y,z]

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 43: 1756-pm001_-es-p

Organización de tags 3-11

Creación de tags usando Microsoft® Excel®

También puede usar un software de hojas de cálculo, tal como Microsoft Excel para crear y editar tags. Esto permite aprovechar las funciones de edición del software de hojas de cálculo.

Para crear tags usando Excel:

1. Abra el proyecto RSLogix 5000.

2. Cree varios tags. (Esto ayuda a formatear la hoja de cálculo Excel).

3. En el menú Herramientas, seleccione Exportar tag.

4. Apunte el nombre del archivo de exportación (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 exportación.

42361

Los tags se guardan en esta carpeta.

4.

5.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 44: 1756-pm001_-es-p

3-12 Organización de tags

8. Introduzca TAG

9. Identifique el alcance del tag:

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. (Manténgalo como formato .CSV).

14. En el software RSLogix 5000, en el menú Herramientas, seleccione Importar tag.

TIPO ALCANCE NOMBRE DESCRIPCIÓN TIPO DE DATOS

TAG in_cycle DINT

TIPO ALCANCE NOMBRE DESCRIPCIÓN TIPO DE DATOS

TAG MainProgram conveyor_alarm BOOL

TAG MainProgram conveyor_on BOOL

TAG MainProgram drill_1 DRILL_STATION

TAG MainProgram hole_position REAL[6,6]

TAG MainProgram machine_on BOOL

8. 9. 10. 11.

Si el alcance es: Entonces:

controlador Deje esta celda vacía.

programa Introduzca el nombre del programa.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 45: 1756-pm001_-es-p

Organización de tags 3-13

15. Seleccione el archivo que contiene los tags y haga clic en Importar.

Se importan los tags al proyecto. La sección inferior de la ventana RSLogix 5000 muestra los resultados.

• Los tags se pueden configurar para comunicarse directamente con otros controladores:

Si piensa usar tags producidos o consumidos, debe seguir pautas adicionales a medida que organiza los tags. Vea “Comunicación con otro controlador” en la página 14-1.

• Los siguientes tipos de datos enteros también están 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 ejecución. Puesto que esto requiere memoria y tiempo adicional, minimice el uso de los tipos de datos SINT e INT.

Para: Use un:

enviar datos por el backplane y la red ControlNet a un intervalo especificado

tag producido

recibir datos de otro controlador por el backplane o la red ControlNet a un intervalo especificado

tag consumido

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 46: 1756-pm001_-es-p

3-14 Organización de tags

Notas:

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 47: 1756-pm001_-es-p

Capítulo 4

Diseño de un diagrama de funciones secuenciales

Cuándo usar este procedimiento

Use este procedimiento para diseñar 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 través de los cuales progresa el sistema. Use el SFC para:

• organizar la especificación 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 representación gráfica del proceso, es más fácil de organizar y leer que una versión de texto. Además, el software RSLogix 5000 le permite:

– añadir notas que aclaran los pasos o capturan información importante para uso posterior

– imprimir el SFC para compartir la información con otras personas

• Puesto que los controladores Logix5000 son compatibles con los SFC, no necesita introducir la especificación por segunda vez. Usted programa el sistema tal como lo especifica.

Usar un SFC para programar el proceso tiene las siguientes ventajas:

• división gráfica de procesos en sus componentes lógicos principales (pasos)

• ejecución repetida más rápida de componentes individuales de la lógica

• pantalla más simple

• menos tiempo para diseñar y depurar el programa

• resolución de problemas más rápida y más fácil

• acceso directo al punto en la lógica donde una máquina entró en fallo

• actualizaciones y mejoras fáciles

Cómo usar este procedimiento

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 información sobre los procedimientos específicos para introducir un SFC, vea Programación de un diagrama de funciones secuenciales” en la página 5-1.

1 Publicación 1756-PM001E-ES-P - Agosto 2002

Page 48: 1756-pm001_-es-p

4-2 Diseño de un diagrama de funciones secuenciales

¿Qué es un diagrama de funciones secuenciales?

Un diagrama de funciones secuenciales (SFC) es similar a un diagrama de flujo. Utiliza pasos y transiciones para realizar operaciones o acciones específicas. 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 función principal del proceso. Contiene las acciones que ocurren en un tiempo, fase o estación específica.

Una acción es una de las funciones que realiza un paso.

Una bifurcación simultánea ejecuta más de 1 paso simultáneamente.

Una transición es una condición verdadera o falsa que le indica al SFC cuándo ir al siguiente paso.

(continúa en la siguiente página)

Un calificador determina cuándo comienza y se detiene una acción.

Mostrar u ocultar una acción.

La instrucción JSR llama a una subrutina

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 49: 1756-pm001_-es-p

Diseño de un diagrama de funciones secuenciales 4-3

Figura 4.2 Ejemplo de SFC (continúa de la página anterior)

Un cuadro de texto le permite añadir texto descriptivo o notas a su SFC.

Una bifurcación de selección seleccionaentre rutas de ejecución diferentes.

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 página anterior.

Un paro le permite parar y esperar que se reinicie un comando.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 50: 1756-pm001_-es-p

4-4 Diseño de un diagrama de funciones secuenciales

Cómo diseñar un SFC: Descripción general

Para diseñar un SFC, se realizan las siguientes tareas:

Las secciones restantes de este capítulo describen en detalle cómo realizar cada tarea:

Definir las tareas

Seleccionar cómo ejecutar el SFC

Definir los pasos del proceso

Organizar los pasos

Añadir acciones para cada paso

Describir cada acción en pseudocódigo

Seleccionar un calificador para una acción

Definir las condiciones de la transición

Transición después 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 cuándo retornar al OS/JSR

Pausa o restablecer un SFC

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 51: 1756-pm001_-es-p

Diseño de un diagrama de funciones secuenciales 4-5

Definir las tareas El primer paso en el desarrollo de un SFC es separar la configuración y regulación de dispositivos de los comandos para esos dispositivos. Los controladores Logix5000 le permiten dividir el proyecto en una tarea continua y múltiples tarea periódicas.

1. Organice el proyecto de la siguiente manera:

2. Para las funciones que van en una tarea periódica, agrupe las funciones de acuerdo a regímenes de actualización similares. Cree una tarea periódica para cada régimen de actualización.

Por ejemplo, los dispositivos de 2 estados pueden requerir actualizaciones más rápidas que los lazos PID. Use tareas periódicas separadas para cada uno.

El siguiente ejemplo muestra un proyecto que usa dos tareas periódicas para regular motores, válvulas y lazos de temperatura. El proyecto usa un SFC para controlar el proceso.

Estas funciones: Vaya aquí:

configurar y regular dispositivos tarea periódica

comandar de un estado específico para un dispositivo

SFC en la tarea continua

establecer una secuencia de la ejecución del proceso

EJEMPLO Definir las tareas

Esta tarea (continua) ejecuta el diagrama de funciones secuenciales (SFC). El SFC emite los comandos de estado específico o temperatura para cada dispositivo o lazo de temperatura.

Esta tarea (periódica) usa diagramas de bloques de función para activar o desactivar motores y abrir o cerrar válvulas. El SFC en MainTask emite el comando de estado para cada dispositivo. Los diagramas de bloques de función establecen y mantienen dicho estado.

Esta tarea (periódica) usa diagramas de bloques de función para configurar y regular los lazos de temperatura. El SFC en MainTask emite los comandos de temperatura. Los diagramas de bloques de función establecen y mantienen dichas temperaturas.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 52: 1756-pm001_-es-p

4-6 Diseño de un diagrama de funciones secuenciales

Seleccionar cómo ejecutar el SFC

Para ejecutar un SFC, configúrelo ya sea como rutina principal de un programa o llámelo como subrutina.

Si el SFC usa acciones booleanas, entonces otra lógica debe ejecutarse independientemente del SFC y monitorear los bits de estado del SFC.

Definir los pasos del proceso

Un paso representa una función principal del proceso. Contiene las acciones que ocurren en un tiempo, fase o estación específica.

Una transición termina el paso. La transición define las condiciones físicas que deben ocurrir o cambiar para ir al siguiente paso.

Si: Entonces:

El SFC es la única rutina en el programa. Configure el SFC como la rutina principal del programa.

El SFC llama a todas las otras rutinas del programa.

El programa requiere que otras rutinas se ejecuten independientemente del SFC.

1. Configure otra rutina como la rutina principal del programa.

2. Use la rutina principal para llamar al SFC como subrutina.El SFC usa acciones booleanas.

Paso

MEZCLARUn paso se ejecuta continuamente hasta que una transición le indique al SFC que vaya al siguiente paso.

Transición• Si es verdadera, ir al siguiente paso.• Si es falsa, repetir el paso anterior

…y hacer esto

Acciones

Hacer esto…

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 53: 1756-pm001_-es-p

Diseño de un diagrama de funciones secuenciales 4-7

Siga estas pautas

A medida que define los pasos del proceso, siga estas pautas:

• Comience con pasos grandes y refine los pasos en varias pasadas.

• Cuando usted inicialmente abre una rutina de SFC, ésta contiene un paso y transición inicial. Use este paso para inicializar el proceso.

• Para identificar un paso, busque un cambio físico en el sistema, tal como una nueva pieza que esté en posición, una temperatura alcanzada, un tiempo predeterminado alcanzado o una selección de receta que haya ocurrido. El paso consta de las acciones que se realizan antes de dicho cambio.

• Deténgase cuando los pasos estén in incrementos significativos. Por ejemplo:

Limpiar

Air_Flow Elec_Charg

tercera pasada

Transfer_In

Limpiar

Transfr_Out

Pintar

segunda pasada

Pintar

primera pasada

Paint_Flow

Transfer_In

Transfr_Out

Esta organización de pasos: Representa:

produce_solution probablemente demasiado grande

set_mode, close_outlet, set_temperature, open_inlet_a, close_inlet_a, set_timer, reset_temperature, open_outlet, reset_mode

probablemente demasiado pequeño

preset_tank, add_ingredient_a, cook, drain probablemente correcto

paso inicial

transición inicial

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 54: 1756-pm001_-es-p

4-8 Diseño de un diagrama de funciones secuenciales

Estructura SFC_STEPCada paso usa un tag para proporcionar información acerca del paso. Acceda a esta información ya sea mediante el cuadro de diálogo Step Properties o la ficha Monitor Tags de la ventana Tags:

Si desea: Entonces verifique o

establezca este miembro:

Tipo de datos:

Detalles:

determinar cuánto tiempo estuvo activo un paso (milisegundos)

T DINT Cuando un paso se activa, el valor del temporizador (T) se restablece y luego comienza a contar progresivamente en milisegundos. El temporizador continúa contando progresivamente hasta que el paso se desactiva, independientemente del valor preseleccionado (PRE).

indicar cuando el paso ha estado activo durante un tiempo específico (milisegundos)

PRE DINT 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 opción, introduzca una expresión numérica que calcule el tiempo durante la ejecución.

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.

indicar si un paso no se ejecutó el tiempo suficiente

LimitLow DINT 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 función de alarma, active (seleccione) el bit

AlarmEnable (AlarmEn).

Como opción, introduzca una expresión numérica que calcule el tiempo durante la ejecución.

AlarmEn BOOL Para usar los bits de alarma, active (seleccione) el bit AlarmEnable (AlarmEn).

AlarmLow BOOL 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 función de alarma, active (seleccione) el bit AlarmEnable (AlarmEn).

indicar si un paso se está ejecutando demasiado tiempo

LimitHigh DINT 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 función de alarma, active (seleccione) el bit

AlarmEnable (AlarmEn).

Como opción, introduzca una expresión numérica que calcule el tiempo durante la ejecución.

AlarmEn BOOL Para usar los bits de alarma, active (seleccione) el bit AlarmEnable (AlarmEn).

AlarmHigh BOOL 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 función de alarma, active (seleccione) el bit AlarmEnable (AlarmEn).

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 55: 1756-pm001_-es-p

Diseño de un diagrama de funciones secuenciales 4-9

hacer algo mientras el paso está activo (incluyendo el primer y último escán)

X BOOL El bit X está activado todo el tiempo que el paso está activo (ejecutándose).

Normalmente, recomendamos usar una acción con un calificador N Non-Stored para lograr esto.

hacer algo cuando el paso se activa

FS BOOL El bit FS se activa durante el primer escán del paso.

Normalmente, recomendamos usar una acción con un calificador P1 Pulse (Rising Edge) para lograr esto.

hacer algo mientras el paso está activo, excepto en el primer y último escán

SA BOOL El bit SA está activo cuando el paso está activo, excepto durante el primer y último escán del paso.

hacer algo una vez en el último escán del paso

LS BOOL El bit LS se activa durante el último escán del paso.

Use este bit sólo en caso de hacer lo siguiente: en el cuadro de diálogo Controller Properties, ficha SFC Execution, establezca Last Scan of Active Step en Don’t Scan o Programmatic reset.

Normalmente, recomendamos usar una acción con un calificador P0 Pulse (Falling Edge) para lograr esto.

determinar el receptor de una instrucción SFC Reset (SFR)

Reset BOOL Una instrucción SFC Reset (SFR) restablece el SFC en un paso o paro que la instrucción especifica.

• El bit de restablecimiento indica a cuál paso o paro irá el SFC para comenzar la ejecución nuevamente.

• Una vez que el SFC se ejecuta, el bit de restablecimiento se restablece.

determinar el tiempo máximo que un paso estuvo activo durante cualquiera de sus ejecuciones

TMax DINT Úselo para fines de diagnóstico. El controlador restablece este valor sólo 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 alimentación eléctrica.

determinar si el valor del temporizador (T) se reinicia a un valor negativo

OV BOOL Úselo para fines de diagnóstico.

determinar cuántas veces se activó un paso

Count DINT Esto no es un conteo de escanes del paso.• El conteo incrementa cada vez que se activa el paso. • Se incrementa nuevamente sólo después que el paso se

desactiva y se vuelve a activar. • El conteo se restablece sólo si usted configura el SFC para

que se reinicie en el paso inicial. Con esa configuración, se restablece cuando el controlador cambia del modo Programa al modo Marcha.

Si desea: Entonces verifique o

establezca este miembro:

Tipo de datos:

Detalles:

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 56: 1756-pm001_-es-p

4-10 Diseño de un diagrama de funciones secuenciales

El siguiente diagrama muestra la relación de los bits X, FS, SA y LS.

usar un tag para los diversos bits de estado de este paso

Status DINT Para este miembro: Use este bit:Reset 22

AlarmHigh 23

AlarmLow 24

AlarmEn 25

OV 26

DN 27

LS 28

SA 29

FS 30

X 31

Si desea: Entonces verifique o

establezca este miembro:

Tipo de datos:

Detalles:

step_name.FS

step_name.X

step_name.LS

step_name.SA

primer escán último escán

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 57: 1756-pm001_-es-p

Diseño de un diagrama de funciones secuenciales 4-11

Organizar los pasos Una vez que haya definido los pasos del proceso, organícelos en secuencias, bifurcaciones simultáneas, bifurcaciones de selección o lazos.

Descripción general

Para: Use esta estructura: Con estas consideraciones:

Ejecutar 1 o más pasos en secuencia:• Uno se ejecuta repetidamente. • Luego el siguiente se ejecuta

repetidamente.

Secuencia El SFC verifica la transición 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 o grupos de pasos dependiendo de las condiciones de la lógica

• Ejecutar un paso o pasos, o saltar el paso o pasos, dependiendo de las condiciones de la lógica

Bifurcación de selección • Es correcto que una ruta no tenga pasos y tenga sólo una transición. Esto le permite al SFC saltar la bifurcación de selección.

• Como opción 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 más pasos simultáneamente. Todas las rutas deben terminar antes de que continúe el SFC

Bifurcación simultánea • Una transición única termina la bifurcación.

• El SFC verifica la transición final después de que el último paso en cada ruta se haya ejecutado por lo menos una vez. Si la transición es falsa, el SFC repite el paso previo.

Realizar un lazo a un paso previo Conectar a un paso previo • Conecte el cable al paso o bifurcación simultánea donde desea ir.

• No conectar en, fuera de, ni entre una bifurcación simultánea.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 58: 1756-pm001_-es-p

4-12 Diseño de un diagrama de funciones secuenciales

A continuación se proporcionan algunos ejemplos de estructuras de SFC para situaciones diferentes:

Ejemplo de situación: Ejemplo de solución:

Las estaciones 45 y 46 de una línea de ensamblado funcionan con piezas simultáneamente. Cuando ambas estaciones han realizado su trabajo, las piezas se mueven hacia abajo 1 estación.

Bifurcación simultánea

Dependiendo del código de construcción, una estación perfora o pule.

Bifurcación de selección

Para simplificar mi programación, deseo separar las transferencias de bloques y comunicaciones de otra lógica de control Todas ocurren al mismo tiempo.

Bifurcación simultánea

En un área de tratamiento térmico, la temperatura sube a un régimen específico, se mantiene durante un tiempo específico y luego se enfría a un régimen específico.

Secuencia

En la estación 12, la máquina perfora, hace la rosca y fija con perno una pieza. Los pasos ocurren uno después del otro.

Secuencia

El paso 12 inspecciona un proceso para determinar si la mezcla de productos químicos es correcta.

• Si es correcta, continuar con los pasos restantes. • Si no es correcta, ir al comienzo del SFC y purgar el

sistema.

Cable

45 46

PulirPerforar

ComunicacionCONTROL BTs

Rampa

Mantener

Enfriar

Perforar

Hacer

Fijar con

Paso 12

CorrectoNo es correcto

Inicio del SFC

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 59: 1756-pm001_-es-p

Diseño de un diagrama de funciones secuenciales 4-13

Secuencia

Una secuencia es un grupo de pasos que se ejecutan uno después del otro.

Para obtener un diagrama detallado de la ejecución de una secuencia de pasos, vea la Figura 4.5 en la página 4-46.

Para anular el estado de una transición, vea “Forzado de elementos lógicos” en la página 18-1.

Hacer esto…

LUEGO esto…

LUEGO esto…

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 60: 1756-pm001_-es-p

4-14 Diseño de un diagrama de funciones secuenciales

Bifurcación de selección

Una bifurcación de selección representa una opción 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 “Programación de un diagrama de funciones secuenciales” en la página 5-1.

Para obtener un diagrama detallado de la ejecución de una bifurcación de selección, vea la Figura 4.7 en la página 4-48.

Para anular el estado de una transición, vea “Forzado de elementos lógicos” en la página 18-1.

línea horizontal simple

Esta ruta salta la estructura (no hace nada).

cada ruta tiene su propiatransición

Hacer esto… O esto… O esto…

línea horizontal simple

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 61: 1756-pm001_-es-p

Diseño de un diagrama de funciones secuenciales 4-15

Bifurcación simultánea

Una bifurcación simultánea representa las rutas (pasos o grupos de pasos) que ocurren simultáneamente (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 transición después de que el último paso de cada ruta se haya ejecutado por lo menos una vez.

Para obtener un diagrama detallado de la ejecución de una bifurcación simultánea, vea la Figura 4.6 en la página 4-47.

Para anular la bifurcación y evitar la ejecución de una ruta, vea “Forzado de elementos lógicos” en la página 18-1.

línea horizontal doble

una transición para todas las rutas

hacer esto… Y esto…

línea horizontal doble

Y esto…

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 62: 1756-pm001_-es-p

4-16 Diseño de un diagrama de funciones secuenciales

Conectar a un paso previo

Además de conectar pasos en secuencias, bifurcaciones simultáneas y bifurcaciones de selección, puede conectar un paso a un punto previo en el SFC. Esto le permite:

• efectuar un lazo y repetir pasos

• regresar al comienzo del SFC y comenzar nuevamente

Por ejemplo:

…ir a este paso

Si esta condiciónes verdadera…

lazo simple que repite todo el SFC

ruta de una bifurcación de selección que regresa a un paso previo

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 63: 1756-pm001_-es-p

Diseño de un diagrama de funciones secuenciales 4-17

Añadir acciones para cada paso

Use accións 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 válvula o colocar un grupo de dispositivos en un modo específico.

¿Cómo desea usar la acción?

Hay dos tipos de acciones:

Usar una acción no booleana

Una acción no booleana contiene la lógica para la acción. Utiliza texto estructurado para ejecutar asignaciones e instrucciones o llamar a una subrutina.

Con las acciones no booleanas, usted también tiene la opción de post-escán (restablecer automáticamente) las asignaciones e instrucciones antes de salir de un paso:

• Durante el post-escán el controlador ejecuta las asignaciones e instrucciones como si todas las condiciones fueran falsas.

• El controlador post-escanea tanto el texto estructurado incorporado como cualquier subrutina llamada por la acción.

Para restablecer automáticamente asignaciones e instrucciones, vea “Desactivar un dispositivo al final de un paso” en la página 4-29.

Paso

…y hacer estoMEZCLAR

Acciones

Hacer esto…

Si desea: Entonces:

ejecutar texto estructurado directamente en el SFC Usar una acción no booleana

llamar a una subrutina

usar la opción de restablecimiento automático para restablecer datos después de salir de un paso

solamente establecer un bit y programar otra lógica para monitorear el bit a fin de determinar cuándo ejecutar.

Usar una acción booleana

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 64: 1756-pm001_-es-p

4-18 Diseño de un diagrama de funciones secuenciales

Para programar una acción no booleana, existen las siguientes opciones:

No se puede reutilizar una acción no booleana dentro del mismo SFC excepto para restablecer una acción almacenada. Sólo se permite una instancia de una acción no booleana específica por SFC.

Usar una acción booleana

Una acción booleana no contiene la lógica para la acción. Simplemente establece un bit en su tag (estructura SFC_ACTION). Para realizar la acción, otra lógica debe monitorear el bit y ejecutarse cuando el bit se active.

Con las acciones booleanas usted tiene que restablecer las asignaciones e instrucciones asociadas con la acción. Puesto que no existe vínculo entre la acción y la lógica que realiza la acción, la opción de restablecimiento automático no afecta las acciones booleanas.

Si desea: Entonces:

• ejecutar la lógica sin rutinas adicionales

• usar construcciones, instrucciones y asignaciones de texto estructurado

Texto estructurado incorporado.

Por ejemplo:

Cuando el paso S_Complete_the_Batch está activo, la acción S_Open_Outlet se ejecuta. La acción establece el tag Outlet.ProgCommand igual a 1, lo cual abre la válvula de salida.

• reutilizar lógica en múltiples pasos

• usar otro lenguaje para programar la acción, tal como lógica de escalera

• anidar un SFC

Llame a una subrutina.

Por ejemplo:

Cuando el paso S_Complete_the_Batch está activo, la acción S_Open_Outlet se ejecuta. La acción llama a la rutina Open_Outlet.

Cuando la rutina Open_Outlet se ejecuta, la instrucción OTE establece el tag Outlet.ProgCommand igual a 1, lo cual abre la válvula de salida.

Rutina Open_Outlet

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 65: 1756-pm001_-es-p

Diseño de un diagrama de funciones secuenciales 4-19

Éste es un ejemplo:

Cuando el paso S_Complete_the_Batch está activo, la acción S_Open_Outlet se ejecuta. Cuando la acción está activa, su bit Q se activa.

Una rutina de lógica de escalera monitorea el bit Q (S_Open_Outlet.Q ). Cuando el bit Q se activa, la instrucción JSR se ejecuta y abre la válvula de salida.

Se puede reutilizar una acción booleana múltiples veces dentro del mismo SFC.

Estructura SFC_ACTION

Cada acción (no booleana y booleana) utiliza un tag para proporcionar información acerca de la acción. Acceda a esta información ya sea mediante el cuadro de diálogo Action Properties o la ficha Monitor Tags de la ventana Tags:

Si desea: Entonces verifique o establezca este miembro:

Tipo de datos:

Detalles:

determinar cuándo está activa la acción

Q BOOL El estado del bit Q depende de si la acción es una acción booleana o una acción no booleana:

Si la acción es: Entonces el bit Q está:

booleana activado (1) durante todo el tiempo que la acción está activa, incluyendo el último escán de la acción

no booleana activado (1) mientras la acción está activa, perodesactivado (0) en el último escán de la acción

Si va a usar un bit para determinar cuándo está activa una acción, use el bit Q.

A BOOL El bit A está activado todo el tiempo que la acción está activa

determinar cuánto tiempo estuvo activo una acción (milisegundos)

T DINT Cuando una acción activa, el valor del temporizador (T) se restablece y luego comienza a contar progresivamente en milisegundos. El temporizador continúa contando progresivamente hasta que la acción se desactiva, independientemente del valor preseleccionado (PRE).

usar uno de los siguientes calificadores: L, SL, D, DS, SD

PRE DINT Introduzca el tiempo límite o el retardo en el miembro preseleccionado (PRE). La acción comienza o se detiene cuando el temporizador (T) llega al valor preseleccionado.

Como opción, introduzca una expresión numérica que calcule el tiempo durante la ejecución.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 66: 1756-pm001_-es-p

4-20 Diseño de un diagrama de funciones secuenciales

Describir cada acción en pseudocódigo

Para organizar la lógica para una acción, primero describa la acción en pseudocódigo. Si no está familiarizado con el pseudocódigo, siga estas pautas:

• Use una serie de instrucciones cortas que describan exactamente lo que debe suceder.

• Use términos o símbolos 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/cuándo primero) y luego la acción que se realizará en segundo lugar (what 2nd/qué segundo).

Introduzca el pseudocódigo en el cuerpo de la acción. Después de introducir el pseudocódigo, puede:

• Refinar el pseudocódigo para que se ejecute como texto estructurado.

• Usar el pseudocódigo para diseñar la lógica y dejar el pseudocódigo como comentarios. Puesto que todos los comentarios de texto estructurado se descargan al controlador, el pseudocódigo siempre está disponible como documentación para la acción.

Para convertir el pseudocódigo a comentarios de texto estructurado, añada los siguientes símbolos de comentarios:

determinar cuántas veces se activó una acción

Count DINT Esto no es un conteo de escanes de la acción. • El conteo incrementa cada vez que se activa la acción. • Se incrementa nuevamente sólo después que la acción se

desactiva y se vuelve a activar.• El conteo se restablece sólo si usted configura el SFC para

que se reinicie en el paso inicial. Con esa configuración, se restablece cuando el controlador cambia del modo Programa al modo Marcha.

usar un tag para los diversos bits de estado de esta acción

Estado DINT Para este miembro: Use este bit:

Q 30

A 31

Si desea: Entonces verifique o establezca este miembro:

Tipo de datos:

Detalles:

Para un comentario: Use uno de estos formatos:

en una sola línea //comment

que abarque más de una línea (*start of comment . . . end ofcomment*)

/*start of comment . . . end ofcomment*/

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 67: 1756-pm001_-es-p

Diseño de un diagrama de funciones secuenciales 4-21

Seleccionar un calificador para una acción

Cada acción (no booleana y booleana) utiliza un calificador para determinar cuándo comienza y se detiene.

El calificador predeterminado es Non-Stored. La acción comienza cuando se activa el paso y se detiene cuando se desactiva el paso.

Para cambiar cuándo comienza o se detiene una acción, asigne un calificador diferente:

Tabla 4.1 Seleccionar un calificador para una acción

Si desea que la acción: Y: Entonces asigne este calificador:

Lo cual significa:

comience cuando el paso se active se detenga cuando el paso se desactive N No almacenado

se ejecute sólo una vez P1 Pulso (flanco ascendente)

se detenga antes de que se desactive el paso o cuando se desactive el paso

l Tiempo limitado

permanezca activa hasta que una acción Reset desactive esta acción

S Almacenado

permanezca activa hasta que una acción Reset desactive esta accióno caduque un tiempo específico, aunque el paso se desactive

SL Almacenado y tiempo limitado

comience un tiempo específico después que el paso se active y el paso continúe activo

se detenga cuando el paso se desactive D Retardo de tiempo

permanezca activa hasta que una acción Reset desactive esta acción

DS Retardado y almacenado

comience un tiempo específico después que el paso se active, aunque el paso se desactive antes de este tiempo

permanezca activa hasta que una acción Reset desactive esta acción

SD Almacenado y retardo de tiempo

se ejecute una vez cuando el paso se active se ejecute una vez cuando el paso se desactive P Pulso

comience cuando el paso se desactive se ejecute sólo una vez P0 Pulso (flanco descendente)

desactive (restablezca) una acción almacenada:

• S Almacenado• SL Almacenado y tiempo limitado• DS Retardado y almacenado• SD Almacenado y retardo de tiempo

R Restablecer

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 68: 1756-pm001_-es-p

4-22 Diseño de un diagrama de funciones secuenciales

Definir las condiciones de la transición

La transición representa las condiciones físicas que deben ocurrir o cambiar para ir al siguiente paso.

Las transiciones ocurren en los siguientes lugares:

transición Si es verdadera, ir al siguiente paso.Si es falsa, repetir el paso anterior.

La transición le indica al SFC cuándo ir al siguiente paso.

Para esta estructura: Asegúrese de que:

secuencia Haya una transición entre cada paso.

bifurcación de selección Las transiciones estén dentro de las líneas horizontales.

bifurcación simultánea Las transiciones estén fuera de las líneas horizontales.

pasos

transiciones

transiciones

transiciones

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 69: 1756-pm001_-es-p

Diseño de un diagrama de funciones secuenciales 4-23

Los siguientes son dos ejemplos de transiciones:

Para anular el estado de una transición, vea “Forzado de elementos lógicos” en la página 18-1.

EJEMPLO Usted desea:

a. Activar 2 compresores. Cuando un compresor se activa, el bit Device1State se activa (init).

b. Cuando ambos compresores estén activados, ir al siguiente paso.

Solución:

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 razón de 8 por caja o 16 por caja.

Solución:

Init_Done compressor_1.Device1State = on (1)ycompressor_2.Device1State = on (1)

Init

carton_16

Package

package_done = on (1) y carton_size = 16

carton_8

Pack_16Pack_8

package_done = on (1) y carton_size = 8

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 70: 1756-pm001_-es-p

4-24 Diseño de un diagrama de funciones secuenciales

Tag de transición

Cada transición usa un tag BOOL para representar el estado verdadero o falso de la transición.

¿Cómo desea programar la transición?

Para programar la transición, existen estas opciones:

Usar una expresión BOOL

La manera más simple de programar la transición es introducir las condiciones como expresión BOOL en texto estructurado: Una expresión bool usa tags bool, operadores de relación y operadores lógicos para comparar valores y verificar si las condiciones son verdaderas o falsas. Por ejemplo, tag1>65.

Los siguientes son algunos ejemplos de expresiones BOOL.

Si la transición es: El valor es: Y:

verdadera 1 El SFC avanza al paso siguiente.

falsa 0 El SFC continúa ejecutando el paso actual.

Si desea: Entonces:

introducir las condiciones como expresión en texto estructurado

Usar una expresión BOOL

introducir las condiciones como instrucciones en otra rutina

Llamar a una subrutina

usar la misma lógica para múltiples transiciones

bool_tag_a bool_tag_a &bool_tag_b

dint_tag_a > 8

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 71: 1756-pm001_-es-p

Diseño de un diagrama de funciones secuenciales 4-25

Llamar a una subrutina

Para usar una subrutina para controlar una transición, incluya una instrucción End Of Transition (EOT) en la subrutina. La instrucción EOT retorna el estado de las condiciones a la transición, tal como se muestra a continuación.

1. Llame a una subrutina.

2. Verifique las condiciones requeridas. Cuando dichas condiciones son verdaderas, active un tag BOOL.

3. Use una instrucción EOT para establecer el estado de la transición igual al valor del tag BOOL. Cuando el tag BOOL se activa (verdadero), la transición es verdadera.

JSR - o bien -

If condition_1 & condition_2 &condition_3 then

BOOL_tag := 1;

Else

BOOL_tag := 0;

End_if;

EOT(BOOL_tag);

1

2

2

3

3

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 72: 1756-pm001_-es-p

4-26 Diseño de un diagrama de funciones secuenciales

Transición después de un tiempo especificado

Cada paso del SFC incluye un temporizador de milisegundos que funciona cuando el paso se activa. Use el temporizador para:

• señalar cuando el paso se ha ejecutado por el tiempo requerido y el SFC debe avanzar al siguiente paso.

• señalar 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 acción del temporizador y los bits asociados de un paso:

step_name.X

step_name.PRE

step_name.T

step_name.DN

1 2 3 4

Descripción:

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 continúa 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.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 73: 1756-pm001_-es-p

Diseño de un diagrama de funciones secuenciales 4-27

Figura 4.4 El siguiente diagrama muestra la acción de las alarmas baja y alta de un paso:

step_name.X

step_name.AlarmEn

step_name.T

step_name.AlarmLow

step_name.AlarmHigh

1 3 4 5 6

step_name.LimitHigh

2

step_name.LimitLow

Descripción:

1. AlarmEn está activado. Para usar las alarmas baja y alta, active este bit. Active este bit mediante el cuadro de diálogo 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 continúa incrementando.

6. El paso se desactiva.El bit X se desactiva.El temporizador retiene su valor.AlarmHigh permanece activado. (Usted tiene que desactivarlo manualmente).

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 74: 1756-pm001_-es-p

4-28 Diseño de un diagrama de funciones secuenciales

El siguiente es un ejemplo de uso del tiempo preseleccionado de un paso.

El siguiente es un ejemplo de uso de la alarma alta de un paso.

EJEMPLO La especificación funcional dice:

a. Cocinar (cook) los ingredientes en el tanque durante 20 segundos.

b. Vaciar el tanque.

Solución:

EJEMPLO La especificación funcional dice:

a. Poner en posición inicial (init) a 8 dispositivos.

b. Si los 8 dispositivos no están en la posición inicial en 20 segundos, entonces desactivar (shutdown) el sistema.

Solución:

Cook_Done

Cook Cook.PRE = 20000 ms

Cook.DN = on (1)

Empty_Tank

Init_Not_OK

Init Init.LimitHigh = 20000 ms

Init.AlarmHighInit_OK

ShutdownStep_1

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 75: 1756-pm001_-es-p

Diseño de un diagrama de funciones secuenciales 4-29

Desactivar un dispositivo al final de un paso

Cuando el SFC sale de un paso, usted tiene varias opciones respecto a cómo desactivar los dispositivos que el paso activó.

Cada opción requiere que usted haga las siguientes selecciones:

1. Seleccionar la opción de un último escán.

2. Basado en la opción de último escán, desarrollar la lógica de manera que el último escán retorne los datos a los valores deseados.

Seleccionar la opción de un último escán

En el último escán de cada paso, tiene las siguientes opciones. La opción que seleccione se aplicará a todos los pasos en todos los SFC de este controlador.

dejar que el controlador restablezca los datos automáticamente

usar la lógica para restablecer los datos

Automatic ResetProgrammatic Reset

Si desea: Y en el último escán de este paso: Entonces: Vea:

controlar qué datos restablecer

Ejecutar sólo las acciones P y P0 y usarlas para restablecer los datos requeridos.

Usar la opción Don’t Scan página 4-31

Ejecutar todas las acciones y usar cualquiera de estas opciones para restablecer los datos requeridos:

• bits de estado del paso o acción para condicionar la lógica

• Acciones P y P0

Usar la opción Programmatic Reset página 4-32

dejar que el controlador restablezca los datos

Usar la opción Automatic Reset página 4-34

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 76: 1756-pm001_-es-p

4-30 Diseño de un diagrama de funciones secuenciales

La siguiente tabla compara las diferentes opciones para manejar el último escán de un paso:

Característica: Durante el último escán de un paso, esta opción hace lo siguiente:

Don’t scan Programmatic reset Automatic reset

acciones de ejecución Sólo las acciones P y P0 se ejecutan. Se ejecutan según su lógica.

Todas las acciones se ejecutan según su lógica

• Las acciones P y P0 se ejecutan según su lógica.

• Todas las otras acciones se ejecutan en el modo post-escán.

• En el siguiente escán de la rutina, las acciones P y P0 se ejecutan en el modo post-escán.

retención de valores de datos

Todos los datos mantienen sus valores actuales.

Todos los datos mantienen sus valores actuales.

• Los datos regresan a sus valores para post-escán.

• Los tags a la izquierda de las asignaciones [:=] se restablecen a cero.

método para restablecer Use las acciones P y P0 Use uno de los siguientes:• bits de estado del paso o

acción para condicionar la lógica

• Acciones P y P0

Use uno de los siguientes:• Asignación [:=] (asignación

o retentiva)• instrucciones que

restablecen sus datos durante el post-escán

restablecimiento de un SFC anidado

Un SFC anidado permanece en su paso actual.

Un SFC anidado permanece en su paso actual.

Para la propiedad Restart Position, si usted selecciona la opción 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.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 77: 1756-pm001_-es-p

Diseño de un diagrama de funciones secuenciales 4-31

Usar la opción Don’t Scan

La opción predeterminada para manejar el último escán de un paso es Don’t scan. Con esta opción, todos los datos mantienen sus valores actuales cuando el SFC sale de un paso. Esto requiere que usted use asignaciones o instrucciones adicionales para restablecer los datos que desea desactivar al final de un paso.

Para desactivar un dispositivo al final de un paso:

1. Asegúrese de que la propiedad Last Scan of Active Steps esté establecida en la opción Don’t scan (predeterminada).

2. Use una acción P0 Pulse (Falling Edge) para restablecer los datos requeridos. Asegúrese de que la acción o acciones P0 sean las últimas en el orden de acciones para el paso.

Durante el último escán del paso, la opción Don’t scan ejecuta sólo las acciones P y P0. Las asignaciones e instrucciones de las acciones se ejecutan según las condiciones de la lógica.

• El controlador no ejecuta un post-escán de las asignaciones o instrucciones.

• Cuando el SFC sale del paso, todos los datos mantienen sus valores actuales.

El siguiente ejemplo usa una acción para activar un transportador al comienzo de un paso. Una acción diferente desactiva el transportador al final del paso.

EJEMPLO Usar la opción Don’t Scan

Esta acción activa el transportador. Cuando conveyor_state se activa, el transportador se activa.

Antes de que el SFC salga del paso, la acción P0 desactiva el transportador. En el último escán del paso, conveyor_state se desactiva. Esto desactiva el transportador.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 78: 1756-pm001_-es-p

4-32 Diseño de un diagrama de funciones secuenciales

Usar la opción Programmatic Reset

Un método opcional para programar automáticamente la desactivación (restablecimiento) de dispositivos al final de un paso, es ejecutar todas las acciones en el último escán del paso. Esto le permite ejecutar la lógica normal y desactivar (restablecer) los dispositivos al final de un paso.

1. En la propiedad Last Scan of Active Steps, seleccione la opción Programmatic reset:

2. Restablezca los datos requeridos usando cualquiera de los siguientes métodos:

• A la lógica normal, añada lógica que restablezca los datos requeridos. Use el bit LS del paso o el bit Q de la acción para condicionar la ejecución de la lógica.

• Use una acción P0 Pulse (Falling Edge) para restablecer los datos requeridos. Asegúrese de que la acción o acciones P0 sean las últimas en el orden de acciones para el paso.

Durante el último escán del paso, la opción Programmatic reset ejecuta todas las asignaciones e instrucciones según las condiciones de la lógica.

• El controlador no post-escán las asignaciones o instrucciones.

• Cuando el SFC sale del paso, todos los datos mantienen su valor actual.

El siguiente ejemplo usa una sola acción para activar y desactivar un transportador. El bit LS del paso condiciona la ejecución de la lógica. Vea “Estructura SFC_STEP” en la página 4-8.

EJEMPLO Usar la opción Programmatic Reset y el bit LS

Cuando el paso no está en su último escán (conveyor_fwd.LS = 0), esta instrucción activa conveyor_state. Cuando conveyor_state se activa, el transportador se activa.

En el último escán del paso (conveyor_fwd.LS =1), esta instrucción desactiva conveyor_state. Cuando conveyor_state se desactiva, el transportador se desactiva.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 79: 1756-pm001_-es-p

Diseño de un diagrama de funciones secuenciales 4-33

Para una acción que usa uno de los calificadores almacenados, use el bit Q de la acción para condicionar la lógica. Vea “Estructura SFC_ACTION” en la página 4-19.

También puede usar una acción P0 Pulse (Falling Edge) para restablecer los datos. El siguiente ejemplo usa una acción para activar un transportador al comienzo de un paso.Una acción diferente desactiva el transportador al final del paso.

EJEMPLO Usar la opción Programmatic Reset y el bit Q

Cuando la acción no está en su último escán (conveyor_start.Q =1), esta instrucción activa conveyor_state. Cuando conveyor_state se activa, el transportador se activa.

En el último escán de la acción (conveyor_start.Q =0), esta instrucción desactiva conveyor_state. Cuando conveyor_state se desactiva, el transportador se desactiva.

EJEMPLO Usar la opción Programmatic Reset y una acción P0

Esta acción activa el transportador. Cuando conveyor_state se activa, el transportador se activa.

Antes de que el SFC salga del paso, la acción P0 desactiva el transportador. En el último escán del paso, conveyor_state se desactiva. Esto desactiva el transportador.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 80: 1756-pm001_-es-p

4-34 Diseño de un diagrama de funciones secuenciales

Usar la opción Automatic Reset

Para desactivar (restablecer) automáticamente los dispositivos al final de un paso:

1. En la propiedad Last Scan of Active Steps, seleccione la opción Automatic reset:

2. Para desactivar un dispositivo al final del paso, controle el estado del dispositivo con una asignación o instrucción, tal como:

• Asignación [:=] (asignación o retentiva)

• Instrucción Output Energize (OTE) en una subrutina

Durante el último escán de cada paso, la opción Automatic reset hace lo siguiente:

• ejecutar las acciones P y P0 según las condiciones de la lógica

• restablecer los tags a la izquierda de las asignaciones [:=]

• ejecutar un post-escán de texto estructurado incorporado

• ejecutar un post-escán de cualquier subrutina que una acción llame mediante una instrucción Jump to Subroutine (JSR)

• restablecer cualquier SFC anidado (SFC que una acción llama como una subrutina)

Como regla general, el post-escán ejecuta las instrucciones como si todas las condiciones fueran falsas. Por ejemplo, la instrucción Output Energize (OTE) restablece sus datos durante el post-escán.

Algunas instrucciones no siguen la regla general durante el post-escán. Para obtener una descripción de cómo una instrucción específica se ejecuta durante el post-escán, consulte los siguientes manuales.

• Logix5000 Controllers General Instructions Reference Manual, publicación 1756-RM003

• Logix5000 Controllers Process and Drives Instructions Reference Manual, publicación 1756-RM006

• Logix5000 Controllers Motion Instruction Set Reference Manual, publicación 1756-RM007

IMPORTANTE El post-escán de una acción realmente ocurre cuando la acción cambia de activa a inactiva. Dependiendo del calificador de la acción, el post-escán podría ocurrir antes o después del último escán del paso.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 81: 1756-pm001_-es-p

Diseño de un diagrama de funciones secuenciales 4-35

El siguiente es un ejemplo que usa una asignación no retentiva para controlar un transportador. Activa un transportador al comienzo de un paso y desactiva automáticamente el transportador cuando el paso se ha efectuado.

Mantener algo activado de paso a paso

¿Cómo desea controlar el dispositivo?

Para proporcionar un control sin problemas de un dispositivo durante más de un tiempo o fase (paso), realice uno de las siguientes:

EJEMPLO Restablece los datos automáticamente

Esta acción 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.

Opción: Ejemplo:

Usar una bifurcación simultánea

Efectúe un paso separado que controle el dispositivo.

Almacenar y restablecer una acción

Observe el paso que activa el dispositivo y el paso que desactiva el dispositivo.

Posteriormente, defina una acción Almacenado y Restablecido para controlar el dispositivo.

Usar un paso grande

Use un paso grande que contenga todas las acciones que ocurren mientras el dispositivo está activado.

Fan CONTROL

Clean

Paint

Transfer_In

Transfr_Out

activar el ventilador

Clean

Paint

desactivar el ventilador

Transfer_In

Transfr_Out

transferir, pintar, limpiar, transferir controlar el ventilador

Paint

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 82: 1756-pm001_-es-p

4-36 Diseño de un diagrama de funciones secuenciales

Usar una bifurcación simultánea

Una manera simple de controlar un dispositivo o dispositivos durante uno o más pasos es crear un paso separado para los dispositivos. Luego use una bifurcación simultánea para ejecutar el paso durante el resto del proceso.

Éste es un ejemplo:

EJEMPLO Una operación de pintura hace lo siguiente:

1. Transfiere el producto al taller de pintura.

2. Pinta el producto usando 3 pistolas de pintura separadas.

3. Limpia las pistolas.

4. Transfiere el producto a los hornos de pintura.

Durante todo el proceso, el sistema debe controlar los ventiladores del taller.

Solución:

Fan CONTROL

Clean

Air_Flow Elec_ChargPaint_Flow

Transfer_In

Transfr_Out

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 83: 1756-pm001_-es-p

Diseño de un diagrama de funciones secuenciales 4-37

Almacenar y restablecer una acción

Normalmente, una acción se desactiva (deja de ejecutarse) cuando el SFC va al siguiente paso. Para mantener un dispositivo activado de paso a paso, almacene la acción que controla el dispositivo:

1. En el paso que activa el dispositivo, asigne un calificador almacenado a la acción que controla el dispositivo. Para obtener una lista de los calificadores almacenados, vea la Tabla 4.1 en la página 4-21.

2. Si el paso desactiva el dispositivo, use una acción Reset.

La siguiente figura muestra el uso de una acción almacenada.

Cuando el SFC sale del paso que almacena la acción, el software RSLogix 5000 continúa mostrando la acción almacenada como activa. (De manera predeterminada, un borde verde se muestra alrededor de la acción). Esto le indica que el SFC está ejecutando la lógica de esa acción.

Action_Name

paso que inicia la acción

S

acción que usted desea ejecutar por más de un paso

más pasos

el mismo nombre que la acción almacenada

r Action_Name

paso que detiene la acción

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 84: 1756-pm001_-es-p

4-38 Diseño de un diagrama de funciones secuenciales

Para usar una acción almacenada, siga estas pautas:

• La acción Reset sólo desactiva la acción almacenada. No desactiva automáticamente los dispositivos de la acción. Para desactivar el dispositivo, continúe la acción Reset con otra acción que desactive el dispositivo. O use la opción Automatic reset descrita en la página 4-34.

• Tenga cuidado cuando salte entre un paso que almacena una acción y un paso que restablece la acción. Una vez que usted restablece una acción, ésta sólo se inicia cuando usted ejecuta el paso que almacena la acción.

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.

Para volver a activar el ventilador, el SFC tiene que saltar nuevamente al step_1.

activar el ventilador (almacenado)

desactivar el ventilador (restablecido)

step_1

step_2

step_3

step_4

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 85: 1756-pm001_-es-p

Diseño de un diagrama de funciones secuenciales 4-39

Usar un paso grande

Si usted usa un paso grande para múltiples funciones, entonces use la lógica adicional para proporcionar secuencia a las funciones. Una opción es anidar un SFC dentro del paso grande.

En el siguiente ejemplo, un paso activa un ventilador y luego llama a otro SFC. El SFC anidado proporciona secuencia a las funciones restantes del paso. El ventilador permanece activado durante todos los pasos del SFC anidado.

Para obtener información adicional sobre cómo anidar un “SFC, vea Anidar un SFC” en la página 4-43.

EJEMPLO Usar un paso grande

Esta acción activa un ventilador:• fan.ProgProgReq permite que el SFC comande el

estado del ventilador. • fan.ProgCommand activa el ventilador.

El ventilador permanece activo durante todo el paso.

Esta acción llama a otro SFC. El SFC proporciona secuencia a las funciones restantes del paso.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 86: 1756-pm001_-es-p

4-40 Diseño de un diagrama de funciones secuenciales

Terminar el SFC Una vez que el SFC concluye su último paso, no se reinicia automáticamente en el primer paso. Usted debe indicar al SFC qué hacer cuando concluya el último paso.

¿Al final del SFC, qué desea hacer?

Usar un elemento de paro

El elemento de paro le permite parar la ejecución de todo el SFC o una ruta de una bifurcación simultánea y esperar para reiniciar. Cuando un SFC llega a un elemento de paro, ocurre lo siguiente:

• El bit X del elemento de paro se activa. Esto indica que el SFC está en el elemento de paro.

• La ejecución se detiene por parte o todo el SFC:

Para: Haga lo siguiente:

hacer un lazo a un paso anterior automáticamente

Conecte la última transición a la parte superior del paso al cual desea ir.

Vea “Conectar a un paso previo“ en la página 4-16.

parar y esperar un comando para reiniciar

Usar un elemento de paro.

Vea “Usar un elemento de paro” en la página 4-40.

Si el elemento de paro está al final de una: Entonces:

secuencia todo el SFC se detiene

bifurcación de selección

ruta dentro de una bifurcación simultánea sólo la ruta se detiene mientras que el resto del SFC continúa ejecutándose.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 87: 1756-pm001_-es-p

Diseño de un diagrama de funciones secuenciales 4-41

Reiniciar (restablecer) el SFC

En el elemento de paro, usted tiene varias opciones para reiniciar el SFC:

EJEMPLO Usar un elemento de paro

Cuando el SFC llega a last_step yprocess_done es verdadero, la ejecución del SFC se detiene.

Si el SFC está: Y la opción Last Scan of Active Steps es:

Entonces:

anidado (por ej., otro SFC llama a este SFC como subrutina)

Automatic reset Al final del paso que llama al SFC anidado, el SFC anidado se restablece automáticamente:

• El SFC anidado se restablece al paso inicial.• El bit X del elemento de paro en el SFC anidado se

restablece a cero.

Programmatic reset 1. Use una instrucción SFC Reset (SFR) para reiniciar el SFC en el paso requerido.

2. Use la lógica para restablecer el bit X del elemento de paro.

Don’t scan

NO anidado (por ej., ningún SFC llama a este SFC como subrutina)

1. Use una instrucción SFC Reset (SFR) para reiniciar el SFC en el paso requerido.

2. Use la lógica para restablecer el bit X del elemento de paro.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 88: 1756-pm001_-es-p

4-42 Diseño de un diagrama de funciones secuenciales

El siguiente ejemplo muestra el uso de la instrucción SFC Reset (SFR) para reiniciar el SFC y restablecer el bit X del elemento de paro.

Estructura SFC_STOP

Cada paro usa un tag para proporcionar la siguiente información acerca del elemento de paro:

EJEMPLO 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 escán (ons[0] = on):

Restablecer SFC_a a SFC_a_Step_1

SFC_a_stop.X = 0

Si desea: Entonces verifique o establezca este miembro:

Tipo de datos:

Detalles:

determinar cuando el SFC esté en paro

X 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 también se restablece si usted configura los SFC para restablecimiento automático, y el SFC sale del paso que llama al SFC anidado.

determinar el receptor de una instrucción SFC Reset (SFR)

Reset BOOL Una instrucción SFC Reset (SFR) restablece el SFC en un paso o paro que la instrucción especifica.

• El bit de restablecimiento indica a cuál paso o paro irá el SFC para comenzar la ejecución nuevamente.

• Una vez que el SFC se ejecuta, el bit de restablecimiento se restablece.

determinar cuántas veces se activó un paro

Count DINT Esto no es un conteo de escanes del paro.• El conteo incrementa cada vez que se activa el paro.• Se incrementa nuevamente sólo después que el paro se

desactiva y se vuelve a activar.• El conteo se restablece sólo si usted configura el SFC para

que se reinicie en el paso inicial. Con esa configuración, se restablece cuando el controlador cambia del modo Programa al modo Marcha.

usar un tag para los diversos bits de estado de este paro

Status DINT Para este miembro: Use este bit:

Reset 22

X 31

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 89: 1756-pm001_-es-p

Diseño de un diagrama de funciones secuenciales 4-43

Anidar un SFC Un método para organizar el proyecto es crear un SFC que proporcione una visualización 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 método, la opción de último escán del SFC se configura ya sea para Programmatic reset o Don’t scan. Si usted configura el SFC para Automatic reset, entonces el paso 1 no es necesario.

1. Restablezca el SFC anidado.

• La instrucción 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 acción también 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.

1

2

4

3

SFC_b

SFC_a

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 90: 1756-pm001_-es-p

4-44 Diseño de un diagrama de funciones secuenciales

Pasar parámetros

Para pasar parámetros hacia o desde un SFC, coloque un elemento de subrutina/retorno en el SFC.

Configurar cuándo retornar al OS/JSR

De manera predeterminada, un SFC ejecuta un paso o grupo de pasos simultáneos y luego retorna al sistema operativo (OS) o a la rutina que efectuó la llamada (JSR).

Usted tiene la opción de dejar que el SFC se ejecute hasta que llegue a una transición falsa. Si varias transiciones son verdaderas al mismo tiempo, esta opción reduce el tiempo para llegar al paso deseado.

Use la opción Execute until FALSE transition sólo cuando:

1. No necesite actualizar los parámetros de JSR antes de cada paso. Los parámetros se actualizan sólo cuando el SFC retorna a la JSR. Vea “Pasar parámetros” en la página 4-44.

2. Una transición 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 ejecución de cada opción, vea la Figura 4.9 en la página 4-49.

Parámetros de entrada

Parámetros de retorno

❇ ❇

SFC_b

predeterminado

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 91: 1756-pm001_-es-p

Diseño de un diagrama de funciones secuenciales 4-45

Pausa o restablecer un SFC Hay dos instrucciones opcionales disponibles para darle mayor control sobre la ejecución del SFC:

Ambas instrucciones están disponibles en los lenguajes de lógica de escalera y programación de texto estructurado.

Para obtener más información, use cualquiera de los siguientes recursos:

• En el software RSLogix 5000, en el menú Help, seleccione Instruction Help. Vea la categoría Program Control Instructions.

• Vea Logix5000 Controllers General Instructions Reference Manual, publicación 1756-RM003.

Diagramas de ejecución Los siguientes diagramas muestran la ejecución de un SFC con diferentes organizaciones de pasos o diferentes selecciones de opciones de ejecución. Use los diagramas si necesita un entendimiento más detallado de cómo se ejecuta el SFC.

Si desea: Entonces use esta instrucción:

poner en pausa un SFC Pause SFC (SFP)

restablecer un SFC a un paso o paro específico

Reset SFC (SFR)

Para el diagrama de: Vea la página:

Ejecución de una secuencia 4-46

Ejecución de una bifurcación simultánea 4-47

Ejecución de una bifurcación de selección 4-48

Cuando los parámetros entran y salen de un SFC 4-48

Opciones para el control de ejecución 4-49

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 92: 1756-pm001_-es-p

4-46 Diseño de un diagrama de funciones secuenciales

Figura 4.5 Ejecución de una secuencia

step_2 último escán

falso regresar aOS/JSR

regresar aOS/JSR

verdadero

step_1

regresar aOS/JSR

verdadero

falso regresar aOS/JSR

step_1

tran_2

step_2

tran_1

Lo siguiente… …se ejecuta de la siguiente manera

tran_1

tran_2

último escánstep_1

step_2

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 93: 1756-pm001_-es-p

Diseño de un diagrama de funciones secuenciales 4-47

Figura 4.6 Ejecución de una bifurcación simultánea

step_1

falso regresar aOS/JSR

falso regresar aOS/JSR

regresar aOS/JSR

step_1

falso

step_3

regresar aOS/JSR

step_1

tran_2

step_2 step_3

step_2

step_2

regresar aOS/JSR

step_3

step_2

step_3

Lo siguiente… …se ejecuta de la siguiente manera

tran_1

tran_1

tran_2

tran_2

último escán

último escán

verdadero

verdadero

verdadero

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 94: 1756-pm001_-es-p

4-48 Diseño de un diagrama de funciones secuenciales

Figura 4.7 Ejecución de una bifurcación de selección

Figura 4.8 Cuando los parámetros entran y salen de un SFC

último escán

último escán

falso regresar aOS/JSR

falso

regresar aOS/JSR

step_1

step_1

regresar aOS/JSR

falso regresar aOS/JSR

step_2

tran_2

step_2

regresar aOS/JSR

step_1

step_3

regresar aOS/JSR

step_3

falso

step_1

step_2 step_3

tran_4

tran_1

tran_3regresar aOS/JSR

Lo siguiente… …se ejecuta de la siguiente manera

tran_2

tran_3 tran_4

tran_1

verdadero

verdadero verdadero

verdadero

último escán

regresar aOS/JSR

falso

step_1

regresar aOS/JSR

step_1

parámetros de entrada

parámetros de retorno

parámetros de retorno

parámetros de entrada

parámetros de entrada

tran_1

verdadero

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 95: 1756-pm001_-es-p

Diseño de un diagrama de funciones secuenciales 4-49

Figura 4.9 Opciones para el control de ejecución

último escán

último escán

falso regresar aOS/JSR

regresar aOS/JSR

step_1

step_1

regresar aOS/JSR

verdadero

falso

step_2

regresar aOS/JSR

step_2

falso regresar aOS/JSR

verdadero

step_1

step_1

verdadero

falso

step_2

regresar aOS/JSR

step_2

Ejecutar los pasos activos actuales solamente Ejecutar hasta transición FALSA

step_1

tran_2

step_2

tran_1

Lo siguiente…

…se ejecuta de la siguiente manera

tran_2

falso regresar aOS/JSRtran_1

tran_2

tran_1

verdadero

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 96: 1756-pm001_-es-p

4-50 Diseño de un diagrama de funciones secuenciales

Notas:

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 97: 1756-pm001_-es-p

Capítulo 5

Programación de un diagrama de funciones secuenciales

Cuándo usar este procedimiento

Use este procedimiento para introducir un diagrama de funciones secuenciales (SFC) en el software RSLogix 5000. Introduzca el SFC a medida que lo diseña. O primero diseñe el SFC y luego introdúzcalo. Para diseñar el SFC, vea “Diseño de un diagrama de funciones secuenciales” en la página página 4-1.

Antes de usar este procedimiento

Antes de usar este procedimiento, asegúrese de que puede realizar las siguientes tareas:

Para obtener más información sobre cualquiera de esas tareas, vea “Organización de tareas, programas y rutinas” en la página 2-1.

Abra o cierre una carpeta

Cree una rutina

1 Publicación 1756-PM001E-ES-P - Agosto 2002

Page 98: 1756-pm001_-es-p

5-2 Programación de un diagrama de funciones secuenciales

Cómo usar este procedimiento

Para programar un SFC:

Añadir un elemento de SFC

Crear una bifurcación simultánea

Crear una bifurcación de selección

Establecer las prioridades de una bifurcación de selección

Regresar a un paso previo

Cambiar el nombre de un paso

Configurar un paso

Cambiar el nombre de una transición

Programar una transición

Añadir una acción

Cambiar el nombre de una acción

Configurar una acción

Programar una acción

Asignar el orden de ejecución de las acciones

Documentar el SFC

Mostrar u ocultar cuadros de texto o descripciones de tag

Configurar la ejecución del SFC

Verificar la rutina

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 99: 1756-pm001_-es-p

Programación de un diagrama de funciones secuenciales 5-3

Añadir un elemento de SFC Para añadir elementos de SFC, use la barra de herramientas SFC.

Para añadir un elemento al SFC, tiene estas opciones:

Añadir y conectar manualmente los elementos

1. En la barra de herramientas SFC, haga clic en el botón del ítem que desea añadir.

2. Arrastre el elemento a la ubicación deseada en el SFC.

3. Para cablear (conectar) dos elementos juntos, haga clic en un

pin en uno de los elementos y luego haga clic en el pin en

el otro elemento . Un punto verde muestra un punto de conexión válido.

paso

transición

inicio de bifurcación simultánea

paso y transición

inicio debifurcación de

selección

subrutina/retorno

cuadro de texto

paro

nueva ruta

Añadir y conectar manualmente los elementos

Añadir y conectar automáticamente los elementos

Arrastrar y colocar elementos

punto verde

A

B

Por ejemplo:

A

B

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 100: 1756-pm001_-es-p

5-4 Programación de un diagrama de funciones secuenciales

Añadir y conectar automáticamente los elementos

1. Seleccione (haga clic en) el elemento al cual desea conectar un nuevo elemento.

2. Con el elemento todavía seleccionado, haga clic en el botón de la barra de herramientas para el siguiente elemento.

Arrastrar y colocar elementos

En la barra de herramientas SFC, arrastre el botón para el elemento requerido al punto de conexión deseado en el SFC. Un punto verde muestra un punto de conexión válido.

punto verde

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 101: 1756-pm001_-es-p

Programación de un diagrama de funciones secuenciales 5-5

Crear una bifurcación simultánea

iniciar una bifurcación simultánea

1. En la barra de herramientas SFC, haga clic en el botón . Luego arrastre la nueva bifurcación a la ubicación deseada.

2. Para añadir una ruta a la bifurcación, seleccione, (haga clic) el primer paso de la ruta que está a la izquierda de donde desea

añadir la nueva ruta. Luego haga clic en el botón .

3. Para cablear la bifurcación simultánea a la transición precedente,

haga clic en el pin inferior de la transición y luego haga clic

en la línea horizontal de la bifurcación. . Un punto verde muestra un punto de conexión válido.

Terminar una bifurcación simultánea

1. Seleccione el último paso de cada ruta en la bifurcación. Para seleccionar los pasos, puede:

• Hacer clic y arrastrar el puntero alrededor de los pasos que desea seleccionar.

• Hacer clic en el primer paso. Luego presionar y mantener presionado [Shift] y hacer clic en el resto de pasos que desea seleccionar.

2. En la barra de herramientas SFC, haga clic en el botón .

A

B

punto verde

A

B

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 102: 1756-pm001_-es-p

5-6 Programación de un diagrama de funciones secuenciales

3. Añada la transición que sigue a la bifurcación simultánea.

4. Para cablear la bifurcación simultánea a la transición, haga clic

en el pin superior de la transición y luego haga clic en la

línea horizontal de la bifurcación . Un punto verde muestra un punto de conexión válido.

Crear una bifurcación de selección

Iniciar una bifurcación de selección

1. En la barra de herramientas SFC, haga clic en el botón . Luego arrastre la nueva bifurcación a la ubicación deseada.

2. Para añadir una ruta a la bifurcación, seleccione, (haga clic) la primera transición de la ruta que está a la izquierda de donde

desea añadir la nueva ruta. Luego haga clic en el botón .

3. Para cablear la bifurcación de selección al paso precedente,

haga clic en el pin inferior del paso y luego haga clic en la

línea horizontal de la bifurcación . Un punto verde muestra un punto de conexión válido.

A

B

punto verde

A

B

A

B

punto verde

A

B

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 103: 1756-pm001_-es-p

Programación de un diagrama de funciones secuenciales 5-7

Terminar una bifurcación de selección

1. Seleccione la última transición de cada ruta en la bifurcación. Para seleccionar las transiciones, puede:

• Hacer clic y arrastrar el puntero alrededor de las transiciones que desea seleccionar.

• Hacer clic en la primera transición. Luego presionar y mantener presionado [Shift] y hacer clic en el resto de transiciones que desea seleccionar.

2. En la barra de herramientas SFC, haga clic en el botón .

3. Añada el paso que sigue a la bifurcación de selección.

4. Para cablear la bifurcación de selección al paso, haga clic en el

pin superior del paso y luego haga clic en la línea horizontal

de la bifurcación . Un punto verde muestra un punto de conexión válido.

A

B

punto verde

A

B

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 104: 1756-pm001_-es-p

5-8 Programación de un diagrama de funciones secuenciales

Establecer las prioridades de una bifurcación de selección

De manera predeterminada, el SFC verifica las transiciones que inician una bifurcación de selección de izquierda a derecha. Si desea verificar una transición diferente primero, asigne una prioridad a cada ruta de la bifurcación de selección. Por ejemplo, es una buena práctica verificar primero si hay condiciones de error. Luego verificar las condiciones normales.

Para asignar prioridades a una bifurcación de selección:

1. Haga clic con el botón derecho del mouse en la línea horizontal que inicia la bifurcación y seleccione Set Sequence Priorities.

2. Borre la marca de verificación del cuadro de diálogo Use default priorities.

3. Seleccione una transición.

4. Use los botones Move para aumentar o bajar la prioridad de la transición.

5. Cuando todas las transiciones tengan la prioridad deseada,

seleccione

Cuando usted borra la marca de verificación del cuadro de diálogo Use default priorities, los números muestran la prioridad de cada transición.

3.

2.

4.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 105: 1756-pm001_-es-p

Programación de un diagrama de funciones secuenciales 5-9

Regresar a un paso previo Para saltar a un paso diferente en el SFC:

• Conectar un cable al paso

• Ocultar un cable

• Mostrar un cable oculto

Conectar un cable al paso

1. Haga clic en el pin inferior de la transición que indica el salto. Luego haga clic en el pin superior del paso al cual desea ir. Un punto verde muestra un punto de conexión válido.

Normalmente, la conexión resultante se orienta a lo largo del centro del diagrama de flujo y es difícil de ver.

2. Para facilitar la lectura del salto, arrastre su barra horizontal arriba del paso al cual va el salto. Quizás tenga que reposicionar algunos de los elementos del SFC.

Por ejemplo, para ir al Step_001 desde Tran_003:

Arrastre la barra horizontal aquí.

Haga clic aquí.

punto verde

Luego haga clic aquí.

1. 2.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 106: 1756-pm001_-es-p

5-10 Programación de un diagrama de funciones secuenciales

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 botón derecho del mouse en el cable y seleccione Hide Wire.

Para ver el elemento SFC adonde va el cable, haga clic en la ubicación de la cuadrícula en el cable.

Mostrar un cable oculto

Para mostrar un cable oculto, haga clic con el botón derecho del mouse en un parte visible del cable y seleccione Show Wire.

lugar donde va el cable

cable oculto

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 107: 1756-pm001_-es-p

Programación de un diagrama de funciones secuenciales 5-11

Cambiar el nombre de un paso

Cada paso usa un tag para almacenar la información de configuración y estado acerca del paso. Para cambiar el nombre del tag del paso:

1. Haga clic en el botón del paso.

2. Haga clic en la ficha Tag.

3. Escriba el nuevo nombre para el paso (tag).

4. Seleccione

Configurar un paso Para configurar un paso, tiene estas opciones:

• Asignar el tiempo preseleccionado para un paso

• Configurar alarmas para un paso

• Usar una expresión para calcular un tiempo

Asignar el tiempo preseleccionado para un paso

1. Haga clic en el botón del paso.

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 ejecución, vea “Usar una expresión para calcular un tiempo” en la página 5-12.

3.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 108: 1756-pm001_-es-p

5-12 Programación de un diagrama de funciones secuenciales

Configurar alarmas para un paso

Para activar una alarma si un paso se ejecuta durante demasiado tiempo o no se ejecuta el tiempo suficiente.

1. Haga clic en el botón del paso.

2. Seleccione el cuadro de verificación AlarmEnable.

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 ejecución, vea “Usar una expresión para calcular un tiempo” en la página 5-12.

Usar una expresión para calcular un tiempo

Para calcular un tiempo basado en tags en el proyecto, introduzca el tiempo como expresión numérica. Puede usar una expresión para calcular los siguientes tiempos:

• Preset

• LimitHigh

• LimitLow

Para introducir un tiempo como una expresión:

1. Haga clic en el botón del paso.

2. Seleccione el cuadro de verificación Use Expression.

2.

3.

4.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 109: 1756-pm001_-es-p

Programación de un diagrama de funciones secuenciales 5-13

3. Haga clic en el botón Define.

4. Escriba una expresión numérica que defina el tiempo.

• Use los botones a lo largo del cuadro de diálogo como ayuda para completar la expresión.

• Para obtener información sobre expresiones numéricas, vea “Expresiones” en la página 6-4.

5. Seleccione

6. Para cerrar el cuadro de diálogo Step Properties,

seleccione

2.

3.

busque un tag

seleccione una

seleccione un

cree un tag

4.

5.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 110: 1756-pm001_-es-p

5-14 Programación de un diagrama de funciones secuenciales

Cambiar el nombre de una transición

Cada transición usa un tag para almacenar el estado de la transición. Para cambiar el nombre del tag de la transición:

1. Haga clic en el botón de la transición.

2. Haga clic en la ficha Tag.

3. Escriba el nuevo nombre para la transición (tag).

4. Seleccione

Programar una transición Para programar una transición, tiene estas opciones:

• Introducir una expresión BOOL

• Llamar a una subrutina

Introducir una expresión BOOL

La manera más fácil de programar la transición es introducir las condiciones como expresión BOOL en texto estructurado. Para obtener información sobre expresiones BOOL, vea “Expresiones” en la página 6-4.

1. Haga doble clic en el área de texto de la transición.

2. Escriba la expresión BOOL que determina cuando la transición es verdadera o falsa.

3. Para cerrar la ventana de entrada, presione [Ctrl] + [Enter].

3.

BOOL_expression

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 111: 1756-pm001_-es-p

Programación de un diagrama de funciones secuenciales 5-15

Los siguientes ejemplos muestran tres transiciones que usan una expresión BOOL.

Llamar a una subrutina

1. Haga clic con el botón derecho del mouse en la transición y seleccione Set JSR.

2. Seleccione la rutina que contiene la lógica para la transición.

3. Seleccione

EJEMPLO Introducir una expresión BOOL

nombre de tag de la transición

Expresión BOOL que controla cuando latransición es verdadera o falsa

2.

JSR(routine_name)

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 112: 1756-pm001_-es-p

5-16 Programación de un diagrama de funciones secuenciales

Añadir una acción Para añadir una acción a un paso:

Haga clic con el botón derecho del mouse en el paso en el cual se ejecuta la acción y seleccione Add Action.

Cambiar el nombre de una acción

Para cambiar el nombre de una acción a algo que sea específico para su aplicación:

1. Haga clic en el botón de la acción.

2. Haga clic en la ficha Tag.

3. Escriba el nuevo nombre para la acción (tag).

4. Seleccione

3.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 113: 1756-pm001_-es-p

Programación de un diagrama de funciones secuenciales 5-17

Configurar una acción Para configurar una acción, tiene estas opciones:

• Cambiar el calificador de una acción

• Calcular un tiempo preseleccionado en tiempo de ejecución

• Marcar una acción como acción booleana

Cambiar el calificador de una acción

Un calificador determina cuándo comienza y se detiene una acción. El calificador predeterminado es N Non-Stored. La acción se inicia cuando el paso se activa y se detiene cuando el paso se desactiva. Para obtener más información, vea “Seleccionar un calificador para una acción” en la página 4-21.

1. Haga clic en el botón de la acción.

2. Asigne un calificador para la acción.

3. Si selecciona un calificador temporizado, escriba el límite de tiempo o el retardo para la acción, 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

2.

3.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 114: 1756-pm001_-es-p

5-18 Programación de un diagrama de funciones secuenciales

Calcular un tiempo preseleccionado en tiempo de ejecución

Para calcular un valor preseleccionado basado en tags en el proyecto, introduzca el valor como expresión numérica.

1. Haga clic en el botón de la acción.

2. Seleccione el cuadro de verificación Use Expression.

3. Haga clic en el botón Define.

4. Escriba una expresión numérica que defina el tiempo preseleccionado.

• Use los botones a lo largo del cuadro de diálogo como ayuda para completar la expresión.

• Para obtener información sobre expresiones numéricas, vea “Expresiones” en la página 6-4.

5. Seleccione

6. Para cerrar el cuadro de diálogo Action Properties,

seleccione

2.

3.

busque un tag

seleccione una función

seleccione un operador

cree un tag

4.

5.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 115: 1756-pm001_-es-p

Programación de un diagrama de funciones secuenciales 5-19

Marcar una acción como acción booleana

Use una acción booleana sólo para establecer un bit cuando se ejecute la acción. Para obtener más información, vea “Usar una acción booleana” en la página 4-18.

1. Haga clic en el botón de la acción.

2. Haga clic en el cuadro de verificación Boolean.

3. Seleccione

Programar una acción Para programar una acción, tiene estas opciones:

• Introducir texto estructurado

• Llamar a una subrutina

Introducir texto estructurado

La manera más fácil de programar una acción es escribir la lógica como texto estructurado dentro del cuerpo de la acción. Cuando se activa la acción, el controlador ejecuta el texto estructurado.

1. Haga doble clic en el área de texto de la acción.

2. Escriba el texto estructurado requerido.

3. Para cerrar la ventana de entrada, presione [Ctrl] + [Enter].

2.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 116: 1756-pm001_-es-p

5-20 Programación de un diagrama de funciones secuenciales

Para obtener información sobre texto estructurado:

//commentstatement;statement;

Para obtener esta información sobre texto estructurado:

Vea:

información general acerca de asignaciones, operadores, funciones, instrucciones o comentarios

“Programación de texto estructurado” en la página 6-1

información acerca de una instrucción específica • Logix5000 Controllers General Instructions Reference Manual, publicación 1756-RM003

• Logix5000 Controllers Process and Drives Instructions Reference Manual, publicación 1756-RM006

• Logix5000 Controllers Motion Instruction Set Reference Manual, publicación 1756-RM007

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 117: 1756-pm001_-es-p

Programación de un diagrama de funciones secuenciales 5-21

Llamar a una subrutina

Use una instrucción Jump to Subroutine (JSR) para ejecutar una subrutina cuando la acción está activa.

1. En el SFC, haga clic con el botón derecho del mouse en el área de entrada de texto de la acción y seleccione Set JSR.

2. Seleccione la rutina que desea llamar.

3. Para pasar un parámetro a la rutina, haga clic en el cuadro de texto vacío Input Parameters. Luego use la flecha hacia abajo para seleccionar el tag que contiene el parámetro.

4. Para recibir a un parámetro proveniente de la rutina, haga clic en el cuadro de texto vacío Return Parameters. Luego use la flecha hacia abajo para seleccionar el tag en el cual desea almacenar el parámetro proveniente de la rutina.

5. Seleccione

2.

3. 4.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 118: 1756-pm001_-es-p

5-22 Programación de un diagrama de funciones secuenciales

Asignar el orden de ejecución de las acciones

Las acciones se ejecutan en el orden en el cual aparecen.

Por ejemplo:

Para cambiar el orden en el cual se ejecuta una acción, arrastre la acción al lugar deseado en la secuencia. Una barra verde muestra un lugar de ubicación válido.

Por ejemplo:

Cuando Step_003 está activo, sus acciones se ejecutan en este orden:

1. Action_0002. Action_0013. Action_002

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 119: 1756-pm001_-es-p

Programación de un diagrama de funciones secuenciales 5-23

Documentar el SFC Para documentar un SFC, existen las siguientes opciones:

Añadir comentarios de texto estructurado

Use la siguiente tabla para formatear sus comentarios:

Para obtener más información, vea “Comentarios” en la página 6-26.

Para introducir los comentarios:

Para documentar lo siguiente: Y usted desea hacer lo siguiente: Haga lo siguiente:

información general acerca del SFC Añadir un cuadro de texto

paso Añadir un cuadro de texto-o bien-Añadir una descripción de tag

transición descargar la documentación al controlador Añadir comentarios de texto estructurado

tener la opción de mostrar u ocultar la documentación

Añadir un cuadro de texto-o bien-Añadir una descripción de tag

colocar la documentación en cualquier lugar en el SFC

acción descargar la documentación al controlador Añadir comentarios de texto estructurado

paro Añadir un cuadro de texto-o bien-Añadir una descripción de tagotro elemento (por ej., bifurcación de

selección)

Para añadir un comentario: Use uno de estos formatos:

en una sola línea //comment

(*comment*)

/*comment*/

al final de una línea de texto estructurado

dentro de una línea de texto estructurado

(*comment*)

/*comment*/

que abarque más de una línea (*start of comment . . . end ofcomment*)

/*start of comment . . . end ofcomment*/

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 120: 1756-pm001_-es-p

5-24 Programación de un diagrama de funciones secuenciales

1. Haga doble clic en el área de texto de la acción.

2. Escriba los comentarios.

3. Para cerrar la ventana de entrada, presione [Ctrl] + [Enter].

Añadir una descripción de tag

1. Haga clic en el botón del elemento.

2. Haga clic en la ficha Tag.

3. Escriba la descripción del elemento (tag).

4. Seleccione

5. Arrastre el cuadro de descripción al lugar deseado en el SFC.

//commentstatement;statement;

3.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 121: 1756-pm001_-es-p

Programación de un diagrama de funciones secuenciales 5-25

Añadir un cuadro de texto

Un cuadro de texto le permite añadir notas que aclaran la función de un elemento del SFC (paso, transición, paro, etc.). O use un cuadro de texto para capturar información que utilizará posteriormente. Por ejemplo:

1. Haga clic

Aparece un cuadro de texto.

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?

5. Haga clic en el símbolo 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 conexión válido.

Si usted desea que el cuadro de texto:

Entonces:

permanezca en el mismo lugar Deténgase. Ya terminó.

se mueva con el elemento a donde se aplica

Vaya al paso paso 5

A

B

punto verde

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 122: 1756-pm001_-es-p

5-26 Programación de un diagrama de funciones secuenciales

Mostrar u ocultar cuadros de texto o descripciones de tag

Tiene la opción de mostrar u ocultar los cuadros de texto y las descripciones de tag. Si selecciona mostrar descripciones, la ventaja SFC sólo 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 descripción de tag individual

Mostrar u ocultar cuadros de texto o descripciones

1. En el menú Tools, seleccione Options.

2. Bajo SFC Editor, seleccione la categoría Display.

3. Seleccione la opción deseada.

4. Seleccione

2.

Si desea: Entonces:

mostrar cuadros de texto o descripciones

seleccione el cuadro de verificación correspondiente

ocultar cuadros de texto o descripciones

borre la selección del cuadro de verificación correspondiente

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 123: 1756-pm001_-es-p

Programación de un diagrama de funciones secuenciales 5-27

Ocultar una descripción de tag individual

Para ocultar la descripción de un elemento específico mientras muestra otras descripciones:

1. Haga clic en el botón del elemento cuya descripción desea ocultar.

2. Seleccione el cuadro de verificación Never display description in routine.

3. Seleccione

Para mostrar otras descripciones, vea “Mostrar u ocultar cuadros de texto o descripciones” en la página 5-26.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 124: 1756-pm001_-es-p

5-28 Programación de un diagrama de funciones secuenciales

Configurar la ejecución del SFC

La ficha SFC Execution del cuadro de diálogo Controller Properties le permite configurar lo siguiente:

• qué hacer cuando una transición es verdadera

• dónde comenzar después de una transición al modo Marcha o de una recuperación de una pérdida de alimentación eléctrica

• qué hacer en el último escán de un paso

1. En la barra de herramientas en línea, haga clic en el botón Controller Properties.

2. Haga clic en la ficha SFC Execution.

3. Seleccione si regresar o no a la instrucción OS/JSR si una transición es verdadera.

4. Seleccione dónde reiniciar el SFC después de una transición al modo Marcha o de una recuperación de una pérdida de alimentación eléctrica.

5. Seleccione qué hacer en el último escán de un paso.

6. Seleccione

1.

2.

3.

4.

5.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 125: 1756-pm001_-es-p

Programación de un diagrama de funciones secuenciales 5-29

Verificar la rutina A medida que va programando la rutina, verifique periódicamente 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 descripción indicada en la ventana Results.

c. Vaya al paso 1.

3. Para cerrar la ventana Results, presione [Alt] + [1].

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 126: 1756-pm001_-es-p

5-30 Programación de un diagrama de funciones secuenciales

Notas:

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 127: 1756-pm001_-es-p

Capítulo 6

Programación de texto estructurado

Cuándo usar este capítulo Use este capítulo para escribir e introducir texto estructurado para una:

• rutina de texto estructurado

• acción de un diagrama de función secuencial (SFC)

• transición de un diagrama de función secuencial (SFC)

Sintaxis del texto estructurado

El texto estructurado es un lenguaje de programación textual que utiliza comandos para definir lo que se va a ejecutar.

• El texto estructurado no distingue entre mayúsculas y minúsculas.

• Use tabulaciones y retornos de carro (líneas separadas) para facilitar la lectura del texto estructurado. Éstos no tienen efecto en la ejecución del texto estructurado.

El texto estructurado puede contener estos componentes:

Término: Definición: Ejemplos:

asignación(vea la página 6-2)

Use un comando de asignación para asignar valores a los tags.El operador := es el operador de asignación. Termine la asignación con un signo de punto y coma “;”.

tag := expression;

expresión(vea la página 6-4)

Una expresión es una parte de una asignación completa o un comando de construcción. Una expresión evalúa a un número (expresión numérica) o a un estado de verdadero o falso (expresión BOOL).

Una expresión contiene:

tags Un área con nombre de la memoria, donde se almacenan datos (BOOL, SINT,INT,DINT, REAL, cadena).

value1

inmediatos Un valor constante. 4

operadores Un símbolo o mnemónico que especifica una operación dentro de una expresión.

tag1 + tag2tag1 >= value1

funciones Cuando se ejecuta, una función produce un valor. Use paréntesis para contener el operando de una función.

Aunque su sintaxis es similar, las funciones se diferencian de las instrucciones en que las funciones sólo se pueden usar en expresiones. Las instrucciones no se pueden usar en expresiones.

function(tag1)

1 Publicación 1756-PM001E-ES-P - Agosto 2002

Page 128: 1756-pm001_-es-p

6-2 Programación de texto estructurado

Asignaciones Use una asignación para cambiar el valor almacenado en un tag. Una asignación tiene esta sintaxis:

tag := expression ;

donde:

instrucción(vea la página 6-11)

Una instrucción es un comando autónomo.Una instrucción usa paréntesis para contener sus operandos.Dependiendo de la instrucción, puede haber cero, uno o múltiples operandos.Cuando se ejecuta, una instrucción produce uno o más valores que son parte de una estructura de datos.Termine la instrucción 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 sólo se pueden usar en expresiones.

instruction();

instruction(operand);

instruction(operand1,operand2,operand3);

construcción(vea la página 6-12)

Un comando condicional usado para activar el código de texto estructurado (por ej., otros comandos).Termine la construcción con un signo de punto y coma “;”.

IF...THENCASEFOR...DOWHILE...DOREPEAT...UNTILEXIT

comentario(vea la página 6-26)

Texto que explica o aclara lo que hace una sección de texto estructurado.

• Use comentarios para facilitar la interpretación de texto estructurado.

• Los comentarios no afectan la ejecución del texto estructurado.• Los comentarios pueden aparecer en cualquier lugar del texto

estructurado.

//comment

(*start of comment . . .end of comment*)

/*start of comment . . .end of comment*/

Término: Definición: Ejemplos:

Componente: Descripción:

tag representa el tag que obtiene el nuevo valorel tag debe ser BOOL, SINT, INT, DINT o REAL

:= es el símbolo de la asignación

expresión representa el nuevo valor que se va a asignar al tag

Si el tag es este tipo de datos: Use este tipo de expresión:

BOOL expresión BOOL

SINTINTDINTREAL

expresión numérica

; finales de asignación

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 129: 1756-pm001_-es-p

Programación de texto estructurado 6-3

El tag retiene el valor asignado hasta que otra asignación cambia el valor.

La expresión puede ser simple, tal como un valor inmediato u otro nombre de tag, o la expresión puede ser compleja e incluir varios operadores y/o funciones. Vea la siguiente sección “Expresiones“en la página 6-4 para obtener detalles.

Especifique una asignación no retentiva

La asignación no retentiva se diferencia de la asignación común descrita anteriormente en que el tag en una asignación no retentiva se restablece a cero cada vez que el controlador:

• entra al modo RUN

• sale del paso de un SFC si usted configura el SFC para Automatic Reset (Esto sólo se aplica si usted incorpora la asignación en la acción del paso o usa la acción para llamar a una rutina de texto estructurado mediante una instrucción JSR).

Una asignación no retentiva tiene esta sintaxis:

tag [:=] expression ;

donde:

Componente: Descripción:

tag representa el tag que obtiene el nuevo valorel tag debe ser BOOL, SINT, INT, DINT o REAL

[:=] es el símbolo de la asignación no retentiva

expression representa el nuevo valor que se va a asignar al tag

Si el tag es este tipo de datos: Use este tipo de expresión:

BOOL expresión BOOL

SINTINTDINTREAL

expresión numérica

; finales de asignación

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 130: 1756-pm001_-es-p

6-4 Programación de texto estructurado

Asigne un carácter ASCII a una cadena

Use el operador de asignación para asignar un carácter ASCII a un elemento del miembro DATA de un tag de cadena. Para asignar un carácter, especifique el valor del carácter o especifique el nombre del tag, el miembro DATA y el elemento del carácter. Por ejemplo:

Para añadir o insertar una cadena de caracteres a un tag de cadena, use cualquiera de estas instrucciones de cadena ASCII:

Expresiones Una expresión es una comparación, una ecuación o un nombre de tag. Para escribir una expresión, use cualquiera de los siguientes:

• el nombre del tag que almacena el valor (variable)

• el número que usted introduce directamente en la expresión (valor inmediato)

• funciones, tales como: ABS, TRUNC

• operadores, tales como: +, –, <, >, And, Or

Cuando escriba las expresiones, siga estas reglas generales:

• Use cualquier combinación de letras en mayúsculas o minúsculas. Por ejemplo, estas tres variaciones de “AND” son aceptables: AND, And, and.

• Para requisitos más complejos, use paréntesis para agrupar expresiones dentro de expresiones. Esto facilita la lectura de toda la expresión y asegura que la expresión se ejecute en la secuencia deseada. Vea “Determine el orden de ejecución” en la página 6-10.

En el texto estructurado, se utilizan dos tipos de expresión:

Expresión BOOL: Una expresión que produce ya sea el valor BOOL de 1 (verdadero) o 0 (falso).

• Una expresión bool usa tags bool, operadores de relación y operadores lógicos para comparar valores y verificar si las condiciones son verdaderas o falsas. Por ejemplo, tag1>65.

• Una expresión bool simple puede ser un tag BOOL simple.

• Normalmente se usan expresiones bool para condicionar la ejecución de la lógica.

Esto es correcto: Esto no es correcto:

string1.DATA[0]:= 65; string1.DATA[0] := A;

string1.DATA[0]:= string2.DATA[0]; string1 := string2;

Para: Use esta instrucción:

añadir caracteres al fin de una cadena CONCAT

insertar caracteres en una cadena INSERT

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 131: 1756-pm001_-es-p

Programación de texto estructurado 6-5

Expresión numérica: Una expresión que calcula un valor entero o de punto flotante (coma flotante).

• Una expresión numérica usa operadores aritméticos, funciones aritméticas y operadores de bit. Por ejemplo, tag1+5.

• Generalmente se anida una expresión numérica dentro de una expresión booleana. Por ejemplo, (tag1+5)>65.

Use la siguiente tabla para seleccionar operadores para la expresión:

Use funciones y operadores y aritméticos

Se pueden combinar múltiples operadores y funciones en expresiones aritméticas.

Los operadores aritméticos calculan valores nuevos.

Si desea: Entonces:

Calcular un valor aritmético “Use funciones y operadores y aritméticos“ en la página 6-5.

Comparar dos valores o cadenas “Use operadores de relación“ en la página 6-7.

Verificar si las condiciones son verdaderas o falsas

“Use operadores lógicos“ en la página 6-9.

Comparar bits dentro de valores “Use operadores de bit“ en la página 6-10.

Para: Use este operador: Tipo de datos óptimo:

sumar + DINT, REAL

restar/cambiar signo – DINT, REAL

multiplicar * DINT, REAL

exponente (x a la potencia de y) ** DINT, REAL

dividir / DINT, REAL

módulo-división MOD DINT, REAL

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 132: 1756-pm001_-es-p

6-6 Programación de texto estructurado

Las funciones aritméticas realizan operaciones matemáticas. Especifique una constante, un tag no booleano o una expresión para la función.

Por ejemplo:

Para: Use esta función: Tipo de datos óptimo:

valor absoluto ABS (numeric_expression) DINT, REAL

arco coseno ACOS (numeric_expression) REAL

arco seno ASIN (numeric_expression) REAL

arco tangente ATAN (numeric_expression) REAL

coseno COS (numeric_expression) REAL

radianes a grados DEG (numeric_expression) DINT, REAL

logaritmo natural LN (numeric_expression) REAL

logaritmo de base 10 LOG (numeric_expression) REAL

grados a radianes RAD (numeric_expression) DINT, REAL

seno SIN (numeric_expression) REAL

raíz cuadrada SQRT (numeric_expression) DINT, REAL

tangente TAN (numeric_expression) REAL

truncar TRUNC (numeric_expression) DINT, REAL

Use este formato: Ejemplo:

Para esta situación: Usted escribiría:

value1 operator value2 Si gain_4 y gain_4_adj son tags DINT y su especificación dice: “Añadir 15 a gain_4 y guardar el resultado en gain_4_adj.”

gain_4_adj :=gain_4+15;

operator value1 Si alarm y high_alarm son tags DINT y su especificación dice: “Cambiar signo de high_alarm y guardar el resultado en alarm.”

alarm:= –high_alarm;

function(numeric_expression) Si overtravel y overtravel_POS son tags DINT y su especificación dice: “Calcular el valor absoluto de overtravel y guardar el resultado en overtravel_POS.”

overtravel_POS :=ABS(overtravel);

value1 operator(function((value2+value3)/2)

Si adjustment y position son tags DINT y sensor1 y sensor2 son tags REAL y su especificación dice: “Hallar el valor absoluto del promedio de sensor1 y sensor2, añadir el valor de adjustment, y guardar el resultado en position.”

position :=adjustment +ABS((sensor1 +sensor2)/2);

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 133: 1756-pm001_-es-p

Programación de texto estructurado 6-7

Use operadores de relación

Los operadores de relación comparan dos valores o cadenas para proporcionar un resultado verdadero o falso. El resultado de una operación de relación es un valor BOOL:

Use los siguientes operadores de relación:

Por ejemplo:

Si la comparación es: El resultado es:

verdadero 1

falso 0

Para esta comparación: Use este operador: Tipo de datos óptimo:

igual = DINT, REAL, cadena

menor que < DINT, REAL, cadena

menor que o igual <= DINT, REAL, cadena

mayor que > DINT, REAL, cadena

mayor que o igual >= DINT, REAL, cadena

diferente <> DINT, REAL, cadena

Use este formato: Ejemplo:

Para esta situación: Usted escribiría:

value1 operator value2 Si temp es un tag DINT y su especificación dice: “Si temp es menor que 100° entonces…”

IF temp<100 THEN...

stringtag1 operatorstringtag2

Si bar_code y dest son tags de cadena y su especificación dice: “Si bar_code es igual que dest entonces…”

IF bar_code=dest THEN...

char1 operator char2

Para introducir un carácter ASCII directamente en una expresión, introduzca el valor decimal del carácter.

Si bar_code es un tag de cadena y su especificación dice: “Si bar_code.DATA[0] es igual que ’A’ entonces…”

IF bar_code.DATA[0]=65THEN...

bool_tag :=bool_expressions

Si count y length son tags DINT, done es un tag BOOL y su especificación dice ”Si count es mayor o igual que length, ya terminó de contar”.

done := (count >= length);

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 134: 1756-pm001_-es-p

6-8 Programación de texto estructurado

Cómo se evalúan las cadenas

Los valores hexadecimales de los caracteres ASCII determinan si una cadena es menor o mayor que otra cadena.

• Cuando las dos cadenas están clasificadas como en un directorio telefónico, el orden de las cadenas determina cuál es mayor.

• Las cadenas son iguales si sus caracteres son iguales.

• Los caracteres distinguen entre mayúsculas y minúsculas. Una “A” mayúscula ($41) no es igual a una “a” minúscula ($61).

Para obtener el valor decimal y el código hexadecimal de un carácter, vea la contraportada de este manual.

Caracteres ASCII Códigos hexade-cimales

1ab $31$61$62

1b $31$62

A $41

AB $41$42

B $42

a $61

ab $61$62

mayor que

l esser

AB < B

a > B

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 135: 1756-pm001_-es-p

Programación de texto estructurado 6-9

Use operadores lógicos

Los operadores lógicos permiten verificar si múltiples condiciones son verdaderas o falsas. El resultado de una operación lógica es un valor BOOL:

Use los siguientes operadores lógicos:

Por ejemplo:

Si la comparación es: El resultado es:

verdadero 1

falso 0

Para: Use este operador: Tipo de datos:

Y lógico &, AND BOOL

O lógico OR BOOL

O exclusivo lógico XOR BOOL

complemento lógico NOT BOOL

Use este formato: Ejemplo:

Para esta situación: Usted escribiría:

BOOLtag Si photoeye es un tag BOOL y su especificación dice: “Si photoeye_1 está encendido, entonces…”

IF photoeye THEN...

NOT BOOLtag Si photoeye es un tag BOOL y su especificación dice: “Si photoeye está apagado, entonces…”

IF NOT photoeye THEN...

expression1 & expression2 Si photoeye es un tag BOOL, temp es un tag DINT y su especificación dice: “Si photoeye está encendido y temp es menos de 100° entonces…”.

IF photoeye & (temp<100)THEN...

expression1 OR expression2 Si photoeye es un tag BOOL, temp es un tag DINT y su especificación dice: “Si photoeye está encendido o temp es menos de 100° entonces…”.

IF photoeye OR (temp<100)THEN...

expression1 XOR expression2 Si photoeye1 y photoeye2 son tags BOOL y su especificación dice: “Si:

• photoeye1 está encendido mientras que photoeye2 está apagado o

• photoeye1 está apagado mientras que photoeye2 está encendido

entonces…”

IF photoeye1 XORphotoeye2 THEN...

BOOLtag := expression1 &expression2

Si photoeye1 y photoeye2 son tags BOOL, open es un tag BOOL y su especificación dice: “Si photoeye1 y photoeye2 están encendidos, establezca open en verdadero”.

open := photoeye1 &photoeye2;

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 136: 1756-pm001_-es-p

6-10 Programación de texto estructurado

Use operadores de bit

Los operadores a nivel de bit manipulan los bits dentro de un valor basado en dos valores.

Por ejemplo:

Determine el orden de ejecución

Las operaciones que usted escribe en una expresión se realizan en un orden prescrito, no necesariamente de izquierda a derecha.

• Las operaciones de igual orden se realizan desde la izquierda hacia la derecha.

• Si una expresión contiene múltiples operadores o funciones, agrupe las condiciones en paréntesis “( )”. Esto asegura el orden correcto de ejecución y facilita la lectura de la expresión.

Para: Use este operador: Tipo de datos óptimo:

función Y &, AND DINT

función O OR DINT

función O exclusivo XOR DINT

complemento bit a bit NOT DINT

Use este formato: Ejemplo:

Para esta situación: Usted escribiría:

value1 operator value2 Si input1, input2 y result1 son tags DINT y su especificación dice: “Calcular el resultado bit a bit de input1 e input2. Guardar el resultado en result1”.

result1 := input1 ANDinput2;

Orden: Operación:

1. ( )

2. función (…)

3. **

4. − (cambiar signo)

5. NOT

6. *, /, MOD

7. +, – (restar)

8. <, <=, >, >=

9. =, <>

10. &, AND

11. XOR

12. OR

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 137: 1756-pm001_-es-p

Programación de texto estructurado 6-11

Instrucciones Los comandos de texto estructurado también pueden ser instrucciones. Vea la tabla de ubicación al comienzo de este manual para obtener una lista de las instrucciones disponibles en texto estructurado. Una instrucción de texto estructurado se ejecuta cada vez que se escanea. Una instrucción de texto estructurado dentro de una construcción se ejecuta cada vez que las condiciones de la construcción son verdaderas. Si las condiciones de la construcción son falsas, los comandos dentro de la construcción no se escanean. No hay condición de renglón ni transición de estado que active la ejecución.

Esto es diferente de las instrucciones de bloque de función que usan EnableIn para activar la ejecución. Las instrucciones de texto estructurado se ejecutan como si EnableIn estuviera siempre establecido.

Esto también es diferente de las instrucciones de lógica de escalera de relé que usan la condición de entrada de renglón para activar la ejecución. Algunas instrucciones de lógica de escalera de relé sólo se ejecutan cuando la condición de entrada de renglón cambia de falso a verdadero. Estas son instrucciones de lógica de escalera de relé transitorias. En texto estructurado, las instrucciones se ejecutarán cada vez que se escaneen, a menos que usted condicione previamente la ejecución de la instrucción de texto estructurado.

Por ejemplo, la instrucción ABL es una instrucción transitoria en la lógica de escalera de relé. En este ejemplo, la instrucción ABL sólo se ejecuta en un escán cuando tag_xic cambia de restablecido a establecido. La instrucción 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 instrucción ABL se ejecutará en cada escán que tag_xic esté establecido, no sólo cuando tag_xic cambie de restablecido a establecido.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 138: 1756-pm001_-es-p

6-12 Programación de texto estructurado

Si desea que la instrucción ABL se ejecute sólo cuando tag_xic cambia de restablecido a establecido, tiene que condicionar la instrucción de texto estructurado. Use captación de un impulso para activar la ejecución.

Construcciones Las construcciones pueden programarse de manera simple o anidadas dentro de otras construcciones.

osri_1.InputBit := tag_xic;

OSRI(osri_1);

IF (osri_1.OutputBit) THEN

ABL(0,serial_control);

END_IF;

Si desea: Use esta construcción: Disponible en estos lenguajes: Vea la página:

hacer algo si o cuando ocurran condiciones específicas

IF...THEN texto estructurado 6-13

seleccionar qué hacer basado en un valor numérico

CASE...OF texto estructurado 6-16

hacer algo un número de veces específico antes de hacer algo diferente

FOR...DO texto estructurado 6-18

continuar haciendo algo siempre que ciertas condiciones sean verdaderas

WHILE...DO texto estructurado 6-21

continuar haciendo algo hasta que una condición sea verdadera

REPEAT...UNTIL texto estructurado 6-23

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 139: 1756-pm001_-es-p

Programación de texto estructurado 6-13

IF...THEN Use IF…THEN para hacer algo si o cuando ocurran condiciones específicas.

Operandos:

Texto estructurado

Descripción: La sintaxis es:

Para usar ELSIF o ELSE, siga estas pautas:

1. Para seleccionar entre varios posibles grupos de comandos, añada uno o más 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, añada un comando ELSE.

Operando: Tipo: Formato: Introduzca:

bool_expression

BOOL tagexpresión

Expresión o tag BOOL que evalúe a un valor BOOL (expresión BOOL)

IF bool_expression THEN

<statement>;

END_IF;

IF bool_expression1 THEN

<statement >; comandos que se ejecutan cuando bool_expression1 es verdadero.

.

.

opcionalELSIF bool_expression2 THEN

<statement>; comandos que se ejecutan cuando bool_expression2 es verdadero.

.

.

opcionalELSE

<statement >; comandos que se ejecutan cuando ambas expresiones son falsas.

.

.

END_IF;

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 140: 1756-pm001_-es-p

6-14 Programación de texto estructurado

La siguiente tabla resume las diferentes combinaciones de IF, THEN, ELSIF y ELSE.

Indicadores de estadoaritmético:

no afectados

Condiciones de fallo: Ninguna

Ejemplo 1: IF…THEN

Ejemplo 2: IF…THEN…ELSE

[:=] 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 sólo se aplica si usted incorpora la asignación en la acción del paso o usa la acción para llamar a una rutina de texto estructurado mediante una instrucción JSR).

Si desea: Y: Entonces use esta cons-trucción

hacer algo si o cuando las condiciones sean verdaderas

no hacer nada si las condiciones son falsas IF…THEN

hacer algo diferente si las condiciones son falsas IF…THEN…ELSE

seleccionar entre comandos alternativos (o grupos de comandos) basados en condiciones de entrada

no hacer nada si las condiciones son falsas IF…THEN…ELSIF

asignar comandos predeterminados si todas las condiciones son falsas

IF…THEN…ELSIF…ELSE

Si desea lo siguiente: Introduzca este texto estructurado:

SI rechazos > 3 entonces IF rejects > 3 THEN

transportador = desactivado (0) conveyor := 0;

alarma = activada (1) alarm := 1;

END_IF;

Si desea lo siguiente: Introduzca este texto estructurado:

Si contacto de dirección de transportador = avance (1) entonces IF conveyor_direction THEN

luz = apagada light := 0;

De lo contrario luz = encendida ELSE

light [:=] 1;

END_IF;

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 141: 1756-pm001_-es-p

Programación de texto estructurado 6-15

Ejemplo 3: IF…THEN…ELSIF

[:=] 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 sólo se aplica si usted incorpora la asignación en la acción del paso o usa la acción para llamar a una rutina de texto estructurado mediante una instrucción JSR).

Ejemplo 4: IF…THEN…ELSIF…ELSE

Si desea lo siguiente: Introduzca este texto estructurado:

Si interruptor de límite bajo de azúcar = bajo (activado) e interruptor de límite alto de azúcar = no alto (activado) entonces

IF Sugar.Low & Sugar.High THEN

válvula de entrada = abierta (activado) Sugar.Inlet [:=] 1;

Hasta que interruptor de límite alto de azúcar = alto (desactivado)

ELSIF NOT(Sugar.High) THEN

Sugar.Inlet := 0;

END_IF;

Si desea lo siguiente: Introduzca este texto estructurado:

Si la temperatura del tanque > 100 IF tank.temp > 200 THEN

entonces bomba = lenta pump.fast :=1; pump.slow :=0; pump.off :=0;

Si la temperatura del tanque > 200 ELSIF tank.temp > 100 THEN

entonces bomba = rápida pump.fast :=0; pump.slow :=1; pump.off :=0;

de lo contrario bomba = desactivada ELSE

pump.fast :=0; pump.slow :=0; pump.off :=1;

END_IF;

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 142: 1756-pm001_-es-p

6-16 Programación de texto estructurado

CASE...OF Use CASE para seleccionar qué hacer basado en un valor numérico.

Operandos:

Texto estructurado

Descripción: La sintaxis es:

Vea la tabla en la siguiente página para obtener los valores de selector válidos.

Operando: Tipo: Formato: Introduzca:

numeric_expression

SINTINTDINTREAL

tagexpresión

tag o expresión que evalúe a un número (expresión numérica)

selector SINTINTDINTREAL

valor inmediato

el mismo tipo que numeric_expression

IMPORTANTE Si usa valores REAL, use un rango de valores para un selector porque es más probable que un valor REAL esté dentro de un rango de valores que una coincidencia exacta de un valor específico.

CASE numeric_expression OF

selector1: statement;

selectorN: statement;

ELSE

statement;

END_CASE;

CASE numeric_expression OF

especifique la cantidadde valores de selector

alternativos (rutas) quenecesite

selector1 : <statement>;...

comandos a ejecutar cuando numeric_expression = selector1

selector2 : <statement>;...

comandos a ejecutar cuando numeric_expression = selector2

selector3 : <statement>;...

comandos a ejecutar cuando numeric_expression = selector3

opcional

ELSE

<statement>;...

comandos a ejecutar cuando numeric_expression ≠ cualquier selector

END_CASE;

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 143: 1756-pm001_-es-p

Programación de texto estructurado 6-17

La sintaxis para introducir los valores de selector es:

Indicadores de estadoaritmético:

no afectados

Condiciones de fallo: Ninguna

Ejemplo

[:=] indica al controlador que restablezca también 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 sólo se aplica si usted incorpora la asignación en la acción del paso o usa la acción para llamar a una rutina de texto estructurado mediante una instrucción JSR).

Cuando el selector es: Introduzca:

un valor value: statement

valores múltiples y diferentes value1, value2, valueN : <statement>

Use una coma (,) para separar cada valor.

un rango de valores value1..valueN : <statement>

Use dos puntos (..) para identificar el rango.

valores diferentes más un rango de valores valuea, valueb, value1..valueN : <statement>

Si desea lo siguiente: Introduzca este texto estructurado:

Si número de receta = 1 entonces CASE recipe_number OF

Ingrediente A salida 1 = abierto (1) 1: Ingredient_A.Outlet_1 :=1;

Ingrediente B salida 4 = abierto (1) Ingredient_B.Outlet_4 :=1;

Si número de receta = 2 ó 3 entonces 2,3: Ingredient_A.Outlet_4 :=1;

Ingrediente A salida 4 = abierto (1) Ingredient_B.Outlet_2 :=1;

Ingrediente B salida 2 = abierto (1)

Si número de receta = 4, 5, 6 ó 7 entonces 4..7: Ingredient_A.Outlet_4 :=1;

Ingrediente A salida 4 = abierto (1) Ingredient_B.Outlet_2 :=1;

Ingrediente B salida 2 = abierto (1)

Si número de receta = 8, 11, 12 ó 13 entonces 8,11-13 Ingredient_A.Outlet_1 :=1;

Ingrediente A salida 1 = abierto (1) Ingredient_B.Outlet_4 :=1;

Ingrediente B salida 4 = abierto (1)

De lo contrario todas las salidas = cerrado (0) ELSE

Ingredient_A.Outlet_1 [:=]0;

Ingredient_A.Outlet_4 [:=]0;

Ingredient_B.Outlet_2 [:=]0;

Ingredient_B.Outlet_4 [:=]0;

END_CASE;

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 144: 1756-pm001_-es-p

6-18 Programación de texto estructurado

FOR…DO Use el lazo FOR…DO para hacer algo un número de veces específico antes de hacer algo diferente.

Operandos:

Texto estructurado

Descripción: La sintaxis es:

Operando: Tipo: Formato: Descripción:

count SINTINTDINT

tag tag para almacenar posición de conteo a medida que FOR…DO se ejecuta

initial_value

SINTINTDINT

tagexpresiónvalor inmediato

debe evaluar a un númeroespecifica el valor inicial del conteo

final_value

SINTINTDINT

tagexpresiónvalor inmediato

especifica el valor final del conteo, lo cual determina cuándo salir del lazo

increment SINTINTDINT

tagexpresiónvalor inmediato

(opcional) cantidad que incrementa el conteo cada vez a través del lazo

Si no se especifica un incremento, el conteo incrementa un valor de 1.

FOR count:= initial_value TOfinal_value BY increment DO

<statement>;

END_FOR;

IMPORTANTE Asegúrese de no efectuar iteraciones dentro de un lazo demasiadas veces en un solo escán.

• El controlador no ejecuta ningún 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 construcción diferente, tal como IF...THEN.

FOR count := initial_value

TO final_value

opcional { BY increment Si no se especifica un incremento, el lazo incrementa un valor de 1.

DO

<statement >;

opcional

IF bool_expression THEN

EXIT; Si existen condiciones cuando usted desea salir del lazo anticipadamente, use otros comandos, tales como una construcción IF...THEN, para condicionar un comando EXIT.

END_IF;

END_FOR;

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 145: 1756-pm001_-es-p

Programación de texto estructurado 6-19

Los siguientes diagramas muestran cómo se ejecuta un lazo FOR...DO y cómo un comando EXIT sale del lazo anticipadamente.

Indicadores de estadoaritmético:

no afectados

Condiciones de fallo:

Ejemplo 1:

comando 1comando 2comando 3comando 4…

¿Efectuado x número de veces?

no

resto de la rutina

comando 1comando 2comando 3comando 4…¿ Salir ?

¿Efectuado x número de veces?

no

resto de la rutina

no

El lazo FOR…DO se ejecuta un número específico de veces.

Para detener el lazo antes que el conteo llegue al último valor, use el comando EXIT.

Ocurrirá un fallo mayor si: Tipo de fallo: Código de fallo:

los lazos de la construcción son demasiado largos

6 1

Si desea lo siguiente: Introduzca este texto estructurado:

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. Añadir 1 a subscript.4. Si subscript es ≤ que 31, repetir 2 y 3.

De lo contrario, parar.

For subscript:=0 to 31 by 1 do

array[subscript] := 0;

End_for;

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 146: 1756-pm001_-es-p

6-20 Programación de texto estructurado

Ejemplo 2:

Si desea lo siguiente: Introduzca este texto estructurado:

Un tipo de datos definido por el usuario (estructura) almacena la siguiente información acerca de un ítem en el inventario:

• ID de código de barras del ítem (tipo de datos de cadena)

• Cantidad en inventario del ítem (tipo de datos DINT)Una matriz de la estructura anterior contiene un elemento para cada ítem diferente en el inventario. Usted desea buscar la matriz de un producto específico (usar su código de barras) y determinar la cantidad en inventario.

1. Obtener el tamaño (número de ítems) de la matriz 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. Deténgase.Barcode es una cadena que almacena el código de barras del ítem que usted está buscando. Por ejemplo, cuando position = 5, compare Barcode con Inventory[5].ID.

4. Añadir 1 a position.5. Si position es ≤ que (Inventory_Items –1), repetir 3 y 4.

Puesto que los números de elementos comienzan en 0, el último elemento es 1 menos que el número de elementos en la matriz.De lo contrario, parar.

SIZE(Inventory,0,Inventory_Items);

For position:=0 to Inventory_Items – 1 do

If Barcode = Inventory[position].ID then

Quantity := Inventory[position].Qty;

Exit;

End_if;

End_for;

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 147: 1756-pm001_-es-p

Programación de texto estructurado 6-21

WHILE…DO Use el lazo WHILE…DO para continuar haciendo algo, siempre que ciertas condiciones sean verdaderas.

Operandos:

Texto estructurado

Descripción: La sintaxis es:

Los siguientes diagramas muestran cómo se ejecuta un lazo WHILE...DO y cómo un comando EXIT sale del lazo anticipadamente.

Operando: Tipo: Formato: Introduzca:

bool_expression

BOOL tagexpresión

Expresión o tag BOOL que evalúe a un valor BOOL

WHILE bool_expression DO

<statement>;

END_WHILE;

IMPORTANTE Asegúrese de no efectuar iteraciones dentro de un lazo demasiadas veces en un solo escán.

• El controlador no ejecuta ningún 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 construcción diferente, tal como IF...THEN.

WHILE bool_expression1 DO

<statement>; comandos que se ejecutan mientras bool_expression1 es verdadero

opcional

IF bool_expression2 THEN

EXIT; Si existen condiciones cuando usted desea salir del lazo anticipadamente, use otros comandos, tales como una construcción IF...THEN, para condicionar un comando EXIT.

END_IF;

END_WHILE;

Mientras que bool_expression es verdadero, el controlador ejecuta sólo los comandos dentro del lazo WHILE…DO.

Para detener el lazo antes de que las condiciones sean verdaderas, use el comando EXIT.

comando 1comando 2comando 3comando 4…¿ Salir ?

expresión BOOL

verdadero

falso

resto de la rutina

no

comando 1comando 2comando 3comando 4…

expresión BOOL

verdadero

falso

resto de la rutina

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 148: 1756-pm001_-es-p

6-22 Programación de texto estructurado

Ejemplo 1:

Indicadores de estadoaritmético:

no afectados

Condiciones de fallo:

Ejemplo 2:

Si desea lo siguiente: Introduzca este texto estructurado:

El lazo WHILE...DO evalúa 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 construcción 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.

pos := 0;

While ((pos <= 100) & structarray[pos].value<> targetvalue)) do

pos := pos + 2;

String_tag.DATA[pos] := SINT_array[pos];

end_while;

Ocurrirá un fallo mayor si: Tipo de fallo: Código de fallo:

los lazos de la construcción son demasiado largos

6 1

Si desea lo siguiente: Introduzca este texto estructurado:

Transferir caracteres ASCII de una matriz SINT a un tag de cadena. (En una matriz SINT, cada elemento contiene un carácter). Detenerse al llegar al retorno de carro.

1. Inicializar Element_number a 0.2. Contar el número de elementos en SINT_array (matriz

que contiene los caracteres ASCII) y almacenar el resultado en SINT_array_size (tag DINT).

3. Si el carácter en SINT_array[element_number] = 13 (valor decimal del retorno de carro), entonces parar.

4. Establecer String_tag[element_number] = el carácter en SINT_array[element_number].

5. Añadir 1 a element_number. Esto permite que el controlador verifique el siguiente carácter en SINT_array.

6. Establecer el miembro Length de String_tag = element_number. (Esto registra el número 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

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;

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 149: 1756-pm001_-es-p

Programación de texto estructurado 6-23

REPEAT…UNTIL Use el lazo REPEAT…UNTIL para continuar haciendo algo hasta que las condiciones sean verdaderas.

Operandos:

Texto estructurado

Descripción: La sintaxis es:

Operando: Tipo: Formato: Introduzca:

bool_expression

BOOL tagexpresión

Expresión o tag BOOL que evalúe a un valor BOOL (expresión BOOL)

REPEAT

<statement>;

UNTIL bool_expression

END_REPEAT;

IMPORTANTE Asegúrese de no efectuar iteraciones dentro de un lazo demasiadas veces en un solo escán.

• El controlador no ejecuta ningún 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 construcción diferente, tal como IF...THEN.

REPEAT

<statement>; comandos que se ejecutan mientras bool_expression1 es falso

opcional

IF bool_expression2 THEN

EXIT; Si existen condiciones cuando usted desea salir del lazo anticipadamente, use otros comandos, tales como una construcción IF...THEN, para condicionar un comando EXIT.

END_IF;

UNTIL bool_expression1

END_REPEAT;

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 150: 1756-pm001_-es-p

6-24 Programación de texto estructurado

Los siguientes diagramas muestran cómo se ejecuta un lazo REPEAT...UNTIL y cómo un comando EXIT sale del lazo anticipadamente.

Ejemplo 1:

Indicadores de estadoaritmético:

no afectados

Condiciones de fallo:

Mientras que bool_expression es falso, el controlador ejecuta sólo los comandos dentro del lazo REPEAT…UNTIL.

Para detener el lazo antes de que las condiciones sean falsas, use el comando EXIT.

comando 1comando 2comando 3comando 4…

expresión BOOL

falso

verdadero

resto de la rutinaexpresión BOOL

falso

verdadero

resto de la rutina

comando 1comando 2comando 3comando 4…¿ Salir ?

no

Si desea lo siguiente: Introduzca este texto estructurado:

El lazo REPEAT...UNTIL ejecuta los comandos en la construcción y luego determina si las condiciones son verdaderas antes de ejecutar los comandos nuevamente.

Esto es diferente del lazo WHILE...DO porque el lazo WHILE...DO evalúa sus condiciones primero. Si las condiciones son verdaderas, entonces el controlador ejecuta los comandos dentro del lazo. 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.

pos := –1;

REPEAT

pos := pos + 2;

UNTIL ((pos = 101) OR(structarray[pos].value = targetvalue))

end_repeat;

Ocurrirá un fallo mayor si: Tipo de fallo: Código de fallo:

los lazos de la construcción son demasiado largos

6 1

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 151: 1756-pm001_-es-p

Programación de texto estructurado 6-25

Ejemplo 2:

Si desea lo siguiente: Introduzca este texto estructurado:

Transferir caracteres ASCII de una matriz SINT a un tag de cadena. (En una matriz SINT, cada elemento contiene un carácter). Detenerse al llegar al retorno de carro.

1. Inicializar Element_number a 0.2. Contar el número 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 carácter en SINT_array[element_number].

4. Añadir 1 a element_number. Esto permite que el controlador verifique el siguiente carácter en SINT_array.

5. Establecer el miembro Length de String_tag = element_number. (Esto registra el número 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 carácter en SINT_array[element_number] = 13 (valor decimal del retorno de carro), entonces parar.De lo contrario, ir a 3.

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;

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 152: 1756-pm001_-es-p

6-26 Programación de texto estructurado

Comentarios Para facilitar la interpretación del texto estructurado, añádale comentarios.

• Los comentarios le permiten usar un lenguaje simple para describir cómo funciona el texto estructurado.

• Los comentarios no afectan la ejecución del texto estructurado.

Para añadir comentarios al texto estructurado:

Por ejemplo:

Para añadir un comentario: Use uno de estos formatos:

en una sola línea //comment

(*comment*)

/*comment*/

al final de una línea de texto estructurado

dentro de una línea de texto estructurado

(*comment*)

/*comment*/

que abarque más de una línea (*start of comment . . . end ofcomment*)

/*start of comment . . . end ofcomment*/

Formato: Ejemplo:

//comment Al comienzo de una línea//Check conveyor belt directionIF conveyor_direction THEN...Al final de una líneaELSE //If conveyor isn’t moving, set alarm lightlight := 1;END_IF;

(*comment*) Sugar.Inlet[:=]1;(*open the inlet*)

IF Sugar.Low (*low level LS*)& Sugar.High (*high levelLS*)THEN...

(*Controla la velocidad de la bomba de recirculación.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 número de elementos en la matriz Inventoryy almacena el valor en el tag Inventory_Items*/SIZE(Inventory,0,Inventory_Items);

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 153: 1756-pm001_-es-p

Capítulo 7

Programación de un diagrama de bloques de función

Cuándo usar este procedimiento

Use este procedimiento para hacer lo siguiente:

• organizar una rutina de bloques de función

• desarrollar uno o más diagramas de bloques de función para la rutina

• introducir los diagramas de bloques de función en la rutina

Antes de usar este procedimiento

Antes de usar este procedimiento, asegúrese de que puede hacer las siguientes tareas:

Para obtener más información sobre cualquiera de esas tareas, vea “Organización de tareas, programas y rutinas” en la página 2-1.

Cómo usar este procedimiento

Para programar una rutina de bloques de función, realice los pasos siguientes:

Abra o cierre una carpeta

Cree una rutina

Identifique las hojas para la rutina

Seleccione los elementos de los bloques de función

Seleccione un nombre de tag para un elemento

Defina el orden de ejecución

Identifique los conectores

Defina el control de programa/operador

Añada una hoja

Añada un elemento de bloque de función

Conecte los elementos

Asigne un tag

Asigne un valor inmediato (constante)

Conecte bloques con un OCON e ICON

Verifique la rutina

1 Publicación 1756-PM001E-ES-P - Agosto 2002

Page 154: 1756-pm001_-es-p

7-2 Programación de un diagrama de bloques de función

Identifique las hojas para la rutina

Para facilitar la navegación por una rutina de bloques de función, divida la rutina en una serie de hojas:

• Las hojas le ayudan a organizar y encontrar los bloques de función. No afectan el orden en que se ejecutan los bloques de función.

• Cuando se ejecuta la rutina, todas las hojas se ejecutan.

• En general, use una hoja para cada dispositivo (motor, válvula, etc.)

El siguiente ejemplo muestra una rutina de bloques de función que controla 4 motores.

EJEMPLO Identifique las hojas para la rutina

Hoja 1 de 4 motor 1 Hoja 2 de 4 motor 2

Hoja 3 de 4 motor 3 Hoja 4 de 4 motor 4

Rutina de control de motores

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 155: 1756-pm001_-es-p

Programación de un diagrama de bloques de función 7-3

Seleccione los elementos de los bloques de función

Para controlar un dispositivo, use los siguientes elementos:

Use la siguiente tabla para seleccionar los elementos de los bloques de función:

referencia de entrada (IREF) bloque de función

conector de cable de salida (OCON)

referencia de salida (OREF)

conector decable de

entrada (ICON)

Si desea: Entonces use un/una:

proporcionar un valor proveniente de un dispositivo de entrada o tag referencia de entrada (IREF)

enviar un valor a un dispositivo de salida o tag referencia de salida (OREF)

realizar una operación con un valor o valores de entrada y producir un valor o valores de salida

bloque de función

transferir datos entre bloques de función cuando éstos están:• bastante separados en la misma hoja• en hojas diferentes dentro de la misma rutina

conector de cable de salida (OCON) y un conector de cable de entrada (ICON)

dispersar datos a varios puntos en la rutina conector de cable de salida único (OCON) y múltiples conectores de cable de entrada (ICON)

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 156: 1756-pm001_-es-p

7-4 Programación de un diagrama de bloques de función

Seleccione un nombre de tag para un elemento

Cada bloque de función usa un tag para almacenar la información de configuración y estado acerca de la instrucción.

• Cuando se añade una instrucción de bloque de función, el software RSLogix 5000 automáticamente 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:

donde:

x es la ubicación del elemento en la primera dimensión.

y es la ubicación del elemento en la segunda dimensión.

z es la ubicación del elemento en la tercera dimensión.

Para una estructura dentro de una estructura, añada un .member_name adicional.

Para un: Especifique:

tag tag_name

número de bit de un tipo de datos más grande tag_name.bit_number

miembro de una estructura tag_name.member_name

elemento de una matriz de una dimensión tag_name[x]

elemento de una matriz de dos dimensiones tag_name[x,y]

elemento de una matriz de tres dimensiones tag_name[x,y,z]

elemento de una matriz dentro de una estructura tag_name.member_name[x]

miembro de un elemento de una matriz tag_name[x,y,z].member_name

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 157: 1756-pm001_-es-p

Programación de un diagrama de bloques de función 7-5

Defina el orden de ejecución

El orden de ejecución (flujo de datos) se define cableando bloques de función juntos e indicando cualquier cable de entrada (retroalimentación), si es necesario. La ubicación de un bloque no afecta el orden en el cual se ejecutan los bloques.

Enclavamiento de datos

Si usted usa una IREF para especificar datos de entrada para una instrucción de bloque de función, los datos en la IREF se enclavan para el escán de la rutina del bloque de función. 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 escán.

pin de salida cable pin de entrada pin de salida cable pin de entrada

los datos fluyen desde los pines de salida hasta los pines de entrada

Símbolos de cables:

valor SINT, INT, DINT, o REAL

valor BOOL (0 ó 1)

IREF

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 158: 1756-pm001_-es-p

7-6 Programación de un diagrama de bloques de función

En este ejemplo, el valor de tagA se almacena al comienzo de la ejecución de la rutina. El valor almacenado se usa cuando se ejecuta Block_01. El mismo valor almacenado también se usa cuando se ejecuta Block_02. Si el valor de tagA cambia durante la ejecución de la rutina, el valor almacenado de tagA en IREF no cambia hasta la siguiente ejecución de la rutina.

Este ejemplo es igual al anterior. El valor de tagA se almacena sólo una vez al comienzo de la ejecución de la rutina. La rutina usa este valor almacenado en toda la rutina.

tagA

Block_01

Block_02

tagA

Block_01

Block_02

tagA

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 159: 1756-pm001_-es-p

Programación de un diagrama de bloques de función 7-7

Comenzando con el software RSLogix 5000, versión 11, se puede usar el mismo tag en múltiples IREF y en un OREF en la misma rutina. Puesto que los valores de los tags en las IREF se enclavan en cada escán en toda la rutina, todas las IREF usarán el mismo valor, aunque una OREF obtenga un valor de tag diferente durante la ejecución de la rutina. En este ejemplo, si tagA tiene un valor de 25.4 cuando la rutina comienza a ejecutar este escán, 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 escán. El nuevo valor de tagA de 50.9 no será usado por ninguna IREF en esta rutina hasta el comienzo del siguiente escán.

Orden de ejecución

El software de programación RSLogix 5000 determina automáticamente el orden de ejecución de los bloques de función en una rutina cuando usted:

• verifica una rutina de bloque de función

• verifica un proyecto que contiene una rutina de bloque de función

• descarga un proyecto que contiene una rutina de bloque de función

El orden de ejecución se define cableando bloques de función juntos e indicando el flujo de datos de los cables de retroalimentación, si es necesario.

Si los bloques de función no están cableados juntos, no importa cuál bloque se ejecuta primero. No existe un flujo de datos entre los bloques.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 160: 1756-pm001_-es-p

7-8 Programación de un diagrama de bloques de función

Si los bloques se cablean de manera secuencial, el orden de ejecución va de entrada a salida. Las entradas de un bloque requieren que los datos estén 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.

El orden de ejecución está relacionado sólo a los bloques que están cableados juntos. El siguiente es un buen ejemplo porque los dos grupos de bloques no están cableados juntos. Los bloques dentro de un grupo específico se ejecutan en el orden apropiado en relación con los bloques de dicho grupo.

Resuelva un lazo

Para crear un lazo de retroalimentación 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 ejecución no es importante.

1 2 3

1 3 5

2 4 6

Este pin de entrada usa unasalida que el bloque produjo en el

escán anterior.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 161: 1756-pm001_-es-p

Programación de un diagrama de bloques de función 7-9

Si hay un grupo de bloques en un lazo, el controlador no puede determinar cuál bloque debe ejecutarse primero. En otras palabras, no puede resolver el lazo.

Para identificar cuál bloque debe ejecutarse primero, marque el cable de entrada que crea el lazo (el cable de retroalimentación) con el indicador Assume Data Available. En el siguiente ejemplo, el bloque 1 usa la salida del bloque 3 que se produjo en la ejecución previa de la rutina.

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.

?? ?

1 2 3

Este pin de entrada usa la salidaque el bloque 3 produjo en el

escán anterior.

Indicador “Assume Data Available”

Esto es correcto Esto no es correcto

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.Indicador “Assume Data

Available”

21 ??

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 162: 1756-pm001_-es-p

7-10 Programación de un diagrama de bloques de función

Resuelva el flujo de datos entre dos bloques

Si usted usa dos o más cables para conectar dos bloques, use los mismos indicadores de flujo de datos para todos los cables entre los dos bloques.

Cree un retardo de escán

Para producir un retardo de escán entre bloques, use el indicador Assume Data Available. En el siguiente ejemplo, el bloque 1 se ejecuta primero. Utiliza la salida del bloque 2 que se produjo en el escán anterior de la rutina.

Esto es correcto Esto no es correcto

Ningún cable usa el indicador Assume Data Available.

Ambos cables usan el indicador Assume Data Available.

Un cable usa el indicador Assume Data Available y el otro cable no.

Indicador “Assume Data Available”

2 1

Indicador “Assume Data Available”

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 163: 1756-pm001_-es-p

Programación de un diagrama de bloques de función 7-11

Resumen

En resumen, una rutina de bloque de función se ejecuta en este orden:

1. El controlador enclava todos los valores de datos en IREF.

2. El controlador ejecuta los otros bloques de función en el orden determinado según su cableado.

3. El controlador escribe salidas en OREF.

Identifique los conectores 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 estén 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

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).

• Múltiples ICON pueden hacer referencia al mismo OCON. Esto le permite dispersar datos a diversos puntos en la rutina.

Connector_A

Connector_A

datos

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 164: 1756-pm001_-es-p

7-12 Programación de un diagrama de bloques de función

Defina el control de programa/operador

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 simultáneamente desde el programa de usuario y desde un dispositivo de interface de operador. En control de programa, la instrucción es controlada por las entradas del programa a la instrucción; En control de operador, la instrucción es controlada por las entradas del operador a la instrucción.

El control de programa u operador se determina mediante el uso de estas entradas:

Para determinar si una instrucción está en control de programa o de operador, examine la salida ProgOper. Si ProgOper está establecido, la instrucción está en control de programa; Si ProgOper está restablecido, la instrucción está en control de operador.

El control de operador tiene precedencia sobre el control de programa si ambos bits de petición de entrada están establecidos. Por ejemplo, si ProgProgReq y ProgOperReq están establecidos, la instrucción pasa a control de operador.

Entrada: Descripción:

.ProgProgReq Una petición del programa para ir a control de programa.

.ProgOperReq Una petición del programa para ir a control de operador.

.OperProgReq Una petición del operador para ir a control de programa.

.OperOperReq Una petición del operador para ir a control de operador.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 165: 1756-pm001_-es-p

Programación de un diagrama de bloques de función 7-13

Las entradas de petición de programa tienen precedencia sobre las entradas de petición de operador. Esto proporciona la capacidad de usar las entradas ProgProgReq y ProgOperReq para “bloquear” una instrucción en un control deseado. Por ejemplo, supongamos que una instrucción Totalizer siempre se usará en el control de operador y que el programa de usuario nunca controlará la ejecución o paro de Totalizer. En este caso, usted podría cablear un valor literal de 1 en ProgOperReq. Esto impediría 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 ningún efecto presionar el botón “Program” en la carátula (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.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 166: 1756-pm001_-es-p

7-14 Programación de un diagrama de bloques de función

De igual modo, el establecer constantemente ProgProgReq puede “bloquear” la instrucción en control de programa. Esto es útil para las secuencias de puesta en marcha automática cuando usted desea que el programa controle la acción de la instrucción sin preocuparse de que un operador tome control accidentalmente de la instrucción. 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 instrucción permanece en control de programa hasta que recibe una petición de cambiar. Por ejemplo, el operador podría establecer la entrada OperOperReq desde la carátula para asumir el control de esa instrucción. El siguiente ejemplo muestra cómo bloquear una instrucción en control de programa.

Las entradas de petición de operador a una instrucción siempre son restablecidas por la instrucción cuando ésta se ejecuta. Esto permite que las interfaces de operador funcionen con estas instrucciones simplemente estableciendo el bit de petición del modo deseado. No es necesario programar la interface de operador para restablecer los bits de petición. Por ejemplo, si una interface de operador establece la entrada OperAutoReq a una instrucción PIDE, cuando se ejecuta la instrucción PIDE, ésta determina cuál debe ser la respuesta apropiada y restablece OperAutoReq.

Cuando se establece StartupSequenceActive, la instrucción PIDE se coloca en control de programa y modo manual. El valor StartupCV se usa como salida de lazo.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 167: 1756-pm001_-es-p

Programación de un diagrama de bloques de función 7-15

Las entradas de petición de programa normalmente no son restablecidas por la instrucción porque éstas normalmente están cableadas como entradas en la instrucción. Si la instrucción establece estas entradas, la entrada sería establecida nuevamente por la entrada cableada. Pueden haber situaciones en las que usted desee usar otra lógica para establecer las peticiones del programa de manera tal que desee que las peticiones del programa sean restablecidas por la instrucción. En este caso puede establecer la entrada ProgValueReset y la instrucción siempre restablecerá las entradas de petición del modo programa cuando ésta se ejecute.

En este ejemplo se usa un renglón de lógica de escalera en otra rutina para enclavar con un impulso ProgAutoReq a una instrucción PIDE cuando se presiona un botón pulsador. Puesto que la instrucción PIDE automáticamente restablece las peticiones del modo programa, usted no tiene que escribir ninguna lógica de escalera para restablecer ProgAutoReq después que se ejecute la rutina, y la instrucción PIDE recibirá sólo una petición para pasar al modo Auto cada vez que se presione el botón pulsador.

Cuando se presiona el botón pulsador TIC101AutoReq, ocurre un enclavamiento de un impulso de ProgAutoReq para la instrucción PIDE TIC101. TIC101 se ha configurado con la entrada ProgValueReset establecida, por lo tanto, cuando se ejecuta la instrucción PIDE, ésta automáticamente restablece ProgAutoReq.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 168: 1756-pm001_-es-p

7-16 Programación de un diagrama de bloques de función

Añada una hoja Para añadir una hoja a una rutina de bloques de función:

1. Haga clic en

2. Escriba una descripción de la hoja (50 caracteres como máximo).

Añada un elemento de bloque de función

Use la barra de herramientas Language Element para añadir un elemento de bloque de función a la rutina.

Para añadir un elemento:

1. En la barra de herramientas Language Element, haga clic en el botón del elemento que desea añadir.

2. Arrastre el elemento a la posición deseada.

1. 2.

IREF OCONOREF ICON bloques de función

otros bloques de función

Por ejemplo:

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 169: 1756-pm001_-es-p

Programación de un diagrama de bloques de función 7-17

También puede arrastrar el botón del elemento directamente a la ubicación deseada.

Por ejemplo:

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 170: 1756-pm001_-es-p

7-18 Programación de un diagrama de bloques de función

Conecte los elementos Para definir el flujo de datos:

Mostrar u ocultar un pin

Cuando se añade una instrucción de bloque de función, se muestra un conjunto predeterminado de pines para los parámetros. El resto de los pines están ocultos. Para mostrar u ocultar un pin:

1. Haga clic en el botón del bloque.

2. Borre o ponga una marca de verificación en el cuadro Vis del pin:

3. Seleccione

Mostrar u ocultar un pin

Conecte elementos juntos

Marque un cable con el indicador Assume Data Available

Si desea: Entonces:

ocultar un pin Borre la marca de verificación en el cuadro Vis correspondiente.

mostrar un pin Ponga la marca de verificación en el cuadro Vis correspondiente.

2.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 171: 1756-pm001_-es-p

Programación de un diagrama de bloques de función 7-19

Conecte elementos juntos

Para cablear (conectar) dos elementos juntos, haga clic en el pin de salida del primer elemento y luego haga clic en el pin de entrada del otro elemento. Un punto verde muestra un punto de conexión válido.

Por ejemplo:

Marque un cable con el indicador Assume Data Available

Para definir un cable como entrada, haga clic con el botón derecho del mouse en el cable y seleccione Assume Data Available.

punto verde

A b

1 2 3

cable de entrada

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 172: 1756-pm001_-es-p

7-20 Programación de un diagrama de bloques de función

Asigne un tag Para asignar un tag a un elemento de bloque de función, hay estas opciones:

Cree y asigne un nuevo tag

1. Haga doble clic en el área del operando.

2. Escriba un nombre para el tag y presione la tecla Enter.

3. Haga clic con el botón derecho del mouse en el nombre del tag y seleccione New “tag_name”.

4. Haga clic en el botón .

5. Seleccione el tipo de datos para el tag.

6. Si desea definir el tag como matriz, escriba el número de elementos en cada dimensión.

7. Seleccione

Cree y asigne un nuevo tag

Cambie el nombre del tag de un bloque de función

Asigne un tag existente

4.

5.

6.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 173: 1756-pm001_-es-p

Programación de un diagrama de bloques de función 7-21

8. Seleccione el alcance para el tag.

9. Seleccione

Cambie el nombre del tag de un bloque de función

1. Haga clic en el botón del bloque.

2. Haga clic en la ficha Tag.

3. Escriba el nuevo nombre del tag para el bloque.

4. Seleccione

Asigne un tag existente

1. Haga doble clic en el área del operando.

2. Haga clic en ▼

3. Seleccione el tag:

4. Presione [Enter] o haga clic en un lugar diferente en el diagrama.

8.

3.

Para seleccionar un: Haga lo siguiente:

tag Haga doble clic en el nombre del tag.

número de bit A. Haga clic en el nombre del tag.B. A la derecha del nombre del tag, haga clic en C. Haga clic en el bit requerido.

Block_01

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 174: 1756-pm001_-es-p

7-22 Programación de un diagrama de bloques de función

Asigne un valor inmediato (constante)

Para asignar un valor constante en lugar de un valor de tag a un parámetro de entrada, hay estas opciones:

Use un IREF

1. Añada un IREF.

2. Conecte IREF al pin de entrada que obtiene el valor.

3. Haga doble clic en el área del operando de IREF.

4. Escriba el valor y presione la tecla Enter.

Introduzca un valor en el tag de un bloque

Para asignar un valor a un parámetro cuando un cable está conectado al pin:

1. Haga clic en el botón del bloque.

2. Escriba el valor.

3. Seleccione

Si desea: Entonces:

que el valor esté visible en el diagrama e informes Use un IREF

tener la capacidad de cambiar el valor en línea sin editar la rutina

Introduzca un valor en el tag de un bloque

3.

2.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 175: 1756-pm001_-es-p

Programación de un diagrama de bloques de función 7-23

Conecte bloques con un OCON e ICON

Para transferir datos entre hojas o en situaciones de cableado complicado:

Añada un OCON

1. Añada un conector de cable de salida (OCON) y colóquelo 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].

Añada un ICON

1. Añada un conector de cable de entrada (ICON) y colóquelo 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.

Añada un OCON

Añada un ICON

OCONICON

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 176: 1756-pm001_-es-p

7-24 Programación de un diagrama de bloques de función

Verifique la rutina A medida que va programando la rutina, verifique periódicamente 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 descripción indicada en la ventana Results.

c. Vaya al paso 1.

3. Para cerrar la ventana Results, presione [Alt] + [1].

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 177: 1756-pm001_-es-p

Capítulo 8

Programación de lógica de escalera

Cuándo usar este procedimiento

Use este procedimiento para realizar lo siguiente:

• desarrollar la lógica para una rutina de lógica de escalera

• introducir la lógica en la rutina

Antes de usar este procedimiento

Antes de usar este procedimiento, asegúrese de que puede realizar las siguientes tareas:

Para obtener más información sobre cualquiera de estas tareas, vea “Organización de tareas, programas y rutinas” en la página 2-1.

Cómo usar este procedimiento

Para programar la rutina de lógica de escalera, realice estas tareas:

Abra o cierre una carpeta

Cree una rutina

Revise las Definiciones

Escritura de lógica de escalera

Introducción de la lógica de escalera

Asignación de operandos

Verificación de la rutina

1 Publicación 1756-PM001E-ES-P - Agosto 2002

Page 178: 1756-pm001_-es-p

8-2 Programación de lógica de escalera

Definiciones Antes de escribir o introducir la lógica de escalera, revise los siguientes términos:

• Instrucción

• Bifurcación

• Condición de renglón

Instrucción

La lógica de escalera se organiza como los renglones de una escalera y las instrucciones se colocan en cada renglón. Hay dos tipos básicos de instrucciones:

Instrucción de entrada: Una instrucción que verifica, compara o examina condiciones específicas de la máquina o proceso.

Instrucción de salida: Una instrucción que realiza alguna acción, tal como encender un dispositivo, apagar un dispositivo, copiar datos o calcular un valor.

Bifurcación

Una bifurcación consta de dos o más instrucciones en paralelo.

instrucciones de entrada instrucciones de salida

bifurcaciónbifurcación

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 179: 1756-pm001_-es-p

Programación de lógica de escalera 8-3

No hay un límite del número de niveles de bifurcación en paralelo que usted puede introducir. La figura siguiente muestra una bifurcación en paralelo con cinco niveles. El renglón principal es el primer nivel de bifurcación, seguido por cuatro bifurcaciones adicionales.

Se pueden anidar las bifurcaciones hasta en 6 niveles. La figura siguiente muestra una bifurcación anidada. La instrucción de salida inferior se encuentra en una bifurcación anidada que tiene tres niveles.

instrucción de entrada instrucción de salida

instrucción de entrada instrucción de salida

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 180: 1756-pm001_-es-p

8-4 Programación de lógica de escalera

Condición de renglón

El controlador evalúa las instrucciones de lógica de escalera según la condición de renglón que precede a la instrucción (condición de entrada del renglón).

Sólo las instrucciones de entrada afectan la condición de entrada de renglón de instrucciones subsiguientes en el renglón.

• Si la condición de entrada del renglón a una instrucción de entrada es verdadera, el controlador evalúa la instrucción y establece la condición de salida del renglón para que coincida con los resultados de la evaluación.

– Si la instrucción se evalúa como verdadera, la condición de salida del renglón es verdadera.

– Si la instrucción se evalúa como falsa, la condición de salida del renglón es falsa.

• Una instrucción de salida no cambia la condición de salida del renglón.

– Si la condición de entrada del renglón a una instrucción de salida es verdadera, la condición de salida del renglón se establece como verdadera.

– Si la condición de entrada del renglón a una instrucción de salida es falsa, la condición de salida del renglón se establece como falsa.

instrucción de entrada

condición de entrada de renglón

instrucción de salida

condición de salida del renglón

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 181: 1756-pm001_-es-p

Programación de lógica de escalera 8-5

Escritura de lógica de escalera

Para desarrollar la lógica de escalera, realice las acciones siguientes:

Seleccione las instrucciones requeridas

1. Separe las condiciones a verificar de la acción que se va a realizar.

2. Seleccione la instrucción de entrada apropiada para cada condición y la instrucción de salida apropiada para cada acción.

Para seleccionar instrucciones específicas, consulte los siguientes manuales:

• Logix5000 Controllers General Instructions Reference Manual, publicación 1756-RM003

• Logix5000 Controllers Process and Drives Instructions Reference Manual, publicación 1756-RM006

• Logix5000 Controllers Motion Instruction Set Reference Manual, publicación 1756-RM007

Los ejemplos proporcionados en este capítulo usan dos instrucciones simples para ayudarle a aprender cómo escribir la lógica de escalera. Las reglas que usted aprenderá para estas instrucciones se aplican a todas las otras instrucciones.

Seleccione las instrucciones requeridas

Organice las instrucciones de entrada

Organice las instrucciones de salida

Seleccione un nombre de tag para un operando

Símbolo: Nombre: Mnemónico: Descripción:

Examine If Closed XIC Una instrucción que examina un bit de datos.

Si el bit está: Entonces la instrucción (condición de salida de renglón) es:

activado (1) verdadera

desactivado (0) falsa

Output Energize OTE Una instrucción de salida que controla un bit de datos.

Si las instrucciones a la izquierda (condición de entrada de renglón) son:

Entonces la instrucción cambia el bit a:

verdaderas activado (1)

falsas desactivado (0)

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 182: 1756-pm001_-es-p

8-6 Programación de lógica de escalera

Organice las instrucciones de entrada

Organice las instrucciones de entrada en un renglón usando el diagrama siguiente:

Para verificar múltiples condiciones de entrada cuando: Organice las instrucciones de entrada:

todas las condiciones deben cumplirse en orden para que se realice la acción

Por ejemplo, si condition_1 Y condition_2 Y condition_3…

En serie:

cualquiera de varias condiciones debe cumplirse para que se realice la acción

Por ejemplo, si condition_1 O condition_2 O condition_3…

En paralelo:

hay una combinación de lo anterior

Por ejemplo:Si condition_1 Y condition_2…o bienSi condition_3 Y condition_2…

En combinación:

condición_1 condition_2 condition_3

condition_1

condition_2

condition_3

condition_1 condition_2

condition_3

CONSEJO El controlador ejecuta todas las instrucciones en un renglón, independientemente de la condición de entrada del renglón. Para obtener un rendimiento óptimo de una serie de instrucciones, coloque las instrucciones en secuencia desde la que más probablemente es falsa a la izquierda hasta la que menos probablemente es falsa a la derecha.

Cuando el controlador encuentra una instrucción falsa, ejecuta las instrucciones restantes en la serie con la condición de entrada de renglón establecida en falso. Normalmente, una instrucción se ejecuta más rápidamente cuando su condición de entrada de renglón (renglón) es falso en lugar de verdadero.

instrucción que más probablemente es FALSA

instrucción que menos probablemente es FALSA

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 183: 1756-pm001_-es-p

Programación de lógica de escalera 8-7

Organice las instrucciones de salida

Coloque por lo menos una instrucción de salida a la derecha de las instrucciones de entrada. Puede introducir múltiples instrucciones de salida por renglón de lógica, de la siguiente manera:

Seleccione un nombre de tag para un operando

La mayoría de instrucciones requieren uno o más de los siguientes tipos de operandos:

• nombre de tag (variable)

• valor inmediato (constante)

• nombre de una rutina, etiqueta, etc.

La siguiente tabla describe el formato para un nombre de tag:

donde:

x es la ubicación del elemento en la primera dimensión.

y es la ubicación del elemento en la segunda dimensión.

z es la ubicación del elemento en la tercera dimensión.

Opción: Ejemplo:

Coloque las instrucciones de salida en secuencia en el renglón (en serie)

Coloque las instrucciones de salida en bifurcaciones (en paralelo)

Coloque las instrucciones de salida entre instrucciones de entrada, siempre que la última instrucción del renglón sea una instrucción de salida.

Para un: Especifique:

tag tag_name

número de bit de un tipo de datos más grande tag_name.bit_number

miembro de una estructura tag_name.member_name

elemento de una matriz de una dirección tag_name[x]

elemento de una matriz de dos direcciones tag_name[x,y]

elemento de una matriz de tres direcciones tag_name[x,y,z]

elemento de una matriz dentro de una estructura tag_name.member_name[x]

miembro de un elemento de una matriz tag_name[x,y,z].member_name

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 184: 1756-pm001_-es-p

8-8 Programación de lógica de escalera

Para una estructura dentro de una estructura, añada un .member_name adicional.

EJEMPLO Seleccione un nombre de tag para un operando

42357

Para acceder a: El nombre del tag es similar a:

tag machine_on

número 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

elemento 2 en la matriz preset dentro del tag north_tank

miembro part_advance del elemento 1 en la matriz drill

machine_on

one_shots.1

running_seconds.DN

north_tank.mix

Copy FileSource recipe[2]Dest tanks[1,1]Length 1

COP

ClearDest north_tank.preset[2]

0

CLR

drill[1].part_advance

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 185: 1756-pm001_-es-p

Programación de lógica de escalera 8-9

Introducción de la lógica de escalera

Una nueva rutina contiene un renglón que está listo para las instrucciones.

Use la barra de herramientas Language Element para añadir un elemento de lógica de escalera a la rutina.

Para añadir un elemento:

Añada un elemento en la ubicación del cursor

1. Haga clic (seleccione) la instrucción, bifurcación o renglón que está encima o a la izquierda, o donde usted desee añadir un elemento.

2. En la barra de herramientas Language Element, haga clic en el botón del elemento que desea añadir.

cursor (azul) Cuando se añade una instrucción o bifurcación, ésta aparece a la derecha del cursor.

Cuando se añade un renglón, ésteaparece debajo del cursor.

Añada un elemento en la ubicación del cursor

Arrastre y coloque un elemento

renglón XICbifurcación

nivel de bifurcación

otras instrucciones

XIO OTE OTU OTL

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 186: 1756-pm001_-es-p

8-10 Programación de lógica de escalera

Arrastre y coloque un elemento

Arrastre el botón del elemento directamente a la ubicación deseada. El punto verde muestra el lugar de ubicación válido (lugar de colocación).

Por ejemplo

Asignación de operandos Para asignar un operando, existen estas opciones:

Cree y asigne un nuevo tag

1. Haga clic en el área del operando de la instrucción.

2. Escriba un nombre para el tag y presione [Enter].

3. Haga clic con el botón derecho del mouse en el nombre del tag y seleccione New “tag_name”.

4. Haga clic en el botón .

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)

4.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 187: 1756-pm001_-es-p

Programación de lógica de escalera 8-11

5. Seleccione el tipo de datos para el tag.

6. Si desea definir el tag como matriz, escriba el número de elementos en cada dimensión.

7. Seleccione

8. Seleccione el alcance para el tag.

9. Seleccione

Seleccione un nombre o un tag existente

1. Haga doble clic en el área del operando.

Se abrirá un cuadro de entrada de texto.

2. Haga clic en ▼

3. Seleccione el nombre:

4. Presione [Enter] o haga clic en un lugar diferente en el diagrama.

5.

6.

8.

Para seleccionar un/una: Haga lo siguiente:

etiqueta, nombre de rutina o tipo de nombre similar

Haga cilc en el nombre.

tag Haga doble clic en el nombre del tag.

número de bit A. Haga clic en el nombre del tag.B. A la derecha del nombre del tag, haga clic en

C. Haga clic en el bit requerido.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 188: 1756-pm001_-es-p

8-12 Programación de lógica de escalera

Arrastre un tag desde la ventana Tags

1. Busque el tag en la ventana Tags.

2. Haga clic en el tag dos o tres veces hasta que se resalte.

3. Arrastre el tag a su lugar en la instrucción.

Asigne un valor inmediato (constante)

1. Haga clic en el área del operando de la instrucción.

2. Escriba el valor y presione [Enter].

Verificación de la rutina A medida que va programando la(s) rutina(s), verifique periódicamente 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 descripción indicada en la ventana Results.

c. Vaya al paso 1.

3. Para cerrar la ventana Results, presione [Alt] + [1].

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 189: 1756-pm001_-es-p

Capítulo 9

Acceso a valores del sistema

Cuándo usar este procedimiento

Use este procedimiento para obtener o usar información de estado acerca del controlador Logix5000.

Cómo usar este procedimiento

Monitoreo de los indicadores de estado

El controlador acepta contraseñas de estado que usted puede usar en la lógica para monitorear eventos específicos:

• Las contraseñas de estado no distinguen entre mayúsculas y minúsculas.

• Debido a que los indicadores de estado pueden cambiar rápidamente, el software RSLogix 5000 no muestra el estado de los indicadores. (Por ejemplo, aún cuando un indicador de estado esté establecido, una instrucción que se refiera a dicho indicador no aparecerá resaltada).

• No es posible definir un alias de tag en relación con una contraseña.

Si desea: Vea:

usar contraseñas específicas en la lógica para monitorear eventos específicos

“Monitoreo de los indicadores de estado” en la página 9-1

obtener o establecer valores del sistema “Obtener y establecer datos del sistema” en la página 9-3

obtener información acerca de la memoria del controlador “Determine la información de memoria del controlador” en la página 9-6

1 Publicación 1756-PM001E-ES-P - Agosto 2002

Page 190: 1756-pm001_-es-p

9-2 Acceso a valores del sistema

Se pueden utilizar estas contraseñas:

Para determinar si: Use:

el valor que va a almacenar no cabe en el destino por cualquiera de las siguientes razones:

• es mayor que el valor máximo para el destino• es menor que el valor mínimo para el destino

Importante: Cada vez que S:V cambia de restablecido a establecido, se genera un fallo menor (tipo 4, código 4)

S: V

el valor de destino de la instrucción es 0 S:Z

el valor de destino de la instrucción es negativo S:N

una operación aritmética causa un acarreo o un acarreo negativo que trata de usar bits que están fuera del tipo de datos

Por ejemplo:• sumar 3 + 9 causa un acarreo de 1• restar 25 – 18 causa un acarreo negativo de 10

S:C

éste es el primer escán normal de las rutinas en el programa actual S:FS

por lo menos se generó un fallo menor:• El controlador establece este bit cuando ocurre un fallo menor

debido a la ejecución del programa• El controlador no establece este bit por fallos menores que no

están relacionados con la ejecución del programa, como por ejemplo batería baja.

S:MINOR

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 191: 1756-pm001_-es-p

Acceso a valores del sistema 9-3

Obtener y establecer datos del sistema

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 instrucción GSV recupera la información especificada y la coloca en el destino.

• La instrucción SSV establece el atributo especificado con datos del origen.

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.

ATENCIÓN

!Use la instrucción SSV con cuidado. El hacer cambios a los objetos puede causar una operación inesperada del controlador o lesiones personales.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 192: 1756-pm001_-es-p

9-4 Acceso a valores del sistema

5. Haga clic en el objeto requerido.

6. En la lista de atributos del objeto, identifique el atributo al que desea acceder.

7. Cree un tag para el valor del atributo:

8. En la rutina de la lógica de escalera, introduzca la instrucción apropiada:

Para obtener o establecer: Haga clic en:

eje de un servomódulo AXIS

tiempo de procesamiento interno del sistema CONTROLLER

hardware físico de un controlador CONTROLLERDEVICE

tiempo coordinado del sistema para los dispositivos en un chasis CST

driver de comunicación DF1 para el puerto en serie DF1

historial de fallos para un controlador FAULTLOG

atributos de una instrucción de mensaje MESSAGE

estado, fallos y modo de un módulo MODULE

grupo de ejes MOTIONGROUP

información de fallo o tiempo de escán para un programa PROGRAM

número de instancia de una rutina ROUTINE

configuración del puerto en serie SERIALPORT

propiedades o tiempo transcurrido de una tarea TASK

hora del reloj de un controlador WALLCLOCKTIME

Si el tipo de datos del atributo es: Entonces:

un elemento (por ej., DINT) Cree un tag para el atributo.

más de un elemento (por ej., DINT[7] ) A. Cree un tipo de datos definido por el usuario con una organización 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..

Para: Introduzca esta instrucción:

obtener el valor de un atributo GSV

establecer el valor de un atributo SSV

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 193: 1756-pm001_-es-p

Acceso a valores del sistema 9-5

9. Asigne los operandos requeridos para la instrucción:

En los siguientes ejemplos se obtiene la fecha y hora actual.

Para obtener más información, vea Logix5000 Controllers General Instructions Reference Manual, publicación 1756-RM003.

Para este operando: Seleccione:

Class name nombre del objeto

Instance name nombre del objeto específico (por ej., nombre del módulo de E/S, tarea, mensaje requerido)

• No todos los objetos requieren esta entrada.

• Para especificar la tarea, programa o rutina actual, seleccione THIS.

Attritube Name nombre del atributo

Dest (GSV) tag que almacenará el valor recuperado• Si el tag es un tipo de datos definido por el

usuario, o una matriz, seleccione el primer miembro o elemento.

Source (SSV) tag que almacena el valor que se va a establecer• Si el tag es un tipo de datos definido por el

usuario, o una matriz, seleccione el primer miembro o elemento.

EJEMPLO Obtener un valor del sistema

En el primer escán, 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

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 194: 1756-pm001_-es-p

9-6 Acceso a valores del sistema

Determine la información de memoria del controlador

La memoria del controlador se divide en memoria de E/S y memoria de expansión. La siguiente tabla muestra cómo el controlador usa cada tipo de memoria:

Utilice este procedimiento para obtener la siguiente información acerca de la memoria de un controlador.

• memoria de E/S disponible

• memoria de expansión disponible

• total de memoria de E/S

• total de memoria de expansión

• bloque contiguo más grande de memoria de E/S

• bloque contiguo más grande de memoria de expansión

Para obtener información sobre memoria para el controlador:

Los siguientes: Usan memoria de:

tags de E/S memoria de E/S

tags producidos

tags consumidos

comunicación mediante instrucciones Message (MSG)

comunicación con estaciones de trabajo

comunicación con tags encuestados (OPC/DDE) que usan el software RSLinx(1)

(1) Para comunicarse con tags encuestados, el controlador usa la memoria de E/S y la memoria de expansión.

tags que no son tags de E/S, producidos ni consumidos memoria de expansión

rutinas de lógica

comunicación con tags encuestados (OPC/DDE) que usan el software RSLinx(1)

IMPORTANTE El controlador retorna los valores en número de palabras de 32 bits. Para ver un valor en bytes, multiplíquelo por 4.

Obtener información sobre memoria proveniente del controlador

Seleccione la información de memoria que desea

Conversión de INT a DINT

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 195: 1756-pm001_-es-p

Acceso a valores del sistema 9-7

Obtener información sobre memoria proveniente del controlador

Para obtener información sobre memoria proveniente del controlador, ejecute una instrucción Message (MSG) configurada de la siguiente manera:

Ficha Message Properties—Configuration

Ficha Message Properties—Communication

Para este ítem: Escriba o seleccione: Lo cual significa:

Message Type CIP Generic Ejecutar un comando del Protocolo de control e información

Service Type Custom Crear un mensaje CIP Generic que no está disponible en la lista desplegable.

Service Code 3 Use el servicio GetAttributeList. Éste le permite leer información específica acerca del controlador.

Class 72 Obtener información del objeto memoria de usuario

Instance 1 Este objeto contiene sólo 1 instancia.

Attribute 0 Valor nulo

Source Element source_array de tipo SINT[12]

En este elemento: Introduzca: Lo cual significa:

source_array[0] 5 Obtener 5 atributos

source_array[1] 0 Valor nulo

source_array[2] 1 Obtener memoria disponible

source_array[3] 0 Valor nulo

source_array[4] 2 Obtener el total de memoria

source_array[5] 0 Valor nulo

source_array[6] 5 Obtener el bloque contiguo más grande de memoria de expansión disponible adicional

source_array[7] 0 Valor nulo

source_array[8] 6 Obtener el bloque contiguo más grande de memoria de E/S disponible

source_array[9] 0 Valor nulo

source_array[10] 7 Obtener el bloque contiguo más grande de memoria de expansión disponible

source_array[11] 0 Valor nulo

Source Length 12 Escribir 12 bytes (12 SINT).

Destination INT_array de tipo INT[29]

Para este ítem: Escriba:

Path 1, slot_number_of_controller

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 196: 1756-pm001_-es-p

9-8 Acceso a valores del sistema

Seleccione la información de memoria que desea

La instrucción MSG devuelve la siguiente información a INT_array(tag de destino de MSG):

IMPORTANTE Para un controlador 1756-L55M16, la instrucción MSG devuelve dos valores por cada categoría de memoria de expansión. Para determinar la memoria de expansión disponible o el total de memoria de expansión de un controlador 1756-L55M16, sume ambos valores para la categoría.

Si usted desea el/la: Entonces copie estos elementos de matriz:

Descripción:

cantidad de memoria de E/S disponible (palabras de 32 bits) INT_array[3] los 16 bits inferiores del valor de 32 bits

INT_array[4] los 16 bits superiores del valor de 32 bits

cantidad de memoria de expansión disponible (palabras de 32 bits)

INT_array[5] los 16 bits inferiores del valor de 32 bits

INT_array[6] los 16 bits superiores del valor de 32 bits

controladores 1756-L55M16 solamente—cantidad de memoria de expansión disponible adicional (palabras de 32 bits)

INT_array[7] los 16 bits inferiores del valor de 32 bits

INT_array[8] los 16 bits superiores del valor de 32 bits

tamaño total de memoria de E/S (palabras de 32 bits) INT_array[11] los 16 bits inferiores del valor de 32 bits

INT_array[12] los 16 bits superiores del valor de 32 bits

tamaño total de memoria de expansión (palabras de 32 bits) INT_array[13] los 16 bits inferiores del valor de 32 bits

INT_array[14] los 16 bits superiores del valor de 32 bits

controladores 1756-L55M16 solamente—memoria de expansión adicional (palabras de 32 bits)

INT_array[15] los 16 bits inferiores del valor de 32 bits

INT_array[16] los 16 bits superiores del valor de 32 bits

controladores 1756-L55M16 solamente—bloque contiguo más grande de memoria de expansión disponible adicional (palabras de 32 bits)

INT_array[19] los 16 bits inferiores del valor de 32 bits

INT_array[20] los 16 bits superiores del valor de 32 bits

bloque contiguo más grande de memoria de E/S disponible (palabras de 32 bits)

INT_array[23] los 16 bits inferiores del valor de 32 bits

INT_array[24] los 16 bits superiores del valor de 32 bits

bloque contiguo más grande de memoria de expansión disponible (palabras de 32 bits)

INT_array[27] los 16 bits inferiores del valor de 32 bits

INT_array[28] los 16 bits superiores del valor de 32 bits

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 197: 1756-pm001_-es-p

Acceso a valores del sistema 9-9

Conversión de INT a DINT

La instrucción MSG devuelve cada valor de memoria como dos INT separados.

• El primer INT representa los 16 bits inferiores del valor.

• El segundo INT representa los 16 bits superiores del valor.

Para convertir los INT separados en un valor utilizable, use una instrucción Copy (COP), donde:

En el siguiente ejemplo, la instrucción COP produce el valor de 32 bits que representa la cantidad de memoria de E/S disponible, en palabras de 32 bits.

En este operando: Especifique: Lo cual significa:

Source el primer INT de la pareja de 2 elementos (16 bits inferiores)

Comenzar con los 16 bits inferiores

Destination el tag DINT en donde se va a almacenar el valor de 32 bits

Copiar el valor al tag DINT.

Length 1 Copiar 1 vez el número de bytes en el tipo de datos de destino. En este caso, la instrucción copia 4 bytes (32 bits), lo cual combina los 16 bits inferiores y superiores en un valor de 32 bits.

EJEMPLO Conversión 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 instrucción que copie 1 vez el tamaño 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.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 198: 1756-pm001_-es-p

9-10 Acceso a valores del sistema

Notas:

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 199: 1756-pm001_-es-p

Capítulo 10

Asignación 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 también refleja el cambio.

Use alias en las siguientes situaciones:

• programar lógica anteriormente a los diagramas de cableado

• asignar un nombre descriptivo a un dispositivo de E/S

• proporcionar un nombre más simple para un tag complejo

• usar un nombre descriptivo para un elemento de una matriz

La ventana de tags muestra la información de alias.

Un uso común de los alias es programar la lógica antes que los diagramas de cableado estén 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.

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 también 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 también se activa.

north_tank es un alias para tanks[0,1].

42360

La (C) indica que el tag está dentro del alcance del controlador.

1 Publicación 1756-PM001E-ES-P - Agosto 2002

Page 200: 1756-pm001_-es-p

10-2 Asignación de alias

2. Programe la lógica usando los nombres de tags descriptivos. (Puede incluso probar la lógica sin hacer conexión a la E/S).

3. Posteriormente, cuando los diagramas de cableado estén disponibles, añada los módulos de E/S a la configuración de E/S del controlador.

4. Finalmente, convierta los tags descriptivos a alias para sus puntos de E/S o canales respectivos.

La siguiente lógica 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.

42351

Visualización de información de alias

Para mostrar (en la lógica) el tag al cual apunta un alias:

1. En el menú Herramientas, seleccione Opciones.

2. Haga clic en la ficha Visualización de lógica de escalera.

3. Seleccione la casilla de verificación Mostrar Información de alias de tag.

4. Haga clic en Aceptar.

Asignación de un alias Para asignar un tag como un alias para otro tag:

1. En el menú Lógica, seleccione Editar tag.

stop<Local:2:I.Data.1>

start<Local:2:I.Data.0>

machine_on

machine_ondrill_1_on

<Local:0:O.Data.2> drill_1.part_advance

conveyor_on<Local:0:O.Data.0>

stop es un alias para Local:2:I.Data.1 (el botón de paro en el panel del operador)

conveyor_on es un alias para Local:0:O.Data.0 (el contactor arrancador para el motor del transportador)

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 201: 1756-pm001_-es-p

Asignación de alias 10-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 ▼

4. Haga clic en ▼

5. Seleccione el tag que el alias representará:

6. Presione la tecla Enter o haga clic en otra celda.

2.

3.

42360

Para: Haga lo siguiente:

seleccionar un tag Haga doble clic en el nombre del tag.

seleccionar un número de bit A. Haga clic en el nombre del tag. B. A la derecha del nombre del tag, haga clic

en .C. Haga clic en el bit requerido.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 202: 1756-pm001_-es-p

10-4 Asignación de alias

Notas:

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 203: 1756-pm001_-es-p

Capítulo 11

Asignación de una dirección indirecta

Cuándo asignar una dirección indirecta

Si desea que una instrucción tenga acceso a diferentes elementos en una matriz, use un tag en el subíndice de la matriz (una dirección indirecta). Al cambiar el valor del tag, se cambia el elemento de la matriz a la que hace referencia la lógica.

La siguiente tabla indica algunos usos comunes para una dirección indirecta:

Cuándo el índice es igual a 1, array[index] apunta aquí.

array[0] 4500

array[1] 6000

array[2] 3000

array[3] 2500

Cuándo el índice es igual a 2, array[index] apunta aquí.

Para: Use un tag en el subíndice y:

seleccionar una receta de una matriz de recetas

Introduzca el número de la receta en el tag.

cargar la configuración de una máquina específica desde una matriz de posibles configuraciones

Introduzca la configuración deseada en el tag.

cargar parámetros o estados desde una matriz, un elemento a la vez

A. Realice la acción requerida en el primer elemento.

B. Use una instrucción ADD para incrementar el valor del tag y apunte al siguiente elemento en la matriz.

registrar códigos de error

realizar varias acciones en un elemento de matriz y luego indexar al siguiente elemento

1 Publicación 1756-PM001E-ES-P - Agosto 2002

Page 204: 1756-pm001_-es-p

11-2 Asignación de una dirección indirecta

El siguiente ejemplo carga una serie de valores preseleccionados en un temporizador, un valor (elemento de matriz) a la vez.

EJEMPLO Ejecute una matriz paso a paso

La matriz timer_presets almacena una serie de valores preseleccionados para el temporizador en el siguiente renglón. El tag north_tank.step apunta el elemento de la matriz a usar. Por ejemplo, cuando north_tank.step es igual a 0, la instrucción carga timer_presets[0] en el temporizador (6000 ms).

Cuando north_tank.step_time termina, el renglón incrementa north_tank.step al siguiente número y dicho elemento de la matriz timer_presets se carga en el temporizador.

Cuando north_tank.step excede el tamaño de la matriz, el renglón restablece el tag para empezar en el primer elemento de la matriz. (El arreglo contiene los elementos 0 a 3).

42358

MoveSource timer_presets[north_tank.step]

60000Dest north_tank.step_time.PRE

60000

MOV

/north_tank.step_time.DN

ENDN

Timer On DelayTimer north_tank.step_timePreset 60000Accum 0

TON

north_tank.step_time.DNAddSource A 1

Source B north_tank.step0

Dest north_tank.step0

ADD

EqualSource A north_tank.step

0Source B 4

EQUMoveSource 0

Dest north_tank.step0

MOV

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 205: 1756-pm001_-es-p

Asignación de una dirección indirecta 11-3

Expresiones También se puede usar una expresión para especificar el subíndice de una matriz.

• Una expresión usa operadores tales como + o –, para calcular un valor.

• El controlador calcula el resultado de la expresión y lo usa como el subíndice de la matriz.

Puede usar estos operadores para especificar el subíndice de una matriz:

Formatee las expresiones como sigue:

Operador: Descripción:

+ sumar

– restar/cambiar signo

* multiplicar

/ dividir

ABS Valor absoluto

AND AND

FRD BCD a número entero

MOD Módulo

NOT complemento

OR OR

SQR raíz cuadrada

TOD número entero a BCD

TRN Truncar

XOR O exclusivo

Operador: Descripción:

Si el operador requiere: Use este formato: Ejemplos:

un valor (tag o expresión) operator(value) ABS(tag_a)

dos valores (tags, constantes o expresiones)

value_a operator value_b • tag_b + 5• tag_c AND tag_d• (tag_e ** 2) MOD

(tag_f / tag_g)

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 206: 1756-pm001_-es-p

11-4 Asignación de una dirección indirecta

Notes:

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 207: 1756-pm001_-es-p

Capítulo 12

Almacenamiento de E/S en el búfer

Cuándo almacenar E/S en el búfer

El almacenamiento de E/S en el búfer es una técnica en la cual la lógica no manipula ni hace referencia directa a los tags de los dispositivos de E/S reales. En lugar de ello, la lógica usa una copia de los datos de E/S. Almacene E/S en el búfer en las siguientes situaciones:

• Para evitar que un valor de entrada o salida cambie durante la ejecución de un programa. (Las E/S se actualizan de manera asíncrona a la ejecución de la lógica).

• Para copiar un tag de entrada o salida a un miembro de una estructura o elemento en una matriz.

Almacenamiento de E/S en el búfer

Para almacenar E/S en el búfer, realice estas acciones:

1. En el renglón antes de la lógica para la función (es), copie o mueva los datos desde los tags de entrada requeridos a sus tags de búfer correspondientes.

2. En la lógica de la función (es), haga referencia a los tags de búfer.

3. En el renglón después de la función (es), copie los datos desde los tags de búfer a los tags de salida correspondientes.

1 Publicación 1756-PM001E-ES-P - Agosto 2002

Page 208: 1756-pm001_-es-p

12-2 Almacenamiento de E/S en el búfer

El siguiente ejemplo copia entradas y salidas a los tags de una estructura para una máquina perforadora.

El siguiente ejemplo utiliza la instrucción CPS para copiar una matriz de datos que representa los dispositivos de entrada de una red DeviceNet.

EJEMPLO Almacenar E/S en el búfer

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.

La rutina drill ejecuta la lógica para la máquina perforadora.

La rutina map_outputs copia los valores de los tags de salida en la rutina drill a sus dispositivos de salida correspondientes.

42369

Jump to SubroutineRoutine name map_inputs

JSRJump to SubroutineRoutine name drill

JSRJump to SubroutineRoutine name map_outputs

JSR

_1791_8AC:I.Data[0].0 drill[1].depth_limit

_1791_8AC:I.Data[0].4 drill[1].home_limit

/drill[1].part_advance

ONSone_shots.0

drill[1].forward

/drill[1].depth_limit drill[1].forward

drill[1].depth_limit

drill[1].retract

/drill[1].home_limit drill[1].retract

drill[1].forward _1791_8AC:O.Data[0].0

drill[1].retract _1791_8AC:O.Data[0].1

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 209: 1756-pm001_-es-p

Almacenamiento de E/S en el búfer 12-3

EJEMPLO Almacenar E/S en el búfer

Local:0:I.Data almacena los datos de entrada para la red DeviceNet conectada al módulo 1756-DNB de la ranura 0. Para sincronizar las entradas con la aplicación, la instrucción CPS copia los datos de entrada a input_buffer.

• Mientras la instrucción CPS copia los datos, ninguna actualización de E/S puede cambiar los datos.

• Mientras se está ejecutando la aplicación, ésta utiliza los datos de entrada de input_buffer para sus entradas.

42578

Synchronous Copy FileSource Local:0:I.Data[0]Dest input_buffer[0]Length 20

CPS

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 210: 1756-pm001_-es-p

12-4 Almacenamiento de E/S en el búfer

Notas:

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 211: 1756-pm001_-es-p

Capítulo 13

Prueba de un proyecto

Prueba de un proyecto Para probar un proyecto realice las siguientes acciones:

• Configure un driver de comunicación

• Descargue el proyecto al controlador

• Seleccione un modo para el controlador

• Corrección de fallos mayores

• Guarde los cambios en línea

Además, puede realizar estas acciones:

• use instrucciones de control de programa para aislar la ejecución de la lógica a rutinas o renglones específicos. Vea Logix5000 Controllers General Instructions Reference Manual, publicación 1756-RM003.

• Fuerce valores de entrada o salida. Consulte “Forzado de elementos lógicos” en la página 18-1.

Configure un driver de comunicación

El software RSLogix 5000 requiere un variador de comunicación para comunicarse con un controlador. Los variadores de comunicación 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:

4. Haga clic en Añadir nuevo.

Para esta red: Seleccione este driver:

Computadora de escritorio Computadora portátil

en serie Dispositivos RS-232 DF1 Dispositivos RS-232 DF1

DH+™ 1784-KT/KTX(D)/PKTX(D) 1784-PCMK

ControlNet™ 1784-KTC(X) 1784-PCC

Ethernet™ Dispositivos Ethernet Dispositivos Ethernet

DeviceNet Drivers DeviceNet (drivers 1784-PCD/PCIDS, 1770-KFD, SDNPT)

Drivers DeviceNet (drivers 1784-PCD/PCIDS, 1770-KFD, SDNPT)

1 Publicación 1756-PM001E-ES-P - Agosto 2002

Page 212: 1756-pm001_-es-p

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:

3. Haga clic en Aceptar.

4. Haga clic en Cerrar.

Para este variador:

Haga lo siguiente:

en serie 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 Autoconfiguración.

ControlNet A. En el cuadro Nombre de estación, escriba un nombre que identificará a la computadora en la ventana RSWho.

B. Seleccione el valor de interrupción, la dirección de memoria y la dirección base de E/S.

C. En el cuadro Dirección de red, escriba el número de nodo ControlNet que desea asignar a la computadora.

DH+ 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.

Ethernet Por cada dispositivo Ethernet en esta red con el cual desea comunicarse (por ej., cada módulo 1756-ENET o controlador PLC-5E), añada una entrada de asignación:

A. En la columna Tipo de Host, escriba la dirección IP o nombre de host del dispositivo Ethernet.

B. ¿Desea comunicarse con otro dispositivo Ethernet en esta red?

Si: Entonces:

Sí 1. Seleccione Añadir nuevo.2. Vaya al paso A.

No Vaya al siguiente paso.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 213: 1756-pm001_-es-p

Prueba de un proyecto 13-3

Descargue el proyecto al controlador

Use este procedimiento para descargar un proyecto al controlador, a fin de poder ejecutar su lógica.

• Cuando usted descarga un proyecto, se pierden el proyecto y los datos que actualmente están en el controlador, de haberlos.

• Si la revisión del controlador no coincide con la revisión 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.

1. Abra el proyecto RSLogix 5000 que desea descargar.

2. Del menú Comunicaciones, seleccione Quién activo.

3. Expanda la red hasta que vea el controlador.

4. Seleccione el controlador.

5. SeleccioneDescargar.

ATENCIÓN

!Cuando usted descarga un proyecto o actualiza el firmware, todos los servoejes activos se desactivan. Antes de descargar un proyecto o actualizar el firmware, asegúrese de que esto no causará un movimiento inesperado de un eje.

IMPORTANTE Para actualizar el firmware de un controlador, primero instale el paquete de actualización de firmware.

• El paquete de actualización se envía en un CD suplementario junto con el software RSLogix 5000.

• Para descargar un paquete de actualización, vaya a www.ab.com. Seleccione Soporte de productos. Seleccione Actualizaciones de firmware.

Para ampliar la red a un nivel superior, efectúe una de las tareas siguientes:

• Haga doble clic en la red.

• Seleccione la red y presione la tecla →.

• Haga clic en el signo +.

Estación de trabajo

Gateways Linx, Ethernet

driver

módulo de comunicación

backplane

controlador

+

+

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 214: 1756-pm001_-es-p

13-4 Prueba de un proyecto

6. Cuál es la respuesta que proporciona el software:

7. Seleccione Descargar.

El proyecto se descarga al controlador y el software RSLogix 5000 entra en línea.

8. Omita el resto del procedimiento.

9. Seleccione Actualizar firmware.

10. Seleccione la revisión requerida para el controlador.

11. Seleccione Actualizar.

Un cuadro de diálogo le solicitará que confirme la operación de actualización.

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 línea.

Si el software indica: Entonces:

se descargan al controlador Vaya al paso paso7

Falló descarga al controlador. La revisión del proyecto fuera de línea y el firmware del controlador no son compatibles.

Vaya al paso paso9

43056

10.

11.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 215: 1756-pm001_-es-p

Prueba de un proyecto 13-5

Seleccione un modo para el controlador

Para probar un proyecto, seleccione un modo para el controlador.

42627

42525

A

B

Si desea: Entonces seleccione uno de estos modos:

Marcha PROG REM

Marcha programa Prueba

poner las salidas en el estado comandado por la lógica 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 línea, editar el proyecto

✔ ✔ ✔ ✔

enviar mensajes ✔ ✔ ✔

enviar y recibir datos en respuesta a un mensaje de otro controlador

✔ ✔ ✔ ✔ ✔

producir y consumir tags ✔ ✔ ✔ ✔ ✔

selección de interruptor de llaveSelección de RSLogix 5000

A

B

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 216: 1756-pm001_-es-p

13-6 Prueba de un proyecto

Corrección de fallos mayores

Si el controlador entra al modo con fallo, ocurrió un fallo mayor y el controlador detuvo la ejecución de la lógica.

Para corregir un fallo mayor:

1. Haga clic en el botón .

2. Utilice la información de la Lista de fallos recientes para corregir la causa del fallo. Consulte “Códigos de fallo mayor” en la página A-1.

3. Haga clic en el botón Borrar mayores.

Guarde los cambios en línea

Si hace cambios al proyecto mientras está en línea, guarde el proyecto de manera que el archivo del proyecto fuera de línea coincida con el archivo del proyecto en línea:

43057

El controlador está en fallo. Ocurrió un fallo mayor y el controlador ya no ejecuta su lógica.

1.

CONSEJO También 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 desea: Haga lo siguiente:

guardar cambios en línea y valores de datos En el menú Archivo, seleccione Guardar.

guardar cambios en línea pero no valores de datos en línea

A. En el menú Comunicaciones, seleccione Ir fuera de línea.

B. En el menú Archivo, seleccione Guardar.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 217: 1756-pm001_-es-p

Capítulo 14

Comunicación con otro controlador

Cuándo usar este procedimiento

Use este procedimiento para transferir datos entre controladores (enviar o recibir datos). Puede transferir los datos usando cualquiera de estos métodos:

• Producir y consumir un tag

• Enviar un mensaje

Cómo usar este procedimiento

Seleccione un método para transferir los datos entre controladores:

Producir un tag consumido Un tag producido envía sus datos a uno o más tag consumidos (consumidores) sin usar lógica de escalera.

Si los datos: Entonces: Vea la página:

necesitan transmisión regular a una velocidad que usted especifica (por ej. determinística)

Cómo usar este procedimiento 14-1

se envían cuando ocurre una condición específica en la aplicación

Enviar un mensaje 14-11

se recolectan de múltiples controladores (y los tags consumidos no son una opción o no se desean)

Enviar un mensaje a múltiples controladores

14-13

controller_2

controller_3

controller_4

tag consumido

tag consumido

tag consumido

controller_1

tag producido

1 Publicación 1756-PM001E-ES-P - Agosto 2002

Page 218: 1756-pm001_-es-p

14-2 Comunicación con otro controlador

Usted puede producir y consumir tags con las siguientes combinaciones de controladores y redes.

Los tags producidos y consumidos funcionan de la siguiente manera:

• Una conexión transfiere los datos entre controladores:

– Múltiples controladores pueden consumir (recibir) los datos.

– Los datos se actualizan en el intervalo entre paquetes solicitados (RPI), según lo configurado por los tags de consumo.

• Cada tag producido o consumido usa el siguiente número de conexiones:

Este controlador: Puede producir y consumir tags mediante esta red:

Backplane ControlNet Ethernet

SLC 500 ✔

PLC-5 ✔

ControlLogix ✔ ✔ ✔

FlexLogix ✔

SoftLogix ✔

Cada: Usa esta cantidad de conexiones:

tag producido number_of_consumers + 1

tag consumido 1

EJEMPLO Conexiones usadas por tags producidos o consumidos

• La producción de un tag para 5 controladores (consumidores) usa 6 conexiones(5 consumidores + 1 = 6).

• La producción 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 conexión por tag x 4 tags = 4 conexiones).

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 219: 1756-pm001_-es-p

Comunicación con otro controlador 14-3

Lo que usted necesita hacer

Para compartir datos con otro controlador (s), realice estas acciones:

• Organizar los tags para datos producidos o consumidos

• Producir un tag

• Consumir un tag producido

Dependiendo del sistema, es posible que también tenga que realizar estas acciones:

• Producir enteros para un controlador PLC-5C

• Producir datos REAL para un controlador PLC-5C

• Consumir enteros desde un controlador PLC-5C

• Ajuste para limitaciones de amplitud de banda

Organizar los tags para datos producidos o consumidos

A medida que vaya creando los tags que finalmente producirán o consumirán datos (datos compartidos), siga estas pautas:

1. Cree los datos dentro del alcance del controlador. Sólo se pueden compartir tags dentro del alcance del controlador.

2. Use uno de estos tipos de datos:

• DINT

• REAL

• matriz de DINT o REAL

• definido por el usuario

3. Para compartir un tipo de datos diferente a los listados en la pauta 2., cree un tipo de datos definido por el usuario que contenga los datos requeridos.

4. Use el mismo tipo de datos para el tag producido y el tag (s) consumido correspondiente.

5. Para compartir tags con un controlador PLC-5C, use un tipo de datos definido por el usuario. Consulte estas secciones:

• Producir enteros para un controlador PLC-5C, 14-6

• Producir datos REAL para un controlador PLC-5C, 14-7

• Consumir enteros desde un controlador PLC-5C, 14-9

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 220: 1756-pm001_-es-p

14-4 Comunicación con otro controlador

6. Limite el tamaño del tag a 500 bytes o menos. Si tiene que transferir más de 500 bytes, cree lógica para transferir los datos en paquetes. Consulte “Producción de una matriz grande” en la página 15-1.

7. Si usted produce el tag mediante una red ControlNet, puede ser necesario que el tag sea de un tamaño menor que 500 bytes. Consulte “Ajuste para limitaciones de amplitud de banda” en la página 14-10.

8. Si desea producir varios tags para el mismo controlador:

• Agrupe los datos en uno o más tipos de datos definidos por el usuario. (Esto utiliza menos conexiones que producir cada tag separadamente).

• Agrupe los datos según las velocidades de actualización similares. (Para conservar el ancho de banda de la red, use un RPI mayor para datos menos críticos).

Por ejemplo, puede crear un tag para los datos críticos y otro tag para los datos no críticos.

Producir un tag

1. Abra el proyecto RSLogix 5000 que contiene el tag que usted desea producir.

2. En el menú Lógica, seleccione Editar tag.

3. Desde Alcance, seleccione name_of_controller(controlador). (Sólo los tags que están dentro del alcance del controlador pueden producir datos).

4. Seleccione el tag que producirá los datos y presione las teclas ALT + Enter.

42352

6.5.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 221: 1756-pm001_-es-p

Comunicación con otro controlador 14-5

5. Seleccione el botón de la opción Producido.

6. Escriba o seleccione el número de controladores que consumirán (recibirán) 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 página 14-5.

Consumir un tag producido

1. Abra el proyecto RSLogix 5000 que consumirá el tag producido

2. En el Organizador del controller, Configuración de I/O, añada el controlador que contiene el tag producido.

3. En el menú Lógica, seleccione Editar tag.

4. Desde Alcance, seleccione name_of_controller(controlador). (Sólo los tags que están dentro del alcance del controlador pueden consumir otros tags).

5. Seleccione el tag en este controlador que consumirá el tag producido y presione las teclas ALT + Enter.

6. Seleccione el botón de la opción Consumido.

42353

10.

6.

7.

8.

9.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 222: 1756-pm001_-es-p

14-6 Comunicación con otro controlador

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 más alto permitido para la aplicación.

• Si el controlador consume el tag mediante una red ControlNet, use un binario múltiple del tiempo de actualización de la red (NUT) ControlNet.

Por ejemplo, si el NUT es 5 ms, escriba un régimen de 5, 10, 20, 40 ms, etc.

11. Haga clic en Aceptar.

12. Si comparte el tag a través de una red ControlNet, use el software RSNetWorx para ControlNet para programar la red.

Producir enteros para un controlador PLC-5C

1. Abra el proyecto RSLogix 5000.

2. Cree un tipo de datos definido por el usuario que contenga una matriz de INT con un número par de elementos, tal como INT[2]. (Cuando se producen INT, se deben producir dos o más).

3. Cree un tag producido y seleccione el tipo de datos definido por el usuario del paso 2.

4. Abra el software RSNetWorx™ para ControlNet.

5. En la configuración ControlNet para el controlador PLC-5C de destino:

a. Inserte un Mensaje programado de recepción.

b. En el Tamaño de mensaje, introduzca el número de enteros en el tag producido.

6. En el software RSNetWorx para ControlNet, programe la red.

IMPORTANTE Si una conexión del tag consumido entra en fallo, todos los otros tags consumidos desde el controlador remoto dejan de recibir nuevos datos.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 223: 1756-pm001_-es-p

Comunicación con otro controlador 14-7

Producir datos REAL para un controlador PLC-5C

1. Abra el proyecto RSLogix 5000.

2. ¿Cuántos valores desea producir?

3. Abra el software RSNetWorx para ControlNet.

4. En la configuración ControlNet para el controlador PLC-5C de destino:

a. Inserte un Mensaje programado de recepción.

b. En el Tamaño de mensaje, introduzca dos veces el número de REAL en el tag producido. Por ejemplo, si el tag producido contiene 10 REAL, introduzca 20 para el tamaño de mensaje.

Si desea producir: Entonces:

Sólo un valor REAL Cree un tag producido y seleccione el tipo de datos REAL.

Más de un valor REAL A. Cree un tipo de datos definido por el usuario que contenga una matriz de REAL.

B. Cree un tag producido y seleccione el tipo de datos definido por el usuario del paso A.

CONSEJO Cuando un controlador PLC-5C consume un tag producido por un controlador Logix5000, almacena los datos en números enteros consecutivos de 16 bits. El PLC-5C almacena los datos de coma flotante, el cual requiere 32 bits independientemente del tipo de controlador, según lo siguiente:

• El primer número entero contiene los bits superiores (del extremo izquierdo) del valor.

• El segundo número entero contiene los bits inferiores (del extremo derecho) del valor.

• Esta configuración continúa para cada valor de coma flotante.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 224: 1756-pm001_-es-p

14-8 Comunicación con otro controlador

5. En el controlador PLC-5C, vuelva a construir los datos de coma flotante según se ilustra en el siguiente ejemplo:

6. En el software RSNetWorx para ControlNet, programe la red.

EJEMPLO Cómo volver a construir un valor de coma flotante

Las dos instrucciones MOV invierten el orden de los números enteros a la vez que éstos se transfieren a otro lugar. Puesto que el destino de la instrucción COP es una dirección de coma flotante, usa dos números enteros consecutivos (un total de 32 bits) y los convierte a un solo valor de coma flotante.

42354

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 225: 1756-pm001_-es-p

Comunicación con otro controlador 14-9

Consumir enteros desde un controlador PLC-5C

1. Abra el software RSNetWorx para ControlNet.

2. En la configuración ControlNet del controlador PLC-5C, inserte Enviar mensaje programado.

3. Abra el proyecto RSLogix 5000.

4. En el Organizador del controlador, añada el controlador PLC-5C a la configuración de E/S.

5. Cree un tipo de datos definido por el usuario que contenga los siguientes miembros:

6. Cree un tag consumido con las propiedades siguientes:

7. En el software RSNetWorx para ControlNet, programe la red.

Tipo de datos: Descripción:

DINT Estado

INT[x], donde “x” es el tamaño de salida de los datos desde el controlador PLC-5C. (Si consume solamente un INT, no se requieren dimensiones.)

Datos producidos por un controlador PLC-5C

Para esta propiedad de tag:

Escriba o seleccione:

Tipo de tag consumido

Controller El PLC-5C que produce los datos

Instancia remota El número de mensaje de la configuración ControlNet del controlador PLC-5C.

RPI Una potencia de dos veces el NUT de la red ControlNet. Por ejemplo, si el NUT es 5 ms, seleccione un RPI de 5, 10, 20, 40, etc.

Data Type El tipo de datos definido por el usuario que creó en el paso 5.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 226: 1756-pm001_-es-p

14-10 Comunicación con otro controlador

Ajuste para limitaciones de amplitud de banda

Cuando comparte un tag mediante una red ControlNet, el tag también debe se apropiado para el ancho de banda de la red:

• A la vez que aumenta el número de conexiones mediante una red ControlNet, puede ser necesario que varias conexiones, incluso los tags producidos o consumidos, tengan que compartir un tiempo de actualización de red (NUT).

• Puesto que una red ControlNet puede pasar solamente 500 bytes durante un NUT, los datos de cada conexión deben tener menos de 500 bytes para incorporarse el NUT.

Dependiendo del tamaño del sistema, es posible que no tenga suficiente amplitud de banda en la red ControlNet para un tag de 500 bytes. Si un tag es demasiado grande para la red ControlNet, realice uno o más de los ajustes siguientes:

• Reduzca el tiempo de actualización de la red (NUT). Un NUT más rápido reduce el número de conexiones que deben compartir una ranura de actualización.

• Aumente el intervalo entre paquetes solicitados (RPI) de las conexiones. Los RPI más altos permiten que las conexiones se alternen en el envío datos durante una ranura de actualización.

• Para un módulo de puente ControlNet (CNB) en un chasis remoto, seleccione el formato de comunicación más eficaz para dicho chasis:

El formato de optimización de racks usa 8 bytes adicionales para cada ranura en su chasis. Los módulos analógicos o los módulos que envían o reciben datos de diagnósticos, de fusible, sello de hora o priorización requieren conexiones directas y no pueden usar el formato de rack optimizado. La selección “Ninguno” hace disponibles 8 bytes por ranura para otros usos, tales como tags producidos o consumidos.

• Separe el tag en dos o más tags:

– Agrupe los datos según las velocidades de actualización similares. Por ejemplo, puede crear un tag para los datos críticos y otro tag para los datos no críticos.

– Asigne un RPI diferente a cada tag.

• Cree lógica para transferir los datos en secciones más pequeñas (paquetes). Consulte “Producción de una matriz grande” en la página 15-1.

¿Son la mayoría de los módulos en el chasis módulos de E/S digitales sin diagnósticos?

Entonces seleccione este formato de la comunicación para el módulo CNB remoto:

Sí Optimización de racks

No Ninguno

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 227: 1756-pm001_-es-p

Comunicación con otro controlador 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:

2. Para los tags que los mensajes usarán (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 más eficientemente y usan menos memoria cuando trabajan con enteros de 32 bits (DINT).

EJEMPLO Mensaje a otro controlador Logix5000

Cuando count_send está activado, count_msg envía los datos.

42188

count_send

/count_msg.en

ENDNER

Type - UnconfiguredMessage Control count_msg ...

MSG

Tipo: MESSAGEAlcance: Controlador

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 228: 1756-pm001_-es-p

14-12 Comunicación con otro controlador

4. Si su mensaje es desde un controlador PLC-5® o SLC 500™ y transfiere enteros (no REAL), use un búfer de INT:

a. Cree un búfer para los datos (alcance del controlador) usando el tipo de datos INT[x].

donde:

x es el número de enteros en el mensaje. (Para un entero solamente, omita [x].)

b. Use el búfer en el mensaje.

c. Use una instrucción FAL para mover los datos entre el búfer y la aplicación.

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 instrucción de mensaje envía int_buffer a un controlador PLC-5.

42192

Leer valores enteros desde un controlador PLC-5.

Lee continuamente valores enteros de 16 bits (INT) desde un controlador PLC-5 y los almacena en int_buffer. Luego la instrucción FAL mueve los valores a dint_array. Esto convierte los valores a enteros de 32 bits (DINT) para ser usados por otras instrucciones del proyecto.

42192

/message.EN

RESfal_control

EN

DN

ER

File Arith/LogicalControl fal_controlLength ?Position 0Mode allDest int_buffer[fal_control.pos] ??Expression dint_array[fal_control.pos]

FALENDNER

Type - UnconfiguredMessage Control message ...

MSG

/message.EN

ENDNER

Type - UnconfiguredMessage Control message ...

MSG

message.DN

RESfal_control

EN

DN

ER

File Arith/LogicalControl fal_controlLength ?Position 0Mode allDest dint_array[fal_control.pos] ??Expression int_buffer[fal_control.pos]

FAL

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 229: 1756-pm001_-es-p

Comunicación con otro controlador 14-13

Enviar un mensaje a múltiples controladores

Use el siguiente procedimiento para programar una instrucción de mensaje para comunicarse con múltiples controladores. Para reconfigurar una instrucción MSG durante el tiempo de ejecución, escriba nuevos valores a los miembros del tipo de datos MESSAGE.

A. Si usted usa un asterisco [*] para designar el número de

elemento de la matriz, el valor en proporciona el número de

elemento.

B. El cuadro Índice sólo está disponible cuando usted usa un asterisco [*] en el Elemento de origen o en el Elemento de destino. La instrucción substituye el valor del Índice por el asterisco [*].

IMPORTANTE En el tipo de datos MESSAGE, el miembro RemoteElement almacena el nombre del tag o dirección de los datos en el controlador que recibe el mensaje.

Si el mensaje: Entonces RemoteElement es el:

lee datos Elemento de origen

escribe datos Elemento de destino

Nombre de tag

message

message.RemoteElement.

message.RemoteIndex.

message.LocalIndex.

message.Channel.

message.Rack.

message.Group.

message.Slot.

message.Path.

+

+

+

+

+

+

+

+

43052

A B

B

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 230: 1756-pm001_-es-p

14-14 Comunicación con otro controlador

Para enviar un mensaje a múltiples controladores:

• Establecer la configuración de E/S

• Definir los elementos de origen y destino

• Crear el tipo de datos MESSAGE_CONFIGURATION

• Crear la matriz de configuración

• Obtener el tamaño de la matriz local

• Cargar las propiedades del mensaje para un controlador

• Configurar el mensaje

• Ir al siguiente controlador

• Reiniciar la secuencia

Establecer la configuración de E/S

Aunque no es un requisito, recomendamos que añada los módulos de comunicación y los controladores remotos a la configuración de E/S del controlador. Esto facilita definir la ruta de acceso a cada controlador remoto.

Por ejemplo, una vez que usted añade el módulo de comunicación local, el modulo de comunicación remoto y el controlador de destino, el botón Examinar le permite seleccionar el destino.

CONSEJO Para copiar los componentes anteriores desde un ejemplo de proyecto, abra la carpeta …\RSLogix 5000\Proyectos\Ejemplos.

43055

Abra este proyecto.

MSG_to_Multiple_Controllers.ACD

Examinador de ruta de acceso a mensaje

Ruta de acceso:

peer_controller

peer_controller

Configuración de I/O

[0] 1756-CNB/x Local_CNB

2 [0] 1756-CNB/x chassis_b

[1] 1756-L55/x peer_controller

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 231: 1756-pm001_-es-p

Comunicación con otro controlador 14-15

Definir los elementos de origen y destino

En este procedimiento, una matriz almacena los datos que se leen desde, o se escriben hacia, cada controlador remoto. Cada elemento en la matriz corresponde a un controlador remoto diferente.

1. Use la siguiente hoja de trabajo para organizar los nombres de tags en los controladores locales y remotos:

2. Cree el tag local_array, que almacena los datos en este controlador.

Nombre del controlador remoto: Tag o dirección de los datos en el controlador remoto:

Tag en este controlador:

local_array[0]

local_array[1]

local_array[2]

local_array[3]

Nombre de tag Tipo

local_array data_type [length ]donde:data_type es el tipo de datos que el mensaje envía o recibe, tal como DINT, REAL o STRING.length es el número de elementos en la matriz local.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 232: 1756-pm001_-es-p

14-16 Comunicación con otro controlador

Crear el tipo de datos MESSAGE_CONFIGURATION

En este procedimiento, usted crea un tipo de datos definido por el usuario para almacenar las variables de configuración para el mensaje a cada controlador.

• Algunos de los miembros requeridos del tipo de datos, usan el tipo de datos de cadena.

• El tipo de datos STRING predeterminado almacena 82 caracteres.

• Si las rutas de acceso o nombres de tags remotos o direcciones tienen menos de 82 caracteres, usted tiene la opción de crear un nuevo tipo de cadena que almacena menos caracteres. Esto permite conservar la memoria.

• Para crear un nuevo tipo de cadena, seleccione Archivo ⇒ Nuevo componente ⇒ Tipo de cadena…

• Si usted crea un nuevo tipo de cadena, úselo en lugar del tipo de datos STRING en este procedimiento.

Para almacenar las variables de configuración para el mensaje a cada controlador, cree el siguiente tipo de datos definido por el usuario.

Tipo de datos:MESSAGE_CONFIGURATION

nombre MESSAGE_CONFIGURATION

descripción Propiedades de configuración para un mensaje a otro controlador

Miembros

nombre tipo de datos

estilo descripción

ruta de acceso cadena

RemoteElement cadena

Para crear un nuevo tipo de datos:

Controller Your_Project

Tasks

Motion Groups

Tendencias

Data Types

Definido por el usuario

Haga clic con el botón derecho del mouse y seleccione Nuevo Data Type.

+

+

+

+

+

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 233: 1756-pm001_-es-p

Comunicación con otro controlador 14-17

Crear la matriz de configuración

En este procedimiento, usted almacena las propiedades de configuración para cada controlador en una matriz. Antes de cada ejecución de la instrucción MSG, la lógica carga nuevas propiedades en la instrucción. Esto envía el mensaje a un controlador diferente.

Figura 14.1 Cargar nuevas propiedades de configuración en una instrucción MSG

Pasos:

1. Para guardar las propiedades de configuración del mensaje, cree la siguiente matriz:

donde:

number es el número de controladores a dónde enviar el mensaje.

Propiedades del mensaje

message

message.Path.

message.RemoteElement.

+

+

Matriz de configuración

message_config

message_config[0]

message_config[0].Path

message_config[0].RemoteElement

message_config[1]

message_config[1].Path

message_config[1].RemoteElement

+

+

+

+

primera ejecución del mensaje

siguiente ejecución del mensaje

Propiedades del mensaje

message

message.Path.

message.RemoteElement.

+

+

Nombre de tag Tipo alcance

message_config MESSAGE_CONFIGURATION[number ] cualquiera

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 234: 1756-pm001_-es-p

14-18 Comunicación con otro controlador

2. En la matriz message_config, introduzca la ruta de acceso al primer controlador que recibe el mensaje.

3. En la matriz message_config, introduzca el nombre del tag o dirección de los datos en el primer controlador que va a recibir el mensaje.

Nombre de tag valor

message_config {…}

message_config[0] {…}Haga clic con el botón derecho del mouse y seleccione Ir a Editor de ruta de mensaje. message_config[0].Path

message_config[0].RemoteElement

+

+

Escriba la ruta de acceso al controlador remoto.

Examinador de ruta de acceso a mensaje

Ruta de acceso:

o bien peer_controller

Desplácese hasta el controlador remoto.

Configuración de I/O

Nombre de tag valor

message_config {…}

message_config[0] {…}

message_config[0].Path

message_config[0].RemoteElement

message_config[1] {…}

message_config[1].Path

message_config[1].RemoteElement

+

+ ...

Escriba el nombre del tag o dirección de los datos en el otro controlador.

+

+

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 235: 1756-pm001_-es-p

Comunicación con otro controlador 14-19

4. Introduzca la ruta de acceso y elemento remoto para cada controlador adicional.

Obtener el tamaño de la matriz local

1. La instrucción SIZE cuenta el número de elementos en local_array.

2. La instrucción SIZE cuenta el número de elementos en la Dimensión 0 de la matriz. En este caso, esa es la única dimensión.

3. Local_array_length almacena el tamaño (número de elementos) de local_array. Este valor le indica a un renglón subsiguiente cuando el mensaje ha sido enviado a todos los controladores y que comience con el primer controlador nuevamente.

Nombre de tag valor

message_config {…}

message_config[0] {…}

message_config[0].Path

message_config[0].RemoteElement

message_config[1] {…}

message_config[1].Path

message_config[1].RemoteElement

+

+

+

+

1.

43051

2.3.

Nombre de tag Tipo

local_array_length DINT

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 236: 1756-pm001_-es-p

14-20 Comunicación con otro controlador

Cargar las propiedades del mensaje para un controlador

1. Esta instrucción XIO condiciona al renglón para que envíe continuamente el mensaje.

2. La instrucción COP carga la ruta de acceso para el mensaje. El valor de índice determina cuál elemento carga la instrucción desde message_config. Vea la Figura 14.1 en la página 14-17.

3. La instrucción carga 1 elemento desde message_config.

4. La instrucción COP carga el nombre del tag o dirección de los datos en el controlador que recibe el mensaje. El valor de índice determina cuál elemento la instrucción carga desde message_config. Vea la Figura 14.1 en la página 14-17.

5. La instrucción carga 1 elemento desde message_config.

6. Instrucción MSG

43051

2.

3.

4.

5.

6.

1.

Nombre de tag Tipo alcance

mensaje MESSAGE controlador

Nombre de tag Tipo alcance

índice DINT cualquiera

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 237: 1756-pm001_-es-p

Comunicación con otro controlador 14-21

Configurar el mensaje

Aunque la lógica controla el elemento remoto y la ruta de acceso para el mensaje, el cuadro de diálogo Propiedades de message requiere una configuración inicial.

IMPORTANTE

En esta ficha: Si desea: Para este ítem: Escriba o seleccione:

Configuración leer (recibir) datos desde otros controladores

Tipo de message el tipo de lectura que corresponde a los otros controladores

Elemento de origen tag o dirección que contiene los datos en el primer controlador

Número de elementos 1

Tag de destino local_array[*]

índice 0

escribir (enviar) datos a los otros controladores

Tipo de message el tipo de escritura que corresponde a los otros controladores

Tag de origen local_array[*]

índice 0

Número de elementos 1

Elemento de destino tag o dirección que contiene los datos en el primer controlador

Comunicación ruta de acceso ruta de acceso al primer controlador

Conexiones Caché Borre la casilla de verificación Conexión Caché. Puesto que este procedimiento continuamente cambia la ruta de acceso al mensaje, es más eficiente borrar esta casilla de verificación.

43054

Borre la casilla de verificación Conexión Caché.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 238: 1756-pm001_-es-p

14-22 Comunicación con otro controlador

Ir al siguiente controlador

1. Después que la instrucción MSG envía el mensaje...

2. La instrucción ADD incrementa el índice. Esto permite que la lógica cargue las propiedades de configuración para el siguiente controlador en la instrucción MSG.

3. La instrucción ADD incrementa el miembro LocalIndex de la instrucción MSG. Esto permite que la lógica cargue el valor desde el siguiente controlador al siguiente elemento de local_array..

Reiniciar la secuencia

1. Cuando el índice es igual a local_array_length, el controlador envió el mensaje a todos los otros controladores.

2. Esta instrucción CLR establece el índice en un valor igual a 0. Esto permite que la lógica cargue las propiedades de configuración para el primer controlador en la instrucción MSG y que comience la secuencia de mensajes nuevamente.

3. La instrucción CLR establece el miembro LocalIndex de la instrucción MSG en un valor igual a 0. Esto permite que la lógica cargue el valor desde el primer controlador en el primer elemento de local_array..

1. 2. 3.

43051

1. 2. 3.

43051

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 239: 1756-pm001_-es-p

Capítulo 15

Producción de una matriz grande

Cuándo usar este procedimiento

El controlador Logix5550 puede enviar hasta 500 bytes de datos a través de una sola conexión programada. Esto corresponde a 125 elementos DINT o REAL de una matriz. Para transferir una matriz con más 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 envía una matriz grande de datos en paquetes más pequeños, hay que asegurarse de que la transmisión 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 envían en segmentos de 50 bytes.

• La transmisión de datos ocurren asíncronamente con el escán del programa.

La lógica de esta sección usa una palabra de confirmación para asegurar que cada paquete contenga nuevos datos antes de que los datos se transfieran a la matriz de destino. La lógica también 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, según se muestra a continuación:

matriz

0

123124

paquete

offsetconfirmación

matrizpaquete

offsetconfirmación

Productor Consumidor

1 Publicación 1756-PM001E-ES-P - Agosto 2002

Page 240: 1756-pm001_-es-p

15-2 Producción de una matriz grande

Además, la matriz debe contener 122 elementos adicionales. Es decir, debe tener 122 elementos más que el número mayor de elementos que usted desea transferir:

• Estos elementos sirven como búfer.

• Puesto que cada paquete contiene el mismo número de elementos, el búfer evita que el controlador copie más allá de los límites de la matriz.

• Sin el búfer, esto ocurriría si el último paquete contuviera menos de 123 elementos de datos reales.

Para producir una matriz grande

1. Abra el proyecto RSLogix 5000 que producirá la matriz.

2. En la carpeta Tags del controller, cree los tags siguientes:

donde:

array es el nombre para los datos que usted envía.

3. Convierta array_ack a un tag consumido:

Véase Consumir un tag producido en la página 14-5.

P Nombre de tag Tipo

array_ack DINT[2]

✓ array_packet DINT[125]

Para: Especifique:

Controlador nombre del controlador que está recibiendo el paquete

Nombre de tag remoto array_ack

Ambos controladores usan el mismo nombre para este dato compartido.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 241: 1756-pm001_-es-p

Producción de una matriz grande 15-3

4. Cree los tags siguientes en la carpeta Tag de Controller o la carpeta de tags del programa que contendrá la lógica de la transferencia:

donde:

array es el nombre para los datos que usted envía.

5. En el tag array_size, introduzca el número de elementos de datos reales. (El valor de x del paso 4. menos los 122 elementos del búfer).

6. Cree o abra una rutina para la lógica que creará paquetes de datos.

7. Introduzca la lógica siguiente:

Nombre de tag Tipo

matriz DINT[x] donde x es igual al número de elementos a transferir más 122 elementos

array_offset DINT

array_size DINT

array_transfer_time DINT

array_transfer_time_max DINT

array_transfer_timer TIMER

Multiplicado por el tiempo necesario para enviar todo la matriz

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.

ENDN

Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0

TON

Not EqualSource A array_ack[0]

0Source B array_packet[123]

0

NEQEqualSource A array_ack[1]

0Source B -999

EQUMoveSource -999

Dest array_packet[124]0

MOV

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 242: 1756-pm001_-es-p

15-4 Producción de una matriz grande

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 renglón busca para ver si hay más datos a transferir. Si el valor de offset más 123 es menor que el tamaño de la matriz, hay más datos que transferir; por lo tanto, el renglón aumenta el offset en 123. De lo contrario, no hay más datos que transferir; por lo tanto, el renglón restablece el valor de offset, registra el tiempo de transferencia y restablece el temporizador. En ambos casos, el renglón usa el valor de offset nuevo para crear un paquete nuevo de datos, añade el valor de offset nuevo al paquete y borra el elemento de confirmación del paquete (packet[124]).

Si el tiempo de transferencia actual es mayor que el tiempo de transferencia máximo, éste se actualiza. Esto mantiene un registro del tiempo máximo necesario para transferir los datos.

42355

EqualSource A array_ack[0]

0Source B array_packet[123]

0

EQU

CompareExpression (array_ack[0] + 123) < array_size

CMPAddSource A array_packet[123]

0Source B 123

Dest array_offset0

ADD

CompareExpression (array_ack[0] + 123) >= array_size

CMPClearDest array_offset

0

CLR

MoveSource array_transfer_timer.ACC

0Dest array_transfer_time

0

MOV

RESarray_transfer_timer

Copy FileSource array[array_offset]Dest array_packet[0]Length 123

COPMoveSource array_offset

0Dest array_packet[123]

0

MOVClearDest array_packet[124]

0

CLR

Greater Than (A>B)Source A array_transfer_time

0Source B array_transfer_time_max

0

GRTMoveSource array_transfer_time

0Dest array_transfer_time_max

0

MOV

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 243: 1756-pm001_-es-p

Producción de una matriz grande 15-5

8. Abra el proyecto RSLogix 5000 que consumirá la matriz.

9. En la carpeta Tag de Controller, cree los tags siguientes:

donde:

array es el nombre para los datos que usted envía. Use el mismo nombre que en el controlador que produce (paso 2.).

10. Convierta array_packet a un tag consumido:

Véase Consumir un tag producido en la página 14-5.

11. Cree los tags siguientes en la carpeta Tag de Controller o la carpeta de tags del programa que contendrá la lógica de la transferencia:

donde:

array es el nombre para los datos que usted envía.

12. Cree o abra una rutina para la lógica que moverá los datos desde los paquetes a la matriz de destino.

P Nombre de tag Tipo

✓ array_ack DINT[2]

array_packet DINT[125]

Para: Especifique:

Controlador nombre del controlador que está enviando el paquete

Nombre de tag remoto array_packet

Ambos controladores usan el mismo nombre para este dato compartido.

Nombre de tag Tipo

arreglo DINT[x] donde x es igual al número de elementos a transferir más 122 elementos

array_offset DINT

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 244: 1756-pm001_-es-p

15-6 Producción de una matriz grande

13. Introduzca la lógica 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 renglón 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 operación 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 operación 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 transmisión del paquete.

42356

Not EqualSource A array_packet[123]

0Source B array_ack[0]

0

NEQ

EqualSource A array_packet[124]

0Source B -999

EQUMoveSource array_packet[123]

0Dest array_offset

0

MOV

Copy FileSource array_packet[0]Dest array[array_offset]Length 123

COP

MoveSource array_packet[123]

0Dest array_ack[0]

0

MOV

ClearDest array_ack[1]

0

CLR

Not EqualSource A array_packet[124]

0Source B -999

NEQMoveSource -999

Dest array_ack[1]0

MOV

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 245: 1756-pm001_-es-p

Producción de una matriz grande 15-7

La transferencia de una matriz grande en paquetes más pequeños mejora el rendimiento del sistema y es más eficaz que otros métodos de transferir datos:

• Se usan menos conexiones, a diferencia de separar los datos en múltiples 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 transmisión más rápidas usando este método, a diferencia de usar una instrucción de mensaje para enviar todo la matriz.

– Se programa y se ejecutan los mensajes solamente durante la porción de “tiempo de procesamiento interno” de la ejecución 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.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 246: 1756-pm001_-es-p

15-8 Producción de una matriz grande

Notas:

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 247: 1756-pm001_-es-p

Capítulo 16

Comunicación con un dispositivo ASCII

Cuándo usar este procedimiento

Use este procedimiento para intercambiar datos ASCII con un dispositivo a través del puerto en serie del controlador. Por ejemplo, puede usar el puerto en serie para:

• leer caracteres ASCII desde un módulo de báscula o lector de códigos de barra

• enviar y recibir mensajes desde un dispositivo activado ASCII, tal como un terminal MessageView.

Cómo usar este procedimiento

Antes de usar este procedimiento:

• Configure el dispositivo ASCII para su aplicación

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

• Envíe los caracteres al dispositivo

conexión del puerto en serie del controlador al dispositivo ASCII

42237

1 Publicación 1756-PM001E-ES-P - Agosto 2002

Page 248: 1756-pm001_-es-p

16-2 Comunicación con un dispositivo ASCII

Conecte el dispositivo ASCII

1. Para el puerto en serie del dispositivo ASCII, determine cuáles pines envían señales y cuáles reciben señales.

2. Conecte los pines de envío a los pines de recepción correspondientes y conecte los puentes:

3. Conecte el blindaje del cable a los dos conectores

4. Conecte el cable al controlador y al dispositivo ASCII.

Si las comunicaciones:

Entonces cablee los conectores así:

tienen handshaking

no tienen handshaking

2 RDX

3 TXD

4 DTR

COMMON

6 DSR

7 RTS

8 CTS

9

1 CD

2 RDX

3 TXD

4 DTR

COMMON

6 DSR

7 RTS

8 CTS

9

1 CD

Dispositivo ASCII Controlador

42231

2 RDX

3 TXD

4 DTR

COMMON

6 DSR

7 RTS

8 CTS

9

1 CD

2 RDX

3 TXD

4 DTR

COMMON

6 DSR

7 RTS

8 CTS

9

1 CD

Dispositivo ASCII Controlador

42232

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 249: 1756-pm001_-es-p

Comunicación con un dispositivo ASCII 16-3

Configure el puerto en serie 1. Determine los siguientes parámetros de comunicación para el dispositivo ASCII:

a. velocidad en baudios

b. bits de datos

c. paridad

d. bits de paro

2. Abra el proyecto RSLogix 5000™.

3. En la barra de herramientas En línea, haga clic en el botón del controlador.

4. Haga clic en la ficha Puerto en serie.

5. Seleccione Usuario.

6. Seleccione los parámetros para el dispositivo ASCII del paso 1.

42627

5.

42251

6.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 250: 1756-pm001_-es-p

16-4 Comunicación con un dispositivo ASCII

7. Seleccione la opción Línea de control:

8. Introduzca la cantidad de retardo (unidades de 20 ms) entre el tiempo de activación (alto) de la señal RTS y el tiempo en que se envían 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 envío del último carácter y el tiempo en que se desactiva (bajo) la señal RTS.

10. Haga clic en Aplicar.

42251

7.

8.

9.

Si: Y: Y éste es el: Seleccione: Entonces:

usted no usa un módem

Sin handshaking Vaya al paso 10

usted usa un módem los dos módems en una conexión punto a punto son full-duplex

Full Duplex

el módem maestro es full-duplex y el módem esclavo es half-duplex

controlador maestro. Full Duplex

controlador esclavo. Half Duplex Seleccione la casilla de verificación Portador continuo.

todos los módems en el sistema son half-duplex

Half Duplex Borre la casilla de verificación Portador continuo (opción predeterminada).

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 251: 1756-pm001_-es-p

Comunicación con un dispositivo ASCII 16-5

Configure el protocolo del usuario

1. Haga clic en la ficha Protocolo del usuario.

2. Seleccione o introduzca un número mayor que o igual al número mayor de caracteres en una transmisión. (Una pauta general es dos veces el número de caracteres.)

3. Si usted usa las instrucciones ABL o ARL, introduzca los caracteres que indican el fin de los datos. Para obtener el código ASCII de un carácter, vea la contraportada de este manual.

Si el dispositivo envía:

Entonces: Notas:

un carácter de terminación

A. En el cuadro de texto Carácter de terminación 1, introduzca el código ASCII hexadecimal para el primer carácter.

B. En el cuadro de texto Carácter de terminación 2, introduzca $FF.

Para los caracteres imprimibles, tales como 1 ó A, introduzca el carácter.

dos caracteres de terminación

En los cuadros de texto Carácter de terminación 1 y 2, introduzca el código ASCII hexadecimal para cada carácter.

2.

42252

3.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 252: 1756-pm001_-es-p

16-6 Comunicación con un dispositivo ASCII

4. Si usa la instrucción AWA, introduzca los caracteres que desea añadir a los datos.Para obtener el código ASCII de un carácter, vea la contraportada de este manual.

5. Si el dispositivo ASCII está configurado para el control de flujo XON/XOFF, seleccione la casilla de verificación XON/XOFF.

6. Si el dispositivo ASCII es una CRT o está preconfigurado para la transmisión half-duplex, seleccione la casilla de verificación Modo eco.

Para añadir: Entonces: Notas:

un carácter A. En el cuadro de texto Caracteres añadidos 1, introduzca el código ASCII hexadecimal para el primer carácter.

B. En el cuadro de texto Caracteres añadidos 2, introduzca $FF.

Para los caracteres imprimibles, tales como 1 ó A, introduzca el carácter.

dos caracteres En los cuadros de texto Caracteres añadidos 1 y 2, introduzca el código ASCII hexadecimal para cada carácter.

42252

7.

4.

5.

6.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 253: 1756-pm001_-es-p

Comunicación con un dispositivo ASCII 16-7

7. Seleccione el modo eliminación:

8. Haga clic en Aceptar.

Si el dispositivo ASCII es:

Seleccione: Notas:

CRT CRT • El carácter DEL ($7F) y el carácter precedente al carácter DEL no se envían al destino.

• Si se selecciona el modo eco y la instrucción ASCII lee el carácter DEL, el eco devuelve tres caracteres: BACKSPACE SPACE BACKSPACE ( $08 $20 $08).

impresora Impresora • El carácter DEL ($7F) y el carácter precedente al carácter DEL no se envían al destino.

• Si se selecciona el modo eco y la instrucción ASCII lee el carácter DEL, el eco devuelve dos caracteres: / ($2F) seguido por el carácter eliminado.

Ninguno de los anteriores Ignorar El carácter DEL ($7F) es como cualquier otro carácter.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 254: 1756-pm001_-es-p

16-8 Comunicación con un dispositivo ASCII

Cree tipos de datos de cadena

Los caracteres ASCII se almacenan en tags que usan un tipo de datos de cadena.

1. ¿Desea crear un nuevo tipo de datos de cadena?

2. En el organizador del controller, haga clic con el botón 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 máximo número de caracteres que este tipo de datos de cadena almacenará.

5. Seleccione Aceptar.

42811

42812

o bienPuede usar el tipo de datos STRING predeterminado. Éste almacena hasta 82 caracteres.

Puede crear un nuevo tipo de datos de cadena para almacenar el número de caracteres definido.

IMPORTANTE Tenga cuidado cuando cree un nuevo tipo de datos de cadena. Si posteriormente decide cambiar el tamaño del tipo de datos de cadena, puede perder datos en cualquier tag que actualmente use ese tipo de datos.

Si: Entonces:

no Vaya a Lea los caracteres desde el dispositivo en la página 16-9.

sí Vaya al paso 2.

Si usted: Entonces:

hace un tipo de datos de cadena más pequeño

• Los datos se truncan.• LEN no se cambia.

hace un tipo de datos de cadena más grande

El dato y LEN se restablecen a cero.

42233

3.

4.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 255: 1756-pm001_-es-p

Comunicación con un dispositivo ASCII 16-9

Lea los caracteres desde el dispositivo

Por lo general, antes de leer el búfer, se recomienda usar una instrucción ACB o ABL para verificar que el búfer tenga los caracteres requeridos:

• Una instrucción ARD o ARL continúa leyendo el búfer hasta que la instrucción lee los caracteres requeridos.

• Mientras una instrucción ARD o ARL lee el búfer, no se pueden ejecutar otras instrucciones del puerto en serie ASCII, excepto la instrucción ACL.

• El verificar que el búfer tenga los caracteres requeridos evita que la instrucción ARD o ARL interrumpa la ejecución de las otras instrucciones del puerto en serie ASCII mientras el dispositivo de entrada envía los datos.

Para obtener información adicional sobre las instrucciones del puerto en serie ASCII, consulte Logix5000 Controllers General Instructions Reference Manual, publicación 1756-RM003.

1. ¿Qué tipo de dispositivo está leyendo?

2. Introduzca el siguiente renglón:

42235a

3. Introduzca 0. (El puerto en serie es el canal 0).

4. Introduzca un nombre de tag para la instrucción ACB y defina el tipo de datos como SERIAL_PORT_CONTROL.

5. Introduzca el bit EN del tag ACB. (El tag del paso 4.)

IMPORTANTE Si no está familiarizado con la introducción de lógica de escalera en un proyecto RSLogix 500, primero revise “Programación de rutinas” en la página 4-1.

Si el dispositivo es un/una: Entonces:

lector de códigos de barra Vaya al paso 2.

báscula que envía un número fijo de caracteres

terminal de mensajes o pantalla Vaya al paso 14.

báscula que envía un número variable de caracteres

5.

4. 3.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 256: 1756-pm001_-es-p

16-10 Comunicación con un dispositivo ASCII

6. Introduzca el siguiente renglón:

42235a

7. Introduzca el miembro POS del tag ACB. (El tag del paso 4.)

8. Introduzca el número 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 instrucción ARD y defina el tipo de datos como SERIAL_PORT_CONTROL.

12. Introduzca el número de caracteres en los datos.

11.

10. 9.

12.7. 8.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 257: 1756-pm001_-es-p

Comunicación con un dispositivo ASCII 16-11

13. ¿Desea enviar datos al dispositivo?

EJEMPLO Un lector de códigos de barra envía códigos de barra al puerto en serie (canal 0) del controlador. Cada código de barra contiene 24 caracteres. Para determinar cuándo el controlador recibe un código de barras, la instrucción ACB cuenta continuamente los caracteres en el búfer.

Cuando el búfer contiene por lo menos 24 caracteres, el controlador ha recibido un código de barras. La instrucción ARD mueve el código de barras al tag bag_bar_code.

/bar_code_count.EN

ENDNER

ASCII Chars in BufferChannel 0SerialPort Control bar_code_countCharacter Count 0

ACB

Grtr Than or Eql (A>=B)Source A bar_code_count.pos 0Source B 24

GEQEN

DN

ER

ASCII ReadChannel 0Destination bag_bar_code ''SerialPort Control bar_code_readString Length 24Characters Read 0

ARD

42227

Si: Entonces:

sí Vaya a Envíe los caracteres al dispositivo en la página 16-14.

no Deténgase. Ya terminó con este procedimiento. Para usar los datos vaya a Procesamiento de caracteres ASCII” en la página 17-1.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 258: 1756-pm001_-es-p

16-12 Comunicación con un dispositivo ASCII

14. Introduzca el siguiente renglón:

42235

15. Introduzca 0.

16. Introduzca un nombre de tag para la instrucción 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 renglón:

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 instrucción ARL y defina el tipo de datos como SERIAL_PORT_CONTROL.

23. Introduzca 0.

Esto permite que la instrucción establezca la longitud de control de SerialPort igual al tamaño del destino.

17.

16. 15.

21. 20.

22. 23.

19.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 259: 1756-pm001_-es-p

Comunicación con un dispositivo ASCII 16-13

24. ¿Desea enviar datos al dispositivo?

EJEMPLO Continuamente prueba el búfer 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 carácter de terminación en el cuadro de diálogo Propiedades del controller, ficha Protocolo de usuario.

• Cuando ABL encuentra un retorno de carro, establece el bit FD.

Cuando la instrucción ABL encuentra el retorno de carro (MV_line.FD se establece), el controlador retira los caracteres del búfer, hasta e incluyendo el retorno de carro, y los coloca en el tag MV_msg.

/MV_line.EN

ENDNER

ASCII Test For Buffer LineChannel 0SerialPort Control MV_lineCharacter Count 0

ABL

MV_line.FD

EN

DN

ER

ASCII Read LineChannel 0Destination MV_msg ''SerialPort Control MV_readString Length 12Characters Read 0

ARL

42226

Si: Entonces:

sí Vaya a Envíe los caracteres al dispositivo en la página 16-14.

no Deténgase. Ya terminó con este procedimiento. Para usar los datos vaya a “Procesamiento de caracteres ASCII” en la página 17-1.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 260: 1756-pm001_-es-p

16-14 Comunicación con un dispositivo ASCII

Envíe los caracteres al dispositivo

1. Determine dónde empezar:

2. Introduzca el siguiente renglón:

42236a

3. Introduzca la(s) condición(es) de entrada que determina(n) cuándo se van a enviar los caracteres:

• Puede usar cualquier tipo de instrucción de entrada.

• La instrucción 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 instrucción AWA y defina el tipo de datos como SERIAL_PORT_CONTROL.

7. Introduzca el número de caracteres que se envían. Omita los caracteres añadidos por la instrucción.

Si usted: Y: Entonces:

siempre envía el mismo número de caracteres

desea añadir uno o dos caracteres al fin de los datos

Vaya al paso 2

no desea añadir caracteres Vaya al paso 9

envía números diferentes de caracteres

desea añadir uno o dos caracteres al fin de los datos

Vaya al paso 16

no desea añadir caracteres Vaya al paso 24

5. 4.

6. 7.

3.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 261: 1756-pm001_-es-p

Comunicación con un dispositivo ASCII 16-15

8. Vaya a Introduzca caracteres ASCII en la página 16-21.

EJEMPLO Cuando la temperatura excede el límite alto (temp_high está activado), la instrucción AWA envía cinco caracteres desde el tag string[1] a un terminal MessageView.

• El $14 cuenta como un carácter. Es el código hex del carácter Ctrl-T.

• La instrucción también envía (añade) los caracteres definidos en el protocolo de usuario. En este ejemplo, la instrucción AWA envía un retorno de carro ($0D), el cual indica el fin del mensaje.

temp_high

EN

DN

ER

ASCII Write AppendChannel 0Source string[1] '$1425\1'SerialPort Control temp_high_writeString Length 5Characters Sent 6

AWA

42229

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 262: 1756-pm001_-es-p

16-16 Comunicación con un dispositivo ASCII

9. Introduzca el siguiente renglón:

42236b

10. Introduzca la(s) condición(es) de entrada que determina(n) cuándo se van a enviar los caracteres:

• Puede usar cualquier tipo de instrucción de entrada.

• La instrucción 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 instrucción AWT y defina el tipo de datos como SERIAL_PORT_CONTROL.

14. Introduzca el número de caracteres que se envían.

15. Vaya a Introduzca caracteres ASCII en la página 16-21.

12. 11.

13. 14.

10.

EJEMPLO Cuando la temperatura llega al límite bajo (temp_low está activado), la instrucción AWT envía nueve caracteres desde el tag string[2] a un terminal MessageView. (El $14 cuenta como un carácter. Es el código hex del carácter Ctrl-T.

temp_low

EN

DN

ER

ASCII WriteChannel 0Source string[2] '$142224\01$r'SerialPort Control temp_low_writeString Length 9Characters Sent 9

AWT

42229

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 263: 1756-pm001_-es-p

Comunicación con un dispositivo ASCII 16-17

16. Introduzca el siguiente renglón:

42236c

17. Introduzca la(s) condición(es) de entrada que determina(n) cuándo se van a enviar los caracteres:

• Puede usar cualquier tipo de instrucción de entrada.

• La instrucción 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 instrucción 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 instrucción AWA. (El tag del paso 20.)

19. 18.

20.22.

17.

21.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 264: 1756-pm001_-es-p

16-18 Comunicación con un dispositivo ASCII

23. Vaya a Introduzca caracteres ASCII en la página 16-21.

EJEMPLO Cuando la alarma está activada, la instrucción AWA envía los caracteres en alarm_msg y añade un carácter de terminación.

• Puesto que el número de caracteres en alarm_msg varía, el renglón primero transfiere la longitud de alarm_msg (alarm_msg.LEN) a la longitud de la instrucción AWA (alarm_write.LEN).

• En alarm_msg, el $14 cuenta como un carácter. Es el código hex del carácter Ctrl-T.

alarm

MoveSource alarm_msg.LEN 5Dest alarm_write.LEN 5

MOVEN

DN

ER

ASCII Write AppendChannel 0Source alarm_msg '$1425\1'SerialPort Control alarm_writeString Length 5Characters Sent 6

AWA

42229

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 265: 1756-pm001_-es-p

Comunicación con un dispositivo ASCII 16-19

24. Introduzca el siguiente renglón:

42236d

25. Introduzca la(s) condición(es) de entrada que determina(n) cuándo se van a enviar los caracteres:

• Puede usar cualquier tipo de instrucción de entrada.

• La instrucción 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 instrucción 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 instrucción AWT. (El tag del paso 28.)

27. 26.

28.30.

25.

29.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 266: 1756-pm001_-es-p

16-20 Comunicación con un dispositivo ASCII

31. Vaya a Introduzca caracteres ASCII en la página 16-21.

EJEMPLO Cuando MV_update está activado, la instrucción AWT envía los caracteres en MV_msg.

• Puesto que el número de caracteres en MV_msg varía, el renglón primero transfiere la longitud de MV_msg (MV_msg.LEN) a la longitud de la instrucción AWT (MV_write.LEN).

• En MV_msg, el $16 cuenta como un carácter. Es el código hex del carácter Ctrl-V.

MV_update

MoveSource MV_msg.LEN 10Dest MV_write.LEN 10

MOVEN

DN

ER

ASCII WriteChannel 0Source MV_msg '$161365\8\1$r'SerialPort Control MV_writeString Length 10Characters Sent 10

AWT

42229

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 267: 1756-pm001_-es-p

Comunicación con un dispositivo ASCII 16-21

Introduzca caracteres ASCII

Determine si debe completar este paso:

1. Haga doble clic en el área valor del origen.

2. Escriba los caracteres para la cadena.

3. Seleccione Aceptar.

Si: Entonces:

Desea que la lógica cree la cadena. Vaya a “Procesamiento de caracteres ASCII” en la página 16-1.

Desea introducir los caracteres. Vaya al paso 1.

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.

42616

1.

42615

salto de línea ($0A)

2.

nueva línea ($0D$0A)

retorno de carro ($0D)

El número de caracteres que usted ve en la ventana. Éste es el mismo que el miembro LEN del tag de cadena.

El número máximo de caracteres que puede contener el tag de cadena.

signo de dólar ($24)

una comilla ($27)

alimentación de impresora ($0C)

tab ($09)

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 268: 1756-pm001_-es-p

16-22 Comunicación con un dispositivo ASCII

Notas:

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 269: 1756-pm001_-es-p

Capítulo 17

Procesamiento de caracteres ASCII

Cuándo usar este procedimiento

Use este procedimiento para:

• interpretar un código de barras y realizar una acción basada en el código de barras

• usar un peso de una báscula cuando el peso se envía 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 aplicación

Cómo usar este procedimiento

Dependiendo de la aplicación, es posible que necesite realizar todas las tareas indicadas en este procedimiento. Use la siguiente tabla para determinar dónde comenzar:

Para obtener información adicional sobre las instrucciones relacionadas con ASCII, consulte Logix5000 Controllers General Instructions Reference Manual, publicación 1756-RM003.

IMPORTANTE Si no está familiarizado con la introducción de lógica de escalera en un proyecto RSLogix 500, primero revise "Programación de rutinas” en la página 4-1.

Si desea: Entonces vaya a: En la página:

aislar información específica de un código de barras

Extraer una parte de un código de barras

17-2

buscar en una matriz una cadena específica de caracteres

Buscar un código de barras 17-4

comparar dos cadenas de caracteres Verificar los caracteres del código de barras

17-10

usar un peso de una báscula Convertir un valor 17-12

descodificar un mensaje proveniente de un terminal de operador

Descodificar un mensaje ASCII

17-14

crear una cadena para enviar a un terminal de operador

Crear una cadena 17-18

1 Publicación 1756-PM001E-ES-P - Agosto 2002

Page 270: 1756-pm001_-es-p

17-2 Procesamiento de caracteres ASCII

Extraer una parte de un código de barras

Use los pasos siguientes para extraer una parte de un código de barras a fin de realizar una acción basada en este valor.

Por ejemplo, un código de barras puede contener información acerca de un equipaje en un transportador de un aeropuerto. Para verificar el número de vuelo y destino del equipaje, se extraen los caracteres 10 - 18.

Pasos:

1. Introduzca el siguiente renglón:

2. Introduzca el bit EM de la instrucción ARD que lee el código de barras

3. Introduzca el tag cadena que contiene el código de barras.

4. Introduzca el número de caracteres en la parte del código de barras que desea verificar.

5. Introduzca la posición del primer carácter en la parte del código de barras que desea verificar.

6. Introduzca el nombre del tag que va a almacenar la parte del código de barras que desea verificar. Defina el tipo de datos como una cadena.

línea aérea origen No. de vuelo destino fecha

código de barras N W A H O P 5 0 5 8 A M S 0 2 2 2 0 1

número de caracteres 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

5 0 5 8 A M S

9 caracteres

5. 6.

2.

4.3.

42808

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 271: 1756-pm001_-es-p

Procesamiento de caracteres ASCII 17-3

EJEMPLO En el transportador de equipaje de un aeropuerto, cada equipaje tiene un código de barras. Los caracteres 10 - 18 del código de barras son el número de vuelo y el aeropuerto de destino del equipaje. Después que el código de barras es leído (bag_read.EM está activado) la instrucción MID copia el número de vuelo y el aeropuerto de destino al tag bag_flt_and_dest.

42808

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 272: 1756-pm001_-es-p

17-4 Procesamiento de caracteres ASCII

Buscar un código de barras Realice los pasos siguientes para devolver información específica acerca de un ítem basado en su código de barras.

Por ejemplo, en una operación de clasificación, una matriz de un tipo de datos definido por el usuario crea una tabla que muestra el número de ruta para cada tipo de producto. Para determinar en qué ruta encaminar un producto, el controlador busca el ID del producto (caracteres del código de barras que identifican al producto) en la tabla.

Para buscar un código de barras:

• Cree el tipo de datos PRODUCT_INFO

• Búsqueda de caracteres

• Identificar el número de ruta

• Rechazar caracteres incorrectos

• Introducir los ID de producto y números de ruta

Nombre de tag valor

sort_table

product_id sort_table[0]

’GHI’ sort_table[0].Product_ID ’ABC’

sort_table[0].Lane 1

sort_table[1]

sort_table[1].Product_ID ’DEF’

sort_table[1].Lane 2

sort_table[2]

sort_table[2].Product_ID ’GHI’ ruta

sort_table[2].Lane 3 3

+

+

+

+

+

+

CONSEJO Para copiar los componentes anteriores desde un ejemplo de proyecto, abra la carpeta …\RSLogix 5000\Proyectos\Ejemplos.

43039

Abra este proyecto.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 273: 1756-pm001_-es-p

Procesamiento de caracteres ASCII 17-5

Cree el tipo de datos PRODUCT_INFO

Cree el siguiente tipo de datos definido por el usuario.

Tipo de datos:PRODUCT_INFO

nombre PRODUCT_INFO

descripción Identifica el destino de un ítem basado en una cadena ASCII de caracteres que identifican el ítem

Miembros

nombre tipo de datos

estilo descripción

Product_ID cadena Caracteres ASCII que identifican el ítem

Ruta DINT Decimal Destino del ítem, basado en su ID

Para crear un nuevo tipo de datos:

Controlador Your_Project

Tareas

Motion Groups

Tendencias

Data Types

definido por el usuario

Haga clic con el botón derecho del mouse y seleccione Nuevo Data Type.

+

+

+

+

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 274: 1756-pm001_-es-p

17-6 Procesamiento de caracteres ASCII

Búsqueda de caracteres

1. La instrucción SIZE cuenta el número de elementos en la matriz sort_table. Esta matriz contiene el ID del producto para cada ítem y el número de ruta correspondiente para el ítem.

2. La instrucción SIZE cuenta el número de elementos en la Dimensión 0 de la matriz. En este caso, esa es la única dimensión.

3. La instrucción SIZE establece la longitud de la instrucción FSC subsiguiente en un valor igual al tamaño de la matriz sort_table. Esto asegura que la instrucción FSC busque el tamaño exacto de la matriz.

1.

43038

2.3.

Nombre de tag Tipo

sort_table PRODUCT_INFO[number_of_items ]donde:number_of_items es el número de ítems que usted debe clasificar.

Nombre de tag Tipo

sort_table_search CONTROL

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 275: 1756-pm001_-es-p

Procesamiento de caracteres ASCII 17-7

4. El tag sort_table_search controla la instrucción FSC, la cual busca los caracteres de código de barras en la matriz sort_table.

5. Aunque la instrucción previa establece la longitud de esta instrucción, el software requiere un valor inicial para verificar el proyecto.

6. El tag product_id contiene los caracteres de código de barras que identifican el ítem. La instrucción FSC busca cada miembro Product_ID en la matriz sort_table hasta que encuentra una coincidencia con el tag. product_id.

43038

4.5.

6.

Nombre de tag Tipo

product_id cadena

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 276: 1756-pm001_-es-p

17-8 Procesamiento de caracteres ASCII

Identificar el número de ruta

1. Cuando la instrucción FSC encuentra el ID del producto dentro de la matriz sort_table, la instrucción establece el bit FD.

2. Cuando la instrucción FSC encuentra una coincidencia, el miembro POS indica el número de elemento dentro de la matriz sort_table de la coincidencia. El miembro LANE correspondiente indica el número de ruta de la coincidencia.

3. En base al valor POS, la instrucción MOV mueve el número de ruta correspondiente al tag lane. El controlador usa el valor de este tag para encaminar el ítem.

4. Después que la instrucción MOV establece el valor del tag lane, la instrucción RES restablece la instrucción FSC a fin de que pueda buscar el siguiente ID de producto.

1. 4.2. 3.

43038

Nombre de tag Tipo

lane DINT

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 277: 1756-pm001_-es-p

Procesamiento de caracteres ASCII 17-9

Rechazar caracteres incorrectos

1. Si la instrucción FSC no encuentra el ID del producto dentro de la matriz sort_table, la instrucción establece el bit DN.

2. Cuando no se encuentra una coincidencia, la instrucción mueve 999 al tag lane. Esto indica al controlador que rechace o vuelva a encaminar el ítem.

3. Después que la instrucción MOV establece el valor del tag lane, la instrucción RES restablece la instrucción FSC a fin de que busque el siguiente ID de producto.

Introducir los ID de producto y números de ruta

En la matriz sort_table, introduzca los caracteres ASCII que identifican cada ítem y el número de ruta correspondiente para el ítem.

1. 3.2.

43038

Nombre de tag valor

sort_table {…}

sort_table[0] {…}

sort_table[0].Product_ID Caracteres ASCII que identifican el primer ítem

sort_table[0].Lane número de ruta del ítem

sort_table[1] {…}

sort_table[1].Product_ID Caracteres ASCII que identifican el siguiente ítem

sort_table[1].Lane número de ruta del ítem

+

+

+

+

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 278: 1756-pm001_-es-p

17-10 Procesamiento de caracteres ASCII

Verificar los caracteres del código de barras

En esta tarea, usted usa una instrucción de comparación (EQU, GEQ, GRT, LEQ, LES, NEQ) para verificar caracteres específicos.

• Los valores hexadecimales de los caracteres determinan si una cadena es menor o mayor que otra cadena.

• Cuando las dos cadenas están clasificadas como en un directorio telefónico, el orden de las cadenas determina cuál es mayor.

Pasos:

1. Introduzca un renglón y una instrucción de comparación:

Caracteres ASCII Códigos hexadecimales

1ab $31$61$62

1b $31$62

A $41

AB $41$42

B $42

a $61

ab $61$62

Para ver si la cadena es: Introduzca esta instrucción:

igual a caracteres específicos EQU

diferente a caracteres específicos NEQ

mayor que caracteres específicos GRT

igual o mayor que caracteres específicos GEQ

menor que caracteres específicos LES

igual o menor que caracteres específicos LEQ

mayor que

l esser

AB < B

a > B

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 279: 1756-pm001_-es-p

Procesamiento de caracteres ASCII 17-11

2. Introduzca el tag que almacena la parte del código de barras que desea verificar. (El destino de Extraer una parte de un código 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.

6. Introduzca la salida requerida.

7. ¿Desea verificar otra parte del código de barras?

2. 6.3.

428084.

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

Si: Entonces:

sí Vaya a Extraer una parte de un código de barras en la página 17-2.

no Deténgase. Ya terminó con este procedimiento.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 280: 1756-pm001_-es-p

17-12 Procesamiento de caracteres ASCII

Convertir un valor Realice los pasos siguientes para convertir la representación ASCII de un valor a un valor DINT o REAL que usted pueda usar en la aplicación.

• Las instrucciones STOD y STOR omiten cualquier control inicial o caracteres no numéricos (excepto el signo menos ubicado delante de un número).

• Si la cadena contiene múltiples grupos de números separados por delimitadores (por ej., / ), las instrucciones STOD y STOR convierten sólo el primer grupo de números.

Pasos:

1. ¿De qué tipo de número es el valor?

2. Introduzca el siguiente renglón:

3. Introduzca el bit EM de la instrucción 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 aplicación. Defina el tipo de datos como REAL.

Si: Entonces:

punto flotante (coma flotante) Vaya al paso 2.

entero Vaya al paso 7.

3.

5.4.

42810

EJEMPLO Después de leer el peso de la báscula (weight_read.EM está activado), la instrucción STOR convierte los caracteres numéricos en weight_ascii a un valor REAL y almacena el resultado en weight.

42810

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 281: 1756-pm001_-es-p

Procesamiento de caracteres ASCII 17-13

6. Vaya al paso 11.

7. Introduzca el siguiente renglón:

8. Introduzca el bit EM de la instrucción 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 aplicación. Defina el tipo de datos como DINT.

11. ¿Tiene esta cadena otro valor que usted desea usar?

9. 10.

8.

42810

EJEMPLO Cuando MV_read.EM está activado, la instrucción STOD convierte el primer conjunto de caracteres numéricos en MV_msg a un valor entero. La instrucción salta el carácter de control inicial ($06) y se detiene en el delimitador ( \ ).

42620

Si: Entonces:

sí Vaya a Descodificar un mensaje ASCII en la página 17-14.

no Deténgase. Ya terminó con este procedimiento.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 282: 1756-pm001_-es-p

17-14 Procesamiento de caracteres ASCII

Descodificar un mensaje ASCII

Use los pasos siguientes para extraer y convertir un valor de un mensaje ASCII que contiene múltiples valores.

Por ejemplo, un mensaje puede ser similar a este:

1. Determine dónde empezar:

2. ¿De qué tipo de número es el valor?

primer valor segundo valor tercer valor

[Ctrl-F] mensaje # \ tecla F \ acción de tecla F

[CR]

carácter de control delimitador delimitador carácter de terminación

Si la: Y: Entonces:

cadena tiene más de un valor Éste es el primer valor. Vaya a Convertir un valor en la página 17-12.

Éste no es el valor. Vaya al paso 2.

cadena tiene sólo un valor Vaya a Convertir un valor en la página 17-12.

Si: Entonces:

punto flotante (coma flotante)

Introduzca Renglón A: Encontrar y convertir un valor de punto flotante (coma flotante)

entero Introduzca Renglón B: Encontrar y convertir un valor entero

42810

Renglón A: Encontrar y convertir un valor de punto flotante (coma flotante)

42810

Renglón B: Encontrar y convertir un valor entero

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 283: 1756-pm001_-es-p

Procesamiento de caracteres ASCII 17-15

3. Introduzca el bit EM de la instrucción 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 Búsqueda.

7. Escriba el delimitador y seleccione Aceptar.

8. Introduzca la posición en la cadena para iniciar la búsqueda.

• 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 ubicación del delimitador. Defina el tipo de datos como DINT.

3.

5.4.

42810

6.

8. 9.

42615

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 284: 1756-pm001_-es-p

17-16 Procesamiento de caracteres ASCII

10. Introduzca el tag cadena que contiene el código de barras.

11. Introduzca el máximo número de caracteres que este valor puede contener.

12. Introduzca el tag que almacena la posición 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 instrucción de conversión usó?

11.10.

42810

12. 13.

Si: Entonces:

STOR Vaya al paso 15.

STOD Vaya al paso 18.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 285: 1756-pm001_-es-p

Procesamiento de caracteres ASCII 17-17

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 aplicación. Defina el tipo de datos como REAL.

17. Vaya al paso 20.

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 aplicación. Defina el tipo de datos como DINT.

20. ¿Tiene la cadena otro valor que usted desea usar?

15. 16.

42809

18. 19.

42809

Si: Entonces:

sí A. Añada 1 al resultado de la instrucción Buscar. (El tag del paso 9.)

B. Repita los pasos 2 - 19.

no Deténgase. Ya terminó con este procedimiento.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 286: 1756-pm001_-es-p

17-18 Procesamiento de caracteres ASCII

Crear una cadena Realice los pasos siguientes para crear una cadena proveniente de las variables de su aplicación. 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:

• Si necesita incluir más variables, use la instrucción INSERTAR o CONCATENAR.

• Si necesita enviar un valor de punto flotante (coma flotante), use una instrucción RTOS en lugar de la instrucción DTOS.

• La cadena final no incluirá el carácter de terminación. Cuando envíe la cadena, use una instrucción AWA para anexar automáticamente el carácter de terminación.

Pasos:

1. Introduzca el siguiente renglón:

2. Introduzca la(s) condición(es) de entrada que determinan cuándo 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 representación ASCII del valor. Defina el tipo de datos como una cadena.

[Ctrl-F] mensaje # \ dirección [CR]

carácter de control delimitador carácter de terminación

42813

3. 4.2.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 287: 1756-pm001_-es-p

Procesamiento de caracteres ASCII 17-19

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.

7. Escriba el carácter de control y el delimitador y seleccione Aceptar.

Para un carácter de control, escriba el código hexadecimal del carácter. Para obtener una lista de códigos hexadecimales, vea la contraportada de este manual.

8. Introduzca el tag que almacena la representación ASCII del primer valor. (El tag del paso 4.)

9. Introduzca 2.

Esto coloca el valor después del primer carácter (carácter 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.

5. 6. 8.

42813

9. 10.

42615

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 288: 1756-pm001_-es-p

17-20 Procesamiento de caracteres ASCII

11. Introduzca el tag DINT que contiene el segundo valor para la cadena.

12. Introduzca un nombre de tag para almacenar la representación 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 representación 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.

11. 12. 13. 14.

42813

15.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 289: 1756-pm001_-es-p

Procesamiento de caracteres ASCII 17-21

EJEMPLO Para activar un mensaje en un terminal MessageView, el controlador envía al terminal un mensaje en el siguiente formato: [Ctrl-T] mensaje # \ dirección [CR]

Cuando send_msg está activado, el renglón hace lo siguiente:

• La primera instrucción DTOS convierte el número del mensaje a caracteres ASCII.

• La instrucción INSERT inserta el número de mensaje (en ASCII) después del carácter de control [Ctrl-T]. (El código hexadecimal de Ctrl-T es $14.)

• La segunda instrucción DTOS convierte el número de nodo del terminal a caracteres ASCII.

• La instrucción CONCATENAR coloca el número de nodo (en ASCII) después del signo diagonal inverso [ \ ] y almacena la cadena final en msg.

Para enviar el mensaje, una instrucción AWA envía el tag msg y anexa el retorno de carro [CR].

42813

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 290: 1756-pm001_-es-p

17-22 Procesamiento de caracteres ASCII

Notas:

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 291: 1756-pm001_-es-p

Capítulo 18

Forzado de elementos lógicos

Cuándo usar este procedimiento

Use un forzado para anular datos que la lógica usa o produce. Por ejemplo, use forzados en las siguientes situaciones:

• probar y depurar la lógica

• revisar el cableado a un dispositivo de salida

• mantener funcionando temporalmente el proceso cuando un dispositivo de entrada tuvo un fallo

Use los forzados sólo como una medida temporal. No se han diseñado para ser parte permanente de la aplicación.

Cómo usar este procedimiento

Si desea: Vea:

revisar las precauciones que debe tomar al añadir, cambiar, extraer o inhabilitar forzados “Precauciones” en la página 18-2

determinar el estado actual de los forzados en el proyecto “Verificación del estado de forzados” en la página 18-4

determinar el tipo de elemento que va a forzar en el proyecto “Qué elementos forzar” en la página 18-6

revisar información general acerca de los forzados de E/S, que incluya los elementos que se pueden forzar y cómo un forzado de E/S afecta el proyecto

“Cuándo usar un forzado de E/S” en la página 18-6

forzar un valor de E/S “Adición de un forzado de E/S” en la página 18-8

revisar información general acerca de cómo avanzar un paso en una transición o una ruta simultánea

“Cuándo usar la opción Step Through” en la página 18-9

avanzar un paso en una transición activa “Función Step Through en una transición o forzado de una ruta” en la página 18-9

avanzar un paso en una ruta simultánea forzada a falso

revisar información general acerca de forzados de SFC, que incluya los elementos que pueden forzarse y cómo los forzados afectan la ejecución del SFC

“Cuándo usar un forzado de SFC” en la página 18-9

forzar una transición o ruta simultánea adentro de un SFC “Adición de un forzado de SFC” en la página 18-12

detener los efectos de un forzado “Eliminación o inhabilitación de forzados” en la página 18-13

1 Publicación 1756-PM001E-ES-P - Agosto 2002

Page 292: 1756-pm001_-es-p

18-2 Forzado de elementos lógicos

Precauciones Al usar forzados, observe las siguientes precauciones:

Habilitación de forzados

Para que un forzado se haga efectivo, usted tiene que habilitar los forzados. Sólo se pueden habilitar e inhabilitar los forzados a nivel de controlador.

• Es posible habilitar forzados de E/S y forzados de SFC separadamente o simultáneamente.

• No es posible habilitar ni inhabilitar forzados para un módulo, conjunto de tags o elemento de tag específicos.

ATENCIÓN

!Un forzado puede causar un movimiento inesperado de la máquina, lo cual puede causar lesiones personales. Antes de usar un forzado, determine cómo el forzado afectará la máquina o el proceso, y mantenga al personal lejos del área de la máquina.

• La habilitación de forzados de E/S causa que cambien los valores de entrada, salida, producidos o consumidos.

• La habilitación de forzados de SFC causa que la máquina 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.

IMPORTANTE Si descarga un proyecto que tiene forzados habilitados, el software de programación le indicará que habilite o inhabilite los forzados después que haya concluido la descarga.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 293: 1756-pm001_-es-p

Forzado de elementos lógicos 18-3

Cuando los forzados están efectivos (habilitados), aparece junto al elemento forzado.

Inhabilitación o eliminación de un forzado

Para detener el efecto de un forzado y dejar que el proyecto se ejecute según lo programado, inhabilite o elimine el forzado.

• Es posible inhabilitar forzados de E/S y de SFC simultáneamente o separadamente.

• Al eliminarse un forzado en un tag alias también se elimina el forzado en el tag base.

estado al cual se fuerza el elemento

los forzados están efectivos (habilitados)

ATENCIÓN

!Los cambios en los forzados pueden causar un movimiento inesperado de la máquina, lo cual puede causar lesiones personales. Antes de inhabilitar o eliminar forzados, determine cómo el cambio afectará la máquina o el proceso, y mantenga al personal lejos del área de la máquina.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 294: 1756-pm001_-es-p

18-4 Forzado de elementos lógicos

Verificación del estado de forzados

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:

Barra de herramientas Online

La barra de herramientas Online muestra el estado de los forzados. Muestra el estado de los forzados de E/S y los forzados de SFC por separado.

Para determinar el estado de: Use cualquiera de los siguientes:

forzados de E/S • Barra de herramientas Online

• Indicador LED FORCE

• Instrucción GSV

forzados de SFC Barra de herramientas Online

Ficha Forces

Lo siguiente: Significa:

Enabled • Si el proyecto contiene forzados de este tipo, éstos están anulando la lógica.

• Si usted añade un forzado de este tipo, el nuevo forzado se hace efectivo inmediatamente.

Disabled Los forzados de este tipo están inactivos. Si el proyecto contiene forzados de este tipo, éstos no están anulando la lógica.

Installed Por lo menos un forzado de este tipo existe en el proyecto.

None Installed No existen forzados de este tipo en el proyecto.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 295: 1756-pm001_-es-p

Forzado de elementos lógicos 18-5

Indicador LED FORCE

Si el controlador tiene un indicador LED FORCE, use el indicador LED para determinar el estado de los forzados de E/S.

Instrucción GSV

El siguiente ejemplo muestra cómo usar una instrucción GSV para obtener el estado de los forzados.

donde:

Force_Status es un tag DINT.

IMPORTANTE El indicador LED FORCE muestra sólo el estado de los forzados de E/S. No muestra el estado de los forzados de SFC.

Si el indicador LED FORCE está:

Entonces:

apagado • No hay tags que tengan valores forzados.• Los forzados de E/S están inactivos (inhabilitados).

parpadeando • Por lo menos un tag contiene un valor forzado.• Los forzados de E/S están inactivos (inhabilitados).

fijo • Los forzados de E/S están activos (habilitados).• Los valores forzados pueden o no existir.

IMPORTANTE El atributo ForceStatus muestra sólo el estado de los forzados de E/S. No muestra el estado de los forzados de SFC.

Para determinar si: Examine este bit: Para verificar la existencia de este valor:

los forzados están instalados 0 1

no hay forzados instalados 0 0

los forzados están habilitados 1 1

los forzados están inhabilitados 1 0

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 296: 1756-pm001_-es-p

18-6 Forzado de elementos lógicos

Qué elementos forzar Se pueden forzar los siguientes elementos del proyecto:

Cuándo usar un forzado de E/S

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 lógica y especificar un valor de salida para otro controlador (por ej., un tag producido)

• anular la lógica y especificar el estado de un dispositivo de salida

Cuando usted fuerza un valor de E/S:

• Puede forzar todos los datos de E/S, excepto los datos de configuración.

• 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

Si desea: Entonces:

anular un valor de entrada, un valor de salida, un tag producido o un tag consumido Adición de un forzado de E/S

anular las condiciones de una transición una vez para ir de un paso activo al siguiente paso Función Step Through en una transición o forzado de una ruta

anular una vez el forzado de una ruta simultánea y ejecutar los pasos de la ruta

anular las condiciones de una transición en un diagrama de funciones secuenciales Adición de un forzado de SFC

ejecutar algunas pero no todas las rutas de una bifurcación simultánea de un diagrama de funciones secuenciales

IMPORTANTE El forzado aumenta el tiempo de ejecución de la lógica. A más valores forzados, más tiempo se requiere para ejecutar la lógica.

IMPORTANTE Los forzados de E/S son retenidos por el controlador y no por la estación de trabajo de programación. Los forzados permanecen igual si se desconecta la estación de trabajo de programación.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 297: 1756-pm001_-es-p

Forzado de elementos lógicos 18-7

• También 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 también se fuerza al tag base asociado.

– Al eliminarse un forzado de un tag alias también se elimina el forzado del tag base asociado.

Forzado de un valor de entrada

El forzar una entrada o tag consumido:

• anula el valor independientemente del valor del dispositivo físico o tag producido

• no afecta el valor recibido por otros controladores que monitorean esa entrada o tag producido

Forzado de un valor de salida

El forzar una salida o un tag producido anula la lógica para el dispositivo físico u otro(s) controlador(es). Otros controladores que monitorean ese módulo de salida en capacidad de sólo recepción verán también el valor forzado.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 298: 1756-pm001_-es-p

18-8 Forzado de elementos lógicos

Adición de un forzado de E/S

Para anular un valor de entrada, un valor de salida, un tag producido o un tag consumido, use un forzado de E/S:

1. ¿Cuál es el estado del indicador de forzados de E/S?

2. Abra la rutina que contiene el tag que desea forzar.

3. Haga clic con el botón 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:

5. ¿Están habilitados los forzados de E/S? (Vea el paso 1).

ATENCIÓN

!Un forzado puede causar un movimiento inesperado de la máquina, lo cual puede causar lesiones personales. Antes de usar un forzado, determine cómo el forzado afectará la máquina o el proceso, y mantenga al personal lejos del área de la máquina.

• La habilitación 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.

Si: Entonces, tome nota de lo siguiente:

apagado Actualmente no existen forzados de E/S.

parpadeando 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 también se hacen efectivos.

fijo Los forzados de E/S están habilitados (activos). Cuando usted instala (añade) un forzado, éste se hace efectivo inmediatamente.

Para forzar un: Haga lo siguiente:

valor BOOL Haga clic con el botón derecho del mouse en el tag y seleccione Force ON o Force OFF.

valor que no es BOOL

En la columna Force Mask para el tag, escriba el valor al cual desea forzar el tag. Luego presione la tecla Enter.

Si: Entonces:

no En el menú Logic, seleccione I/O Forcing ⇒ Enable All I/O Forces. Luego seleccione Yes para confirmar.

sí Deténgase.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 299: 1756-pm001_-es-p

Forzado de elementos lógicos 18-9

Cuándo usar la opción Step Through

Para anular una transición falsa una vez y ir de un paso activo al siguiente paso, use la opción Step Through. Con la opción Step Through:

• Usted no tiene que añadir, habilitar, inhabilitar o eliminar forzados.

• La próxima vez que el SFC llegue a la transición, se ejecutará según las condiciones de la transición.

Esta opción también le permite anular una vez el forzado falso de una ruta simultánea. Cuando usted avanza un paso a través del forzado, el SFC ejecuta los pasos de la ruta.

Función Step Through en una transición o forzado de una ruta

Para avanzar un paso en la transición de un paso activo o un forzado de una ruta simultánea:

1. Abra la rutina SFC.

2. haga clic con el botón derecho del mouse en la transición o en la ruta forzada y seleccione Step Through.

Cuándo usar un forzado de SFC

Para anular la lógica de un SFC, existen las siguientes opciones:

Forzado de una transición

Para anular las condiciones de una transición a través de ejecuciones repetidas de un SFC, fuerce la transición. El forzado permanecerá hasta que usted lo elimine o hasta que inhabilite los forzados.

Si desea: Entonces:

anular las condiciones de una transición cada vez que el SFC llegue a la transición

Forzado de una transición

evitar la ejecución de una o más rutas de una bifurcación simultánea

Forzado de una ruta simultánea

Si desea: Entonces:

evitar que el SFC vaya al siguiente paso fuerce la transición a falso

que el SFC vaya al siguiente paso independientemente de las condiciones de la transición

fuerce la transición a verdadero

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 300: 1756-pm001_-es-p

18-10 Forzado de elementos lógicos

Si usted fuerza a falso una transición dentro de una bifurcación simultánea, el SFC permanecerá en la bifurcación simultánea, siempre que el forzado esté activo (instalado y habilitado).

• Para salir de una bifurcación simultánea, el último paso de cada ruta debe ejecutarse por lo menos una vez y la transición debajo de la bifurcación debe ser verdadera.

• Al forzar una transición 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 bifurcación, 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

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 301: 1756-pm001_-es-p

Forzado de elementos lógicos 18-11

Forzado de una ruta simultánea

Para evitar la ejecución de una ruta de una bifurcación simultánea, fuerce la ruta a falso. Cuando el SFC llegue a la bifurcación, ejecutará sólo las rutas no forzadas.

Si usted fuerza a falso una ruta de una bifurcación simultánea, el SFC permanecerá en la bifurcación simultánea, siempre que el forzado esté activo (instalado y habilitado).

• Para salir de una bifurcación simultánea, el último paso de cada ruta debe ejecutarse por lo menos una vez y la transición debajo de la bifurcación 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.

Esta ruta no se ejecuta. Esta ruta se ejecuta.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 302: 1756-pm001_-es-p

18-12 Forzado de elementos lógicos

Adición de un forzado de SFC

Para anular la lógica de un SFC, use un forzado de SFC:

1. ¿Cuál es el estado del indicador de forzados de SFC?

2. Abra la rutina SFC.

3. Haga clic con el botón derecho del mouse en la transición o inicio de una ruta simultánea que usted desee forzar, y seleccione ya sea Force TRUE (sólo para una transición) o Force FALSE.

4. ¿Están habilitados los forzados de SFC? (Vea el paso 1).

ATENCIÓN

!Un forzado puede causar un movimiento inesperado de la máquina, lo cual puede causar lesiones personales. Antes de usar un forzado, determine cómo el forzado afectará la máquina o el proceso, y mantenga al personal lejos del área de la máquina.

• La habilitación de forzados de SFC causa que la máquina 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.

Si: Entonces, tome nota de lo siguiente:

apagado Actualmente no existen forzados de SFC.

parpadeando 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 también se hacen efectivos.

fijo Los forzados de SFC están habilitados (activos). Cuando usted instala (añade) un forzado, éste se hace efectivo inmediatamente.

Si: Entonces:

no En el menú Logic, seleccione SFC Forcing ⇒ Enable All SFC Forces. Luego seleccione Yes para confirmar.

sí Deténgase.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 303: 1756-pm001_-es-p

Forzado de elementos lógicos 18-13

Eliminación o inhabilitación de forzados

ATENCIÓN

!Los cambios en los forzados pueden causar un movimiento inesperado de la máquina, lo cual puede causar lesiones personales. Antes de inhabilitar o eliminar forzados, determine cómo el cambio afectará la máquina o el proceso, y mantenga al personal lejos del área de la máquina.

Si desea: Y: Entonces:

detener un forzado individual dejar otros forzados habilitados y efectivos Eliminación de un forzado individual

detener todos los forzados de E/S y SFC dejar los forzados en el proyecto Inhabilitación de todos los forzados de E/S y SFC

eliminar los forzados del proyecto Eliminación de todos los forzados de E/S y SFC

detener todos los forzados de E/S pero dejar todos los forzados de SFC activos

dejar los forzados de E/S en el proyecto Inhabilitación de todos los forzados de E/S

eliminar los forzados de E/S del proyecto Eliminación de todos los forzados de E/S

detener todos los forzados de SFC pero dejar todos los forzados de E/S activos

dejar los forzados de SFC en el proyecto Inhabilitación de todos los forzados de SFC

eliminar los forzados de SFC del proyecto Eliminación de todos los forzados de SFC

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 304: 1756-pm001_-es-p

18-14 Forzado de elementos lógicos

Eliminación de un forzado individual

1. Abra la rutina que contiene el forzado que desea eliminar.

2. ¿Cuál es el lenguaje de la rutina?

3. Haga clic con el botón 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 botón derecho del mouse en el tag o elemento que tiene el forzado y seleccione Remove Force.

Inhabilitación de todos los forzados de E/S y SFC

1. En la barra de herramientas Online, haga clic en la ficha Forces.

2. En la ficha Forces, haga clic en ▼ y seleccione Disable All Forces. Luego seleccione Yes para confirmar.

Eliminación de todos los forzados de E/S y SFC

1. En la barra de herramientas Online, haga clic en la ficha Forces.

2. En la ficha Forces, haga clic en ▼ y seleccione Remove All Forces. Luego seleccione Yes para confirmar.

ATENCIÓN

!Si usted elimina un forzado individual, los forzados permanecen en estado habilitado y cualquier nuevo forzado se hará efectivo inmediatamente.

Antes de eliminar un forzado, determine cómo el cambio afectará la máquina o el proceso, y mantenga al personal lejos del área de la máquina.

Si: Entonces:

SFC Vaya al paso paso 4

lógica de escalera Vaya al paso paso 4

bloque de función Vaya al paso paso 3

texto estructurado Vaya al paso paso 3

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 305: 1756-pm001_-es-p

Forzado de elementos lógicos 18-15

Inhabilitación de todos los forzados de E/S

En el menú Logic, seleccione I/O Forcing ⇒ Disable All I/O Forces. Luego seleccione Yes para confirmar.

Eliminación de todos los forzados de E/S

En el menú Logic, seleccione I/O Forcing ⇒ Remove All I/O Forces. Luego seleccione Yes para confirmar.

Inhabilitación de todos los forzados de SFC

En el menú Logic, seleccione SFC Forcing ⇒ Disable All SFC Forces. Luego seleccione Yes para confirmar.

Eliminación de todos los forzados de SFC

En el menú Logic, seleccione SFC Forcing ⇒ Remove All SFC Forces. Luego seleccione Yes para confirmar.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 306: 1756-pm001_-es-p

18-16 Forzado de elementos lógicos

Notas:

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 307: 1756-pm001_-es-p

Capítulo 19

Desarrollo de una rutina de fallo

Cuándo usar este procedimiento

Si ocurre una condición de fallo que es suficientemente severa para que el controlador se desactive, el controlador genera un fallo mayor y detiene la ejecución de la lógica.

• Dependiendo de la aplicación, 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 específico y permitir que por lo menos parte del sistema continúe funcionando.

Cómo usar este procedimiento

Para desarrollar una rutina de fallo:

• Crear el tipo de datos FAULTRECORD

• Creación de una rutina de fallo

• Cómo borrar un fallo mayor

• Cómo borrar un fallo mayor durante el preescán

• Prueba de una rutina de fallo

EJEMPLO Use una rutina de fallo

En un sistema que usa números de receta como direcciones indirectas, un número mal introducido podría producir un fallo mayor, tal como el tipo 4, código 20.

• Para evitar que todo el sistema se desactive, una rutina de fallo borra los fallos mayores tipo 4, código 20.

1 Publicación 1756-PM001E-ES-P - Agosto 2002

Page 308: 1756-pm001_-es-p

19-2 Desarrollo de una rutina de fallo

Crear el tipo de datos FAULTRECORD

Cree el siguiente tipo de datos definido por el usuario. Éste almacena información acerca del fallo.

Tipo de datos:FAULTRECORD

nombre FAULTRECORD

descripción Almacena el atributo MajorFaultRecord o el atributo MinorFaultRecord del objeto PROGRAM.

Miembros

nombre tipo de datos

estilo descripción

Time_Low DINT Decimal los 32 bits más bajos del valor de sello de hora del fallo

Time_High DINT Decimal los 32 bits más altos del valor de sello de hora del fallo

Tipo INT Decimal tipo de fallo (program, I/O, etc)

Código: INT Decimal código único del fallo

Info DINT[8] Hex información específica del fallo

Para crear un nuevo tipo de datos:

Controlador Your_Project

Tareas

Motion Groups

Tendencias

Data Types

definido por el usuario

Haga clic con el botón derecho del mouse y seleccione Nuevo Data Type.

+

+

+

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 309: 1756-pm001_-es-p

Desarrollo de una rutina de fallo 19-3

Creación de una rutina de fallo

Una rutina de fallo le permite usar la lógica de escalera para borrar fallos específicos a fin de que el controlador continúe la ejecución. El lugar donde se coloca la rutina depende del tipo de fallo que desea borrar.

En el caso de un fallo debido a:

Haga lo siguiente:

ejecución de una instrucción

Cree una rutina de fallo a un programa:A. En el Organizador de controlador, haga clic con el botón 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 botón derecho del mouse en name_of_program y seleccione

Propiedades.F. Haga clic en la ficha Configuración.G. De la lista desplegable Fallo, seleccione name_of_fault_routine.H. Haga clic en Aceptar.

corte de energía Cree un programa y una rutina principal para el Administrador de fallos del controlador:A. En el Organizador del Controlador, haga clic con el botón derecho del mouse en

Administrador de fallos del controlador y seleccione Nuevo programa.B. Tipo:

• name_of_program

• descripción (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 botón derecho del mouse en name_of_program y seleccione

Nueva routina.F. Tipo:

• name_of_routine

• descripción (opcional)G. De la lista desplegable Tipo, seleccione el lenguaje de programación para la rutina.H. Haga clic en Aceptar.I. Haga clic con el botón derecho del mouse en name_of_program y seleccione

Propiedades.J. Haga clic en la ficha Configuración.K. De la lista desplegable Principal, seleccione name_of_routineL. Haga clic en Aceptar.

E/S

watchdog de tarea

cambio de modo

movimiento de eje

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 310: 1756-pm001_-es-p

19-4 Desarrollo de una rutina de fallo

Cómo borrar un fallo mayor Para borrar un fallo mayor que ocurre durante la ejecución del proyecto, introduzca la siguiente lógica en la rutina de fallo apropiada. (Vea Creación de una rutina de fallo en la página 19-3.)

• Obtener el tipo y código del fallo

• Verificación de un fallo menor

• Borrar el fallo

Obtener el tipo y código de fallo

1. La instrucción GSV permite acceso al atributo MAJORFAULTRECORD de este programa. Este atributo almacena información acerca del fallo.

2. La información GSV almacena la información de fallo en el tag major_fault_record. Cuando introduzca un tag basado en una estructura, introduzca el primer miembro del tag.

1.

42372

2.

Nombre de tag Tipo

major_fault_record FAULTRECORD

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 311: 1756-pm001_-es-p

Desarrollo de una rutina de fallo 19-5

Verificación de un fallo menor

1. Esta instrucción EQU verifica un tipo de fallo específico, tal como Program, I/O. En el Origen B, introduzca el valor para el tipo de fallo que desea borrar.

2. Esta instrucción EQU verifica un código de fallo específico. En el Origen B, introduzca el valor para el código que desea borrar.

3. Esta instrucción CLR establece en cero el valor del tipo de fallo en el tag major_fault_record.

4. Esta instrucción CLR establece en cero el valor del código de fallo en el tag major_fault_record.

Borrar el fallo

1. La instrucción SSV escribe nuevos valores en el atributo MAJORFAULTRECORD de este programa.

2. La instrucción 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 continúa con la ejecución.

1. 2.

42372

3. 4.

1.

42372

2.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 312: 1756-pm001_-es-p

19-6 Desarrollo de una rutina de fallo

Cómo borrar un fallo mayor durante el preescán

Si el controlador entra en fallo inmediatamente después de cambiar al modo Marcha, entonces examine la operación preescán para determinar el fallo. Por ejemplo, el preescán examina direcciones indirectas (un tag sirve como puntero de un elemento dentro de una matriz).

• Si una dirección indirecta se inicializa durante el tiempo de ejecución, es posible que sea muy grande para la matriz durante el preescán.

• Si el controlador encuentra una dirección indirecta fuera de rango durante el preescán, ocurrirá un fallo mayor.

• Para dejar que el controlador complete el preescán, use la rutina de fallo del programa para capturar y borrar el fallo.

Para borrar un fallo mayor que ocurre durante el preescán:

• Identificar cuando el controlador está en preescán

• Obtener el tipo y código del fallo

• Verificación de un fallo específico

• Borrar el fallo

Identificar cuando el controlador está en preescán

En la rutina principal del programa, introduzca el renglón siguiente:

1. Introduzca este renglón como primer renglón 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 preescán o el escán normal de la lógica.

• Durante el preescán, este bit está desactivado. (Durante el preescán, el controlador restablece todos los bits a los que hacen referencia las instrucciones OTE).

• Una vez que el controlador comienza a ejecutar la lógica, este bit siempre permanece activado.

1. 1.

43063

Nombre de tag Tipo

CPU_scanning BOOL

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 313: 1756-pm001_-es-p

Desarrollo de una rutina de fallo 19-7

Obtener el tipo y código del fallo

Introduzca este renglón en la rutina de fallo del programa:

1. La instrucción GSV tiene acceso al atributo MAJORFAULTRECORD de este programa. Este atributo almacena información acerca del fallo.

2. La instrucción GSV almacena la información de fallo en el tag major_fault_record. Cuando introduzca un tag basado en una estructura, introduzca el primer miembro del tag.

1.

43064

2.

Nombre de tag Tipo

major_fault_record FAULTRECORD

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 314: 1756-pm001_-es-p

19-8 Desarrollo de una rutina de fallo

Verificación de un fallo específico

Introduzca este renglón en la rutina de fallo del programa:

1. Durante el preescán, los bits de todas las instrucciones OTE se desactivan y esta instrucción es verdadera. Una vez que el controlador comienza a ejecutar la lógica, esta instrucción siempre es falsa.

2. Esta instrucción EQU verifica un fallo de tipo 4, lo cual significa que una instrucción en este programa causó el fallo.

3. Esta instrucción EQU verifica un fallo de código 20, lo cual significa que un subíndice de matriz es demasiado grande o un valor POS o LEN de una estructura de control no es válido.

4. Esta instrucción CLR establece en cero el valor del tipo de fallo en el tag major_fault_record.

5. Esta instrucción CLR establece en cero el valor del código de fallo en el tag major_fault_record.

1. 3.2.

43064

4. 5.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 315: 1756-pm001_-es-p

Desarrollo de una rutina de fallo 19-9

Borrar el fallo

Introduzca este renglón en la rutina de fallo del programa:

1. Durante el preescán, los bits de todas las instrucciones OTE están desactivados y esta instrucción es verdadera. Una vez que el controlador comienza a ejecutar la lógica, esta instrucción siempre es falsa.

2. La instrucción SSV escribe nuevos valores al atributo MAJORFAULTRECORD de este programa.

3. La instrucción 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 continúa con la ejecución.

1.

2.

43064

3.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 316: 1756-pm001_-es-p

19-10 Desarrollo de una rutina de fallo

Prueba de una rutina de fallo

Usted puede usar una instrucción 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 renglón:

3. Para simular un fallo, establezca la condición de entrada.

donde: es el:

aaa tag que usará para inicializar el fallo (paso 1.)

bbb la rutina de fallo del programa

EJEMPLO Probar una rutina de fallo

Cuando está activado test_fault_routine, ocurre un fallo mayor y el controlador ejecuta Fault_Routine.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 317: 1756-pm001_-es-p

Capítulo 20

Creación de un fallo mayor definido por el usuario

Cuándo usar este procedimiento

Si desea suspender (desactivar) el controlador según condiciones específicas de la aplicación, cree un fallo mayor definido por el usuario. Con un fallo mayor definido por el usuario:

• Usted define un valor para el código 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 ejecución de la lógica de escalera.

– Las salidas se establecen en su estado configurado o valor para el modo con fallo.

Creación de un fallo mayor definido por el usuario

1. ¿Existe ya una rutina de fallo para el programa?

EJEMPLO Fallo mayor definido por el usuario

Cuando input_value es mayor que 80, producir un fallo mayor y generar un código de fallo de 999.

Si: Entonces:

Sí Vaya al paso 2.

No Cree una rutina de fallo a un programa:A. En el Organizador de controlador, haga clic con el botón 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 botón derecho del mouse en name_of_program y seleccione Propiedades.

F. Haga clic en la ficha Configuración.G. De la lista desplegable Fallo, seleccione name_of_fault_routine.

H. Haga clic en Aceptar.I. Haga doble clic en name_of_fault_routine.

J. Introduzca una instrucción NOP (de manera que la rutina verifique sin errores).

1 Publicación 1756-PM001E-ES-P - Agosto 2002

Page 318: 1756-pm001_-es-p

20-2 Creación de un fallo mayor definido por el usuario

2. En la rutina principal del programa, introduzca el renglón siguiente:

42373

Jump to SubroutineRoutine name name_of_fault_routineInput par x

JSRlas condiciones bajo las cuales debe desactivarse el controlador

donde: representa:

name_of_fault_routine rutina del paso 1.

x valor para el código de fallo

EJEMPLO Creación de un fallo mayor definido por el usuario

Cuando input_value es mayor o igual que 80, la ejecución 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 diálogo Propiedades del controller, ficha Major Fault, muestra el código 999.

42373

Grtr Than or Eql (A>=B)Source A input_value

0Source B 80

GEQJump to SubroutineRoutine name name_of_fault_routineInput par 999

JSR

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 319: 1756-pm001_-es-p

Capítulo 21

Monitorización de fallos menores

Cuándo usar este procedimiento

Si ocurre una condición de fallo que no es suficientemente severa para que el controlador se desactive, el controlador genera un fallo menor.

• El controlador continúa ejecutándose.

• No es necesario borrar un fallo menor.

• Para optimizar el tiempo de ejecución y asegurar la precisión del programa, usted debe monitorizar y corregir los fallos menores.

Monitorización de fallos menores

Para usar la lógica de escalera para obtener información respecto a un fallo menor:

El siguiente ejemplo verifica un aviso de batería baja.

Para verificar lo siguiente:

Haga lo siguiente:

superposición de tareas periódicas

1. Introduzca una instrucción GSV que obtenga el objeto FAULTLOG, atributo MinorFaultBits.2. Monitorice el bit 6.

carga desde la memoria no volátil

1. Introduzca una instrucción GSV que obtenga el objeto FAULTLOG, atributo MinorFaultBits.2. Monitorice el bit 7.

problema con el puerto en serie

1. Introduzca una instrucción GSV que obtenga el objeto FAULTLOG, atributo MinorFaultBits.2. Monitorice el bit 9.

batería baja 1. Introduzca una instrucción GSV que obtenga el objeto FAULTLOG, atributo MinorFaultBits.2. Monitorice el bit 10.

problema con una instrucción 1. Cree un tipo de datos definido por el usuario que almacenará la información de fallo. Asigne el nombre FaultRecord al tipo de datos y asigne los miembros siguientes:

Nombre: Tipo de datos: Estilo:

TimeLow DINT Decimal

TimeHigh DINT Decimal

Tipo INT Decimal

Código: INT Decimal

Info DINT[8] 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 instrucción GSV para obtener los valores del atributo

MinorFaultRecord.5. Si desea detectar un fallo menor causado por otra instrucción, restablezca S:MINOR. (S:MINOR

permanece establecido hasta el final del escán).

1 Publicación 1756-PM001E-ES-P - Agosto 2002

Page 320: 1756-pm001_-es-p

21-2 Monitorización de fallos menores

EJEMPLO Verificación de un fallo menor

Minor_fault_check tiene una temporización de 1 minuto (60000 ms) y luego se reinicia automáticamente.

Cada minuto, minor_fault_check.DN se activa para un escán. Cuando esto ocurre, la instrucción GSV obtiene el valor del objeto FAULTLOG, atributo MinorFaultBits, y lo almacena en el tag minor_fault_bits. Puesto que la instrucción GSV sólo se ejecuta una vez cada minuto, se reduce el tiempo de la mayoría de escanes.

Si minor_fault_bits.10 está activado, entonces la batería está baja.

42373

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 321: 1756-pm001_-es-p

Monitorización de fallos menores 21-3

El siguiente ejemplo verifica un fallo menor causado por una instrucción específica.

EJEMPLO Verificación de un fallo menor causado por una instrucción.

Multiplica value_a por 1000000 y verifica un fallo menor, tal como un desbordamiento matemático:

• Para asegurarse que una instrucción previa no produjo el fallo, el renglón primero restablece S:MINOR.

• Luego el renglón ejecuta la instrucción multiplicar.

• Si la instrucción produce un fallo menor, el controlador establece S:MINOR.

• Si se establece S:MINOR, la instrucción GSV obtiene información acerca del fallo y restablece S:MINOR.

42373

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 322: 1756-pm001_-es-p

21-4 Monitorización de fallos menores

Notas:

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 323: 1756-pm001_-es-p

Capítulo 22

Desarrollo de una rutina de inicializacion

Cuándo usar este procedimiento

El administrador de encendido es una tarea opcional que se ejecuta cuando el controlador se enciende en el modo Marcha.

Use el administrador de encendido cuando desee realizar cualquiera de las siguientes actividades después de una pérdida de alimentación eléctrica y su respectiva restauración:

• Evitar que el controlador regrese al modo Marcha.

– El Administrador de encendido producirá un fallo mayor, tipo 1, código 1, y el controlador entrará al modo de fallo.

• Realizar acciones específicas y luego continuar con la ejecución normal de la lógica.

Desarrollo de una rutina de inicializacion

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 información de fallo. Asigne el nombre FaultRecord al tipo de datos y asigne los miembros siguientes:

2. Cree un tag que almacenará la información de fallo. Seleccione el tipo de datos FaultRecord.

42195

Nombre: Tipo de datos: Estilo:

TimeLow DINT Decimal

TimeHigh DINT Decimal

Tipo INT Decimal

Código INT Decimal

Info DINT[8] Hex

1 Publicación 1756-PM001E-ES-P - Agosto 2002

Page 324: 1756-pm001_-es-p

22-2 Desarrollo de una rutina de inicializacion

3. Cree un programa para el Administrador de encendido:

3. ¿Cómo desea manejar una pérdida de alimentación eléctrica?

Acción: Pasos detallados:

1. Crear un programa. A. En el Organizador del controlador, haga clic con el botón derecho del mouse en Administrador de encendido y seleccione Nuevo programa.

B. Tipo:• name_of_program

• descripción (opcional)C. Haga clic en Aceptar.

2. Crear y asignar una rutina principal (la rutina que se ejecuta primero en el programa).

A. Haga clic en el signo + ubicado junto al Administrador de encendido.B. Haga clic con el botón derecho del mouse en name_of_program y seleccione

Nueva routina.C. Tipo:

• name_of_main_routine

• descripción (opcional)D. De la lista desplegable Tipo, seleccione el lenguaje de programación para la rutina. E. Haga clic en Aceptar.F. Haga clic con el botón derecho del mouse en name_of_program y seleccione

Propiedades.G. Haga clic en la ficha Configuración.H. De la lista desplegable Principal, seleccione name_of_main_routine.I. Haga clic en Aceptar.

J. Para añadir rutinas adicionales (subrutinas) al programa, repita los pasos B. a E.

Para: Haga lo siguiente:

Evitar que el controlador regrese al modo Marcha.

Ya terminó. Cuando se restaure la alimentación eléctrica, ocurrirá un fallo mayor, tipo 1, código 1, y el controlador entrará al modo con fallo.

Realizar acciones específicas cuando se restaure la alimentación eléctrica y luego continuar con la operación normal

A. Abra (haga doble clic) name_of_routine.

B. Introduzca la lógica para las acciones.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 325: 1756-pm001_-es-p

Desarrollo de una rutina de inicializacion 22-3

4. Introduzca la siguiente lógica para borrar el fallo:

donde:

major_fault es el tag del paso 2.

Obtiene información de fallo y la almacena en el tag major_fault (estructura definida por el usuario)

Establece el tipo y código de fallo en el tag major_fault a cero y establece MAJORFAULTRECORD en los nuevos valores, lo cual borra el fallo.

42375

Get system valueCIP Object class PROGRAMCIP Object name THISAttribute name MAJORFAULTRECORDDest major_fault.TimeLow 0

GSV

MoveSource 0 Dest major_fault.Type 0

MOVMoveSource 0 Dest major_fault.Code 0

MOVSet system valueCIP Object class PROGRAMCIP Object name THISAttribute name MAJORFAULTRECORDSource major_fault.TimeLow 0

SSV

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 326: 1756-pm001_-es-p

22-4 Desarrollo de una rutina de inicializacion

Notas:

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 327: 1756-pm001_-es-p

Capítulo 23

Almacenamiento y carga de un proyecto usando la memoria no volátil

Cuándo usar este procedimiento

Use este procedimiento para almacenar o cargar un proyecto utilizando la memoria no volátil de un controlador.

• Si el controlador pierde alimentación eléctrica y no tiene suficiente capacidad de batería, perderá el proyecto en la memoria de usuario.

• La memoria no volátil le permite mantener una copia de su proyecto en el controlador. El controlador no necesita alimentación eléctrica para mantener esta copia.

• Se puede cargar la copia de la memoria no volátil 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

IMPORTANTE La memoria no volátil almacena el contenido de la memoria de usuario al momento que usted almacena el proyecto.

• Los cambios hechos después de almacenar el proyecto no se reflejan en la memoria no volátil.

• Si cambia el proyecto pero no guarda los cambios, los sobrescribirá cuando cargue el proyecto desde la memoria no volátil. Si esto ocurre, tendrá que cargar o descargar el proyecto para ir en línea.

• Si desea almacenar cambios tales como ediciones en línea, valores de tag o un programa de la red ControlNet, guarde el proyecto nuevamente después de hacer los cambios.

1 Publicación 1756-PM001E-ES-P - Agosto 2002

Page 328: 1756-pm001_-es-p

23-2 Almacenamiento y carga de un proyecto usando la memoria no volátil

Una operación de almacenamiento o carga tiene los siguientes parámetros:

Dependiendo del controlador, una actualización de firmware puede o no borrar el proyecto almacenado en la memoria no volátil.

Cómo usar este procedimiento

Parámetro: Almacenamiento: Carga:

¿Cuánto tiempo requiere una operación de almacenamiento o carga?

varios minutos varios segundos

¿En qué modo(s) del controlador puedo almacenar o cargar un proyecto?

modo programa

¿Puedo entrar en línea con el controlador durante una operación de almacenamiento o carga?

no

¿Cuál es el estado de la E/S durante una operación de almacenamiento o carga?

La E/S permanece en su estado configurado para el modo de programación.

Si la memoria no volátil es: Entonces:

no extraíble (no es una tarjeta CompactFlash)

Cuando usted actualiza el firmware del controlador se borra el contenido de la memoria no volátil (revisión 10.x o posterior).

extraíble (tarjeta CompactFlash) Cuando usted actualiza el firmware del controlador, el proyecto permanece en la memoria no volátil.

Si desea: Vea:

seleccionar un controlador que contenga la memoria no volátil “Seleccionar un controlador que tenga memoria no volátil” en la página 23-3

revisar las precauciones que se deben observar al usar la tarjeta 1784-CF64 Industrial CompactFlash

“Precauciones que se deben observar al usar la tarjeta 1784-CF64 Industrial CompactFlash” en la página 23-4

seleccionar cuándo cargar un proyecto nuevamente al controlador “Seleccionar cuándo cargar una imagen” en la página 23-5

almacenar un proyecto en la memoria no volátil del controlador “Almacenar un proyecto” en la página 23-5

sobrescribir el proyecto actual en el controlador con el proyecto que está almacenado en la memoria no volátil del controlador

“Cargar un proyecto” en la página 23-9

cargar el proyecto después que una pérdida de alimentación borró la memoria porque no había batería

usar la lógica de escalera para indicar que el proyecto es cargado desde la memoria no volátil

“Verificar una carga” en la página 23-11

retirar un proyecto de la memoria no volátil del controlador “Borrar la memoria no volátil” en la página 23-12

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 329: 1756-pm001_-es-p

Almacenamiento y carga de un proyecto usando la memoria no volátil 23-3

Seleccionar un controlador que tenga memoria no volátil

Los siguientes controladores Logix5000 tienen memoria no volátil para el almacenamiento de proyectos.

Tipo de controlador: No. de catálogo: Revisión de firmware:

CompactLogix5320 1769-L20 10.x o posterior

CompactLogix5330 1769-L30 10.x o posterior

ControlLogix5555 1756-L55M22 10.x o posterior

1756-L55M23 8.x o posterior

1756-L55M24 8.x o posterior

ControlLogix5563 1756-L63(1)

(1) Requiere una tarjeta de memoria 1784-CF64 Industrial CompactFlash.

11.x o posterior

DriveLogix5720 varios 10.x o posterior

FlexLogix5433 1794-L33 10.x o posterior

FlexLogix5434 Serie B 1794-L34/B 11.x o posterior

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 330: 1756-pm001_-es-p

23-4 Almacenamiento y carga de un proyecto usando la memoria no volátil

Precauciones que se deben observar al usar la tarjeta 1784-CF64 Industrial CompactFlash

Si está usando una tarjeta 1784-CF64 Industrial CompactFlash en su controlador, siga estas pautas:

IMPORTANTE Una tarjeta CompactFlash almacena sólo 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.

Utilice sólo 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.

Sólo 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 opción Load Image del proyecto que está actualmente en la memoria no volátil del controlador. Si está establecida en On Power Up o On Corrupt Memory, entonces guarde primero el proyecto con la opción 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 volátil. Luego, la desigualdad de firmware después de la carga causa un fallo mayor.

Después de actualizar el firmware del controlador, guarde el proyecto nuevamente en la memoria no volátil. Esto asegurará que la revisión del firmware del proyecto en la memoria no volátil sea igual a la revisión del firmware del controlador.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 331: 1756-pm001_-es-p

Almacenamiento y carga de un proyecto usando la memoria no volátil 23-5

Seleccionar cuándo cargar una imagen

Existen varias opciones respecto a cuándo (en qué condiciones) cargar el proyecto nuevamente en la memoria de usuario (RAM) del controlador:

Almacenar un proyecto En esta tarea, usted almacena un proyecto en la memoria no volátil del controlador. Esto sobrescribe todo el contenido de la memoria no volátil.

Antes de almacenar el proyecto:

• haga todas las ediciones requeridas de la lógica

• descargue el proyecto al controlador:

Para guardar un proyecto:

Si desea cargarlo: Entonces seleccione: Notas:

cada vez que usted enciende o desconecta y vuelve a conectar la alimentación eléctrica al chasis

Al momento del encendido • Durante un ciclo de la alimentación eléctrica, se perderán los cambios en línea, los valores de tags y el programa de la red que no se hayan almacenado en la memoria no volátil.

• 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 alimentación eléctrica al chasis.

Ante memoria corrupta Siempre puede usarse el software RSLogix 5000 para cargar el proyecto.

sólo mediante el software RSLogix 5000 Iniciado por el usuario

ATENCIÓN

!Durante una operación de almacenamiento, todos los servoejes activos se desactivan.Antes de almacenar un proyecto, asegúrese de que esto no causará un movimiento inesperado de un eje.

Configurar la operación de guardar

Guardar el proyecto

Guardar el proyecto en línea

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 332: 1756-pm001_-es-p

23-6 Almacenamiento y carga de un proyecto usando la memoria no volátil

Configurar la operación de guardar

1. Entre en línea con el controlador.

2. Ponga el controlador en modo de programación (programación remota o programa).

3. En la barra de herramientas en línea, haga clic en el botón Controller Properties.

4. Haga clic en la ficha Nonvolatile Memory.

5. Seleccione Load/Store.

42627

3.

42865

5.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 333: 1756-pm001_-es-p

Almacenamiento y carga de un proyecto usando la memoria no volátil 23-7

6. Seleccione cuándo (en qué condiciones) desea usted cargar el proyecto nuevamente a la memoria de usuario (RAM) del controlador.

7. En el paso 6, ¿cuál opción de imagen de carga seleccionó?

8. Escriba una nota que describa el proyecto que está almacenando, si lo desea.

7.

El proyecto que actualmente está en la memoria no volátil del controlador (si hay un proyecto allí).

El proyecto que actualmente está en la memoria de usuario (RAM) del controlador.

6.

8.

1.

Si: Entonces:

Al momento del encendido

Seleccione el modo al que usted desea que vaya el controlador después de una carga:• programación remota• marcha remota

Para ir a este modo después de una carga, coloque el interruptor de llave del controlador en la posición REM.

Ante memoria corrupta

Iniciado por el usuario Vaya al paso paso 8

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 334: 1756-pm001_-es-p

23-8 Almacenamiento y carga de un proyecto usando la memoria no volátil

Guardar el proyecto

1. Seleccione <− Store.

Un cuadro de diálogo le solicitará que confirme la operación de almacenamiento.

2. Para almacenar el proyecto, seleccione Yes.

Durante el almacenamiento ocurrirán 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 línea.

• Un cuadro de diálogo le indica que la operación de almacenamiento está en curso.

3. Seleccione OK.

Cuando termina la operación de almacenamiento, usted permanece fuera de línea.

Guardar el proyecto en línea

1. Entre en línea con el controlador.

2. Guarde el proyecto.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 335: 1756-pm001_-es-p

Almacenamiento y carga de un proyecto usando la memoria no volátil 23-9

Cargar un proyecto En esta tarea, usted usa el software RSLogix 5000 para cargar el proyecto desde la memoria no volátil.

Pasos:

1. Entre en línea con el controlador.

2. ¿Se abrió el siguiente cuadro de diálogo?

3. Ponga el controlador en modo de programación (programación remota o programa).

4. En la barra de herramientas en línea, haga clic en el botón Controller Properties.

5. Haga clic en la ficha Nonvolatile Memory.

ATENCIÓN

!Durante una operación de carga, todos los servoejes activos se desactivan.Antes de cargar un proyecto, asegúrese de que esto no causará un movimiento inesperado de un eje.

42873

Si: Entonces:

No Vaya al paso paso 3

Sí Vaya al paso paso 5

42627

4.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 336: 1756-pm001_-es-p

23-10 Almacenamiento y carga de un proyecto usando la memoria no volátil

6. Seleccione Load/Store.

7. Seleccione Load −>.

Un cuadro de diálogo le solicitará que confirme la operación de carga.

8. Para cargar el proyecto desde la memoria no volátil, seleccione Yes.

42865

6.

El proyecto que actualmente está en la memoria no volátil del controlador (si hay un proyecto allí).

El proyecto que actualmente está en la memoria de usuario (RAM) del controlador.

7.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 337: 1756-pm001_-es-p

Almacenamiento y carga de un proyecto usando la memoria no volátil 23-11

Durante la carga ocurrirán 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 línea.

Cuando termina la operación de carga, usted permanece fuera de línea. Si desea entrar en línea, debe hacerlo manualmente.

Verificar una carga Cuando el controlador carga un proyecto desde la memoria no volátil, proporciona la siguiente información:

• registra un fallo menor (tipo 7, código 49)

• establece el objeto FAULTLOG, atributo MinorFaultBits, bit 7

Si desea que el proyecto indique que cargó de la memoria no volátil, use la siguiente lógica de escalera:

En el primer escán del proyecto (S:FS está activado) la instrucción 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 volátil.

42867

donde: representa:

minor_fault_bits El tag que almacena el objeto FAULTLOG, atributo MinorFaultBits. El tipo de datos es DINT

NVM_load El tag que indica que el controlador cargó el proyecto desde su memoria no volátil.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 338: 1756-pm001_-es-p

23-12 Almacenamiento y carga de un proyecto usando la memoria no volátil

Borrar la memoria no volátil

Para eliminar un proyecto de la memoria no volátil, realice las acciones siguientes:

Verificar la opción Current Load Image

1. Entre en línea con el controlador.

2. En la barra de herramientas en línea, haga clic en el botón Controller Properties.

3. Haga clic en la ficha Nonvolatile Memory.

4. ¿Está la opción Load Image establecida en User Initiated?

Verificar la opción Current Load Image

Cambiar la opción Load Image

Borrar el proyecto del controlador

Almacenar la imagen vacía

42627

2.

42865

4.

Si: Entonces:

No Vaya a “Cambiar la opción Load Image” en la página 23-13.

Sí Vaya a “Borrar el proyecto del controlador” en la página 23-13.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 339: 1756-pm001_-es-p

Almacenamiento y carga de un proyecto usando la memoria no volátil 23-13

Cambiar la opción Load Image

1. Seleccione Load/Store.

2. En la lista desplegable Load Image, seleccione User Initiated.

3. Seleccione <- Store.

Un cuadro de diálogo le solicitará que confirme la operación de almacenamiento.

4. Para almacenar el proyecto, seleccione Yes.

Un cuadro de diálogo le indica que la operación de almacenamiento está en curso.

5. Seleccione OK.

6. Espere hasta que el indicador LED OK ubicado en la parte frontal del controlador esté de color verde fijo. Esto indica que la operación de almacenamiento ha concluido.

Borrar el proyecto del controlador

1. Desconecte la batería del controlador.

2. Desconecte y vuelva a conectar la alimentación eléctrica al chasis.

3. Vuelva a conectar la batería al controlador.

Almacenar la imagen vacía

1. Entre en línea con el controlador.

Se abre el cuadro de diálogo Connected To Go Online.

2. Haga clic en la ficha Nonvolatile Memory.

3. Seleccione Load/Store.

42865

3.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 340: 1756-pm001_-es-p

23-14 Almacenamiento y carga de un proyecto usando la memoria no volátil

4. Seleccione <− Store.

Un cuadro de diálogo le solicitará que confirme la operación de almacenamiento.

5. Para almacenar el proyecto, seleccione Yes.

Durante el almacenamiento ocurrirán 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 línea.

• Un cuadro de diálogo le indica que la operación de almacenamiento está en curso.

6. Seleccione OK.

Cuando termina la operación de almacenamiento, usted permanece fuera de línea. Si desea entrar en línea, debe hacerlo manualmente.

42874

4.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 341: 1756-pm001_-es-p

Capítulo 24

Cómo proteger un proyecto

Cuándo usar este procedimiento

Use este procedimiento para controlar quién tiene acceso al proyecto. Las siguientes opciones están disponibles para habilitar la seguridad de un proyecto:

Se pueden usar ambas opciones simultáneamente.

Usar protección de origen de rutina

Para limitar quién 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 función 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 opción 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 específica mediante cualquiera de los siguientes métodos:

– Añada el archivo de claves de origen y señale el software RSLogix 5000 respecto a la ubicación 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 protección de una rutina:

Si desea: Entonces: Vea la página:

Impedir que otros vean la lógica dentro de una o más rutinas de un proyecto

Usar protección de origen de rutina

24-1

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 sólo vean la lógica y

los datos

Use RSI Security Server para proteger un proyecto

24-12

1 Publicación 1756-PM001E-ES-P - Agosto 2002

Page 342: 1756-pm001_-es-p

24-2 Cómo proteger un proyecto

Si el Controller Organizer muestra:

Entonces:

Source Not Available • Se asignó una clave de origen a la rutina.• Para abrir la rutina, su computadora requiere

la clave de origen de la rutina.

Source Not Available (Viewable) • Se asignó una clave de origen a la rutina.• Usted sólo puede abrir y ver la rutina. • No puede hacer cambios ni copiar el

contenido de la rutina.

Source Available • Se asignó una clave de origen a la rutina.• Usted tiene acceso total a la rutina.

Source Available (Viewable) • 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

también pueden ver la rutina.

Ninguno de los anteriores • 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 exportación (.L5K) contiene sólo rutinas donde el código de origen está disponible.

• Si usted exporta un proyecto donde el código de origen no está disponible para todas las rutinas, no podrá restaurar la totalidad del proyecto.

Éste es el estado de protección.

Para esta rutina…

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 343: 1756-pm001_-es-p

Cómo proteger un proyecto 24-3

Para asignar y administrar las claves de origen, realice las acciones siguientes:

Seleccionar el nivel de protección para cada rutina

Seleccionar el número de claves de origen

Definir la clave o claves de origen

Seleccionar una ubicación para el archivo en dónde almacenar las

Activar la función de protección de origen de RSLogix 5000

Crear un archivo para las claves de origen

Protección de una rutina con una clave de origen

Retirar el acceso a una rutina protegida

Inhabilitar la protección de origen de rutina

Opcional – Obtener acceso a una rutina protegida (desde esta computadora)

¿Limitar el acceso a las rutinas protegidas desde esta computadora?

¿Usar estas computadoras para proteger otras rutinas?

No

No

Efectuad

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 344: 1756-pm001_-es-p

24-4 Cómo proteger un proyecto

Seleccionar el nivel de protección para cada rutina

La protección de origen protege el proyecto al nivel de rutinas. Usted puede proteger algunas rutinas de un proyecto y dejar otras rutinas sin protección (accesibles a cualquier persona). También tiene la opción de proteger una rutina y permitir a la vez que cualquier persona la vea.

Seleccionar el número de claves de origen

Para proteger una rutina, se asigna una clave de origen a la rutina. Se puede reutilizar una clave de origen tantas veces como sea necesario, tal como se muestra a continuación.

Seleccione la cantidad de claves de origen que satisfaga sus necesidades de protección y ofrezca a la vez el nivel de administración de claves de origen que desea tener.

Tabla 24.1 Opciones de protección de rutinas

Si desea: Y: Entonces:

¿Proteger la rutina? Permitir que se vea?

impedir que alguien haga lo siguiente:• editar la rutina• cambiar las propiedades de la

rutina• exportar la rutina

además, impedir que alguien haga lo siguiente:• abrir (mostrar) la rutina• buscar la rutina• ir a referencias cruzadas dentro de la

rutina• imprimir la rutina

sí no

ninguna otra limitación sí sí

permitir que cualquier persona tenga acceso total a la rutina

no

Lo siguiente: Proporciona:

una clave de origen para todos los proyectos

una clave de origen única para cada proyecto

una clave de origen única para cada rutina en cada proyecto

una cantidad menor de claves de origen(más fácil de administrar pero menos protección)

una cantidad mayor de claves de origen(más difícil de administrar pero más protección)

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 345: 1756-pm001_-es-p

Cómo proteger un proyecto 24-5

Definir la clave o claves de origen

Las claves de origen siguen las mismas reglas para nombres que otros componentes RSLogix 5000, tales como las rutinas, los tags y los módulos. Siga estas reglas para definir el nombre de una clave de origen:

• debe comenzar con un carácter alfabético (A-Z o A-z) o un carácter de subrayado (_)

• puede contener solamente caracteres alfabéticos, caracteres numéricos y caracteres de subrayado.

• puede tener hasta 40 caracteres

• no debe tener caracteres de subrayado consecutivos ni al final del nombre (_)

• puede utilizar mayúsculas/minúsculas

Seleccionar una ubicación para el archivo en dónde 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.

Activar la función de protección de origen de RSLogix 5000

Para usar la función de protección de origen de rutinas del software RSLogix 5000, debe realizar la siguiente entrada de registro, la cual activa la función:

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:

Clave: Entrada de valor:

Nombre: Tipo: Datos:

HKEY_CURRENT_USER\Software\Rockwell Software\RSLogix 5000\ProtectedRoutine

PTCRoutine DWORD 1

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 346: 1756-pm001_-es-p

24-6 Cómo proteger un proyecto

language es el idioma del software. Por ejemplo, para el software en inglés, abra la carpeta ENU.

El archivo Enable Protected Routine Config.reg hace la entrada de registro requerida.

Crear un archivo para las claves de origen

1. Abra el proyecto RSLogix 5000 que desea proteger.

2. En el menú Tools, seleccione Security ⇒ Configure Source Protection.

3. ¿Le solicita el software RSLogix 5000 que especifique la ubicación del archivo de claves de origen?

4. Seleccione Yes.

5. Haga clic en

6. Seleccione una carpeta donde almacenar el archivo, y seleccione OK.

7. Seleccione OK.

Un cuadro de diálogo le pregunta si desea crear el archivo de claves de origen (sk.dat).

8. Seleccione Yes.

Si: Entonces:

No Su computadora ya tiene el archivo de claves de origen. Vaya a “Protección de una rutina con una clave de origen“ en la página 24-7.

Sí Vaya al paso 4.

7.

5.

ubicación del archivo de claves de origen (sk.dat)

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 347: 1756-pm001_-es-p

Cómo proteger un proyecto 24-7

Protección de una rutina con una clave de origen

1. Abra el proyecto RSLogix 5000 que desea proteger.

2. En el menú Tools, seleccione Security ⇒ Configure Source Protection.

3. Seleccione la rutina o rutinas que desea proteger.

4. Haga clic en Protect.

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?

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.

3.

4.

5.7.

6.

Si: Entonces:

No Borre la marca de verificación en el cuadro de verificación Allow viewing of routine (opción predeterminada).

Sí Seleccione el cuadro de verificación Allow viewing of routine.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 348: 1756-pm001_-es-p

24-8 Cómo proteger un proyecto

Retirar el acceso a una rutina protegida

1. Abra el proyecto RSLogix 5000 protegido.

2. En el menú Tools, seleccione Security ⇒ Configure Source Protection.

3. Haga clic en Clear.

Un cuadro de diálogo 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)?

Inhabilitar la protección de origen de rutina

1. Abra el proyecto RSLogix 5000 protegido.

2. En el menú Tools, seleccione Security ⇒ Configure Source Protection.

IMPORTANTE Antes de extraer el archivo de claves de origen (sk.dat) de una computadora, escriba las claves de origen o haga una copia del archivo y guárdelo en un lugar seguro.

3.

Si: Entonces:

Sí Seleccione Yes.

No Seleccione No.

IMPORTANTE Antes de extraer el archivo de claves de origen (sk.dat) de una computadora, escriba las claves de origen o haga una copia del archivo y guárdelo en un lugar seguro.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 349: 1756-pm001_-es-p

Cómo proteger un proyecto 24-9

3. Haga clic en Disable Ability To Configure Protected Routines.

Un cuadro de diálogo le solicitará que confirme la acción.

4. Seleccione Yes.

Un cuadro de diálogo 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)?

Obtener acceso a una rutina protegida

1. Abra el proyecto RSLogix 5000 que contiene las rutinas protegidas.

2. En el menú Tools, seleccione Security ⇒ Configure Source Protection.

3. ¿Le solicita el software RSLogix 5000 que especifique la ubicación del archivo de claves de origen?

4. Seleccione Yes.

4.

Si: Entonces:

Sí Seleccione Yes.

No Seleccione No.

Si: Entonces:

No Vaya al paso 7.

Sí Vaya al paso 4.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 350: 1756-pm001_-es-p

24-10 Cómo proteger un proyecto

5. Haga clic en

6. ¿Tiene ya esta computadora un archivo de claves de origen (sk.dat)?

7.

5.

Si: Entonces:

Sí A. Seleccione la carpeta que contiene el archivo y luego seleccione OK.B. Seleccione OK .

No A. Seleccione la carpeta donde almacenar el nuevo archivo y luego seleccione OK.

Un cuadro de diálogo le pregunta si desea crear el archivo de claves de origen (sk.dat).

B. Seleccione Yes.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 351: 1756-pm001_-es-p

Cómo proteger un proyecto 24-11

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 múltiples claves, escriba cada clave en una línea diferente.

9. Guarde y cierre el archivo sk.dat.

7.

sk.dat - Notepad

key1

key2

key3

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 352: 1756-pm001_-es-p

24-12 Cómo proteger un proyecto

Use RSI Security Server para proteger un proyecto

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 estación de trabajo

• el proyecto RSLogix 5000 al cual está accediendo el usuario

• la estación 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:

• Instalación del software RSI Security Server

• Configuración de DCOM

• Habilitación del software Security Server para RSLogix 5000

• Importación del archivo RSLogix5000Security.bak

• Definición de acciones globales para los usuarios

• Definición de acciones del proyecto para los usuarios

• Añadir usuarios

• Añadir 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

Instalación del software RSI Security Server

Consulte la publicación Getting Results with Rockwell Software’s Security Server (Standalone Edition) la cual se envía con el software RSI Security Server.

IMPORTANTE Si el software RSLogix 5000 ya está en su computadora cuando usted instala el software Security Server, habilite la seguridad para el software RSLogix 5000 cuando se lo indique el sistema.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 353: 1756-pm001_-es-p

Cómo proteger un proyecto 24-13

Configuración de DCOM

Consulte la publicación Getting Results with Rockwell Software’s Security Server (Standalone Edition) la cual se envía con el software RSI Security Server.

Habilitación del software Security Server para RSLogix 5000

¿Instaló usted Security Server antes de instalar el software RSLogix 5000?

Se abre el cuadro de diálogo Locate Project File. Como opción predeterminada, el archivo Keys.ini ya debe estar seleccionado.

2. Seleccione Open.

Si: Entonces:

Sí Vaya al paso 1.

No Vaya a “Importación del archivo RSLogix5000Security.bak“ en la página 24-14.

Program Files Keys.ini

Rockwell Software SetSecKeys.exe 1. Ejecute este archivo

RSLogix 5000

Language

versión

Security

+

donde: es el:

Language el idioma del software. Por ejemplo, para el software en inglés, abra la carpeta ENU.

version versión del software, tal como v10

43073

3. Seleccione el cuadro RSLogix 5000 y seleccione OK.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 354: 1756-pm001_-es-p

24-14 Cómo proteger un proyecto

Importación del archivo RSLogix5000Security.bak

El archivo RSLogix5000Security.bak proporciona la configuración que Security Server requiere para funcionar con el software RSLogix 5000.

1. Inicie el explorador Security Configuration.

2. En el menú File, seleccione Import Database.

3. Qué revisión de Security ServerRSLogix está usando

4. Seleccione el archivo RSLogix5000Security.bak y luego seleccione Open.

Definición de acciones globales para los usuarios

Las acciones globales son tareas que no están vinculadas a un proyecto en particular, tales como crear un nuevo proyecto o

Si: Entonces:

2.00 Busque en esta carpeta:

donde: es el:

Language el idioma del software. Por ejemplo, para el software en inglés, abra la carpeta ENU.

version versión del software, tal como v10

2.01 Busque en esta carpeta:

Program Files

Rockwell Software

RSLogix 5000

Language

version

Security

+

Program Files

Rockwell Software

Security Server

System

+

43077

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 355: 1756-pm001_-es-p

Cómo proteger un proyecto 24-15

actualizar el firmware de un controlador. Las siguientes acciones globales corresponden al software RSLogix 5000.

Use la siguiente hoja de trabajo para registrar las acciones globales que usted permitirá para cada grupo de usuarios.

Tabla 24.2 Acciones globales

Para que un usuario pueda: Entonces otorgue acceso a las siguientes acciones:

habilitar la seguridad para un controlador sin seguridad

Secure Controller

crear un nuevo proyecto RSLogix 5000 New Project

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

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)

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 356: 1756-pm001_-es-p

24-16 Cómo proteger un proyecto

Definición de acciones del proyecto para los usuarios

Las acciones de proyectos permiten realizar tareas específicas de un proyecto o grupo de proyectos.

• Cuando se habilita la seguridad para un proyecto RSLogix 5000 o se crea un nuevo proyecto con la seguridad activada, éste se convierte en miembro del grupo New RSLogix 5000 Resources.

– Los usuarios que trabajan con proyectos en este grupo requieren el acceso apropiado.

– Recomendamos otorgar Full Access (acceso total) a las personas que tienen acceso a crear un proyecto.

• Para personalizar el acceso a un proyecto, muévalo fuera del grupo New RSLogix 5000 Resources y asigne privilegios específicos para ese proyecto.

43075

43078

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 357: 1756-pm001_-es-p

Cómo proteger un proyecto 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: Y: Y: Otorgue acceso a esta acción:

• abrir un proyecto fuera de línea

• copiar componentes de un proyecto

• exportar los tags de un proyecto

View Proyect

entrar en línea y monitorear un proyecto

Go online

• guardar un proyecto• guardar un proyecto como un archivo

.ACD• abrir una revisión 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 configuración de un módulo

de E/S• cambiar la configuración de una

instrucción MSG• Introducir, habilitar, inhabilitar y

eliminar forzados• cambiar los valores de tags• actualizar firmware

Maintain Project

realizar todas las acciones disponibles a través del software RSLogix 5000 excepto inhabilitar un controlador que tiene la seguridad habilitada

Full Access

inhabilitar la seguridad de un controlador que tiene seguridad habilitada

Acceso totaly

Unsecure Controller

actualizar el firmware de un controlador

Update Firmware

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 358: 1756-pm001_-es-p

24-18 Cómo proteger un proyecto

Use la hoja de trabajo que se proporciona en la página 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 están en el grupo New RSLogix 5000 Resources y para proyectos individuales

Para este proyecto o grupo de proyectos:

Este usuario o grupo de usuarios:

Requiere este acceso:

View Project

Go online Maintain Project

Full Access

Unsecure Controller

Update Firmware

Nuevos recursos RSLogix 5000

New RSLogix 5000 Resources

New RSLogix 5000 Resources

New RSLogix 5000 Resources

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 359: 1756-pm001_-es-p

Cómo proteger un proyecto 24-19

Añadir usuarios

2. Escriba esta información para el usuario y luego seleccione OK.

Añadir grupos de usuarios

Un grupo permite gestionar múltiples usuarios que requieren privilegios similares.

1. En el menú Help. seleccione Quick Start.

43078

1. Haga clic con el botón derecho del mouse y seleccione New.

43084

43074

2. Siga estos pasos para esta tarea.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 360: 1756-pm001_-es-p

24-20 Cómo proteger un proyecto

Asignar acceso global al software RSLogix 5000

Para permitir que los usuarios realicen acciones globales:

2. En el menú Help, seleccione Quick Start.

43077

1. En el explorador Configuration, seleccione el grupo RSLOGIX 5000.

43076

3. Siga estos pasos para esta tarea. Asigne las acciones que registró en la Tabla 24.3 en la página 24-15.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 361: 1756-pm001_-es-p

Cómo proteger un proyecto 24-21

Asignar acciones de proyecto para nuevos proyectos RSLogix 5000

Para permitir que los usuarios realicen acciones en proyectos que están en el grupo New RSLogix 5000 Resources:

2. En el menú Help. seleccione Quick Start.

Habilitar la seguridad para un proyecto RSLogix 5000

Para nuevos proyectos, la opción de seguridad está disponible cuando se crea el proyecto. Para que el software Security Server proteja un proyecto existente, habilite la seguridad del proyecto.

1. Abra el proyecto RSLogix 5000.

3. Haga clic en la ficha Advanced.

43075

1. En el explorador Configuration, seleccione el grupo New RSLogix 5000 Resources.

43076

3. Siga estos pasos para esta tarea. Asigne las acciones que registró en la Tabla 24.5 en la página 24-18.

42627

2. Haga clic en el botón Controller Properties.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 362: 1756-pm001_-es-p

24-22 Cómo proteger un proyecto

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.

Asignar acceso a un proyecto RSLogix 5000

Mientras un proyecto está en el grupo New RSLogix 5000 Resources, la lista de control de accesos de dicho grupo determina las acciones que un usuario puede realizar en un proyecto. Para personalizar el acceso a un proyecto, muévalo fuera del grupo y asigne acciones específicas:

2. Haga clic en la ficha Group Members.

3. En la lista Member items, seleccione el proyecto y haga clic en el botón <<.

43069

4. Seleccione RSI Security Server.

43075

1. En el explorador Configuration, seleccione el grupo New RSLogix 5000 Resources.

43079

3.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 363: 1756-pm001_-es-p

Cómo proteger un proyecto 24-23

4. Seleccione Apply.

6. En el menú Help. seleccione Quick Start.

Regenerar el software RSLogix 5000, si es necesario

Si un proyecto RSLogix 5000 está abierto y se hacen cambios en el software RSI Security Server que afectan el proyecto, regenere el software RSLogix 5000:

En el menú Tools, seleccione Security ⇒ Refresh Privileges.

43078

5. En el explorador Configuration, seleccione el proyecto.

43076

7. Siga estos pasos para esta tarea. Asigne las acciones que registró en la Tabla 24.5 en la página 24-18.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 364: 1756-pm001_-es-p

24-24 Cómo proteger un proyecto

Notas:

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 365: 1756-pm001_-es-p

Apéndice A

Códigos de fallo

Cuándo usar este Apéndice Use este apéndice para interpretar:

• Códigos de fallo mayor

• Códigos de fallos menores

Códigos de fallo mayor Use la siguiente tabla para determinar la causa de un fallo mayor y su acción correctiva. El tipo y código corresponden al tipo y código mostrado en los lugares siguientes:

• Cuadro de diálogo Controller Properties, ficha Major Faults

• Objeto PROGRAM, atributo MAJORFAULTRECORD

Tabla A.1 Tipos y códigos de fallos mayores

Tipo: Código: Causa: Método de recuperación:1 1 El controlador se activo en el modo Run. Ejecute el administrador de pérdida de alimentación eléctrica.

3 16 Falló una conexión de módulo de E/S requerida. Verifique que el módulo de E/S esté en el chasis. Verifique los requisitos de codificación electrónica. Vea la ficha Major Fault del cuadro de diálogo Controller Properties y la ficha Connection del cuadro de diálogo Module Properties para obtener más información sobre el fallo.

3 20 Es posible que exista un problema con el chasis ControlBus.

No recuperable – reemplace el chasis.

3 23 No se estableció por lo menos una conexión requerida antes de ir al modo Run.

Espere que la luz de E/S del controlador cambie a color verde antes de cambiar al modo Run.

4 16 Se encontró una instrucción desconocida. Elimine la instrucción desconocida. Esto probablemente sucedió debido a un proceso de conversión del programa.

4 20 Subíndice de matriz demasiado grande, la estructura de control .POS o .LEN es no válida.

Ajuste el valor para que esté dentro del rango válido. No exceda el tamaño de la matriz ni sobrepase las dimensiones definidas.

4 21 Estructura de control .LEN o .POS < 0. Ajuste el valor para que sea > 0.

4 31 Los parámetros de la instrucción JSR no son iguales a los de la instrucción SBR o RET asociada.

Pase el número apropiado de parámetros. Si se pasan demasiados parámetros, el exceso de parámetros se ignora sin que ocurra ningún error.

4 34 Una instrucción de temporizador tiene un valor acumulado o preseleccionado negativo.

Corrija el programa para que no cargue un valor negativo en un valor acumulado o preseleccionado de temporizador.

4 42 JMP a una etiqueta que no existe o fue eliminada.

Corrija el receptor de JMP o añada la etiqueta que falta.

4 82 Un diagrama de función 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 instrucción JSR o FOR para llamar a la subrutina.

Elimine el salto al SFC que llamó a la subrutina.

1 Publicación 1756-PM001E-ES-P - Agosto 2002

Page 366: 1756-pm001_-es-p

A-2 Códigos de fallo

4 83 Los datos probabos no estaban dentro de los límites requeridos.

Modifique el valor para que esté dentro de los límites.

4 84 Overflow de pila. Reduzca los niveles de anidamiento de subrutinas o el número de parámetros pasados.

4 89 En una instrucción SFR, la rutina receptora no contiene el paso específico.

Corrija el receptor de SFR o añada el paso que falta.

6 1 Caducó el temporizador de control (watchdog) de la tarea. La tarea del usuario no se terminó en el período de tiempo especificado. Un error del programa causó un lazo infinito, o el programa es demasiado complejo para ejecutarse tan rápidamente como se especificó, o una tarea de mayor prioridad está impidiendo que termine esta tarea.

Aumente el temporizador de control (watchdog) de la tarea, reduzca el tiempo de ejecución, aumente la prioridad de esta tarea, simplifique las tareas de prioridad más alta, o mueva parte de los códigos a otro controlador.

7 40 Falló el almacenamiento en la memoria no volátil.

1. Vuelva a intentar guardar el proyecto en la memoria no volátil.

2. Si el proyecto no se guarda en la memoria no volátil, reemplace la tarjeta de memoria.

7 42 La carga desde la memoria no volátil falló porque la revisión de firmware del proyecto en la memoria no volátil es diferente a la revisión de firmware del controlador.

Actualice el firmware del controlador al mismo nivel de revisión que el proyecto que se encuentra en la memoria no volátil.

8 1 Se intentó colocar el controlador en el modo Run con el interruptor de llave durante la descarga.

Espere que concluya la descarga y borre el fallo.

11 1 La posición actual excedió el límite de fin de carrera positivo.

Mueva el eje en dirección negativa hasta que la posición esté dentro del límite de fin de carrera y luego ejecute el comando Motion Axis Fault Reset.

11 2 La posición actual excedió el límite de fin de carrera negativo.

Mueva el eje en dirección positiva hasta que la posición esté dentro del límite de fin de carrera y luego ejecute el comando Motion Axis Fault Reset.

11 3 La posición actual excedió la tolerancia de error de posición.

Mueva la posición dentro del límite de tolerancia y luego ejecute el comando Motion Axis Fault Reset.

11 4 Se interrumpió la conexión de canal A, B o Z de encoder.

Vuelva a conectar el canal de encoder y luego ejecute el comando Motion Axis Fault Reset.

11 5 Se detectó evento de ruido de encoder o las señales de encoder no están en cuadratura.

Corrija el cableado de encoder y luego ejecute el comando Motion Axis Fault Reset.

11 6 Se activó entrada de fallo del variador. Borre el fallo del variador y luego ejecute el comando Motion Axis Fault Reset.

11 7 Fallo en la conexión síncrona. Primero ejecute el comando Motion Axis Fault Reset. Si esto no funciona, desenchufe el servomódulo y vuelva a enchufarlo. Si el fallo persiste, reemplace el servomódulo.

11 8 El servomódulo detectó un fallo grave de hardware.

Reemplace el módulo.

11 9 Fallo de conexión asíncrona. Primero ejecute el comando Motion Axis Fault Reset. Si esto no funciona, desenchufe el servomódulo y vuelva a enchufarlo. Si el fallo persiste, reemplace el servomódulo.

11 32 Superposición en la tarea de control de movimiento.

El régimen aproximado de actualización del grupo es demasiado alto para mantener una operación correcta. Borre el tag de fallo del grupo, eleve el régimen de actualización del grupo y luego borre el fallo mayor.

Tabla A.1 Tipos y códigos de fallos mayores (Continúa)

Tipo: Código: Causa: Método de recuperación:

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 367: 1756-pm001_-es-p

Códigos de fallo A-3

Códigos de fallos menores Use la siguiente tabla para determinar la causa de un fallo menor y su acción correctiva. El tipo y código corresponden al tipo y código mostrado en los lugares siguientes:

• Cuadro de diálogo Controller Properties, ficha Minor Faults

• Objeto PROGRAM, atributo MINORFAULTRECORD

Tabla A.2 Tipos y códigos de fallos menores

Tipo: Código: Causa: Método de recuperación:

4 4 Ocurrió un overflow aritmético en una instrucción. Corrija el programa examinando las operaciones aritméticas (orden) o ajustando los valores.

4 7 El tag de destino GSV/SSV era demasiado pequeño para contener todos los datos.

Corrija el destino para que tenga espacio suficiente.

4 35 Tiempo PID delta ≤ 0. Ajuste el tiempo PID delta para que sea > 0.

4 36 El punto de ajuste PID está fuera de rango Ajuste el punto de ajuste para que esté dentro del rango.

4 51 El valor LEN del tag de cadena es mayor que el tamaño DATA del tag de cadena.

1. Verifique que ninguna instrucción esté escribiendo al miembro LEN del tag de cadena.

2. En el valor LEN, introduzca el número de caracteres que la cadena contiene.

4 52 La cadena de salida es mayor que el destino. 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.

4 53 El número de salida se encuentra fuera de los límites del tipo de datos de destino.

Haga uno de los siguientes:• Reduzca el tamaño del valor ASCII.• Use un tipo de datos mayor para el destino.

4 56 El valor de inicio o cantidad no es válido. 1. Verifique que el valor de inicio esté entre 1 y el tamaño DATA del origen.

2. Verifique que el valor de inicio así como el valor de cantidad sean menores o iguales al tamaño DATA del origen.

4 57 La instrucción AHL no se ejecutó porque el puerto en serie está establecido en la opción sin handshaking.

Haga uno de los siguientes:• Cambie el parámetro Control Line del puerto en

serie.• Elimine la instrucción AHL.

6 2 Superposición de tareas periódicasLa tarea periódica no concluyó antes de que sea tiempo de que se ejecute nuevamente.

Simplifique el (los) programa(s), o aumente el período o eleve la prioridad relativa, etc.

7 49 Proyecto cargado desde la memoria no volátil.

9 0 Ocurrió un error desconocido mientras se realizaba el servicio del puerto en serie.

Comuníquese con el personal de GTS.

9 1 La línea CTS no es la correcta para la configuración actual.

Desconecte y vuelva a conectar el cable del puerto en serie al controlador. Asegúrese de que el cable esté correctamente conectado.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 368: 1756-pm001_-es-p

A-4 Códigos de fallo

9 2 Error de lista de encuestas (poll). Se detectó un problema con la lista de encuestas del maestro, tal como especificación de más estaciones que el tamaño del archivo, especificación de más de 255 estaciones, tratar de indizar más allá del final de la lista o encuestar la dirección de difusión (STN #255).

Verifique si existe alguno de los siguientes errores en la lista de encuestas:

• número total de estaciones mayor que el espacio en el tag de lista de encuestas

• número total de estaciones mayor que 255• el puntero de la estación actual es mayor que el

tag fin de la lista de encuestas• se encontró un número de estación mayor que

254

9 5 Tiempo de espera de encuestas DF1 esclavoExpiró el temporizador de control (watchdog) de encuestas para el esclavo. El maestro no encuestó este controlador en el período de tiempo especificado.

Determine y corrija el retardo de la encuesta.

9 9 Se perdió contacto con el módem. Las líneas de control DCD y/o DSR no se están recibiendo en la secuencia y/o estado correctos.

Corrija la conexión del módem al controlador.

10 10 No se detectó la batería, o ésta necesita reemplazarse. Instale una batería nueva.

Tabla A.2 Tipos y códigos de fallos menores (Continúa)

Tipo: Código: Causa: Método de recuperación:

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 369: 1756-pm001_-es-p

Apéndice B

Cumplimiento de la norma IEC61131-3

Cómo usar este Apéndice

Introducción La Comisión Electrotécnica Internacional (IEC) ha desarrollado una serie de especificaciones para controladores programables. Estas especificaciones están destinadas a promover la unificación internacional de equipos y lenguajes de programación para uso en la industria de controles. Estos estándares constituyen la base de los controladores Logix5000 y del software de programación RSLogix 5000.

La especificación 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 1: Información general

• Parte 2: Prueba de equipos y requisitos

• Parte 3: Lenguajes de programación

• Parte 4: Pautas para el usuario

• Parte 5: Especificación del servicio de mensajes

La industria de controles se ha concentrado en la parte 3 (IEC61131-3), Lenguajes de programación, porque éstos proporcionan el elemento principal para implementar los otros estándares y ofrecen el beneficio más importante para el usuario final mediante la reducción de los costos de capacitación. Por esta razón, sólo la especificación IEC61131-3 se tratará aquí.

Para obtener información acerca de: Vea la página:

Sistema operativo B-2

Definición de datos B-2

Lenguajes de programación B-3

Conjunto de instrucciones B-4

Portabilidad de programas según IEC61131-3 B-4

Tablas sobre cumplimiento con especificaciones IEC B-5

1 Publicación 1756-PM001E-ES-P - Agosto 2002

Page 370: 1756-pm001_-es-p

B-2 Cumplimiento de la norma IEC61131-3

La especificación referente a lenguaje de programación IEC61131-3 trata numerosos aspectos del controlador programable, incluyendo la ejecución del sistema operativo, las definiciones de los datos, los lenguajes de programación y el conjunto de instrucciones. Los componentes de la especificación IEC61131-3 están categorizados según lo requerido por la especificación, opcional o extensiones. De esta manera, la especificación IEC61131-3 proporciona un conjunto mínimo de funcionalidad que puede extenderse para satisfacer las necesidades de la aplicación del usuario final. La desventaja de este método es que cada suministrador de sistemas de control programable puede implementar diferentes componentes de la especificación o proporcionar diferentes extensiones.

Sistema operativo El sistema operativo (OS) de los controladores Logix5000, el cual permite la priorización de tareas, cumple con las especificaciones de la norma IEC61131-3. Según la especificación IEC61131-3, el sistema operativo de los controladores programables puede contener cero o más tareas, las cuales pueden ejecutar uno o más programas, cada uno de los cuales puede contener una o más funciones o rutinas. De acuerdo con IEC61131-3, el número de cada uno de estos componentes depende de la implementación. Los controladores Logix5000 proporcionan múltiples tareas, cada una de las cuales contiene múltiples programas y un número ilimitado de funciones o rutinas.

La especificación IEC61131-3 proporciona una opción para crear diferentes clasificaciones de ejecución de tareas. Las tareas se pueden configurar como continuas, periódicas o basadas en evento. Una tarea continua no necesita programarse ya que utilizará el tiempo de procesamiento que reste cuando otras tareas estén inactivas. Las tareas periódicas se programan para una operación basada en un período de tiempo que reocurre. La norma IEC61131-3 no especifica una base de tiempo para la configuración de tareas periódicas. De acuerdo con IEC61131-3, una tarea basada en evento se activa con la detección del flanco ascendente de una entrada configurada. Los controladores Logix5000 aceptan tareas continuas y periódicas. Además, el período para una tarea periódica puede configurarse empezando con un valor tan bajo como 1 milisegundo (ms).

Definición de datos La especificación IEC61131-3 proporciona acceso a la memoria mediante la creación de variables con nombre. Los nombres IEC61131-3 para las variables constan de un mínimo de seis caracteres (el software de programación RSLogix5000 acepta un mínimo de 1 carácter) comenzando con un carácter de subrayado “_” o un carácter alfabético (A-Z), seguido de uno o más caracteres que constan de subrayado “_”, carácter alfabético (A-Z) o número (0-9). Opcionalmente, los caracteres alfabéticos en minúscula (a-z) se aceptan siempre y cuando puedan utilizarse mayúsculas y minúsculas (A = a, B = b, C = c …). Los controladores Logix5000 cumplen plenamente con esta definición, aceptan la opción de minúsculas y extienden el nombre para aceptar nombres de hasta 40 caracteres.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 371: 1756-pm001_-es-p

Cumplimiento de la norma IEC61131-3 B-3

Las variables de datos según 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 sólo a las funciones o rutinas dentro de un solo programa. Para pasar datos entre múltiples recursos o controladores, las rutas de acceso se pueden configurar para definir la ubicación de los datos dentro de un sistema. Los controladores Logix5000 ofrecen conformidad mediante la proporción de datos dentro del alcance del programa, dentro del alcance del controlador y permitiendo la configuración de rutas de acceso usando datos producidos/consumidos.

La interpretación de memoria de una variable según IEC61131-3 se define a través 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 múltiples 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 (número de punto flotante [coma flotante] IEEE). Adicionalmente, los tipos de datos derivados opcionales se aceptan mediante la creación de estructuras y matrices definidas por el usuario.

Lenguajes de programación La especificación IEC61131-3 define cinco (5) lenguajes de programación 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 especificación. Los componentes de lenguaje de programación IEC61131-3 se definen de la siguiente manera:

• Elementos de lenguaje comunes

• Elementos gráficos comunes

• Elementos de lenguaje de lista de instrucciones (IL)

• Elementos de lenguaje de texto estructurado (ST)

• Elementos de lenguaje de diagrama de lógica de escalera (LD)

• Elementos de lenguaje de diagrama de función secuencial (SFC)

• Elementos de lenguaje de diagrama de bloque de funciones (FBD)

Los controladores Logix5000 y RSLogix5000 proporcionan compatibilidad con los elementos de lenguaje comunes y con las opciones de texto estructurado, diagrama de lógica de escalera, diagrama de funciones secuenciales, y diagrama de bloques de funciones. Además, el entorno utiliza un formato de importación/exportación 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.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 372: 1756-pm001_-es-p

B-4 Cumplimiento de la norma IEC61131-3

Conjunto de instrucciones El conjunto de instrucciones especificado por IEC61131-3 es completamente opcional. La especificación lista un conjunto de instrucciones limitado que, si se implementa, debe cumplir con la ejecución y representación visual declaradas. Sin embargo, IEC61131-3 no limita el conjunto de instrucciones a las listadas dentro de la especificación. Cada suministrador de PLC puede implementar funciones adicionales en forma de instrucciones aparte de las listadas por la especificación. Algunos ejemplos de dichas instrucciones extendidas son aquellas necesarias para realizar diagnósticos, control de lazo PID, control de movimiento y manipulación de archivos de datos. Puesto que las instrucciones extendidas no son definidas por la especificación IEC61131-3, no existe garantía de que la implementación entre los diferentes suministradores de PLC será compatible. Por lo tanto, la utilización de estas instrucciones puede impedir la transferencia de lógica entre suministradores.

Los controladores Logix5000 y RSLogix5000 proporcionan un conjunto de instrucciones que se ejecutan según lo definido por la especificación IEC61131-3. La representación física de estas instrucciones mantiene su diseño común con sistemas existentes a fin de reducir el costo de capacitación asociado con trabajar en el entorno. Además de las instrucciones que cumplen con la especificación IEC61131-3, se ha incorporado al entorno una gama completa de instrucciones de productos existentes a fin de no perder funcionalidad.

Portabilidad de programas según IEC61131-3

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 diseñados por diferentes suministradores. Esta área es una debilidad de IEC61131-3 porque no hay un formato de intercambio de archivos definido por la especificación. Esto significa que cualquier programa creado en el entorno de un suministrador requerirá manipulación para transferirlo al sistema de otro suministrador.

A fin de minimizar el esfuerzo requerido para realizar la portabilidad entre diferentes suministradores, el software de programación RSLogix 5000 para los controladores incluye una utilidad de exportación e importación ASCII. Además, el formato de archivo utilizado por esta herramienta se basa en un híbrido de la definición del lenguaje de texto estructurado de IEC61131-3. El sistema de operación del controlador y las definiciones de los datos siguen los formatos IEC61131-3 apropiados. Se implementaron extensiones a fin de convertir la lógica de diagrama de lógica de escalera en texto ASCII puesto que esto no está definido por IEC61131-3.

Para obtener más información sobre la utilidad de exportación e importación ASCII del software de programación RSLogix 5000, vea el Logix5000 Controllers Import/Export Reference Manual, publicación 1756-RM084.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 373: 1756-pm001_-es-p

Cumplimiento de la norma IEC61131-3 B-5

Tablas sobre cumplimiento con especificaciones IEC

Los controladores Logix5000 y RSLogix5000 cumplen con los requisitos de IEC61131-3 referentes a las siguientes funciones de lenguaje:

Número de Tabla:(1)

Número de función:

Descripción de la función: Notas sobre extensiones e implementación:

1 2 Letras en minúscula Ninguno

1 3a Signo de número (#) Se usa para designación de tipo de datos de valor inmediato

1 4a Signo de dólar ($) Se usa para descripción y carácter de control de cadena

1 6a Delimitadores de subíndice ([ ]) Subíndices de matriz

2 1 Identificadores que usan mayúsculas y números Nombres de tag, tarea, programa, rutina, estructura

2 2 Identificadores que usan mayúsculas, números y caracteres de subrayado incorporados

Nombres de tag, tarea, programa, rutina, estructura

2 3 Identificadores que usan mayúsculas y minúsculas, números y caracteres de subrayado incorporados

Nombres de tag, tarea, programa, rutina, estructura

3 1 Comentarios Comentarios ST, también soporte /* Comentario */, y // Comentarios de fin de línea.

4 1 Entero literal 12, 0, -12

4 2 Real literal 12.5, -12.5

4 3 Real literal con exponentes -1.34E-12, 1.234E6

4 4 Base 2 literal 2#0101_0101

4 5 Base 8 literal 8#377

4 6 Base 16 literal 16#FFE0

4 7 Cero y uno booleano 0, 1

5 1a Cadena vacía '' Editor de cadena y descripciones

5 1b Cadena de longitud uno que contiene un carácter 'A'

Editor de cadena y descripciones

5 1c Cadena de longitud uno que contiene un espacio ' '

Editor de cadena y descripciones

5 1d Cadena de longitud uno que contiene un carácter de una sola comilla '$''

Editor de cadena y descripciones

5 1E Cadena de longitud uno que contiene un carácter de doble comilla

Editor de cadena y descripciones

5 1F Cadena de longitud dos que contiene caracteres CR y LF

Editor de cadena y descripciones

5 1G Cadena de longitud uno que contiene el carácter LF '$0A'

Editor de cadena y descripciones

5 1H Cadena de longitud 5 que se imprimiría como “$1.00” usando '$$1.00'

Editor de cadena y descripciones

5 1I Cadenas equivalentes de longitud dos 'AE' y '$C4$CB'

Editor de cadena y descripciones

6 2 Signo de dólar en cadena '$$' Editor de cadena y descripciones

6 3 Una comilla en cadena '$'' Editor de cadena y descripciones

6 4 Avance de línea en cadena '$L' o '$l' Editor de cadena y descripciones

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 374: 1756-pm001_-es-p

B-6 Cumplimiento de la norma IEC61131-3

6 5 Nueva línea en cadena '$N' o '$n' Editor de cadena y descripciones

6 6 Alimentación de impresora en cadena (página) '$P' o '$p'

Editor de cadena y descripciones

6 7 Retorno de carro en cadena '$R' o '$r' Editor de cadena y descripciones

6 8 Tabulación en cadena '$T' o '$t' Editor de cadena y descripciones

6 9 Doble comilla en cadena $” Editor de cadena y descripciones

10 1 Tipo de datos BOOL Definición de variable de tag

10 2 Tipo de datos SINT Definición de variable de tag

10 3 Tipo de datos INT Definición de variable de tag

10 4 Tipo de datos DINT Definición de variable de tag

10 10 Tipo de datos REAL Definición de variable de tag

10 12 Tiempo Definición de variable de tag, estructura TIMER

10 16 Tipo de datos STRING 8 bits

11 1 Jerarquía de tipos de datos Ninguno

12 1 Derivación directa de tipos elementales Estructuras de tipos de datos definidas por el usuario

12 4 Tipos de datos de matriz Definición de variable de tag

12 5 Tipos de datos estructurados Estructuras de tipos de datos definidas por el usuario

13 1 Valor inicial de 0 BOOL, SINT, INT, DINT Definición de variable de tag

13 4 Valor inicial de 0.0 REAL, LREAL Definición de variable de tag

13 5 Valor inicial de tiempo de T#0s Definición de variable de tag, instrucción restablecer (RES)

13 9 Cadena vacía '' Descripciones y cadenas

14 1 Inicialización de tipos derivados directamente Importación/exportación

14 4 Inicialización de tipos de datos de matriz Importación/exportación

14 5 Inicialización de elementos de tipo estructurado Importación/exportación

14 6 Inicialización de tipos de datos estructurados derivados

Importación/exportación

19a 2a Invocación textual, no formal Disponible en ST

20 1 Uso de EN y ENO Función presente en LD pero no etiquetada. Disponible en FBD.

20 2 Uso sin EN y ENO Disponible en FBD

20 3 Uso con EN y sin ENO Disponible en FBD

20 4 Uso sin EN y con ENO Disponible en FBD

21 1 Funciones sobrecargadas ADD(INT, DINT) o ADD(DINT, REAL)

Todos los tipos sobrecargados aceptados están documentados con cada instrucción

22 1 Función de conversión _TO_ Instrucciones RAD, DEG, Radianes hacia/desde decimal Conversión numérica de cadena STOD, STOR, RTOS, DTOS. No se necesitan otras debido a sobrecarga de instrucciones.

22 2 Truncar función de conversión Instrucción TRN en LD y función TRUNC en ST

22 3 Convertir BCD a INT Instrucción FRD en LD

Número de Tabla:(1)

Número de función:

Descripción de la función: Notas sobre extensiones e implementación:

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 375: 1756-pm001_-es-p

Cumplimiento de la norma IEC61131-3 B-7

22 4 Convertir INT a BCD Instrucción TOD en LD

23 1 Valor absoluto Instrucción ABS

23 2 Raíz cuadrada Instrucción SQR en LD y funciones FBD y SQRT en ST.

23 3 Logaritmo natural Instrucción LN

23 4 Logaritmo de base 10 instrucción LOG

23 6 Seno en radianes Instrucción/función SIN

23 7 Coseno en radianes Instrucción/función COS

23 8 Tangente en radianes Instrucción/función TAN

23 9 Arco seno principal Instrucción ASN en LD y funciones FBD y ASIN en ST

23 10 Arco coseno principal Instrucción ASC en LD y funciones FBD y ACOS en ST

23 11 Arco tangente principal Instrucción ATN en LD y funciones FBD y ATAN en ST

24 12 Suma aritmética Instrucción ADD en LD y FBD y + en ST.

24 13 Multiplicación aritmética Instrucción MUL en LD y FBD y * ST.

24 14 Resta aritmética Instrucción SUB en LD y FBD y – en ST.

24 15 División aritmética Instrucción DIV en LD y FBD y / en ST.

24 16 Modulo Instrucción MOD en LD y ST

24 17 Exponenciación Instrucción XPY en LD y FBD y ** en ST.

24 18 Transferir valor Instrucción MOV en LD y := en ST.

25 1 Desplazamiento de bit a la izquierda Funcionalidad de la instrucción BSL en LD para desplazamiento de 1

25 2 Desplazamiento de bit a la derecha Funcionalidad de la instrucción BSR en LD para desplazamiento de 1

25 3 Rotación de bit hacia la izquierda Funcionalidad de la instrucción BSL en LD para desplazamiento de 1

25 4 Rotación de bit hacia la derecha Funcionalidad de la instrucción BSR en LD para desplazamiento de 1

26 5 AND Instrucción BAND en FBD y operador “&” en ST

26 6 OR Instrucción BOR en FBD

26 7 XOR Instrucción BXOR en FBD

26 8 NOT Instrucción BNOT en FBD

27 1 SELECT Instrucción SEL en FBD

27 2a Selección máxima MAX Funcionalidad de la instrucción ESEL en FBD y ST

27 2b Selección mínima MIN Funcionalidad de la instrucción ESEL en FBD y ST

27 3 Límite bajo/alto LIMIT Instrucción HLL en FBD y ST

27 4 Multiplexor MUX Instrucción MUX en FBD

Número de Tabla:(1)

Número de función:

Descripción de la función: Notas sobre extensiones e implementación:

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 376: 1756-pm001_-es-p

B-8 Cumplimiento de la norma IEC61131-3

28 5 Comparación mayor que Instrucción GRT en LD y FBD y > en ST.

28 6 Comparación mayor o igual que Instrucción GRE en LD y FBD y >= en ST.

28 7 Comparación igual que Instrucción EQU en LD y FBD y = en ST.

28 8 Comparación menor que Instrucción LES en LD y FBD y < en ST.

28 9 Comparación menor o igual que Instrucción LEQ en LD y FBD y <= en ST.

28 10 Comparación diferente que Instrucción NEQ en LD y FBD y <> en ST.

29 1 Longitud de cadena LEN Contenido como parámetro del tipo de datos STRING

29 4 Cadena media MID Instrucción MID en LD y ST

29 5 Concatenar cadenas CONCAT Instrucción CONCAT en LD y ST

29 6 Insertar cadena INSERT Instrucción INSERT en LD y ST

29 7 Eliminar cadena DELETE Instrucción DELETE en LD y ST

29 9 Encontrar cadena FIND Instrucción FIND en LD y ST

32 1 Lectura de entrada FBD y ST

32 2 Escritura de entrada FBD y ST

32 3 Lectura de salida FBD y ST

32 4 Escritura de salida FBD y ST

34 1 Establecimiento biestable dominante Instrucción SETD en FBD y ST

34 2 Restablecimiento biestable dominante Instrucción RESD en FBD y ST

35 1 Detector de flanco ascendente Instrucción OSR en LD e instrucción OSRI en FBD y ST

35 2 Detector de flanco descendente Instrucción OSR en LD e instrucción OSFI en FBD y ST

36 1b Contador progresivo Funcionalidad de las instrucciones CTU y RES en LD y funcionalidad de la instrucción CTUD en FBD Y ST

37 2a Temporizador de retardo a la conexión Funcionalidad de la instrucción TON en LD y funcionalidad de la instrucción TONR en FBD y ST

37 3a Temporizador de retardo a la desconexión Funcionalidad de la instrucción TOF en LD y funcionalidad de la instrucción TOFR en FBD y ST

38 2 Temporización de retardo a la conexión Funcionalidad de la instrucción TON en LD y funcionalidad de la instrucción TONR en FBD y ST

38 3 Temporización de retardo a la desconexión Funcionalidad de la instrucción TOF en LD y funcionalidad de la instrucción TOFR en FBD y ST

40 1a Paso SFC

40 1b Paso inicial SFC

40 2a Paso textual SFC Importación/exportación, el nombre del paso se especifica usando el formato “Operand := step_name”

Número de Tabla:(1)

Número de función:

Descripción de la función: Notas sobre extensiones e implementación:

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 377: 1756-pm001_-es-p

Cumplimiento de la norma IEC61131-3 B-9

40 2b Paso inicial textual SFC Importación/exportación, usa el parámetro “InitialStep” y el nombre del paso se especifica usando el formato “Operand := step_name”

40 3a Formato general de indicador de paso SFC Tag de respaldo de paso

40 4 Formato general de tiempo transcurrido de paso Tag de respaldo de paso

41 1 Transición usando ST

41 5 Formato textual de transición Importación/exportación con formato diferente

41 7 Nombre de transición Tag de respaldo de transición

41 7a Transición establecida por LD Tag de respaldo de transición

41 7b Transición establecida por FBD Tag de respaldo de transición

41 7d Transición establecida por ST Tag de respaldo de transición

42 1 Acción booleana Tag de respaldo de acción

42 3s Representación textual de acción Importación/exportación

43 1 Asociación de Paso Acción

43 2 Paso con acciones concatenadas

43 3 Cuerpo textual de paso Importación/exportación con formato diferente

43 4 Campo cuerpo acción ST incorporado

44 1 Calificador de bloque de acción

44 2 Nombre de bloque de acción

44 3 Tag indicador de acción Extendido para compatibilidad con DINT, INT, SINT o REAL además de BOOL

44 5 Acción usando ST Compatibles con ST incorporado y rutina JSR a ST

44 6 Acción usando LD Usando rutina JSR a LD

44 7 Acción usando FBD Usando rutina JSR a FBD

45 1 Calificador de acción Ninguno La opción predeterminada es N cuando None se introduce explícitamente

45 2 Calificador de acción N – No almacenado

45 3 Calificador de acción R – Restablecido

45 4 Calificador de acción S – Establecido / Almacenado

45 5 Calificador de acción L – Tiempo limitado

45 6 Calificador de acción D – Con retardo de tiempo

45 7 Calificador de acción P – Pulso

45 8 Calificador de acción SD – Almacenado y con retardo de tiempo

45 9 Calificador de acción DS – Con retardo de tiempo y almacenado

45 10 Calificador de acción SL – Almacenado y tiempo limitado

45 11 Calificador de acción P1 – Flanco ascendente de pulsos

45 12 Calificador de acción P0 – Flanco descendente de pulsos

Número de Tabla:(1)

Número de función:

Descripción de la función: Notas sobre extensiones e implementación:

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 378: 1756-pm001_-es-p

B-10 Cumplimiento de la norma IEC61131-3

45a 1 Control de acción

45a 2 Control de acción

46 1 Secuencia única SFC

46 2a Divergencia de selección de secuencias SFC Uso de conexiones de línea vs. asterisco

46 2b Divergencia de selección de secuencias SFC con orden de ejecución

46 3 Convergencia de selección de secuencias SFC

46 4a Divergencia de secuencias simultáneas SFC

46 4b Convergencia de secuencias simultáneas SFC

46 5a, b, c Salto de secuencia SFC

46 6a, b, c Lazo de secuencia SFC

46 7 Flechas direccionales de lazo SFC Cuando el cable está oculto

47 1 Representación gráfica de SFC

47 4 Representación gráfica de SFC

48 1 Requisitos mínimos de cumplimiento de paso SFC

Consulte las notas en las tablas individuales anteriores.

48 2 Requisitos mínimos de cumplimiento de transición SFC

Consulte las notas en las tablas individuales anteriores.

48 3 Requisitos mínimos de cumplimiento de acción SFC

Consulte las notas en las tablas individuales anteriores.

48 4 Requisitos mínimos de cumplimiento de cuerpo de acción SFC

Consulte las notas en las tablas individuales anteriores.

48 5 Requisitos mínimos de cumplimiento de calificador de acción SFC

Consulte las notas en las tablas individuales anteriores.

48 6 Requisitos mínimos de cumplimiento de bifurcación SFC

Consulte las notas en las tablas individuales anteriores.

48 7 Requisitos mínimos de cumplimiento de conexión de bloque SFC

Consulte las notas en las tablas individuales anteriores.

55 1 ST Paréntesis (expresión)

55 2 Evaluación de función ST Uso de formato de invocación no formal para funciones incorporadas. JSR usada dentro del lenguaje ST para llamar al código desarrollado por el usuario.

55 3 ST Exponenciación **

55 4 ST Negación -

55 5 ST Negación NOT

55 6 ST Multiplicar *

55 7 ST Dividir /

55 8 ST Modulo MOD

55 9 ST Sumar +

55 10 ST Restar -

55 11 ST Comparación <, >, <=, >=

Número de Tabla:(1)

Número de función:

Descripción de la función: Notas sobre extensiones e implementación:

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 379: 1756-pm001_-es-p

Cumplimiento de la norma IEC61131-3 B-11

55 12 ST Igualdad =

55 13 ST Desigualdad <>

55 14 ST Booleano AND como &

55 15 ST Booleano AND

55 16 ST Booleano XOR

55 17 ST Booleano OR

56 1 Asignación ST :=

56 2 Invocación de bloque de función ST

56 3 ST RETORNO RET( ) con múltiples parámetros

56 4 ST IF / ELSIF / ELSE/ END_IF

56 5 ST CASE OF / ELSE / END_CASE

56 6 ST FOR / END_FOR

56 7 ST WHILE DO / END_WHILE

56 8 ST REPEATE / UNTIL / END_REPEAT

56 9 ST EXIT

56 10 Comando ST vacío ;

57 1, 2 Línea horizontal Editor LD, editor FBD

57 3, 4 Línea vertical Editor LD, editor FBD

57 5, 6 Conexión horizontal / vertical Editor LD, editor FBD

57 7, 8 Cruces del líneas sin conexión Editor FBD

57 9, 10 Esquinas con conexión y sin conexión Editor LD, editor FBD

57 11, 12 Bloques con conexiones Editor LD, editor FBD

57 13,14 Conectores Editor FBD

58 2 Salto incondicional Instrucción JMP en LD

58 3 Saltar receptor Instrucción LBL en LD

58 4 Salto condicional Instrucción JMP en LD

58 5 Retorno condicional Instrucción RET en LD

58 8 Retorno incondicional Instrucción RET en LD

59 1 Línea de tensión izquierda Editor LD

59 2 Línea de tensión derecha Editor LD

60 1 Vínculo horizontal Editor LD

60 2 Vínculo vertical Editor LD

61 1, 2 Contacto normalmente abierto --| |-- Instrucción XIC en LD

61 3, 4 Contacto normalmente cerrado --| / |-- Instrucción XIO en LD

61 5, 6 Contacto de detección de transición positiva -| P |-

Instrucción ONS en LD

62 1 Bobina --( )-- Instrucción OTE en LD

Número de Tabla:(1)

Número de función:

Descripción de la función: Notas sobre extensiones e implementación:

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 380: 1756-pm001_-es-p

B-12 Cumplimiento de la norma IEC61131-3

62 3 Establecer (enclavar) bobina Funcionalidad de la instrucción OTL en LD

62 4 Restablecer (desenclavar) bobina Funcionalidad de la instrucción OTU en LD

62 8 Bobina de detección de transición positiva Instrucción OSR en LD

62 9 Bobina de detección de transición negativa Instrucción OSF en LD

(1) Se omitió la tabla asociada con lenguajes que no son texto estructurado, diagrama de funciones secuenciales, diagrama de lógica de escalera y diagrama de bloques de funciones.

Número de Tabla:(1)

Número de función:

Descripción de la función: Notas sobre extensiones e implementación:

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 381: 1756-pm001_-es-p

Glosario

A acción

En un diagrama de funciones secuenciales (SFC), una acción representa una división funcional de un paso. Varias acciones constituyen un paso. Cada acción realiza una función específica, como por ejemplo, controlar un motor, abrir una válvula o colocar un grupo de dispositivos en un modo específico.

Cada acción incluye un calificador. Cuando un paso está activo (se está ejecutando) el calificador determina cuándo comienza y se detiene la acción.

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 ejecución de instrucción

• 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. Después 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 inicialización

Una tarea opcional que se ejecuta cuando el controlador se enciende en el modo Marcha. Para usar el Administrador de inicialización, se debe crear un programa de encendido y la rutina principal asociada.

Paso

…y hacer estoMEZCLAR

Acciones

Hacer esto…

1 Publicación 1756-PM001E-ES-P - Agosto 2002

Page 382: 1756-pm001_-es-p

Glosario 2

El Administrador de inicialización se ejecuta de la siguiente manera:

alcance

Define dónde 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 específico, tal como se indica a continuación.

42195

¿Se encendió el controlador en el modo Marcha?

No El controlador permanece en el modo actual.

Se ejecuta el programa Administrador de inicialización.

No El controlador permanece en el modo Marcha y ejecuta la lógica

Ocurre el fallo mayor tipo 1, código 1.

¿Contiene un programa el Administrador de inicialización?

¿Se borró el fallo mayor? Sí

No

El controlador entra en el modo fallo.

El controlador permanece en el modo Marcha y ejecuta la lógica

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 383: 1756-pm001_-es-p

Glosario 3

Puede tener múltiples 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.

42195

tags a los cuales pueden tener acceso todas las rutinas y dispositivos externos (por ejemplo, controladores)

tags a los cuales sólo pueden tener acceso las rutinas en MainProgram

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 384: 1756-pm001_-es-p

Glosario 4

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 volátil del controlador. Esto sobrescribirá cualquier proyecto que esté actualmente en la memoria no volátil. Vea cargar, memoria no volátil.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 385: 1756-pm001_-es-p

Glosario 5

almacenar en caché

Dejar la conexión abierta después que concluye una instrucción MSG. Esto es útil si se ejecuta repetidamente la instrucción MSG puesto que iniciar la conexión cada vez aumenta el tiempo de escán.

La tabla siguiente indica cuáles mensajes usan conexión y si es posible almacenar la conexión en caché:

1 Sólo algunos módulos receptores requieren una conexión.

2 Considere almacenamiento en caché sólo si el módulo receptor requiere una conexión.

Realice los siguientes pasos para seleccionar una opción de caché para un mensaje que usted puede almacenar en caché.

Este tipo de mensaje: Usando este método de comunicación:

Usa una conexión:

La cual se puede poner en caché:

Lectura o escritura de la tabla de datos CIP

CIP ✓ ✓

PLC2, PLC3, PLC5 o SLC (todos los tipos)

CIP

CIP con ID de origen

DH+ ✓ ✓

CIP genérico N/A ✓ 1 ✓ 2

transferencia en bloques de lectura o escritura

N/A ✓ ✓

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 386: 1756-pm001_-es-p

Glosario 6

1. ¿Cambia la ruta de acceso de un mensaje la lógica? (Por ej., ¿se comunica una instrucción MSG con más de un dispositivo?)

2. ¿A cuántos controladores envía mensajes que usted puede almacenar en caché este controlador?

Vea conexión, conexión sin caché.

Si: Entonces:

Sí A. Borre la casilla de verificación Cache Connection.B. Omita el paso 2.

No Vaya al paso 2.

Si: Entonces:16 ó menos controladores

Deje seleccionada la casilla de verificación Cache Connection.

más de 16 controladores

A. Seleccione 16 controladores que requieran los mensajes más frecuentes.

B. ¿Se envía este mensaje a uno de esos controladores?

Si: Entonces

Sí Deje seleccionada la casilla de verificación Cache Connection.

No Borre la casilla de verificación Cache Connection.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 387: 1756-pm001_-es-p

Glosario 7

aplicación

La combinación de rutinas, programas, tareas y configuraciones de E/S usadas para definir la operación de un solo controlador. Vea proyecto.

ASCII

Un código de 7 bits (con un bit de paridad opcional) que se usa para representar caracteres alfanuméricos, signos de puntuación y caracteres de código de control. Para obtener una lista de códigos ASCII, vea la contraportada de este manual.

asíncrono

Acciones que ocurren independientemente una de otra y que no tienen un patrón regular. En los controladores Logix5000, los valores de E/S se actualizan de manera asíncrona a la ejecución de la lógica.

• Los programas dentro de una tarea obtienen acceso a los datos de entrada y salida directamente desde la memoria del controlador cubierto.

• La lógica dentro de cualquier tarea puede modificar los datos de alcance del controlador.

• Los valores de datos y E/S son asíncronos y se pueden cambiar durante la ejecución de la tarea.

• Un valor de entrada al cual se hace referencia al inicio de la ejecución de la tarea puede ser diferente cuando se hace referencia al mismo más tarde.

ATENCIÓN

!Asegúrese de que la memoria de datos contiene los valores apropiados durante toda la ejecución de la tarea. Usted puede duplicar o almacenar en un búfer los datos al inicio del escán para proporcionar valores de referencia para la lógica.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 388: 1756-pm001_-es-p

Glosario 8

B bifurcación

No hay un límite del número de niveles de bifurcación en paralelo que usted puede introducir. La figura siguiente muestra una bifurcación en paralelo con cinco niveles. El renglón principal es el primer nivel de bifurcación, seguido por cuatro bifurcaciones adicionales.

Se pueden anidar las bifurcaciones hasta en 6 niveles. La figura siguiente muestra una bifurcación anidada. La instrucción de salida inferior se encuentra en una bifurcación anidada que tiene tres niveles.

instrucción de entrada instrucción de salida

instrucción de entrada instrucción de salida

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 389: 1756-pm001_-es-p

Glosario 9

binario

Los valores enteros mostrados en pantalla e introducidos en base 2 (cada dígito 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 dígitos se separa mediante un carácter de subrayado para facilitar la legibilidad. Vea decimal, hexadecimal, octal.

bit

Dígito binario. Esta es la unidad más pequeña de memoria. Representado por los dígitos 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.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 390: 1756-pm001_-es-p

Glosario 10

C cadena

Un grupo de tipos de datos que almacena caracteres ASCII.

Cada tipo de datos de cadena contiene los siguientes miembros:

Los nuevos tipos de datos de cadena son útiles en las siguientes situaciones:

• Si tiene un gran número de cadenas con un tamaño fijo de menos de 82 caracteres, puede conservar memoria creando un nuevo tipo de datos de cadena.

• Si tiene que manejar cadenas de más de 82 caracteres, puede crear un nuevo tipo de datos de cadena adecuado para el número de caracteres requerido.

42811

42812

o bienPuede usar el tipo de datos STRING predeterminado. Éste almacena hasta 82 caracteres.

Puede crear un nuevo tipo de datos de cadena para almacenar el número de caracteres definido.

Nombre: Tipo de datos:

Descripción: Notas:

LEN DINT número de caracteres en la cadena

LEN automáticamente actualiza el nuevo conteo de caracteres cada vez que usted:

• usa el cuadro de diálogo Explorador de cadena para introducir caracteres

• usa instrucciones que leen, convierten o manipulan una cadena

LEN muestra la longitud de la cadena actual. El miembro DATA puede contener caracteres adicionales antiguos, los cuales no se incluyen en el conteo de LEN.

Datos Matriz SINT Caracteres ASCII de la cadena

• Para acceder a los caracteres de la cadena, direccione el nombre del tag.Por ejemplo, para acceder a los caracteres del tag string_1, introduzca string_1.

• Cada elemento de la matriz DATA contiene un carácter.

• Usted puede crear nuevos tipos de datos de cadena que almacenen menos o más caracteres.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 391: 1756-pm001_-es-p

Glosario 11

El siguiente ejemplo muestra el tipo de datos STRING y un nuevo tipo de datos de cadena.

calificador

En la acción de un organigrama de función secuencial (SFC), un calificador define cuándo se inicia y se detiene una acción.

Vea acción, diagrama de funciones secuenciales, paso.

cambio de estado (COS)

Cualquier cambio del estado de un punto o grupo de puntos en un módulo de E/S.

IMPORTANTE Tenga cuidado cuando cree un nuevo tipo de datos de cadena. Si posteriormente decide cambiar el tamaño del tipo de datos de cadena, puede perder datos en cualquier tag que actualmente use ese tipo de datos.

Si usted: Entonces:

hace un tipo de datos de cadena más pequeño

• Los datos se truncan.• LEN no se cambia.

hace un tipo de datos de cadena más grande

El dato y LEN se restablecen a cero.

42234

Este tag es una matriz de 20 elementos del tipo de datos STRING predeterminado.

Este tag usa el tipo de datos STRING predeterminado.

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

sólo 24 caracteres.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 392: 1756-pm001_-es-p

Glosario 12

carga

El proceso de transferir el contenido del controlador a un archivo del proyecto en la estación 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 renglón

• las descripciones de tags, tareas, programa, rutinas, módulos o estructuras definidas por el usuario

• cadenas de alias (seudónimo 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 seudónimo más apto que puede no reflejar cómo se especificó el seudónimo en el proyecto original.

Vea descarga.

cargar

Copiar un proyecto desde la memoria no volátil a la memoria de usuario (RAM) del controlador. Esto sobrescribirá cualquier proyecto que esté actualmente en el controlador. Vea memoria no volátil, almacenar.

CIP

Vea Protocolo de control e información.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 393: 1756-pm001_-es-p

Glosario 13

clave de origen

Un mecanismo que limita quién puede ver una rutina.

• Una clave de origen se asigna a una o más rutinas.

• Las claves de origen siguen las mismas reglas para nombres que otros componentes RSLogix 5000, tales como las rutinas, los tags y los módulos.

• 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.

codificación electrónica

Una función de la línea de E/S 1756 que permite la solicitud de módulos para realizar una verificación electrónica a fin de asegurar que el módulo físico es igual a lo que configuró el software. Habilita al usuario mediante el software para evitar el uso de módulos incorrectos o revisión incorrectas. Vea módulo compatible, inhabilitación de la codificación, exactamente igual.

conexión

El mecanismo de comunicación desde el controlador a otro módulo en el sistema de control. Existe un límite del número de conexiones que puede tener un solo controlador. Las comunicaciones con los módulos de E/S, tags consumidos, tags producidos e instrucciones MSG usan conexiones para transferir los datos.

conexión bidireccional

Una conexión en la cual los datos fluyen en ambas direcciones: desde el originador al receptor y desde el receptor al originador. Vea conexión, conexión unidireccional.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 394: 1756-pm001_-es-p

Glosario 14

conexión de sólo recepción

Una conexión de E/S en la que otro controlador posee/proporciona los datos de configuración para el módulo de E/S. Un controlador que usa una conexión de sólo recepción no escribe los datos de configuración y puede mantener una conexión solamente al módulo de E/S cuando el controlador propietario está controlando activamente el módulo de E/S. Vea controlador propietario.

conexión sin caché

Con la instrucción MSG, una conexión sin caché indica al controlador que cierre la conexión una vez concluida la instrucción MSG. El cortar la conexión la hace disponible para otros usos del controlador. Vea conexión, conexión con caché.

conexión unidireccional

Una conexión en la cual los datos fluyen en una sola dirección: desde el originador hasta el receptor. Vea conexión, conexión bidireccional.

contador

Tipo de datos de estructura que contiene la información de estado y control para las instrucciones de contador.

controlador propietario

El controlador que crea la conexión primaria de configuración y comunicación a un módulo. El controlador propietario escribe los datos de configuración y establece una conexión al módulo. Vea conexión de sólo recepción.

D 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 estación de trabajo al controlador. Vea carga.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 395: 1756-pm001_-es-p

Glosario 15

descripción

Texto opcional que se puede usar para documentar más detalladamente la aplicación.

• Se puede usar cualquier carácter imprimible, incluso el retorno de carro, tabulación y espacio.

• Las descripciones no se descargan al controlador. Éstas permanecen en el archivo del proyecto fuera del línea.

• Las descripciones tienen las siguientes limitaciones de longitud:

– Para tags, se puede usar hasta 120 caracteres.

– Para otros objetos (tareas, programas ,módulos, 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 máquina o un proceso.

Vea acción, paso, transición.

difusión múltiple

Un mecanismo que permite que un módulo envíe datos mediante una red que son recibidos simultáneamente por más de un dispositivo de sólo recepción. Describe la función de la línea de E/S ControlLogix que permite que múltiples controladores reciban datos de entrada simultáneamente desde el mismo módulo de E/S.

dimensión

La especificación del tamaño de una matriz. Las matrices pueden tener hasta tres dimensiones. Vea matriz.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 396: 1756-pm001_-es-p

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 más 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 ejecución. Puesto que esto requiere memoria y tiempo adicional, minimice el uso de los tipos de datos SINT e INT.

directa

Una conexión de E/S en que el controlador establece conexiones individuales a un módulo de E/S. Vea rack optimizado.

E 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 según sus subíndices:

Vea matriz.

Para esta matriz: Especifique:

una dimensión array_name[subscript_0]

dos dimensiones array_name[subscript_0,subscript_1]

tres dimensiones array_name[subscript_0,subscript_1, subscript_2]

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 397: 1756-pm001_-es-p

Glosario 17

en línea

Ver y editar el proyecto en un controlador. Vea fuera de línea.

estilo

El formato en que se muestran los valores numéricos. 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 combinación de tags individuales y la mayoría de las otras estructuras.

• Para copiar datos a una estructura, use la instrucción COP. Vea la Logix5000 Controllers General Instructions Reference Manual, publicación 1756-RM003.

Los tipos de datos COUNTER y TIMER son ejemplos de estructuras usadas comúnmente.

Vea miembro, tipo de datos definido por el usuario.

42365

Para expandir una estructura y mostrar sus miembros, haga clic en el signo +.

Para contraer una estructura y ocultar sus miembros, haga clic en el signo – .

estructura COUNTER

estructura TIMER

tipos de datos de los miembros

miembros de running_seconds

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 398: 1756-pm001_-es-p

Glosario 18

estructura definida por producto

Un tipo de datos de estructura que el software y controlador definen automáticamente. La configuración de un módulo de E/S añade la estructura definida por producto a dicho módulo.

estructura predefinida

Un tipo de datos de estructura que almacena la información asociada para una instrucción específica, tal como la estructura TIMER para las instrucciones de temporizador. Las estructuras predefinidas siempre están disponibles, independientemente de la configuración de hardware del sistema. Vea estructura definida por producto.

exactamente igual

Una protección de codificación electrónica que requiere que todos los atributos (suministrador, número de catálogo y atributos de revisión menor) del módulo físico y el módulo configurado en el software sean iguales para establecer una conexión al módulo.

exponencial

Los valores reales mostrados en pantalla e introducidos en formato científico o exponencial. El número siempre se muestra en pantalla con un dígito a la izquierda del punto decimal seguido por la porción decimal y, luego, por una exponente. Vea estilo.

expresión BOOL

En texto estructurado, una expresión que produce ya sea el valor BOOL de 1 (verdadero) o 0 (falso).

• Una expresión bool usa tags bool, operadores de relación y operadores lógicos para comparar valores y verificar si las condiciones son verdaderas o falsas. Por ejemplo, tag1>65.

• Una expresión bool simple puede ser un tag BOOL simple.

• Normalmente se usan expresiones bool para condicionar la ejecución de la lógica.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 399: 1756-pm001_-es-p

Glosario 19

expresión numérica

En texto estructurado, una expresión que calcula un valor entero o de punto flotante (coma flotante).

• Una expresión numérica usa operadores aritméticos, funciones aritméticas y operadores de bit. Por ejemplo, tag1+5.

• Generalmente se anida una expresión numérica dentro de una expresión booleana. Por ejemplo, (tag1+5)>65.

F fallo mayor

Una condición de fallo que es suficientemente severa para que el controlador se desactive, a menos que se borre una condición. Cuando ocurre un fallo mayor, el controlador:

1. Establece un bit de fallo mayor

2. Ejecuta la lógica de fallo proporcionada por el usuario, si existe.

3. Si la lógica de fallo proporcionada por el usuario no puede borrar el fallo, el controlador entra en el modo fallo.

4. Establece las salidas según su estado de salida durante el modo de programación.

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 instrucción.

– 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 página 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ó, además de hasta dos fallos adicionales no borrados, se registran en el registro de fallos del controlador.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 400: 1756-pm001_-es-p

Glosario 20

Vea estado con fallo, fallo menor.

Ejecute la rutina de fallodel programa actual

¿Se borró el fallo?

ejecute el administrador defallos del controlador

continúa la ejecución de lógica

No

¿Se borró el fallo?sí

No

Entre en el modo falloDesactivación deregistro de FAULTLOG

¿Existe una rutina de fallo del programa?

No

ocurre un fallo mayor

¿Hay un fallo de instrucción?

No

continúa la ejecución de lógica

El controlador registra un fallo mayor en el programa MajorFaultRecord actual

El controlador registra un fallo mayor al administrador de fallos del controlador PROGRAM MajorFaultRecord

Existe el administrador de fallos del controladorsí

No

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 401: 1756-pm001_-es-p

Glosario 21

fallo menor

Una condición de fallo no es suficientemente severa para que el controlador se desactive:

Para borrar fallos menores:

1. En el Controller Organizer, haga clic con el botón derecho del mouse en la carpeta Controller name_of_controller y seleccione Properties.

2. Haga clic en la ficha Minor Fault.

3. Utilice la información de la lista Recent Faults para corregir la causa del fallo. Refer to Códigos de fallos menores on page A-3.

4. Haga clic en el botón Clear Minors.

Vea fallo mayor.

formato de comunicación

Define cómo un módulo de E/S se comunica con el controlador. La selección de un formato de comunicación define:

• qué tags de configuración están disponibles mediante el software de programación

• el método de estructura y la configuración del tag

fuera de línea

Ver y editar un proyecto que está en el disco duro de una estación de trabajo. Vea en línea

H hexadecimal

Los valores enteros mostrados en pantalla e introducidos en base 16 (cada dígito representa 4 bits). Tiene el prefijo 16#. Se proporcionan

Si ocurre lo siguiente: El controlador:

problema con una instrucción 1. establece S:MINOR2. registra información acerca del fallo al objeto

PROGRAM, atributo MinorFaultRecord3. establece el bit 4 del objeto FAULTLOG,

atributo MinorFaultBits

estructura predefinida establece el bit 6 del objeto FAULTLOG, atributo MinorFaultBits

problema con el puerto en serie establece el bit 9 del objeto FAULTLOG, atributo MinorFaultBits

batería baja establece el bit 10 del objeto FAULTLOG, atributo MinorFaultBits

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 402: 1756-pm001_-es-p

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 dígitos se separa mediante un carácter de subrayado para facilitar la legibilidad. Vea binario, decimal, octal.

hora coordinada del sistema (CST)

Un valor de 64 bits que representa el número 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.

I índice

Una referencia usada para especificar un elemento dentro de una matriz.

inhabilitación de la codificación

Un modo de protección de codificación electrónica que no requiere que sean iguales los atributos del módulo físico y el módulo configurado en el software e igualmente establece una conexión al módulo. Vea módulo compatible, exactamente igual.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 403: 1756-pm001_-es-p

Glosario 23

instrucción

El controlador evalúa las instrucciones de lógica de escalera según la condición de renglón que precede a la instrucción (condición de entrada del renglón).

Sólo las instrucciones de entrada afectan la condición de entrada de renglón de instrucciones subsiguientes en el renglón.

• Si la condición de entrada del renglón a una instrucción de entrada es verdadera, el controlador evalúa la instrucción y establece la condición de salida del renglón para que coincida con los resultados de la evaluación.

– Si la instrucción se evalúa como verdadera, la condición de salida del renglón es verdadera.

– Si la instrucción se evalúa como falsa, la condición de salida del renglón es falsa.

• Una instrucción de salida no cambia la condición de salida del renglón.

– Si la condición de entrada del renglón a una instrucción de salida es verdadera, la condición de salida del renglón se establece como verdadera.

– Si la condición de entrada del renglón a una instrucción de salida es falsa, la condición de salida del renglón se establece como falsa.

En los controladores Logix5000, se puede introducir múltiples instrucciones de salida por renglón de lógica. Las instrucciones de salida se pueden introducir:

• en secuencia en el renglón (en serie)

• entre instrucciones de entrada, siempre que la última instrucción del renglón sea una instrucción de salida

El siguiente ejemplo usa más de una salida en un renglón.

instrucción de entrada

condición de entrada de renglón

instrucción de salida

condición de salida del renglón

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 404: 1756-pm001_-es-p

Glosario 24

EJEMPLO Colocar múltiples salidas en un renglón

Cuando running_seconds.CU se activa, running_hours cuenta progresivamente un valor de uno y running_seconds se restablece.

Cuando machine_on se activa, activa drill_1_on. Cuando ambos machine_on y drill[1].part_advance están activados, se activa conveyor_on.

42362

running_seconds.DNCUDN

Count UpCounter running_hoursPreset 500Accum 0

CTURES

running_seconds

machine_on drill_1_on drill[1].part_advance conveyor_on

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 405: 1756-pm001_-es-p

Glosario 25

INT

Un tipo de datos que almacena un valor entero de 16 bits (2-byte) (–32,768 a +32,767). Reduzca al mínimo 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 ejecución. 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 máxima de tiempo entre la producción subsiguiente de datos de entrada.

• Este intervalo se configura típicamente en microsegundos.

• La producción de datos está limitada al múltiplo más grande del tiempo de actualización de la red que sea menor que el intervalo entre paquetes solicitados seleccionado.

• Use una potencia de dos veces el tiempo de actualización de la red (NUT) ControlNet.

Por ejemplo, si el NUT es 5 ms, escriba un régimen de 5, 10, 20, 40 ms, etc.

M 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 demás módulos en el chasis sincronizan sus valores de hora coordinada del sistema según el maestro de hora coordinada del sistema.

matriz

Una matriz le permite agrupar datos (del mismo tipo de datos) bajo un nombre común.

• Una matriz es similar a un archivo.

• Un subíndice (s) identifica a cada elemento individual dentro de la matriz.

• Un subíndice empieza en 0 y se extiende hasta el número de elementos menos 1 (basado en cero).

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 406: 1756-pm001_-es-p

Glosario 26

• 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 través 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 subíndices (coordenadas).

• En una matriz con dos o tres dimensiones, la dimensión del extremo derecho incrementa primero en la memoria.

• El número total de elementos en una matriz es el producto del tamaño de cada dimensión, como se ilustra en los siguientes ejemplos:

42367

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 – .

Esta matriz contiene seis elementos del tipo de datos DINT.

seis DINTelementos de timer_presets

42367La dimensión del extremo derecho se incrementa a su valor máximo y luego vuelve a empezar.

Esta matriz contiene una cuadrícula de elementos de dos dimensiones, seis elementos por seis elementos.

Cuando vuelve a empezar la dimensión del extremo derecho, la dimensión de la izquierda aumenta por un valor de uno.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 407: 1756-pm001_-es-p

Glosario 27

• Puede modificar las dimensiones de la matriz cuando programa fuera de línea sin perder los datos del tag. No puede modificar las dimensiones de la matriz cuando programa en línea.

Esta matriz: Almacena los datos como: Por ejemplo:

una dimensión Nombre de tag:

one_d_array

Tipo

DINT[7]

Dimensión 0

7

Dimensión 1

--

Dimensión 2

--

número total de elementos = 7

rango de subíndice válido DINT[x] donde x=0–6

dos dimensiones Nombre de tag:

two_d_array

Tipo

DINT[4,5]

Dimensión 0

4

Dimensión 1

5

Dimensión 2

--

número total de elementos = 4 ∗ 5 = 20

rango de subíndice válido DINT[x,y] donde x=0–3; y=0–4

tres dimensiones Nombre de tag:

three_d_array

Tipo

DINT[2,3,4]

Dimensión 0

2

Dimensión 1

3

Dimensión 2

4

número total de elementos = 2 ∗ 3 ∗ 4 = 24

rango de subíndice válido DINT[x,y, z] donde x=0–1; y=0–2, z=0–3

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 408: 1756-pm001_-es-p

Glosario 28

memoria

Medios físicos de almacenamiento electrónicos incorporados en un controlador y usados para retener programas y datos.

memoria no volátil

Memoria del controlador que retiene su contenido mientras el controlador no tiene alimentación eléctrica o una batería. Vea cargar, almacenar.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 409: 1756-pm001_-es-p

Glosario 29

miembro

Un elemento de una estructura que tiene su propio tipo de datos y nombre.

• Los miembros pueden ser también 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:

• Si la estructura está incorporada en otra estructura, use el nombre de tag de la estructura al nivel más alto seguido por un nombre de tag de subestructura y un nombre de miembro:

tag_name.substructure_name.member_name

Por ejemplo:

• Si la estructura define una matriz, use el tag de matriz seguido por la posición en la matriz y los nombres de subestructura y miembro.

array_tag[position].member

o bien

array_tag[position].substructure_name.member_name

Esta dirección: Hace referencia al:

timer_1.pre valor PRE de la estructura timer_1.

input_load as data type load_info

input_load.height

miembro height de la estructura input_load definida por el usuario

Esta dirección: Hace referencia al:

input_location como ubicación de tipo de datos

input_location.load_info.height

miembro height de la estructura load_info en la estructura input_location.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 410: 1756-pm001_-es-p

Glosario 30

Por ejemplo:

Vea estructura.

modo con fallo

El controlador generó un fallo mayor, no pudo borrar el fallo y se ha desactivado.

Vea fallo mayor.

módulo compatible

Un modo de protección de codificación electrónica que requiere que el suministrador, número de catálogo y atributos de revisión mayor del módulo físico y del módulo configurado en el software sean iguales para establecer una conexión al módulo.Vea inhabilitación de la codificación, exactamente igual.

módulo de interface (IFM)

Un brazo de cableado de campo de E/S precableadas.

múltiples propietarios

Una configuración donde más de un controlador tiene la misma información de configuración para ser propietario simultáneamente del mismo módulo de entrada.

Esta dirección: Hace referencia al:

conveyor[10].source miembro source del 11vo elemento en la matriz conveyor (los elementos de la matriz se basan en cero).

conveyor[10].info.height miembro height de la estructura info en el 11vo elemento la matriz conveyor (los elementos de la matriz se basan en cero).

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 411: 1756-pm001_-es-p

Glosario 31

N nombre

Los nombres identifican a los controladores, tareas, programas, tags, módulos, etc. Los nombres siguen las reglas de identificación IEC-1131-3 y:

• deben comenzar con un carácter alfabético (A-Z o A-z) o un carácter de subrayado (_)

• pueden contener solamente caracteres alfabéticos, caracteres numéricos y caracteres de subrayado.

• pueden tener hasta 40 caracteres

• no deben tener caracteres de subrayado consecutivos ni al final del nombre (_)

• pueden utilizar mayúsculas/minúsculas

• se descargan al controlador

O objeto

Una estructura de datos que almacena la información de estado. Cuando se introduce una instrucción GSV/SSV, se especifica el objeto y el atributo del mismo al cual se desea obtener acceso. En ciertos casos, existe más de una instancia del mismo tipo de objeto, por lo tanto, también puede ser necesario especificar el nombre del objeto. Por ejemplo, la aplicación 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 dígito 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 dígitos se separa mediante un carácter de subrayado para facilitar la legibilidad. Vea binario, decimal, octal.

P paso

En un diagrama de funciones secuenciales (SFC), un paso representa una función principal de un proceso. Contiene los eventos que ocurren en un momento, fase o estación específica.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 412: 1756-pm001_-es-p

Glosario 32

Vea acción, diagrama de funciones secuenciales, transición.

post-escán

Una función del controlador que permite que se examine la lógica dentro de un programa antes de inhabilitar el programa a fin de restablecer las instrucciones y datos.

preescán

El preescán es un escán intermedio durante la transición al modo Marcha.

• El controlador realiza un preescán cuando se cambia del modo de programación al modo marcha.

• El preescán examina todos los programas e instrucciones e inicializa los datos en base a los resultados.

• Algunas instrucciones se ejecutan de manera diferente durante el preescán que durante el escán normal.

prioridad

Especifica cuál tarea se ejecuta primero si dos tareas se activan simultáneamente.

• La tarea con mayor prioridad se ejecuta primero.

• Las prioridades tienen un rango de 1 a 15; 1 es la prioridad más alta.

• Una prioridad más alta interrumpe las tareas de prioridad más baja.

• Si se activan simultáneamente dos tareas con la misma prioridad, el controlador alterna las tareas cada milisegundo.

Paso

…y hacer estoMEZCLAR

Acciones

Hacer esto…Un paso se ejecuta continuamente hasta que una condición lógica le indique al controlador que vaya al siguiente paso.

Un paso está organizado en una o más acciones. Cada acción realiza una función específica, como por ejemplo, controlar un motor, abrir una válvula o colocar un grupo de dispositivos en un modo específico.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 413: 1756-pm001_-es-p

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 instrucción JSR.

• La carpeta Unscheduled Program contiene programas que no están asignados a una tarea.

• Si la lógica del programa produce un fallo mayor, la ejecución 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 información

El protocolo de mensajes usado por la línea 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 estación de trabajo (o servidor) que almacena la lógica, la configuración, los datos y la documentación para un controlador.

• El archivo de proyecto tiene una extensión .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 títulos del software RSLogix 5000 muestra ambos nombres.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 414: 1756-pm001_-es-p

Glosario 34

Vea aplicación.

R rack optimizado

Una conexión de E/S en que el módulo 1756-CNB recoge palabras de E/S digitales en una imagen de rack (similar A 1771-ASB). Una conexión de rack optimizado conserva las conexiones y el ancho de banda ControlNet; sin embargo, hay disponible información limitada de estado y diagnóstico cuando se usa este tipo de conexión. 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.17549435E–38 (valores negativos)

• 0

• 1.17549435E–38 a 3.40282347E38 (valores positivos)

El tipo de datos REAL también almacena ±infinito, ±NAN, y -IND, pero la pantalla del software es diferente según el formato de la pantalla.

El software también almacena y muestra el rango subnormal IEEE:

• –1.17549421E–38 a –1.40129846E–45 (valores negativos)

• 1.40129846E–45 a 1.17549421E–38 (valores positivos)

Formato de la pantalla: Equivalencia:

Real +infinito– infinito+NAN–NAN–indefinido

1.$–1.$1.#QNAN–1.#QNAN–1.#IND

Exponencial +infinito– infinito+NAN–NAN–indefinido

1.#INF000e+000–1.#INF000e+0001.#QNAN00e+000–1.#QNAN00e+000–1.#IND0000e+000

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 415: 1756-pm001_-es-p

Glosario 35

régimen

Para una tarea periódica, el régimen según 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 inserción con la alimentación eléctrica conectada (RIUP)

Una característica de ControlLogix que permite que un usuario instale o retire un módulo con la alimentación eléctrica del chasis activada.

revisión mayor

La línea de módulos 1756 tiene indicadores de revisión mayor y menor. La revisión mayor se actualiza cuando hay un cambio funcional del módulo. Vea codificación electrónica, revisión menor.

revisión menor

La línea de módulos 1756 tiene indicadores de revisión mayor y menor. La revisión menor se actualiza cuando hay un cambio de un módulo que no afecta la función o interface del mismo. Vea codificación electrónica, revisión mayor.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 416: 1756-pm001_-es-p

Glosario 36

ruta de acceso

La ruta de acceso describe la ruta que sigue el mensaje para llegar al destino. Si la configuración de E/S del controlador contiene el dispositivo de destino, use el botón Browse para seleccionar el dispositivo. Esto define automáticamente la ruta de acceso.

Si la configuración de E/S no contiene el dispositivo, entonces escriba la ruta de acceso al destino usando el siguiente formato:

port,address,port,address

Examinador de ruta de acceso a mensaje

Ruta de acceso:

peer_controller

peer_controller

Configuración de I/O

[0] 1756-CNB/x Local_CNB

2 [0] 1756-CNB/x chassis_b

[1] 1756-L55/x peer_controller

peer_controller

donde: Para este: Representa:

port backplane de cualquier controlador o módulo 1756 1

puerto DF1 desde un controlador Logix5000 2

puerto ControlNet de un módulo 1756-CNB

el puerto EtherNet/IP desde un módulo 1756-ENBx o -ENET

puerto DH+ mediante canal A desde un módulo 1756-DHRIO

puerto DH+ mediante canal B desde un módulo 1756-DHRIO

3

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 417: 1756-pm001_-es-p

Glosario 37

Vea conexión.

address Backplane ControlLogix número de ranura

red DF1 dirección de estación (0-254)

red ControlNet número de nodo (1-99 decimal)

red DH+ 8# seguido del número de nodo (1-77 octal).Por ejemplo, para especificar la dirección de nodo octal de 37, escriba 8#37.

red Ethernet/IP Usted puede especificar un módulo en una red EtherNet/IP usando cualquiera de estos formatos:

Dirección IP (es decir, 130.130.130.5)Dirección IP: Puerto (es decir, 130.130.130.5:24)Nombre DNS (es decir., depósitos)Nombre DNS: Puerto (es decir, depósitos:24)

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 418: 1756-pm001_-es-p

Glosario 38

rutina

Un conjunto de instrucciones de lógica en un solo lenguaje de programación, tal como el diagrama de escalera.

• Las rutinas proporcionan el código de ejecución 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 instrucción JSR en la rutina principal.

• También 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).

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 419: 1756-pm001_-es-p

Glosario 39

S segmento del tiempo de procesamiento interno del sistema

Especifica el porcentaje de tiempo del controlador (excluyendo el tiempo para las tareas periódicas) que se dedica a la comunicación y a las funciones de segundo plano (procesamiento interno del sistema):

• El controlador realiza funciones de procesamiento interno del sistema durante un máximo de 1 ms cada vez.

• Si el controlador completa las funciones de procesamiento interno en menos de 1 ms, continúa con la tarea continua.

• Las funciones de comunicación y de segundo plano incluyen lo siguiente:

– comunicarse con los dispositivos de programación 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 ejecución 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 están realizando suficientemente rápido, aumente el segmento de tiempo del procesamiento interno.

La siguiente tabla muestra la relación entre la tarea continua y las funciones de procesamiento interno del sistema:

Con el segmento de tiempo predeterminado de 10 %, el procesamiento del sistema interrumpe la tarea continua cada 9 ms (de tiempo de tarea continua).

Con este segmento de tiempo:

Las tareas continuas se ejecutan durante:

Y luego el procesamiento interno se realiza como máximo durante:

10% 9 ms 1 ms

20% 4 ms 1 ms

33% 2 ms 1 ms

50% 1 ms 1 ms

Leyenda:

La tarea se ejecuta.

La tarea se interrumpe (se suspende).

1 ms 1 ms

tiempo de procesamiento interno del sistema

9 ms 9 ms

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 420: 1756-pm001_-es-p

Glosario 40

La interrupción de una tarea periódica aumenta el tiempo transcurrido (tiempo del reloj) entre la ejecución del procesamiento interno del sistema.

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).

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).

Si el controlador sólo tiene una tarea (s) periódica, el valor del segmento de tiempo de procesamiento interno del sistema no tiene

tarea continua

5 10 15 20 25

tiempo transcurrido (ms)

1 ms 1 ms 1 ms 1 ms

tarea periódica

1 ms 1 ms

tiempo de procesamiento interno del sistema

9 ms de tiempo de tarea continua

9 ms de tiempo de tarea continua

tarea continua

5 10 15 20 25

tiempo transcurrido (ms)

1 ms 1 ms 1 ms 1 ms 1 ms

tiempo de procesamiento interno del sistema

4 ms 4 ms 4 ms 4 ms 4 ms

tarea continua

5 10 15 20 25

tiempo transcurrido (ms)

1 ms

tiempo de procesamiento interno del sistema

1 ms

tarea continua

5 10 15 20 25

tiempo transcurrido (ms)

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 421: 1756-pm001_-es-p

Glosario 41

efecto. El procesamiento interno del sistema se ejecuta cuando no se está ejecutando una tarea periódica.

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 botón 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.

tarea periódica

tiempo de procesamiento interno del sistema

5 10 15 20 25

tiempo transcurrido (ms)

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 422: 1756-pm001_-es-p

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 cuándo 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 mínimo 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 ejecución. Puesto que esto requiere memoria y tiempo adicional, minimice el uso de los tipos de datos SINT e INT.

superposición de tareas periódicas

Una condición que ocurre cuando una tarea se está ejecutando y la misma tarea se vuelve a activar. El tiempo de ejecución de la tarea es mayor que el régimen periódico configurado para dicha tarea. Vea tarea periódica.

T tag

Un área determinada de la memoria del controlador donde se almacenan datos.

• Los tags son el mecanismo básico para la asignar memoria, hacer referencia a datos de la lógica y monitorizar los datos.

• La mínima asignación 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 sólo 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 más pequeños en palabras de 32 bits.

Los ejemplos siguientes indican la asignación de memoria para varios tags:

– start, que usa el tipo de datos BOOL:

Asignación de memoria

Bits

31 1 0

asignación no se usa Start

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 423: 1756-pm001_-es-p

Glosario 43

– station_status, que usa el tipo de datos DINT:

– mixer, que usa el tipo de datos definido por el usuario:

– temp_buffer, que es una matriz de cuatro INTS (INT[4] ):

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 dimensión 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 también puede hacer referencia a un componente de otro tag refiriéndose a un miembro de una estructura, un elemento de matriz o un bit dentro de un tag o miembro. Vea tag base.

Asignación de memoria

Bits

31 0

asignación station_status

Asignación de memoria

Bits

31 24 23 16 15 8 7 0

asignación 1 mixer.pressure

asignación 2 mixer.temp

asignación 3 mixer.agitate_time

asignación 4 no se usa no se usa no se usa bit 0 mixer.inletbit 1 mixer.drainbit 2 mixer.agitate

Asignación de memoria

Bits

31 16 0

asignación 1 temp_buffer[1] temp_buffer[0]

asignación 2 temp_buffer[3] temp_buffer[2]

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 424: 1756-pm001_-es-p

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 programación para la ejecución de un programa.

• Como opción predeterminada, cada archivo de proyecto nuevo contiene una tarea continua preconfigurada.

• Se configuran las tareas periódicas adicionales según sea necesario.

• Una tarea proporciona información de programación y prioridades para un conjunto de uno o más programas que se ejecutan según criterios específicos.

• 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.

• Sólo se puede asignar un programa a una tarea a la vez.

Vea tarea continua, tarea periódica.

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 periódicas) se puede usar para ejecutar los programas dentro de la tarea continua.

• La tarea continua se reinicia por sí sola después que termina el último de sus programas.

• Un proyecto no requiere una tarea continua.

• Si se usa, sólo puede haber una tarea continua.

• Todas las tareas periódicas 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 periódica.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 425: 1756-pm001_-es-p

Glosario 45

tarea periódica

Una tarea que es activada por el sistema operativo en períodos de tiempo repetitivos.

• Use una tarea periódica para funciones que requieren una ejecución 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 próxima ejecución de la tarea o hasta que otra tarea los manipula.

• El período de tiempo se puede configurar de 1 ms a 2000 s. La opción predeterminada es 10 ms.

• Las tareas periódicas siempre interrumpen la tarea continua.

• Según el nivel de prioridad, una tarea periódica puede interrumpir otras tareas periódicas en el controlador.

Vea tarea continua.

tiempo de actualización de la red (NUT)

El intervalo de tiempo repetitivo durante el cual se pueden enviar datos en una red ControlNet. El tiempo de actualización de la red tiene un rango de 2 ms a 100 ms.

tiempo de ejecución

El total de tiempo requerido para la ejecución de un solo programa.

• El tiempo de ejecución 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 línea, use el cuadro de diálogo Program Properties para ver el tiempo de escán máximo y el último tiempo de escán (en µs) para el programa actual. Estos valores son los tiempos de ejecución para el programa y no incluyen cualquier tiempo usado en espera de otros programas o tareas de prioridad superior.

Vea tiempo transcurrido.

ATENCIÓN

!Asegúrese de que el período de tiempo sea más largo que la suma de los tiempos de ejecución de todos los programas asignados a la tarea. Si el controlador detecta que ocurre una activación de la tarea periódica para una tarea que ya está en operación, ocurre un fallo menor.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 426: 1756-pm001_-es-p

Glosario 46

tiempo de escán

Vea tiempo transcurrido, tiempo de ejecución.

tiempo transcurrido

El total de tiempo necesario para la ejecución de todas las operaciones configuradas dentro de una sola tarea.

• Si el controlador está configurado para ejecutar múltiples tareas, el tiempo transcurrido incluye cualquier tiempo usado/compartido por otras tareas que ejecutan otras operaciones.

• Mientras está en línea, usted puede usar el cuadro de diálogo Task Properties para ver el tiempo de escán máximo y el último tiempo de escán 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 ejecución.

tipo de datos

Una definición del tamaño de memoria y la configuración de memoria que se asignan cuando se crea un tag de ese tipo de datos.

tipo de datos definido por el usuario

También puede crear sus propias estructuras, llamadas tipo de datos definido por el usuario (también comúnmente 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.

• También 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 más tags usando ese tipo de datos.

• Reduzca al mínimo el uso de los siguientes tipos de datos porque éstos generalmente aumentan los requisitos de memoria y el tiempo de ejecución de la lógica.

– 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

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 427: 1756-pm001_-es-p

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 lógica de escalera para copiar los datos entre los miembros en la estructura y los tags de E/S correspondientes. Vea “Cuándo almacenar E/S en el búfer” en la página 12-1.

• Cuando use los tipos de datos BOOL, SINT o INT, coloque los miembros que usan el mismo tipo de datos en secuencia:

• Puede usar matrices de una dimensión.

• Puede crear, editar y eliminar los tipos de datos definidos por el usuario solamente cuando programa fuera de línea.

• Si modifica un tipo de datos definido por el usuario y cambia el tamaño 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 instrucción COP. Vea la Logix5000 Controllers General Instructions Reference Manual, publicación 1756-RM003.

Vea estructura.

más eficiente

BOOL

BOOL

BOOL

DINT

DINT

menos eficiente

BOOL

DINT

BOOL

DINT

BOOL

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 428: 1756-pm001_-es-p

Glosario 48

tipo de datos óptimo

Un tipo de datos que usa una instrucción 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 más rápidamente y requieren menos memoria si todos los operandos de la instrucción 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 según estas reglas

– ¿Es alguno de los operandos un valor REAL?

– Después de la ejecución de la instrucción, el resultado (un valor DINT o REAL) se convierte al tipo de datos de destino, si es necesario.

• Puesto que la conversión de datos requiere memoria y tiempo adicional, se puede aumentar la eficiencia de los programas:

– usando el mismo tipo de datos en toda la instrucción

– reduciendo al mínimo 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 cómo el controlador convierte datos entre tipos de datos:

Si: Entonces los operandos de entrada (por ej. origen, tag en una expresión, límite) se convierten a:

Sí REAL

No DINT

Conversión: Resultado:

número entero mayor a número entero menor

El controlador trunca la porción superior del número entero mayor y genera un overflow.

Por ejemplo:

Decimal Binario

DINT 65,665 0000_0000_0000_0001_0000_0000_1000_0001

INT 129 0000_0000_1000_0001

SINT –127 1000_0001

SINT o INT a REAL No se pierde la precisión de datos.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 429: 1756-pm001_-es-p

Glosario 49

DINT a REAL Se puede perder la precisión 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 precisión, el controlador la toma de la porción menos significativa del DINT.

REAL a número entero El controlador redondea la parte fraccionaria y trunca la porción superior de la parte no fraccionaria. Si se pierden los datos, el controlador establece el indicador de estado de overflow.

Los números se redondean de la manera siguiente:• Los números que no son x.5 se redondean al número más cercano.• X.5 se redondea al número par más cercano.

Por ejemplo:

REAL (origen) DINT (resultado)

–2.5 –2

–1.6 –2

–1.5 –2

–1.4 –1

1.4 1

1.5 2

1.6 2

2.5 2

Conversión: Resultado:

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 430: 1756-pm001_-es-p

Glosario 50

transición

En un organigrama de funciones secuenciales (SFC), una transición es la condición o condiciones verdadera(s) o falsa(s) que determina(n) cuándo ir al siguiente paso.

V valor con punto flotante (coma flotante)

Los valores reales que se muestran en pantalla y se introducen en el formato de coma flotante. El número de dígitos a la izquierda del punto decimal varía según el tamaño del número. Vea estilo.

valor inmediato

Un valor real o entero con signo de 32 bits. No es un tag que almacena un valor.

W watchdog

Especifica cuánto tiempo una tarea puede ejecutarse antes de activar un fallo mayor.

• Cada tarea tiene un watchdog que monitorea la ejecución 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 más tiempo que el tiempo del temporizador de control (watchdog), ocurrirá un fallo mayor: (El tiempo incluye las interrupciones por otras tareas).

• También ocurre un fallo por sobrepasar el tiempo de espera del watchdog (fallo mayor) si se activa nuevamente una tarea cuando ésta se está ejecutando (superposición de tarea periódica). Esto puede ocurrir si una tarea de prioridad inferior es interrumpida por una tarea de prioridad superior, lo cual retarda la realización 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 escán de lógica, el controlador entra en el modo fallo, independientemente de que el administrador de fallos del controlador borre el fallo del watchdog.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 431: 1756-pm001_-es-p

Glosario 51

Para cambiar el tiempo de watchdog de una tarea:

1. Abra el proyecto RSLogix 5000.

2. En el Controller Organizer, haga clic con el botón 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.

ATENCIÓN

!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.

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 432: 1756-pm001_-es-p

Glosario 52

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 433: 1756-pm001_-es-p

índice

Aabrir

rutina 2-8acción 5-19

almacenar 4-37añadir 5-16asignar calificador 5-17asignar orden 5-22booleana 4-18calificador 4-21cambiar el nombre 5-16configurar 5-17no booleana 4-17programa 4-17, 5-19restablecer 4-37seleccionar entre booleano y no booleano 4-17tipo de datos 4-19usar expresión 5-18uso de texto estructurado 5-19

acción booleana 4-18, 5-19programa 4-18

alarmadiagrama de funciones secuenciales 4-26, 5-12

aliascrear 10-2uso 10-1

almacenaracción 4-37proyecto 23-5

archivo de proyectocrear 1-1

arregloíndice 11-1producir arreglo grande 15-1

ASCIIasignación de texto estructurado 6-4buscar caracteres 17-4comparar caracteres 17-4, 17-10conectar dispositivo 16-2configurar protocolo de usuario 16-5configurar puerto en serie 16-3construir cadena 17-18convertir caracteres 17-12descodificar mensaje 17-14escribir caracteres 16-14extraer caracteres 17-2introducir caracteres 16-21leer caracteres 16-9manipular caracteres 17-1organizar datos 16-8

asignacióncarácter ASCII 6-4no retentiva 6-3

retentiva 6-2automatic reset

diagrama de funciones secuenciales 4-34

Bbifurcación

diagrama de funciones secuenciales 4-11, 5-5, 5-6lógica de escalera 8-2

bifurcación de selecciónasignar prioridades 5-8crear 5-6descripción general 4-14

bifurcación simultánea 4-15forzado 18-9, 18-12introducir 5-5opción "step through" 18-9

borrarfallo mayor 13-6, 19-1fallo menor 21-1memoria no volátil 23-12

búferE/S 12-1

buscar un código de barras 17-4

Ccable

diagrama de bloques de función 7-5, 7-8, 7-18diagrama de funciones secuenciales 5-9

cadenabuscar una matriz de caracteres 17-4comparar caracteres 17-4, 17-10convertir caracteres 17-12crear 17-18escribir caracteres 16-14evaluación en texto estructurado 6-8extraer caracteres 17-2introducir caracteres 16-21leer caracteres 16-9organizar datos 16-8Tipo de datos 16-8

calificadorasignar 5-17seleccionar 4-21

cambiar el nombreacción 5-16bloque de función 7-21paso 5-11transición 5-14

carga 13-6cargar un proyecto 23-9carpeta

abrir 2-7cerrar 2-7

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 434: 1756-pm001_-es-p

ii índice

CASE 6-16clave de origen 24-1código de barras

buscar una coincidencia 17-4extraer caracteres 17-2probar caracteres 17-4, 17-10

códigosfallo mayor A-1fallo menor A-3

comentariostexto estructurado 6-26

compararCaracteres ASCII 17-4, 17-10

comunicarseotros controladores 14-1

condición de renglón 8-4conectar

diagrama de funciones secuenciales 4-16configurar

acción 5-17alarma 5-12carga desde la memoria no volátil 23-9cargar desde la memoria no volátil 23-5driver 13-1ejecución del diagrama de funciones secuenciales 4-44,

5-28paso 5-11protocolo de usuario para ASCII 16-5puerto en serie para ASCII 16-3rutina principal 2-12

conjunto de instrucciones B-4construcción

texto estructurado 6-12consumir

enteros desde PLC-5C 14-9tag 14-1

control de programa/operadordescripción general 7-12

controladorcambiar propiedades 1-3desactivar 20-1descarga 13-3información sobre la memoria 9-6memoria no volátil 23-3modo 13-5suspender 20-1

controller organizerabrir rutina 2-8navegar 2-7

ControlNetconfigurar driver 13-1producir y consumir datos 14-1

convertirCaracteres ASCII 17-12

crearalias 10-2archivo de proyecto 1-1cadena 17-18driver 13-1estructura 3-8matriz 3-10programa 2-10rutina 2-11tag 3-10, 8-10

diagrama de bloques de función 7-20tag usando Excel 3-11tarea periódica 2-9tipo de datos definido por el usuario 3-8Tipo de datos STRING 16-8

cuadro de textodiagrama de funciones secuenciales 5-25mostrar u ocultar en el diagrama de funciones

secuenciales 5-26cumplimiento de la norma IEC61131-3

conjunto de instrucciones B-4datos

definiciones B-2introducción B-1lenguaje de programación B-3portabilidad de programas B-4sistema operativo B-2tablas B-5

DDATA

producir y consumir 14-1Datos

ASCII 16-8Introduzca caracteres ASCII 16-21

datosdefiniciones B-2forzado 18-6, 18-8

datos del sistemaacceso 9-3

desactivar el controlador 20-1descarga 13-3descripción

texto estructurado 6-26diagrama de bloques de función

añada un elemento 7-16añada una hoja 7-16aplicaciones para 2-5asigne un valor inmediato 7-22cambiar el nombre de un bloque 7-21conecte los elementos 7-19cree un retardo de escán 7-10enclavamiento de datos 7-5

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 435: 1756-pm001_-es-p

índice iii

forzar un valor 18-1mostrar un pin 7-18ocultar un pin 7-18orden de ejecución 7-5organización de las hojas 7-2resolución de un lazo 7-8, 7-19resolución del flujo de datos entre dos bloques 7-10selección de elementos 7-3

diagrama de funciones secuencialesacción

asignar orden 5-22cambiar el nombre 5-16configurar 5-17descripción general 4-17introducir 5-16llamar a una subrutina 5-21programa 5-19usar una acción booleana 4-18

acción booleana 4-18anidar 4-43aplicaciones para 2-5avanzar un paso en una bifurcación simultánea 18-9avanzar un paso en una transición 18-9bifurcación de selección

asignar prioridades 5-8crear 5-6descripción general 4-14

bifurcación simultáneacrear 5-5descripción general 4-15

calificador 4-21conectar 4-16configurar ejecución 5-28cuadro de texto 5-25definir tareas 4-5documentar 5-23ejecución

configurar 4-44diagramas 4-45pausa 4-45

elemento de forzado 18-1, 18-9, 18-12expresión numérica 5-12, 5-18introducir un nuevo elemento 5-3llamar a una subrutina 5-21mostrar u ocultar documentación 5-26opción "step through"

bifurcación simultánea 18-9transición 18-9

opción automatic reset 4-34opción don"t scan 4-31opción programmatic reset 4-32organizar los pasos 4-11

organizar un proyecto 4-6paro 4-40paso

cambiar el nombre 5-11configurar 5-11definir 4-6descripción general 4-6organizar 4-11

poner en pausa un SFC 4-45regresar al paso previo 5-9reiniciar 4-41restablecer

DATA 4-29SFC 4-41, 4-43, 4-45

secuencia 4-13transición

cambiar el nombre 5-14descripción general 4-22programar 5-14

último escán 4-29dirección

asignar indirecta 11-1tag

diagrama de bloques de función 7-4lógica de escalera 8-7, 8-10

dirección indirecta 11-1borrar un fallo mayor 19-6

documentaciónmostrar u ocultar en el diagrama de funciones

secuenciales 5-26documentar

diagrama de funciones secuenciales 5-23texto estructurado 6-26

don"t scandiagrama de funciones secuenciales 4-31

driverconfigurar 13-1

EE/S

búfer 12-1sincronizar con la lógica 12-1

ejecucióndiagrama de funciones secuenciales 4-45, 5-28

eliminarforzado 18-3, 18-13

en seriecableado 16-2conecte un dispositivo ASCII 16-2configure el puerto para ASCII 16-3

enclavamiento de datosdiagrama de bloques de función 7-5

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 436: 1756-pm001_-es-p

iv índice

enviarCaracteres ASCII 16-14

escrituraCaracteres ASCII 16-14

Estadomonitorear 9-3

estadoforzado 18-4memoria 9-6monitorear 9-1

estructuracrear 3-8organizar 3-1SFC_ACTION 4-19SFC_STEP 4-8SFC_STOP 4-42

estructura SFC_ACTION 4-19estructura SFC_STEP 4-8Estructura SFC_STOP 4-42Ethernet

configurar driver 13-1producir y consumir tags 14-1

expresiónexpresión BOOL

diagrama de funciones secuenciales 4-24,5-14

texto estructurado 6-4expresión numérica

diagrama de funciones secuenciales 5-12,5-18

texto estructurado 6-4orden de ejecución

texto estructurado 6-10texto estructurado

descripción general 6-4funciones 6-5operadores aritméticos 6-5operadores de bit 6-10operadores de relación 6-7operadores lógicos 6-9

expresión BOOLdiagrama de funciones secuenciales 4-24, 5-14texto estructurado 6-4

expresión numérica 5-12, 5-18, 6-4extraer

Caracteres ASCII 17-2

Ffallo

borrar 13-6, 19-1códigos de fallo mayor A-1códigos de fallos menores A-3

crear definido por el usuario 20-1desarrollar rutina para borrar fallo 19-1desarrollo de rutina para borrar el fallo 22-1dirección indirecta 19-6durante el preescán 19-6monitorizar menor 21-1prueba de una rutina de fallo 19-10

fallo mayorcódigos A-1crear definido por el usuario 20-1desarrollar una rutina de fallo 19-1desarrollo de rutina de fallo 22-1

fallo menorborrar 21-1códigos A-3lógica 21-1

FOR…DO 6-18forzado

diagrama de funciones secuenciales 18-9, 18-12eliminar 18-3, 18-13habilitar 18-2indicador LED 18-4inhabilitar 18-3, 18-13monitorear 18-4opciones 18-6precauciones de seguridad 18-2tag 18-6, 18-8

funcionestexto estructurado 6-5

Gguardar 1-3guardar como 1-3

Hhabilitar

forzado 18-2Herramienta de protección de origen RSLogix 5000 24-1hoja

añadir 7-16conectar 7-23diagrama de bloques de función 7-2

IICON

añadir 7-23introducir 7-16selección 7-3

IF...THEN 6-13indicador "assume data available" 7-8, 7-10, 7-19indicador LED

forzado 18-4

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 437: 1756-pm001_-es-p

índice v

inhabilitarforzado 18-3, 18-13

instrucción EOT 4-25instrucción SFP 4-45instrucción SFR 4-41, 4-43, 4-45introducir

acción 5-16bifurcación de selección 5-6bifurcación simultánea 5-5Caracteres ASCII 16-21diagrama de funciones secuenciales 5-3dirección 8-10elemento de bloque de función 7-16ICON 7-23lógica de escalera 8-9OCON 7-23

IREFenclavamiento de datos 7-5introducir 7-16para asignar un valor inmediato 7-22selección 7-3

Llazo de retroalimentación

diagrama de bloques de función 7-8lazo no resuelto

diagrama de bloques de función 7-8lectura

Caracteres ASCII 16-9lenguaje de programación

cumplimiento de la norma IEC61131-3 B-3seleccionar 2-5

lógica de escaleraanular un valor 18-1aplicaciones para 2-5asigne un valor inmediato 8-12bifurcación 8-2condición de renglón 8-4desarrollo 8-5forzar un valor 18-1introducir 8-9organice las instrucciones de entrada 8-6organice las instrucciones de salida 8-7

Mmanipular cadena 17-1marcar como booleana 5-19matriz

crear 3-10organizar 3-1

memoria 9-6memoria no volátil

almacenar un proyecto 23-5borrar 23-12cargar opciones de imagen 23-5cargar un proyecto 23-9controladores compatibles 23-3descripción general 23-1Tarjeta 1784-CF64 Industrial CompactFlash 23-4Verificar una carga 23-11

mensajea múltiples controladores 14-13a un solo controlador 14-11descodificar cadena 17-14

modocontrolador 13-5

modo marcha 13-5modo programa 13-5modo prueba 13-5monitorear forzados 18-4

Nnombre

nombre de tag 7-4, 8-7número de ranura 1-3

OOCON

añadir 7-23introducir 7-16selección 7-3

opción "step through"bifurcación simultánea 18-9transición 18-9

opción programmatic reset 4-32operadores

orden de ejecucióntexto estructurado 6-10

operadores aritméticostexto estructurado 6-5

operadores de bittexto estructurado 6-10

operadores de relacióntexto estructurado 6-7

operadores lógicostexto estructurado 6-9

operadores matemáticostexto estructurado 6-5

orden de ejecucióndiagrama de bloques de función 7-5expresión de texto estructurado 6-10

OREFintroducir 7-16selección 7-3

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 438: 1756-pm001_-es-p

vi índice

organizarcadenas 16-8estructura 3-1matriz 3-1tag 3-1

Pparo

diagrama de funciones secuenciales 4-40Tipo de datos 4-42

pasoalarma 4-26añadir una acción 5-16asignar tiempo preseleccionado 5-11bifurcación de selección 4-14bifurcación simultánea 4-15cambiar el nombre 5-11configurar 5-11configurar alarma 5-12definir 4-6organizar en diagrama de funciones secuenciales 4-11secuencia 4-13temporizador 4-26tipo de datos 4-8

pesoconvertir 17-12

PLC-5Ccompartir datos 14-6, 14-7, 14-9

poner en pausa un SFC 4-45post-escán

diagrama de funciones secuenciales 4-29texto estructurado 6-3

preescánborrar un fallo mayor 19-6

prioridadbifurcación de selección 5-8tarea periódica 2-3

producirarreglo grande 15-1tag 14-1tags para PLC-5C 14-6, 14-7

programaacción 4-17, 5-19acción booleana 4-18crear 2-10portabilidad B-4rutina principal 2-12

programartransición 5-14

protección de origen de rutina 24-1proteger

proyecto 24-1, 24-12rutina 24-1

protocolo de usuarioconfigurar para ASCII 16-5

proyectoalmacenar en la memoria no volátil 23-5carga 13-6carga desde la memoria no volátil 23-9cargar desde la memoria no volátil 23-5descarga 13-3memoria no volátil 23-1proteger 24-1, 24-12restringir acceso 24-12verificar 2-12

prueba de una rutina de fallo 19-10

Rreiniciar

diagrama de funciones secuenciales 4-41REPEAT…UNTIL 6-23restablecer

acción 4-37SFC 4-41

restablecer un SFC 4-43, 4-45retardo de escán

diagrama de bloques de función 7-10RSLinx

configurar 13-1rutina

abrir 2-8anidar dentro de un diagrama de funciones secuenciales

4-43como transición 4-25configurar como rutina principal 2-12crear 2-11proteger 24-1restringir acceso 24-1verificar 5-29, 7-24, 8-12

rutina principalusar el diagrama de funciones secuenciales 4-6

Ssalto

diagrama de funciones secuenciales 4-16seguridad

proteger un proyecto 24-12proteger una rutina 24-1

símbolocrear 10-1

sistema operativo B-2software RSI Security Server 24-12software Security Server 24-12string

manipular 17-1

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 439: 1756-pm001_-es-p

índice vii

suspendercontrolador 20-1

Ttabla de datos 3-1tablas sobre cumplimiento B-5tag

asignar 8-10diagrama de bloques de función 7-20

cadena 16-8compartir con PLC-5C 14-6, 14-7, 14-9crear 3-10, 8-10crear alias 10-2crear usando Excel 3-11forzado 18-6, 18-8introducir 8-10organización para mensajes 14-11organizar 3-1producir arreglo grande 15-1producir y consumir 14-1selección del nombre 7-4seleccione el nombre 8-7

tamaño de chasis 1-3tarea

definir 2-4, 4-5tarea periódica

aplicación para 2-6, 4-5crear 2-9

Tarjeta 1784-CF64 Industrial CompactFlash 23-4texto estructurado

aplicaciones para 2-5asignación 6-2asignación no retentiva 6-3asigne un carácter ASCII 6-4CASE 6-16comentarios 5-23, 6-26componentes 6-1construcciones 6-12en acción 5-19evaluación de cadenas 6-8expresión 6-4expresión numérica 6-4FOR…DO 6-18

forzar un valor 18-1funciones 6-5IF...THEN 6-13operadores aritméticos 6-5operadores de bit 6-10operadores de relación 6-7operadores lógicos 6-9REPEAT…UNTIL 6-23WHILE…DO 6-21

tipo de datos definido por el usuariocrear 3-8

Tipo de datos STRINGcrear 16-8

transicióncambiar el nombre 5-14definir 4-22expresión BOOL 4-24forzado 18-9, 18-12instrucción EOT 4-25llamar a una subrutina 5-15opción "step through" 18-9programar 5-14seleccionar método de programación 4-24usar una subrutina 4-25

Uúltimo escán

diagrama de funciones secuenciales 4-29

Vvalor inmediato

diagrama de bloques de función 7-22lógica de escalera 8-12

verificarproyecto 2-12rutina 5-29, 7-24, 8-12

WWHILE…DO 6-21

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 440: 1756-pm001_-es-p

viii índice

Publicación 1756-PM001E-ES-P - Agosto 2002

Page 441: 1756-pm001_-es-p

Códigos de caracteres ASCII

Carácter Dec Hex

[ctrl-@] NUL 0 $00

[ctrl-A] SOH 1 $01

[ctrl-B] STX 2 $02

[ctrl-C] ETX 3 $03

[ctrl-D] EOT 4 $04

[ctrl-E] ENQ 5 $05

[ctrl-F] ACK 6 $06

[ctrl-G] BEL 7 $07

[ctrl-H] BS 8 $08

[ctrl-I] HT 9 $09

[ctrl-J] LF 10 $l ($0A)

[ctrl-K] VT 11 $0B

[ctrl-L] FF 12 $0C

[ctrl-M] CR 13 $r ($0D)

[ctrl-N] SO 14 $0E

[ctrl-O] SI 15 $0F

[ctrl-P] DLE 16 $10

[ctrl-Q] DC1 17 $11

[ctrl-R] DC2 18 $12

[ctrl-S] DC3 19 $13

[ctrl-T] DC4 20 $14

[ctrl-U] NAK 21 $15

[ctrl-V] SYN 22 $16

[ctrl-W] ETB 23 $17

[ctrl-X] CAN 24 $18

[ctrl-Y] EM 25 $19

[ctrl-Z] SUB 26 $1A

ctrl-[ ESC 27 $1B

[ctrl-\] FS 28 $1C

ctrl-] GS 29 $1D

[ctrl-^] RS 30 $1E

[ctrl-_] US 31 $1F

ESPACIO 32 $20

! 33 $21

“ 34 $22

# 35 $23

$ 36 $24

% 37 $25

& 38 $26

‘ 39 $27

( 40 $28

) 41 $29

* 42 $2A

+ 43 $2B

, 44 $2C

- 45 $2D

. 46 $2E

/ 47 $2F

0 48 $30

1 49 $31

2 50 $32

3 51 $33

4 52 $34

5 53 $35

6 54 $36

7 55 $37

8 56 $38

9 57 $39

: 58 $3A

; 59 $3B

< 60 $3C

= 61 $3D

> 62 $3E

? 63 $3F

@ 64 $40

A 65 $41

B 66 $42

c 67 $43

d 68 $44

e 69 $45

f 70 $46

G 71 $47

H 72 $48

i 73 $49

J 74 $4A

K 75 $4B

Carácter Dec Hex

l 76 $4C

M 77 $4D

N 78 $4E

O 79 $4F

P 80 $50

Q 81 $51

r 82 $52

S 83 $53

t 84 $54

u 85 $55

V 86 $56

W 87 $57

X 88 $58

Y 89 $59

Z 90 $5A

[ 91 $5B

\ 92 $5C

] 93 $5D

^ 94 $5E

_ 95 $5F

‘ 96 $60

a 97 $61

B 98 $62

c 99 $63

d 100 $64

e 101 $65

f 102 $66

g 103 $67

H 104 $68

i 105 $69

j 106 $6A

k 107 $6B

l 108 $6C

M 109 $6D

N 110 $6E

O 111 $6F

P 112 $70

q 113 $71

Carácter Dec Hex

r 114 $72

S 115 $73

t 116 $74

u 117 $75

v 118 $76

W 119 $77

X 120 $78

y 121 $79

z 122 $7A

{ 123 $7B

| 124 $7C

} 125 $7D

~ 126 $7E

DEL 127 $7F

Carácter Dec Hex

Page 442: 1756-pm001_-es-p

Publicación 1756-PM001E-ES-P - Agosto 2002 1 PN 957678-92Sustituye a la publicación 1756-PM001D-ES-P - Noviembre 2001 © 2002 Rockwell Automation. Todos los derechos reservados. Impreso en EE.UU.

Servicio de soporte de Rockwell Automation

Para obtener asistencia técnica, llame al representante regional de Rockwell Automation o comuníquese con Rockwell Automation de la siguientes manera:

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.

Teléfono Estados Unidos/Canadá

1.440.646.5800

Fuera de Estados Unidos/Canadá

Puede obtener el número telefónico para su país mediante la Internet:

1. Vaya a http://www.ab.com2. Haga clic en Product Support

(http://support.automation.rockwell.com)3. Bajo Support Centers, haga clic en Contact

Information

Internet ⇒ 1. Vaya a http://www.ab.com2. Haga clic en Product Support

(http://support.automation.rockwell.com)