08.04.2021 Views

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?

¿Efectuado x

número de veces?

no

no

comando 1

comando 2

comando 3

comando 4

resto de la rutina

comando 1

comando 2

comando 3

comando 4

¿ Salir ?

no

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

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 ?

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:

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?

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:

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

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

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

¿Usar estas computadoras para

proteger otras rutinas?

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í

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

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:

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:

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:

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.

¿Contiene un programa el

Administrador de

inicialización?

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.

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:

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:

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

El controlador

registra un fallo

mayor en el programa

MajorFaultRecord

actual

¿Existe una rutina

de fallo del

programa?

No

Ejecute la rutina de

fallo

del programa

actual

¿Se borró el fallo?

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

ejecute el

administrador de

fallos del

controlador

¿Se borró el fallo?

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:

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!