Introducción a Modbus - National Instruments

download Introducción a Modbus - National Instruments

of 8

Transcript of Introducción a Modbus - National Instruments

  • 8/16/2019 Introducción a Modbus - National Instruments

    1/8

    25/5/2016 Introducción a Modbus - National Instruments

    http://www.ni.com/white-paper/7675/es/

    Introducción a ModbusFecha de Publicación: oct 15, 2014

    Visión General

    El protocolo industrial Modbus fue desarrollado en 1979 para permitir la comunicación entredispositivos de automatización. Originalmente implementado como un protocolo a nivel de laaplicación para transferir datos en una capa serial, el protocolo se ha expandido para incluir implementaciones a través de protocolo serial, TCP/IP y UDP (User Datagram Protocol).Hoy en día, es un protocolo común usado por innumerables dispositivos para comunicaciónsimple, confiable y eficiente en una variedad de redes modernas.

    Contenido

    1. El Ciclo de Solicitud-Respuesta2. El Modelo de Datos de Modbus3. Códigos de Función de Modbus4. API de LabVIEW Modbus5. Servidores de E/S Modbus6. NI OPC Servers con Servidores de E/S OPC u OPC UA

    Introducción a Modbus

    Modbus es usado generalmente para comunicación en red tipo SCADA entre dispositivos.Por ejemplo, un servidor grande puede ser usado para manejar un controlador lógicoprogramable (PLC) o un controlador de automatización programable (PAC), y el PLC o PACpuede a su vez manejar un sensor, válvula, motor o cualquier otro dispositivo embebido.

    Para cumplir estas necesidades, Modbus fue diseñado como un protocolo de solicitud yrespuesta con un modelo flexible de datos y funciones; características que son parte de larazón por la que hoy en día aún sigue en uso.1. El Ciclo de Solicitud-Respuesta

    El protocolo Modbus sigue una arquitectura de maestro y esclavo, en la que un maestrotransmite una solicitud a un esclavo y espera la respuesta. Esta arquitectura brinda almaestro control completo sobre el flujo de información, lo cual tiene beneficios en redesseriales multipunto más viejas. Aún en redes TCP/IP modernas, le da al maestro un altogrado de control en el comportamiento del esclavo, lo cual es útil en algunos diseños.

    Figura 1. La Relación de Solicitud-Respuesta y Maestro-Esclavo de los Dispositivos Modbus

    En Modbus, esta solicitud es un conjunto de datos en capas. La primera capa es la unidadde datos de la aplicación (ADU), la cual es lo que la mayoría de las personas consideranque es el "tipo" de Modbus usado. Existen tres ADUs: ASCII, unidad de terminal remota(RTU) y TCP/IP.

    TCP es un formato moderno que permite un manejo eficiente de las solicitudes y respuestasModbus en software, así como un sistema de red más eficiente a través del uso deconexiones e identificadores dedicados para cada solicitud. RTU y ASCII son formatos de

     ADU seriales antiguos y la principal diferencia entre los dos es que RTU utiliza unarepresentación binaria compacta, mientras que ASCII envía todas las solicitudes como

    cadenas de caracteres ASCII.Para la mayoría de las aplicaciones, el ADU preferido depende de la red física deseada(Ethernet, serial o alguna otra), el número de dispositivos en la red y los ADUs soportadospor los dispositivos maestros y esclavos en la red. Desde el punto de vista de la aplicaciónusando Modbus, los datos deben ser expuestos simplemente como si el ADU no existiera.

    En cada ADU, existe una unidad de datos de protocolo (PDU) que es el núcleo del protocoloModbus. Cada PDU contiene un código de función y datos asociados. Cada código defunción tiene una respuesta bien definida y usted puede pensar en este código de funcióncomo el comando que ha sido enviado al esclavo.

    En algunos casos, pueden ocurrir errores. Modbus define un PDU específico paraexcepciones, lo cual permite al maestro saber lo que pasó. La mayoría de los controladoresconvierten esto en una forma que tenga sentido para el lenguaje o la aplicación en uso.2. El Modelo de Datos de Modbus

  • 8/16/2019 Introducción a Modbus - National Instruments

    2/8

    25/5/2016 Introducción a Modbus - National Instruments

    http://www.ni.com/white-paper/7675/es/

    Modbus administra el acceso de los datos de manera simple y flexible. Originalmente,Modbus soporta dos tipos de datos: un valor Booleano y un entero sin signo de 16 bits.

    En los sistemas SCADA, es común para los dispositivos embebidos tener ciertos valoresdefinidos como entradas, como ganancias o parámetros PID, mientras que otros valoresson salidas, como la temperatura actual o posición de la válvula. Para cumplir con estanecesidad, los valores de los datos Modbus son divididos en cuatro rangos (ver la Tabla 1).Un esclavo puede definirse como 65,536 elementos en cada rango.

    Bloque de Memoria Tipo de Datos Acceso de Maestro Acceso deEsclavo

    Bobinas   Booleano Lectura/Escritura Lectura/Escritura

    Entradas Discretas   Booleano Solo Lectura Lectura/Escritura

    Registros deRetención

    Palabra Sin Signo Lectura/Escritura Lectura/Escritura

    Registros deEntrada

    Palabra Sin Signo Solo Lectura Lectura/Escritura

    Tabla 1. Bloques de Modelo de Datos de Modbus

    En muchos casos, los sensores y otros dispositivos generan datos en tipos diferentes aBooleanos simples y enteros sin signo. Es común para los dispositivos esclavos convertir estos tipos de datos más grandes a registros. Por ejemplo, un sensor de presión puededividir un valor de punto flotante de 32 bits entre dos registros de 16 bits.

    Modbus muestra estos valores de una manera completamente conceptual, lo que significaque pueden no existir en realidad en la memoria. Por ejemplo, un dispositivo esclavo puededefinirse de tal manera que los registros de retención y los registros de entrada de hechocomparten la misma memoria si ese comportamiento tiene sentido para el esclavo. En lamayoría de los casos, los esclavos almacenan cada tipo de datos soportados en memoriaseparada y limita el número de elementos de datos a los que un maestro tiene acceso. Estaflexibilidad es una opción debido a la manera en la que los datos son expuestos a través delcomportamiento bien definido de los códigos de función de Modbus.3. Códigos de Función de Modbus

    Los códigos de función de Modbus determinan cómo el maestro tiene acceso y modifica losdatos. A diferencia de los rangos de datos, los cuales son conceptuales, los códigos defunción tienen un comportamiento bien definido. Cuando a un esclavo se le pide realizar uncódigo de función, utiliza los parámetros de la función para ejecutar ese comportamientobien definido. La figura 2 muestra este enlace entre una solicitud de función y la memoria

    real del dispositivo.

    Figura 2. El Mapeo entre un Código de Función, Rangos de Datos y la Memoria Real de unDispositivo Esclavo

    Los códigos de función más comunes llevan el nombre del rango de datos conceptual quemodifican o al que tienen acceso. Por ejemplo, "read holding registers" realiza la acción deextraer datos de la memoria definida como registros de retención y regresarlos al maestro.La Tabla 2 identifica los códigos de función más comunes.

  • 8/16/2019 Introducción a Modbus - National Instruments

    3/8

    25/5/2016 Introducción a Modbus - National Instruments

    http://www.ni.com/white-paper/7675/es/

    Tabla 2. Códigos de Función Más Comunes

    Comenzar a Trabajar con Modbus en LabVIEW

    NI ofrece tres mecanismos principales para conectar dispositivo Modbus: (1) un servidor OPC de alto nivel, (2) un servidor de E/S Modbus y (3) un API de Modbus introducido en NI

    LabVIEW 2014 a través de los módulos LabVIEW Real-Time o LabVIEW Datalogging andSupervisory Control (DSC).4. API de LabVIEW Modbus

    El API de Modbus de bajo nivel es la opción preferida cuando su aplicación necesita un altonivel de control en las secuencias y temporización de las solicitudes de Modbus. El API debajo nivel también es generalmente la elección preferida cuando la flexibilidad es lo másimportante. Sin embargo, la flexibilidad y la potencia ofrecida por el API de LabVIEWModbus también significa que su código de aplicación debe ser más complejo paraadministrar correctamente el API. Para ayudarle a comprender esta complejidad, LabVIEWproporciona dos ejemplos.Ejemplo Introductorio de Modbus

    El primer ejemplo, Modbus Library.lvproj, ofrece información básica de la funcionalidad del API. También muestra las diferencias entre una implementación en una PC y dispositivo en

    tiempo real. La Figura 3 muestra el código involucrado en el ejemplo de Maestro Modbus enTiempo Real.

  • 8/16/2019 Introducción a Modbus - National Instruments

    4/8

    25/5/2016 Introducción a Modbus - National Instruments

    http://www.ni.com/white-paper/7675/es/

    Figura 3. Master on RT Target.vi

    Este ejemplo muestra los requerimientos principales de una aplicación Modbus usando el API de LabVIEW. Primero, se crea una instancia de Modbus. En este caso, un maestro TCP.Sin embargo, usted puede cambiar este ejemplo a un maestro serial al cambiar el selector de instancia polimórfico.

    Figura 4. Cambiar el Tipo de Maestro Modbus

    Cuando se crea esta instancia, usted puede comenzar por consultar datos en el dispositivoesclavo. El ejemplo muestra el uso del código de función Read Input Registers. Todos loscódigos de función de Modbus soportados por el API son mostrados en la paleta adecuada.Debido a la implementación del protocolo, el API esclavo tiene funciones adicionales que elmaestro no puede implementar. Por ejemplo, un esclavo puede escribir en el rango deregistro de entrada, mientras que un maestro solamente puede leer ese rango. La Figura 5muestra los códigos de función.

    Figura 5. Las Paletas de Maestro y Esclavo de Modbus Muestran los Códigos de Función

    Finalmente, se cierra la instancia de Modbus, liberando la memoria asociada con lainstancia. Esto también cierra cualquier referencia, incluyendo la conexión TCP oreferencias seriales NI-VISA usadas por la instancia.

    Únicamente el ejemplo del maestro ha sido discutido hasta ahora; sin embargo, cadaejemplo sigue el mismo patrón básico que es familiar a la mayoría de los usuarios deLabVIEW: abrir, leer/escribir y cerrar.

    Finalmente, aunque el API se ve igual, es importante comprender la diferencia clave. Si sudispositivo es un maestro, debe enviar una solicitud por la red al esclavo adecuado paraadquirir datos. El esclavo, por otro lado, tiene su propio almacenamiento de datos local ypuede tener acceso a ellos rápidamente.Ejemplo de Maestro Redundante

    El ejemplo básico es suficiente para algunas aplicaciones; sin embargo, puede no ser suficiente para aplicaciones complicadas donde el objetivo es hablar con un sensor ogateway. Para ayudar a disminuir esta diferencia, una aplicación de ejemplo muestra cómo

  • 8/16/2019 Introducción a Modbus - National Instruments

    5/8

    25/5/2016 Introducción a Modbus - National Instruments

    http://www.ni.com/white-paper/7675/es/

    usar dos maestros para comunicarse con un esclavo determinado. Si uno de los maestrosfalla y pierde conexión ya sea con el esclavo o con la interfaz humano-máquina (HMI), elotro maestro se hará cargo.

    Figura 6. Diseño del Ejemplo de Maestro Redundante

    Si este diseño cumple con las necesidades de su aplicación o si usted está interesado en unejemplo más complejo de comunicación por Modbus, vea Redundant Modbus

    Masters.lvproj en el Example Finder.5. Servidores de E/S Modbus

    Los servidores de E/S Modbus, los cuales están en los módulos LabVIEW DSC y LabVIEWReal-Time, ofrecen un motor de alto nivel para comunicarse por Modbus. En lugar deespecificar un código de función que usted desea enviar, registre el conjunto de datos al quequiere tener acceso y el servidor de E/S programa automáticamente las solicitudes en elrango especificado.

    Para usar los servidores de E/S, añada un nuevo servidor de E/S al dispositivo deseado ensu proyecto. Como con el API de bajo nivel, usted puede escoger entre un maestro oesclavo Modbus y estos lo dirigirán a parámetros adicionales. Por ejemplo, un maestro tieneun rango de consulta definido—la velocidad a la que cada solicitud es enviada al esclavo,mientras que los esclavos deben esperar estas solicitudes y no tienen tiempos pre-definidos.

    Después de que se crea el servidor de E/S, usted debe especificar los elementos en eldispositivo que desea leer. A diferencia del API de bajo nivel, en el que usted debe generar y procesar las solicitudes usted mismo, los servidores de E/S de Modbus le permitenseleccionar entre una variedad de formatos y tipos de datos. Por ejemplo, usted puede leer el registro de retención en la dirección 0 al mapear una variable al elemento 400001, leer elprimer bit de este registro al seleccionar 400001.1 y leer el dato de punto flotante deprecisión simple que está almacenado en los registros 0 y 1 al seleccionar F400001.

    Después de seleccionar las variables a acceder, usted puede leer o escribir estas variablesusando nodos de variables compartidas en el diagrama de bloques. Usted incluso puedeasignar un alias a los nombres de las variables.

    Figura 7. Una Aplicación Sencilla de Servidor de E/S

    El esfuerzo de programación involucrado con una aplicación de servidor de E/S es mínimo yes más fácil de comprender. Recuerde que esta facilidad de uso tiene sus limitaciones. Losdatos se actualizan únicamente a la velocidad pre-definida y no hay manera de añadir oeliminar datos solicitados en tiempo de ejecución. Si estas limitaciones son aceptables parasu aplicación, los servidores de E/S son la opción recomendada para las diferentesplataformas.

  • 8/16/2019 Introducción a Modbus - National Instruments

    6/8

    25/5/2016 Introducción a Modbus - National Instruments

    http://www.ni.com/white-paper/7675/es/

    Para más información y una guía paso a paso, vea Cómo Conectar LabVIEW a Cualquier PLC con Modbus (http://www.ni.com/white-paper/13911/en/).6. NI OPC Servers con Servidores de E/S OPC u OPC UA

    Para aplicaciones complicadas que involucran varios dispositivos esclavos que secomunican a través de diferentes protocolos, las E/S Modbus estándares podrían no ser suficientes. Una solución común es usar un servidor OPC, el cual actúa como un compilador de datos para todos sus sistemas y después usar los servidores de E/S OPC incluidos en elMódulo LabVIEW DSC para comunicarse con ese servidor OPC.

    La Figura 8 muestra un ejemplo de esta arquitectura, con NI OPC Servers usando Modbuspara comunicarse directamente con sensores y UA OPC para comunicarse con un PACCompactRIO. Después de que los datos son agregados en NI OPC Servers, un servidor deE/S OPC puede recuperar datos y compartirlos con la aplicación de LabVIEW.

    Figura 8. Una Aplicación SCADA Usando Modbus, NI OPC Servers y Servidores de E/SOPC

    Usted también puede desarrollar una arquitectura similar que utilice el controlador OPC UAincluido en el Módulo LabVIEW DSC en lugar de los servidores de E/S OPC. Sin embargo,el controlador OPC UA es un controlador de bajo nivel y no proporciona la facilidad de usoque tienen los servidores de E/S OPC.

    Para desarrollar una aplicación como esta, usted primero debe generar una configuraciónválida para NI OPC Servers para comunicarse con sus dispositivos esclavo. Esto se logra algenerar canales, los cuales definen una configuración de controlador y dispositivos, quedefinen un punto final individual para ese controlador. Una vez que usted ha configurado undispositivo, puede generar etiquetas.

    Figura 9. Una Configuración de Muestra en NI OPC Servers para la Arquitectura de Arriba

    Y una vez que ha configurado NI OPC Servers, puede configurar un servidor de E/S OPCpara comunicarse con esas etiquetas. Mientras que los servidores de E/S Modbus sonconfigurados para tener acceso a los registros, los servidores de E/S OPC son configurados

    http://www.ni.com/white-paper/13911/en/

  • 8/16/2019 Introducción a Modbus - National Instruments

    7/8

    25/5/2016 Introducción a Modbus - National Instruments

    http://www.ni.com/white-paper/7675/es/

    para tener acceso a las etiquetas en el servidor OPC.

    Figura 10. Configurar los Servidores de E/S OPC

    Este proceso de unión genera variables que usted puede usar en su aplicación.

    Figura 11. Una Aplicación Sencilla Usando Servidores de E/S OPC

    Encuentre un explicación completa de este proceso en Cómo Conectar LabVIEW aCualquier PLC Usando OPC (http://www.ni.com/white-paper/7450/en/).

    Cumpliendo con las Necesidades de su Aplicación

    Modbus es un protocolo simple que usted puede usar de varias maneras para implementar 

    aplicaciones potentes.Para comunicación por Modbus, NI ofrece estas tres opciones principales que brindan unamplio rango de funcionalidad para cumplir con las necesidades de su aplicación. Primero,un API de bajo nivel ofrece control fino del protocolo, con alto rendimiento, a costa de lafacilidad de uso. Todo debe realizarse manualmente al usar el API de bajo nivel. Paraaplicaciones de monitoreo más simples, los servidores de E/S Modbus ofrecen un API mássencillo y más fácil para tener acceso o proporcionar datos Modbus. A cambio de la facilidadde uso, los servidores de E/S disminuyen el control del protocolo que puede ser necesariopara algunas aplicaciones. Finalmente, para sistemas grandes y complejos, puede ser beneficioso considerar un servidor OPC con todas las funciones para servir como uncompilador de datos. Después, simplemente use una herramienta como un controlador LabVIEW OPC UA o servidores de E/S OPC para que su aplicación tenga acceso a estosdatos.

     

    PRODUCTOS

    Estado del pedido e historial(http://www.ni.com/status/)

    Comprar por número de parte(http://sine.ni.com/apps/utf8/nios.store?action=purchase_form)

    Activar un producto(http://sine.ni.com/myproducts/app/main.xhtml?lang=en)

    SOPORTE

    Enviar una solicitud de servicio(https://sine.ni.com/srm/app/myServiceRequests)

    Manuales (http://www.ni.com/manuals/esa/)

    Controladores(http://www.ni.com/downloads/drivers/esa/)

    Alliance Partners(http://www.ni.com/alliance/esa/)

    COMP ÑÍ

    Sobre sucursal de National Instruments(http://www.ni.com/company/esa/)

    Sobre sucursal de National Instruments Mexico(http://mexico.ni.com/contactenos/oficinas/)

    Eventos (http://mexico.ni.com/eventos/)

    Carreras (http://www.ni.com/careers/)

      V NZ NDO JUNTOS

    NI prepara a ingenieros y científicoresuelvan los desafíos de un mundvez más complejo.

    (http://www.facebook.com/pages/N

    Instruments-de-

    http://www.facebook.com/pages/National-Instruments-de-M%C3%A9xico/148413492945http://www.ni.com/careers/http://mexico.ni.com/eventos/http://mexico.ni.com/contactenos/oficinas/http://www.ni.com/company/esa/http://www.ni.com/alliance/esa/http://www.ni.com/downloads/drivers/esa/http://www.ni.com/manuals/esa/https://sine.ni.com/srm/app/myServiceRequestshttp://sine.ni.com/myproducts/app/main.xhtml?lang=enhttp://sine.ni.com/apps/utf8/nios.store?action=purchase_formhttp://www.ni.com/status/http://www.ni.com/white-paper/7450/en/

  • 8/16/2019 Introducción a Modbus - National Instruments

    8/8

    25/5/2016 Introducción a Modbus - National Instruments

    http://www.ni.com/white-paper/7675/es/

    Información de compra y pago(http://www.ni.com/howtobuy/esa/)

    M%C3%A9xico/148413492945)

    (http://twitter.com/NIMexico)

    (http://nifeeds.ni.com/f/news-es)

    (http://www.youtube.com/MexicoNI

    (http://www.linkedin.com/company/

    instruments-m-xico)

    Comuníquese con NI

    (http://www.ni.com/contact-us/

    Legal (http://www.ni.com/legal/)  | © 2016 National Instruments Corporation. Todos los derechos reservados. | Mapa

    de Sitio (http://www.ni.com/help/map.htm)

    http://www.ni.com/help/map.htmhttp://www.ni.com/legal/http://www.ni.com/contact-us/http://www.linkedin.com/company/national-instruments-m-xicohttp://www.youtube.com/MexicoNIhttp://nifeeds.ni.com/f/news-eshttp://twitter.com/NIMexicohttp://www.facebook.com/pages/National-Instruments-de-M%C3%A9xico/148413492945http://www.ni.com/howtobuy/esa/