Manual de programación Mensajes de controladores Logix5000 Números de catálogo 1756-L1, 1756-L55, 1756-L61, 1756-L62, 1756-L63, 1769-L31, 1769-L32C, 1769-L32E, 1769-L35CR, 1769-L35E, 1789-L60, 1794-L34, PowerFlex 700S/SE
Manual de programación
Mensajes de controladores Logix5000Números de catálogo 1756-L1, 1756-L55, 1756-L61, 1756-L62, 1756-L63, 1769-L31, 1769-L32C, 1769-L32E, 1769-L35CR, 1769-L35E, 1789-L60, 1794-L34, PowerFlex 700S/SE
Información importante para el usuarioLas características de funcionamiento de los equipos de estado sólido son diferentes de las de los equipos electromecánicos. El documento Safety Guidelines for the Application, Installation and Maintenance of Solid State Controls (publicación SGI-1.1 disponible en la oficina local de ventas de Rockwell Automation o en línea en http://www.rockwellautomation.com/literature/) describe algunas diferencias importantes entre los equipos de estado sólido y los dispositivos electromecánicos cableados. Debido a esta diferencia, y también a la gran diversidad de usos de los equipos de estado sólido, todas las personas responsables de aplicar este equipo deben asegurarse de la idoneidad de cada una de las aplicaciones concebidas para estos equipos.
En ningún caso Rockwell Automation, Inc. será responsable ni asumirá ninguna obligación por daños indirectos o consecuentes que resulten del uso o la aplicación de estos equipos.
Los ejemplos y diagramas de este manual se incluyen únicamente con fines ilustrativos. Debido a las numerosas variables y requisitos propios de cualquier instalación específica, Rockwell Automation, Inc. no puede asumir responsabilidad ni obligación alguna por el uso real basado en dichos ejemplos y diagramas.
Rockwell Automation, Inc. no asume ninguna obligación de patente con respecto al uso de la información, los circuitos, los equipos o el software descritos en este manual.
Se prohíbe la reproducción total o parcial del contenido de este manual sin la autorización escrita de Rockwell Automation, Inc.
Este manual contiene notas de seguridad en cada circunstancia en que se estimen necesarias.
Allen-Bradley, Rockwell Automation, Logix5000, RSLogix 5000, ControlLogix, GuardLogix, CompactLogix, PowerFlex, SoftLogix, Rockwell Software, PLC-2, PLC-3, PLC-5, SLC, SLC 500 y TechConnect son marcas comerciales de Rockwell Automation, Inc.
Las marcas comerciales no pertenecientes a Rockwell Automation son propiedad de sus respectivas empresas.
ADVERTENCIA: Identifica información sobre prácticas o circunstancias que pueden provocar una explosión en un ambiente peligroso, lo que 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 provocar lesiones personales o la muerte, daños materiales o pérdidas económicas. Los mensajes de Atención le ayudan a identificar y evitar un peligro, y a reconocer las consecuencias.
PELIGRO DE CHOQUE: Puede haber etiquetas en el exterior o en el interior del equipo (por ejemplo, en un variador o motor) para advertir sobre la posible presencia de un voltaje peligroso.
PELIGRO DE QUEMADURA: Puede haber etiquetas en el exterior o en el interior del equipo (por ejemplo, en un variador o motor) para advertir sobre superficies que podrían estar a temperaturas peligrosas.
IMPORTANTE Identifica información importante para la correcta aplicación y comprensión del producto.
Resumen de cambios
Este manual contiene información nueva y actualizada. Los cambios incorporados en esta revisión se marcan con barras de cambio, tal como se muestra a la derecha de este párrafo.
Información nueva y actualizada Esta tabla contiene los cambios hechos en esta revisión.
Tema Página
Se añadió información sobre el cuadro de verificación Large Connection en el segundo pie de página bajo la tabla.
11
Se añadió un nuevo renglón a la tabla que describe “Si las instrucciones MSG son para” – El nuevo renglón comienza con “El mismo dispositivo y almacenado en caché y conexión grande”.
12
Se añadió información al ejemplo dado para compartir una conexión. 12
Se cambió el Destination to Destination Element para reflejar cambios en el UI. 14
Se actualizaron las instrucciones sobre cómo establecer la ruta a un controlador remoto.
27
Se actualizó la imagen de pantalla para reflejar cambios en el UI. 29
Se cambió el Destination Tag a Destination Element y Source Tag a Source Element para reflejar los cambios en el UI.
29
Publicación de Rockwell Automation 1756-PM012D-ES-P – Noviembre 2011 3
Resumen de cambios
Notas:
4 Publicación de Rockwell Automation 1756-PM012D-ES-P – Noviembre 2011
Tabla de contenido
Prefacio Propósito de este manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Recursos adicionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Capítulo 1Mensajes de controlador Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Tipos de datos compatibles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9Cola de mensajes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10Lista de caché . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Búferes no conectados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12Pautas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Cómo obtener o ajustar el número de búferes no conectados . . . . . . . . . 13
Cómo obtener el número de búferes no conectados . . . . . . . . . . . . . . 14Cómo ajustar el número de búferes no conectados . . . . . . . . . . . . . . . 14
Cómo convertir entre INT y DINT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Capítulo 2Cómo administrar múltiples mensajes
Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19Lógica del administrador de mensajes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Inicialización de la lógica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20Reinicio de la secuencia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20Envío del primer grupo de mensajes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20Habilitación del segundo grupo de MSG. . . . . . . . . . . . . . . . . . . . . . . . 21Envío del segundo grupo de MSG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21Habilitación del siguiente grupo de MSG . . . . . . . . . . . . . . . . . . . . . . . 21Envío del siguiente grupo de mensajes . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Capítulo 3Cómo enviar un mensaje a múltiples controladores
Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23Cómo efectuar la configuración de E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24Cómo definir sus elementos de origen y destino . . . . . . . . . . . . . . . . . . . . . 24Cómo crear el tipo de datos MESSAGE_ CONFIGURATION . . . . . 25Cómo crear la matriz de configuración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26Cómo obtener el tamaño de la matriz local . . . . . . . . . . . . . . . . . . . . . . . . . 28Cargue las propiedades de mensaje de un controlador. . . . . . . . . . . . . . . . 29Cómo configurar el mensaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Paso hasta el siguiente controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Cómo reiniciar la secuencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Índice
Publicación de Rockwell Automation 1756-PM012D-ES-P – Noviembre 2011 5
Tabla de contenido
Notas:
6 Publicación de Rockwell Automation 1756-PM012D-ES-P – Noviembre 2011
Prefacio
Propósito de este manual Este manual muestra cómo programar instrucciones de mensaje (MSG) hacia y desde los controladores Logix5000. Este manual forma parte de un conjunto de manuales relacionados que describen los procedimientos comunes de programación y operación de los controladores Logix5000.
Para obtener una lista completa de los manuales de procedimientos comunes, consulte el documento Logix5000 Controllers Common Procedures Programming Manual, publicación 1756-PM001.
El término controlador Logix5000 se refiere a cualquier controlador basado en el sistema operativo Logix5000 como, por ejemplo:
• Controladores CompactLogix.• Controladores ControlLogix.• Controladores DriveLogix.• Controladores FlexLogix.• Controladores SoftLogix5800.
Recursos adicionales Los documentos que se indican a continuación incluyen información adicional sobre productos de Rockwell Automation relacionados.
Puede ver o descargar publicaciones en http://www.rockwellautomation.com/literature/. Para solicitar copias impresas de la documentación técnica, comuníquese con su distribuidor regional de Allen-Bradley o con el o representante de ventas de Rockwell Automation.
Recurso Descripción
Pautas de cableado y conexión a tierra de equipos de automatización industria, publicación 1770-4.1
Proporciona las pautas generales para instalar un sistema industrial de Rockwell Automation.
Sitio web de certificaciones de productos, http://www.ab.com Proporciona las declaraciones de conformidad, certificados y otros detalles de certificación.
Publicación de Rockwell Automation 1756-PM012D-ES-P – Noviembre 2011 7
Prefacio
Notas:
8 Publicación de Rockwell Automation 1756-PM012D-ES-P – Noviembre 2011
Capítulo 1
Mensajes de controlador
Introducción Esta sección describe cómo transferir datos entre controladores (enviar o recibir datos) ejecutando una instrucción de mensaje (MSG). Se explican las conexiones de caché y los búferes a fin de que pueda programar correctamente el controlador.
Tipos de datos compatibles
Se aceptan los siguientes tipos de datos al enviar mensajes CIP:• SINT• INT• DINT• LINT• REAL
Además, para enviar un mensaje puede usarse cualquier tipo de estructura predefinida, definida por el módulo o definida por el usuario.
Vea la página 16 para obtener más información sobre los INT y DINT.
Para obtener detalles completos sobre cómo programar una instrucción de mensaje, consulte el documento Logix5000 Controllers General Instruction Reference Manual, publicación 1756-RM003.
EJEMPLO Ejecución de una instrucción de mensaje (instrucción MSG)
Si count_send = 1 y count_msg.EN = 0 (la instrucción MSG no está habilitada todavía), entonces ejecute una instrucción MSG que envíe datos a otro controlador.
count_send
/count_msg.en
ENDNER
Tipo – No configuradoMensaje Controlcount_msg ...
MSG
Publicación de Rockwell Automation 1756-PM012D-ES-P – Noviembre 2011 9
Capítulo 1 Mensajes de controlador
Este diagrama muestra cómo el controlador procesa las instrucciones MSG.
Cola de mensajes La cola de mensajes puede contener hasta 48 instrucciones MSG, incluyendo las que usted configure como lectura de transferencia en bloques o escritura de transferencia en bloques. Cuando la cola esté llena, una instrucción intentará entrar en ella cada vez que se escanee la instrucción, tal como muestra el siguiente esquema:
Descripción
El controlador escanea la instrucción MSG y su condición de entrada del renglón pasa a ser “verdadero”. El mensaje pasará a un regulador, el cual tiene 16 posiciones. Si el regulador está lleno, el mensaje permanecerá habilitado, pero se mantendrá hasta otro escán de controlador.
El segmento de tiempo de procesamiento interno del sistema se ejecuta y el mensaje pasa del regulador a la cola de mensajes.
Si la instrucción MSG Entonces la instrucción MSG
No utiliza una conexión o la conexión no fue previamente almacenada en caché.Utiliza una conexión y la conexión está almacenada en caché
Utiliza un búfer no conectado para establecer comunicación con el dispositivo de destino. No utiliza un búfer no conectado.
Se establece comunicación con el dispositivo de destino.
Cola de mensajes
Sí
Búferes de salidas no conectados (10 a 40)
No
Dispositivo de destino
¿Almacenado en caché?
48 en total
1 2
4
3
Lista de caché
MSGRegulador
16
1
2
3
4
Condición de entrada del renglón
falso verdadero falso
bit .EN desactivado activado
bit .EW desactivado activado
1 2 3 4
10 Publicación de Rockwell Automation 1756-PM012D-ES-P – Noviembre 2011
Mensajes de controlador Capítulo 1
Lista de caché Dependiendo de cómo configure una instrucción MSG, puede que ésta utilice una conexión para enviar o recibir datos.
Si una instrucción MSG utiliza una conexión, usted puede escoger entre dejar la conexión abierta (caché) o cerrar la conexión cuando el mensaje se termina de transmitir.
Descripción
El controlador escanea la instrucción MSG.La condición de entrada del renglón de la instrucción MSG es “verdadero”.El bit EN está establecido.La instrucción MSG intenta entrar en la cola pero hay 16 posiciones de regulador. Si las 16 están llenas y se ejecuta un 17° mensaje, el mensaje se habilita, pero … …el bit EW permanece borrado.
& El controlador escanea la instrucción MSG.La condición de entrada del renglón de la instrucción MSG es “falso”.El bit EN permanece establecido.La instrucción MSG intenta pasar a través del regulador, pero todavía no hay posiciones abiertas. El bit EW permanece borrado.
El controlador escanea la instrucción MSG.La instrucción MSG intenta entrar en la cola. Esta vez la posición del regulador está abierta y el mensaje puede pasar a la cola de mensajes. El bit EW está establecido.
1
2 3
4
Este tipo de mensaje Y este método de comunicación Utiliza una conexión
Tabla de datos CIP de lectura o escritura Su opción (1)
PLC-2, PLC-3, PLC-5 o SLC (todos los tipos) CIPCIP con ID de origen
No
DH+ Sí
CIP genérico Su opción (2)
Lectura o escritura de transferencia en bloques Sí
(1) Los mensajes de lectura o escritura de la tabla de datos CIP pueden ser conectados o desconectados. Pero para la mayoría de las aplicaciones, recomendamos que deje conectados los mensajes de lectura o escritura de la tabla de datos CIP.
(2) Los mensajes genéricos CIP pueden estar conectados o desconectados. Pero para la mayoría de aplicaciones recomendamos dejar los mensajes genéricos CIP no conectados, a menos que desee usar la opción Large Connection.
Si usted Entonces
Almacena en caché la conexión La conexión permanecerá abierta después de que la instrucción MSG haya terminado. Esto optimiza el tiempo de ejecución. Abrir una conexión cada vez que se ejecuta el mensaje supone prolongar el tiempo de ejecución.
No almacena en caché la conexión
La conexión se cerrará después de que la instrucción MSG haya terminado. De ese modo, la conexión quedará libre para otros usuarios.
Publicación de Rockwell Automation 1756-PM012D-ES-P – Noviembre 2011 11
Capítulo 1 Mensajes de controlador
El controlador tiene estos límites en cuanto al número de conexiones que usted puede almacenar en caché:
Si varios mensajes van a un mismo dispositivo, estos mensajes pueden compartir una conexión.
Búferes no conectados Para establecer una conexión o procesar mensajes no conectados, el controlador utiliza un búfer no conectado.
Si una instrucción MSG utiliza una conexión, entonces emplea un búfer no conectado cuando se ejecuta por primera vez para establecer una conexión. Si usted configura la instrucción de forma que la conexión se almacene en caché, una vez establecida la conexión la instrucción ya no precisará un búfer no conectado.
Si usted tiene esta revisión de software y firmware
Entonces puede almacenar en caché
11.x o anterior • Mensajes de transferencia en bloques para un máximo de hasta 16 conexiones
• Otros tipos de mensajes para un máximo de hasta 16 conexiones
12.x o posterior Hasta 32 conexiones
Si las instrucciones MSG son para Y Entonces
Dispositivos diferentes Cada instrucción MSG utiliza 1 conexión.
El mismo dispositivo y almacenado en caché y sin conexión grande
Son habilitados al mismo tiempo (el mismo escán) Cada instrucción MSG utiliza 1 conexión y un búfer en caché.
No son habilitadas al mismo tiempo Todas las instrucciones MSG utilizan 1 conexión y un búfer en caché. Comparten la conexión y el búfer.
El mismo dispositivo y almacenado en caché y conexión grande
Son habilitados al mismo tiempo (el mismo escán) Cada instrucción MSG utiliza 1 conexión y un búfer en caché.
No son habilitadas al mismo tiempo Todas las instrucciones MSG utilizan 1 conexión y un búfer en caché. Comparten la conexión y el búfer.
EJEMPLO Compartir una conexión.
• Si el controlador alterna entre enviar un mensaje de lectura de transferencia en bloques y un mensaje de escritura de transferencia en bloques al mismo módulo, entonces los dos mensajes juntos cuentan como una conexión. Al almacenar en caché los dos mensajes, éstos cuentan como uno en el búfer de caché.
• Si el controlador envía 10 mensajes conectados en caché al mismo módulo puente (por ej., 1756-EN2T) donde 7 utilizan una conexión estándar (la opción Large Connection desmarcada) y 3 utilizan una conexión grande, entonces los 7 mensajes de conexión estándar utilizan una conexión en caché. Los 3 mensajes de conexión grande utilizan otra conexión en caché. En total, los 10 mensajes utilizan 2 conexiones separadas en caché.
Término Definición
Búfer no conectado Asignación de memoria que el controlador utiliza para procesar comunicaciones no conectadas. El controlador establece una comunicación no conectada cuando:• Establece una conexión con un dispositivo, incluido un módulo de E/S.• Ejecuta una instrucción MSG que no utiliza una conexión.
El controlador puede tener entre 10…40 búferes no conectados.• El número predeterminado es 10.• Para aumentar el número de búferes no conectados, ejecute una instrucción MSG que reconfigure el número de
búferes no conectados.• Cada búfer no conectado utiliza 1.2 KB de memoria.• Si todos los búferes no conectados están siendo utilizados en el momento en que una instrucción abandona la cola
de mensajes, dicha instrucción generará un error y los datos no serán transferidos.
12 Publicación de Rockwell Automation 1756-PM012D-ES-P – Noviembre 2011
Mensajes de controlador Capítulo 1
Pautas A la hora de planificar y programar sus instrucciones MSG, aplique las siguientes pautas:
Cómo obtener o ajustar el número de búferes no conectados
Para averiguar o cambiar el número de búferes no conectados, utilice una instrucción MSG.
• El rango de búferes no conectados es 10…40. • El número predeterminado es 10.• Cada búfer no conectado utiliza 1.1 KB de memoria.
Pauta Detalles
1. Para cada instrucción MSG, cree un tag de control. Cada instrucción MSG necesita su propio tag de control.• Tipo de datos = MENSAJE• Alcance = controlador• El tag no puede formar parte de una matriz ni pertenecer a un tipo de datos definido por el usuario.
2. Mantenga los datos de origen y/o destino dentro del alcance del controlador.
Una instrucción MSG solamente puede acceder a aquellos tags que estén en la carpeta Controller Tags (alcance del controlador).
3. Si su mensaje es para un dispositivo que utiliza enteros de 16 bits, utilice un búfer de INT en el mensaje y DINT en todo el proyecto.
Si su mensaje es para un dispositivo que utiliza enteros de 16 bits, por ejemplo un controlador PLC-5 o un SLC 500, y transfiere enteros (y no reales), utilice un búfer de INT en el mensaje y DINT en todo el proyecto.Esto incrementará la eficiencia de su proyecto, ya que los controladores Logix5000 son más eficientes y utilizan menos memoria cuando operan con enteros de 32 bits (DINT).Vea la página 16.
4. Almacene en caché los mensajes conectados que se ejecuten con más frecuencia.
Almacene en caché la conexión de aquellas instrucciones MSG que se ejecuten con más frecuencia (hasta alcanzar el número máximo de instrucciones que le permita la revisión de su controlador). Esto optimizará el tiempo de ejecución, ya que el controlador no tendrá una conexión abierta cada vez que el mensaje se ejecute.
5. Si desea habilitar más de 16 mensajes a la vez, utilice alguna estrategia de administración.
Si usted habilita más de 16 mensajes a la vez, algunas instrucciones MSG pueden sufrir retrasos a la hora de entrar en la cola. Para garantizar la ejecución de cada mensaje, escoja una de las siguientes opciones:• Habilite cada mensaje en secuencia.• Habilite los mensajes en grupos.• Programe un mensaje para que se comunique con múltiples dispositivos.• Programe la lógica para que coordine la ejecución de los mensajes.
6. Mantenga un número de mensajes no conectados y no almacenados en caché inferior al número de búferes no conectados.
El controlador puede tener entre 10… 40 búferes no conectados. El número predeterminado es 10.• Si todos los búferes no conectados están siendo utilizados cuando una instrucción abandona la cola de mensajes,
dicha instrucción generará un error y no transferirá los datos.• Usted puede aumentar el número de búferes no conectados (40 como máximo), pero debe continuar siguiendo
la pauta 5.• Para aumentar el número de búferes no conectados, vea la página 13.
Publicación de Rockwell Automation 1756-PM012D-ES-P – Noviembre 2011 13
Capítulo 1 Mensajes de controlador
Cómo obtener el número de búferes no conectados
Para averiguar el número de búferes no conectados que el controlador tiene disponibles en este momento, configure una instrucción de mensaje (MSG) de la siguiente manera:
Cómo ajustar el número de búferes no conectados
Como valor de partida, ajuste un número de búferes no conectados igual al número de mensajes no conectados y no almacenados en caché habilitados a la vez y súmele aproximadamente 5 búferes. Estos 5 búferes adicionales sirven como reserva en caso de que usted calcule mal el número de mensajes habilitados a la vez.
En esta ficha Para este ítem Escriba o seleccione
Configuration Message Type CIP Generic
Service Type Custom
Service Code 3
Class 304
Instance 1
Attribute 0
Source Element source_array siendo el tipo de datos = SINT[4]
En este elemento Introduzca
source_array[0] 1
source_array[1] 0
source_array[2] 17
source_array[3] 0
Source Length (bytes) 4 (escriba 4 SINT)
Destination Element destination_array siendo el tipo de datos = SINT[10] (deje todos los valores = 0)
destination_array[6] = número actual de búferes no conectados
Comunicación Path 1, slot_number_of_controller
14 Publicación de Rockwell Automation 1756-PM012D-ES-P – Noviembre 2011
Mensajes de controlador Capítulo 1
Para cambiar el número de búferes del controlador no conectados, configure una instrucción de mensaje (MSG) de la siguiente manera:
En esta ficha Para este ítem Escriba o seleccione
Configuration Tipo de mensaje CIP Generic
Service Type Custom
Service Code 4
Class 304
Instance 1
Attribute 0
Source Element source_array donde el tipo de datos = SINT[8]
En este elemento Introduzca
source_array[0] 1
source_array[1] 0
source_array[2] 17
source_array[3] 0
source_array[4] Número de búferes no conectados que usted desea.
source_array[5] 0
source_array[6] 0
source_array[7] 0
Source Length (bytes) 8 (escriba 8 SINT)
Destination Element destination_array donde el tipo de datos = SINT[6] (deje todos los valores = 0)
Comunication Path 1, slot_number_of_controller
Publicación de Rockwell Automation 1756-PM012D-ES-P – Noviembre 2011 15
Capítulo 1 Mensajes de controlador
Cómo convertir entre INT y DINT
En el controlador Logix5000, utilice siempre que pueda el tipo de datos DINT para los números enteros. Los controladores Logix5000 son más eficientes y utilizan menos memoria cuando operan con enteros de 32 bits (DINT).
Si su mensaje es para un dispositivo que utiliza enteros de 16 bits, por ejemplo un controlador PLC-5 o un SLC 500, y transfiere enteros (y no reales), utilice un
EJEMPLO Cómo ajustar el número de búferes no conectados
Si S:FS = 1 (primer escán), ajuste el número de búferes no conectados del controlador.
Source_Array[0] = 1
Source_Array[1] = 0
Source_Array[2] = 17
Source_Array[3] = 0
Source_Array[4] = 12 (El número de búferes no conectados que usted desee. En este ejemplo, el número deseado son 12 búferes.)
Si UCB_Set.EN = 0 (la instrucción MSG no está habilitada todavía), entonces
La instrucción MSG establece el número de búferes no conectados = Source_Array[4].
Nombre del tag Tipo Descripción
UCB_Set MESSAGE Tag de control de la instrucción MSG.
Source_Array SINT[8] Valores de origen de la instrucción MSG, incluyendo el número de búferes no conectados que usted desee.
16 Publicación de Rockwell Automation 1756-PM012D-ES-P – Noviembre 2011
Mensajes de controlador Capítulo 1
búfer de INT en el mensaje y DINT en todo el proyecto. De ese modo, incrementará la eficiencia de su proyecto.
1. La instrucción de mensaje (instrucción MSG) lee enteros de 16 bits (INT) en el dispositivo y los almacena en una matriz temporal de INT.
2. Una instrucción de aritmética y lógica de archivos (instrucción FAL) convierte los INT en DINT para que puedan ser utilizados por otras instrucciones de su proyecto.
1. Una instrucción FAL convierte los DINT del controlador Logix5000 en INT.
2. La instrucción MSG escribe en el dispositivo los INT procedentes de la matriz temporal.
Lectura de enteros de 16 bits Datos del dispositivo
Búfer de INT DINT para utilizar en el proyecto
Palabra 1 INT_Buffer[0] DINT_Array[0]
Palabra 2 INT_Buffer[1] DINT_Array[1]
Palabra 3 INT_Buffer[2] DINT_Array[2]
1 2
Escritura de enteros de 16 bits DINT del proyecto Búfer de INT Datos para el dispositivo
DINT_Array[0] INT_Buffer[0] Palabra 1
DINT_Array[1] INT_Buffer[1] Palabra 2
DINT_Array[2] INT_Buffer[2] Palabra 3
1 2
EJEMPLO Lectura de valores enteros desde un controlador PLC-5
Si Condition_1 = 1 y Msg_1.EN = 0 (la instrucción MSG no está habilitada todavía), entonces
Lea 3 enteros desde el controlador PLC-5 y almacénelos en INT_Buffer (3 INT).
Si Msg_1.DN =1 (la instrucción MSG ha leído los datos), entonces:
Devuelva la instrucción FAL a su configuración original.
Publicación de Rockwell Automation 1756-PM012D-ES-P – Noviembre 2011 17
Capítulo 1 Mensajes de controlador
La instrucción FAL establece DINT_Array = INT_Buffer. Esto convierte los valores en enteros de 32 bits (DINT).
EJEMPLO Escritura de valores enteros en un controlador PLC-5.
Si Condition_2 = 1, entonces
Devuelva la instrucción FAL a su configuración original.
La instrucción FAL establece INT_Buffer = DINT_Array. Esto convierte los valores en enteros de 16 bits (INT).
Si Control_2.DN = 1 (la instrucción FAL ha convertido los DINT en INT)
y Msg_2.EN = 0 (la instrucción MSG no está habilitada todavía), entonces
escriba los enteros en INT_Buffer (3 INT) para el controlador PLC-5.
18 Publicación de Rockwell Automation 1756-PM012D-ES-P – Noviembre 2011
Capítulo 2
Cómo administrar múltiples mensajes
Introducción Usted puede utilizar la lógica de escalera para enviar grupos de instrucciones de mensaje (instrucciones MSG) en secuencia.
• Para poder ser procesada, cada instrucción MSG debe entrar en la cola de mensajes.
• La cola puede contener hasta 48 mensajes.• Si más de 16 instrucciones MSG están habilitadas simultáneamente el
regulador de mensajes evitará que algunos de los mensajes se coloquen en la cola de mensajes.
• Si eso sucede, antes de que el controlador pueda procesar el mensaje, éste deberá esperar a que haya espacio en la cola. En cada escán subsiguiente del mensaje, el controlador examinará la cola para ver si hay espacio.
La lógica del administrador de mensajes le permite controlar el número de mensajes que se habilitan cada vez y habilitar los mensajes subsiguientes conforme a una secuencia. De este modo, los mensajes entran y salen de la cola ordenadamente y no tienen que esperar a que haya espacio en ella.
Lógica del administrador de mensajes
La lógica del administrador de mensajes envía tres grupos de mensajes.• Para que el ejemplo indicado en esta sección sea más fácil de entender, cada
grupo contiene solamente dos mensajes.• En su proyecto, utilice más mensajes en cada grupo, por ejemplo cinco.• Utilice tantos grupos como sea necesario para incluir todos sus mensajes.
El tag Msg_Group controla la habilitación de cada mensaje.• Este tag utiliza el tipo de datos DINT.• Cada bit del tag corresponde a un grupo de mensajes.• Por ejemplo, Msg_Group.0 habilita e inhabilita el primer grupo de
mensajes (grupo 0).
Inicialización de la lógica
Si S:FS = 1 (primer escán), entonces inicialice los mensajes:
Msg_Group = 0, que inhabilita todos los mensajes.Msg_Group.0 =1, que habilita el primer grupo de mensajes.
Publicación de Rockwell Automation 1756-PM012D-ES-P – Noviembre 2011 19
Capítulo 2 Cómo administrar múltiples mensajes
Reinicio de la secuencia
Envío del primer grupo de mensajes
Habilitación del segundo grupo de MSG
Si los mensajes del grupo 2 (último grupo) se encuentran actualmente habilitados (Msg_Group.2 = 1)Y Msg_4 ha terminado o ha generado un errorY Msg_5 ha terminado o ha generado un errorEntonces reinicie la secuencia de mensajes con el primer grupo:
Msg_Group.2 = 0. Esto inhabilita el último grupo de mensajes.Msg_Group.0 = 1. Esto habilita el primer grupo de mensajes.
Si Msg_Group.0 pasa de 0 -> 1, entoncesEnvíe Msg_0.Envíe Msg_1.
Puesto que una instrucción MSG es una instrucción de transición, se ejecuta solamente cuando su condición de entrada del renglón cambia de falso a verdadero.
Si los mensajes del grupo 0 se encuentran actualmente habilitados (Msg_Group.0 = 1)Y Msg_0 ha terminado o ha generado un errorY Msg_1 ha terminado o ha generado un errorEntonces
Msg_Group.0 = 0. Esto inhabilita el grupo actual de mensajes.Msg_Group.1 = 1. Esto habilita el siguiente grupo de mensajes.
20 Publicación de Rockwell Automation 1756-PM012D-ES-P – Noviembre 2011
Cómo administrar múltiples mensajes Capítulo 2
Envío del segundo grupo de MSG
Habilitación del siguiente grupo de MSG
Envío del siguiente grupo de mensajes
Si Msg_Group.1 pasa de 0 -> 1, entoncesEnvíe Msg_2.Envíe Msg_3.
Si los mensajes del grupo 1 están actualmente habilitados (Msg_Group.1 = 1)Y Msg_2 ha terminado o ha generado un errorY Msg_3 ha terminado o ha generado un errorEntonces
Msg_Group.1 = 0. Esto inhabilita el grupo actual de mensajes.Msg_Group.2 = 1. Esto habilita el siguiente grupo de mensajes.
Si Msg_Group.1 pasa de 0 -> 1, entoncesEnvíe Msg_2.Envíe Msg_3.
Publicación de Rockwell Automation 1756-PM012D-ES-P – Noviembre 2011 21
Capítulo 2 Cómo administrar múltiples mensajes
22 Publicación de Rockwell Automation 1756-PM012D-ES-P – Noviembre 2011
Capítulo 3
Cómo enviar un mensaje a múltiples controladores
Introducción Usted puede programar una única instrucción de mensaje (instrucción MSG) que le permita comunicarse con múltiples controladores. Para reconfigurar una instrucción MSG durante el tiempo de ejecución, escriba nuevos valores para los miembros del tipo de datos MENSAJE.
A. Si utiliza un asterisco [*] para designar el número de elemento de la matriz, el valor de proporcionará el número de elemento.
B. El cuadro Index (índice) solamente se activa cuando usted utiliza un asterisco [*] en el cuadro Source Element o Destination Element. La instrucción sustituye el asterisco [*] por el valor de Index.
IMPORTANTE En el tipo de datos MENSAJE, el miembro RemoteElement (elemento remoto) almacena el nombre del tag o la dirección de los datos en el controlador que recibe el mensaje.
Si el mensaje Entonces el RemoteElement es el
Lee datos Source element
Escribe datos Destination element
Nombre del tag
message
message.RemoteElement.
message.RemoteIndex.
message.LocalIndex.
message.Channel.
message.Rack.
message.Group.
message.Slot.
message.Path.
43052
A B
B
Publicación de Rockwell Automation 1756-PM012D-ES-P – Noviembre 2011 23
Capítulo 3 Cómo enviar un mensaje a múltiples controladores
Usted necesita realizar lo siguiente para enviar un mensaje a múltiples controladores:
• Cómo efectuar la configuración de E/S• Cómo definir sus elementos de origen y destino• Cómo crear el tipo de datos MESSAGE_ CONFIGURATION• Cómo crear la matriz de configuración• Cómo obtener el tamaño de la matriz local• Cargue las propiedades de mensaje de un controlador• Cómo configurar el mensaje• Paso hasta el siguiente controlador• Cómo reiniciar la secuencia
Cómo efectuar la configuración de E/S
Aunque no es imprescindible, recomendamos añadir los módulos de comunicación y los controladores remotos a la configuración de E/S del controlador. Así le resultará más fácil definir la ruta de acceso a cada controlador remoto.
Por ejemplo, una vez que haya añadido el módulo de comunicación local, el módulo de comunicación remota y el controlador de destino, el hacer clic en el botón Browse le permitirá seleccionar el destino.
Cómo definir sus elementos de origen y destino
En este procedimiento, una matriz almacena los datos que se leen o se escriben en cada controlador remoto. Cada elemento de la matriz corresponde a un controlador remoto diferente.
SUGERENCIA Para copiar los componentes mencionados desde un proyecto de muestra, abra la carpeta…\RSLogix 5000\Projects\Samples.
43055
Abra este proyecto.MSG_to_Multiple_Controllers.ACD
Explorador de rutas de mensaje
Ruta: peer_controller
peer_controller
I/O Configuration
[0] 1756-CNB/x Local_CNB
2 [0] 1756-CNB/x chassis_b
[1] 1756-L55/x peer_controller
24 Publicación de Rockwell Automation 1756-PM012D-ES-P – Noviembre 2011
Cómo enviar un mensaje a múltiples controladores Capítulo 3
1. Utilice la siguiente hoja de trabajo para organizar los nombres de los tags en los controladores locales y remotos.
2. Cree el tag local_array, que almacena los datos en este controlador.
Cómo crear el tipo de datos MESSAGE_ CONFIGURATION
En este procedimiento, usted crea un tipo de datos definido por el usuario con el fin de almacenar las variables de configuración del mensaje para cada controlador.
• Algunos de los miembros requeridos del tipo de datos utilizan un tipo de datos STRING (cadena).
• El tipo de datos STRING predeterminado es capaz de almacenar 82 caracteres.
• Si sus rutas o sus nombres/direcciones de tags remotos utilizan menos de 82 caracteres, puede usted crear un nuevo tipo de cadena que almacene menos caracteres. Esto le permitirá ahorrar memoria.
• Para crear un tipo de cadena, seleccione File > New Component > String Type.
Si crea un nuevo tipo de cadena, utilícelo en lugar del tipo de datos STRING en este procedimiento.
Nombre del controlador remoto Tag o dirección de datos en el controlador remoto Tag en este controlador
local_array[0]
local_array[1]
local_array[2]
local_array[3]
Nombre del tag Tipo
local_array data_type [length ]siendo:data_type el tipo de datos que el mensaje envía o recibe, por ejemplo DINT, REAL, o STRING.length el número de elementos de la matriz local.
Publicación de Rockwell Automation 1756-PM012D-ES-P – Noviembre 2011 25
Capítulo 3 Cómo enviar un mensaje a múltiples controladores
Para almacenar las variables de configuración del mensaje correspondientes a cada controlador, cree el siguiente tipo de datos definido por el usuario.
Cómo crear la matriz de configuración
En este procedimiento, usted almacena en una matriz las propiedades de configuración de cada controlador. Antes de cada ejecución de la instrucción MSG, su lógica carga nuevas propiedades en la instrucción. Esto hace que el mensaje sea enviado a un controlador diferente.
1. Para almacenar las propiedades de configuración del mensaje, cree la siguiente matriz.
Tipo de datos: MESSAGE_CONFIGURATION
Nombre: MESSAGE_CONFIGURATION
Descripción: Propiedades de configuración de un mensaje destinado a otro controlador
Miembros
Nombre Tipo de datos Estilo Descripción
Path STRING
RemoteElement STRING
Cree un nuevo tipo de datos
Controller Your_Project
Tasks
Motion Groups
Trends
Data Types
User-Defined
Haga clic con el botón derecho del mouse y seleccione New Data Type (nuevo tipo de datos).
Propiedades del mensaje
message
message.Path.
message.RemoteElement.
Matriz de configuración
message_config
message_config[0]
message_config[0].Path
message_config[0].RemoteElement
message_config[1]
message_config[1].Path
message_config[1].RemoteElement
Primera ejecución de mensaje
Siguiente ejecución de mensaje
Propiedades del mensaje
message
message.Path.
message.RemoteElement.
Nombre del tag Tipo Ámbito
message_config MESSAGE_CONFIGURATION[number](1)
(1) Number indica el número de controladores a los que se envía el mensaje
cualquiera
26 Publicación de Rockwell Automation 1756-PM012D-ES-P – Noviembre 2011
Cómo enviar un mensaje a múltiples controladores Capítulo 3
2. Introduzca en la matriz message_config la ruta de acceso al primer controlador que recibe el mensaje.
A. Escriba la ruta de acceso al controlador remoto.
o
B. Haga clic en el botón Browse y desplácese hasta el controlador remoto.
3. En la matriz message_config, introduzca el nombre del tag o la dirección de los datos en el primer controlador que recibe el mensaje.
Nombre del tag Valor
message_config {…}
message_config[0] {…} Haga clic con el botón derecho del mouse y seleccione Go To > Configure. message_config[0].Path
message_config[0].RemoteElement
A
B
Por ejemplo:
Nombre del 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 la dirección de los datos en el otro controlador.
Publicación de Rockwell Automation 1756-PM012D-ES-P – Noviembre 2011 27
Capítulo 3 Cómo enviar un mensaje a múltiples controladores
4. Introduzca la ruta y el elemento remoto de cada controlador adicional.
Cómo obtener el tamaño de la matriz local
• La instrucción SIZE (tamaño):• cuenta el número de elementos de local_array.• cuenta el número de elementos de la Dimensión 0 de la matriz. En este
caso, ésa es la única dimensión.
Local_array_length (DINT) almacena el tamaño (número de elementos) de local_array. Este valor comunica a un renglón subsiguiente si se ha enviado el mensaje a todos los controladores y si se debe comenzar de nuevo con el primer controlador.
Nombre del 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
43051
28 Publicación de Rockwell Automation 1756-PM012D-ES-P – Noviembre 2011
Cómo enviar un mensaje a múltiples controladores Capítulo 3
Cargue las propiedades de mensaje de un controlador
1. La instrucción XIO impone al renglón la condición de enviar el mensaje de manera continua.
2. La primera instrucción COP carga la ruta del mensaje. El valor del índice determina qué elemento será cargado por la instrucción desde message_config. La instrucción carga un elemento desde message_config.
3. La segunda instrucción COP carga el nombre del tag o la dirección de los datos en el controlador que recibe el mensaje. El valor del índice determina qué elemento será cargado por la instrucción desde message_config. La instrucción carga un elemento desde message_config.
Cómo configurar el mensaje Aunque la lógica controla el elemento remoto y la ruta del mensaje, existe una configuración inicial.
43051
2.
3.
1.
Publicación de Rockwell Automation 1756-PM012D-ES-P – Noviembre 2011 29
Capítulo 3 Cómo enviar un mensaje a múltiples controladores
IMPORTANTE
Tabla 1 – Configuración de mensaje
En esta ficha Si desea Para este ítem Escriba o seleccione
Configuration Leer (recibir) datos de los otros controladores
Message Type El tipo de lectura que corresponde a los otros controladores
Source Element Tag o dirección que contiene los datos en el primer controlador
Number Of Elements 1
Destination Element local_array[*]
Index 0
Escribir (enviar) datos a los otros controladores
Message Type El tipo de escritura que corresponde a los otros controladores
Source Element local_array[*]
Index 0
Número de elementos 1
Destination Element Tag o dirección que contiene los datos en el primer controlador
Communication Path Ruta de acceso al primer controlador
Cache Connections Desmarque el cuadro de verificación Cache Connections. Dado que este procedimiento cambia continuamente la ruta del mensaje, resulta más eficiente dejar este cuadro de verificación vacío.
43054
Desmarque el cuadro de verificación Cache Connections.
30 Publicación de Rockwell Automation 1756-PM012D-ES-P – Noviembre 2011
Cómo enviar un mensaje a múltiples controladores Capítulo 3
Paso hasta el siguiente controlador
Después de que la instrucción MSG envía el mensaje:
1. La primera instrucción ADD incrementa el índice. Esto permite a la lógica cargar las propiedades de configuración del siguiente controlador en la instrucción MSG.
2. La segunda instrucción ADD incrementa el miembro LocalIndex (índice local) de la instrucción MSG. Esto permite a la lógica cargar el valor del siguiente controlador en el siguiente elemento de local_array.
Cómo reiniciar la secuencia
Cuando el índice es igual a local_array_length, el controlador ha enviado el mensaje a todos los otros controladores.
1. La primera instrucción CLR pone el índice a 0. Esto permite a la lógica cargar las propiedades de configuración del primer controlador en la instrucción MSG e iniciar de nuevo la secuencia de mensajes.
2. La segunda instrucción CLR pone a 0 el miembro LocalIndex de la instrucción MSG. Esto permite a la lógica cargar el valor del primer controlador en el primer elemento de local_array.
1. 2.
43051
1. 2.
43051
Publicación de Rockwell Automation 1756-PM012D-ES-P – Noviembre 2011 31
Capítulo 3 Cómo enviar un mensaje a múltiples controladores
Notas:
32 Publicación de Rockwell Automation 1756-PM012D-ES-P – Noviembre 2011
Índice
Bbúfer
para mensaje no conectado 12, 13
Ccaché
conexión 11cola
mensaje 10comunicarse
con otros controladores 9instrucción de mensaje 9
conexióncaché 11
controladormensajes 9propiedades del mensaje 29
Llógica de escalera
administrar mensajes 19
Mmatriz
configuración del controlador 26mensaje
a múltiples controladores 23a un único controlador 9administrar múltiples mensajes 19búfer no conectado 12, 13cola 10conexión de caché 11controlador 9conversión entre datos de 16 bits y datos de 32 bits 16ilustración de ejemplo 10límites 10pautas 13procesamiento 10
Ppautas
mensaje 13procesamiento
mensaje 10
Ttag
organizar para mensaje 9pautas para mensajes 13
tipo de datosconfiguración de mensaje 25datos de conversión 16
transferencia en bloquespautas 13
Publicación de Rockwell Automation 1756-PM012D-ES-P – Noviembre 2011 33
Índice
Notas:
34 Publicación de Rockwell Automation 1756-PM012D-ES-P – Noviembre 2011
Publicación 1756-PM012D-ES-P – Noviembre 2011 36Copyright © 2011 Rockwell Automation, Inc. Todos los derechos reservados. Impreso en EE.UU.
Servicio de asistencia técnica de Rockwell Automation
Rockwell Automation ofrece información técnica en Internet con el fin de ayudarle a utilizar nuestros productos. En http://www.rockwellautomation.com/support/, encontrará manuales técnicos, una base de conocimientos con respuestas a preguntas frecuentes, notas técnicas y de aplicación, ejemplos de código y vínculos a Service Packs de software, así como un vínculo llamado MySupport que podrá personalizar para sacarle el máximo provecho a todas estas herramientas.
Con el fin de brindarle un nivel adicional de asistencia técnica en la instalación, configuración y resolución de problemas, le ofrecemos los programas de asistencia técnica TechConnect Support. Si desea más información a este respecto, póngase en contacto con su representante o distribuidor local de Rockwell Automation, o visítenos en http://www.rockwellautomation.com/support/.
Asistencia para la instalación
Si tiene algún problema durante las 24 horas posteriores a la instalación, revise la información que figura en este manual.Puede llamar a asistencia técnica al cliente si desea ayuda inicial para la puesta en servicio de su producto:
Devolución de productos nuevos
Antes de salir de la fábrica, todos los productos de Rockwell son sometidos a pruebas para garantizar su correcto funcionamiento. Si a pesar de ello su producto no funciona y necesita devolverlo, siga los pasos que figuran a continuación.
Comentarios sobre la documentación
Sus comentarios nos ayudarán a atender mejor sus necesidades de documentación. Si tiene sugerencias sobre cómo mejorar este documento, llene este formulario, publicación RA-DU002, disponible en http://www.rockwellautomation.com/literature/.
En Estados Unidos o Canadá 1.440.646.3434
Fuera de los Estados Unidos o Canadá
Utilice el buscador mundial en http://www.rockwellautomation.com/support/americas/phone_en.html, o comuníquese con su representante local de Rockwell Automation.
En Estados Unidos Póngase en contacto con su distribuidor. Indíquele el número de caso de asistencia técnica (para obtenerlo, llame al número de teléfono indicado más arriba) a fin de completar el proceso de devolución.
Fuera de Estados Unidos Póngase en contacto con su representante local de Rockwell Automation para obtener información sobre el procedimiento de devolución.