Manual de Programacion PLC ALLEN-BRADLEY
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Procedimientos
comunes de los
controladores
Logix5000
1756-Lx, 1769-Lx, 1789-Lx, 1794-Lx,
PowerFlex 700
Manual de programación
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.
ADVERTENCIA
!
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.
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:
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
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.
Nueva información sobre cómo introducir y configurar un organigrama de funciones secuenciales
usando el software RSLogix 5000
Nueva información sobre cómo usar el lenguaje de programación de texto estructurado,
incluyendo asignaciones, expresiones, instrucciones, construcciones y comentarios
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
Capítulo/Apéndice:
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
23
controlador 1756-L63 ControlLogix)
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
B
de programación de diagrama de funciones secuenciales y texto estructurado
Nuevas definiciones relacionadas con los diagramas de funciones secuenciales
Glosario
2
4
5
6
7
1 Publicación 1756-PM001E-ES-P - Agosto 2002
2 Resumen de los cambios
Notas:
Publicación 1756-PM001E-ES-P - Agosto 2002
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
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”.
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 …
Si está viendo el archivo PDF del manual,
haga clic en nombre para saltar a la
entrada del glosario.
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
Tabla de contenido
Administración de archivos del
proyecto
Organización de tareas,
programas y rutinas
Capítulo 1
Creación de un archivo de proyecto . . . . . . . . . . . . . . . . . 1-1
Guarde los cambios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3
Capítulo 2
Cuándo usar este procedimiento . . . . . . . . . . . . . . . . . . . . 2-1
Antes de comenzar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1
Cómo usar este procedimiento . . . . . . . . . . . . . . . . . . . . . 2-1
Definiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2
tarea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2
tarea continua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2
tarea periódica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3
Programa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4
Rutina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4
Rutina principal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4
Planifique las tareas del proyecto. . . . . . . . . . . . . . . . . . . . 2-4
Defina las funciones del proyecto. . . . . . . . . . . . . . . . . 2-5
Asigne cada función a una tarea . . . . . . . . . . . . . . . . . . 2-6
Use el Controller Organizer . . . . . . . . . . . . . . . . . . . . . . . . 2-7
Abra o cierre una carpeta . . . . . . . . . . . . . . . . . . . . . . . 2-7
Abra una rutina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-8
Cree una tarea periódica . . . . . . . . . . . . . . . . . . . . . . . . . . 2-9
Cree un programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-10
Cree una rutina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-11
Configure una rutina como rutina principal . . . . . . . . . . . . 2-12
Verifique el proyecto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-12
Capítulo 3
Organización de tags Planifique los tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1
Creación de un tipo de datos definido por el usuario . . . . . 3-8
Notas: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9
Creación de un tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10
Creación de tags usando Microsoft® Excel® . . . . . . . . . . . 3-11
Diseño de un diagrama de
funciones secuenciales
Capítulo 4
Cuándo usar este procedimiento . . . . . . . . . . . . . . . . . . . . 4-1
Cómo usar este procedimiento . . . . . . . . . . . . . . . . . . . . . 4-1
¿Qué es un diagrama de funciones secuenciales? . . . . . . . . 4-2
Cómo diseñar un SFC: Descripción general . . . . . . . . . . . . 4-4
Definir las tareas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5
Seleccionar cómo ejecutar el SFC. . . . . . . . . . . . . . . . . . . . 4-6
Definir los pasos del proceso. . . . . . . . . . . . . . . . . . . . . . . 4-6
Siga estas pautas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-7
Estructura SFC_STEP . . . . . . . . . . . . . . . . . . . . . . . . . . 4-8
Organizar los pasos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-11
Descripción general . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-11
Secuencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-13
Bifurcación de selección . . . . . . . . . . . . . . . . . . . . . . . 4-14
Bifurcación simultánea . . . . . . . . . . . . . . . . . . . . . . . . . 4-15
i Publicación 1756-PM001E-ES-P - Agosto 2002
ii
Tabla de contenido
Conectar a un paso previo . . . . . . . . . . . . . . . . . . . . . . 4-16
Añadir acciones para cada paso. . . . . . . . . . . . . . . . . . . . . 4-17
¿Cómo desea usar la acción?. . . . . . . . . . . . . . . . . . . . . 4-17
Usar una acción no booleana . . . . . . . . . . . . . . . . . . . . 4-17
Usar una acción booleana . . . . . . . . . . . . . . . . . . . . . . 4-18
Estructura SFC_ACTION . . . . . . . . . . . . . . . . . . . . . . . . 4-19
Describir cada acción en pseudocódigo . . . . . . . . . . . . . . . 4-20
Seleccionar un calificador para una acción . . . . . . . . . . . . . 4-21
Definir las condiciones de la transición . . . . . . . . . . . . . . . 4-22
Tag de transición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-24
¿Cómo desea programar la transición?. . . . . . . . . . . . . . 4-24
Usar una expresión BOOL . . . . . . . . . . . . . . . . . . . . . . 4-24
Llamar a una subrutina. . . . . . . . . . . . . . . . . . . . . . . . . 4-25
Transición después de un tiempo especificado. . . . . . . . . . 4-26
Desactivar un dispositivo al final de un paso . . . . . . . . . . . 4-29
Seleccionar la opción de un último escán . . . . . . . . . . . 4-29
Usar la opción Don’t Scan . . . . . . . . . . . . . . . . . . . . . . 4-31
Usar la opción Programmatic Reset. . . . . . . . . . . . . . . . 4-32
Usar la opción Automatic Reset . . . . . . . . . . . . . . . . . . 4-34
Mantener algo activado de paso a paso . . . . . . . . . . . . . . . 4-35
¿Cómo desea controlar el dispositivo? . . . . . . . . . . . . . . 4-35
Usar una bifurcación simultánea . . . . . . . . . . . . . . . . . . 4-36
Almacenar y restablecer una acción . . . . . . . . . . . . . . . 4-37
Usar un paso grande . . . . . . . . . . . . . . . . . . . . . . . . . . 4-39
Terminar el SFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-40
¿Al final del SFC, qué desea hacer? . . . . . . . . . . . . . . . . 4-40
Usar un elemento de paro . . . . . . . . . . . . . . . . . . . . . . 4-40
Reiniciar (restablecer) el SFC . . . . . . . . . . . . . . . . . . . . 4-41
Estructura SFC_STOP . . . . . . . . . . . . . . . . . . . . . . . . . . 4-42
Anidar un SFC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-43
Pasar parámetros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-44
Configurar cuándo retornar al OS/JSR . . . . . . . . . . . . . . . . 4-44
Pausa o restablecer un SFC . . . . . . . . . . . . . . . . . . . . . . . . 4-45
Diagramas de ejecución . . . . . . . . . . . . . . . . . . . . . . . . . . 4-45
Programación de un diagrama de
funciones secuenciales
Capítulo 5
Cuándo usar este procedimiento . . . . . . . . . . . . . . . . . . . . 5-1
Antes de usar este procedimiento . . . . . . . . . . . . . . . . . . . 5-1
Cómo usar este procedimiento . . . . . . . . . . . . . . . . . . . . . 5-2
Añadir un elemento de SFC . . . . . . . . . . . . . . . . . . . . . . . . 5-3
Añadir y conectar manualmente los elementos . . . . . . . 5-3
Añadir y conectar automáticamente los elementos. . . . . 5-4
Arrastrar y colocar elementos . . . . . . . . . . . . . . . . . . . . 5-4
Crear una bifurcación simultánea. . . . . . . . . . . . . . . . . . . . 5-5
iniciar una bifurcación simultánea. . . . . . . . . . . . . . . . . 5-5
Terminar una bifurcación simultánea . . . . . . . . . . . . . . 5-5
Crear una bifurcación de selección . . . . . . . . . . . . . . . . . . 5-6
Iniciar una bifurcación de selección . . . . . . . . . . . . . . . 5-6
Terminar una bifurcación de selección . . . . . . . . . . . . . 5-7
Publicación 1756-PM001E-ES-P - Agosto 2002
Tabla de contenido
iii
Establecer las prioridades de una bifurcación de selección . 5-8
Regresar a un paso previo . . . . . . . . . . . . . . . . . . . . . . . . . 5-9
Conectar un cable al paso . . . . . . . . . . . . . . . . . . . . . . 5-9
Ocultar un cable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-10
Mostrar un cable oculto . . . . . . . . . . . . . . . . . . . . . . . . 5-10
Cambiar el nombre de un paso . . . . . . . . . . . . . . . . . . . . . 5-11
Configurar un paso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-11
Asignar el tiempo preseleccionado para un paso. . . . . . 5-11
Configurar alarmas para un paso . . . . . . . . . . . . . . . . . 5-12
Usar una expresión para calcular un tiempo . . . . . . . . . 5-12
Cambiar el nombre de una transición. . . . . . . . . . . . . . . . . 5-14
Programar una transición. . . . . . . . . . . . . . . . . . . . . . . . . . 5-14
Introducir una expresión BOOL . . . . . . . . . . . . . . . . . . 5-14
Llamar a una subrutina. . . . . . . . . . . . . . . . . . . . . . . . . 5-15
Añadir una acción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-16
Cambiar el nombre de una acción . . . . . . . . . . . . . . . . . . . 5-16
Configurar una acción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-17
Cambiar el calificador de una acción . . . . . . . . . . . . . . 5-17
Calcular un tiempo preseleccionado en tiempo
de ejecución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18
Marcar una acción como acción booleana. . . . . . . . . . . 5-19
Programar una acción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-19
Introducir texto estructurado . . . . . . . . . . . . . . . . . . . . 5-19
Llamar a una subrutina. . . . . . . . . . . . . . . . . . . . . . . . . 5-21
Asignar el orden de ejecución de las acciones . . . . . . . . . . 5-22
Documentar el SFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-23
Añadir comentarios de texto estructurado . . . . . . . . . . . 5-23
Añadir una descripción de tag . . . . . . . . . . . . . . . . . . . 5-24
Añadir un cuadro de texto . . . . . . . . . . . . . . . . . . . . . . 5-25
Mostrar u ocultar cuadros de texto o descripciones de tag . 5-26
Mostrar u ocultar cuadros de texto o descripciones . . . . 5-26
Ocultar una descripción de tag individual . . . . . . . . . . . 5-27
Configurar la ejecución del SFC . . . . . . . . . . . . . . . . . . . . . 5-28
Verificar la rutina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-29
Programación de texto
estructurado
Capítulo 6
Cuándo usar este capítulo . . . . . . . . . . . . . . . . . . . . . . . . . 6-1
Sintaxis del texto estructurado . . . . . . . . . . . . . . . . . . . . . . 6-1
Asignaciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2
Especifique una asignación no retentiva . . . . . . . . . . . . 6-3
Asigne un carácter ASCII a una cadena . . . . . . . . . . . . . 6-4
Expresiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4
Use funciones y operadores y aritméticos . . . . . . . . . . . 6-5
Use operadores de relación . . . . . . . . . . . . . . . . . . . . . 6-7
Use operadores lógicos . . . . . . . . . . . . . . . . . . . . . . . . 6-9
Use operadores de bit . . . . . . . . . . . . . . . . . . . . . . . . . 6-10
Determine el orden de ejecución . . . . . . . . . . . . . . . . . 6-10
Instrucciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-11
Construcciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-12
Publicación 1756-PM001E-ES-P - Agosto 2002
iv
Tabla de contenido
IF...THEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-13
CASE...OF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-16
FOR…DO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-18
WHILE…DO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-21
REPEAT…UNTIL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-23
Comentarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-26
Programación de un diagrama de
bloques de función
Programación de lógica de
escalera
Capítulo 7
Cuándo usar este procedimiento . . . . . . . . . . . . . . . . . . . . 7-1
Antes de usar este procedimiento . . . . . . . . . . . . . . . . . . . 7-1
Cómo usar este procedimiento . . . . . . . . . . . . . . . . . . . . . 7-1
Identifique las hojas para la rutina . . . . . . . . . . . . . . . . . . . 7-2
Seleccione los elementos de los bloques de función. . . . . . 7-3
Seleccione un nombre de tag para un elemento . . . . . . . . . 7-4
Defina el orden de ejecución. . . . . . . . . . . . . . . . . . . . . . . 7-5
Enclavamiento de datos . . . . . . . . . . . . . . . . . . . . . . . . 7-5
Orden de ejecución . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-7
Resuelva un lazo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-8
Resuelva el flujo de datos entre dos bloques. . . . . . . . . 7-10
Cree un retardo de escán . . . . . . . . . . . . . . . . . . . . . . . 7-10
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-11
Identifique los conectores . . . . . . . . . . . . . . . . . . . . . . . . . 7-11
Defina el control de programa/operador . . . . . . . . . . . . . . 7-12
Añada una hoja. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-16
Añada un elemento de bloque de función . . . . . . . . . . . . . 7-16
Conecte los elementos . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-18
Mostrar u ocultar un pin. . . . . . . . . . . . . . . . . . . . . . . . 7-18
Conecte elementos juntos. . . . . . . . . . . . . . . . . . . . . . . 7-19
Marque un cable con el indicador Assume
Data Available . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-19
Asigne un tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-20
Cree y asigne un nuevo tag . . . . . . . . . . . . . . . . . . . . . 7-20
Cambie el nombre del tag de un bloque de función . . . 7-21
Asigne un tag existente . . . . . . . . . . . . . . . . . . . . . . . . 7-21
Asigne un valor inmediato (constante) . . . . . . . . . . . . . . . . 7-22
Use un IREF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-22
Introduzca un valor en el tag de un bloque . . . . . . . . . 7-22
Conecte bloques con un OCON e ICON . . . . . . . . . . . . . . 7-23
Añada un OCON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-23
Añada un ICON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-23
Verifique la rutina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-24
Capítulo 8
Cuándo usar este procedimiento . . . . . . . . . . . . . . . . . . . . 8-1
Antes de usar este procedimiento . . . . . . . . . . . . . . . . . . . 8-1
Cómo usar este procedimiento . . . . . . . . . . . . . . . . . . . . . 8-1
Definiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2
Instrucción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2
Bifurcación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2
Publicación 1756-PM001E-ES-P - Agosto 2002
Tabla de contenido
v
Condición de renglón . . . . . . . . . . . . . . . . . . . . . . . . . 8-4
Escritura de lógica de escalera . . . . . . . . . . . . . . . . . . . . . . 8-5
Seleccione las instrucciones requeridas . . . . . . . . . . . . . 8-5
Organice las instrucciones de entrada . . . . . . . . . . . . . . 8-6
Organice las instrucciones de salida . . . . . . . . . . . . . . . 8-7
Seleccione un nombre de tag para un operando . . . . . . 8-7
Introducción de la lógica de escalera . . . . . . . . . . . . . . . . . 8-9
Añada un elemento en la ubicación del cursor . . . . . . . 8-9
Arrastre y coloque un elemento . . . . . . . . . . . . . . . . . . 8-10
Asignación de operandos . . . . . . . . . . . . . . . . . . . . . . . . . 8-10
Cree y asigne un nuevo tag . . . . . . . . . . . . . . . . . . . . . 8-10
Seleccione un nombre o un tag existente . . . . . . . . . . . 8-11
Arrastre un tag desde la ventana Tags. . . . . . . . . . . . . . 8-12
Asigne un valor inmediato (constante) . . . . . . . . . . . . . 8-12
Verificación de la rutina . . . . . . . . . . . . . . . . . . . . . . . . . . 8-12
Capítulo 9
Acceso a valores del sistema Cuándo usar este procedimiento . . . . . . . . . . . . . . . . . . . . 9-1
Cómo usar este procedimiento . . . . . . . . . . . . . . . . . . . . . 9-1
Monitoreo de los indicadores de estado . . . . . . . . . . . . . . . 9-1
Obtener y establecer datos del sistema. . . . . . . . . . . . . . . . 9-3
Determine la información de memoria del controlador . . . . 9-6
Obtener información sobre memoria proveniente del
controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-7
Seleccione la información de memoria que desea . . . . . 9-8
Conversión de INT a DINT. . . . . . . . . . . . . . . . . . . . . . 9-9
Capítulo 10
Asignación de alias Alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-1
Visualización de información de alias. . . . . . . . . . . . . . . . . 10-2
Asignación de un alias . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-2
Asignación de una dirección
indirecta
Almacenamiento de E/S en el
búfer
Capítulo 11
Cuándo asignar una dirección indirecta . . . . . . . . . . . . . . . 11-1
Expresiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-3
Capítulo 12
Cuándo almacenar E/S en el búfer. . . . . . . . . . . . . . . . . . . 12-1
Almacenamiento de E/S en el búfer . . . . . . . . . . . . . . . . . . 12-1
Capítulo 13
Prueba de un proyecto Prueba de un proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-1
Configure un driver de comunicación . . . . . . . . . . . . . . . . 13-1
Descargue el proyecto al controlador. . . . . . . . . . . . . . . . . 13-3
Seleccione un modo para el controlador . . . . . . . . . . . . . . 13-5
Corrección de fallos mayores. . . . . . . . . . . . . . . . . . . . . . . 13-6
Guarde los cambios en línea . . . . . . . . . . . . . . . . . . . . . . . 13-6
Publicación 1756-PM001E-ES-P - Agosto 2002
vi
Tabla de contenido
Comunicación con otro
controlador
Capítulo 14
Cuándo usar este procedimiento . . . . . . . . . . . . . . . . . . . . 14-1
Cómo usar este procedimiento . . . . . . . . . . . . . . . . . . . . . 14-1
Producir un tag consumido . . . . . . . . . . . . . . . . . . . . . . . . 14-1
Lo que usted necesita hacer . . . . . . . . . . . . . . . . . . . . . 14-3
Organizar los tags para datos producidos o consumidos 14-3
Producir un tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-4
Consumir un tag producido . . . . . . . . . . . . . . . . . . . . . 14-5
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
Ajuste para limitaciones de amplitud de banda . . . . . . 14-10
Enviar un mensaje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-11
Enviar un mensaje a múltiples controladores . . . . . . . . . . 14-13
Establecer la configuración de E/S . . . . . . . . . . . . . . . 14-14
Definir los elementos de origen y destino . . . . . . . . . . 14-15
Crear el tipo de datos MESSAGE_CONFIGURATION . . 14-16
Crear la matriz de configuración . . . . . . . . . . . . . . . . . 14-17
Obtener el tamaño de la matriz local . . . . . . . . . . . . . 14-19
Cargar las propiedades del mensaje para un
controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-20
Configurar el mensaje . . . . . . . . . . . . . . . . . . . . . . . . 14-21
Ir al siguiente controlador . . . . . . . . . . . . . . . . . . . . . 14-22
Reiniciar la secuencia. . . . . . . . . . . . . . . . . . . . . . . . . 14-22
Capítulo 15
Producción de una matriz grande Cuándo usar este procedimiento . . . . . . . . . . . . . . . . . . . . 15-1
Para producir una matriz grande . . . . . . . . . . . . . . . . . . . . 15-2
Comunicación con un dispositivo
ASCII
Procesamiento de caracteres
ASCII
Capítulo 16
Cuándo usar este procedimiento . . . . . . . . . . . . . . . . . . . . 16-1
Cómo usar este procedimiento . . . . . . . . . . . . . . . . . . . . . 16-1
Conecte el dispositivo ASCII . . . . . . . . . . . . . . . . . . . . . . . 16-2
Configure el puerto en serie . . . . . . . . . . . . . . . . . . . . . . . 16-3
Configure el protocolo del usuario. . . . . . . . . . . . . . . . . . . 16-5
Cree tipos de datos de cadena. . . . . . . . . . . . . . . . . . . . . . 16-8
Lea los caracteres desde el dispositivo . . . . . . . . . . . . . . . . 16-9
Envíe los caracteres al dispositivo . . . . . . . . . . . . . . . . . . 16-14
Introduzca caracteres ASCII . . . . . . . . . . . . . . . . . . . . . . . 16-21
Capítulo 17
Cuándo usar este procedimiento . . . . . . . . . . . . . . . . . . . . 17-1
Cómo usar este procedimiento . . . . . . . . . . . . . . . . . . . . . 17-1
Extraer una parte de un código de barras. . . . . . . . . . . . . . 17-2
Buscar un código de barras . . . . . . . . . . . . . . . . . . . . . . . . 17-4
Cree el tipo de datos PRODUCT_INFO . . . . . . . . . . . . . 17-5
Búsqueda de caracteres . . . . . . . . . . . . . . . . . . . . . . . . 17-6
Identificar el número de ruta . . . . . . . . . . . . . . . . . . . . 17-8
Rechazar caracteres incorrectos . . . . . . . . . . . . . . . . . . 17-9
Publicación 1756-PM001E-ES-P - Agosto 2002
Tabla de contenido
vii
Introducir los ID de producto y números de ruta . . . . . 17-9
Verificar los caracteres del código de barras . . . . . . . . . . . 17-10
Convertir un valor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-12
Descodificar un mensaje ASCII . . . . . . . . . . . . . . . . . . . . 17-14
Crear una cadena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-18
Capítulo 18
Forzado de elementos lógicos Cuándo usar este procedimiento . . . . . . . . . . . . . . . . . . . . 18-1
Cómo usar este procedimiento . . . . . . . . . . . . . . . . . . . . . 18-1
Precauciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-2
Habilitación de forzados. . . . . . . . . . . . . . . . . . . . . . . . 18-2
Inhabilitación o eliminación de un forzado . . . . . . . . . . 18-3
Verificación del estado de forzados . . . . . . . . . . . . . . . . . . 18-4
Barra de herramientas Online. . . . . . . . . . . . . . . . . . . . 18-4
Indicador LED FORCE . . . . . . . . . . . . . . . . . . . . . . . . . 18-5
Instrucción GSV. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-5
Qué elementos forzar . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-6
Cuándo usar un forzado de E/S . . . . . . . . . . . . . . . . . . . . . 18-6
Forzado de un valor de entrada . . . . . . . . . . . . . . . . . . 18-7
Forzado de un valor de salida . . . . . . . . . . . . . . . . . . . 18-7
Adición de un forzado de E/S . . . . . . . . . . . . . . . . . . . . . . 18-8
Cuándo usar la opción
Step Through . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-9
Función Step Through en una transición o forzado
de una ruta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-9
Cuándo usar un forzado
de SFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-9
Forzado de una transición . . . . . . . . . . . . . . . . . . . . . . 18-9
Forzado de una ruta simultánea . . . . . . . . . . . . . . . . . 18-11
Adición de un forzado de SFC . . . . . . . . . . . . . . . . . . . . . 18-12
Eliminación o inhabilitación
de forzados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-13
Eliminación de un forzado individual . . . . . . . . . . . . . 18-14
Inhabilitación de todos los forzados de E/S y SFC . . . . 18-14
Eliminación de todos los forzados de E/S y SFC . . . . . 18-14
Inhabilitación de todos los forzados de E/S. . . . . . . . . 18-15
Eliminación de todos los forzados de E/S . . . . . . . . . . 18-15
Inhabilitación de todos los forzados de SFC . . . . . . . . 18-15
Eliminación de todos los forzados de SFC . . . . . . . . . . 18-15
Capítulo 19
Desarrollo de una rutina de fallo Cuándo usar este procedimiento . . . . . . . . . . . . . . . . . . . . 19-1
Cómo usar este procedimiento . . . . . . . . . . . . . . . . . . . . . 19-1
Crear el tipo de datos FAULTRECORD . . . . . . . . . . . . . . . . 19-2
Creación de una rutina de fallo . . . . . . . . . . . . . . . . . . . . . 19-3
Cómo borrar un fallo mayor . . . . . . . . . . . . . . . . . . . . . . . 19-4
Obtener el tipo y código de fallo . . . . . . . . . . . . . . . . . 19-4
Verificación de un fallo menor . . . . . . . . . . . . . . . . . . . 19-5
Borrar el fallo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-5
Publicación 1756-PM001E-ES-P - Agosto 2002
viii
Tabla de contenido
Cómo borrar un fallo mayor durante el preescán . . . . . . . . 19-6
Identificar cuando el controlador está en preescán . . . . 19-6
Obtener el tipo y código del fallo. . . . . . . . . . . . . . . . . 19-7
Verificación de un fallo específico . . . . . . . . . . . . . . . . 19-8
Borrar el fallo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-9
Prueba de una rutina de fallo . . . . . . . . . . . . . . . . . . . . . 19-10
Creación de un fallo mayor
definido por el usuario
Capítulo 20
Cuándo usar este procedimiento . . . . . . . . . . . . . . . . . . . . 20-1
Creación de un fallo mayor definido por el usuario . . . . . . 20-1
Capítulo 21
Monitorización de fallos menores Cuándo usar este procedimiento . . . . . . . . . . . . . . . . . . . . 21-1
Monitorización de fallos menores . . . . . . . . . . . . . . . . . . . 21-1
Desarrollo de una rutina de
inicializacion
Almacenamiento y carga de un
proyecto usando la memoria no
volátil
Capítulo 22
Cuándo usar este procedimiento . . . . . . . . . . . . . . . . . . . . 22-1
Desarrollo de una rutina de inicializacion. . . . . . . . . . . . . . 22-1
Capítulo 23
Cuándo usar este procedimiento . . . . . . . . . . . . . . . . . . . . 23-1
Cómo usar este procedimiento . . . . . . . . . . . . . . . . . . . . . 23-2
Seleccionar un controlador que tenga memoria no volátil . . 23-3
Precauciones que se deben observar al usar la
tarjeta 1784-CF64 Industrial CompactFlash . . . . . . . . . . . . . 23-4
Seleccionar cuándo cargar una imagen . . . . . . . . . . . . . . . 23-5
Almacenar un proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-5
Configurar la operación de guardar . . . . . . . . . . . . . . . 23-6
Guardar el proyecto. . . . . . . . . . . . . . . . . . . . . . . . . . . 23-8
Guardar el proyecto en línea . . . . . . . . . . . . . . . . . . . . 23-8
Cargar un proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-9
Verificar una carga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-11
Borrar la memoria no volátil . . . . . . . . . . . . . . . . . . . . . . 23-12
Verificar la opción Current Load Image. . . . . . . . . . . . 23-12
Cambiar la opción Load Image . . . . . . . . . . . . . . . . . . 23-13
Borrar el proyecto del controlador . . . . . . . . . . . . . . . 23-13
Almacenar la imagen vacía . . . . . . . . . . . . . . . . . . . . . 23-13
Capítulo 24
Cómo proteger un proyecto Cuándo usar este procedimiento . . . . . . . . . . . . . . . . . . . . 24-1
Usar protección de origen de rutina. . . . . . . . . . . . . . . . . . 24-1
Seleccionar el nivel de protección para cada rutina . . . . 24-4
Seleccionar el número de claves de origen . . . . . . . . . . 24-4
Definir la clave o claves de origen . . . . . . . . . . . . . . . . 24-5
Seleccionar una ubicación para el archivo en dónde
almacenar las claves de origen . . . . . . . . . . . . . . . . . . . 24-5
Activar la función de protección de origen de
RSLogix 5000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-5
Publicación 1756-PM001E-ES-P - Agosto 2002
Tabla de contenido
ix
Crear un archivo para las claves de origen . . . . . . . . . . 24-6
Protección de una rutina con una clave de origen . . . . . 24-7
Retirar el acceso a una rutina protegida . . . . . . . . . . . . 24-8
Inhabilitar la protección de origen de rutina . . . . . . . . . 24-8
Obtener acceso a una rutina protegida . . . . . . . . . . . . . 24-9
Use RSI Security Server para proteger un proyecto . . . . . . 24-12
Instalación del software RSI Security Server. . . . . . . . . 24-12
Configuración de DCOM . . . . . . . . . . . . . . . . . . . . . . 24-13
Habilitación del software Security Server para
RSLogix 5000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-13
Importación del archivo RSLogix5000Security.bak . . . . 24-14
Definición de acciones globales para los usuarios . . . . 24-14
Definición de acciones del proyecto para los usuarios. 24-16
Añadir usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-19
Añadir grupos de usuarios . . . . . . . . . . . . . . . . . . . . . 24-19
Asignar acceso global al software RSLogix 5000 . . . . . 24-20
Asignar acciones de proyecto para nuevos proyectos
RSLogix 5000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-21
Habilitar la seguridad para un proyecto RSLogix 5000 . 24-21
Asignar acceso a un proyecto RSLogix 5000 . . . . . . . . 24-22
Regenerar el software RSLogix 5000, si es necesario . . 24-23
Apéndice A
Códigos de fallo Cuándo usar este Apéndice . . . . . . . . . . . . . . . . . . . . . . . . A-1
Códigos de fallo mayor . . . . . . . . . . . . . . . . . . . . . . . . . . . A-1
Códigos de fallos menores. . . . . . . . . . . . . . . . . . . . . . . . . A-3
Cumplimiento de la norma
IEC61131-3
Glosario
Apéndice B
Cómo usar este Apéndice . . . . . . . . . . . . . . . . . . . . . . . . . B-1
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-1
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
Códigos de caracteres ASCII
Contraportada
Publicación 1756-PM001E-ES-P - Agosto 2002
x
Tabla de contenido
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
4.
5.
6.
7.
8.
42194
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.
1 Publicación 1756-PM001E-ES-P - Agosto 2002
1-2 Administración de archivos del proyecto
Cuando usted crea un proyecto, el nombre del archivo
del proyecto es igual al nombre del controlador.
nombre del controlador
organizador del
controlador
42371
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
Para:
guardar los cambios
haga una copia del proyecto
abierto pero mantenga el
nombre existente del
controlador
haga una copia del proyecto y
asigne un nombre diferente al
controlador.
Haga lo siguiente:
En el menú Archivo, seleccione Guardar.
A. En el menú Archivo, seleccione Guardar como.
B. Introduzca un nombre para el archivo del
proyecto. Use subrayado [ _ ] en lugar de
espacios.
C. Haga clic en Guardar.
A. En el menú Archivo, seleccione Guardar como.
B. Introduzca un nombre para el archivo del
proyecto. Use subrayado [ _ ] en lugar de
espacios.
C. Haga clic en Guardar.
D. En el Organizador de controller, haga clic con el
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.
• 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.
Publicación 1756-PM001E-ES-P - Agosto 2002
1-4 Administración de archivos del proyecto
Notas:
Publicación 1756-PM001E-ES-P - Agosto 2002
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
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
tarea continua
programa
rutina
tarea periódica
rutina principal
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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
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:
Defina las funciones del proyecto
Asigne cada función a una tarea
Estas decisiones generalmente son iterativas. Después de tomar
algunas decisiones iniciales, revise sus decisiones a medida que
continúa desarrollando el proyecto.
Publicación 1756-PM001E-ES-P - Agosto 2002
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
lógica de escalera
(que no tienen secuencia)
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
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:
a un régimen constante (por ej., ejecutar un
lazo PID cada 100 ms)
muy rápidamente
cuando ocurre un evento específico o un
conjunto de condiciones lógicas
todo el tiempo
cuando ocurre un fallo suficientemente
severo para que el controlador se desactive
Entonces:
asigne la función a una rutina dentro de una
tarea periódica
asigne la función a una rutina dentro de la
tarea continua (por ej., MainTask)
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
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
Abra una rutina
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.
Para abrir una carpeta y mostrar su contenido (expandir), realice una
de las siguientes acciones:
• Haga doble clic en la carpeta.
• Seleccione la carpeta y presione la tecla →.
• Haga clic en el signo +.
Para cerrar una carpeta y ocultar su contenido (contraer), realice una
de las siguientes acciones:
• Haga doble clic en la carpeta.
• Seleccione la carpeta y presione la tecla ←.
• Haga clic en el signo –.
Publicación 1756-PM001E-ES-P - Agosto 2002
2-8 Organización de tareas, programas y rutinas
Abra una rutina
Para abrir una rutina, haga doble clic en la rutina. Si la rutina apare
atenuada, no podrá abrir la rutina.
Si la rutina no se abre, vea la línea de estado del software
RSLogix 5000:
Si la línea de estado dice:
“Failed to open the routine –
editor not installed”
“Source not available”
Entonces:
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.
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
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.
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.
1. En el Controller Organizer, haga clic con el botón derecho del
mouse en la carpeta Tasks y seleccione New Task.
2.
3.
4.
5.
6.
2. En el cuadro de texto Name, escriba un nombre para la tarea.
3. En la lista Type, seleccione Periodic (opción predeterminada).
4. En la lista Watchdog, escriba el tiempo de watchdog para la
tarea.
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
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.
2. En el cuadro de texto Name, escriba un nombre para el
programa.
3. Seleccione
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
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.
3.
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
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
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.
3.
2. Haga clic en la ficha Configuration.
3. En la lista Main, seleccione el nombre de la rutina.
4. Seleccione
Verifique el proyecto
A medida que va programando el proyecto, verifique 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
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:
Tabla 3.A Propiedades de tag
Propiedad:
alcance
nombre
tipo de datos
Descripción:
define que rutinas pueden tener acceso a los datos
identifica a los datos (tags con diferentes alcances
pueden tener el mismo nombre).
define la organización de los datos, tal como número
de coma flotante, entero o bit
La siguiente tabla resume los tipos de datos más comunes y cuándo
usarlos.
Tabla 3.B Data Types
Para:
dispositivo analógico en modo de coma flotante
dispositivo analógico en modo entero (para velocidades de
muestreo muy rápidas)
Caracteres ASCII
bit
contador
señal de E/S digital
número de coma flotante
entero (número entero)
secuenciador
temporizador
Seleccione:
REAL
INT
string
BOOL
COUNTER
BOOL
REAL
DINT
CONTROL
TIMER
1 Publicación 1756-PM001E-ES-P - Agosto 2002
3-2 Organización de tags
Use la siguiente tabla para organizar los datos:
Para un: Use un: Referencia:
grupo de atributos comunes
usados por más de una máquina
grupo de datos con el mismo tipo
de datos
valor único
dispositivo de E/S
tipo de datos
definido
maestro (CST)
tag de un
elemento único
Vea “Creación de un tipo de
datos definido por el usuario” en
la página 3-8.
Vea “Creación de un tag” en la
página 3-10.
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
Publicación 1756-PM001E-ES-P - Agosto 2002
Organización de tags 3-3
EJEMPLO
Tags de un solo elemento
dispositivo de E/S
analógico
valor entero
acenamiento
contador
temporizador
tivo
digital
42364
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
Para expandir una matriz y
mostrar sus elementos, haga
clic en el signo +.
Para contraer una matriz
y ocultar sus elementos,
haga clic en el signo – .
elementos de
timer_presets
Esta matriz contiene
seis elementos del
tipo de datos DINT.
seis DINT
42367
Publicación 1756-PM001E-ES-P - Agosto 2002
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).
subíndice
de primera
dimensión
subíndice de segunda dimensión
0 1 2 3 4 5
Descripció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
En la ventana Tags, los elementos están en el orden indicado a continuación.
Esta matriz contiene
una cuadrícula de
elementos de dos
dimensiones, seis
elementos por seis
elementos.
42367
La dimensión del extremo derecho se
incrementa a su valor máximo y luego
vuelve a empezar.
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
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.
Nombre (del tipo de datos): TANK
Nombre del miembro
temp
banda muerta
paso
step_time
preseleccionado
combinación
Tipo de datos
REAL
REAL
DINT
TIMER
DINT[6]
BOOL
Una matriz basada en este tipo de datos se vería como la siguiente:
matriz de recetas
primera receta
Esta matriz contiene
tres elementos del
tipo de datos TANK.
miembros de la receta
42368
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
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
Una matriz basada en este tipo de datos se vería como la siguiente:
matriz de taladros
primer taladro
Esta matriz contiene
cuatro elementos del
tipo de datos
DRILL_STATION.
datos para la
taladradora
42583
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
42195
1. Haga clic con el botón derecho del mouse en Definido por el
usuario y seleccione Nuevo Data type.
2.
3.
42196
4. 5. 6. 7.
2. Introduzca un nombre para el tipo de datos.
3. Introduzca una descripción (opcional).
4. Escriba el nombre del primer miembro.
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
EJEMPLO
Si el miembro es una matriz de seis DINT,
escriba DINT[6].
6. Para mostrar el valor (s) del miembro en un estilo diferente
(base), seleccione el estilo.
7. Escriba una descripción para el miembro (opcional).
8. Haga clic en Aplicar.
9. ¿Más miembros?
Si:
Entonces:
Sí Repita los pasos 4. a 8.
No
Haga clic en Aceptar.
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:
más eficiente
menos eficiente
BOOL
BOOL
BOOL
DINT
DINT
BOOL
DINT
BOOL
DINT
BOOL
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
42350
3. 4.
5.
2. Seleccione un alcance para el tag:
Si usará el tag:
en más de un programa dentro del
proyecto
como productor o consumidor
en un mensaje
en solamente un programa dentro del
proyecto
Entonces seleccione:
name_of_controller (controlador)
programa que usará el tag
3. Introduzca un nombre para el tag.
4. Introduzca el tipo de datos:
Si el tag:
no es un maestro (CST) (archivo)
una dimensión matriz
una matriz de dos dimensiones
una matriz de tres dimensiones
Entonces escriba:
data_type
data_type[x]
data_type[x,y]
data_type[x,y,z]
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).
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
Los tags se guardan en
esta carpeta.
4.
5.
42361
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
3-12 Organización de tags
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.
8. Introduzca TAG
9. Identifique el alcance del tag:
Si el alcance es:
controlador
programa
Entonces:
Deje esta celda vacía.
Introduzca el nombre del programa.
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
Para:
enviar datos por el backplane y la red ControlNet a un
intervalo especificado
recibir datos de otro controlador por el backplane o la red
ControlNet a un intervalo especificado
Use un:
tag producido
tag consumido
Si piensa usar tags producidos o consumidos, debe seguir
pautas adicionales a medida que organiza los tags.
Vea “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.
Publicación 1756-PM001E-ES-P - Agosto 2002
3-14 Organización de tags
Notas:
Publicación 1756-PM001E-ES-P - Agosto 2002
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
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 transición es una condición verdadera o falsa que le
indica al SFC cuándo ir al siguiente paso.
Un calificador determina cuándo comienza y se detiene una
acción.
Una bifurcación simultánea ejecuta más de 1 paso simultáneamente.
Mostrar u ocultar
una acción.
(continúa en la siguiente página)
La instrucción JSR llama a una subrutina
Publicación 1756-PM001E-ES-P - Agosto 2002
Diseño de un diagrama de funciones secuenciales 4-3
Figura 4.2 Ejemplo de SFC (continúa de la página anterior)
Una bifurcación de selección selecciona
entre rutas de ejecución diferentes.
Un cuadro de texto le permite añadir texto
descriptivo o notas a su SFC.
Un paro le permite parar y esperar que se reinicie un comando.
Un cable conecta un elemento a otro elemento en cualquier lugar del diagrama. Este cable le lleva al
paso conveyor en la Figura 4.1 en la página anterior.
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
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
Las secciones restantes de este capítulo describen en detalle cómo
realizar cada tarea:
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
Estas funciones:
configurar y regular dispositivos
comandar de un estado específico para un
dispositivo
establecer una secuencia de la ejecución
del proceso
Vaya aquí:
tarea periódica
SFC en la tarea continua
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.
EJEMPLO
Definir las tareas
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.
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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 es la única rutina en el programa.
El SFC llama a todas las otras rutinas del
programa.
El programa requiere que otras rutinas se
ejecuten independientemente del SFC.
El SFC usa acciones booleanas.
Entonces:
Configure el SFC como la rutina principal
del programa.
1. Configure otra rutina como la rutina
principal del programa.
2. Use la rutina principal para llamar al
SFC como subrutina.
Si el SFC usa acciones booleanas, entonces otra 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.
Paso
Acciones
Un paso se ejecuta continuamente
hasta que una transición le indique
al SFC que vaya al siguiente paso.
MEZCLAR
Hacer esto…
…y hacer esto
Transición
• Si es verdadera, ir al siguiente paso.
• Si es falsa, repetir el paso anterior
Una transición termina el paso. La transición define las condiciones
físicas que deben ocurrir o cambiar para ir al siguiente paso.
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
primera pasada
segunda pasada
tercera pasada
Pintar
Transfer_In
Transfer_In
Pintar
Paint_Flow
Air_Flow
Elec_Charg
Limpiar
Limpiar
Transfr_Out
Transfr_Out
• Cuando usted inicialmente abre una rutina de SFC, ésta contiene
un paso y transición inicial. Use este paso para inicializar el
proceso.
paso inicial
transición inicial
• 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:
Esta organización de pasos:
produce_solution
set_mode, close_outlet, set_temperature,
open_inlet_a, close_inlet_a, set_timer,
reset_temperature, open_outlet, reset_mode
preset_tank, add_ingredient_a, cook, drain
Representa:
probablemente
demasiado grande
probablemente
demasiado pequeño
probablemente correcto
Publicación 1756-PM001E-ES-P - Agosto 2002
4-8 Diseño de un diagrama de funciones secuenciales
Estructura SFC_STEP
Cada 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:
determinar cuánto tiempo
estuvo activo un paso
(milisegundos)
indicar cuando el paso ha estado
activo durante un tiempo
específico (milisegundos)
indicar si un paso no se ejecutó
el tiempo suficiente
indicar si un paso se está
ejecutando demasiado tiempo
Entonces
verifique o
establezca este
miembro:
Tipo de
datos:
Detalles:
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).
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.
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).
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
Diseño de un diagrama de funciones secuenciales 4-9
Si desea:
hacer algo mientras el paso está
activo (incluyendo el primer y
último escán)
hacer algo cuando el paso se
activa
hacer algo mientras el paso está
activo, excepto en el primer y
último escán
hacer algo una vez en el último
escán del paso
determinar el receptor de una
instrucción SFC Reset (SFR)
determinar el tiempo máximo
que un paso estuvo activo
durante cualquiera de sus
ejecuciones
determinar si el valor del
temporizador (T) se reinicia a un
valor negativo
determinar cuántas veces se
activó un paso
Entonces
verifique o
establezca este
miembro:
Tipo de
datos:
Detalles:
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.
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.
SA BOOL El bit SA está activo cuando el paso está activo, excepto durante
el primer y ú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.
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.
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.
OV BOOL Úselo para fines de diagnóstico.
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
4-10 Diseño de un diagrama de funciones secuenciales
Si desea:
usar un tag para los diversos bits
de estado de este paso
Entonces
verifique o
establezca este
miembro:
Tipo de
datos:
Detalles:
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
El siguiente diagrama muestra la relación de los bits X, FS, SA y LS.
step_name.X
step_name.FS
step_name.SA
step_name.LS
primer escán
último escán
Publicación 1756-PM001E-ES-P - Agosto 2002
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
Ejecutar 2 o más pasos simultáneamente.
Todas las rutas deben terminar antes de
que continúe el SFC
Bifurcación de selección
Bifurcación simultánea
• 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.
• 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
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:
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.
Ejemplo de solución:
Bifurcación simultánea
45 46
Dependiendo del código de construcción, una estación perfora o
pule.
Bifurcación de selección
Perforar
Pulir
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
CONTROL
Comunicacion
BTs
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
Rampa
Mantener
Enfriar
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
Perforar
Hacer
Fijar con
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
Inicio del SFC
Paso 12
No es
correcto
Correcto
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
Hacer esto…
LUEGO esto…
LUEGO esto…
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
cada ruta tiene su propia
transición
línea horizontal
simple
Hacer esto… O esto… O esto…
Esta ruta salta la
estructura (no hace nada).
línea horizontal
simple
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
una transición para todas las rutas
hacer esto…
Y esto…
Y esto…
línea horizontal doble
línea horizontal doble
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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ón
es 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
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.
Paso
Acciones
MEZCLAR
Hacer esto…
…y hacer esto
¿Cómo desea usar la acción?
Hay dos tipos de acciones:
Si desea:
ejecutar texto estructurado directamente en el SFC
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.
Entonces:
Usar una acción no booleana
Usar una acción booleana
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
4-18 Diseño de un diagrama de funciones secuenciales
Para programar una acción no booleana, existen las siguientes
opciones:
Si desea:
• ejecutar la lógica sin rutinas
adicionales
• usar construcciones, instrucciones y
asignaciones de texto estructurado
Entonces:
Texto estructurado incorporado.
Por ejemplo:
• reutilizar lógica en múltiples pasos
• usar otro lenguaje para programar la
acción, tal como lógica de escalera
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.
Llame a una subrutina.
Por ejemplo:
• anidar un SFC
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.
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.
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
determinar cuándo está activa la
acción
determinar cuánto tiempo
estuvo activo una acción
(milisegundos)
usar uno de los siguientes
calificadores: L, SL, D, DS, SD
Entonces
verifique o
establezca
este miembro:
Tipo de
datos:
Detalles:
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, pero
desactivado (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
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).
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
4-20 Diseño de un diagrama de funciones secuenciales
Si desea:
determinar cuántas veces se
activó una acción
usar un tag para los diversos bits
de estado de esta acción
Entonces
verifique o
establezca
este miembro:
Tipo de
datos:
Detalles:
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.
Estado DINT Para este miembro: Use este bit:
Q 30
A 31
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:
Para un comentario:
en una sola línea
que abarque más de una línea
Use uno de estos formatos:
//comment
(*start of comment . . . end of
comment*)
/*start of comment . . . end of
comment*/
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
Tabla 4.1 Seleccionar un calificador para una acción
Para cambiar cuándo comienza o se detiene una acción, asigne un
calificador diferente:
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)
comience un tiempo específico después que el
paso se active y el paso continúe activo
comience un tiempo específico después que el
paso se active, aunque el paso se desactive
antes de este tiempo
se detenga antes de que se desactive el paso o
cuando se desactive el paso
permanezca activa hasta que una acción Reset
desactive esta acción
permanezca activa hasta que una acción Reset
desactive esta acción
o caduque un tiempo específico, aunque el paso se
desactive
l
S
SL
Tiempo
limitado
Almacenado
Almacenado
y tiempo
limitado
se detenga cuando el paso se desactive D Retardo de
tiempo
permanezca activa hasta que una acción Reset
desactive esta acción
permanezca activa hasta que una acción Reset
desactive esta acción
DS
SD
Retardado y
almacenado
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:
R Restablecer
• S Almacenado
• SL Almacenado y tiempo limitado
• DS Retardado y almacenado
• SD Almacenado y retardo de tiempo
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
La transición le indica al SFC cuándo ir al
siguiente paso.
transición
Si es verdadera, ir al siguiente paso.
Si es falsa, repetir el paso anterior.
Las transiciones ocurren en los siguientes lugares:
Para esta estructura:
secuencia
Asegúrese de que:
Haya una transición entre cada paso.
pasos
transiciones
bifurcación de selección
Las transiciones estén dentro de las líneas horizontales.
transiciones
bifurcación simultánea
Las transiciones estén fuera de las líneas horizontales.
transiciones
Publicación 1756-PM001E-ES-P - Agosto 2002
Diseño de un diagrama de funciones secuenciales 4-23
Los siguientes son dos ejemplos de transiciones:
EJEMPLO
Usted desea:
a. Activar 2 compresores. Cuando un compresor
se activa, el bit Device1State se activa (init).
b. Cuando ambos compresores estén activados, ir
al siguiente paso.
Solución:
Init
Init_Done compressor_1.Device1State = on (1)
y
compressor_2.Device1State = on (1)
EJEMPLO
Usted desea:
a. Empacar (package) el producto. Cuando el
producto está en el paquete, el bit
package_done se activa.
b. Empacar el producto a razón de 8 por caja o
16 por caja.
Solución:
Package
carton_8
carton_16
Pack_8
Pack_16
package_done = on (1) y
carton_size = 8
package_done = on (1) y
carton_size = 16
Para anular el estado de una transición, vea “Forzado de elementos
lógicos” en la página 18-1.
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
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.
¿Cómo desea programar la transición?
Para programar la transición, existen estas opciones:
Si desea:
introducir las condiciones como expresión
en texto estructurado
introducir las condiciones como
instrucciones en otra rutina
usar la misma lógica para múltiples
transiciones
Entonces:
Usar una expresión BOOL
Llamar a una subrutina
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.
bool_tag_a
bool_tag_a &
bool_tag_b
dint_tag_a > 8
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
2
3
1
JSR - o bien -
2
3
If condition_1 & condition_2 &
condition_3 then
BOOL_tag := 1;
Else
BOOL_tag := 0;
End_if;
EOT(BOOL_tag);
1. Llame a una subrutina.
2. Verifique las condiciones requeridas. Cuando dichas
condiciones son verdaderas, active un tag BOOL.
3. Use una 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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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
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.AlarmEn
step_name.X
step_name.LimitHigh
step_name.LimitLow
step_name.T
step_name.AlarmHigh
step_name.AlarmLow
1 2 3 4 5 6
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
4-28 Diseño de un diagrama de funciones secuenciales
El siguiente es un ejemplo de uso del tiempo preseleccionado 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:
Cook
Cook.PRE = 20000 ms
Cook_Done
Cook.DN = on (1)
Empty_Tank
El siguiente es un ejemplo de uso de la alarma alta de un paso.
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:
Init
Init.LimitHigh = 20000 ms
Init_OK
Init_Not_OK
Init.AlarmHigh
Step_1
Shutdown
Publicación 1756-PM001E-ES-P - Agosto 2002
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ó.
Programmatic Reset
Automatic Reset
usar la lógica para
restablecer los
datos
dejar que el
controlador
restablezca los
datos
automáticamente
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.
Si desea: Y en el último escán de este paso: Entonces: Vea:
controlar qué datos
restablecer
dejar que el controlador
restablezca los datos
Ejecutar sólo las acciones P y P0 y usarlas para
restablecer los datos requeridos.
Ejecutar todas las acciones y usar cualquiera
de estas opciones para restablecer los datos
requeridos:
• bits de estado del paso o acción para
condicionar la lógica
• Acciones P y P0
Usar la opción Don’t Scan página 4-31
Usar la opción Programmatic Reset página 4-32
Usar la opción Automatic Reset página 4-34
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
acciones de ejecución
retención de valores de
datos
Durante el último escán de un paso, esta opción hace lo siguiente:
Don’t scan Programmatic reset Automatic reset
Sólo las acciones P y P0 se
ejecutan. Se ejecutan según su
lógica.
Todos los datos mantienen sus
valores actuales.
Todas las acciones se ejecutan
según su lógica
Todos los datos mantienen sus
valores actuales.
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
restablecimiento de un SFC
anidado
Un SFC anidado permanece en su
paso actual.
Un SFC anidado permanece en su
paso actual.
• 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.
• Los datos regresan a sus
valores para post-escán.
• Los tags a la izquierda de
las asignaciones [:=] se
restablecen a cero.
Use uno de los siguientes:
• Asignación [:=] (asignación
o retentiva)
• instrucciones que
restablecen sus datos
durante el post-escán
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
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
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
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.
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.
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 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
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)
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.
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
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
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.
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:
Opción:
Usar una bifurcación simultánea
Efectúe un paso separado que controle el
dispositivo.
Ejemplo:
Transfer_In
Paint
Fan
CONTROL
Clean
Transfr_Out
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.
Transfer_In
Paint
Clean
activar el ventilador
Usar un paso grande
Use un paso grande que contenga todas las
acciones que ocurren mientras el dispositivo está
activado.
Transfr_Out
Paint
desactivar el ventilador
transferir, pintar,
limpiar, transferir
controlar el ventilador
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
Transfer_In
Paint_Flow
Air_Flow
Elec_Charg
Fan
CONTROL
Clean
Transfr_Out
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
S
Action_Name
paso que inicia la acción
acción que usted desea
ejecutar por más de un paso
más pasos
r
Action_Name
paso que detiene la acción
el mismo nombre que la
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
step_1
activar el ventilador
(almacenado)
step_2
step_3
step_4
desactivar el ventilador
(restablecido)
Para volver a activar el ventilador, el SFC tiene que saltar
nuevamente al step_1.
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
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.
Para obtener información adicional sobre cómo anidar un “SFC, vea
Anidar un SFC” en la página 4-43.
Publicación 1756-PM001E-ES-P - Agosto 2002
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?
Para:
hacer un lazo a un paso anterior
automáticamente
Haga lo siguiente:
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.
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:
Si el elemento de paro está al final de una:
secuencia
bifurcación de selección
ruta dentro de una bifurcación simultánea
Entonces:
todo el SFC se detiene
sólo la ruta se detiene mientras que el
resto del SFC continúa ejecutándose.
Publicación 1756-PM001E-ES-P - Agosto 2002
Diseño de un diagrama de funciones secuenciales 4-41
EJEMPLO
Usar un elemento de paro
Cuando el SFC llega a last_step
yprocess_done es verdadero, la
ejecución del SFC se detiene.
Reiniciar (restablecer) el SFC
En el elemento de paro, usted tiene varias opciones para reiniciar el
SFC:
Si el SFC está:
anidado (por ej., otro SFC llama a
este SFC como subrutina)
NO anidado (por ej., ningún SFC
llama a este SFC como subrutina)
Y la opción Last Scan of Active
Steps es:
Automatic reset
Programmatic reset
Don’t scan
Entonces:
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.
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.
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
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.
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
Estructura SFC_STOP
Cada paro usa un tag para proporcionar la siguiente información
acerca del elemento de paro:
Si desea:
determinar cuando el SFC esté
en paro
determinar el receptor de una
instrucción SFC Reset (SFR)
determinar cuántas veces se
activó un paro
usar un tag para los diversos bits
de estado de este paro
Entonces
verifique o
establezca este
miembro:
Tipo de
datos:
Detalles:
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.
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.
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.
Status DINT Para este miembro: Use este bit:
Reset 22
X 31
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
SFC_a
1
2
SFC_b
4
3
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
Parámetros de
entrada
❇
Parámetros de
retorno
❇
SFC_b
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).
predeterminado
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
Si desea:
poner en pausa un SFC
restablecer un SFC a un paso o paro
específico
Entonces use esta instrucción:
Pause SFC (SFP)
Reset SFC (SFR)
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.
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
4-46 Diseño de un diagrama de funciones secuenciales
Figura 4.5 Ejecución de una secuencia
Lo siguiente…
…se ejecuta de la siguiente manera
step_1
step_1
tran_1
step_2
tran_2
tran_1
verdadero
falso
regresar a
OS/JSR
regresar a
OS/JSR
step_1
último escán
step_2
tran_2
verdadero
regresar a
OS/JSR
falso
regresar a
OS/JSR
step_2
último escán
Publicación 1756-PM001E-ES-P - Agosto 2002
Diseño de un diagrama de funciones secuenciales 4-47
Figura 4.6 Ejecución de una bifurcación simultánea
Lo siguiente…
…se ejecuta de la siguiente manera
step_1
step_1
tran_1
step_2
step_3
tran_1
falso
regresar a
OS/JSR
verdadero
tran_2
regresar a
OS/JSR
step_1
último escán
step_2
step_3
tran_2
verdadero
falso
regresar a
OS/JSR
step_2
step_3
tran_2
verdadero
falso
regresar a
OS/JSR
regresar a
OS/JSR
step_2
step_3
último escán
Publicación 1756-PM001E-ES-P - Agosto 2002
4-48 Diseño de un diagrama de funciones secuenciales
Figura 4.7 Ejecución de una bifurcación de selección
Lo siguiente…
…se ejecuta de la siguiente manera
step_1
step_1
tran_1
tran_2
step_2
step_3
tran_1
falso
tran_3
tran_4
verdadero
regresar a
OS/JSR
tran_2
verdadero
falso
regresar a
OS/JSR
regresar a
OS/JSR
step_1
step_1
último escán
step_2
step_3
tran_3
falso
regresar a
OS/JSR
tran_4
falso
regresar a
OS/JSR
verdadero
verdadero
regresar a
OS/JSR
regresar a
OS/JSR
step_2
step_3
último escán
Figura 4.8 Cuando los parámetros entran y salen de un SFC
parámetros de entrada
parámetros de entrada
step_1
parámetros de retorno
regresar a
OS/JSR
falso
tran_1
verdadero
parámetros de retorno
regresar a
OS/JSR
parámetros de entrada
step_1
último escán
Publicación 1756-PM001E-ES-P - Agosto 2002
Diseño de un diagrama de funciones secuenciales 4-49
Figura 4.9 Opciones para el control de ejecución
Lo siguiente…
step_1
tran_1
step_2
tran_2
…se ejecuta de la siguiente manera
Ejecutar los pasos activos actuales solamente
Ejecutar hasta transición FALSA
step_1
step_1
tran_1
falso
regresar a
OS/JSR
tran_1
falso
regresar a
OS/JSR
verdadero
verdadero
regresar a
OS/JSR
step_1
step_1
último escán
step_2
step_2
tran_2
falso
regresar a
OS/JSR
tran_2
falso
regresar a
OS/JSR
verdadero
verdadero
regresar a
OS/JSR
step_2
step_2
último escán
Publicación 1756-PM001E-ES-P - Agosto 2002
4-50 Diseño de un diagrama de funciones secuenciales
Notas:
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
✓
✓
Abra o cierre una carpeta
Cree una rutina
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.
1 Publicación 1756-PM001E-ES-P - Agosto 2002
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
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.
paso y transición
paso
inicio de
bifurcación de
selección
inicio de bifurcación
simultánea
paro
subrutina/retorno
transición
nueva ruta
cuadro de texto
Para añadir un elemento al SFC, tiene estas opciones:
Añadir y conectar manualmente los elementos
Añadir y conectar automáticamente los elementos
Arrastrar y colocar elementos
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.
Por ejemplo:
B
A
punto verde
3. Para cablear (conectar) dos elementos juntos, haga clic en un
pin en uno de los elementos A y luego haga clic en el pin en
el otro elemento B . Un punto verde muestra un punto de
conexión válido.
Publicación 1756-PM001E-ES-P - Agosto 2002
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
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 .
A
B
punto verde
3. Para cablear la bifurcación simultánea a la transición precedente,
haga clic en el pin inferior de la transición A y luego haga clic
en la línea horizontal de la bifurcación. B . 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 .
Publicación 1756-PM001E-ES-P - Agosto 2002
5-6 Programación de un diagrama de funciones secuenciales
3. Añada la transición que sigue a la bifurcación simultánea.
B
A
punto verde
4. Para cablear la bifurcación simultánea a la transición, haga clic
en el pin superior de la transición A y luego haga clic en la
línea horizontal de la bifurcación B . 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 .
A
B
punto verde
3. Para cablear la bifurcación de selección al paso precedente,
haga clic en el pin inferior del paso A y luego haga clic en la
línea horizontal de la bifurcación B . Un punto verde muestra
un punto de conexión válido.
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
B
A
punto verde
4. Para cablear la bifurcación de selección al paso, haga clic en el
pin superior del paso A y luego haga clic en la línea horizontal
de la bifurcación B . Un punto verde muestra un punto de
conexión válido.
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
3.
4.
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
1. 2.
Arrastre la barra horizontal aquí.
Luego haga clic aquí.
Haga clic aquí.
punto verde
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
lugar donde va el cable
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.
cable oculto
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
2.
3.
4.
3. Escriba el tiempo para la alarma alta, en milisegundos.
4. Escriba el tiempo para la alarma baja, en milisegundos.
5. Seleccione
Para calcular el tiempo de una alarma durante el tiempo de 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.
Publicación 1756-PM001E-ES-P - Agosto 2002
Programación de un diagrama de funciones secuenciales 5-13
2.
3.
3. Haga clic en el botón Define.
4.
busque un tag
seleccione una
seleccione un
cree un tag
5.
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
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
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].
BOOL_expression
Publicación 1756-PM001E-ES-P - Agosto 2002
Programación de un diagrama de funciones secuenciales 5-15
Los siguientes ejemplos muestran tres transiciones que usan una
expresión BOOL.
EJEMPLO
Introducir una expresión BOOL
nombre de tag de la
transición
Expresión BOOL que controla cuando la
transición es verdadera o falsa
Llamar a una subrutina
1. Haga clic con el botón derecho del mouse en la transición y
seleccione Set JSR.
2.
2. Seleccione la rutina que contiene la lógica para la transición.
3. Seleccione
JSR(routine_name)
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
3. Escriba el nuevo nombre para la acción (tag).
4. Seleccione
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
3.
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
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
2.
3.
3. Haga clic en el botón Define.
4.
busque un tag
seleccione una función
seleccione un operador
cree un tag
5.
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
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
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].
Publicación 1756-PM001E-ES-P - Agosto 2002
5-20 Programación de un diagrama de funciones secuenciales
//comment
statement;
statement;
Para obtener información sobre texto estructurado:
Para obtener esta información sobre texto
estructurado:
información general acerca de asignaciones,
operadores, funciones, instrucciones o comentarios
información acerca de una instrucción específica
Vea:
“Programación de texto estructurado” en la página 6-1
• 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
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.
3. 4.
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
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
Cuando Step_003 está activo, sus
acciones se ejecutan en este orden:
1. Action_000
2. Action_001
3. Action_002
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:
Publicación 1756-PM001E-ES-P - Agosto 2002
Programación de un diagrama de funciones secuenciales 5-23
Documentar el SFC
Para documentar un SFC, existen las siguientes opciones:
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
colocar la documentación en cualquier lugar en
el SFC
Añadir un cuadro de texto
-o bien-
Añadir una descripción de tag
acción descargar la documentación al controlador Añadir comentarios de texto estructurado
paro
Añadir un cuadro de texto
-o bienotro
elemento (por ej., bifurcación de
Añadir una descripción de tag
selección)
Añadir comentarios de texto estructurado
Use la siguiente tabla para formatear sus comentarios:
Para añadir un comentario:
en una sola línea
al final de una línea de texto
estructurado
dentro de una línea de texto
estructurado
que abarque más de una línea
Use uno de estos formatos:
//comment
(*comment*)
/*comment*/
(*comment*)
/*comment*/
(*start of comment . . . end of
comment*)
/*start of comment . . . end of
comment*/
Para obtener más información, vea “Comentarios” en la página 6-26.
Para introducir los comentarios:
Publicación 1756-PM001E-ES-P - Agosto 2002
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].
//comment
statement;
statement;
Añadir una descripción de tag
1. Haga clic en el botón del elemento.
2. Haga clic en la ficha Tag.
3.
3. Escriba la descripción del elemento (tag).
4. Seleccione
5. Arrastre el cuadro de descripción al lugar deseado en el SFC.
Publicación 1756-PM001E-ES-P - Agosto 2002
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?
Si usted desea que el cuadro de
texto:
permanezca en el mismo lugar
se mueva con el elemento a donde se
aplica
Entonces:
Deténgase. Ya terminó.
Vaya al paso paso 5
B
A
punto verde
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
2. Bajo SFC Editor, seleccione la categoría Display.
3. Seleccione la opción deseada.
Si desea:
mostrar cuadros de texto o
descripciones
ocultar cuadros de texto o
descripciones
Entonces:
seleccione el cuadro de verificación
correspondiente
borre la selección del cuadro de verificación
correspondiente
4. Seleccione
Publicación 1756-PM001E-ES-P - Agosto 2002
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
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.
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.
2.
3.
4.
5.
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
Publicación 1756-PM001E-ES-P - Agosto 2002
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
5-30 Programación de un diagrama de funciones secuenciales
Notas:
Publicación 1756-PM001E-ES-P - Agosto 2002
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)
expresión
(vea la
página 6-4)
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 “;”.
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:
tag := expression;
tags
Un área con nombre de la memoria, donde se value1
almacenan datos (BOOL, SINT,INT,DINT, REAL,
cadena).
inmediatos Un valor constante. 4
operadores Un símbolo o mnemónico que especifica una
operación dentro de una expresión.
tag1 + tag2
tag1 >= value1
funciones Cuando se ejecuta, una función produce un valor.
Use paréntesis para contener el operando de una
función.
function(tag1)
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.
1 Publicación 1756-PM001E-ES-P - Agosto 2002
6-2 Programación de texto estructurado
Término: Definición: Ejemplos:
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 “;”.
instruction();
instruction(operand);
instruction(operand1,
operand2,operand3);
construcción
(vea la página 6-12)
comentario
(vea la página 6-26)
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.
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 “;”.
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.
IF...THEN
CASE
FOR...DO
WHILE...DO
REPEAT...UNTIL
EXIT
//comment
(*start of comment . . .
end of comment*)
/*start of comment . . .
end of comment*/
Asignaciones
Use una asignación para cambiar el valor almacenado en un tag. Una
asignación tiene esta sintaxis:
tag := expression ;
donde:
Componente:
Descripción:
tag
representa el tag que obtiene el nuevo valor
el 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:
BOOL
SINT
INT
DINT
REAL
; finales de asignación
Use este tipo de expresión:
expresión BOOL
expresión numérica
Publicación 1756-PM001E-ES-P - Agosto 2002
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 valor
el 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:
BOOL
SINT
INT
DINT
REAL
; finales de asignación
Use este tipo de expresión:
expresión BOOL
expresión numérica
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
Esto es correcto:
Esto no es correcto:
string1.DATA[0]:= 65; string1.DATA[0] := A;
string1.DATA[0]:= string2.DATA[0]; string1 := string2;
Para añadir o insertar una cadena de caracteres a un tag de cadena,
use cualquiera de estas instrucciones de cadena ASCII:
Para:
añadir caracteres al fin de una cadena
insertar caracteres en una cadena
Use esta instrucción:
CONCAT
INSERT
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
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 “Use operadores lógicos“ en la página 6-9.
o falsas
Comparar bits dentro de valores “Use operadores de bit“ en la página 6-10.
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.
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
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.
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
Por ejemplo:
Use este formato:
value1 operator value2
operator value1
function(numeric_expression)
value1 operator
(function((value2+value3)/2)
Ejemplo:
Para esta situación:
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.”
Si alarm y high_alarm son tags DINT y su
especificación dice: “Cambiar signo de high_alarm
y guardar el resultado en alarm.”
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.”
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.”
Usted escribiría:
gain_4_adj :=
gain_4+15;
alarm:= –
high_alarm;
overtravel_POS :=
ABS(overtravel);
position :=
adjustment +
ABS((sensor1 +
sensor2)/2);
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
Si la comparación es:
verdadero 1
falso 0
Use los siguientes operadores de relación:
Por ejemplo:
El resultado es:
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:
value1 operator value2
stringtag1 operator
stringtag2
char1 operator char2
Para introducir un carácter ASCII
directamente en una expresión, introduzca
el valor decimal del carácter.
bool_tag :=
bool_expressions
Ejemplo:
Para esta situación:
Si temp es un tag DINT y su especificación dice:
“Si temp es menor que 100° entonces…”
Si bar_code y dest son tags de cadena y su
especificación dice: “Si bar_code es igual que
dest entonces…”
Si bar_code es un tag de cadena y su
especificación dice: “Si bar_code.DATA[0] es
igual que ’A’ entonces…”
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”.
Usted escribiría:
IF temp<100 THEN...
IF bar_code=dest THEN...
IF bar_code.DATA[0]=65
THEN...
done := (count >= length);
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
Caracteres ASCII
Códigos hexadecimales
1ab $31$61$62
l
e
s
s
e
r
m
a
y
o
r
q
u
e
1b $31$62
A $41
AB $41$42
B $42
a $61
ab $61$62
AB < B
a > B
• 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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
Si la comparación es:
verdadero 1
falso 0
Use los siguientes operadores lógicos:
Por ejemplo:
El resultado es:
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:
BOOLtag
NOT BOOLtag
expression1 & expression2
expression1 OR expression2
expression1 XOR expression2
BOOLtag := expression1 &
expression2
Ejemplo:
Para esta situación:
Si photoeye es un tag BOOL y su especificación
dice: “Si photoeye_1 está encendido,
entonces…”
Si photoeye es un tag BOOL y su especificación
dice: “Si photoeye está apagado, entonces…”
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…”.
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…”.
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…”
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”.
Usted escribiría:
IF photoeye THEN...
IF NOT photoeye THEN...
IF photoeye & (temp<100)
THEN...
IF photoeye OR (temp<100)
THEN...
IF photoeye1 XOR
photoeye2 THEN...
open := photoeye1 &
photoeye2;
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
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
Por ejemplo:
Use este formato:
value1 operator value2
Ejemplo:
Para esta situación:
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”.
Usted escribiría:
result1 := input1 AND
input2;
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.
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
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
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.
osri_1.InputBit := tag_xic;
OSRI(osri_1);
IF (osri_1.OutputBit) THEN
ABL(0,serial_control);
END_IF;
Construcciones
Las construcciones pueden programarse de manera simple o anidadas
dentro de otras construcciones.
Si desea: Use esta construcción: Disponible en estos lenguajes: Vea la página:
hacer algo si o cuando ocurran condiciones
específicas
seleccionar qué hacer basado en un valor
numérico
hacer algo un número de veces específico antes
de hacer algo diferente
continuar haciendo algo siempre que ciertas
condiciones sean verdaderas
continuar haciendo algo hasta que una
condición sea verdadera
IF...THEN texto estructurado 6-13
CASE...OF texto estructurado 6-16
FOR...DO texto estructurado 6-18
WHILE...DO texto estructurado 6-21
REPEAT...UNTIL texto estructurado 6-23
Publicación 1756-PM001E-ES-P - Agosto 2002
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
IF bool_expression THEN
<statement>;
END_IF;
Operando: Tipo: Formato: Introduzca:
bool_
expression
BOOL
tag
expresión
Expresión o tag BOOL que evalúe a un
valor BOOL (expresión BOOL)
Descripción:
La sintaxis es:
opcional
opcional
IF bool_expression1 THEN
<statement >;
.
.
.
ELSIF bool_expression2 THEN
ELSE
END_IF;
<statement>;
.
.
.
<statement >;
.
.
.
comandos que se ejecutan
cuando bool_expression1 es
verdadero
comandos que se ejecutan
cuando bool_expression2 es
verdadero
comandos que se ejecutan
cuando ambas expresiones son
falsas
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
6-14 Programación de texto estructurado
La siguiente tabla resume las diferentes combinaciones de IF, THEN,
ELSIF y ELSE.
Si desea: Y: Entonces use esta construcción
hacer algo si o cuando las condiciones
sean verdaderas
seleccionar entre comandos
alternativos (o grupos de comandos)
basados en condiciones de entrada
no hacer nada si las condiciones son falsas
hacer algo diferente si las condiciones son falsas
no hacer nada si las condiciones son falsas
asignar comandos predeterminados si todas las
condiciones son falsas
IF…THEN
IF…THEN…ELSE
IF…THEN…ELSIF
IF…THEN…ELSIF…ELSE
Indicadores de estado
aritmético:
Condiciones de fallo:
Ejemplo 1:
no afectados
Ninguna
IF…THEN
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;
Ejemplo 2:
IF…THEN…ELSE
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;
[:=] 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).
Publicación 1756-PM001E-ES-P - Agosto 2002
Programación de texto estructurado 6-15
Ejemplo 3:
IF…THEN…ELSIF
Si desea lo siguiente:
Si interruptor de límite bajo de azúcar = bajo (activado) e
interruptor de límite alto de azúcar = no alto (activado)
entonces
Introduzca este texto estructurado:
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 ELSIF NOT(Sugar.High) THEN
(desactivado)
Sugar.Inlet := 0;
END_IF;
[:=] 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 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
6-16 Programación de texto estructurado
CASE...OF
Use CASE para seleccionar qué hacer basado en un valor numérico.
Operandos:
Texto estructurado
CASE numeric_expression OF
selector1: statement;
selectorN: statement;
ELSE
statement;
END_CASE;
Operando: Tipo: Formato: Introduzca:
numeric_
expression
selector
SINT
INT
DINT
REAL
SINT
INT
DINT
REAL
tag
expresión
valor
inmediato
tag o expresión que evalúe a un número
(expresión numérica)
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.
Descripción:
La sintaxis es:
especifique la cantidad
de valores de selector
alternativos (rutas) que
necesite
opcional
CASE numeric_expression OF
selector1 : <statement>;
.
.
.
ELSE
selector2 :
selector3 :
END_CASE;
<statement>;
.
.
.
<statement>;
.
.
.
<statement>;
.
.
.
comandos a ejecutar cuando
numeric_expression = selector1
comandos a ejecutar cuando
numeric_expression = selector2
comandos a ejecutar cuando
numeric_expression = selector3
comandos a ejecutar cuando
numeric_expression ≠ cualquier
selector
Vea la tabla en la siguiente página para obtener los valores de selector
válidos.
Publicación 1756-PM001E-ES-P - Agosto 2002
Programación de texto estructurado 6-17
La sintaxis para introducir los valores de selector es:
Cuando el selector es:
un valor
valores múltiples y diferentes
Introduzca:
value: statement
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>
Indicadores de estado
aritmético:
Condiciones de fallo:
no afectados
Ninguna
Ejemplo
Si desea lo siguiente:
Si número de receta = 1 entonces
Introduzca este texto estructurado:
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;
[:=] 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).
Publicación 1756-PM001E-ES-P - Agosto 2002
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
FOR count:= initial_value TO
final_value BY increment DO
<statement>;
END_FOR;
Operando: Tipo: Formato: Descripción:
count
initial_
value
final_
value
increment
SINT
INT
DINT
SINT
INT
DINT
SINT
INT
DINT
SINT
INT
DINT
tag
tag
expresión
valor
inmediato
tag
expresión
valor
inmediato
tag
expresión
valor
inmediato
tag para almacenar posición de conteo a
medida que FOR…DO se ejecuta
debe evaluar a un número
especifica el valor inicial del conteo
especifica el valor final del conteo, lo
cual determina cuándo salir del lazo
(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.
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.
Descripción:
La sintaxis es:
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;
END_IF;
END_FOR;
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
¿Efectuado x
número de veces?
sí
¿Efectuado x
número de veces?
sí
no
no
comando 1
comando 2
comando 3
comando 4
…
resto de la rutina
comando 1
comando 2
comando 3
comando 4
…
¿ Salir ?
no
sí
resto de la rutina
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.
Indicadores de estado
aritmético:
no afectados
Condiciones de fallo:
Ocurrirá un fallo mayor si: Tipo de fallo: Código de fallo:
los lazos de la construcción son
demasiado largos
6 1
Ejemplo 1:
Si desea lo siguiente:
Restablecer los bits 0 – 31 en una matriz de BOOL:
1. Inicializar el tag subscript a 0.
2. Restablecer array[ subscript ]. Por ejemplo,
cuando subscript = 5, restablecer array[5].
3. Añadir 1 a subscript.
4. Si subscript es ≤ que 31, repetir 2 y 3.
De lo contrario, parar.
Introduzca este texto estructurado:
For subscript:=0 to 31 by 1 do
array[subscript] := 0;
End_for;
Publicación 1756-PM001E-ES-P - Agosto 2002
6-20 Programación de texto estructurado
Ejemplo 2:
Si desea lo siguiente:
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.
Introduzca este texto estructurado:
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
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
WHILE bool_expression DO
<statement>;
END_WHILE;
Operando: Tipo: Formato: Introduzca:
bool_
expression
BOOL
tag
expresión
Expresión o tag BOOL que evalúe a un
valor BOOL
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.
Descripción:
La sintaxis es:
opcional
WHILE bool_expression1 DO
<statement>;
IF bool_expression2 THEN
EXIT;
END_IF;
END_WHILE;
comandos que se ejecutan mientras
bool_expression1 es verdadero
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.
Los siguientes diagramas muestran cómo se ejecuta un lazo
WHILE...DO y cómo un comando EXIT sale del lazo anticipadamente.
expresión BOOL
falso
expresión BOOL
falso
verdadero
verdadero
comando 1
comando 2
comando 3
comando 4
…
resto de la rutina
comando 1
comando 2
comando 3
comando 4
…
¿ Salir ?
no
sí
resto de la rutina
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
6-22 Programación de texto estructurado
Ejemplo 1:
Si desea lo siguiente:
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.
Introduzca este texto estructurado:
pos := 0;
While ((pos <= 100) & structarray[pos].value
<> targetvalue)) do
pos := pos + 2;
String_tag.DATA[pos] := SINT_array[pos];
end_while;
Indicadores de estado
aritmético:
no afectados
Condiciones de fallo:
Ocurrirá un fallo mayor si: Tipo de fallo: Código de fallo:
los lazos de la construcción son
demasiado largos
6 1
Ejemplo 2:
Si desea lo siguiente:
Transferir caracteres ASCII de una matriz SINT a un tag de
cadena. (En una matriz SINT, cada elemento contiene un
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
Introduzca este texto estructurado:
element_number := 0;
SIZE(SINT_array, 0, SINT_array_size);
While SINT_array[element_number] <> 13 do
String_tag.DATA[element_number] :=
SINT_array[element_number];
element_number := element_number + 1;
String_tag.LEN := element_number;
If element_number = SINT_array_size then
exit;
end_if;
end_while;
Publicación 1756-PM001E-ES-P - Agosto 2002
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
REPEAT
<statement>;
UNTIL bool_expression
END_REPEAT;
IMPORTANTE
Operando: Tipo: Formato: Introduzca:
bool_
expression
BOOL
tag
expresión
Expresión o tag BOOL que evalúe a un
valor BOOL (expresión BOOL)
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.
Descripción:
La sintaxis es:
opcional
REPEAT
<statement>;
IF bool_expression2 THEN
EXIT;
END_IF;
UNTIL bool_expression1
END_REPEAT;
comandos que se ejecutan mientras
bool_expression1 es falso
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
comando 1
comando 2
comando 3
comando 4
…
expresión BOOL
verdadero
comando 1
comando 2
comando 3
comando 4
…
¿ Salir ?
sí
falso
resto de la rutina
no
expresión BOOL
falso
verdadero
Mientras que bool_expression es falso, el controlador
ejecuta sólo los comandos dentro del lazo
REPEAT…UNTIL.
resto de la rutina
Para detener el lazo antes de que las condiciones sean
falsas, use el comando EXIT.
Ejemplo 1:
Si desea lo siguiente:
El lazo REPEAT...UNTIL ejecuta los comandos en la 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.
Introduzca este texto estructurado:
pos := –1;
REPEAT
pos := pos + 2;
UNTIL ((pos = 101) OR
(structarray[pos].value = targetvalue))
end_repeat;
Indicadores de estado
aritmético:
no afectados
Condiciones de fallo:
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
Programación de texto estructurado 6-25
Ejemplo 2:
Si desea lo siguiente:
Transferir caracteres ASCII de una matriz SINT a un tag de
cadena. (En una matriz SINT, cada elemento contiene un
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.
Introduzca este texto estructurado:
element_number := 0;
SIZE(SINT_array, 0, SINT_array_size);
Repeat
String_tag.DATA[element_number] :=
SINT_array[element_number];
element_number := element_number + 1;
String_tag.LEN := element_number;
If element_number = SINT_array_size then
exit;
end_if;
Until SINT_array[element_number] = 13
end_repeat;
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
Para añadir un comentario:
en una sola línea
al final de una línea de texto
estructurado
dentro de una línea de texto
estructurado
que abarque más de una línea
Use uno de estos formatos:
//comment
(*comment*)
/*comment*/
(*comment*)
/*comment*/
(*start of comment . . . end of
comment*)
/*start of comment . . . end of
comment*/
Por ejemplo:
Formato:
//comment
(*comment*)
Ejemplo:
Al comienzo de una línea
//Check conveyor belt direction
IF conveyor_direction THEN...
Al final de una línea
ELSE //If conveyor isn’t moving, set alarm light
light := 1;
END_IF;
Sugar.Inlet[:=]1;(*open the inlet*)
IF Sugar.Low (*low level LS*)& Sugar.High (*high level
LS*)THEN...
(*Controla la velocidad de la bomba de 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 Inventory
y almacena el valor en el tag Inventory_Items*/
SIZE(Inventory,0,Inventory_Items);
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
✓
✓
Abra o cierre una carpeta
Cree una rutina
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:
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
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
Rutina de control de motores
Hoja 1 de 4 motor 1 Hoja 2 de 4 motor 2
Hoja 3 de 4 motor 3 Hoja 4 de 4 motor 4
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
referencia de entrada (IREF)
bloque de función
referencia de salida (OREF)
conector de
cable de
salida (OCON)
conector de
cable de
entrada (ICON)
Use la siguiente tabla para seleccionar los elementos de los bloques
de función:
Si desea:
proporcionar un valor proveniente de un dispositivo de entrada o tag
enviar un valor a un dispositivo de salida o tag
realizar una operación con un valor o valores de entrada y producir
un valor o valores de salida
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
dispersar datos a varios puntos en la rutina
Entonces use un/una:
referencia de entrada (IREF)
referencia de salida (OREF)
bloque de función
conector de cable de salida (OCON) y un conector de
cable de entrada (ICON)
conector de cable de salida único (OCON) y múltiples
conectores de cable de entrada (ICON)
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
Para un:
tag
número de bit de un tipo de datos más grande
miembro de una estructura
elemento de una matriz de una dimensión
elemento de una matriz de dos dimensiones
elemento de una matriz de tres dimensiones
elemento de una matriz dentro de una estructura
miembro de un elemento de una matriz
Especifique:
tag_name
tag_name.bit_number
tag_name.member_name
tag_name[x]
tag_name[x,y]
tag_name[x,y,z]
tag_name.member_name[x]
tag_name[x,y,z].member_name
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
los datos fluyen desde los pines de salida hasta los pines de entrada
pin de salida cable pin de entrada pin de salida cable pin de entrada
Símbolos de cables:
valor SINT, INT,
DINT, o REAL
valor BOOL
(0 ó 1)
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.
IREF
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
Block_01
tagA
Block_02
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.
Block_01
tagA
Block_02
tagA
Publicación 1756-PM001E-ES-P - Agosto 2002
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
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.
1 2 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.
1 3 5
2 4 6
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.
Este pin de entrada usa una
salida que el bloque produjo en el
escán anterior.
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
1 2 3
Este pin de entrada usa la salida
que el bloque 3 produjo en el
escán anterior.
Indicador “Assume Data Available”
El indicador Assume Data Available define el flujo de datos dentro del
lazo. La flecha indica que el dato sirve como entrada para el primer
bloque en el lazo.
No marque todos los cables de un lazo con el indicador Assume Data
Available.
Esto es correcto
Esto no es correcto
1 2
?
?
Indicador “Assume Data
Available”
El controlador no puede resolver el lazo porque los cables usan
el indicador Assume Data Available.
El indicador Assume Data Available define el flujo de datos dentro del
lazo.
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
Esto es correcto
Esto no es correcto
Ningún cable usa el indicador Assume Data Available.
Un cable usa el indicador Assume Data Available y el otro cable no.
Indicador “Assume Data
Available”
Ambos cables usan el indicador Assume Data Available.
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.
2 1
Indicador “Assume Data Available”
Publicación 1756-PM001E-ES-P - Agosto 2002
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
Connector_A
datos
Connector_A
Para usar los conectores, siga estas reglas:
• Cada OCON requiere un nombre único.
• Por cada OCON, usted debe tener por lo menos un ICON
respectivo (por ej., un ICON con el mismo nombre que el
OCON).
• Múltiples ICON pueden hacer referencia al mismo OCON. Esto
le permite dispersar datos a diversos puntos en la rutina.
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
Entrada:
.ProgProgReq
.ProgOperReq
.OperProgReq
.OperOperReq
Descripción:
Una petición del programa para ir a control de
programa.
Una petición del programa para ir a control de
operador.
Una petición del operador para ir a control de
programa.
Una petición del operador para ir a control de
operador.
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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
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.
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.
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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
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. 2.
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.
IREF
OREF ICON OCON
bloques de función
otros bloques de función
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.
Por ejemplo:
Publicación 1756-PM001E-ES-P - Agosto 2002
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
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
Conecte elementos juntos
Marque un cable con el indicador Assume Data Available
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.
2. Borre o ponga una marca de verificación en el cuadro Vis del
pin:
Si desea:
ocultar un pin
mostrar un pin
Entonces:
Borre la marca de verificación en el cuadro Vis
correspondiente.
Ponga la marca de verificación en el cuadro
Vis correspondiente.
3. Seleccione
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
A
b
punto verde
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.
1 2 3
cable de entrada
Publicación 1756-PM001E-ES-P - Agosto 2002
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
Cambie el nombre del tag de un bloque de función
Asigne un tag existente
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.
4. Haga clic en el botón .
5.
6.
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
Publicación 1756-PM001E-ES-P - Agosto 2002
Programación de un diagrama de bloques de función 7-21
8.
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.
3. Escriba el nuevo nombre del tag para el bloque.
4. Seleccione
Asigne un tag existente
Block_01
1. Haga doble clic en el área del operando.
2. Haga clic en ▼
3. Seleccione el tag:
Para seleccionar un:
tag
número de bit
Haga lo siguiente:
Haga doble clic en el nombre del tag.
A. Haga clic en el nombre del tag.
B. A la derecha del nombre del tag, haga clic en ▼
C. Haga clic en el bit requerido.
4. Presione [Enter] o haga clic en un lugar diferente en el diagrama.
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
Si desea:
que el valor esté visible en el diagrama e informes
tener la capacidad de cambiar el valor en línea sin
editar la rutina
Entonces:
Use un IREF
Introduzca un valor en el tag de
un bloque
Use un IREF
1. Añada un IREF.
2. Conecte IREF al pin de entrada que obtiene el valor.
3.
3. Haga doble clic en el área del operando de IREF.
4. Escriba el valor y presione la tecla Enter.
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.
2. Escriba el valor.
3. Seleccione
Publicación 1756-PM001E-ES-P - Agosto 2002
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
Añada un ICON
ICON
OCON
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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
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:
✓
✓
Abra o cierre una carpeta
Cree una rutina
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:
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
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.
instrucciones de entrada
instrucciones de salida
Bifurcación
Una bifurcación consta de dos o más instrucciones en paralelo.
bifurcación
bifurcación
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
instrucción de entrada
instrucción de salida
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
Publicación 1756-PM001E-ES-P - Agosto 2002
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).
instrucción de entrada
instrucción de salida
condición de entrada de renglón
condición de salida 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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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
Organice las instrucciones de entrada
Organice las instrucciones de salida
Seleccione un nombre de tag para un operando
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.
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
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:
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…
Organice las instrucciones de entrada:
En serie:
condición_1 condition_2 condition_3
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:
condition_1
condition_2
condition_3
hay una combinación de lo anterior
En combinación:
Por ejemplo:
Si condition_1 Y condition_2…
o bien
Si condition_3 Y condition_2…
condition_1
condition_3
condition_2
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.
instrucción que más
probablemente es FALSA
instrucción que menos
probablemente es FALSA
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
Opción:
Coloque las instrucciones de salida en secuencia en el renglón (en serie)
Ejemplo:
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.
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:
Para un:
tag
número de bit de un tipo de datos más grande
miembro de una estructura
elemento de una matriz de una dirección
elemento de una matriz de dos direcciones
elemento de una matriz de tres direcciones
elemento de una matriz dentro de una estructura
miembro de un elemento de una matriz
Especifique:
tag_name
tag_name.bit_number
tag_name.member_name
tag_name[x]
tag_name[x,y]
tag_name[x,y,z]
tag_name.member_name[x]
tag_name[x,y,z].member_name
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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
Para acceder a: El nombre del tag es similar a:
tag machine_on
machine_on
número de bit del tag one_shots
one_shots.1
miembro (bit) DN del temporizador
running_seconds
miembro mix del tag north_tank
running_seconds.DN
north_tank.mix
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
COP
Copy File
Source recipe[2]
Dest tanks[1,1]
Length 1
CLR
Clear
Dest north_tank.preset[2]
0
miembro part_advance del elemento 1 en la
matriz drill
drill[1].part_advance
42357
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
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, éste
aparece debajo del cursor.
Use la barra de herramientas Language Element para añadir un
elemento de lógica de escalera a la rutina.
renglón
nivel de bifurcación
bifurcación
XIC XIO OTE OTU OTL
otras instrucciones
Para añadir un elemento:
Añada un elemento en la ubicación del cursor
Arrastre y coloque 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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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
Seleccione un nombre o un tag existente
Arrastre un tag desde la ventana Tags
Asigne un valor inmediato (constante)
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.
4. Haga clic en el botón .
Publicación 1756-PM001E-ES-P - Agosto 2002
Programación de lógica de escalera 8-11
5.
6.
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.
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:
Para seleccionar un/una:
etiqueta, nombre de rutina o
tipo de nombre similar
tag
número de bit
Haga lo siguiente:
Haga cilc en el nombre.
Haga doble clic en el nombre del tag.
A. Haga clic en el nombre del tag.
B. A la derecha del nombre del tag, haga clic en
▼
C. Haga clic en el bit requerido.
4. Presione [Enter] o haga clic en un lugar diferente en el diagrama.
Publicación 1756-PM001E-ES-P - Agosto 2002
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
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
Si desea:
Vea:
usar contraseñas específicas en la lógica para monitorear eventos “Monitoreo de los indicadores de estado” en la página 9-1
específicos
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
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.
1 Publicación 1756-PM001E-ES-P - Agosto 2002
9-2 Acceso a valores del sistema
Se pueden utilizar estas contraseñas:
Para determinar si:
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)
el valor de destino de la instrucción es 0
el valor de destino de la instrucción es negativo
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
éste es el primer escán normal de las rutinas en el programa actual
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.
Use:
S: V
S:Z
S:N
S:C
S:FS
S:MINOR
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
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.
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
9-4 Acceso a valores del sistema
5. Haga clic en el objeto requerido.
Para obtener o establecer:
eje de un servomódulo
tiempo de procesamiento interno del sistema
hardware físico de un controlador
tiempo coordinado del sistema para los dispositivos en un chasis
driver de comunicación DF1 para el puerto en serie
historial de fallos para un controlador
atributos de una instrucción de mensaje
estado, fallos y modo de un módulo
grupo de ejes
información de fallo o tiempo de escán para un programa
número de instancia de una rutina
configuración del puerto en serie
propiedades o tiempo transcurrido de una tarea
hora del reloj de un controlador
Haga clic en:
AXIS
CONTROLLER
CONTROLLERDEVICE
CST
DF1
FAULTLOG
MESSAGE
MODULE
MOTIONGROUP
PROGRAM
ROUTINE
SERIALPORT
TASK
WALLCLOCKTIME
6. En la lista de atributos del objeto, identifique el atributo al que
desea acceder.
7. Cree un tag para el valor del atributo:
Si el tipo de datos del atributo es:
un elemento (por ej., DINT)
más de un elemento (por ej., DINT[7] )
Entonces:
Cree un tag para el atributo.
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..
8. En la rutina de la lógica de escalera, introduzca la instrucción
apropiada:
Para:
obtener el valor de un atributo
establecer el valor de un atributo
Introduzca esta instrucción:
GSV
SSV
Publicación 1756-PM001E-ES-P - Agosto 2002
Acceso a valores del sistema 9-5
9. Asigne los operandos requeridos para la instrucción:
Para este operando:
Class name
Instance name
Attritube Name
Dest (GSV)
Source (SSV)
Seleccione:
nombre del objeto
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.
nombre del atributo
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.
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.
En los siguientes ejemplos se obtiene la fecha y hora actual.
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
Para obtener más información, vea Logix5000 Controllers General
Instructions Reference Manual, publicación 1756-RM003.
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
Los siguientes:
tags 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)
tags que no son tags de E/S, producidos ni consumidos
rutinas de lógica
comunicación con tags encuestados (OPC/DDE) que usan el
software RSLinx (1)
Usan memoria de:
memoria de E/S
memoria de expansión
(1)
Para comunicarse con tags encuestados, el controlador usa la memoria de E/S y la
memoria de expansión.
Utilice este procedimiento para obtener la siguiente información
acerca de la memoria de un controlador.
IMPORTANTE
El controlador retorna los valores en número de
palabras de 32 bits. Para ver un valor en bytes,
multiplíquelo por 4.
• 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:
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
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
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]
Ficha Message Properties—Communication
Para este ítem:
Path
Escriba:
1, slot_number_of_controller
Publicación 1756-PM001E-ES-P - Agosto 2002
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 Descripción:
elementos de matriz:
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
INT_array[5]
los 16 bits inferiores del valor de 32 bits
(palabras de 32 bits)
INT_array[6]
los 16 bits superiores del valor de 32 bits
controladores 1756-L55M16 solamente—cantidad de INT_array[7]
los 16 bits inferiores del valor de 32 bits
memoria de expansión disponible adicional
(palabras 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 INT_array[15]
los 16 bits inferiores del valor de 32 bits
expansión adicional (palabras de 32 bits)
INT_array[16]
los 16 bits superiores del valor de 32 bits
controladores 1756-L55M16 solamente—bloque contiguo INT_array[19]
los 16 bits inferiores del valor de 32 bits
más grande de memoria de expansión disponible adicional
(palabras 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 INT_array[23]
los 16 bits inferiores del valor de 32 bits
(palabras 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 INT_array[27]
los 16 bits inferiores del valor de 32 bits
disponible (palabras de 32 bits)
INT_array[28]
los 16 bits superiores del valor de 32 bits
Publicación 1756-PM001E-ES-P - Agosto 2002
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 este operando: Especifique: Lo cual significa:
Source
el primer INT de la pareja de 2 elementos Comenzar con los 16 bits inferiores
(16 bits inferiores)
Destination el tag DINT en donde se va a almacenar el Copiar el valor al tag DINT.
valor de 32 bits
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.
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.
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
9-10 Acceso a valores del sistema
Notas:
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
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.
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.
1 Publicación 1756-PM001E-ES-P - Agosto 2002
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.
stop es un alias para
Local:2:I.Data.1
(el botón de paro en el panel del
operador)
stop
<Local:2:I.Data.1>
start
<Local:2:I.Data.0>
machine_on
machine_on
drill_1_on
<Local:0:O.Data.2>
drill_1.part_advance
conveyor_on es un alias para
Local:0:O.Data.0
(el contactor arrancador para
el motor del transportador)
conveyor_on
<Local:0:O.Data.0>
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
Asignación de alias 10-3
2.
42360
3.
2. Seleccione el alcance del tag.
3. A la derecha del nombre de tag, haga clic en la celda Alias para.
La celda muestra ▼
4. Haga clic en ▼
5. Seleccione el tag que el alias representará:
Para:
seleccionar un tag
seleccionar un número de bit
Haga lo siguiente:
Haga doble clic en el nombre del tag.
A. Haga clic en el nombre del tag.
B. A la derecha del nombre del tag, haga clic
en ▼ .
C. Haga clic en el bit requerido.
6. Presione la tecla Enter o haga clic en otra celda.
Publicación 1756-PM001E-ES-P - Agosto 2002
10-4 Asignación de alias
Notas:
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
Cuándo el índice es igual a 1, array[index] apunta aquí.
Cuándo el índice es igual a 2, array[index] apunta aquí.
array[0] 4500
array[1] 6000
array[2] 3000
array[3] 2500
La siguiente tabla indica algunos usos comunes para una dirección
indirecta:
Para: Use un tag en el subíndice y:
seleccionar una receta de una matriz de Introduzca el número de la receta en el tag.
recetas
cargar la configuración de una máquina
específica desde una matriz de posibles
configuraciones
cargar parámetros o estados desde una
matriz, un elemento a la vez
registrar códigos de error
realizar varias acciones en un elemento de
matriz y luego indexar al siguiente elemento
Introduzca la configuración deseada en el
tag.
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.
1 Publicación 1756-PM001E-ES-P - Agosto 2002
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).
MOV
Move
Source timer_presets[north_tank.step]
60000
Dest
north_tank.step_time.PRE
60000
north_tank.step_time.DN
/
TON
Timer On Delay
Timer north_tank.step_time
Preset 60000
Accum 0
EN
DN
Cuando north_tank.step_time termina, el renglón incrementa north_tank.step al siguiente número y
dicho elemento de la matriz timer_presets se carga en el temporizador.
north_tank.step_time.DN
ADD
Add
Source A 1
Source B north_tank.step
0
Dest north_tank.step
0
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).
EQU
Equal
Source A north_tank.step
0
Source B 4
MOV
Move
Source 0
Dest north_tank.step
0
42358
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
Operador:
Descripción:
Operador:
Descripción:
+ sumar
– restar/cambiar signo
* multiplicar
/ dividir
MOD
NOT
OR
SQR
Módulo
complemento
OR
raíz cuadrada
ABS
Valor absoluto
TOD
número entero a BCD
AND
AND
TRN
Truncar
FRD
BCD a número entero
XOR
O exclusivo
Formatee las expresiones como sigue:
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
11-4 Asignación de una dirección indirecta
Notes:
Publicación 1756-PM001E-ES-P - Agosto 2002
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
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.
EJEMPLO
Almacenar E/S en el búfer
La rutina principal del programa ejecuta las siguientes subrutinas en esta secuencia.
JSR
Jump to Subroutine
Routine name map_inputs
JSR
Jump to Subroutine
Routine name drill
JSR
Jump to Subroutine
Routine name map_outputs
La rutina map_inputs copia los valores de los dispositivos de entrada a sus correspondientes tags que
se usan en la rutina drill.
_1791_8AC:I.Data[0].0
drill[1].depth_limit
_1791_8AC:I.Data[0].4
drill[1].home_limit
La rutina drill ejecuta la lógica para la máquina perforadora.
drill[1].part_advance
/
one_shots.0
ONS
drill[1].depth_limit
/
drill[1].forward
drill[1].forward
drill[1].depth_limit
drill[1].retract
drill[1].home_limit
/
drill[1].retract
La rutina map_outputs copia los valores de los tags de salida en la rutina drill a sus dispositivos de
salida correspondientes.
drill[1].forward
_1791_8AC:O.Data[0].0
drill[1].retract
_1791_8AC:O.Data[0].1
42369
El siguiente ejemplo utiliza la instrucción CPS para copiar una matriz
de datos que representa los dispositivos de entrada de una red
DeviceNet.
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
CPS
Synchronous Copy File
Source Local:0:I.Data[0]
Dest input_buffer[0]
Length 20
42578
Publicación 1756-PM001E-ES-P - Agosto 2002
12-4 Almacenamiento de E/S en el búfer
Notas:
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
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)
4. Haga clic en Añadir nuevo.
1 Publicación 1756-PM001E-ES-P - Agosto 2002
13-2 Prueba de un proyecto
5. Si desea asignar un nombre descriptivo al driver, cambie el
nombre predeterminado.
6. Seleccione Aceptar.
7. Configure el variador:
Para este
variador:
en serie
ControlNet
DH+
Ethernet
Haga lo siguiente:
A. En la lista desplegable Puerto de com, seleccione el
puerto en serie que usará el variador.
B. De la lista desplagable Dispositivo, seleccione
Logix 5550-Puerto en serie.
C. Haga clic en Autoconfiguración.
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.
A. En la lista desplegable Valor, seleccione el tipo de
tarjeta de interface que usará el variador.
B. En la lista Propiedades, seleccione el siguiente ítem.
C. En el cuadro Valor, escriba o seleccione el valor
apropiado.
D. Repita los pasos B. y C. para las propiedades
restantes.
Por cada dispositivo Ethernet en esta red con el cual desea
comunicarse (por ej., cada 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:
Sí
No
Entonces:
1. Seleccione Añadir nuevo.
2. Vaya al paso A.
Vaya al siguiente paso.
3. Haga clic en Aceptar.
4. Haga clic en Cerrar.
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
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.
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.
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
4. Seleccione el controlador.
5. SeleccioneDescargar.
Publicación 1756-PM001E-ES-P - Agosto 2002
13-4 Prueba de un proyecto
6. Cuál es la respuesta que proporciona el software:
Si el software indica:
se descargan al controlador
Falló descarga al controlador. La revisión del proyecto
fuera de línea y el firmware del controlador no son
compatibles.
Entonces:
Vaya al paso paso7
Vaya al paso paso9
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.
11.
43056
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
Prueba de un proyecto 13-5
Seleccione un modo para el
controlador
Para probar un proyecto, seleccione un modo para el controlador.
B
A
42627
42525
Si desea:
poner las salidas en el estado
comandado por la lógica del
proyecto
Entonces seleccione uno de estos modos:
Marcha PROG REM
Marcha programa Prueba
✔
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 llave
Selección de
RSLogix 5000
A
B
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
El controlador está en fallo. Ocurrió un fallo
mayor y el controlador ya no ejecuta su
lógica.
43057
1.
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.
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.
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:
Si desea:
guardar cambios en línea y valores de datos
guardar cambios en línea pero no valores de
datos en línea
Haga lo siguiente:
En el menú Archivo, seleccione Guardar.
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
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:
Si los datos: Entonces: Vea la
página:
necesitan transmisión regular a una Cómo usar este procedimiento 14-1
velocidad que usted especifica (por ej.
determinística)
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
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.
controller_1
tag producido
controller_2
tag consumido
controller_3
tag consumido
controller_4
tag consumido
1 Publicación 1756-PM001E-ES-P - Agosto 2002
14-2 Comunicación con otro controlador
Usted puede producir y consumir tags con las siguientes
combinaciones de controladores y redes.
Este controlador: Puede producir y consumir tags mediante esta red:
Backplane ControlNet Ethernet
SLC 500
✔
PLC-5
✔
ControlLogix ✔ ✔ ✔
FlexLogix
✔
SoftLogix
✔
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:
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
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
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.
5.
6.
42352
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
7.
8.
9.
10.
42353
6. Seleccione el botón de la opción Consumido.
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
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.
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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?
Si desea producir:
Sólo un valor REAL
Más de un valor REAL
Entonces:
Cree un tag producido y seleccione el tipo de datos 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.
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.
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
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:
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
6. En el software RSNetWorx para ControlNet, programe la red.
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
Tipo de datos:
DINT
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.)
Descripción:
Estado
Datos producidos por un controlador
PLC-5C
6. Cree un tag consumido con las propiedades siguientes:
Para esta propiedad
de tag:
Tipo de tag
Controller
Instancia remota
RPI
Data Type
Escriba o seleccione:
consumido
El PLC-5C que produce los datos
El número de mensaje de la configuración ControlNet del
controlador PLC-5C.
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.
El tipo de datos definido por el usuario que creó en el
paso 5.
7. En el software RSNetWorx para ControlNet, programe la red.
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
¿Son la mayoría de los módulos en el
chasis módulos de E/S digitales sin
diagnósticos?
Sí
No
Entonces seleccione este formato
de la comunicación para el
módulo CNB remoto:
Optimización de racks
Ninguno
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
EJEMPLO
Mensaje a otro controlador Logix5000
Cuando count_send está activado, count_msg envía los datos.
count_send
count_msg.en
/
MSG
Type - Unconfigured
Message Control count_msg ...
EN
DN
ER
Tipo: MESSAGE
Alcance: Controlador
42188
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).
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
message.EN
/
fal_control
RES
FAL
File Arith/Logical
Control
fal_control
Length ?
Position 0
Mode
all
Dest
int_buffer[fal_control.pos]
??
Expression dint_array[fal_control.pos]
EN
DN
ER
MSG
Type - Unconfigured
Message Control message ...
EN
DN
ER
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.
message.EN
/
MSG
Type - Unconfigured
Message Control message ...
EN
DN
ER
message.DN
fal_control
RES
FAL
File Arith/Logical
Control
fal_control
Length ?
Position 0
Mode
all
Dest dint_array[fal_control.pos]
??
Expression int_buffer[fal_control.pos]
EN
DN
ER
42192
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
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:
lee datos
escribe datos
Entonces RemoteElement es el:
Elemento de origen
Elemento de destino
Nombre de tag
−
message
+
message.RemoteElement.
+
message.RemoteIndex.
+
message.LocalIndex.
43052
+
message.Channel.
+
message.Rack.
A
B
+
message.Group.
+
message.Slot.
+
message.Path.
A. Si usted usa un asterisco [*] para designar el número de
elemento de la matriz, el valor en B 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 [*].
Publicación 1756-PM001E-ES-P - Agosto 2002
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
CONSEJO
Para copiar los componentes anteriores desde un ejemplo de
proyecto, abra la carpeta …\RSLogix 5000\Proyectos\Ejemplos.
MSG_to_Multiple_Controllers.ACD
43055
Abra este
proyecto.
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.
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
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:
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]
2. Cree el tag local_array, que almacena los datos en este
controlador.
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
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 crear un nuevo tipo de datos:
+ Controller Your_Project
+ Tasks
+ Motion Groups
Tendencias
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
descripción
MESSAGE_CONFIGURATION
Propiedades de configuración para un mensaje a otro
controlador
−
Data Types
Miembros
Definido por el usuario
nombre
tipo de
datos
estilo
descripción
Haga clic con el botón derecho del
mouse y seleccione Nuevo Data Type.
+
+
ruta de acceso
RemoteElement
cadena
cadena
Publicación 1756-PM001E-ES-P - Agosto 2002
Comunicación con otro controlador 14-17
Crear la matriz de configuración
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
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
primera ejecución del
mensaje
siguiente ejecución
del mensaje
Propiedades del mensaje
−
message
+
+
message.Path.
Propiedades del mensaje
−
message
+
+
message.RemoteElement.
message.Path.
message.RemoteElement.
Pasos:
1. Para guardar las propiedades de configuración del mensaje, cree
la siguiente matriz:
Nombre de tag Tipo alcance
message_config MESSAGE_CONFIGURATION[number ] cualquiera
donde:
number es el número de controladores a dónde enviar el
mensaje.
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
Nombre de tag
− message_config
− message_config[0]
+ message_config[0].Path
+ message_config[0].RemoteElement
valor
{…}
{…}
Haga clic con el botón derecho del mouse y
seleccione Ir a Editor de ruta de mensaje.
Escriba la ruta de
acceso al controlador
remoto.
o bien
Desplácese hasta el
controlador remoto.
Examinador de ruta de acceso a mensaje
Ruta de
acceso:
peer_controller
Configuración de I/O
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]
+ 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
Comunicación con otro controlador 14-19
4. Introduzca la ruta de acceso y elemento remoto para cada
controlador adicional.
Nombre de tag
− message_config
− message_config[0]
+ message_config[0].Path
+ message_config[0].RemoteElement
− message_config[1]
+ message_config[1].Path
+ message_config[1].RemoteElement
valor
{…}
{…}
{…}
Obtener el tamaño de la matriz local
1.
2.
3.
43051
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
local_array_length
Tipo
DINT
Publicación 1756-PM001E-ES-P - Agosto 2002
14-20 Comunicación con otro controlador
Cargar las propiedades del mensaje para un controlador
1.
2.
3.
4.
5.
6.
43051
1. Esta instrucción XIO condiciona al renglón para que envíe
continuamente el mensaje.
Nombre de tag Tipo alcance
mensaje MESSAGE controlador
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.
Nombre de tag Tipo alcance
índice DINT cualquiera
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
Publicación 1756-PM001E-ES-P - Agosto 2002
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
43054
Borre la casilla de verificación Conexión Caché.
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
14-22 Comunicación con otro controlador
Ir al siguiente controlador
1. 2. 3.
43051
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. 2. 3.
43051
1. Cuando el índice es igual a local_array_length, el controlador
envió el mensaje a todos los otros controladores.
2. Esta 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..
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
Productor
Consumidor
matriz
0
paquete
paquete
matriz
123
124
offset
confirmación
offset
confirmación
1 Publicación 1756-PM001E-ES-P - Agosto 2002
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:
P Nombre de tag Tipo
array_ack
DINT[2]
✓ array_packet DINT[125]
donde:
array es el nombre para los datos que usted envía.
3. Convierta array_ack a un tag consumido:
Para:
Controlador
Nombre de tag remoto
Especifique:
nombre del controlador que está recibiendo el
paquete
array_ack
Ambos controladores usan el mismo nombre para
este dato compartido.
Véase Consumir un tag producido en la página 14-5.
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
Nombre de tag
matriz
array_offset
array_size
array_transfer_time
array_transfer_time_max
array_transfer_timer
Tipo
DINT[x] donde x es igual al número de elementos
a transferir más 122 elementos
DINT
DINT
DINT
DINT
TIMER
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:
Multiplicado por el tiempo necesario para enviar todo la matriz
TON
Timer On Delay
Timer array_transfer_timer
Preset 10000000
Accum 0
EN
DN
Cuando el valor de offset en array_ack[0] no es igual al valor de offset actual, pero array_ack[1] es igual
a –999, el consumidor ha comenzado a recibir un paquete nuevo, por lo tanto los renglones mueven –
999 al último elemento del paquete. El consumidor espera hasta recibir el valor –999 antes de copiar el
paquete a la matriz. Esto asegura que el consumidor tenga datos nuevos.
Not Equal
Source A
NEQ
array_ack[0]
0
Source B array_packet[123]
0
EQU
Equal
Source A array_ack[1]
0
Source B -999
MOV
Move
Source -999
Dest array_packet[124]
0
Publicación 1756-PM001E-ES-P - Agosto 2002
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]).
Equal
Source A
EQU
array_ack[0]
0
Source B array_packet[123]
0
CMP
Compare
Expression (array_ack[0] + 123) < array_size
ADD
Add
Source A array_packet[123]
0
Source B 123
Dest
array_offset
0
CMP
Compare
Expression (array_ack[0] + 123) >= array_size
CLR
Clear
Dest array_offset
0
MOV
Move
Source array_transfer_timer.ACC
0
Dest array_transfer_time
0
array_transfer_timer
RES
COP
Copy File
Source array[array_offset]
Dest array_packet[0]
Length 123
Move
Source
MOV
array_offset
0
Dest array_packet[123]
0
CLR
Clear
Dest array_packet[124]
0
Si el tiempo de transferencia actual es mayor que el tiempo de transferencia máximo, éste se actualiza.
Esto mantiene un registro del tiempo máximo necesario para transferir los datos.
GRT
Greater Than (A>B)
Source A array_transfer_time
0
Source B array_transfer_time_max
0
Move
Source
MOV
array_transfer_time
0
Dest array_transfer_time_max
0
42355
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
P Nombre de tag Tipo
✓ array_ack DINT[2]
array_packet
DINT[125]
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:
Para:
Controlador
Nombre de tag remoto
Especifique:
nombre del controlador que está enviando el paquete
array_packet
Ambos controladores usan el mismo nombre para
este dato compartido.
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:
Nombre de tag
arreglo
array_offset
Tipo
DINT[x] donde x es igual al número de elementos
a transferir más 122 elementos
DINT
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
NEQ
Not Equal
Source A array_packet[123]
0
Source B array_ack[0]
0
EQU
Equal
Source A array_packet[124]
0
Source B -999
MOV
Move
Source array_packet[123]
0
Dest array_offset
0
COP
Copy File
Source array_packet[0]
Dest array[array_offset]
Length 123
MOV
Move
Source array_packet[123]
0
Dest array_ack[0]
0
CLR
Clear
Dest array_ack[1]
0
NEQ
Not Equal
Source A array_packet[124]
0
Source B -999
MOV
Move
Source -999
Dest array_ack[1]
0
42356
Publicación 1756-PM001E-ES-P - Agosto 2002
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
15-8 Producción de una matriz grande
Notas:
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
conexión del puerto en serie del controlador al dispositivo ASCII
42237
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
1 Publicación 1756-PM001E-ES-P - Agosto 2002
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:
Si las
comunicaciones:
tienen handshaking
Entonces cablee los conectores así:
Dispositivo ASCII
Controlador
1 CD
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
42231
no tienen handshaking
Dispositivo ASCII
Controlador
1 CD
2 RDX
3 TXD
4 DTR
COMMON
6 DSR
7 RTS
8 CTS
1 CD
2 RDX
3 TXD
4 DTR
COMMON
6 DSR
7 RTS
8 CTS
9
9
42232
3. Conecte el blindaje del cable a los dos conectores
4. Conecte el cable al controlador y al dispositivo ASCII.
Publicación 1756-PM001E-ES-P - Agosto 2002
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 .
42627
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.
6.
42251
5. Seleccione Usuario.
6. Seleccione los parámetros para el dispositivo ASCII del paso 1.
Publicación 1756-PM001E-ES-P - Agosto 2002
16-4 Comunicación con un dispositivo ASCII
7.
8.
9.
42251
7. Seleccione la opción Línea de control:
Si: Y: Y éste es el: Seleccione: Entonces:
usted no usa un
Sin handshaking Vaya al paso 10
módem
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
todos los módems en el
sistema son half-duplex
controlador maestro.
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.
Full Duplex
controlador esclavo. Half Duplex Seleccione la casilla de
verificación Portador continuo.
Half Duplex
Borre la casilla de verificación
Portador continuo (opción
predeterminada).
Publicación 1756-PM001E-ES-P - Agosto 2002
Comunicación con un dispositivo ASCII 16-5
Configure el protocolo del
usuario
1. Haga clic en la ficha Protocolo del usuario.
2.
3.
42252
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:
un carácter de
terminación
dos caracteres de
terminación
Entonces:
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.
En los cuadros de texto Carácter de
terminación 1 y 2, introduzca el código
ASCII hexadecimal para cada carácter.
Notas:
Para los
caracteres
imprimibles, tales
como 1 ó A,
introduzca el
carácter.
Publicación 1756-PM001E-ES-P - Agosto 2002
16-6 Comunicación con un dispositivo ASCII
4.
5.
6.
7.
42252
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.
Para añadir: Entonces: Notas:
un carácter
A. En el cuadro de texto
Para los
Caracteres añadidos 1, caracteres
introduzca el código ASCII imprimibles, tales
hexadecimal para el primer como 1 ó A,
carácter.
introduzca el
B. En el cuadro de texto
carácter.
Caracteres añadidos 2,
introduzca $FF.
dos caracteres
En los cuadros de texto Caracteres
añadidos 1 y 2, introduzca el código
ASCII hexadecimal para cada carácter.
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
Comunicación con un dispositivo ASCII 16-7
7. Seleccione el modo eliminación:
Si el dispositivo ASCII Seleccione: Notas:
es:
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.
8. Haga clic en Aceptar.
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
42811
42812
Puede usar el tipo de datos STRING
predeterminado. Éste almacena hasta 82
caracteres.
o bien
Puede crear un nuevo tipo de datos de cadena para
almacenar el 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 usted:
hace un tipo de datos de
cadena más pequeño
hace un tipo de datos de
cadena más grande
Entonces:
• Los datos se truncan.
• LEN no se cambia.
El dato y LEN se restablecen a cero.
1. ¿Desea crear un nuevo tipo de datos de cadena?
3.
Si: Entonces:
no Vaya a Lea los caracteres desde el dispositivo en la página 16-9.
sí Vaya al paso 2.
4.
42233
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
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.
1. ¿Qué tipo de dispositivo está leyendo?
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
2. Introduzca el siguiente renglón:
4. 3.
5.
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.)
Publicación 1756-PM001E-ES-P - Agosto 2002
16-10 Comunicación con un dispositivo ASCII
6. Introduzca el siguiente renglón:
10. 9.
7. 8.
11.
12.
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
Comunicación con un dispositivo ASCII 16-11
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.
bar_code_count.EN
/
ACB
ASCII Chars in Buffer
Channel 0
SerialPort Control bar_code_count
Character Count 0
EN
DN
ER
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.
GEQ
Grtr Than or Eql (A>=B)
Source A bar_code_count.pos
0
Source B 24
ARD
ASCII Read
Channel 0
Destination
bag_bar_code
''
SerialPort Control bar_code_read
String Length 24
Characters Read 0
EN
DN
ER
42227
13. ¿Desea enviar datos al dispositivo?
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
16-12 Comunicación con un dispositivo ASCII
14. Introduzca el siguiente renglón:
17.
16. 15.
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:
19.
21. 20.
22. 23.
42235
19. Introduzca el bit FD del tag ABL. (El tag del paso 16.)
20. Introduzca 0.
21. Introduzca un nombre de tag para almacenar los caracteres
ASCII. Defina el tipo de datos como una cadena.
22. Introduzca un nombre de tag para la 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.
Publicación 1756-PM001E-ES-P - Agosto 2002
Comunicación con un dispositivo ASCII 16-13
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.
MV_line.EN
/
ABL
ASCII Test For Buffer Line
Channel 0
SerialPort Control MV_line
Character Count 0
EN
DN
ER
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.FD
ARL
ASCII Read Line
Channel 0
Destination
MV_msg
''
SerialPort Control MV_read
String Length 12
Characters Read 0
EN
DN
ER
42226
24. ¿Desea enviar datos al dispositivo?
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
16-14 Comunicación con un dispositivo ASCII
Envíe los caracteres al
dispositivo
1. Determine dónde empezar:
Si usted: Y: Entonces:
siempre envía el mismo número
de caracteres
envía números diferentes de
caracteres
desea añadir uno o dos caracteres al fin de Vaya al paso 2
los datos
no desea añadir caracteres Vaya al paso 9
desea añadir uno o dos caracteres al fin de Vaya al paso 16
los datos
no desea añadir caracteres Vaya al paso 24
2. Introduzca el siguiente renglón:
5. 4.
3.
6. 7.
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
Comunicación con un dispositivo ASCII 16-15
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
AWA
ASCII Write Append
Channel 0
Source
string[1]
'$1425\1'
SerialPort Control temp_high_write
String Length 5
Characters Sent 6
EN
DN
ER
42229
8. Vaya a Introduzca caracteres ASCII en la página 16-21.
Publicación 1756-PM001E-ES-P - Agosto 2002
16-16 Comunicación con un dispositivo ASCII
9. Introduzca el siguiente renglón:
10.
12. 11.
13. 14.
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.
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
AWT
ASCII Write
Channel 0
Source
string[2]
'$142224\01$r'
SerialPort Control temp_low_write
String Length 9
Characters Sent 9
EN
DN
ER
42229
15. Vaya a Introduzca caracteres ASCII en la página 16-21.
Publicación 1756-PM001E-ES-P - Agosto 2002
Comunicación con un dispositivo ASCII 16-17
16. Introduzca el siguiente renglón:
19. 18.
17.
21.
22.
20.
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.)
Publicación 1756-PM001E-ES-P - Agosto 2002
16-18 Comunicación con un dispositivo ASCII
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
Move
Source
Dest
MOV
alarm_msg.LEN
5
alarm_write.LEN
5
AWA
ASCII Write Append
Channel 0
Source
alarm_msg
'$1425\1'
SerialPort Control alarm_write
String Length 5
Characters Sent 6
EN
DN
ER
42229
23. Vaya a Introduzca caracteres ASCII en la página 16-21.
Publicación 1756-PM001E-ES-P - Agosto 2002
Comunicación con un dispositivo ASCII 16-19
24. Introduzca el siguiente renglón:
27. 26.
25.
29.
30.
28.
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.)
Publicación 1756-PM001E-ES-P - Agosto 2002
16-20 Comunicación con un dispositivo ASCII
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
Move
Source
Dest
MOV
MV_msg.LEN
10
MV_write.LEN
10
AWT
ASCII Write
Channel 0
Source
MV_msg
'$161365\8\1$r'
SerialPort Control MV_write
String Length 10
Characters Sent 10
EN
DN
ER
42229
31. Vaya a Introduzca caracteres ASCII en la página 16-21.
Publicación 1756-PM001E-ES-P - Agosto 2002
Comunicación con un dispositivo ASCII 16-21
Introduzca caracteres
ASCII
Determine si debe completar este paso:
Si:
Desea que la lógica cree la cadena.
Entonces:
Desea introducir los caracteres. Vaya al paso 1.
Vaya a “Procesamiento de caracteres ASCII” en
la página 16-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.
1.
42616
1. Haga doble clic en el área valor del origen.
2.
signo de dólar ($24)
una comilla ($27)
salto de línea ($0A)
nueva línea ($0D$0A)
alimentación de
impresora ($0C)
retorno de carro ($0D)
tab ($09)
42615
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.
2. Escriba los caracteres para la cadena.
3. Seleccione Aceptar.
Publicación 1756-PM001E-ES-P - Agosto 2002
16-22 Comunicación con un dispositivo ASCII
Notas:
Publicación 1756-PM001E-ES-P - Agosto 2002
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
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.
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:
Si desea: Entonces vaya a: En la página:
aislar información específica de un
código de barras
buscar en una matriz una cadena
específica de caracteres
comparar dos cadenas de caracteres
Extraer una parte de un código
de barras
17-2
Buscar un código de barras 17-4
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
crear una cadena para enviar a un
terminal de operador
Descodificar un mensaje
ASCII
17-14
Crear una cadena 17-18
Para obtener información adicional sobre las instrucciones
relacionadas con ASCII, consulte Logix5000 Controllers General
Instructions Reference Manual, publicación 1756-RM003.
1 Publicación 1756-PM001E-ES-P - Agosto 2002
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.
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
Pasos:
1. Introduzca el siguiente renglón:
5. 6.
3. 4.
2.
42808
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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
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.
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
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
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
Procesamiento de caracteres ASCII 17-5
Cree el tipo de datos PRODUCT_INFO
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.
Cree el siguiente tipo de datos definido por el usuario.
Tipo de datos:PRODUCT_INFO
nombre
descripción
Miembros
nombre
+
PRODUCT_INFO
Identifica el destino de un ítem basado en una cadena ASCII de
caracteres que identifican el ítem
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
Publicación 1756-PM001E-ES-P - Agosto 2002
17-6 Procesamiento de caracteres ASCII
Búsqueda de caracteres
1.
2.
3.
43038
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.
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.
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.
Nombre de tag
sort_table_search
Tipo
CONTROL
Publicación 1756-PM001E-ES-P - Agosto 2002
Procesamiento de caracteres ASCII 17-7
4.
5.
6.
43038
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.
Nombre de tag
product_id
Tipo
cadena
Publicación 1756-PM001E-ES-P - Agosto 2002
17-8 Procesamiento de caracteres ASCII
Identificar el número de ruta
1. 2. 3.
4.
43038
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.
Nombre de tag
lane
Tipo
DINT
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
Procesamiento de caracteres ASCII 17-9
Rechazar caracteres incorrectos
1. 2.
3.
43038
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.
Nombre de tag
− sort_table
− sort_table[0]
+ sort_table[0].Product_ID
+ sort_table[0].Lane
− sort_table[1]
+
+
sort_table[1].Product_ID
sort_table[1].Lane
valor
{…}
{…}
Caracteres ASCII que identifican el primer
ítem
número de ruta del ítem
Caracteres ASCII que identifican el
siguiente ítem
número de ruta del ítem
{…}
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
Caracteres ASCII
Códigos
hexadecimales
1ab $31$61$62
l
e
s
s
e
r
m
a
y
o
r
q
u
e
1b $31$62
A $41
AB $41$42
B $42
a $61
ab $61$62
AB < B
a > B
Pasos:
1. Introduzca un renglón y una instrucción de comparación:
Para ver si la cadena es:
igual a caracteres específicos
diferente a caracteres específicos
mayor que caracteres específicos
igual o mayor que caracteres específicos
menor que caracteres específicos
igual o menor que caracteres específicos
Introduzca esta
instrucción:
EQU
NEQ
GRT
GEQ
LES
LEQ
Publicación 1756-PM001E-ES-P - Agosto 2002
Procesamiento de caracteres ASCII 17-11
2. 3.
6.
4.
42808
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.
42615
6. Introduzca la salida requerida.
EJEMPLO
Cuando bag_flt_and_dest es igual a gate[1], xfer{1] se activa. Esto encamina al equipaje
hacia la puerta requerida.
42808
7. ¿Desea verificar otra parte del código de barras?
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
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.
Pasos:
• 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.
1. ¿De qué tipo de número es el valor?
Si:
Entonces:
punto flotante (coma flotante) Vaya al paso 2.
entero Vaya al paso 7.
2. Introduzca el siguiente renglón:
4.
5.
3.
42810
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.
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
Procesamiento de caracteres ASCII 17-13
6. Vaya al paso 11.
7. Introduzca el siguiente renglón:
9. 10.
8.
42810
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.
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
11. ¿Tiene esta cadena otro valor que usted desea usar?
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
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:
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
1. Determine dónde empezar:
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.
2. ¿De qué tipo de número es el valor?
Si:
punto flotante
(coma flotante)
entero
Entonces:
Introduzca Renglón A: Encontrar y convertir un valor de
punto flotante (coma flotante)
Introduzca Renglón B: Encontrar y convertir un valor entero
Renglón A: Encontrar y
convertir un valor de
punto flotante (coma
flotante)
42810
Renglón B: Encontrar y
convertir un valor
entero
42810
Publicación 1756-PM001E-ES-P - Agosto 2002
Procesamiento de caracteres ASCII 17-15
4.
5.
6.
3.
42810
8. 9.
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.
42615
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
17-16 Procesamiento de caracteres ASCII
10.
11.
42810
12. 13.
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ó?
Si:
Entonces:
STOR Vaya al paso 15.
STOD Vaya al paso 18.
Publicación 1756-PM001E-ES-P - Agosto 2002
Procesamiento de caracteres ASCII 17-17
15. 16.
42809
15. Introduzca el tag que almacena el valor. (El tag del paso 13.)
16. Introduzca un nombre de tag para almacenar el valor para uso
en su aplicación. Defina el tipo de datos como REAL.
17. Vaya al paso 20.
18. 19.
42809
18. Introduzca el tag que almacena el valor. (El tag del paso 13.)
19. Introduzca un nombre de tag para almacenar el valor para uso
en su aplicación. Defina el tipo de datos como DINT.
20. ¿Tiene la cadena otro valor que usted desea usar?
Si:
sí
no
Entonces:
A. Añada 1 al resultado de la instrucción Buscar. (El tag del
paso 9.)
B. Repita los pasos 2 - 19.
Deténgase. Ya terminó con este procedimiento.
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
[Ctrl-F] mensaje # \ dirección [CR]
carácter de control delimitador carácter de terminación
Pasos:
• 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.
1. Introduzca el siguiente renglón:
2.
3. 4.
42813
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
Procesamiento de caracteres ASCII 17-19
5. 6. 8.
42813
9. 10.
5. Introduzca un nombre de tag para almacenar los caracteres de
control y delimitador para la cadena. Defina el tipo de datos
como una cadena.
6. Haga doble clic en el área de valor del origen A.
42615
7. Escriba el 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.
Publicación 1756-PM001E-ES-P - Agosto 2002
17-20 Procesamiento de caracteres ASCII
11. 12. 13. 14.
42813
15.
11. Introduzca el tag DINT que contiene el segundo valor para la
cadena.
12. Introduzca un nombre de tag para almacenar la 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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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
17-22 Procesamiento de caracteres ASCII
Notas:
Publicación 1756-PM001E-ES-P - Agosto 2002
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
forzar un valor de E/S
revisar información general acerca de cómo avanzar un paso en una transición o una ruta
simultánea
avanzar un paso en una transición activa
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
forzar una transición o ruta simultánea adentro de un SFC
detener los efectos de un forzado
“Cuándo usar un forzado de E/S” en la
página 18-6
“Adición de un forzado de E/S” en la
página 18-8
“Cuándo usar la opción Step Through” en la
página 18-9
“Función Step Through en una transición o
forzado de una ruta” en la página 18-9
“Cuándo usar un forzado de SFC” en la
página 18-9
“Adición de un forzado de SFC” en la
página 18-12
“Eliminación o inhabilitación de forzados”
en la página 18-13
1 Publicación 1756-PM001E-ES-P - Agosto 2002
18-2 Forzado de elementos lógicos
Precauciones
Al usar forzados, observe las siguientes precauciones:
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.
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.
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
Forzado de elementos lógicos 18-3
Cuando los forzados están efectivos (habilitados), aparece
elemento forzado.
▼
junto al
los forzados están efectivos (habilitados)
estado al cual se fuerza el elemento
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.
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
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:
Para determinar el estado de:
forzados de E/S
Use cualquiera de los siguientes:
• Barra de herramientas Online
• Indicador LED FORCE
forzados de SFC
• Instrucción GSV
Barra de herramientas Online
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.
Ficha Forces
Lo siguiente:
Enabled
Disabled
Installed
None Installed
Significa:
• 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.
Los forzados de este tipo están inactivos. Si el proyecto
contiene forzados de este tipo, éstos no están anulando la
lógica.
Por lo menos un forzado de este tipo existe en el proyecto.
No existen forzados de este tipo en el proyecto.
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
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á:
apagado
parpadeando
fijo
Entonces:
• No hay tags que tengan valores forzados.
• Los forzados de E/S están inactivos (inhabilitados).
• Por lo menos un tag contiene un valor forzado.
• Los forzados de E/S están inactivos (inhabilitados).
• Los forzados de E/S están activos (habilitados).
• Los valores forzados pueden o no existir.
Instrucción GSV
IMPORTANTE
El atributo ForceStatus muestra sólo el estado de los
forzados de E/S. No muestra el estado de los
forzados de SFC.
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.
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
18-6 Forzado de elementos lógicos
Qué elementos forzar
Se pueden forzar los siguientes elementos del proyecto:
Si desea:
anular un valor de entrada, un valor de salida, un tag producido o un tag consumido
anular las condiciones de una transición una vez para ir de un paso activo al siguiente paso
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
ejecutar algunas pero no todas las rutas de una bifurcación simultánea de un diagrama de
funciones secuenciales
Entonces:
Adición de un forzado de E/S
Función Step Through en una
transición o forzado de una ruta
Adición de un forzado de SFC
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
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.
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
Publicación 1756-PM001E-ES-P - Agosto 2002
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
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:
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.
1. ¿Cuál es el estado del indicador de forzados de E/S?
Si:
apagado
parpadeando
fijo
Entonces, tome nota de lo siguiente:
Actualmente no existen forzados de E/S.
No hay forzados de E/S activos. Pero existe por lo menos un
forzado en el proyecto. Cuando usted habilita los forzados de E/S,
todos los forzados de E/S existentes también se hacen efectivos.
Los forzados de E/S están habilitados (activos). Cuando usted
instala (añade) un forzado, éste se hace efectivo inmediatamente.
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:
Para forzar un:
valor BOOL
valor que no es
BOOL
Haga lo siguiente:
Haga clic con el botón derecho del mouse en el tag y
seleccione Force ON o Force OFF.
En la columna Force Mask para el tag, escriba el valor al cual
desea forzar el tag. Luego presione la tecla Enter.
5. ¿Están habilitados los forzados de E/S? (Vea el paso 1).
Si:
no
sí
Entonces:
En el menú Logic, seleccione I/O Forcing ⇒ Enable All I/O Forces. Luego
seleccione Yes para confirmar.
Deténgase.
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
Si desea:
anular las condiciones de una transición
cada vez que el SFC llegue a la transición
evitar la ejecución de una o más rutas de
una bifurcación simultánea
Entonces:
Forzado de una transición
Forzado de una ruta simultánea
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:
evitar que el SFC vaya al siguiente paso
que el SFC vaya al siguiente paso independientemente de
las condiciones de la transición
Entonces:
fuerce la transición a falso
fuerce la transición a
verdadero
Publicación 1756-PM001E-ES-P - Agosto 2002
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
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.
Esta ruta se ejecuta.
Esta ruta no se ejecuta.
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
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.
1. ¿Cuál es el estado del indicador de forzados de SFC?
Si:
apagado
parpadeando
fijo
Entonces, tome nota de lo siguiente:
Actualmente no existen forzados de SFC.
No hay forzados de SFC activos. Pero existe por lo menos un
forzado en el proyecto. Cuando usted habilita los forzados de SFC,
todos los forzados de SFC existentes también se hacen efectivos.
Los forzados de SFC están habilitados (activos). Cuando usted
instala (añade) un forzado, éste se hace efectivo inmediatamente.
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).
Si:
no
sí
Entonces:
En el menú Logic, seleccione SFC Forcing ⇒ Enable All SFC Forces.
Luego seleccione Yes para confirmar.
Deténgase.
Publicación 1756-PM001E-ES-P - Agosto 2002
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 los forzados de E/S en el proyecto Inhabilitación de todos los forzados de E/S
dejar todos los forzados de SFC activos
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 los forzados de SFC en el proyecto Inhabilitación de todos los forzados de SFC
dejar todos los forzados de E/S activos
eliminar los forzados de SFC del proyecto Eliminación de todos los forzados de SFC
Publicación 1756-PM001E-ES-P - Agosto 2002
18-14 Forzado de elementos lógicos
Eliminación de un forzado individual
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.
1. Abra la rutina que contiene el forzado que desea eliminar.
2. ¿Cuál es el lenguaje de la rutina?
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
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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
18-16 Forzado de elementos lógicos
Notas:
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
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.
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
1 Publicación 1756-PM001E-ES-P - Agosto 2002
19-2 Desarrollo de una rutina de fallo
Crear el tipo de datos
FAULTRECORD
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.
Cree el siguiente tipo de datos definido por el usuario. Éste almacena
información acerca del fallo.
Tipo de datos:FAULTRECORD
nombre
descripción
Miembros
nombre
FAULTRECORD
Almacena el atributo MajorFaultRecord o el atributo
MinorFaultRecord del objeto PROGRAM.
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
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
ejecución de una
instrucción
corte de energía
E/S
watchdog de
tarea
cambio de modo
movimiento de
eje
Haga lo siguiente:
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.
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_routine
L. Haga clic en Aceptar.
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
2.
42372
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.
Nombre de tag
major_fault_record
Tipo
FAULTRECORD
Publicación 1756-PM001E-ES-P - Agosto 2002
Desarrollo de una rutina de fallo 19-5
Verificación de un fallo menor
1. 2.
3. 4.
42372
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.
2.
42372
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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. 1.
43063
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.
Nombre de tag
CPU_scanning
Tipo
BOOL
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
2.
43064
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.
Nombre de tag
major_fault_record
Tipo
FAULTRECORD
Publicación 1756-PM001E-ES-P - Agosto 2002
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. 2.
3.
4. 5.
43064
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
Desarrollo de una rutina de fallo 19-9
Borrar el fallo
Introduzca este renglón en la rutina de fallo del programa:
1.
2.
3.
43064
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
donde: es el:
aaa tag que usará para inicializar el fallo (paso 1.)
bbb
la rutina de fallo del programa
3. Para simular un fallo, establezca la condición de entrada.
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
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.
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.
Creación de un fallo mayor
definido por el usuario
1. ¿Existe ya una rutina de fallo para el programa?
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
20-2 Creación de un fallo mayor definido por el usuario
2. En la rutina principal del programa, introduzca el renglón
siguiente:
las condiciones bajo las
cuales debe desactivarse
el controlador
JSR
Jump to Subroutine
Routine name name_of_fault_routine
Input par
x
42373
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.
GEQ
Grtr Than or Eql (A>=B)
Source A input_value
0
Source B 80
JSR
Jump to Subroutine
Routine name name_of_fault_routine
Input par 999
42373
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
Para verificar lo
siguiente:
superposición de tareas
periódicas
carga desde la memoria no
volátil
problema con el puerto en
serie
batería baja
problema con una instrucción
Haga lo siguiente:
1. Introduzca una instrucción GSV que obtenga el objeto FAULTLOG, atributo MinorFaultBits.
2. Monitorice el bit 6.
1. Introduzca una instrucción GSV que obtenga el objeto FAULTLOG, atributo MinorFaultBits.
2. Monitorice el bit 7.
1. Introduzca una instrucción GSV que obtenga el objeto FAULTLOG, atributo MinorFaultBits.
2. Monitorice el bit 9.
1. Introduzca una instrucción GSV que obtenga el objeto FAULTLOG, atributo MinorFaultBits.
2. Monitorice el bit 10.
1. Cree un tipo de datos definido por el usuario que almacenará la 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).
El siguiente ejemplo verifica un aviso de batería baja.
1 Publicación 1756-PM001E-ES-P - Agosto 2002
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
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
21-4 Monitorización de fallos menores
Notas:
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
42195
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:
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á la información de fallo. Seleccione
el tipo de datos FaultRecord.
1 Publicación 1756-PM001E-ES-P - Agosto 2002
22-2 Desarrollo de una rutina de inicializacion
3. Cree un programa para el Administrador de encendido:
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.
3. ¿Cómo desea manejar una pérdida de alimentación eléctrica?
Para:
Evitar que el controlador regrese al
modo Marcha.
Realizar acciones específicas cuando se
restaure la alimentación eléctrica y
luego continuar con la operación normal
Haga lo siguiente:
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.
A. Abra (haga doble clic)
name_of_routine.
B. Introduzca la lógica para las
acciones.
Publicación 1756-PM001E-ES-P - Agosto 2002
Desarrollo de una rutina de inicializacion 22-3
4. Introduzca la siguiente lógica para borrar el fallo:
Obtiene información de fallo y la almacena en el tag major_fault (estructura definida por el usuario)
GSV
Get system value
CIP Object class PROGRAM
CIP Object name
THIS
Attribute name MAJORFAULTRECORD
Dest major_fault.TimeLow
0
Establece el tipo y código de fallo en el tag major_fault a cero y establece MAJORFAULTRECORD en
los nuevos valores, lo cual borra el fallo.
MOV
Move
Source 0
Dest major_fault.Type
0
MOV
Move
Source 0
Dest major_fault.Code
0
SSV
Set system value
CIP Object class PROGRAM
CIP Object name
THIS
Attribute name MAJORFAULTRECORD
Source major_fault.TimeLow
0
42375
donde:
major_fault es el tag del paso 2.
Publicación 1756-PM001E-ES-P - Agosto 2002
22-4 Desarrollo de una rutina de inicializacion
Notas:
Publicación 1756-PM001E-ES-P - Agosto 2002
Capítulo 23
Almacenamiento y carga de un proyecto
usando la memoria no volátil
Cuándo usar este
procedimiento
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.
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
1 Publicación 1756-PM001E-ES-P - Agosto 2002
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:
Parámetro: Almacenamiento: Carga:
¿Cuánto tiempo requiere una operación de varios minutos varios segundos
almacenamiento o carga?
¿En qué modo(s) del controlador puedo modo programa
almacenar o cargar un proyecto?
¿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.
Dependiendo del controlador, una actualización de firmware puede o
no borrar el proyecto almacenado en la memoria no volátil.
Si la memoria no volátil es:
no extraíble
(no es una tarjeta CompactFlash)
extraíble (tarjeta CompactFlash)
Entonces:
Cuando usted actualiza el firmware del controlador se borra el
contenido de la memoria no volátil (revisión 10.x o posterior).
Cuando usted actualiza el firmware del controlador, el
proyecto permanece en la memoria no volátil.
Cómo usar este
procedimiento
Si desea:
seleccionar un controlador que contenga la memoria no volátil
revisar las precauciones que se deben observar al usar la tarjeta 1784-CF64 Industrial
CompactFlash
Vea:
“Seleccionar un controlador que tenga
memoria no volátil” en la página 23-3
“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 “Cargar un proyecto” en la página 23-9
memoria no volátil del controlador
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 “Verificar una carga” en la página 23-11
volátil
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
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)
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
(1)
Requiere una tarjeta de memoria 1784-CF64 Industrial CompactFlash.
Publicación 1756-PM001E-ES-P - Agosto 2002
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
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:
Si desea cargarlo: Entonces seleccione: Notas:
cada vez que usted enciende o desconecta y
vuelve a conectar la alimentación eléctrica al
chasis
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.
sólo mediante el software RSLogix 5000
Al momento del encendido
Ante memoria corrupta
Iniciado por el usuario
• 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.
Siempre puede usarse el software RSLogix 5000 para
cargar el proyecto.
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.
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.
Antes de almacenar el proyecto:
• haga todas las ediciones requeridas de la lógica
• descargue el proyecto al controlador:
Para guardar un proyecto:
Configurar la operación de guardar
Guardar el proyecto
Guardar el proyecto en línea
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
42627
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.
42865
5. Seleccione Load/Store.
Publicación 1756-PM001E-ES-P - Agosto 2002
Almacenamiento y carga de un proyecto usando la memoria no volátil 23-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.
7.
8.
1.
Si:
Al momento del
encendido
Ante memoria corrupta
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ó?
Entonces:
Iniciado por el usuario Vaya al paso paso 8
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.
8. Escriba una nota que describa el proyecto que está
almacenando, si lo desea.
Publicación 1756-PM001E-ES-P - Agosto 2002
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
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.
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.
Pasos:
1. Entre en línea con el controlador.
2. ¿Se abrió el siguiente cuadro de diálogo?
42873
Si:
Entonces:
No Vaya al paso paso 3
Sí Vaya al paso paso 5
3. Ponga el controlador en modo de programación (programación
remota o programa).
4.
42627
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
23-10 Almacenamiento y carga de un proyecto usando la memoria no volátil
6.
42865
6. Seleccione Load/Store.
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.
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
minor_fault_bits
NVM_load
representa:
El tag que almacena el objeto FAULTLOG, atributo
MinorFaultBits. El tipo de datos es DINT
El tag que indica que el controlador cargó el proyecto
desde su memoria no volátil.
Publicación 1756-PM001E-ES-P - Agosto 2002
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
Cambiar la opción Load Image
Borrar el proyecto del controlador
Almacenar la imagen vacía
Verificar la opción Current Load Image
1. Entre en línea con el controlador.
2.
42627
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.
42865
4. ¿Está la opción Load Image establecida en User Initiated?
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
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.
42865
3. Seleccione Load/Store.
Publicación 1756-PM001E-ES-P - Agosto 2002
23-14 Almacenamiento y carga de un proyecto usando la memoria no volátil
42874
4.
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
Si desea: Entonces: Vea la
página:
Impedir que otros vean la lógica dentro de
una o más rutinas de un proyecto
Asignar varios niveles de acceso a un
proyecto, como por ejemplo, permitir que:
• los ingenieros tengan acceso total
• el personal de mantenimiento haga
cambios limitados
• los operadores sólo vean la lógica y
los datos
Usar protección de origen de
rutina
Use RSI Security Server para
proteger un proyecto
24-1
24-12
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:
1 Publicación 1756-PM001E-ES-P - Agosto 2002
24-2 Cómo proteger un proyecto
Para esta rutina…
Éste es el estado de protección.
Si el Controller Organizer
muestra:
Source Not Available
Source Not Available (Viewable)
Source Available
Source Available (Viewable)
Ninguno de los anteriores
Entonces:
• Se asignó una clave de origen a la rutina.
• Para abrir la rutina, su computadora requiere
la clave de origen de la rutina.
• Se asignó una clave de origen a la rutina.
• Usted sólo puede abrir y ver la rutina.
• No puede hacer cambios ni copiar el
contenido de la rutina.
• Se asignó una clave de origen a la rutina.
• Usted tiene acceso total a la rutina.
• Se asignó una clave de origen a la rutina.
• Usted tiene acceso total a la rutina.
• Las personas que no tienen la clave de origen
también pueden ver la rutina.
• No se asignó una clave de origen a la rutina.
• Usted tiene acceso total a la rutina.
IMPORTANTE
Si el origen de una rutina no está disponible, no
exporte el proyecto.
• Un archivo de 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
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
¿Limitar el acceso a las rutinas
protegidas desde esta computadora?
No
Sí
¿Usar estas computadoras para
proteger otras rutinas?
Sí
No
Inhabilitar la protección de origen de
rutina
Retirar el acceso a una rutina
protegida
Efectuad
Opcional – Obtener acceso a una
rutina protegida (desde esta
computadora)
Publicación 1756-PM001E-ES-P - Agosto 2002
24-4 Cómo proteger un proyecto
Seleccionar el nivel de protección para cada rutina
Tabla 24.1 Opciones de protección de rutinas
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.
Si desea: Y: Entonces:
¿Proteger la rutina?
impedir que alguien haga lo siguiente:
• editar la rutina
• cambiar las propiedades de la
rutina
• exportar la rutina
permitir que cualquier persona tenga
acceso total a 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
ninguna otra limitación sí sí
sí
no
Permitir que se
vea?
no
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.
Lo siguiente:
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
Proporciona:
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)
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
Clave:
HKEY_CURRENT_USER\Software\Rockwell
Software\RSLogix 5000\ProtectedRoutine
Entrada de valor:
Nombre: Tipo: Datos:
PTCRoutine DWORD 1
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:
Publicación 1756-PM001E-ES-P - Agosto 2002
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?
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.
4. Seleccione Yes.
5.
7.
5. Haga clic en
6. Seleccione una carpeta donde almacenar el archivo, y seleccione
OK.
7. Seleccione OK.
Un cuadro de diálogo le pregunta si desea crear el archivo de
claves de origen (sk.dat).
8. Seleccione Yes.
ubicación del archivo de claves de
origen (sk.dat)
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
4.
3. Seleccione la rutina o rutinas que desea proteger.
4. Haga clic en Protect.
5.
7.
6.
5. Escriba un nombre que desee usar como clave de origen. O
seleccione una clave de origen existente de la lista desplegable.
6. Si una persona no tiene la clave de origen, ¿desea usted que
pueda abrir y ver la rutina?
Si:
No
Sí
Entonces:
Borre la marca de verificación en el cuadro de verificación Allow
viewing of routine (opción predeterminada).
Seleccione el cuadro de verificación Allow viewing of routine.
7. Seleccione OK.
8. Cuando haya asignado las claves de origen requeridas para el
proyecto, haga clic en Close.
9. En el menú File, seleccione Save.
Publicación 1756-PM001E-ES-P - Agosto 2002
24-8 Cómo proteger un proyecto
Retirar el acceso a una rutina protegida
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.
1. Abra el proyecto RSLogix 5000 protegido.
2. En el menú Tools, seleccione Security ⇒ Configure Source
Protection.
3.
3. Haga clic en Clear.
Un cuadro de 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)?
Si:
Sí
No
Entonces:
Seleccione Yes.
Seleccione No.
Inhabilitar la protección de origen de rutina
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.
1. Abra el proyecto RSLogix 5000 protegido.
2. En el menú Tools, seleccione Security ⇒ Configure Source
Protection.
Publicación 1756-PM001E-ES-P - Agosto 2002
Cómo proteger un proyecto 24-9
4.
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)?
Si:
Sí
No
Entonces:
Seleccione Yes.
Seleccione No.
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?
Si: Entonces:
No Vaya al paso 7.
Sí Vaya al paso 4.
4. Seleccione Yes.
Publicación 1756-PM001E-ES-P - Agosto 2002
24-10 Cómo proteger un proyecto
5.
7.
5. Haga clic en
6. ¿Tiene ya esta computadora un archivo de claves de origen
(sk.dat)?
Si:
Sí
No
Entonces:
A. Seleccione la carpeta que contiene el archivo y luego seleccione OK.
B. Seleccione OK .
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
Cómo proteger un proyecto 24-11
7.
7. Haga clic en View.
• Si el sistema le indica que seleccione un programa con el cual
abrir el archivo, seleccione un programa de procesamiento de
palabras, tal como Notepad.
• Se abre el archivo sk.dat.
8. Escriba el nombre de la clave de origen. Para introducir
múltiples claves, escriba cada clave en una línea diferente.
sk.dat - Notepad
key1
key2
key3
9. Guarde y cierre el archivo sk.dat.
Publicación 1756-PM001E-ES-P - Agosto 2002
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
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.
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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?
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:
Language
version
es el:
el idioma del software. Por ejemplo, para el software en inglés, abra la
carpeta ENU.
versión del software, tal como v10
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.
3. Seleccione el cuadro RSLogix 5000
y seleccione OK.
43073
Publicación 1756-PM001E-ES-P - Agosto 2002
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
Si: Entonces:
2.00 Busque en esta carpeta:
−
Program Files
−
Rockwell Software
−
RSLogix 5000
−
Language
−
version
+
Security
donde:
Language
es el:
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
−
Security Server
+
System
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
43077
Publicación 1756-PM001E-ES-P - Agosto 2002
Cómo proteger un proyecto 24-15
actualizar el firmware de un controlador. Las siguientes acciones
globales corresponden al software RSLogix 5000.
Tabla 24.2 Acciones globales
Para que un usuario pueda:
habilitar la seguridad para un controlador sin
seguridad
crear un nuevo proyecto RSLogix 5000
abrir un archivo .L5K en el software RSLogix
5000, lo cual crea un proyecto
traducir un proyecto PLC o SLC a un archivo .L5K
usar el software RSLogix 5000 para iniciar el
software ControlFLASH y actualizar el firmware
de un controlador
Entonces otorgue acceso a las
siguientes acciones:
Secure Controller
New Project
Update Firmware
Use la siguiente hoja de trabajo para registrar las acciones globales
que usted permitirá para cada grupo de usuarios.
Tabla 24.3 Acciones globales para cada grupo de usuarios
Este grupo de usuarios:
Requiere este acceso:
Secure
Controller
(Seguridad
para el
controlador)
New
Project
(Nuevo
proyecto)
Update
Firmware
(Actualizar
firmware)
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
43075
• 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.
43078
Publicación 1756-PM001E-ES-P - Agosto 2002
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
realizar todas las acciones
disponibles a través del software
RSLogix 5000 excepto inhabilitar un
controlador que tiene la seguridad
habilitada
inhabilitar la seguridad de un
controlador que tiene seguridad
habilitada
actualizar el firmware de un
controlador
entrar en línea y
monitorear un
proyecto
• 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
View Proyect
Go online
Maintain Project
Full Access
Acceso total
y
Unsecure Controller
Update Firmware
Publicación 1756-PM001E-ES-P - Agosto 2002
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
Cómo proteger un proyecto 24-19
Añadir usuarios
1. Haga clic con el botón derecho del mouse y seleccione
New.
43078
43084
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.
2. Siga estos pasos para esta tarea.
43074
Publicación 1756-PM001E-ES-P - Agosto 2002
24-20 Cómo proteger un proyecto
Asignar acceso global al software RSLogix 5000
Para permitir que los usuarios realicen acciones globales:
1. En el explorador Configuration, seleccione el grupo
RSLOGIX 5000.
43077
2. En el menú Help, seleccione Quick Start.
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
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:
1. En el explorador Configuration, seleccione el grupo
New RSLogix 5000 Resources.
43075
2. En el menú Help. seleccione Quick Start.
43076
3. Siga estos pasos para esta tarea. Asigne las acciones que
registró en la Tabla 24.5 en la página 24-18.
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.
2. Haga clic en el botón Controller Properties.
42627
3. Haga clic en la ficha Advanced.
Publicación 1756-PM001E-ES-P - Agosto 2002
24-22 Cómo proteger un proyecto
43069
4. Seleccione RSI
Security Server.
5. Seleccione OK y luego Yes.
En el software Security Server, el proyecto aparece como miembro del
grupo New RSLogix 5000 Resources. Si el software Security Server ya
está abierto, entonces, desde el menú View, seleccione Refresh.
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:
1. En el explorador Configuration, seleccione el grupo
New RSLogix 5000 Resources.
43075
2. Haga clic en la ficha Group Members.
3.
43079
3. En la lista Member items, seleccione el proyecto y haga clic en el
botón <<.
Publicación 1756-PM001E-ES-P - Agosto 2002
Cómo proteger un proyecto 24-23
4. Seleccione Apply.
5. En el explorador Configuration, seleccione el proyecto.
43078
6. En el menú Help. seleccione Quick Start.
43076
7. Siga estos pasos para esta tarea. Asigne las acciones que
registró en la Tabla 24.5 en la página 24-18.
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
24-24 Cómo proteger un proyecto
Notas:
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
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.
4 34 Una instrucción de temporizador tiene un valor
acumulado o preseleccionado negativo.
4 42 JMP a una etiqueta que no existe o fue
eliminada.
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.
Ajuste el valor para que esté dentro del rango válido. No exceda el
tamaño de la matriz ni sobrepase las dimensiones definidas.
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.
Corrija el programa para que no cargue un valor negativo en un
valor acumulado o preseleccionado de temporizador.
Corrija el receptor de JMP o añada la etiqueta que falta.
Elimine el salto al SFC que llamó a la subrutina.
1 Publicación 1756-PM001E-ES-P - Agosto 2002
A-2 Códigos de fallo
Tabla A.1 Tipos y códigos de fallos mayores (Continúa)
Tipo: Código: Causa: Método de recuperación:
4 83 Los datos probabos no estaban dentro de los Modifique el valor para que esté dentro de los límites.
límites requeridos.
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.
7 40 Falló el almacenamiento en la memoria no
volátil.
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.
8 1 Se intentó colocar el controlador en el modo
Run con el interruptor de llave durante la
descarga.
11 1 La posición actual excedió el límite de fin de
carrera positivo.
11 2 La posición actual excedió el límite de fin de
carrera negativo.
11 3 La posición actual excedió la tolerancia de error
de posición.
11 4 Se interrumpió la conexión de canal A, B o Z de
encoder.
11 5 Se detectó evento de ruido de encoder o las
señales de encoder no están en cuadratura.
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.
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.
Actualice el firmware del controlador al mismo nivel de revisión
que el proyecto que se encuentra en la memoria no volátil.
Espere que concluya la descarga y borre el fallo.
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.
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.
Mueva la posición dentro del límite de tolerancia y luego ejecute el
comando Motion Axis Fault Reset.
Vuelva a conectar el canal de encoder y luego ejecute el comando
Motion Axis Fault Reset.
Corrija el cableado de encoder y luego ejecute el comando Motion
Axis Fault Reset.
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 Reemplace el módulo.
hardware.
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
6 2 Superposición de tareas periódicas
La tarea periódica no concluyó antes de que sea tiempo
de que se ejecute nuevamente.
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.
9 1 La línea CTS no es la correcta para la configuración
actual.
Haga uno de los siguientes:
• Cambie el parámetro Control Line del puerto en
serie.
• Elimine la instrucción AHL.
Simplifique el (los) programa(s), o aumente el período o
eleve la prioridad relativa, etc.
Comuníquese con el personal de GTS.
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
A-4 Códigos de fallo
Tabla A.2 Tipos y códigos de fallos menores (Continúa)
Tipo: Código: Causa: Método de recuperación:
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).
9 5 Tiempo de espera de encuestas DF1 esclavo
Expiró el temporizador de control (watchdog) de
encuestas para el esclavo. El maestro no encuestó este
controlador en el período de tiempo especificado.
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.
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
Determine y corrija el retardo de la encuesta.
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
Apéndice B
Cumplimiento de la norma IEC61131-3
Cómo usar este Apéndice
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
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í.
1 Publicación 1756-PM001E-ES-P - Agosto 2002
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
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
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
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
2 3 Identificadores que usan mayúsculas y
minúsculas, números y caracteres de subrayado
incorporados
Nombres de tag, tarea, programa, rutina,
estructura
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 Editor de cadena y descripciones
carácter 'A'
5 1c Cadena de longitud uno que contiene un Editor de cadena y descripciones
espacio ' '
5 1d Cadena de longitud uno que contiene un Editor de cadena y descripciones
carácter de una sola comilla '$''
5 1E Cadena de longitud uno que contiene un Editor de cadena y descripciones
carácter de doble comilla
5 1F Cadena de longitud dos que contiene
Editor de cadena y descripciones
caracteres CR y LF
5 1G Cadena de longitud uno que contiene el Editor de cadena y descripciones
carácter LF '$0A'
5 1H Cadena de longitud 5 que se imprimiría como Editor de cadena y descripciones
“$1.00” usando '$$1.00'
5 1I Cadenas equivalentes de longitud dos 'AE' y Editor de cadena y descripciones
'$C4$CB'
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
B-6 Cumplimiento de la norma IEC61131-3
Número de
Tabla: (1)
Número de
función:
Descripción de la función:
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) Editor de cadena y descripciones
'$P' o '$p'
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 Importación/exportación
derivados
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)
Notas sobre extensiones e
implementación:
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
Publicación 1756-PM001E-ES-P - Agosto 2002
Cumplimiento de la norma IEC61131-3 B-7
Número de
Tabla: (1)
Número de
función:
Descripción de la función:
Notas sobre extensiones e
implementación:
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
Publicación 1756-PM001E-ES-P - Agosto 2002
B-8 Cumplimiento de la norma IEC61131-3
Número de
Tabla: (1)
Número de
función:
Descripción de la función:
Notas sobre extensiones e
implementación:
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”
Publicación 1756-PM001E-ES-P - Agosto 2002
Cumplimiento de la norma IEC61131-3 B-9
Número de
Tabla: (1)
Número de
función:
Descripción de la función:
Notas sobre extensiones e
implementación:
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
Publicación 1756-PM001E-ES-P - Agosto 2002
B-10 Cumplimiento de la norma IEC61131-3
Número de
Tabla: (1)
Número de
función:
Descripción de la función:
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
48 2 Requisitos mínimos de cumplimiento de
transición SFC
48 3 Requisitos mínimos de cumplimiento de acción
SFC
48 4 Requisitos mínimos de cumplimiento de cuerpo
de acción SFC
48 5 Requisitos mínimos de cumplimiento de
calificador de acción SFC
48 6 Requisitos mínimos de cumplimiento de
bifurcación SFC
48 7 Requisitos mínimos de cumplimiento de
conexión de bloque SFC
55 1 ST Paréntesis (expresión)
Notas sobre extensiones e
implementación:
Consulte las notas en las tablas individuales
anteriores.
Consulte las notas en las tablas individuales
anteriores.
Consulte las notas en las tablas individuales
anteriores.
Consulte las notas en las tablas individuales
anteriores.
Consulte las notas en las tablas individuales
anteriores.
Consulte las notas en las tablas individuales
anteriores.
Consulte las notas en las tablas individuales
anteriores.
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 <, >, <=, >=
Publicación 1756-PM001E-ES-P - Agosto 2002
Cumplimiento de la norma IEC61131-3 B-11
Número de
Tabla: (1)
Número de
función:
Descripción de la función:
Notas sobre extensiones e
implementación:
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 -| Instrucción ONS en LD
P |-
62 1 Bobina --( )-- Instrucción OTE en LD
Publicación 1756-PM001E-ES-P - Agosto 2002
B-12 Cumplimiento de la norma IEC61131-3
Número de
Tabla: (1)
Número de
función:
Descripción de la función:
Notas sobre extensiones e
implementación:
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
Paso
Acciones
MEZCLAR
Hacer esto…
…y hacer esto
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.
1 Publicación 1756-PM001E-ES-P - Agosto 2002
Glosario 2
42195
El Administrador de inicialización se ejecuta de la siguiente manera:
¿Se encendió el controlador
en el modo Marcha?
No
El controlador permanece
en el modo actual.
Sí
¿Contiene un programa el
Administrador de
inicialización?
Sí
Ocurre el fallo mayor tipo 1,
código 1.
No
El controlador permanece
en el modo Marcha y
ejecuta la lógica
Se ejecuta el programa
Administrador de
inicialización.
¿Se borró el fallo mayor?
No
El controlador entra en el
modo fallo.
Sí
El controlador permanece
en el modo Marcha y
ejecuta la lógica
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
Glosario 3
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
42195
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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
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é:
Este tipo de mensaje:
Usando este método de
comunicación:
Usa una
conexión:
Lectura o escritura de la tabla de CIP ✓ ✓
datos CIP
PLC2, PLC3, PLC5 o SLC (todos los
tipos)
CIP
CIP con ID de origen
DH+ ✓ ✓
CIP genérico N/A ✓ 1 ✓ 2
La cual se
puede poner
en caché:
transferencia en bloques de
lectura o escritura
N/A ✓ ✓
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é.
Publicación 1756-PM001E-ES-P - Agosto 2002
Glosario 6
Si:
Sí
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?)
Entonces:
No Vaya al paso 2.
A. Borre la casilla de verificación Cache Connection.
B. Omita el paso 2.
2. ¿A cuántos controladores envía mensajes que usted puede
almacenar en caché este controlador?
Si:
16 ó menos
controladores
más de 16
controladores
Entonces:
Deje seleccionada la casilla de verificación Cache Connection.
A. Seleccione 16 controladores que requieran los mensajes más
frecuentes.
B. ¿Se envía este mensaje a uno de esos controladores?
Si:
Sí
No
Entonces
Deje seleccionada la casilla de verificación Cache
Connection.
Borre la casilla de verificación Cache Connection.
Vea conexión, conexión sin caché.
Publicación 1756-PM001E-ES-P - Agosto 2002
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
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.
instrucción de entrada
instrucción de salida
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
Publicación 1756-PM001E-ES-P - Agosto 2002
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:
byte
• 0 es igual a desactivado
• 1 es igual a activado
Una unidad de memoria que consiste en 8 bits.
Publicación 1756-PM001E-ES-P - Agosto 2002
Glosario 10
C
cadena
Un grupo de tipos de datos que almacena caracteres ASCII.
42811
42812
Puede usar el tipo de datos STRING predeterminado.
Éste almacena hasta 82 caracteres.
o bien
Puede crear un nuevo tipo de datos de cadena para
almacenar el número de caracteres definido.
Cada tipo de datos de cadena contiene los siguientes miembros:
Nombre: Tipo de
datos:
Descripción:
LEN DINT número de caracteres
en la cadena
Notas:
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.
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
Glosario 11
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:
hace un tipo de datos de
cadena más pequeño
hace un tipo de datos de
cadena más grande
Entonces:
• Los datos se truncan.
• LEN no se cambia.
El dato y LEN se restablecen a cero.
El siguiente ejemplo muestra el tipo de datos STRING y un nuevo tipo
de datos de cadena.
Este tag usa el tipo de datos
STRING predeterminado.
Este tag es una matriz de 20 elementos del
tipo de datos STRING predeterminado.
42234
Este tag usa un nuevo tipo de datos de cadena.
• El usuario asignó al tipo de datos el nombre
STRING_24.
• El nuevo tipo de datos de cadena almacena
sólo 24 caracteres.
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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
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
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
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
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:
Para esta matriz:
una dimensión
dos dimensiones
tres dimensiones
Especifique:
array_name[subscript_0]
array_name[subscript_0,
subscript_1]
array_name[subscript_0,
subscript_1, subscript_2]
Vea matriz.
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
Para expandir una estructura
y mostrar sus miembros,
haga clic en el signo +.
estructura COUNTER
Para contraer una
estructura y ocultar sus
miembros, haga clic en el
signo – .
estructura TIMER
miembros de
running_seconds
tipos de datos de los
miembros
42365
Vea miembro, tipo de datos definido por el usuario.
Publicación 1756-PM001E-ES-P - Agosto 2002
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
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
Glosario 20
ocurre un fallo mayor
¿Hay un fallo de
instrucción?
No
sí
El controlador
registra un fallo
mayor en el programa
MajorFaultRecord
actual
¿Existe una rutina
de fallo del
programa?
No
sí
Ejecute la rutina de
fallo
del programa
actual
¿Se borró el fallo?
sí
No
continúa la
ejecución de lógica
El controlador registra un fallo
mayor al administrador de
fallos del controlador
PROGRAM MajorFaultRecord
No
Existe el
administrador de
fallos del
controlador
sí
ejecute el
administrador de
fallos del
controlador
¿Se borró el fallo?
sí
No
Entre en el modo fallo
Desactivación de
registro de FAULTLOG
continúa la
ejecución de
lógica
Vea estado con fallo, fallo menor.
Publicación 1756-PM001E-ES-P - Agosto 2002
Glosario 21
fallo menor
Una condición de fallo no es suficientemente severa para que el
controlador se desactive:
Si ocurre lo siguiente:
problema con una instrucción
estructura predefinida
problema con el puerto en serie
batería baja
El controlador:
1. establece S:MINOR
2. registra información acerca del fallo al objeto
PROGRAM, atributo MinorFaultRecord
3. establece el bit 4 del objeto FAULTLOG,
atributo MinorFaultBits
establece el bit 6 del objeto FAULTLOG, atributo
MinorFaultBits
establece el bit 9 del objeto FAULTLOG, atributo
MinorFaultBits
establece el bit 10 del objeto FAULTLOG, atributo
MinorFaultBits
Para borrar fallos menores:
1. En el Controller Organizer, haga clic con el 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
Publicación 1756-PM001E-ES-P - Agosto 2002
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
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).
instrucción de entrada
instrucción de salida
condición de
entrada de renglón
condición de
salida 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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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.
running_seconds.DN
CTU
Count Up
Counter running_hours
Preset 500
Accum 0
CU
DN
running_seconds
RES
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.
machine_on drill_1_on drill[1].part_advance conveyor_on
42362
Publicación 1756-PM001E-ES-P - Agosto 2002
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
Glosario 26
Para expandir una matriz y
mostrar sus elementos, haga
clic en el signo +.
Para contraer una matriz
y ocultar sus elementos,
haga clic en el signo – .
Esta matriz contiene
seis elementos del
tipo de datos DINT.
elementos de
timer_presets
seis DINT
• 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.
42367
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.
La dimensión del extremo derecho
se incrementa a su valor máximo y
luego vuelve a empezar.
• 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
Publicación 1756-PM001E-ES-P - Agosto 2002
Glosario 27
Esta matriz: Almacena los datos como: Por ejemplo:
una dimensión
Nombre de tag:
Tipo
Dimensión 0
Dimensión 1
Dimensión 2
one_d_array
DINT[7]
7
--
--
número total de elementos = 7
rango de subíndice válido DINT[x] donde x=0–6
dos dimensiones
Nombre de tag:
Tipo
Dimensión 0
Dimensión 1
Dimensión 2
two_d_array
DINT[4,5]
4
5
--
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:
Tipo
Dimensión 0
Dimensión 1
Dimensión 2
three_d_array
DINT[2,3,4]
2
3
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
• 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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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
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:
Esta dirección:
timer_1.pre
input_load as data type load_info
input_load.height
Hace referencia al:
valor PRE de la estructura timer_1.
miembro height de la estructura
input_load definida por el usuario
• Si la estructura está incorporada en otra estructura, use el
nombre de tag de la estructura al nivel más alto seguido por un
nombre de tag de subestructura y un nombre de miembro:
tag_name.substructure_name.member_name
Por ejemplo:
Esta dirección:
input_location como ubicación de tipo
de datos
input_location.load_info.height
Hace referencia al:
miembro height de la estructura
load_info en la estructura
input_location.
• Si la estructura define una matriz, use el tag de matriz seguido
por la 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
Publicación 1756-PM001E-ES-P - Agosto 2002
Glosario 30
Por ejemplo:
Esta dirección:
conveyor[10].source
conveyor[10].info.height
Hace referencia al:
miembro source del 11 vo elemento en la matriz
conveyor (los elementos de la matriz se basan en
cero).
miembro height de la estructura info en el 11 vo
elemento la matriz conveyor (los elementos de la
matriz se basan en cero).
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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
Glosario 32
Paso
Acciones
Un paso se ejecuta continuamente hasta
que una condición lógica le indique al
controlador que vaya al siguiente paso.
MEZCLAR
Hacer esto…
…y hacer esto
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.
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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
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.40282347E 38 a –1.17549435E –38 (valores negativos)
• 0
• 1.17549435E –38 a 3.40282347E 38 (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.
Formato de la pantalla:
Real
Exponencial
Equivalencia:
+infinito
– infinito
+NAN
–NAN
–indefinido
+infinito
– infinito
+NAN
–NAN
–indefinido
1.$
–1.$
1.#QNAN
–1.#QNAN
–1.#IND
1.#INF000e+000
–1.#INF000e+000
1.#QNAN00e+000
–1.#QNAN00e+000
–1.#IND0000e+000
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)
Publicación 1756-PM001E-ES-P - Agosto 2002
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
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.
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
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
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
Glosario 37
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)
Vea conexión.
Publicación 1756-PM001E-ES-P - Agosto 2002
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
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 este segmento
de tiempo:
Las tareas continuas se
ejecutan durante:
10% 9 ms 1 ms
20% 4 ms 1 ms
33% 2 ms 1 ms
50% 1 ms 1 ms
Y luego el procesamiento interno
se realiza como máximo durante:
Con el segmento de tiempo predeterminado de 10 %, el
procesamiento del sistema interrumpe la tarea continua cada 9 ms
(de tiempo de tarea continua).
Leyenda:
La tarea se ejecuta.
La tarea se interrumpe (se suspende).
1 ms 1 ms
tiempo de procesamiento
interno del sistema
9 ms 9 ms
Publicación 1756-PM001E-ES-P - Agosto 2002
Glosario 40
tarea continua
5 10 15 20 25
tiempo transcurrido (ms)
La interrupción de una tarea periódica aumenta el tiempo transcurrido
(tiempo del reloj) entre la ejecución del procesamiento interno del
sistema.
tarea periódica
tiempo de procesamiento
interno del sistema
tarea continua
9 ms de tiempo de tarea
continua
1 ms 1 ms 1 ms 1 ms
1 ms 1 ms
9 ms de tiempo de tarea continua
5 10 15 20 25
tiempo transcurrido (ms)
Si se aumenta el segmento de tiempo a 20 %, el procesamiento
interno del sistema interrumpe la tarea continua cada 4 ms (de tiempo
de tarea continua).
tiempo de procesamiento
interno del sistema
tarea continua
1 ms 1 ms 1 ms 1 ms 1 ms
4 ms 4 ms 4 ms 4 ms 4 ms
5 10 15 20 25
tiempo transcurrido (ms)
Si se aumenta el segmento de tiempo a 50 %, el procesamiento
interno del sistema interrumpe la tarea continua cada 1 ms (de tiempo
de tarea continua).
tiempo de procesamiento
interno del sistema
tarea continua
1 ms
1 ms
5 10 15 20 25
tiempo transcurrido (ms)
Si el controlador sólo tiene una tarea (s) periódica, el valor del
segmento de tiempo de procesamiento interno del sistema no tiene
Publicación 1756-PM001E-ES-P - Agosto 2002
Glosario 41
efecto. El procesamiento interno del sistema se ejecuta cuando no se
está ejecutando una tarea periódica.
tarea periódica
tiempo de procesamiento
interno del sistema
5 10 15 20 25
tiempo transcurrido (ms)
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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
Bits
memoria
31 1 0
asignación no se usa Start
Publicación 1756-PM001E-ES-P - Agosto 2002
Glosario 43
– station_status, que usa el tipo de datos DINT:
Asignación de
memoria
asignación
Bits
31 0
station_status
– mixer, que usa el tipo de datos definido por el usuario:
Asignación de
memoria
asignación 1
asignación 2
asignación 3
Bits
31 24 23 16 15 8 7 0
mixer.pressure
mixer.temp
mixer.agitate_time
asignación 4 no se usa no se usa no se usa bit 0 mixer.inlet
bit 1 mixer.drain
bit 2 mixer.agitate
– temp_buffer, que es una matriz de cuatro INTS (INT[4] ):
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]
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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
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.
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.
• 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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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
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:
más eficiente
menos eficiente
BOOL
BOOL
BOOL
DINT
DINT
BOOL
DINT
BOOL
DINT
BOOL
• 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.
Publicación 1756-PM001E-ES-P - Agosto 2002
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?
Si:
Sí
No
Entonces los operandos de entrada (por ej. origen, tag en
una expresión, límite) se convierten a:
REAL
DINT
– 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:
Conversión:
número entero mayor a número entero
menor
SINT o INT a REAL
Resultado:
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
No se pierde la precisión de datos.
Publicación 1756-PM001E-ES-P - Agosto 2002
Glosario 49
Conversión:
DINT a REAL
REAL a número entero
Resultado:
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.
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)
–2.5 –2
–1.6 –2
–1.5 –2
–1.4 –1
1.4 1
1.5 2
1.6 2
2.5 2
DINT
(resultado)
Publicación 1756-PM001E-ES-P - Agosto 2002
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
Glosario 51
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.
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.
Publicación 1756-PM001E-ES-P - Agosto 2002
Glosario 52
Publicación 1756-PM001E-ES-P - Agosto 2002
índice
A
abrir
rutina 2-8
acción 5-19
almacenar 4-37
añadir 5-16
asignar calificador 5-17
asignar orden 5-22
booleana 4-18
calificador 4-21
cambiar el nombre 5-16
configurar 5-17
no booleana 4-17
programa 4-17, 5-19
restablecer 4-37
seleccionar entre booleano y no booleano 4-17
tipo de datos 4-19
usar expresión 5-18
uso de texto estructurado 5-19
acción booleana 4-18, 5-19
programa 4-18
alarma
diagrama de funciones secuenciales 4-26, 5-12
alias
crear 10-2
uso 10-1
almacenar
acción 4-37
proyecto 23-5
archivo de proyecto
crear 1-1
arreglo
índice 11-1
producir arreglo grande 15-1
ASCII
asignación de texto estructurado 6-4
buscar caracteres 17-4
comparar caracteres 17-4, 17-10
conectar dispositivo 16-2
configurar protocolo de usuario 16-5
configurar puerto en serie 16-3
construir cadena 17-18
convertir caracteres 17-12
descodificar mensaje 17-14
escribir caracteres 16-14
extraer caracteres 17-2
introducir caracteres 16-21
leer caracteres 16-9
manipular caracteres 17-1
organizar datos 16-8
asignación
carácter ASCII 6-4
no retentiva 6-3
retentiva 6-2
automatic reset
diagrama de funciones secuenciales 4-34
B
bifurcación
diagrama de funciones secuenciales 4-11, 5-5, 5-6
lógica de escalera 8-2
bifurcación de selección
asignar prioridades 5-8
crear 5-6
descripción general 4-14
bifurcación simultánea 4-15
forzado 18-9, 18-12
introducir 5-5
opción "step through" 18-9
borrar
fallo mayor 13-6, 19-1
fallo menor 21-1
memoria no volátil 23-12
búfer
E/S 12-1
buscar un código de barras 17-4
C
cable
diagrama de bloques de función 7-5, 7-8, 7-18
diagrama de funciones secuenciales 5-9
cadena
buscar una matriz de caracteres 17-4
comparar caracteres 17-4, 17-10
convertir caracteres 17-12
crear 17-18
escribir caracteres 16-14
evaluación en texto estructurado 6-8
extraer caracteres 17-2
introducir caracteres 16-21
leer caracteres 16-9
organizar datos 16-8
Tipo de datos 16-8
calificador
asignar 5-17
seleccionar 4-21
cambiar el nombre
acción 5-16
bloque de función 7-21
paso 5-11
transición 5-14
carga 13-6
cargar un proyecto 23-9
carpeta
abrir 2-7
cerrar 2-7
Publicación 1756-PM001E-ES-P - Agosto 2002
ii
índice
CASE 6-16
clave de origen 24-1
código de barras
buscar una coincidencia 17-4
extraer caracteres 17-2
probar caracteres 17-4, 17-10
códigos
fallo mayor A-1
fallo menor A-3
comentarios
texto estructurado 6-26
comparar
Caracteres ASCII 17-4, 17-10
comunicarse
otros controladores 14-1
condición de renglón 8-4
conectar
diagrama de funciones secuenciales 4-16
configurar
acción 5-17
alarma 5-12
carga desde la memoria no volátil 23-9
cargar desde la memoria no volátil 23-5
driver 13-1
ejecución del diagrama de funciones secuenciales 4-44,
5-28
paso 5-11
protocolo de usuario para ASCII 16-5
puerto en serie para ASCII 16-3
rutina principal 2-12
conjunto de instrucciones B-4
construcción
texto estructurado 6-12
consumir
enteros desde PLC-5C 14-9
tag 14-1
control de programa/operador
descripción general 7-12
controlador
cambiar propiedades 1-3
desactivar 20-1
descarga 13-3
información sobre la memoria 9-6
memoria no volátil 23-3
modo 13-5
suspender 20-1
controller organizer
abrir rutina 2-8
navegar 2-7
ControlNet
configurar driver 13-1
producir y consumir datos 14-1
convertir
Caracteres ASCII 17-12
crear
alias 10-2
archivo de proyecto 1-1
cadena 17-18
driver 13-1
estructura 3-8
matriz 3-10
programa 2-10
rutina 2-11
tag 3-10, 8-10
diagrama de bloques de función 7-20
tag usando Excel 3-11
tarea periódica 2-9
tipo de datos definido por el usuario 3-8
Tipo de datos STRING 16-8
cuadro de texto
diagrama de funciones secuenciales 5-25
mostrar u ocultar en el diagrama de funciones
secuenciales 5-26
cumplimiento de la norma IEC61131-3
conjunto de instrucciones B-4
datos
definiciones B-2
introducción B-1
lenguaje de programación B-3
portabilidad de programas B-4
sistema operativo B-2
tablas B-5
D
DATA
producir y consumir 14-1
Datos
ASCII 16-8
Introduzca caracteres ASCII 16-21
datos
definiciones B-2
forzado 18-6, 18-8
datos del sistema
acceso 9-3
desactivar el controlador 20-1
descarga 13-3
descripción
texto estructurado 6-26
diagrama de bloques de función
añada un elemento 7-16
añada una hoja 7-16
aplicaciones para 2-5
asigne un valor inmediato 7-22
cambiar el nombre de un bloque 7-21
conecte los elementos 7-19
cree un retardo de escán 7-10
enclavamiento de datos 7-5
Publicación 1756-PM001E-ES-P - Agosto 2002
índice
iii
forzar un valor 18-1
mostrar un pin 7-18
ocultar un pin 7-18
orden de ejecución 7-5
organización de las hojas 7-2
resolución de un lazo 7-8, 7-19
resolución del flujo de datos entre dos bloques 7-10
selección de elementos 7-3
diagrama de funciones secuenciales
acción
asignar orden 5-22
cambiar el nombre 5-16
configurar 5-17
descripción general 4-17
introducir 5-16
llamar a una subrutina 5-21
programa 5-19
usar una acción booleana 4-18
acción booleana 4-18
anidar 4-43
aplicaciones para 2-5
avanzar un paso en una bifurcación simultánea 18-9
avanzar un paso en una transición 18-9
bifurcación de selección
asignar prioridades 5-8
crear 5-6
descripción general 4-14
bifurcación simultánea
crear 5-5
descripción general 4-15
calificador 4-21
conectar 4-16
configurar ejecución 5-28
cuadro de texto 5-25
definir tareas 4-5
documentar 5-23
ejecución
configurar 4-44
diagramas 4-45
pausa 4-45
elemento de forzado 18-1, 18-9, 18-12
expresión numérica 5-12, 5-18
introducir un nuevo elemento 5-3
llamar a una subrutina 5-21
mostrar u ocultar documentación 5-26
opción "step through"
bifurcación simultánea 18-9
transición 18-9
opción automatic reset 4-34
opción don"t scan 4-31
opción programmatic reset 4-32
organizar los pasos 4-11
organizar un proyecto 4-6
paro 4-40
paso
cambiar el nombre 5-11
configurar 5-11
definir 4-6
descripción general 4-6
organizar 4-11
poner en pausa un SFC 4-45
regresar al paso previo 5-9
reiniciar 4-41
restablecer
DATA 4-29
SFC 4-41, 4-43, 4-45
secuencia 4-13
transición
cambiar el nombre 5-14
descripción general 4-22
programar 5-14
último escán 4-29
dirección
asignar indirecta 11-1
tag
diagrama de bloques de función 7-4
lógica de escalera 8-7, 8-10
dirección indirecta 11-1
borrar un fallo mayor 19-6
documentación
mostrar u ocultar en el diagrama de funciones
secuenciales 5-26
documentar
diagrama de funciones secuenciales 5-23
texto estructurado 6-26
don"t scan
diagrama de funciones secuenciales 4-31
driver
configurar 13-1
E
E/S
búfer 12-1
sincronizar con la lógica 12-1
ejecución
diagrama de funciones secuenciales 4-45, 5-28
eliminar
forzado 18-3, 18-13
en serie
cableado 16-2
conecte un dispositivo ASCII 16-2
configure el puerto para ASCII 16-3
enclavamiento de datos
diagrama de bloques de función 7-5
Publicación 1756-PM001E-ES-P - Agosto 2002
iv
índice
enviar
Caracteres ASCII 16-14
escritura
Caracteres ASCII 16-14
Estado
monitorear 9-3
estado
forzado 18-4
memoria 9-6
monitorear 9-1
estructura
crear 3-8
organizar 3-1
SFC_ACTION 4-19
SFC_STEP 4-8
SFC_STOP 4-42
estructura SFC_ACTION 4-19
estructura SFC_STEP 4-8
Estructura SFC_STOP 4-42
Ethernet
configurar driver 13-1
producir y consumir tags 14-1
expresión
expresión BOOL
diagrama de funciones secuenciales 4-24,
5-14
texto estructurado 6-4
expresión numérica
diagrama de funciones secuenciales 5-12,
5-18
texto estructurado 6-4
orden de ejecución
texto estructurado 6-10
texto estructurado
descripción general 6-4
funciones 6-5
operadores aritméticos 6-5
operadores de bit 6-10
operadores de relación 6-7
operadores lógicos 6-9
expresión BOOL
diagrama de funciones secuenciales 4-24, 5-14
texto estructurado 6-4
expresión numérica 5-12, 5-18, 6-4
extraer
Caracteres ASCII 17-2
F
fallo
borrar 13-6, 19-1
códigos de fallo mayor A-1
códigos de fallos menores A-3
crear definido por el usuario 20-1
desarrollar rutina para borrar fallo 19-1
desarrollo de rutina para borrar el fallo 22-1
dirección indirecta 19-6
durante el preescán 19-6
monitorizar menor 21-1
prueba de una rutina de fallo 19-10
fallo mayor
códigos A-1
crear definido por el usuario 20-1
desarrollar una rutina de fallo 19-1
desarrollo de rutina de fallo 22-1
fallo menor
borrar 21-1
códigos A-3
lógica 21-1
FOR…DO 6-18
forzado
diagrama de funciones secuenciales 18-9, 18-12
eliminar 18-3, 18-13
habilitar 18-2
indicador LED 18-4
inhabilitar 18-3, 18-13
monitorear 18-4
opciones 18-6
precauciones de seguridad 18-2
tag 18-6, 18-8
funciones
texto estructurado 6-5
G
guardar 1-3
guardar como 1-3
H
habilitar
forzado 18-2
Herramienta de protección de origen RSLogix 5000 24-1
hoja
añadir 7-16
conectar 7-23
diagrama de bloques de función 7-2
I
ICON
añadir 7-23
introducir 7-16
selección 7-3
IF...THEN 6-13
indicador "assume data available" 7-8, 7-10, 7-19
indicador LED
forzado 18-4
Publicación 1756-PM001E-ES-P - Agosto 2002
índice
v
inhabilitar
forzado 18-3, 18-13
instrucción EOT 4-25
instrucción SFP 4-45
instrucción SFR 4-41, 4-43, 4-45
introducir
acción 5-16
bifurcación de selección 5-6
bifurcación simultánea 5-5
Caracteres ASCII 16-21
diagrama de funciones secuenciales 5-3
dirección 8-10
elemento de bloque de función 7-16
ICON 7-23
lógica de escalera 8-9
OCON 7-23
IREF
enclavamiento de datos 7-5
introducir 7-16
para asignar un valor inmediato 7-22
selección 7-3
L
lazo de retroalimentación
diagrama de bloques de función 7-8
lazo no resuelto
diagrama de bloques de función 7-8
lectura
Caracteres ASCII 16-9
lenguaje de programación
cumplimiento de la norma IEC61131-3 B-3
seleccionar 2-5
lógica de escalera
anular un valor 18-1
aplicaciones para 2-5
asigne un valor inmediato 8-12
bifurcación 8-2
condición de renglón 8-4
desarrollo 8-5
forzar un valor 18-1
introducir 8-9
organice las instrucciones de entrada 8-6
organice las instrucciones de salida 8-7
M
manipular cadena 17-1
marcar como booleana 5-19
matriz
crear 3-10
organizar 3-1
memoria 9-6
memoria no volátil
almacenar un proyecto 23-5
borrar 23-12
cargar opciones de imagen 23-5
cargar un proyecto 23-9
controladores compatibles 23-3
descripción general 23-1
Tarjeta 1784-CF64 Industrial CompactFlash 23-4
Verificar una carga 23-11
mensaje
a múltiples controladores 14-13
a un solo controlador 14-11
descodificar cadena 17-14
modo
controlador 13-5
modo marcha 13-5
modo programa 13-5
modo prueba 13-5
monitorear forzados 18-4
N
nombre
nombre de tag 7-4, 8-7
número de ranura 1-3
O
OCON
añadir 7-23
introducir 7-16
selección 7-3
opción "step through"
bifurcación simultánea 18-9
transición 18-9
opción programmatic reset 4-32
operadores
orden de ejecución
texto estructurado 6-10
operadores aritméticos
texto estructurado 6-5
operadores de bit
texto estructurado 6-10
operadores de relación
texto estructurado 6-7
operadores lógicos
texto estructurado 6-9
operadores matemáticos
texto estructurado 6-5
orden de ejecución
diagrama de bloques de función 7-5
expresión de texto estructurado 6-10
OREF
introducir 7-16
selección 7-3
Publicación 1756-PM001E-ES-P - Agosto 2002
vi
índice
organizar
cadenas 16-8
estructura 3-1
matriz 3-1
tag 3-1
P
paro
diagrama de funciones secuenciales 4-40
Tipo de datos 4-42
paso
alarma 4-26
añadir una acción 5-16
asignar tiempo preseleccionado 5-11
bifurcación de selección 4-14
bifurcación simultánea 4-15
cambiar el nombre 5-11
configurar 5-11
configurar alarma 5-12
definir 4-6
organizar en diagrama de funciones secuenciales 4-11
secuencia 4-13
temporizador 4-26
tipo de datos 4-8
peso
convertir 17-12
PLC-5C
compartir datos 14-6, 14-7, 14-9
poner en pausa un SFC 4-45
post-escán
diagrama de funciones secuenciales 4-29
texto estructurado 6-3
preescán
borrar un fallo mayor 19-6
prioridad
bifurcación de selección 5-8
tarea periódica 2-3
producir
arreglo grande 15-1
tag 14-1
tags para PLC-5C 14-6, 14-7
programa
acción 4-17, 5-19
acción booleana 4-18
crear 2-10
portabilidad B-4
rutina principal 2-12
programar
transición 5-14
protección de origen de rutina 24-1
proteger
proyecto 24-1, 24-12
rutina 24-1
protocolo de usuario
configurar para ASCII 16-5
proyecto
almacenar en la memoria no volátil 23-5
carga 13-6
carga desde la memoria no volátil 23-9
cargar desde la memoria no volátil 23-5
descarga 13-3
memoria no volátil 23-1
proteger 24-1, 24-12
restringir acceso 24-12
verificar 2-12
prueba de una rutina de fallo 19-10
R
reiniciar
diagrama de funciones secuenciales 4-41
REPEAT…UNTIL 6-23
restablecer
acción 4-37
SFC 4-41
restablecer un SFC 4-43, 4-45
retardo de escán
diagrama de bloques de función 7-10
RSLinx
configurar 13-1
rutina
abrir 2-8
anidar dentro de un diagrama de funciones secuenciales
4-43
como transición 4-25
configurar como rutina principal 2-12
crear 2-11
proteger 24-1
restringir acceso 24-1
verificar 5-29, 7-24, 8-12
rutina principal
usar el diagrama de funciones secuenciales 4-6
S
salto
diagrama de funciones secuenciales 4-16
seguridad
proteger un proyecto 24-12
proteger una rutina 24-1
símbolo
crear 10-1
sistema operativo B-2
software RSI Security Server 24-12
software Security Server 24-12
string
manipular 17-1
Publicación 1756-PM001E-ES-P - Agosto 2002
índice
vii
suspender
controlador 20-1
T
tabla de datos 3-1
tablas sobre cumplimiento B-5
tag
asignar 8-10
diagrama de bloques de función 7-20
cadena 16-8
compartir con PLC-5C 14-6, 14-7, 14-9
crear 3-10, 8-10
crear alias 10-2
crear usando Excel 3-11
forzado 18-6, 18-8
introducir 8-10
organización para mensajes 14-11
organizar 3-1
producir arreglo grande 15-1
producir y consumir 14-1
selección del nombre 7-4
seleccione el nombre 8-7
tamaño de chasis 1-3
tarea
definir 2-4, 4-5
tarea periódica
aplicación para 2-6, 4-5
crear 2-9
Tarjeta 1784-CF64 Industrial CompactFlash 23-4
texto estructurado
aplicaciones para 2-5
asignación 6-2
asignación no retentiva 6-3
asigne un carácter ASCII 6-4
CASE 6-16
comentarios 5-23, 6-26
componentes 6-1
construcciones 6-12
en acción 5-19
evaluación de cadenas 6-8
expresión 6-4
expresión numérica 6-4
FOR…DO 6-18
forzar un valor 18-1
funciones 6-5
IF...THEN 6-13
operadores aritméticos 6-5
operadores de bit 6-10
operadores de relación 6-7
operadores lógicos 6-9
REPEAT…UNTIL 6-23
WHILE…DO 6-21
tipo de datos definido por el usuario
crear 3-8
Tipo de datos STRING
crear 16-8
transición
cambiar el nombre 5-14
definir 4-22
expresión BOOL 4-24
forzado 18-9, 18-12
instrucción EOT 4-25
llamar a una subrutina 5-15
opción "step through" 18-9
programar 5-14
seleccionar método de programación 4-24
usar una subrutina 4-25
U
último escán
diagrama de funciones secuenciales 4-29
V
valor inmediato
diagrama de bloques de función 7-22
lógica de escalera 8-12
verificar
proyecto 2-12
rutina 5-29, 7-24, 8-12
W
WHILE…DO 6-21
Publicación 1756-PM001E-ES-P - Agosto 2002
viii
índice
Publicación 1756-PM001E-ES-P - Agosto 2002
Códigos de caracteres ASCII
Carácter Dec Hex
Carácter Dec Hex
Carácter Dec Hex
Carácter Dec Hex
[ctrl-@] NUL 0 $00
& 38 $26
l 76 $4C
r 114 $72
[ctrl-A] SOH 1 $01
‘ 39 $27
M 77 $4D
S 115 $73
[ctrl-B] STX 2 $02
( 40 $28
N 78 $4E
t 116 $74
[ctrl-C] ETX 3 $03
) 41 $29
O 79 $4F
u 117 $75
[ctrl-D] EOT 4 $04
* 42 $2A
P 80 $50
v 118 $76
[ctrl-E] ENQ 5 $05
+ 43 $2B
Q 81 $51
W 119 $77
[ctrl-F] ACK 6 $06
, 44 $2C
r 82 $52
X 120 $78
[ctrl-G] BEL 7 $07
- 45 $2D
S 83 $53
y 121 $79
[ctrl-H] BS 8 $08
. 46 $2E
t 84 $54
z 122 $7A
[ctrl-I] HT 9 $09
/ 47 $2F
u 85 $55
{ 123 $7B
[ctrl-J] LF 10 $l ($0A)
0 48 $30
V 86 $56
| 124 $7C
[ctrl-K] VT 11 $0B
1 49 $31
W 87 $57
} 125 $7D
[ctrl-L] FF 12 $0C
2 50 $32
X 88 $58
~ 126 $7E
[ctrl-M] CR 13 $r ($0D)
3 51 $33
Y 89 $59
DEL 127 $7F
[ctrl-N] SO 14 $0E
4 52 $34
Z 90 $5A
[ctrl-O] SI 15 $0F
5 53 $35
[ 91 $5B
[ctrl-P] DLE 16 $10
6 54 $36
\ 92 $5C
[ctrl-Q] DC1 17 $11
7 55 $37
] 93 $5D
[ctrl-R] DC2 18 $12
8 56 $38
^ 94 $5E
[ctrl-S] DC3 19 $13
9 57 $39
_ 95 $5F
[ctrl-T] DC4 20 $14
: 58 $3A
‘ 96 $60
[ctrl-U] NAK 21 $15
; 59 $3B
a 97 $61
[ctrl-V] SYN 22 $16
< 60 $3C
B 98 $62
[ctrl-W] ETB 23 $17
= 61 $3D
c 99 $63
[ctrl-X] CAN 24 $18
> 62 $3E
d 100 $64
[ctrl-Y] EM 25 $19
? 63 $3F
e 101 $65
[ctrl-Z] SUB 26 $1A
@ 64 $40
f 102 $66
ctrl-[ ESC 27 $1B
A 65 $41
g 103 $67
[ctrl-\] FS 28 $1C
B 66 $42
H 104 $68
ctrl-] GS 29 $1D
c 67 $43
i 105 $69
[ctrl-^] RS 30 $1E
d 68 $44
j 106 $6A
[ctrl-_] US 31 $1F
e 69 $45
k 107 $6B
ESPACIO 32 $20
f 70 $46
l 108 $6C
! 33 $21
G 71 $47
M 109 $6D
“ 34 $22
H 72 $48
N 110 $6E
# 35 $23
i 73 $49
O 111 $6F
$ 36 $24
J 74 $4A
P 112 $70
% 37 $25
K 75 $4B
q 113 $71
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:
Teléfono
Estados
Unidos/Canadá
Fuera de Estados
Unidos/Canadá
1.440.646.5800
Puede obtener el número telefónico para su país
mediante la Internet:
1. Vaya a http://www.ab.com
2. Haga clic en Product Support
(http://support.automation.rockwell.com)
3. Bajo Support Centers, haga clic en Contact
Information
Internet ⇒ 1. Vaya a http://www.ab.com
2. Haga clic en Product Support
(http://support.automation.rockwell.com)
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.
Publicación 1756-PM001E-ES-P - Agosto 2002 1 PN 957678-92
Sustituye a la publicación 1756-PM001D-ES-P - Noviembre 2001
© 2002 Rockwell Automation. Todos los derechos reservados. Impreso en EE.UU.