Loading
Send data between Controllers with Handshake Sequence | CMX | Studio 5000

Secuencia de Buffer de Datos y Handshake en Studio 5000

La secuencia de Buffer de Datos y Handshake está definida para aplicaciones que requieran envío y recepción de datos con bit de validación de envío y recepción de la misma. - [Tiempo de Implementación: 30 minutos]
An electrical panel displaying multiple wires and switches, emphasizing the integration of a PLC for efficient operations.
En esta página:
  • Visión general
  • Guía de instalación
Innovation Center Home Page

¿Para qué sirve esto?

A veces es necesario enviar datos de un controlador a otro y estar seguro de que los datos que se envían/reciben son precisos y no una combinación de datos antiguos y nuevos. Esta nota de aplicación muestra cómo enviar un paquete (500 bytes) de datos almacenados en búfer mediante una conexión de producción/consumo (clase 1) a través de Ethernet/IP.

 

 

Características Generales:

  • Almacenamiento de datos
  • Handshake

Ventajas: Esta secuencia facilita la implementación y configuración rápida cuando es necesario enviar un paquete de datos almacenados en buffer usando una conexión Produce/Consume (Clase 1) sobre Ethernet/IP, sin ningún otro hardware.

 

Limitaciones/Desventajas: Esta secuencia está disponible para Controladores CompactLogix / ControlLogix.

 

Descargas

Tenga en cuenta: deberá aceptar los Términos y Condiciones para cada descarga.

