Download - Diseño Módulo Modbus Murillo 2011
-
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 ,
2
-
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