diseño módulo modbus murillo 2011

Upload: joshe-danielitho-hdez

Post on 01-Jul-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    1/273

    DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO DE ADQUISICIÓN REMOTA

    DE DATOS PARA PLC’S  MEDIANTE EL ESTÁNDAR DE COMUNICACIÓN

    MODBUS .

     ARLEY FERNANDO MURILLO MOSQUERA

    GLEN ALAN MARTÍNEZ CARABALÍ

    UNIVERSIDAD DE SAN BUENAVENTURA CALIFACULTAD DE INGENIERÍA

    PROGRAMA DE INGENIERÍA ELECTRÓNICA

    SANTIAGO DE CALI

    2011

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    2/273

    DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO DE ADQUISICIÓN REMOTA

    DE DATOS PARA PLC’S MEDIANTE EL ESTÁNDAR DE COMUNICACIÓN

    MODBUS .

     ARLEY FERNANDO MURILLO MOSQUERA

    GLEN ALAN MARTÍNEZ CARABALÍ

    PROYECTO DE GRADO

    DIRECTOR: Ing. Edgar Antonio Giraldo Orozco.

    UNIVERSIDAD DE SAN BUENAVENTURA CALI

    FACULTAD DE INGENIERÍA

    PROGRAMA DE INGENIERÍA ELECTRÓNICA

    SANTIAGO DE CALI

    2011

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    3/273

    Este trabajo de grado, en la modalidad de

    Proyecto de investigación, es aceptado como uno

    de los requisitos para obtener el título de

    Ingeniero Electrónico en la Universidad de SanBuenaventura Cali.

     ____________________________________

    Ing. EDGAR ANTONIO GIRALDO OROZCO 

     ________________________________________________

    Ing. CARLOS MAURICIO BETANCURT

     _______________________________________________

    Ing. ANDRÉS ERAZO 

    Santiago de Cali, 03 de Junio del 2011

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    4/273

     

    Le agradezco a Dios el darme el privilegio de vivir este momento y de

    poder culminar una etapa más de mi vida, además al Ingeniero Edgar

    Orozco por su colaboración y guía para la realización de este proyecto

    de grado.

    Este libro se lo dedico a mis padres, por ser ellos los culpables de que

    este logro se haya concretado, mis más sinceros agradecimientos,

    gracias por contar con Uds. después de todas la adversidades, este

    logro se obtuvo gracias a la confianza brindada por Uds. Muchas

    gracias.

     Arley Fernando Murillo Mosquera

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    5/273

    8

    TABLA DE CONTENIDO

    1  DESCRIPCIÓN DEL PROYECTO Y CARACTERÍSTICASGenerales 25 

    1.1  FORMULACIÓN DEL PROBLEMA  25

    1.2  JUSTIFICACIÓN  25

    1.3  OBJETIVOS  27

    1.3.1  Objetivo General  27

    1.3.2  Objetivo Específicos  27

    1.4  DESCRIPCIÓN DEL DOCUMENTO  27

    2  MARCO TEÓRICO. 29 

    2.1   ANTECEDENTES  29

    2.2  PLC  (Programable Logic  Controller )  30

    2.2.1  Funciones Básica de un PLC   31

    2.3  MICROCONTROLADORES  32

    2.4   AMPLIFICADORES OPERACIONALES  33

    2.4.1  Tipos de Configuración  35

    2.5  MÓDULO LCD  38

    2.6  SISTEMAS DE ADQUISICIÓN DE DATOS  40

    2.6.1  Elementos de un Sistema de Adquisición de Datos  42

    2.7  COMUNICACIONES SERIALES  45

    2.8  PROTOCOLOS DE COMUNICACIÓN  47

    2.8.1  Modbus  48

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    6/273

    9

    2.8.2  Descripción General  52

    3  DISEÑO E IMPLEMENTACIÓN DEL MÓDULO 85 3.1  DISPOSITIVO MAESTRO  86

    3.1.1  Cable de Red  87

    3.2  MÓDULO ESCLAVO  89

    3.2.1  Requerimientos Específicos del Módulo Esclavo  89

    3.2.2  Diseño del Módulo Esclavo  90

    3.2.3  Evaluacion de Costos  90

    4  DISEÑO E IMPLEMENTACIÓN DEL SOFTWARE DEL MÓDULO

    104 

    4.1  REQUERIMIENTOS DEL SOFTWARE   105

    4.2  DESARROLLO DEL SOFTWARE  DEL MICROCONTROLADOR  105

    4.3  ESTRUCTURA DEL PROGRAMA PRINCIPAL  106

    4.3.1  Inicializaciones   107

    4.3.2  Configuración Módulo Esclavo  111

    4.3.3  Interfaz Pantalla LCD  112

    4.3.4  Interfaz Pulsadores  115

    4.3.5   Adquisición de Datos  123

    4.3.6   Modbus  125

    5  PRUEBAS Y RESULTADOS 132 

    5.1  SOFTWARE UTILIZADO PARA LAS PRUEBAS  132

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    7/273

    10

    5.2   CONFIGURACIÓN DE LOS MÓDULOS MBUS _ CTRL y MBUS _ MSG  136

    5.2.1  MBUS_CTRL  137

    5.2.2  MBUS_MSG  138

    5.3  COMPROBACIÓN DE LA FUNCIÓN 02(LECTURA DE ENTRADA DIGITAL) Y

    DE COMUNICACIÓN CON El PLC   140

    5.4  COMPROBACIÓN DE LA FUNCIÓN 04(LECTURA DE ENTRADA ANÁLOGA) 

    146

    5.5  COMPROBACIÓN DE CAMBIO DE VELOCIDAD  152

    5.6  PRUEBA DE CAMBIO DE DIRECCIÓN DEL ESCLAVO  155

    5.7  COMPROBACIÓN DE ERRORES  156

    5.7.1  Vencimiento del Timeout  de Recepción (Error 03)  156

    5.7.2  Función No Soportada (Error 101)  159

    5.7.3  Dirección de Datos No Soportada (Error 102 Función 02)  160

    5.7.4  Dirección de Datos No Soportada (Error 102 Función 04)  162

    6  CONCLUSIONES Y RECOMENDACIONES 165 

    6.1  CONCLUSIONES  165

    6.2  RECOMENDACIONES  166

    7  BIBLIOGRAFÍA 168 

    8  ANEXOS 171 

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    8/273

    11

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    9/273

    12

    LISTA DE FIGURAS

    Figura 2.1-Símbolo del amplificador operacional  34 

    Figura 2.2-Circuito Esquemático del Amplificador No inversor   35 

    Figura 2.3-Circuito Esquemático del Amplificador Inversor   36 

    Figura 2.4-Circuito Esquemático del Amplificador Diferencial  37 

    Figura 2.5-Circuito Esquemático del Amplificador Seguidor de Voltaje

      38 

    Figura 2.6-Modulo LCD  39 

    Figura 2.8-Filtro Antialising   42 

    Figura 2.9-Sistema de Adquisición de Datos Análogos.  43 

    Figura 2.10-Trama de las Comunicaciones Seriales.  46 

    Figura 2.11-Comunicación General del Modbus.  50 

    Figura 2.12-Ejemplo de una Arquitectura de Redes de Modbus.  51 

    Figura 2.13-Trama General del Modbus.  52 

    Figura 2.14-Transacción del Modbus (libre de error).  54 

    Figura 2.15-Transacción del Modbus (Respuesta en Excepción)  55 

    Figura 2.16-Diagrama de Flujo de la Transacción del Modbus.  59 

    Figura 2.17-Modo Unicast.  73 

    Figura 2.18-Modo Broadcast.  74 

    Figura 2.19-Tiempos de la Trama RTU .  76 

    Figura 2.20-Trama de Mensaje RTU.  77 

    Figura 2.21-Tiempos de Caracter de la Trama RTU.  77 

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    10/273

    13

    Figura 2.22-Topologia General de 2 Hilos.  84 

    Figura 2.23-Topologia General de 4 Hilos.  84 

    Figura 3.1-Esquema de Diseño.  85 

    Figura 3.2 Circuito de las Entradas Digitales con Optoacopladores.  92 

    Figura 3.3-Circuito de las Entradas Digitales  94 

    Figura 3.4-Puerto de Comunicación RS-485  95 

    Figura 3.5-Conector Macho DB-9  96 

    Figura 3.6-Circuito Interfaz de Usuario  97 

    Figura 3.7-Circuito Esquemático General de la DAQ.  101 

    Figura 4.1-Diagrama de Flujo Rutina General.  107 

    Figura 4.2-Diagrama de Flujo Rutina Inicializaciones  108 

    Figura 4.3-Diagrama de Flujo Rutina Configuración del Modulo

    Esclavo  111 

    Figura 4.4Diagrama de Flujo Rutina Interfaz LCD  113 

    Figura 4.5-Diagrama de Flujo Rutina Interfaz Pulsadores  115 

    Figura 4.6-Diagrama de Flujo Subrutina Función Up  117 

    Figura 4.7-Diagrama de Flujo Subrutina Función Down  120 

    Figura 4.8-Diagrama de Flujo Subrutina Función Ok   122 

    Figura 4.9-Diagrama de Flujo Rutina Adquisición de Datos.  123 Figura 4.10-Diagrama de Flujo Rutina Modbus  126 

    Figura 4.11-Diagrama de Flujo Subrutina Leer Entradas Digitales   128 

    Figura 4.12-Diagrama de Flujo Subrutina Leer Entradas Análogas  130 

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    11/273

    14

    Figura 5.1-Sistema Para Las Pruebas  133 

    Figura 5.2-Árbol de Operaciones  134 

    Figura 5.3-Ventana Status Chart  136 

    Figura 5.4-Moduló MBUS_CTRL  137 

    Figura 5.5-Moduló MBUS_MSG  139 

    Figura 5.6-Comprobación de la Función 02-a  141 

    Figura 5.7-Comprobación de la Función 02-b  143 

    Figura 5.8-Comprobación de la Función 02-c  145 

    Figura 5.9-Comprobación de la Función 04-a  147 

    Figura 5.10-Comprobación de la Función 04-b  149 

    Figura 5.11-Comprobación de la Función 04-c  151 

    Figura 5.12-Comprobación de Cambio de Velocidad 1200  153 

    Figura 5.13-Comprobación de Cambio de Velocidad 19200  154 

    Figura 5.14-Prueba de Cambio de Dirección del Esclavo   155 

    Figura 5.15-Vencimiento del Timeout  de Recepción-1  157 Figura 5.16-Vencimiento del Timeout  de Recepción-2  158 

    Figura 5.17-Función No Soportada  159 

    Figura 5.18-Dirección de datos no soportada función 02-a  161 

    Figura 5.19-Dirección de Datos No Soportada Función 02-b  162 

    Figura 5.20-Dirección de Datos No Soportada Función 04-a  163 

    Figura 5.21-Dirección de Datos No Soportada Función 04-b  164 

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    12/273

    15

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    13/273

    16

    LISTA DE TABLAS

    Tabla 2.1-Referencias y Precios.  29 

    Tabla 2.2-Asignación de pines del LCD  40 

    Tabla 2.3-Modelo del Dato Modbus  57 

    Tabla 2.4-Categoría del Código de Función del Modbus.  63 

    Tabla 2.5-Definición de Código de Función Público.  64 

    Tabla 2.6-Envió de Función 04  67 

    Tabla 2.7-Envió de Función 04  69 

    Tabla 2.8-Códigos de Error de Ejecución del Protocolo Modbus en el

    Esclavo.  71 

    Tabla 2.9-Secuencia de Bit  en Modo RTU.  75 

    Tabla 2.10-Secuencia de Bit  en Modo RTU  (Sin Paridad).  76 

    Tabla 2.11Trama de Mensaje RTU.  76 

    Tabla 2.12-Codificación ASCII.  79 

    Tabla 3.1-Tipo de Modelo del Dato  87 

    Tabla 3.2-Datos Técnicos Generales de un Cable de Red.  88 

    Tabla 3.3-Asignación de Pines del Puerto de Comunicación del S7-200 

      88 

    Tabla 3.4 Estados de Control del Integrado MAX485.  95 

    Tabla 3.5-Asignación de Pines  99 

    Tabla 3.5-Costos de Implementación  99 

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    14/273

    17

    Tabla 4.1-Parámetros de la DAQ  104 

    Tabla 4.2-Variables de Programa  109 

    Tabla 5.1Parámetros de la Operación MBUS_CTRL  135 

    Tabla 5.2-Parámetros de la operación MBUS_MSG  135 

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    15/273

    18

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    16/273

    19

    LISTA DE ANEXOS

     Anexo A-Manual de Usuario  172 

     Anexo B-Datos Técnicos del Microcontrolador PIC16F877A  191  Anexo C-Datos Técnicos del Circuito Integrado MAX485  228 

     Anexo D-Datos técnicos del Circuito Integrado LM324  237 

     Anexo E-Datos técnicos del Circuito Integrado 4N35  246 

     Anexo F-Datos técnicos del PLC (Manejo de la Librería Modbus)  259 

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    17/273

    20

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    18/273

    21

    GLOSARIO

    ALIASING:  es el efecto que causa que señales continuas distintas se tornenindistinguibles cuando se les muestrea digitalmente. 

    AO:  amplificadores operacionales son dispositivos electrónicos que ofrecen

    múltiples aplicaciones en el procesamiento de señales eléctricas, los cuales

    modifican la magnitud y/o fase de estas.

    DAQ: es el módulo de digitalización o tarjeta de Adquisición de Datos.

    EIA/TIA-232: Es una norma para una interfaz en serie de 25 pines, que se puede

    utilizar para conectar ordenadores a componentes que forman parte de una red.

    (EIA/TIA-232 se denominaba anteriormente RS-232.)

    EIA/TIA-422:(anteriormente RS-422) es un protocolo de comunicación de datos

    serial que describe comunicaciones 4-wire, full-duplex, línea diferencial y multi-

    drop. Suministra transmisión de datos balanceada con líneas de transmisión

    unidirecional/no reversible, terminadas o no terminadas. Al contrario de RS-485

    (que es multi-point en vez de multi-drop), EIA-422 no permite múltiples drivers

    solamente múltiples receivers.

    EIA-485  (antes RS-485 o RS485) es Modelo de OSI capa física eléctrico

    especificación de dos alambre, half-duplex, de múltiples puntos conexión serial. 

    http://es.wikipedia.org/wiki/Muestreohttp://es.wikilingue.com/pt-es/index.php?title=RS-485&action=edit&redlink=1http://www.worldlingo.com/ma/enwiki/es/OSI_modelhttp://www.worldlingo.com/ma/enwiki/es/Physical_layerhttp://www.worldlingo.com/ma/enwiki/es/Electricityhttp://www.worldlingo.com/ma/enwiki/es/Specification_%28technical_standard%29http://www.worldlingo.com/ma/enwiki/es/Wirehttp://www.worldlingo.com/ma/enwiki/es/Duplex_%28telecommunications%29http://www.worldlingo.com/ma/enwiki/es/Multipointhttp://www.worldlingo.com/ma/enwiki/es/Serial_communicationhttp://www.worldlingo.com/ma/enwiki/es/Serial_communicationhttp://www.worldlingo.com/ma/enwiki/es/Multipointhttp://www.worldlingo.com/ma/enwiki/es/Duplex_%28telecommunications%29http://www.worldlingo.com/ma/enwiki/es/Wirehttp://www.worldlingo.com/ma/enwiki/es/Specification_%28technical_standard%29http://www.worldlingo.com/ma/enwiki/es/Electricityhttp://www.worldlingo.com/ma/enwiki/es/Physical_layerhttp://www.worldlingo.com/ma/enwiki/es/OSI_modelhttp://es.wikilingue.com/pt-es/index.php?title=RS-485&action=edit&redlink=1http://es.wikipedia.org/wiki/Muestreo

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    19/273

    22

    OPC:  (OLE for Process Control ) es un estándar de comunicación en el campo del

    control y supervisión de procesos. Este estándar permite que diferentes fuentes de

    datos envíen datos a un mismo servidor OPC, al que a su vez podrán conectarse

    diferentes programas compatibles con dicho estándar.

    PIC: (Peripheral Interface Controller) son una familia de micro controladores tipo

    RISC fabricados por  Microchip Technology Inc. 

    PLC: (Programable logic controller ), es un equipo electrónico, programable en

    lenguaje no informático, diseñado para controlar en tiempo real y en ambiente de

    tipo industrial, procesos secuenciales.

    TCP/IP:   Es el conjunto de protocolos usado en Internet, suministrando un

    mecanismo de transporte de datos confiable entre máquinas y permitiendo

    interoperabilidad entre diversas plataformas.

    http://es.wikipedia.org/wiki/Microcontroladorhttp://es.wikipedia.org/wiki/RISChttp://es.wikipedia.org/wiki/Microchip_Technology_Inc.http://es.wikipedia.org/wiki/Microchip_Technology_Inc.http://es.wikipedia.org/wiki/Microchip_Technology_Inc.http://es.wikipedia.org/wiki/Microchip_Technology_Inc.http://es.wikipedia.org/wiki/RISChttp://es.wikipedia.org/wiki/Microcontrolador

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    20/273

    23

    RESUMEN

    El objetivo de este proyecto es diseñar e implementar un módulo de adquisición

    remota de datos para PLC’s mediante el estándar de comunicación Modbus para

    el laboratorio de automatización de la Universidad de San Buenaventura Seccional

    Cali. Se realizó un estudio de investigación aplicativo, basado en las

    generalidades del estándar Modbus,  la adquisición de datos, las comunicaciones

    seriales y los diferentes componentes que fueron necesarios para la

    implementación.

    Como resultado de la investigación, se planteó un diseño del hardware compuesto

    de una tarjeta de adquisición de datos utilizada como dispositivo Esclavo. El

    diseño tiene una Unidad de procesamiento (Microcontrolador), 8 entradas digitales

    ópticamente aisladas, 2 entradas analógicas, interfaz de usuario (LCD y Teclado)

    y comunicación serial por el puerto RS485  con configuración de par trenzado bajo

    el protocolo de comunicación Modbus. El diseño del software del microcontrolador

    fue realizado sobre la herramienta de programación PIC C Compiler   de la firma

    CCS  (Custom  Computer   Services), el cual hizo la programación muy flexible,manejando una estructura sencilla y apropiada para esta aplicación. El software se

    implemento de acuerdo a los requisitos del protocolo Modbus y los requerimientos

    técnicos exigidos por la implementación del hardware para el Sistema de

     Adquisición, Procesamiento de Datos (Análogos-digitales) y la Interfaz de Usuario.

    Se realizaron pruebas de comunicación Modbus y adquisición de datos al módulo

    Esclavo una vez terminada su construcción, verificando así la búsqueda de fallas

    de diseño y de operación para el mejoramiento del correcto funcionamiento del

    dispositivo.

    El proyecto demostró que es posible diseñar y construir módulos de comunicación

    Modbus con tecnología propia.

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    21/273

    24

    INTRODUCCIÓN

    El diseño del módulo de comunicaciones Esclavo Modbus, se implementaconsiderando la necesidad de mejorar las aplicaciones prácticas del laboratorio de

    Ingeniería Electrónica con respecto al aprendizaje del área Industrial de la

    Universidad San Buenaventura Cali. La opción por optar en conseguir este módulo

    de comunicaciones es crítica, ya que Los requerimientos técnicos son bastante

    amplios e incluso los costos son altamente elevados y por eso la solución

    planteada es el diseño e implementación de una interfaz prototipo (tarjeta), que

    tenga opciones de acceso a dispositivos industriales mediante entradas digitales y

    analógicas, donde la comunicación con el controlador se hace por el puerto serial

    RS485, con configuración de 2 hilos, con protocolo Modbus.

    Para determinar el prototipo a trabajar en este proyecto se presentara una

    investigación específica del protocolo Modbus  como eje, desde su forma de

    comunicación hasta su manera de funcionamiento. Este protocolo debe cumplir

    ciertas condiciones de comunicación de tipo especifico como por ejemplo, su

    velocidad de transmisión y recepción, su hasta su modo básico de transmisiónserial Halfduplex .

     Adicionalmente al tratarse esto, el hardware y el software deberán diseñarse de tal

    forma que soporte estas condiciones físicas eficientemente, donde el hardware 

    permitirá el desarrollo del software  para la adquisición de datos Análogos-

    Digitales, el control y comunicación.

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    22/273

    25

    1 DESCRIPCIÓN DEL PROYECTO Y CARACTERÍSTICAS

    GENERALES

    1.1 FORMULACIÓN DEL PROBLEMA

    En la industria de automatización con Programmable Logic Controllers  (PLC ) se

    utiliza la adquisición de datos remota mediante módulos con bus de campo; este

    tipo de buses flexibiliza la expansión de nuevos transmisores o actuadores en un

    sistema ya instalado, también permite la reducción masiva de cables y costos

    asociados. Modbus es un bus de campo y su frecuente aplicación en la industriacolombiana y de la región hace que sea importante tenerlo en cuenta para estudiar

    su estructura y campo de aplicación.

    La Universidad de San Buenaventura Seccional Cali, cuenta con PLC’s, los cuales

    tienen incorporado la comunicación por bus de campo con el estándar Modbus,

    pero sus ventajas, características y las diversas aplicaciones que se pueden

    implementar en él, no son utilizadas en gran parte debido a que no cuenta con

    módulos que realicen la interfaz con comunicación Modbus entre los sistemas de

    medida o de salida y el PLC , y así permitir cobijar en su totalidad las

    características del puerto de comunicación Modbus.

    1.2 JUSTIFICACIÓN

    En la actualidad el Protocolo Modbus, es un bus de campo muy usado en la regióny en el mundo debido a su simplicidad y especificación abierta, permitiendo llevar

    a cabo proyectos de gran complejidad y obtener un funcionamiento fiable,

    facilitando así un mayor rango de aplicaciones que son implementadas por el

    sector privado, público y académico, por estas razones muchos dispositivos

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    23/273

    26

    utilizan la comunicación  Modbus  tales como PLC , Human Machine Interface 

    (HMI)1, sensores y actuadores remotos.

     Además el Modbus tiene la ventaja que puede alcanzar distancias muy largas con

    un buen aislamiento a las perturbaciones y conectar múltiples dispositivos a la red,dando significativas ventajas en el sector industrial. Este atributo con que cuenta el

    Modbus  se debe a su capa física RS-485   que define sus niveles de voltaje y la

    cantidad de dispositivos que se pueden conectar en una misma red. Con lo

    anterior mencionado la comunicación Modbus  en el ámbito didáctico permite

    implementar múltiples aplicaciones como comunicación con interfaces hombre

    máquina, comunicación con sensores y actuadores entre otras, dándole al

    estudiante una perspectiva más amplia respecto a las comunicaciones industrialesy la adquisición remota de datos.

    Desarrollando en su totalidad este proyecto se dotará al laboratorio de

    automatización de un módulo de adquisición remota de datos con comunicación

    Modbus, el cual servirá como herramienta de aprendizaje y de desarrollo de

    nuevas aplicaciones con PLC   y comunicaciones industriales. Este módulo

    pretende ser una solución económica con tecnología propia a partir de

    conocimientos adquiridos como ingenieros en formación, permitiendo dar nuevas

    bases de desarrollo de nuevos proyectos de grado y mejorar la formación

    académica en comunicaciones industriales y adquisición de datos.

    Este prototipo se desarrolla con elementos adquiridos en la región y que permita

    ser una solución económica en comparación con los módulos existentes en el

    mercado de este tipo.

    1 HMI se usa para referirse a la interacción entre humanos y máquinas.

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    24/273

    27

    1.3 OBJETIVOS

    1.3.1 Objetivo General

    Diseñar e implementar un módulo de adquisición remota de datos para PLC’s 

    mediante el estándar de comunicación Modbus  para el laboratorio de

    automatización de la Universidad de San Buenaventura Seccional Cali.

    1.3.2 Objetivo Específicos

      Investigar el estado del arte y las generalidades del estándar Modbus. 

      Diseñar el sistema de acondicionamiento de señales, los filtros y el

    aislamiento del módulo de adquisición.

      Identificar el microcontrolador con las características requeridas para la

    aplicación.

      Implementar el protocolo de comunicación Modbus  en el

    microcontrolador.

      Determinar e implementar el hardware necesario para la capa física RS-

    485. 

      Realizar pruebas de adquisición de datos para verificación de conversión

    de señales.

      Realizar pruebas de comunicación Modbus con el PLC. 

    1.4 DESCRIPCIÓN DEL DOCUMENTO

    Para el desarrollo del proyecto se traza el siguiente planteamiento:

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    25/273

    28

    En el Capítulo 1 se analiza el problema, se fijan objetivos para luego establecer en

    los capítulos posteriores el diseño general del proyecto.

    Consecutivamente en el Capítulo 2 se presenta la teoría sintetizada del protocolo

    Modbus, de los sistemas de adquisición de datos, las comunicaciones seriales y

    los PLC , información que sirve para poder lograr los objetivos que se quieren

    alcanzar.

    Consecuentemente en el capítulo 3 se plantea el diseño del hardware del módulo

    Esclavo, teniendo en cuenta los requerimientos del prototipo a crear.

    Después en el capítulo 4 se presenta todo el desarrollo del software  necesario

    para llevar a cabo el protocolo Modbus  y la adquisición de datos en el

    microcontrolador del dispositivo Esclavo, donde se describe detalladamente cada

    uno de los diagramas de flujo y los programas con sus respectivas aplicaciones.

    En el capítulo 5 se presentan las pruebas en el diseño de la tarjeta de adquisición

    de datos y los resultados obtenidos de las pruebas.

     Al final se presentan las conclusiones obtenidas una vez se ha terminado el

    proceso de implementación y por último las recomendaciones de la construccióndel prototipo

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    26/273

    29

    2 MARCO TEÓRICO.

    2.1 ANTECEDENTES

    En la Escuela Politécnica Nacional de Quito Ecuador, se diseñó un prototipo de un

    módulo Esclavo de control para protocolo Modbus  con entradas y salidas

     Analógicas-Digitales como proyecto de grado, con el objetivo de solucionar

    problemas de mediciones de temperatura en una empresa local de Ecuador. El

    módulo consiste en un sistema embebido en un PIC  con una entrada y una salida

    digital, 2 entradas y 2 salidas análogas, el módulo se comunica con un

    computador mediante medio físico RS-485.

    La empresa B&B Electronics [1] comercializa dispositivos de adquisición de datos

    remotos con comunicación Modbus con diferentes funciones.

    Tabla 2.1-Referencias y Precios. 

    ModeloAnálogas Digitales

    Precio (US)Salidas Entradas Salidas Entradas

     ADAM-4051 / / / 16 $ 140,00 ADAM-4069 / / 8 / $ 210,00

     ADAM-4068 / / 8 / $ 165,00

     ADAM-4019+ / 8 / / $ 350,00

     ADAM-4118 / 8 / / $ 285,00

     ADAM-4024 4 / / / $ 275,00

    En la Tabla 2.1 se puede observar los diferentes precios y modelos de adquisiciónremota de datos, donde la gran desventaja de estos dispositivos es que no

    integran las I/O en el mismo dispositivo, si no que vienen aparte y con unos costos

    de compra muy altos. El prototipo que se implementó incorpora entradas análogas

    y digitales dentro del mismo dispositivo, lo cual es una gran ventaja en

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    27/273

    30

    comparación de los dispositivos mostrados. También su diseño se implementó con

    elementos económicos y asequibles que se encuentran dentro del mercado local.

    También se investigó que la compañía DHG  [2]  tiene a disposición en su

    inventario el módulo de adquisición de datos D500M de 4 entradas análogas; este

    dispositivo viene provisto de conexiones directas para 4 señales análogas del

    mismo tipo y rango para cualquier dispositivo con puerto RS-485. El módulo

    permite conexiones con una gran variedad de sensores y suministra todas la

    señales acondicionadas, ajustada, linealizadas y convertidas a unidades de

    ingeniería. Los valores del dato son trasmitidos vía RS-485 usando el protocolo

    DGH ASCII o el protocolo  Modbus RTU . El protocolo es seleccionado por el

    usuario lo cual brinda la posibilidad conectar  As  Interfaces  con algún de estos

    protocolos.

    2.2 PLC (Programable  Logic  Control ler )

    Un PLC   o controlador Lógico Programable, son dispositivos electrónicos muy

    usados en la Automatización industrial capaces de controlar procesos, sistemas o

    maquinas usadas en la industria. En principio, un PLC  contiene entradas-salidas,

    las cuales se conectan directamente a dispositivos como elementos primarios y

    finales donde el estado de las salidas, dependen del estado de las entradas y la

    lógica del programa.

    En forma general la estructura básica de cualquier autómata programable es:

      Fuente de alimentación: es la encargada de convertir la tensión de la red,

    220 . a baja tensión de C.C. normalmente 24V, siendo esta la tensión de

    trabajo en los circuitos electrónicos que forma el Autómata.

      CPU : la Unidad Central de Procesos es el auténtico cerebro del sistema. Es

    el encargado de recibir órdenes del operario a través de la consola de

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    28/273

    31

    programación y el módulo de entradas. Después las procesa para enviar

    respuestas al módulo de salidas.

      Módulo de entradas:  aquí se unen eléctricamente los captadores(interruptores, finales de carrera.). La información que recibe la envía al

    CPU para ser procesada según la programación. Hay 2 tipos de captadores

    conectables al módulo de entradas: los pasivos y los activos.

      Módulo de salida: es el encargado de activar y desactivar los actuadores

    (bobinas de contactores, motores pequeños.). La información enviada por

    las entradas a la CPU , cuando está procesada se envía al módulo de

    salidas para que estas sean activadas (también los actuadores que estánconectados a ellas). Hay 3 módulos de salidas según el proceso a controlar

    por el autómata: relés, triac y transistores.

      Terminal de programación:  la terminal o consola de programación es el

    que permite comunicar al operario con el sistema. Sus funciones son la

    transferencia y modificación de programas, la verificación de la

    programación y la información del funcionamiento de los procesos.

      Periféricos: ellos no intervienen directamente en el funcionamiento del

    autómata pero sí facilitan la labor del operario.

    2.2.1 Funciones Básica de un PLC

      Detección: lectura de la señal de los captadores distribuidos por el sistema

    de fabricación.

      Mando:  elaborar y enviar las acciones al sistema mediante los

    accionadores y preaccionadores.

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    29/273

    32

      Dialogo hombre maquina: mantener un diálogo con los operarios de

    producción, obedeciendo sus consignas e informando del estado del

    proceso.

      Programación: Para introducir, elaborar y cambiar el programa de

    aplicación del autómata. El dialogo de programación debe permitir modificar

    el programa incluso con el autómata controlando la maquina.

    2.3 MICROCONTROLADORES

    Los micros controladores son circuitos integrados fundados bajo la arquitectura

    tradicional de John Von Neumann. 2En este modelo la unidad central de proceso o

    CPU   está conectada a una memoria única que contiene las instrucciones del

    programa y los datos. Este dispositivo electrónico maneja señales con la

    capacidad de efectuar tareas de adquisición y procesamiento de información de

    datos, el cual está compuesto de las siguientes características: Una CPU  (basado

    principalmente en un microprocesador de 4, 8 ó 16 bits), puertos paralelos de

    entrada y salida, puerto serie, Timers, contadores, memorias de datos (RAM ) y de

    programa (ROM ), reloj, y en algunos casos hasta convertidores analógicosdigitales, todo esto dentro de un solo chip. Debido a esto los microcontroladores

    están encaminados básicamente hacia un amplio rango de aplicaciones tales

    como; los sistemas de control de alarmas, tableros de control en la industria

    automotriz, en la instrumentación módica, en los teclados de computadora, en los

    sistemas portátiles de almacenamiento de datos, en equipos de laboratorio,

    etcétera. A pesar de que un microprocesador es más rápido que un

    microcontrolador para la ejecución de sus instrucciones, en la mayoría de los

    casos es necesario interconectarlo con dispositivos periféricos.

    En el mercado se encuentra una gran variedad de marcas y modelos entre las que

    se encontró: MICROCHIP , ATMEL, MOTOROLA, NATIONAL SEMICONCUCTOR ,

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    30/273

    33

    CYPRESS, PHILLIPS  y TEXAS  INSTRUMENTS. Estas compañías producen

    microprocesadores de las siguientes familias:

      INTEL las familias 8038, 8051 y 8052.

      MICROCHIP  se encuentran las familias PIC (familias 12, 14, 16, 17, 18).

      MOTOROLA  las familias 68HC05, 68HC08, 68HC11, 68HC12, 68HC16y

    MC68CXX.

       ATMEL las familias AT89 y AT91.

      TEXAS  INSTRUMENTS  las familias TMS370, TMS370C16 TMS370 y

    MSP430.

    2.4 AMPLIFICADORES OPERACIONALES

    Los amplificadores operacionales son dispositivos electrónicos que ofrecen

    múltiples aplicaciones en el procesamiento de señales eléctricas, los cuales

    modifican la magnitud y/o fase de estas.

     Algunas diversas aplicaciones son: amplificación, filtrado analógico, acoplamiento,

    rectificación, detección de umbral, conmutación digital, etc. [12]

    Los amplificadores operacionales se caracterizan por:

      Una Impedancia de Entrada muy alta.

      Una Impedancia de Salida bastante baja.

      Una Ganancia muy alta alrededor de los 10000.

      Un Ancho de Banda (BW ) que tiende a infinito.

      Una buena respuesta en frecuencia.

    El símbolo básico de un circuito operacional es un triangulo donde generalmente

    se representa con 5 pines (Véase Figura 2.1):

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    31/273

    34

    Figura 2.1-Símbolo del amplificador operacional

      Alimentación positiva (Vs+).

      Alimentación negativa (Vs-).

      Entrada no inversora (+).

      Entrada inversora (-).

      Salida (Vout).

    Donde al aplicar la teoría de AO y la teoría de circuitos eléctricos se encuentra que

    la ecuación que relaciona la salida en función de la entrada es:

    Ec. 1

    En este tipo de configuración el voltaje de entrada ingresa por el pin positivo (+)

    pero como la ganancia del operacional es muy grande, el voltaje de entrada

    positivo será igual al voltaje de entrada negativo

    Dado a su diferencia de potencial:

    Ec. 2

    Quedando La salida en función de la entrada:

    Ec. 3

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    32/273

    35

    2.4.1 Tipos de Configuración

    Casi todos los amplificadores operacionales están basados en estas 2

    configuraciones básicas; la configuración no inversora y la configuración inversora.

    2.4.1.1 Configuración No Inversora

    En este caso la señal a amplificar se aplica al pin no inversor (+) del Amplificador

    Operacional y como el nombre indica la señal de salida no está invertido respecto

    a la entrada. En la Figura 2.2 se observa el circuito del amplificador no inverso

    Figura 2.2-Circuito Esquemático del Amplificador No inversor

    Conociendo el voltaje en el pin inversor (-) podemos calcular la relación que existe

    entre el voltaje de salida (Vout) con respecto al voltaje de entrada (Vin) haciendo

    uso de un pequeño divisor de tensión.

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    33/273

    36

    Ec. 4

    Donde su ganancia es: en este caso la señal a amplificar se aplica al pin no

    inversor (+) del Amplificador Operacional y como el nombre indica la señal desalida no está invertido respecto a la entrada.

    Ec. 5

    2.4.1.2 Configuración Inversora

    Se denomina inversor ya qué la forma de la señal de salida es igual a la forma de

    la señal de entrada pero con la fase invertida a 180 grados. El análisis de este

    circuito es el siguiente: el voltaje positivo es igual al voltaje negativo los cuales

    serán igual a cero.

    Ec. 6

    En la Figura 2.3 se observa el circuito del amplificador inverso.

    Figura 2.3-Circuito Esquemático del Amplificador Inversor

    Donde la ecuación que relaciona la salida respecto a la entrada es:

    Ec. 7

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    34/273

    37

    Y su ganancia es:

    Ec. 8

    2.4.1.3 Configuración Diferencial

    Este amplificador es una combinación de las 2 configuraciones anteriores aunque

    está basada en los otros 2 circuitos, el amplificador diferencial tiene características

    únicas. Este circuito tiene aplicada señales en ambos terminales de entrada y

    utiliza la amplificación diferencial natural del amplificador operacional para 2

    funciones básicas tales como (Véase Figura 2.4):

      Acondicionamiento de señales análogas.

      Manipulación de pequeñas señales de baja potencia.

    Figura 2.4-Circuito Esquemático del Amplificador Diferencial

    Suponiendo que el circuito esta balanceado, la ecuación que caracteriza a estecircuito en función de la entrada es la siguiente:

    Ec. 9

    Donde su ganancia:

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    35/273

    38

    Ec. 10

    2.4.1.4 Configuración Seguidor de Voltaje

    Esta configuración tiene como función realizar el acople de impedancias, ya que,

    en teoría no consume ninguna corriente en su entrada y entrega señal en su

    salida.

    Figura 2.5-Circuito Esquemático del Amplificador Seguidor de Voltaje

    Como se puede apreciar en la Figura 2.5 la tensión de la señal de salida sigue a lade entrada, de ahí su nombre. Entonces la salida en términos de la entrada es:

    Ec. 11

    2.5 MÓDULO LCD  

    Un módulo LCD es un dispositivo electrónico digital que está constituido por una

    pantalla de cristal líquido, un controlador y dos memorias internas independientes:

    la DDRAM   y la CGRAM . Debido a esta peculiar disposición el módulo puede

    obtener eficientemente el mecanismo de mostrar los caracteres alfanuméricos con

    tan solo enviar el código  ASCII  asociado. El LCD tiene el siguiente aspecto físico

    como se ve en la Figura 2.6.

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    36/273

    39

    Figura 2.6-Modulo LCD  

    El módulo LCD  incorpora su propio método de comunicación para realizar

    operaciones de lectura y escritura. Es por ello, que el módulo LCD  cuenta conunos Bits de control con los cuales el dispositivo identifica cuando el dato en el bus

    es una instrucción o información a almacenar en la memoria, que

    automáticamente es desplegada en pantalla. RS es el Bit  de control que le indican

    al procesador cuando la palabra de transmisión es un dato (1) o instrucción (0).

    En la Figura 2.7 se muestra la asignación de pines correspondiente de un Módulo

    LCD con sus respectivas características.

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    37/273

    40

    Tabla 2.2-Asignación de pines del LCDNUMERO DEL PIN SÍMBOLO FUNCIÓN

    1 Vdd Fuente de Alimentación(5V)2 Vss Tierra (GND)3 Vo Contraste de Ajuste4 RS Registro de la Señal de Control H/ L5 R/W Señal de lectura / escritura H/L6 E Señal de Habilitación H7 DB0 Línea de Bus de Dato H/ L8 DB1 Línea de Bus de Dato H/ L9 DB2 Línea de Bus de Dato H/ L10 DB3 Línea de Bus de Dato H/ L

    11 DB4 Línea de Bus de Dato H/ L12 DB5 Línea de Bus de Dato H/ L13 DB6 Línea de Bus de Dato H/ L14 DB7 Línea de Bus de Dato H/ L

    2.6 SISTEMAS DE ADQUISICIÓN DE DATOS

    Una tarjeta de adquisición de datos es un sistema que utiliza sensores,transductores, amplificadores, convertidores analógico-digital ( A/D) y digital-

    analógico (D/A), que interactúan entre sí ofreciendo procesar información de un

    sistema físico del mundo real (datos-analógicos) en forma digitalizada, donde cada

    dispositivo no solo trabaja de manera individual sino que trabaja efectivamente con

    los demás componentes para que todo el sistema opere correctamente.

    Una vez que las señales eléctricas se transforman en digitales, se envían a través

    del bus de datos a la memoria del computador Personal Computer  (PC ). Los datos

    analógicos tomados del sistema físico se convierten en un valor de voltaje a través

    del conversor  A/D  que a su vez corresponde a una combinación binaria. Esta

    conversión requiere de un sensor o transductor que se encarga de leer la variable

    http://es.wikipedia.org/wiki/Bus_de_datoshttp://es.wikipedia.org/wiki/Bus_de_datos

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    38/273

    41

    física y de representar dicha variable en un valor de voltaje o corriente, por el cual

    tenemos que hacer llegar al ADC del microcontrolador.

    Para que el ADC  pueda realizar la conversión del valor analógico, se le tiene que

    agregar un voltaje de referencia, porque éste es el que indica precisamente cuál

    es el rango de operación de la entrada del  ADC.  Todos los  ADC   del Peripheral

    Interface Controller  (PIC ), aceptan como máximo un rango de operación que llega

    hasta 5V , por lo que podemos establecer rangos de operación de cualquier valor

    de voltaje, siempre y cuando no rebasemos los 5V . [14] 

    Una vez definido el rango, la señal a digitalizar posee una frecuencia alta de

    operación y para reproducirla en un proceso posterior hay que tomar un buennúmero de muestras donde así digitalizarlas como tal. En caso contrario,

    aparecerá el fenómeno del aliasing (Véase Figura 2.8),  que se produce al infra-

    muestrear. Si la señal sufre aliasing, es imposible recuperar el original.

    Velocidad de muestreo recomendada:

      2*frecuencia mayor (medida de frecuencia)

      10*frecuencia mayor (detalle de la forma de onda)

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    39/273

    42

    Figura 2.7-Filtro Antial is ing  

    2.6.1 Elementos de un Sistema de Adquisición de Datos

    Un sistema de adquisición de datos (Véase Figura 2.9).consta básicamente de:

    Las fuentes de señales, que son de dos clases:

      Elementos medición directa:  producen la señal como resultado de

    cantidades eléctricas, como mediciones de voltaje, de corriente, de

    resistencia, de frecuencia, etc.

      Transductores: dispositivos que censan los fenómenos físicos y convierten

    parámetros no eléctricos en señales eléctricas, ejemplos de ellos son las

    resistencias detectoras de temperatura, Detectores Resistivos de

    Temperatura (RTD’S ), los transductores de flujo, transductores de presión,

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    40/273

    43

    etc. En cada caso las señales eléctricas son proporcionales a los

    parámetros físicos que monitorean.

    2.6.1.1 Elementos de Acondicionamiento de Señales

    Estos elementos realizan la tarea de amplificar las señales de bajo nivel, aislarlas

    y filtrarlas para tomar mediciones más precisas. Además algunos transductores

    usan voltaje o corriente como excitación para poder producir su valor de salida.

    Figura 2.8-Sistema de Adquisición de Datos Análogos.

    Etapa de Acondicionamiento

    El problema es que la mayoría de los sensores y transductores generan señales

    que se debe acondicionar antes de que un dispositivo tarjeta de Adquisición de

    Datos (DAQ)  que pueda adquirir con precisión la señal. Este procesamiento al

    frente, conocido como acondicionamiento de señal, incluye funciones como

    amplificación, filtrado, aislamiento eléctrico y multiplexado. 

    El acondicionamiento de señales se divide entonces en:

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    41/273

    44

      Ampl i f icación:   Es el tipo más común de acondicionamiento. Cuando las

    señales son muy pequeñas deben amplificarse para incrementar su

    resolución y reducir el ruido.

      Aislamiento:  Las señales del transductor  del medio ambiente y las señales

    del equipo receptor   se aíslan para reducir ruidos que las distorsionan. En

    las señales del receptor se aíslan para evitar transiciones de voltaje que lo

    dañen. Una razón adicional es asegurar que las lecturas del equipo de

    medición no sean afectadas por diferencias en potenciales de tierra o

    voltajes de modo común, ya que esta diferencia puede resultar

    imprecisiones en la señal adquirida, o si la diferencia es muy grande, puede

    dañar el sistema de medición.

      Mult iplexado:   Es una técnica para medir varias señales con un solo

    dispositivo. A menudo se multiplexa para monitorear diferentes fuentes de

    señales de lenta variación como por ejemplo la temperatura. El instrumento

    toma muestra de un canal, cambia al próximo canal y toma otra muestra, y

    así continúa. Se aconseja que los multiplexores se utilicen antes del

    conversor   y después del condicionamiento de la señal, ya que de esta

    manera no molestará a los aislantes que podamos tener.

      Fil trado:   El filtro elimina las señales indeseadas de las que se están

    tratando de medir. Para las señales de tipo DC (temperatura ) se usa un

    filtro de ruido que reducen la precisión de la medición y para las señales de

    tipo AC tales como las de vibración, requieren otros filtros conocidos como

    filtros  antialiasing,  los cuales son filtros pasa bajas con una ventana de

    corte muy alta para remover casi completamente las frecuencias

    indeseables.

      Excitación:  Prácticamente es la inducción electromagnética que genera la

    etapa de acondicionamiento hacia algunos transductores como galgas

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    42/273

    45

    extensiometricas, termistores o RTD que por su constitución necesitan de la

    misma.

      Lineal izacion:   Muchos transductores como los termopares, tienen unarespuesta no lineal a los cambios en el fenómeno que están midiendo por lo

    que se requieren rutinas de Linealizacion que calculan los nuevos valores

    correspondientes a su medición.

    Instrumentos de registro grafico. Registran el comportamiento en el tiempo

    de las señales monitoreadas. Estos registros se pueden imprimir en rollos

    de papel o en una pantalla de computador.

    2.7 COMUNICACIONES SERIALES

    El concepto de comunicación serial es simple, es un código de codificación binario

    que representa los caracteres de los mensajes digitales de los Bits a través de 0 y

    1, en serie , uno detrás de otro, lo que hacen que la transmisión sean mucho más

    lentas que sus homólogas "paralelo" en las que se transmiten varios Bits a la vez.

    Tanto en dispositivos de transmisión como en dispositivos de recepción lospuertos serie son los dispositivos a través de los cuales los datos son transferidos.

    En este código los 0 y 1 son caracteres, por lo tanto las comunicaciones seriales

    son un código binario por que usan solo 2 valores posibles ceros y unos. Este

    concepto ha seguido los estándares definidos desde 1969 por el RS-

    232(Recommended Standard  232).

    La velocidad de transmisión de datos es expresada en Bits por segundo o

    Baudios, donde todo tipo de comunicación serial tiene que realizarse en tiempos

    correctos, es decir que, los dispositivos a comunicarse deben tener la misma

    velocidad de transferencia, donde comúnmente es de 9600bps que es equivalente

    a decir también 1Bit  cada 10µS.

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    43/273

    46

    Existen varios modos básicos para las transmisiones serie:

      Simplex: Un dispositivo transmite y el otro recibe.

      Halfduplex : Ambos dispositivos transmiten pero no simultáneamente, esto

    quiere decir que mientras un dispositivo transmite la otra espera hasta que

    lo reciba.

      Full-duplex : Ambos equipos transmiten simultáneamente. Para ello se

    requieren dos líneas independientes, transmisión y recepción; la línea de

    transmisión de un equipo se conecta a la entrada de recepción del otro y

    viceversa. Los puertos serie del PC  son capaces de utilizar este modo.

      Asíncronas: Las transmisiones asíncronas son aquellas en que los Bits

    que constituyen el código de un carácter se emiten con la ayuda de

    impulsos suplementarios que permiten mantener en sincronismo en los dos

    extremos.

      Síncronas: En las transmisiones síncronas los caracteres se transmiten

    consecutivamente, no existiendo ni Bit de inicio ni Bit de parada entre los

    caracteres, estando dividida la corriente de caracteres en bloques,

    enviándose una secuencia de sincronización al inicio de cada bloque.

    Figura 2.9-Trama de las Comunicaciones Seriales.

    Las características seriales más importantes son: tasa de baudios, Bits de datos,Bits de paro, y paridad (Véase Figura 2.10).

      Tasa de baudios: es una unidad de medición para comunicación que indica

    el número de Bits transferidos por segundo.

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    44/273

    47

      Bits   de datos: son mediciones de los Bits  de datos actuales en una

    transmisión, la cantidad de datos actuales puede ser que no complete 8

    Bits. Los valores estándar para los paquetes de datos son de 5, 7, y 8 Bits.El marco que usted elija dependerá de la información que está transfiriendo.

      Bits  de paro: son utilizados para señalar el término de comunicaciones en

    un paquete sencillo.

      B it  de paridad: este Bit  se utiliza para comprobar si los Bits de datos han

    sido bien recibidos. Existen estas variantes:Paridad par : si la suma de los Bits de datos es par, el Bit  de paridad es 1,

    si es impar, el Bit  de paridad es 0.

    Paridad impar: si la suma de los Bits de datos es impar, el Bit  de paridad

    es 1, si es par, el Bit   de paridad es 0.Sin paridad. No se utiliza el Bit   de

    paridad.

    2.8 PROTOCOLOS DE COMUNICACIÓN

    En la actualidad existen diversos protocolos que rigen las comunicaciones en el

    ambiente industrial, con diferentes características tales como, el medio físico en la

    que se trasporta los datos, la manera en que se segmenta, se codifican y se

    interpretan los datos para ser trasmitidos y recibidos.

    Un protocolo de comunicación es un conjunto de reglas que permiten la

    transferencia e intercambio de datos entre distintos dispositivos que conformanuna red. [13]

    Con la evolución de los microprocesadores, ha sido más factible su unificación a

    redes industriales con notable ventajas como:

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    45/273

    48

      Mayor precisión originada por la integración de tecnología digital en las

    mediciones.

      Mejor y mayor abarcamiento de información de los dispositivos.

      Monitoreo remoto de componentes.

    Los buses de campo permite la integración de equipos de medición y control de

    variables de procesos. Su objetivo primordial es sustituir las conexiones punto a

    punto entre los elementos de campo y el equipo de control.

    Normalmente son redes digitales, bidireccionales, multipunto, montadas sobre un

    bus en serie, que conecta dispositivos de campo como PLC ’ s,  transductores,

    actuadores, sensores y equipos de supervisión.

    Los buses con mayor presencia en el sector industrial son:

      HART

      Profibus

      Fieldbus Foundation

      CAN bus

      InterBus-S

      Seriplex

       ASI

      InterBus Loop

      Modbus

      Modbus Plus

    2.8.1 Modbus

    [8]El protocolo Modbus  fue desarrollado por Modicon a finales de 1980 para

    comunicación entre PLC ’ s. La designación Modbus Modicon  corresponde a una

    marca registrada por Gould Inc .

    Como en tantos otros casos, la designación no corresponde propiamente alestándar de red, incluyendo todos los aspectos desde el nivel físico hasta el de

    aplicación, sino a un protocolo de enlace (nivel  OSI 2 )3. Puede por tanto,

    3 El modelo de referencia de Interconexión de Sistemas Abiertos (OSI, Open System Interconection) lanzado

    en 1984 fue el modelo de red descriptivo creado por ISO. Proporcionó a los fabricantes un conjunto de

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    46/273

    49

    implementarse con diversos tipos de conexión física y cada fabricante suele

    suministrar un software de aplicación propio, que permite parametrizar sus

    productos. Durante la comunicación sobre una red Modbus, el protocolo determina

    como cada controlador conocerá su dirección de dispositivo, reconocerá unmensaje direccionado a él, determinara el tipo de acción a tomar y extraerá

    cualquier dato u otra información contenida en el mensaje. La principal

    característica de este bus de campo es el control de acceso al medio, tipo

    Maestro/Esclavo.

    En la actualidad debido a su simplicidad y especificación abierta, actualmente es

    ampliamente utilizado por diferentes fabricantes.

    2.8.1.1 Modbus  Capa de Aplicación

    Modbus se enfoca en la capa de aplicación (protocolo de mensaje), se encuentra

    en el nivel 7 del modelo OSI, también permite la comunicación con diferentes tipos

    de redes o buses entre cliente y servidor. 

    Modbus  es un protocolo de solicitud/respuesta y proporciona serviciosespecificados por códigos de función. Los comandos de Modbus son funciones de

    solicitud/respuesta de la PDU ’s. El alcance de este documento describe como

    establecer una comunicación entre Maestro/Esclavo, donde la tarjeta de

    adquisición de datos será el Esclavo y el PLC  el Maestro.

    Para lograr la interoperabilidad entre diferentes clases de buses y redes

    actualmente esta implementado así:

      TCP/IP  sobre Ethernet .

      Trasmisión serial asíncrona a través de varios medios (EIA/TIA-232, EIA-

    422, EIA/TIA-485-A, fibra, radio, etc.)

    estándares que aseguraron una mayor compatibilidad e interoperabilidad entre los distintos tipos de

    tecnología de red producidos por las empresas a nivel mundial.

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    47/273

    50

      Modbus plus, una alta velocidad paso de la señal en red.

    En la Figura 2.11 se encuentra la comunicación general del Modbus.

    Figura 2.10-Comunicación General del Modbus .

    Fuente [8]

    El protocolo Modbus permite una fácil comunicación con todo tipo de arquitectura

    de redes. En Figura 2.12 se observa algunos tipos de integración de redes

    Modbus

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    48/273

    51

    Figura 2.11-Ejemplo de una Arquitectura de Redes de Modbus .

    5000

    5000

    5000

     

    Cada tipo de dispositivo (PLC , HMI , Panel de control,  driver , interfaces de I/O)

    puede usar Modbus para iniciar una operación remota.

    La misma comunicación se puede hacer tanto como en serial o redes Ethernet  TCP/IP . Los Gateways permiten una comunicación entre diferentes tipos de redes

    usando el protocolo Modbus.

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    49/273

    52

    2.8.2 Descripción General

    2.8.2.1 Descripción del Protocolo

    El Modbus  define una unidad de dato independiente (PDU )  de las capas de

    comunicación principal del modelo OSI .

    La Unidad de Dato del Protocolo PDU , se le puede adicionar un campo sobre La

    Unidad de Dato de Aplicación (ADU ), para buses específicos o redes. En la

    siguiente Figura 2.13 se muestra la estructura general de la trama Modbus.

    Figura 2.12-Trama General del Modbus .

    Fuente [8]La función de la unidad de dato de aplicación (ADU ) del Maestro indica al Esclavo

    que clase de acción debe desarrollar .El protocolo de aplicación Modbus se ubica

    en el nivel 7 del modelo OSI  y establece el formato de una solicitud iniciada por un

    Maestro.

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    50/273

    53

    El código de función de la unidad de datos del Modbus es codificado en un solo

    Byte. Los códigos validos están en el rango de 1-255 en formato decimal (el rango

    de 128-255 es reservado y usado para respuestas en excepción). Cuando el

    mensaje es enviado desde un Maestro a un Esclavo la trama del código de funciónle dice al Esclavo que clase de acción debe desarrollar, donde el código de

    función 0 no es válido. Estos códigos de función agregan códigos de sub-función

    para definir múltiples acciones.

    La trama del dato utiliza información adicional del código de función para que el

    Esclavo reconozca la acción definida por el código de función. Esta información

    adicional de la trama puede incluir ítems de direccionamiento de registros donde

    son manejados por el contador del Byte del dato en la trama.

    En ocasiones la trama del dato puede venir en “0”, en este caso el Esclavo no

    requiere una información adicional y el código de función solo especifica la acción.

    Sin ningún error ocurre relacionado con el código de función solicitado en una

    recepción adecuada, la trama del dato de la respuesta de un Esclavo a un Maestro

    contiene el dato requerido. Por el contrario si ocurre un error, la trama del dato

    contiene un código de excepción para que la aplicación del Esclavo la pueda usary así determinar la siguiente acción a tomar.

    Por ejemplo un Maestro puede leer el estado ON/OFF  de un grupo I/O o puede

    leer o escribir el contenido del dato de un grupo de registros. Cuándo el Esclavo

    responde al Maestro este usa el código de función para indicar una normal

    respuesta (sin error) o alguna clase de error ocurrido (llamado una respuesta

    opcional).Para una respuesta normal el Esclavo simplemente repite la solicitud del

    original código de función. La Figura 2.14 muestra el orden secuencial de tramasde una transmisión (solicitud) y recepción (respuesta).

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    51/273

    54

    Figura 2.13-Transacción del Modbus  (libre de error).

    Fuente [8]

    Para una respuesta en excepción, el Esclavo devuelve un código que es

    equivalente al código de función original de la PDU   solicitada con su Bit   más

    significativo seteado en 1. En la Figura 2.15 detalla cómo es una respuesta en

    excepción del dispositivo Esclavo hacia el dispositivo Maestro.

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    52/273

    55

    Figura 2.14-Transacción del Modbus (Respuesta en Excepción)

    Fuente [8]

    El tamaño de la PDU  es limitada por el tamaño de la implementación del protocoloModbus sobre redes seriales (Max. RS485 ADU =256 Bytes).

    Por lo tanto:

    La PDU  por línea de comunicación serial= 265-direccion Esclavo (1 Byte)- CRC  

    (2 Bytes)=253 Bytes  

    Consecuentemente:

    RS232 /RS485 ADU   = 253 Bytes+ dirección Esclavo (1 Byte)+ CRC   (2 Bytes)=256 Bytes . 

    TCP MODBUS ADU  = 253 Bytes+ MBAP (7 Bytes) = 260 Bytes. 

    El Modbus define tres PDUS:

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    53/273

    56

      MODBUS   Solicitud PDU, mb_req_pdu:   La mb_req_pdu  está definida

    como:

    mb_req_pdu = {function_code, request_data}, donde

    function_code = [1 Byte]  Modbus código de función

    request_data = [n Byte]  Esta trama es una función de código dependiente y

    usualmente contiene información adicional, como por ejemplo: referencia de

    variable, contador de variables, códigos de sub-funciones etc.

      MODBUS Respuesta PDU , mb_rsp_pdu  

    La mb_rsp_pdu  es definida como:

    mb_rsp_pdu = {function_code, response_data},

    Dónde:

    function_code= [1 Byte] Modbus código de función

    response_data= [n Byte]  Esta trama es una función de código dependiente

    y usualmente contiene información adicional, como por ejemplo: referencia

    de variable, contador de variables, códigos de sub-funciones etc.

      MODBUS  respuesta de excepción PDU , mb_excep_rsp_pdu  

    La mb_exceo_rsp_pdu es definida como:

    mb_excep_rsp_pdu = {exception-function_code, request_data}

    Dónde:

    Exception-function_code= [1 Byte] Modbus código de función + 0x80

    exception_code = [1 Byte]  El código de excepción Modbus está definido en

    la Tabla 2.7.

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    54/273

    57

    Decodificación del Dato: Modbus usa una representación “big  –Endian4”

    para las direcciones e ítems del dato. Esto significa que cuando hay una cantidad

    numérica más grande que un simple Byte transmitido, el Byte más significativo es

    enviado primero. Por ejemplo:

    Tamaño del Registro 16 – Bits

    Valor 0x1234 El primer Byte enviado es 0x12 después 0x34

    Modelo del Dato Modbus : Modbus  basa su modelo del dato en unas

    series de índices que tienen sus características principales. 

    Las cuatro características primordiales pueden verse en la Tabla 2.2.

    Tabla 2.3-Modelo del Dato ModbusPrimeros

    Índices

    Tipo de

    Objetó Tipo de Comentarios

    Entradas

    discretas Un solo Bit Solo lectura

    Este tipo de dato puede ser

    suministrado por I/O del

    sistema

    Bobinas Un solo Bit

    Lectura-

    Escritura

    Este tipo de dato puede ser

    alterado por una aplicación del

    programa

    Registros de

    entrada

    Palabra de

    16-Bit Solo lectura

    Este tipo de dato puede ser

    suministrado por I/O del

    sistema

    Registros

    holding

    Palabra de

    16-Bit

    Lectura-

    Escritura

    Este tipo de dato puede seralterado por una aplicación del

    programa

    4 El término “Big Endian” se refiere a la forma en que los números binarios de bytes múltiples son guardados

    en la computadora.

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    55/273

    58

    Las diferencias entre entradas/salidas, y entre Bit -direccionable y palabra-

    direccionable de los ítems del dato, no implican ningún comportamiento de

    aplicación. Es perfectamente aceptable, y muy común, a lo que se refiere a las

    cuatro características, como solapamiento entre sí, siendo esta la más natural

    interpretación del objetivo de dispositivo en cuestión.

    Por cada una de estas características, el protocolo permite elegir de los 65536

    ítems del dato solo uno, y las operaciones de leer o escribir de estos ítems son

    designadas para abarcar múltiples y consecutivos ítems del dato hasta alcanzar

    un límite del tamaño del dato él cual es dependiente de la comunicación del código

    de la función.

    Es obvio que todo el dato manejado por vía Modbus  debe ser localizado en

    dispositivos de memoria de aplicación del Esclavo. Pero la dirección física en

    memoria no debe ser confundida por los datos de referencia. El único requisito es

    establecer un vínculo de datos de referencia con la dirección física.

    Los números de referencia lógica del Modbus que son usados en funciones, son

    índices enteros sin signo a partir del cero

    Modelo Direccionamiento Modbus: el protocolo de aplicación Modbus 

    define precisamente reglas para el direccionamiento de la PDU . 

    En una PDU-MODBUS cada dato es direccionado desde: [0 -65535]. Esto también

    define claramente un modelo del dato compuesto de 4 bloques que comprenden

    varios elementos numerados desde 1 hasta n.

    El modelo del dato-Modbus  tiene que ser obligado a la aplicación del dispositivo

    (objeto IEC-611315 , u otro modelo de aplicación), donde el pre-mapeado entre el

    5 El estándar internacional IEC 61131 es el primer paso para la estandarización de los autónomas

     programable y sus periféricos, incluyendo los lenguajes de programación que se debe utilizar.

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    56/273

    59

    modelo del dato Modbus y el dispositivo de aplicación, es totalmente del diseñador

    del dispositivo específico.

    Definición de la transacción del Modbus: en la Figura 2.16 se observa el

    diagrama de estado que describe el procesamiento genérico de una transacción

    Modbus en el Esclavo. 

    Figura 2.15-Diagrama de Flujo de la Transacción del Modbus .

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    57/273

    60

    Una vez la solicitud ha sido procesada por un Esclavo, se construye una respuesta

    mediante la adecuada transacción del Esclavo Modbus.

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    58/273

    61

    Dependiendo del resultado del procesamiento de los 2 tipos de respuesta se

    construye así:

    Para una respuesta sin excepción:

      La respuesta código de función = La solicitud del código de la función

    Para una respuesta excepción:

      El objetivo es suministrar al Maestro de información relevante

    concerniente al error detectado durante el procesamiento.

      El código de función de excepción = la solicitud del código de función +

    0x80.  Un código en excepción es suministrado para indicar la razón del error.

    Categorías del código de función: hay 3 categorías de códigos de 

    Función del Modbus, las cuales son:

    1. Códigos de Función Públicos

      Los códigos de función están bien definidos.

      Garantiza que sea único.

      Validado por la comunidad MODBUS-IDA.org  

      Públicamente documentado.

      Incluye ambos, los códigos de función públicos definidos como tan bien los

    códigos indefinidos de función reservados para uso futuro.

    2. Códigos de Función Definidos por el Usuario

      Hay 2 rangos para que el usuario defina códigos de función, es decir 65 a

    72 y desde 100 a 110 decimal

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    59/273

    62

      El usuario puede seleccionar e implementar un código de función que no

    está soportado por la especificación.

      No hay garantía que el uso del código de la función seleccionada sea único.

      Si el usuario quiere reasignar una funcionalidad de un código de función

    público, tendrá que iniciar una RFC  para introducir el cambio dentro de la

    categoría pública y tener un nuevo código de función público asignado.

      La organización Modbus-Inc . expresamente se reserva desarrollar el

    propósito de una RFC. 

    3. Códigos de Función Reservados

      Los códigos de función actualmente usados por algunas compañías

    para legalizar productos y no están disponibles para uso del público

    De la Tabla 2.3 se aprecian algunos códigos de función actualmente usados por

    algunas compañías para legalizar sus productos y no están disponibles para uso

    del público.

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    60/273

    63

    Tabla 2.4-Categoría del Código de Función del Modbus .127

    Códigos de función públicos

    100Códigos de función definidos por el usuario

    72Códigos de función públicos

    65Códigos de función definidos por el usuario

    1

    Códigos de función públicos

    Fuente [8]

    Definición del los códigos de función públicos: la Tabla 2.4 se describe

    los códigos de función disponibles que ya han sido definidos para el público.  

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    61/273

    64

    Tabla 2.5-Definición de Código de Función Público.Códigos de

    Función

    CódigoSucódigo

    (

    Hex)

    Datode

     Acceso

    Bits de Acceso

    EntradasDigitalesFísicas

    Lectura deEntradasDigitales 02

    02

    Bits Internos oBobinasFísicas

    Lectura deBobinas 01

    01

    Escritura deuna solaBobina 05

    05

    Escritura deMúltiplesBobinas 15

    0F

    16 Bitsde

     Acceso

    EntradasFísicas deRegistros

    Lectura deEntrada

     Análoga 0404

    Lectura deRegistrosHolding 03

    03

    Escritura de un

    solo Registro 06

    0

    6

    RegistrosInternos

    Escritura deMúltiplesRegistros 16

    10

    Lectura/Escritura MúltiplesRegistros 23

    17

    Registros deSalida Físicos.

    Mascara delRegistro de

    Escritura 2216

    Lectura de

    cola del FIFO 24

    1

    8

     Acceso de File Record

    Lectura de FileRecord 20

    14

    Escritura deFile Record 21

    15

    DiagnósticosLectura deEstado en 07

    07

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    62/273

    65

    Excepción

    Diagnostico 08

    00-18,20

    08

    Obtención deContador deeventos 11

    0B

    Obtención delRegistro de

    eventos 120C

    Informe deEsclavos ID 17

    11

    Lectura deldispositivo deIdentificación 43

    2B

    Otro Encapsuladode Interface 43 2BReferenciaGeneral delCAN open 43 13

    2B

      Descripción de los códigos de función: a continuación se describen

    algunos de los códigos de función públicos. 

    01(0x01) Lectura de bobinas: esta función es usada para leer desde 1 a2000 estados contiguos de bobinas en un dispositivo remoto. La solicitud de la

    PDU  específica la dirección de inicio, es decir la dirección de la primera bobina y el

    número de bobinas. En la PDU   las bobinas son direccionadas empezando por

    cero. Por otro lado las bobinas enumeradas de 1-16 son direccionadas como 0-15. 

    Las bobinas en el mensaje de respuestas son empaquetadas con un Bit por

    bobina en la trama del dato. El estado es mostrado como 1=ON  y 0=OFF . El LSB 

    del primer Byte del dato contiene la salida direccionada en la solicitud. Las otrasbobinas siguen hacia el final de la parte alta de ese Byte, y desde la parte baja

    hasta la parte alta en los Bytes posteriores.

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    63/273

    66

    Si la cantidad de la salida que se devuelve no es un múltiplo de 8, los Bits

    restantes en el Byte del dato final será rellenado con ceros (hacia el orden superior

    del final del Byte).El Byte  de conteo indica la cantidad de Bytes  completos del

    dato. 

    02(0x02) Lectura de entradas digitales: esta función es usada para leer

    desde [1 a 2000] estados contiguos de entradas digitales en un dispositivo remoto

    (Esclavo). La solicitud (Maestro) de la PDU específica la dirección de inicio, es

    decir la dirección de la primera entrada y el número de entradas. En la PDU las

    entradas digitales son direccionadas empezando por cero. Por otro lado las

    entradas digitales enumeradas de [1-16] son direccionadas como [0-15]. 

    Las entradas digitales en el mensaje de respuestas son empaquetadas un Bit  por

    entradas  en la trama del dato. El estado es mostrado como 1=ON   y 0=OFF . El

    LSB del primer Byte del dato contiene las entradas direccionadas en la solicitud.

    Las otras entradas siguen hacia la parte alta del el final de ese Byte, y desde la

    parte baja hasta la parte alta en los Bytes posteriores.

    Si la cantidad de las entradas que se devuelve no es un múltiplo de 8, los Bits 

    restantes en el Byte  del dato final serán rellenados con ceros (hacia el ordensuperior del final del Byte). El Byte de conteo indica la cantidad de Bytes 

    completos del dato. En la Tabla 2.5 se muestra como es el envió de la solitud, la

    respuesta y el error.

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    64/273

    67

    Tabla 2.6-Envió de Función 04Solicitud 

    Código de función 1 Byte 0x02

    Dirección de inicio 2 Bytes 0x0000 hasta 0xFFFF

    Cantidad de entradas 2 Bytes 1 hasta 2000 (0x7D0)

    Respuesta 

    Código de función 1 Byte 0x02

    Contador de byte 1 Byte N*

    Estado de las Entradas N* x 1 Byte*N = Cantidad de entradas / 8 si el resto es diferente de 0 ⇒ N = N +1

    Error  

    Código de error 1 Byte 0x82

    Código de excepción 1 Byte 01 o 02 o 03 o 04

    Fuente [8]

      03(0x03) Lectura de registro de retención: esta función es usada para

    leer el contenido de un bloque contiguo de un registro de retención en un

    dispositivo remoto. La solicitud de la PDU   específica la dirección de inicio y el

    número de registros. En la PDU   los registros son direccionados empezando por

    cero. Por otro lado los registros enumerados de 1-16 son direccionados como 0-

    15. 

    Los datos de registros en el mensaje de respuestas son empaquetados por dos Bit

    por registro. El estado es mostrado como 1=ON  y 0=OFF . El LSB del primer Byte 

    del dato contiene las entradas  direccionadas en la solicitud. Las otras entradas

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    65/273

    68

    siguen hacia orden superior del el final de ese Byte, y desde el orden inferior al

    orden superior en los Bytes posteriores.

    Si la cantidad de las entradas que se devuelve no es un múltiplo de 8, los Bits 

    restantes en el Byte  del dato final serán rellenados con ceros (hacia el orden

    superior del final del Byte). El Byte  de conteo indica la cantidad de Bytes

    completos del dato. 

    04(0x04) Lectura de entrada análoga: esta función es usada para leer

    desde [1-125] entradas análogas contiguas en un dispositivo remoto (Esclavo). La

    solicitud (Maestro) de la PDU   especifica la dirección de inicio del registro y el

    número de registros. Los registros de la PDU   son direccionados empezando porcero. Por otro lado los registros enumerados de [1-16] son direccionados como [0-

    15]. 

    Los datos de registros en el mensaje de respuestas son empaquetados por dos

    Bytes por registro, con el contenido binario es justificado a la derecha dentro de

    cada Byte. Por cada registro, el primer Byte contiene la parte alta del los Bits y la

    segunda contiene la parte baja de los Bits. En la Tabla 2.6 se muestra como es el

    envió de la solitud, la respuesta y el error.

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    66/273

    69

    Tabla 2.7-Envió de Función 04Solicitud

    Código de función 1 Byte  0x04Dirección de inicio 2 Bytes  0x0000 hasta 0xFFFFCantidad de registros de entrada 2 Bytes  0x0001 hasta 0x007D

    RespuestaCódigo de función 1 Byte  0x04Contador de byte   1 Byte  2 x N*Estado de las Entradas N* x 2 Byte 

    *N = Cantidad de Registros de entrada.

    ErrorCódigo de error

    1 Byte 0x84

    Código de excepción1 Byte 

    01 o 02 o 03 o 04

    Fuente [8]

    05(0x05) Lectura de una sola bobina: este código de función es usado

    para escribir una sola salida para cualquier estado ON   /OFF   en un dispositivo

    remoto. Esta solicitud de estado ON/OFF   se especifica por una constante en la

    solicitud del campo del dato. Un a solicitud de valor 0X0000 puede ser OFF. Todos

    los otros valores son ilegales y no afectaran la salida.  

    La solicitud de la PDU específica la dirección de la bobina para ser cambiada. Las

    bobinas son direccionadas para empezar en cero. Por lo tanto la bobina numerado

    1 es direccionado como 0. El estado de la solicitud ON/OFF  esta especificado por

    una constante en el valor del campo de la bobina. Un valor de 0XFF00 solicita a labobina que este en ON . Un valor de 0X0000 solicita a la bobina estar en OFF .

    Todos los otros valores son ilegales y no afectaran a bobina.

    La respuesta normal es un eco de la solicitud, donde después se retorna cuando

    la bobina ya ha sido escrita.

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    67/273

    70

    06(0x06) Registro de solo escritura: este código de función es usado para

    escribir un solo registro soportado en un dispositivo remoto. 

    La solicitud de la PDU   especifica la dirección del registro a ser escrito. Los

    registros son direccionados para empezar en cero. Por lo tanto el registro

    numerado 1 es direccionado como 0.

    La respuesta normal es un eco de la solicitud, donde inmediatamente se retorna el

    contenido del registro cuando ya ha sido escrito.

    16(0x10) Escritura de múltiples registros: este código de función es

    usado para escribir un bloque de registros contiguos (1 a 123 registros), en un

    dispositivo remoto. 

    La solicitud de valores escritos es especificada en el dato de solicitud. El dato es

    empaquetado como dos Bytes por registros. La respuesta normal retorna el código

    de función, dirección de inicio y una cantidad de registros escritos en dos Bytes 

    por registros. La respuesta normal retorna el código de función, dirección de inicio,

    y una cantidad de registros escritos.

    Códigos de excepción: Los códigos de excepción se producen cuando

    hay un error de comunicación en la respuesta del dispositivo Esclavo, estos

    códigos pueden ser: por error de paridad, por error de CRC, por error de

    direccionamiento, etc. En la Tabla 2.7 se muestra los códigos de error soportados

    por el Esclavo Modbus. 

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    68/273

    71

    Tabla 2.8-Códigos de Error de Ejecución del Protocolo Modbus   en elEsclavo.Códigos de

    errorDescripción

    0 Sin error.

    1

    Error de paridad en la respuesta. Sólo es posible si se utilizaparidad par o impar. La transferencia ha sido perturbada y esposible que se hayan recibido datos incorrectos. Este error sedebe normalmente a un problema eléctrico, p. ej. Un cableadoincorrecto o ruidos eléctricos que afectan la comunicación.

    2 No utilizado

    3

    Timeout de recepción. No se ha recibido una respuesta delEsclavo dentro del tiempo indicado en Timeout. Ello puededeberse a una conexión eléctrica defectuosa con el Esclavo, aque los ajustes del Maestro y del Esclavo son diferentes(velocidad de transferencia y/o paridad), o bien a una direcciónincorrecta del Esclavo.

    4

    Error en un parámetro de petición. Uno o más parámetros deentrada (Slave, RW , Addr  o Count ) se han ajustado a un valor noválido. En la documentación se indican los valores permitidospara los parámetros de entrada.

    5El Maestro Modbus  no está habilitado. MBUS_CTRL se debellamar en cada ciclo antes de llamar a MBUS_MSG.

    6Modbus está procesando otra petición. Sólo puede estar activadauna operación MBUS_MSG a la vez.

    7Error en la respuesta. La respuesta recibida no corresponde a lapetición. Ello indica que hay un problema en el Esclavo o que unEsclavo incorrecto ha respondido a la petición.

    8

    Error CRC en la respuesta. La transferencia ha sido perturbada yes posible que se hayan recibido datos incorrectos. Este error sedebe normalmente a un problema eléctrico, p. ej. Un cableadoincorrecto o ruidos eléctricos que afectan la comunicación.

    101 El Esclavo no soporta la función solicitada en esta dirección.

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    69/273

    72

    102El Esclavo no soporta la dirección de los datos. El rango dedirecciones solicitado de Addr más Count está fuera del rango dedirecciones permitido para el Esclavo.

    103

    El Esclavo no soporta el tipo de datos. El Esclavo no soporta el

    parámetro Addr.

    105El Esclavo ha aceptado el mensaje, pero hay un retardo en larespuesta. Este es un error de MBUS_MSG. El programa deusuario debería reenviar la petición más tarde.

    106

    El Esclavo ha aceptado el mensaje, pero hay un retardo en larespuesta. Este es un error de MBUS_MSG. El programa deusuario debería reenviar la petición más tarde. El Esclavo estáocupado y ha rechazado el mensaje. Intente reenviar la mismapetición para obtener una respuesta.

    107 El Esclavo ha rechazado el mensaje por un motivo desconocido.108

    Error de paridad en la memoria del Esclavo. Éste es un error delEsclavo.

    Fuente [9]

    2.8.2.2 Capa de Enlace de Datos Modbus

    Protocolo principal Maestro/Esclavo Modbus: el protocolo de línea

    serial Modbus es un protocolo Maestro-Esclavo, donde solamente un Maestro altiempo es conectado al bus, y una o varios nodos Esclavos (número máximo 247)

    son conectados al mismo bus serial.

    Una comunicación Modbus es siempre iniciada por el Maestro, donde los nodos

    Esclavos nunca trasmiten un dato sin recibir una solicitud desde el nodo Maestro.

    En una red, los nodos Maestros nunca se comunicaran entre sí, siendo el nodo

    Maestro quien inicia una transacción Modbus al tiempo.

    El nodo Maestro envía una solicitud al Esclavo de dos modos:

      Modo unicast : el Maestro direcciona a un Esclavo individualmente y después

    de recibir y procesar la solicitud, el Esclavo devuelve un mensaje al Maestro

    (una respuesta), en la Figura 2.17 se puede apreciar la comunicación Unicast .

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    70/273

    73

    En este modo, la transacción consiste en dos mensajes: una solicitud desde el

    Maestro y una respuesta desde el Esclavo, donde cada Esclavo tendrá una

    dirección única (1 a 247), de modo que pueda ser direccionado

    independientemente de otros nodos.

    Figura 2.16-Modo Unicast. 

    Fuente [7]

      Modo broadcast , el Maestro puede enviar una solicitud a todos los Esclavos,

    en la Figura 2.18 se puede ver como se realiza una comunicación broadcast .

    El modo broadcast tiene las siguientes características:

      La solicitud broadcast  es escrita necesariamente por comandos.

      Ninguna respuesta es retornada a la solicitud broadcast enviada por

    el Maestro.

      Todos los dispositivos tendrán que aceptar el  modo  broadcast   por

    funciones de escritura.

      La dirección 0 es reservada para un cambio de broadcast. 

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    71/273

    74

    Figura 2.17-Modo Broadcast . 

    Fuente [7] 

    Modos de trasmisión serial: Dos modos diferentes de trasmisión serial

    son definidos. El modo RTU y el modo ASCII . 

    Estos definen el contenido del Bit  de la trama de mensajes trasmitida serial mente

    en la línea serial.

    Este modos determinan como la información es decodificada y empaquetada

    dentro de la trama del mensaje. El modo de transmisión tendrá que ser el mismo

    para todos los dispositivos sobre la línea serial.

    Sin embargo el modo  ASCII  es requerido en algunas aplicaciones específicas, la

    interoperabilidad entre dispositivos Modbus puede ser lograda solamente si cada

    dispositivo tiene el mismo modo de comunicación. El modo de transmisión  ASCII  

    es opcional.

    En los dispositivos, el modo de transmisión debe ser establecido por el usuario

    (RTU  o ASCII), de lo contrario el modo RTU  será establecido por defecto.

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    72/273

    75

    Modo de transmisión RTU : cuando los dispositivos se comunican sobre

    una línea serial Modbus usando el modo RTU  (Remote Terminal Unit ), cado 8 Bits

    del Byte en un mensaje contiene dos de 4 Bits hexadecimales. La principal ventaja

    de este modo es que su carácter de mayor densidad permite un mejorrendimiento del dato que en el modo ASCII para la misma velocidad de trasmisión.

    Cada mensaje tendrá que ser trasmitido en un continuo flujo de caracteres. 

    El formato (11 Bits) para cada Byte en el modo RTU es:

    Codificación del sistema: 8 Bit  binarios

    Bits por Byte: 1 Bit inicio

    8 Bits de dato, el menos significativo Bit  es enviado 

    Primero 

    1 Bit  para la complementación de paridad 

    1 Bit de parada 

    Otros modos (paridad par, impar, sin paridad) también pueden ser usados a fin de

    asegurar una máxima compatibilidad con otros productos. Observación: el uso de

    no paridad requiere dos Bits de parada.

    Como se transmiten los caracteres serial mente: Cada carácter es enviado en el

    orden de izquierda a derecha. Esto se puede apreciar en la Tabla 2.8 Del LSB al

    MSB 

    Tabla 2.9-Secuencia de Bit  en Modo RTU. 

    Start   1 2 3 4 5 6 7 8 Paridad Stop 

    Los dispositivos pueden aceptar la configuración ya sea par, impar o sin chaqueo

    de paridad. Si no se implementa la paridad, un Bit   adicional de parada es

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    73/273

    76

    transmitido para llenar la trama de los caracteres asíncronos de 11 Bits  (Véase

    Tabla 2.9)

    Tabla 2.10-Secuencia de Bit  en Modo RTU  (Sin Paridad).

    Start 1 2 3 4 5 6 7 8 Stop Stop

    Trama de descripción (Véase Tabla 2.10)

    Tabla 2.11Trama de Mensaje RTU. 

    Dirección Función Datos CRC  

    1 byte  1 byte  0 hasta 252 bytes 2 bytes 

    CRC  Bajo CRC  Alto

    El tamaño máximo de una trama RTU  Modbus es 256 Bytes

      Tramado del mensaje RTU : un mensaje Modbus es ubicado dentro de una

    trama del dispositivo de transmisión que tiene un punto conocido de inicio y final.

    Esto permite al dispositivo que reciba una nueva trama para el inicio del mensaje y

    para saber cuando el mensaje es completado. Los mensajes parciales tendrán

    que ser detectados y los errores tendrán que ser establecidos como un resultado.

    En el modo RTU , las tramas de mensajes son separadas por un intervalo de

    tiempo silencioso al menos de 3.5 veces el carácter (Véase Figuras 2.19 y 2.20).

    Figura 2.18-Tiempos de la Trama RTU .

  • 8/15/2019 Diseño Módulo Modbus Murillo 2011

    74/273

    77

    Figura 2.19-Trama de Mensaje RTU.

    Fuente [7]

    La trama de mensaje entero tendrá que ser trasmitida como un flujo continuo de

    caracteres.

    Si un intervalo silencioso de más de 1.5 veces el carácter se produce entre dos

    caracteres (Véase Figura 2.21), la trama se declara incompleta y debe ser

    descartada por el receptor.

    Figura 2.20-Tiempos de Caracter de la Trama RTU. 

    Fuente [7]

    Chequeo del CRC : el modo RTU  incluye una trama de comprobación de errores

    que es basada en una comprobación de redundancia cíclica (CRC ), método

    realizado en el contenido del mensaje.

    La trama CRC   verifica el contenido de todo el mensaje. Esto se aplica

    independientemente de cualquier comprobación de paridad usada para los

    caractere