Archivo descargable ›
Términos y condiciones Aceptación. ROCKWELL AUTOMATION PROPORCIONARÁ ACCESO A LOS PRODUCTOS DE ROCKWELL (BUENAS PRÁCTICAS, APLICACIONES Y CONOCIMIENTOS) CON LA CONDICIÓN DE QUE USTED ACEPTE Y CUMPLA LOS SIGUIENTES TÉRMINOS Y CONDICIONES. USTED ACEPTA ESTAR OBLIGADO POR LOS TÉRMINOS DE ESTE ACUERDO DESCARGANDO, INSTALANDO, COPIANDO O UTILIZANDO PRODUCTOS. SI ACEPTA ESTOS TÉRMINOS EN NOMBRE DE OTRA PERSONA, EMPRESA U OTRA ENTIDAD LEGAL, USTED REPRESENTA Y GARANTIZA QUE TIENE AUTORIDAD COMPLETA PARA OBLIGAR A ESA PERSONA, EMPRESA O ENTIDAD LEGAL A ESTOS TÉRMINOS. SI NO ACEPTA ESTOS TÉRMINOS, NO DESCARGUE, INSTALE, COPIE, ACCEDA NI UTILICE EL SOFTWARE Y/O LOS PRODUCTOS Y SERVICIOS EN LA NUBE. 1. Rockwell Automation conserva la propiedad intelectual de todos los Productos y la documentación relacionada. No se otorgan derechos ni licencias distintos de los establecidos en este Acuerdo. La Empresa otorga a Rockwell Automation una licencia no exclusiva, mundial, libre de regalías, perpetua y no revocable para utilizar cualquier comentario que la Empresa proporcione con respecto a los Productos, incluso si la Empresa ha designado los comentarios como confidenciales. Rockwell Automation tendrá derecho a utilizar los comentarios sin restricción ni compensación para la Empresa. 2. La empresa no puede subarrendar, ceder, otorgar licencias, sublicenciar o transferir de otro modo ninguno de los Productos sin el consentimiento previo por escrito de Rockwell Automation. La empresa no puede asignar ni transferir de ninguna manera los derechos de acceso a los Productos sin el consentimiento previo por escrito de Rockwell Automation. Se prohíbe cualquier ensamblaje inverso, ingeniería inversa, des compilación y creación de trabajos derivados basados en los Productos por parte de la Empresa. 3. La Empresa reconoce que los Productos proporcionados en virtud de este Acuerdo son Información confidencial de Rockwell Automation y están protegidos por derechos de autor, patentes, marcas registradas y/o secretos comerciales vigentes o pendientes de Rockwell Automation, y la Empresa acepta mantener la confidencialidad al no divulgar los Productos o la documentación a terceros sin el consentimiento previo por escrito de Rockwell Automation y para proteger la confidencialidad de los Productos como lo haría con la información confidencial de ella misma. La Empresa acepta que su obligación de confidencialidad en virtud de este párrafo sobrevivirá a la expiración o terminación de este Acuerdo. 4. La Empresa acepta que los Productos provistos bajo este Acuerdo son modelos y ejemplos y su aplicación y resultados pueden variar dependiendo de las condiciones de cada cliente y proyecto. Rockwell Automation no garantiza los mismos resultados en cada caso. Este Acuerdo no se interpretará de ninguna manera como un compromiso por parte de Rockwell Automation en ningún momento para fabricar y/u ofrecer Productos para la venta. No existe un acuerdo a nivel de servicio explícito o implícito asociado con el uso de los Productos. Rockwell Automation no garantiza que las funciones contenidas en los Productos cumplan con los requisitos de la Empresa. La Empresa acepta usar todos los Productos solo de acuerdo con las instrucciones y solo para los usos previstos identificados en la documentación. 5. EXCLUSIÓN DE GARANTÍAS Y LIMITACIÓN DE RESPONSABILIDAD. LOS PRODUCTOS SE PROPORCIONAN "TAL CUAL". ROCKWELL AUTOMATION RENUNCIA A TODAS LAS GARANTÍAS, EXPLÍCITAS, IMPLÍCITAS O LEGALES, INCLUYENDO SIN LIMITACIÓN CUALQUIER GARANTÍA DE COMERCIABILIDAD O IDONEIDAD PARA UN PROPÓSITO EN PARTICULAR. ROCKWELL AUTOMATION NIEGA EXPLÍCITAMENTE TODAS LAS GARANTÍAS DE NO INFRACCIÓN Y NO GARANTIZA EXPRESAMENTE QUE LOS PRODUCTOS, EN SU TOTALIDAD O EN PARTE, ESTARÁN LIBRES DE ERRORES O VULNERABILIDADES DE SEGURIDAD. EN NINGÚN CASO, ROCKWELL AUTOMATION SERÁ RESPONSABLE DE (i) LA PÉRDIDA DE BENEFICIOS, LA PÉRDIDA DE AHORROS, EL TIEMPO DE INACTIVIDAD, LOS DAÑOS ESPECIALES, INDIRECTOS O CONSECUENTES DE CUALQUIER TIPO, O (ii) CUALQUIER LESIÓN PERSONAL, DAÑO A LA PROPIEDAD O DAÑO AL MEDIO AMBIENTE QUE SURJA DE O EN RELACIÓN CON ESTE ACUERDO, YA SEA EN UNA ACCIÓN CONTRACTUAL, DE RESPONSABILIDAD ESTRICTA O DE AGRAVIO, INCLUYENDO NEGLIGENCIA. 6. LA EMPRESA ACUERDA INDEMNIZAR Y EXIMIR A ROCKWELL AUTOMATION DE TODOS LOS COSTOS, PREMIOS, DAÑOS, GASTOS Y HONORARIOS (INCLUIDOS LOS HONORARIOS DE LOS ABOGADOS) RESULTANTES O RELACIONADOS CON CUALQUIER RECLAMACIÓN DE TERCEROS (INCLUYENDO EMPLEADOS Y AGENTES DE LA EMPRESA) CONTRA ROCKWELL AUTOMATION, SUS DISTRIBUIDORES, AGENTES, FUNCIONARIOS, DIRECTORES O EMPLEADOS POR LESIONES PERSONALES (INCLUYENDO LA MUERTE), DAÑOS A LA PROPIEDAD O DAÑOS AMBIENTALES RELACIONADOS O RESULTANTES DEL USO DE LOS PRODUCTOS. 7. En caso de que se exporte un Producto, la Empresa acepta cumplir con todas las Leyes y Reglamentos de Control de Exportaciones de los Estados Unidos aplicables, y las leyes de control de exportaciones aplicables de otros países. Este Acuerdo se regirá por las leyes del estado de Wisconsin. Este Acuerdo es el Acuerdo completo y exclusivo entre Rockwell Automation y la Empresa, y reemplaza todos los acuerdos anteriores, ya sean escritos u orales, relacionados con estos Productos.

¿Necesita ayuda?

Si necesita ayuda con alguna aplicación o tiene comentarios acerca del Innovation Center, por favor contáctenos.

¿Esto me resulta útil?

Este código se define para aplicaciones cuando es necesario enviar un paquete de datos almacenados en búfer a través de Ethernet/IP.

Áreas de aplicación: Alimentos, Manufactura, Bebidas

 

 

¿Cómo puedo hacerlo funcionar?

  • Hardware
    • Computadora personal con un puerto USB disponible
    • Controlador CompactLogix, ControlLogix
  • Software
    • Studio 5000, versión 21 o posterior
  • Conocimientos
    • Conocimientos intermedios de programación y configuración en el software Studio 5000: Lenguaje de escalera (LD)
 
 
 
 

Guía de Implementación

 
 
  • Paso 01

     

    Los siguientes pasos ofrecen una explicación del código y de cómo almacenar en búfer los datos antes de enviarlos a otro controlador y usar números de enlace (#) para indicar cuándo ha llegado un nuevo paquete de datos.

     
     

    Almacenamiento en búfer de datos: una razón para almacenar en búfer los datos sería mantener una lista actualizada de los datos antes de transferirlos en caso de que haya una falla de comunicación. Otra razón sería asegurarse de que el paquete de datos que está creando esté completo. En este ejemplo, estoy almacenando en búfer 10 paquetes (492 bytes) en un orden de entrada/salida. Si esto es demasiado almacenamiento en búfer de datos, puede personalizarlo para su aplicación.

     

    El encabezado se usa para indicar cuándo se está enviando/recibiendo un nuevo paquete de datos. Algunas aplicaciones usan lo que se llama un pie de página # al final del paquete, otras aplicaciones usan un encabezado # al comienzo del paquete. En este ejemplo, estoy usando un encabezado y un pie de página #. El funcionamiento básico de esto es el siguiente: Cada vez que un nuevo paquete de datos está listo para ser enviado, los números de encabezado y pie de página incrementados se adjuntan al principio y al final del paquete de datos (492 bytes), lo que lo convierte en un paquete de producción/consumo completo (500 bytes). Cuando el otro controlador ve que hay una diferencia entre el antiguo número de encabezado/pie de página y el nuevo, sabe que se trata de un nuevo paquete de datos y lo almacena en su memoria. Este nuevo número de encabezado/pie de página se almacena para comprobarlo más tarde cuando se vuelva a enviar un nuevo paquete. Esto se lleva un paso más allá al introducir un método de protocolo de enlace bidireccional. Esto significa que estoy enviando el número de encabezado o pie de página de vuelta al productor de los datos como un disparador para enviar otro paquete.

    send-data-between-controllers-with-handshake-in-studio-5000_Step 1-Image1.jpg

    send-data-between-controllers-with-handshake-in-studio-5000_Step 1-Image1

     
     

    Hay dos programas ControlLogix, un programa está produciendo datos y el otro programa está consumiendo datos. El programa que está produciendo datos se llama CLX1_producing_ data_with_handshaking_ and_Buffering1. El programa que está consumiendo datos se llama CLX2_using_data_with_handshaking. Serán referenciados como programa CLX1_Produce y CLX2_Consume.

     

    Los datos se deben recopilar y almacenar en el búfer antes de enviarlos a la etiqueta producida.

     

    Consulte los Rungs 7, 8 y 9 del programa CLX1_produced.

     

    Rung 7. Los datos se recopilan y almacenan en el búfer de la siguiente manera: primero en entrar, primero en salir. En este ejemplo, se almacena en el búfer 10 paquetes de datos (123dint) (1 a 10). Si no hay datos en el décimo paquete de datos almacenado en el búfer, agregue 123 al puntero de datos almacenados en el búfer; si hay datos allí, deje de llenar el registro almacenado en el búfer. 

     

    Rung 8. Cuando aparecen datos en el décimo registro almacenado en el búfer (paquetes de datos 123dint), el área del registro almacenado en el búfer está llena y se establecerá la salida de búfer completo.

     

    Rung 9. Si se establece la salida de búfer completo, desplace los paquetes de datos almacenados en el búfer 2 a 10 hacia arriba en (123dint). Luego, complete el décimo paquete de datos almacenado en el búfer con ceros.

     
  • Paso 02

     

    Ahora que tenemos los datos almacenados en el búfer, comenzamos a producirlos en la red Ethernet. Consultamos los Rungs 10 y 11 del programa CLX1_produced. 

     

    Rung 10. Copiará el primer paquete de datos del búfer a la etiqueta producida.

    Rung 11. Asignará un número de identificación de encabezado y pie de página. Estos números oscilarán entre (0 y 100). Estos identificadores también se utilizarán como números de enlace entre los dos procesadores CLX. El siguiente escaneo de los identificadores se incrementará en 1.

     

    En este punto, el paquete se forma y se ve así:

     

    • Producing_data_to_CLX1
      • [0] = Header ID#
      • [1] - [123] = Data
      • [124] = Footer ID#
    send-data-between-controllers-with-handshake-in-studio-5000_Step2-Image1.jpg

    send-data-between-controllers-with-handshake-in-studio-5000_Step2-Image1

  • Paso 03

     
     

    Otro procesador CLX2 está consumiendo los datos a través de Ethernet. La etiqueta de consumido se ve así:

     
    • Consumed_data_from_CLX1
      • [0] = Header ID#
      • [1] - [123] = Data
      • [124] = Footer ID#

     

    Consulte el programa CLX2_consumed, Rung 1.

     

    Rung 1. Compara los nuevos ID asignados en el paso 2, Rung 11, con los antiguos ID almacenados en el búfer del paso 6, Rung 6. Si los ID son diferentes, sabe que está leyendo un nuevo paquete de datos.

    send-data-between-controllers-with-handshake-in-studio-5000_Step3-Image1.jpg

    send-data-between-controllers-with-handshake-in-studio-5000_Step3-Image1

  • Paso 04

     
     

    Si las comunicaciones se detienen, el control debe estar al tanto de esto; consulte los renglones 2, 3 y 4 del programa CLX2_consumed.

     

    Rung 2. Cada vez que se observa una ID diferente, el contador cuenta +1.

     

    Rung 3. Si el contador no se completa en 5 segundos, el temporizador retentivo se agota.

     

    Rung 4. Si el temporizador retentivo se completa, no ha habido comunicaciones durante más de 5 segundos y se establece la salida sin comunicaciones entre clx1 y clx2. Esto se puede utilizar como un bit de alarma.

     
    send-data-between-controllers-with-handshake-in-studio-5000_Step4-Image1.jpg

    send-data-between-controllers-with-handshake-in-studio-5000_Step4-Image1

  • Paso 05

     
     

    Vuelva a verificar que los identificadores de encabezado y pie de página no hayan cambiado. Consulte el programa CLX2_consumed, Rung 5.

     
    send-data-between-controllers-with-handshake-in-studio-5000_Step5-Image1.jpg

    send-data-between-controllers-with-handshake-in-studio-5000_Step5-Image1

  • Paso 06

     
     

    Ahora es el momento de copiar los datos de la etiqueta de consumo a un registro diferente en el CLX2, para utilizarlos en su programa.

     

    A continuación, mueva los números de identificación de encabezado y pie de página actuales al registro de identificación anterior para compararlos más tarde cuando se envíe el siguiente paquete de datos nuevos. Ahora, la parte de negociación del programa.

     

    El número de identificación de pie de página se envía de vuelta al CLX1, en una etiqueta producida, para que actúe como la pieza de datos de negociación, que se comparará en el CLX1 como verá en el paso 8. Consulte el programa CLX2_consumed, Rung 6 a 8.

     
    send-data-between-controllers-with-handshake-in-studio-5000_Step6-Image1.jpg

    send-data-between-controllers-with-handshake-in-studio-5000_Step6-Image1

  • Paso 07

     
     

    Una vez más, si las comunicaciones se detienen, el control debe estar al tanto de esto. Consulte los renglones 2, 3 y 4 del programa producido por CLX1.

     

    Rung 2. Cada vez que se observa una ID diferente, el contador cuenta +1.

     

    Rung 3. Si el contador no se completa en 5 segundos, el temporizador retentivo se agota.

     

    Rung 4. Si el temporizador retentivo se completa, no ha habido comunicaciones durante más de 5 segundos y se establece la salida sin comunicaciones entre clx1 y clx2. Esto se puede utilizar como un bit de alarma.

     
    send-data-between-controllers-with-handshake-in-studio-5000_Step7-Image1.jpg

    send-data-between-controllers-with-handshake-in-studio-5000_Step7-Image1

  • Paso 08

     
     

    En referencia al Paso 6, el ID de pie de página está siendo producido por CLX2 y ahora será consumido por CLX1. Si el ID producido inicialmente coincide con el ID consumido ahora, todavía hay comunicaciones, el protocolo de enlace está completo y CLX1 ahora está listo para producir un nuevo paquete de datos.

     

    Pero antes de producir un nuevo paquete de datos, debemos examinar si nuestro ID ha llegado a 100, si es así, restablecerlo a 0 y comenzar a contar hasta 100 nuevamente. Consulte los Rungs 5 y 6 del programa CLX1_produced.

     
    send-data-between-controllers-with-handshake-in-studio-5000_Step8-Image1.jpg

    send-data-between-controllers-with-handshake-in-studio-5000_Step8-Image1

 
send-data-between-controllers-with-handshake-in-studio-5000_Step 1-Image1.jpg

send-data-between-controllers-with-handshake-in-studio-5000_Step 1-Image1

send-data-between-controllers-with-handshake-in-studio-5000_Step2-Image1.jpg

send-data-between-controllers-with-handshake-in-studio-5000_Step2-Image1

send-data-between-controllers-with-handshake-in-studio-5000_Step3-Image1.jpg

send-data-between-controllers-with-handshake-in-studio-5000_Step3-Image1

send-data-between-controllers-with-handshake-in-studio-5000_Step4-Image1.jpg

send-data-between-controllers-with-handshake-in-studio-5000_Step3-Image1

send-data-between-controllers-with-handshake-in-studio-5000_Step5-Image1.jpg

send-data-between-controllers-with-handshake-in-studio-5000_Step5-Image1

send-data-between-controllers-with-handshake-in-studio-5000_Step6-Image1.jpg

send-data-between-controllers-with-handshake-in-studio-5000_Step6-Image1

send-data-between-controllers-with-handshake-in-studio-5000_Step7-Image1.jpg

send-data-between-controllers-with-handshake-in-studio-5000_Step7-Image1

send-data-between-controllers-with-handshake-in-studio-5000_Step8-Image1.jpg

send-data-between-controllers-with-handshake-in-studio-5000_Step8-Image1

 
 
 
 
 

Secuencia de Buffer de Datos y Handshake en Studio 5000

Versión 1.0 - Noviember de 2024

¡Suscríbase!

Reciba directamente en su correo nuevos lanzamientos de aplicaciones y otras novedades del Innovation Center

Quiero suscribirme
  1. Chevron LeftChevron Left Página principal de Rockwell Automation Chevron RightChevron Right
  2. Chevron LeftChevron Left Asi... Chevron RightChevron Right
  3. Chevron LeftChevron Left Pro... Chevron RightChevron Right
  4. Chevron LeftChevron Left Downloads Chevron RightChevron Right
  5. Chevron LeftChevron Left Innovation Center Chevron RightChevron Right
  6. Chevron LeftChevron Left Secuencia de Buffer de Datos y Handshake en Studio 5000 Chevron RightChevron Right
Actualice sus preferencias de cookies para continuar.
Esta función requiere cookies para mejorar su experiencia. Actualice sus preferencias para permitir estas cookies.:
  • Cookies de Redes Sociales
  • Cookies Funcionales
  • Cookies de Performance
  • Cookies de Marketing
  • Todas las cookies
Puede actualizar sus preferencias en cualquier momento. Para más información, vea nuestro Política de Privacidad
CloseClose