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 CALI FACULTAD DE INGENIERÍA PROGRAMA DE INGENIERÍA ELECTRÓNICA SANTIAGO DE CALI 2011
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
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 San Buenaventura Cali.
____________________________________ Ing. EDGAR ANTONIO GIRALDO OROZCO
________________________________________________ Ing. CARLOS MAURICIO BETANCURT
_______________________________________________ Ing. ANDRÉS ERAZO
Santiago de Cali, 03 de Junio del 2011
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
TABLA DE CONTENIDO
1
DESCRIPCIÓN
DEL
PROYECTO
Y
CARACTERÍSTICAS
Generales 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
2
25
DESCRIPCIÓN DEL DOCUMENTO
MARCO TEÓRICO.
27
29
2.1
ANTECEDENTES
29
2.2
PLC (Programable Logic Controller)
30
2.2.1
31
Funciones Básica de un PLC
2.3
MICROCONTROLADORES
32
2.4
AMPLIFICADORES OPERACIONALES
33
2.4.1
35
Tipos de Configuración
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
48
Modbus
8
2.8.2
3
DISEÑO E IMPLEMENTACIÓN DEL MÓDULO 3.1
3.2
85 86
DISPOSITIVO MAESTRO
3.1.1
4
52
Descripción General
87
Cable de Red
89
MÓDULO ESCLAVO
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
DISEÑO E IMPLEMENTACIÓN DEL SOFTWARE DEL MÓDULO 104
5
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
PRUEBAS Y RESULTADOS 5.1
132
SOFTWARE UTILIZADO PARA LAS PRUEBAS
9
132
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 140
DE COMUNICACIÓN CON El PLC 5.4
COMPROBACIÓN DE LA FUNCIÓN 04(LECTURA DE ENTRADA ANÁLOGA) 146
6
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
CONCLUSIONES Y RECOMENDACIONES
165
6.1
CONCLUSIONES
165
6.2
RECOMENDACIONES
166
7
BIBLIOGRAFÍA
168
8
ANEXOS
171
10
11
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
12
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
13
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
14
15
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
16
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
17
18
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
19
20
GLOSARIO
ALIASING: es el efecto que causa que señales continuas distintas se tornen indistinguibles 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 multidrop. 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.
21
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.
22
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.
23
INTRODUCCIÓN
El diseño del módulo de comunicaciones Esclavo Modbus, se implementa considerando 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ón serial 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álogosDigitales, el control y comunicación.
24
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 industria colombiana 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ón y 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 25
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 industriales y 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.
26
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 RS485.
Realizar pruebas de adquisición de datos para verificación de conversión de señales.
1.4
Realizar pruebas de comunicación Modbus con el PLC.
DESCRIPCIÓN DEL DOCUMENTO
Para el desarrollo del proyecto se traza el siguiente planteamiento:
27
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ón del prototipo
28
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. Análogas
Modelo ADAM-4051
Digitales
Salidas Entradas Salidas Entradas / / / 16
Precio (US) $ 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ón remota 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
29
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 Controller)
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 30
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án conectados 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.
31
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ógicos digitales, 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
32
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):
33
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
34
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.
35
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 de salida 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
36
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 este circuito en función de la entrada es la siguiente: Ec. 9 Donde su ganancia:
37
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 la de 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.
38
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 con unos 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.
39
Tabla 2.2-Asignación de pines del LCD NUMERO DEL PIN SÍMBOLO FUNCIÓN 1 Vdd Fuente de Alimentación(5V) 2 Vss Tierra (GND) 3 Vo Contraste de Ajuste 4 RS Registro de la Señal de Control H/ L 5 R/W Señal de lectura / escritura H/L 6 E Señal de Habilitación H 7 DB0 Línea de Bus de Dato H/ L 8 DB1 Línea de Bus de Dato H/ L 9 DB2 Línea de Bus de Dato H/ L 10 DB3 Línea de Bus de Dato H/ L 11 DB4 Línea de Bus de Dato H/ L 12 DB5 Línea de Bus de Dato H/ L 13 DB6 Línea de Bus de Dato H/ L 14 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 digitalanaló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
40
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 buen nú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 inframuestrear. 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)
41
Figura 2.7-Filtro Antialising
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,
42
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:
43
Amplificació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. Multiplexado: 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. Filtrado: 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
44
extensiometricas, termistores o RTD que por su constitución necesitan de la misma. Linealizacion: Muchos transductores como los termopares, tienen una respuesta 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 los puertos 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 RS232(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.
45
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.
46
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. Bit 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 conforman una red. [13] Con la evolución de los microprocesadores, ha sido más factible su unificación a redes industriales con notable ventajas como:
47
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
Seriplex
Profibus
ASI
Fieldbus Foundation
InterBus Loop
CAN bus
Modbus
InterBus-S
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 al está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
48
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á un mensaje 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 servicios especificados 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, EIA422, 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.
49
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
50
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.
51
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.
52
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ón le 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 usar y 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 tramas de una transmisión (solicitud) y recepción (respuesta).
53
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.
54
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 protocolo Modbus 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:
55
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.
56
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 Modbus Primeros Tipo de Índices
Objetó
Tipo de
Comentarios Este tipo de dato puede ser
Entradas discretas
suministrado Un solo Bit
Solo lectura
por
I/O
del
sistema Este tipo de dato puede ser
Bobinas
Un solo Bit
Lectura-
alterado por una aplicación del
Escritura
programa Este tipo de dato puede ser
Registros de
Palabra de
entrada
16-Bit
suministrado Solo lectura
por
I/O
del
sistema Este tipo de dato puede ser
Registros
Palabra de
Lectura-
alterado por una aplicación del
holding
16-Bit
Escritura
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.
57
Las diferencias entre entradas/salidas, y entre Bit-direccionable y palabradireccionable 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.
58
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.
59
Una vez la solicitud ha sido procesada por un Esclavo, se construye una respuesta mediante la adecuada transacción del Esclavo Modbus.
60
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
61
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.
62
Tabla 2.4-Categoría del Código de Función del Modbus. 127 Códigos de función públicos
100
Códigos de función definidos por el usuario Códigos de función públicos
72 65
Códigos de función definidos por el usuario
Códigos de función públicos
1 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.
63
Tabla 2.5-Definición de Código de Función Público. Códigos de Función
Código Entradas Digitales Físicas
Bits de Acceso
Bits Internos o Bobinas Físicas
Entradas Físicas de Registros
Registros Internos
16 Bits de Acceso Dato de Acceso
Registros de Salida Físicos.
Acceso de File Record Diagnósticos
Lectura de Entradas Digitales Lectura de Bobinas Escritura de una sola Bobina Escritura de Múltiples Bobinas Lectura de Entrada Análoga Lectura de Registros Holding Escritura de un solo Registro Escritura de Múltiples Registros Lectura/Escritu ra Múltiples Registros Mascara del Registro de Escritura Lectura de cola del FIFO Lectura de File Record Escritura de File Record Lectura de Estado en 64
Su cód igo
( H e x)
01
0 2 0 1
05
0 5
15
0 F
04
0 4
02
06
0 3 0 6
16
1 0
23
1 7
03
22 24 20 21 07
1 6 1 8 1 4 1 5 0 7
Excepción
Otro
Diagnostico Obtención de Contador de eventos Obtención del Registro de eventos Informe de Esclavos ID Lectura del dispositivo de Identificación Encapsulado de Interface Referencia General del CAN open
08
0018, 20
0 8 0 B
11
0 C 1 1
12 17
43
2 B 2 B
43
2 B
43
13
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 a
2000 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 otras bobinas siguen hacia el final de la parte alta de ese Byte, y desde la parte baja hasta la parte alta en los Bytes posteriores.
65
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 orden superior 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.
66
Tabla 2.6-Envió de Función 04 Solicitud 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 Código de excepción Fuente [8]
1 Byte
0x82
1 Byte
01 o 02 o 03 o 04
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 015. 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
67
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 por cero. Por otro lado los registros enumerados de [1-16] son direccionados como [015]. 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.
68
Tabla 2.7-Envió de Función 04 Solicitud 1 Byte Código de función 0x04 2 Bytes Dirección de inicio 0x0000 hasta 0xFFFF Cantidad de registros de entrada 2 Bytes 0x0001 hasta 0x007D
Código de función Contador de byte Estado de las Entradas
Respuesta 1 Byte 0x04 1 Byte 2 x N* N* x 2 Byte
*N = Cantidad de Registros de entrada. Error Código de error
0x84 1 Byte
Código de excepción
01 o 02 o 03 o 04 1 Byte
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 la bobina 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. 69
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.
70
Tabla 2.8-Códigos de Error de Ejecución del Protocolo Modbus en el Esclavo. Códigos de Descripción error 0 Sin error.
1
Error de paridad en la respuesta. Sólo es posible si se utiliza paridad par o impar. La transferencia ha sido perturbada y es posible que se hayan recibido datos incorrectos. Este error se debe normalmente a un problema eléctrico, p. ej. Un cableado incorrecto o ruidos eléctricos que afectan la comunicación.
2
No utilizado
3
Timeout de recepción. No se ha recibido una respuesta del Esclavo dentro del tiempo indicado en Timeout. Ello puede deberse a una conexión eléctrica defectuosa con el Esclavo, a que los ajustes del Maestro y del Esclavo son diferentes (velocidad de transferencia y/o paridad), o bien a una dirección incorrecta del Esclavo.
4
Error en un parámetro de petición. Uno o más parámetros de entrada (Slave, RW, Addr o Count) se han ajustado a un valor no válido. En la documentación se indican los valores permitidos para los parámetros de entrada.
5
El Maestro Modbus no está habilitado. MBUS_CTRL se debe llamar en cada ciclo antes de llamar a MBUS_MSG.
6
Modbus está procesando otra petición. Sólo puede estar activada una operación MBUS_MSG a la vez.
7
Error en la respuesta. La respuesta recibida no corresponde a la petición. Ello indica que hay un problema en el Esclavo o que un Esclavo incorrecto ha respondido a la petición.
8
Error CRC en la respuesta. La transferencia ha sido perturbada y es posible que se hayan recibido datos incorrectos. Este error se debe normalmente a un problema eléctrico, p. ej. Un cableado incorrecto o ruidos eléctricos que afectan la comunicación.
101
El Esclavo no soporta la función solicitada en esta dirección.
71
102
El Esclavo no soporta la dirección de los datos. El rango de direcciones solicitado de Addr más Count está fuera del rango de direcciones permitido para el Esclavo.
103
El Esclavo no soporta el tipo de datos. El Esclavo no soporta el parámetro Addr.
105
El Esclavo ha aceptado el mensaje, pero hay un retardo en la respuesta. Este es un error de MBUS_MSG. El programa de usuario debería reenviar la petición más tarde.
106
El Esclavo ha aceptado el mensaje, pero hay un retardo en la respuesta. Este es un error de MBUS_MSG. El programa de usuario debería reenviar la petición más tarde. El Esclavo está ocupado y ha rechazado el mensaje. Intente reenviar la misma petición para obtener una respuesta.
107 108
El Esclavo ha rechazado el mensaje por un motivo desconocido. Error de paridad en la memoria del Esclavo. Éste es un error del Esclavo.
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 al tiempo 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. 72
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.
73
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.
74
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 mejor
rendimiento 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
75
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.
76
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 caracteres individuales del mensaje.
77
El campo CRC contiene un valor de 16-Bit implementando como 2 Bytes de 8 Bits. La trama CRC se adjunta en el último campo mensaje. Cuando este es hecho, el Byte de orden inferior de la trama es anexado primero, seguido por el Byte de orden superior, donde el Byte de orden superior del CRC es el último Byte a ser enviado en el mensaje. El valor del CRC es calculado por el dispositivo emisor, el cual anexa el CRC al mensaje. El dispositivo receptor vuelve a calcular un CRC durante la recepción del mensaje y compara el valor calculado con el valor actual que este recibió en la trama del CRC. Si los 2 valores no son iguales, se produce un error. El cálculo del CRC es iniciada por la primera pre-carga de un registro de 16-Bit para todos los 1. Después comienza un proceso de aplicación de Bytes sucesivos de 8 Bits del mensaje para el contenido actual del registro. Solo los 8 Bits del dato en cada carácter son usados para generar el CRC. Los Bits de parada, inicio y el Bit-paridad no son aplicables al CRC. Durante la generación del CRC cada carácter de 8-Bit se le aplica una XOR con el contenido del registro. Después el resultado es desplazado en la dirección del Bit menos significativo (LSB) con ceros en la posición del Bit más significativo (MSB). El LSB es extraído y examinado. Si el LSB fue un uno (1), la XOR se lleva a cabo con un valor predeterminado, fijo. Si el LSB fue un cero (0), la XOR no se lleva a cabo. Este proceso es repetido hasta que 8 cambios hayan sido relazados. Después el último cambio (8), el siguiente Byte de 8-Bit es XOR con un valor actual del registro, y el proceso se repite durante más de ocho cambios como se describió anteriormente. El contenido final del registro, después de que todos los Bytes del mensaje han sido aplicados, es el valor del CRC.
Modo de transmisión ASCII: Cuando los dispositivos se configuran para
comunicarse en una red Modbus según el modo ASCII, cada Byte de 8 Bits en un mensaje se envía como dos caracteres ASCII. La principal ventaja de este modo es que permite intervalos de tiempo de hasta un segundo entre caracteres sin dar
78
lugar a error. Es por ello que muchos equipos sólo soportan este modo de comunicación. Desde el punto de vista del diagnóstico, es también más simple, ya que las tramas se pueden ver directamente. Por el contrario, la gran desventaja es que las tramas tienen una longitud de aproximadamente el doble que las tramas RTU, lo cual tiene el efecto neto de reducir la velocidad de comunicación a la mitad. El modo ASCII se presta mejor para el desarrollo de drivers de comunicación mediante lenguajes de alto nivel. El formato para cada Byte en modo ASCII es (Véase Tabla 2.11):
Inicio
Dirección
1 carácter
2 caracteres
Tabla 2.12-Codificación ASCII. Función Datos 2 caracteres
hasta 2 por 252 caracteres
LRC 2 caracteres
Fin 2 caracteres CR LF
Métodos de Comprobación de Errores: la seguridad estándar de la línea serial es basada en 2 tipos de comprobación de errores. Comprobación de Paridad (par o impar) debe ser aplicado a cada carácter. Comprobación de trama (LRC o CRC) tiene ser aplicado a todo el mensaje. Tanto la comprobación del carácter y el mensaje son generados en el dispositivo (Maestro o Esclavo) que emite y aplica al contenido del mensaje antes de la transmisión. El dispositivo (Esclavo o Maestro) “controla” cada carácter y el mensaje entero de la trama durante la recepción. El Maestro es configurado por el usuario que espera un intervalo de tiempo predeterminado (respuesta de tiempo de espera) antes de abortar la transacción. Este intervalo se establece por un tiempo para que cualquier Esclavo responda normalmente (solicitud-unicast).Si el Esclavo detecta un error de transmisión, el error no será ejecutado sobre el mensaje y el Esclavo no construirá una respuesta al Maestro. Por lo tanto el tiempo de espera se vencerá y permitirá que el programa del Maestro maneje el error.
79
Comprobación de paridad: los usuarios pueden configurar los dispositivos
para paridad o la comprobación de paridad impar, o ninguna comprobación de paridad. Esto determinara como el Bit de paridad se establecerá en cada carácter. Si cualquier paridad o paridad impar es especificado, la cantidad de 1 Bits serán contados en la porción del dato de cada carácter (siete Bits para el modelo ASCII o ocho para el RTU). El Bit de paridad después se establecerá en 0 o 1 dando lugar a una paridad o imparidad de un Bit. La total cantidad de 1 Bit en la trama son cuatro (4). Si la paridad par es usada el Bit de paridad de la trama es un cero (0), tomando la cantidad de un Bit que sigue siendo un numero par (cuatro). Si la paridad impar es usada, el Bit-paridad será un 1, tomando una cantidad par (cinco). Cuando el mensaje es transmitido, el Bit de paridad es calculado y aplicado a la trama de cada carácter del dispositivo que recibe los contadores de la cantidad de 1 Bit y fijan un error sino son las mismas para ese dispositivo configurado. (Todos los dispositivos de la línea serial Modbus tendrá que ser configurado para usar el mismo método de comprobación de paridad). Esa comprobación de paridad solo puede detectar un error si un número impar de Bits que se recogieron o se redujo un a carácter que contiene tres Bits en 1, el resultado todavía es un recuento impar de un Bits en 1. Si la paridad de comprobación no está especificada, el Bit paridad no es transmitido y la comprobación de paridad no puede ser hecha, entonces un Bit adicional de parada es transmitido para llenar la trama del carácter.
Comprobación de la trama: en el modo RTU, los mensajes incluyen una
comprobación de error en la trama que es basada en el método CRC. La trama del CRC
comprueba
el
contenido
entero
del
mensaje.
Esto
es
aplicado
independientemente de un método de comprobación de paridad usado para los caracteres individuales del mensaje.
80
2.8.2.3 Capa Física Modbus
General: el estándar EIA/TIA-485 también conocido como el estándar RS-
485. Este estándar permite
sistemas multipunto y punto a punto, en una
configuración de 2 hilos. Además, algunos dispositivos pueden implementar una configuración de cuatro hilos RS-485. En un sistema Modbus, un dispositivo Maestro, y uno o varios dispositivos Esclavos pueden comunicarse en una línea serial pasivo. En el sistema estándar Modbus, todos los dispositivos son conectados en un cable troncal constituido por 3 conductores. Dos de los conductores (la configuración de dos-hilos) forman un par trenzado balanceado, en donde los datos bidireccionales son trasmitidos normalmente en la velocidad de Bit de 9600bps. Cada dispositivo puede ser conectado (Véase Figura 2.23): Directamente un cable troncal, formando una cadena tipo margarita. En una red pasiva TAP con un cable de derivación. En una red activa TAP con un cable especifico.
Velocidad del dato: 9600bps y 19.2Kbps son los valores comúnmente
usados para la velocidad de comunicación, 9600 es el valor por defecto requerido.
2.8.2.4 Interfaz Eléctrica
RS-232: el RS-232C es un estándar que constituye la tercera revisión de la
antigua norma RS-232, propuesta por la EIA (Asociación de Industrias Electrónicas), este estándar se basa en una comunicación asíncrona, es decir que los datos pueden ser transmitidos en cualquier momento por lo que deben tomarse
81
precauciones para sincronizar la transmisión y recepción. Este estándar también emplea un puerto serie RS-232C, que consiste en un conector tipo DB25 de 25 pines, aunque es normal encontrar la versión de 9 pines DB9, mas barato e incluso más extendido para cierto tipo de periféricos. Todas las normas RS-232 cumplen con los siguientes niveles de voltaje: Un “1” lógico es un voltaje comprendido entre 5V y 15V en el transmisor y entre 3V y 25V en el receptor. Un “0” lógico es un voltaje comprendido entre +5V y +15V en el transmisor y entre +3V y +25V en el receptor. La importancia de conocer esta norma, radica en los niveles de voltaje que maneja el puerto serial ya que son diferentes a los que manejan los microcontroladores y los demás circuitos integrados. Por lo tanto se necesita de una interface que haga posible la conversión de niveles de voltaje a los estándares manejados por el RS232C.
RS-485: RS-485 (Estándar EIA-485) es una mejora sobre RS-422 ya que
incrementa el número de dispositivos que se pueden conectar (de 10 a 32) y define las características necesarias para asegurar los valores adecuados de voltaje cuando se tiene la carga máxima. Gracias a esta capacidad, es posible crear redes de dispositivos conectados a un solo puerto RS-485. Esta capacidad, y la gran inmunidad al ruido, hacen que este tipo de transmisión serial sea la elección de muchas aplicaciones industriales que necesitan dispositivos distribuidos en red conectados a una PC u otro controlador para la colección de datos, HMI, u otras operaciones. RS-485 es un conjunto que cubre RS-422, por lo que todos los dispositivos que se comunican usando RS-422 pueden ser controlados por RS-485. El hardware de RS-485 se puede utilizar en comunicaciones seriales de distancias de hasta 4000 pies de cable.
82
La interfaz RS-485 ha sido desarrollada para la transmisión en serie de datos de alta velocidad a grandes distancias. Está concebida como sistema Bus bidireccional con hasta 32 participantes. La norma RS-485 define solamente las especificaciones eléctricas para receptores y transmisores en un sistema de bus digital, pero no define o recomienda ningún protocolo de datos. Físicamente puede instalarse tanto como un sistema de 2 hilos o de 4 hilos. Dado que varios transmisores trabajan en una línea común, tiene que garantizarse con un protocolo que en todo momento esté activo, como máximo, un transmisor de datos. Los otros transmisores tienen que encontrarse en ese momento en estado de alta impedancia. RS-485 de 2 hilos: el Bus RS-485 de 2 hilos se compone según la Figura 2.23 de un cable propio del bus con una longitud máxima de 500mts. Los participantes se conectan a este cable a través de una línea adaptadora de longitud máxima de 5 metros. La ventaja de la técnica de 2 hilos reside esencialmente en la capacidad multimaestro, en donde cualquier participante puede cambiar datos en principio con cualquier otro. El Bus de 2 hilos es básicamente apto sólo para comunicaciones Halfduplex. Puesto que sólo hay a disposición una vía de transmisión, siempre puede enviar datos un solo participante. Después de finalizar el envío, pueden responder otros participantes.
83
Figura 2.21-Topologia General de 2 Hilos.
Fuente [7]
RS-485 de 4 hilos: la técnica de 4 hilos sólo puede ser usada por
aplicaciones Maestro/Esclavo. Según la Figura 2.24 se cablea la salida de datos del Maestro a las entradas de datos de todos los Esclavos. El Bus de 4 hilos es apto para comunicaciones FullDuplex, ya que cada dirección, recepción y transmisión, tiene su propia ruta. Figura 2.22-Topologia General de 4 Hilos.
Fuente [7]
84
3 DISEÑO E IMPLEMENTACIÓN DEL MÓDULO
En el presente capitulo se muestra el diseño de la tarjeta de adquisición de datos (DAQ) resultante, con sus respectivas características hasta su proceso de instalación. La Adquisición de Datos consiste en tomar un conjunto de variables físicas analógicas y digitales para convertirlas en tensiones eléctricas y digitalizarlas de forma que se puedan procesar en el PLC, permitiendo su monitoreo dentro del proceso. El hardware utilizado es básicamente una tarjeta de adquisición de datos utilizada como dispositivo Esclavo, el diseño tiene entradas digitales, entradas analógicas, interfaz de usuario y comunicación serial por el puerto RS485 con configuración de par trenzado bajo el protocolo de comunicación Modbus. Teniendo en cuenta esto se muestra el esquema de diseño del prototipo en la Figura 3.1. Figura 3.1-Esquema de Diseño.
85
3.1
DISPOSITIVO MAESTRO
En el punto 2.8.1 del capítulo 2 se describieron los requerimientos generales del protocolo Modbus de un dispositivo Maestro/Esclavo, donde el dispositivo Maestro es el encargado de ejecutar las acciones de solicitud hacia el dispositivo Esclavo. Un dispositivo Maestro puede ser un PC, un PLC, u otro dispositivo que solicite alguna petición al dispositivo Esclavo a través de un puerto de comunicaciones serial usando el protocolo Modbus. Para este proyecto se utilizó como dispositivo Maestro es PLC S7-200 Siemens (Véase Anexo F), que se encuentra en las instalaciones del laboratorio de Automática de la Universidad San Buenaventura Cali. Este PLC trae incluido el hardware de comunicación serial RS485 indispensable para la transmisión Modbus. Las librerías y rutinas de interrupciones pre-configuradas y diseñadas especialmente para la comunicación Modbus se instalan desde el STEP 7Micro/WIN (Software de aplicación del PLC). Las operaciones del protocolo Modbus permiten configurar el S7-200 para que actúe como Maestro o Esclavo. Las operaciones de Maestros Modbus en el PLC S7-200 actúan en modo RTU y se comunican con uno o varios Esclavos Modbus a través del puerto de comunicación de la CPU específico para dicho protocolo; en este caso es la CPU 222 con puerto de comunicación RS-485. Los parámetros básicos para configurar un dispositivo Maestro son: Puerto serial Velocidad de comunicación Bit de paridad Bit de parada Modo RTU o ASCII Tiempo de espera de respuesta
86
El PLC S7-200 incorpora una librería de operaciones que facilita la comunicación con los equipos Modbus. Esta librería Incorpora funciones Modbus de lecturaescritura del dispositivo Maestro en un rango de dirección específica (Véase tercera columna de la Tabla 3.1). El Esclavo debe soportar las funciones indicadas en la Tabla 3.1.
Tabla 3.1-Tipo de Modelo del Dato Leer o Función de Esclavo requeridas Dirección Modbus Escribir por el Maestro Leer Función 1 00001 a 09999 salidas Función 5 para una sola salida digitales Escribir Función 15 para varias salidas Leer Función 2 10001 a 19999 entradas digitales Escribir Imposible Leer Función 4 30001 a 39999 registros de entrada Escribir Imposible Leer Función 3 40001 a 49999 registros de Función 6 para un solo registro retención Escribir Función 16 para varios registros Fuente [9]
3.1.1 Cable de Red
Los PLC S7-200 de Siemens integran módulos de comunicación como interface Industrial-Modbus, Ethernet, entre otros. Estos módulos se incorporan dentro de la CPU 222 del S7-200 que viene con un puerto de comunicación serial RS-485 con un cable de red par trenzado con las características técnicas de la Tabla 3.2.
87
Tabla 3.2-Datos Técnicos Generales de un Cable de Red. Datos técnicos
Descripción
Tipo de cable
Apantallado, con par trenzado
Resistencia de bucle
≤ 115 Ω/km
Capacidad efectiva
30 pF/m Aprox 135 Ω a 160 Ω (frecuencia =3 MHz a 20 MHz)
Impedancia nominal Atenuación Sección del cable
0,9 dB/100 m (frecuencia=200 KHz) alma
Diámetro del cable Fuente [9]
del 0,3 mm2 a 0,5 mm2 8 mm±0,5 mm
Los puertos de comunicación de las CPUs S7-200 son compatibles con el estándar RS-485 vía un conector DB9 conforme al estándar RS-485. La Tabla 3.3 muestra el conector que ofrece el enlace físico para el puerto de comunicación, indicándose también las asignaciones de pines de los puertos de comunicación.
Tabla 3.3-Asignación de Pines del Puerto de Comunicación del S7-200 Enchufe Nº de pin Puerto RS-485 1 Tierra 2 Hilo lógico Señal B RS-485 3 RTS (TTL) 4 5 Hilo lógico 6 5 V,100 Ω resistor en serie 7 24 V Señal A RS-485 8 Selección protocolo de 10 Bits 9 (entrada) Carcasa del enchufe Tierra Fuente [9]
88
3.2
MÓDULO ESCLAVO
Para llevar a cabo la comunicación Modbus en una red, es necesario la presencia de al menos de un Maestro Modbus. Un Esclavo Modbus puede ser un PLC, un variador de velocidad, un transmisor, un HMI o cualquier módulo que pueda comportarse como un “Esclavo” Modbus cumpliendo con los siguientes parámetros: Dirección del Esclavo Puerto serial a utilizar Velocidad de comunicación Bit de paridad Bit de parada Modo RTU o ASCII
El dispositivo Esclavo tiene que mantener un estado de recepción (en espera) para poder aceptar los mensajes que son enviados por el Maestro. Una vez que el Esclavo recibe la trama completa Modbus, analiza y procesa la petición enviando una respuesta al Maestro. La recepción y la transmisión de una trama Modbus debe cumplir las con las normas del protocolo.
3.2.1 Requerimientos Específicos del Módulo Esclavo
3.2.1.1 Requerimientos del Hardware
Aunque el prototipo diseñado pretende ser una herramienta con fines didácticos, los elementos y dispositivos son los mismos usados en la industria. Por esta razón
89
fue necesario determinar un hardware que se ajuste a los estándares de dispositivos industriales. Los microcontroladores son dispositivos diseñados para diversas aplicaciones, tales como para control y procesamiento de datos. Para el desarrollo de la tarjeta de adquisición de datos el microcontrolador es el encargado de la adquisición de los datos y cumple con los requerimientos del protocolo Modbus mencionados, además de esto, permite definir espacios de memoria que son de uso exclusivo del protocolo y la adquisición de datos como: puertos de entrada de las señales Análogas-Digitales y registros para la recepción y transmisión de datos. Teniendo en cuenta lo anterior el hardware se compone de 5 núcleos principales que son: Unidad de conexión de las entradas digitales. Unidad de conexión de las entradas análogas. Puerto de comunicación serial. Unidad de control y procesamiento de datos. Interfaz de usuario (teclado y LCD).
3.2.2 Diseño del Módulo Esclavo
De acuerdo a los requerimientos del hardware mencionados anteriormente y las necesidades del laboratorio el módulo debe contar con los siguientes componentes: 8 Entradas digitales 24
.
2 Entradas análogas 4-20mA. Puerto de Comunicación serial RS-485. Interfaz de Usuario
90
Las características seleccionadas para el módulo Esclavo son las que utilizan la mayoría de dispositivos de la industria, tales como trasmisores, válvulas y sensores.
3.2.2.1 Entradas Digitales
El estado de las entradas digitales debe ser detectado con la ausencia/presencia de 24
en los respectivos conectores. Para que estas señales digitales puedan
ser trasmitidas al microcontrolador, debe reducirse el voltaje a niveles TTL. En la actualidad existen diversos circuitos integrados que brinda estas características, entre ellos están los Relés y los Opto acopladores. Estos últimos tienen una gran ventaja ya que cuentan con un aislamiento galvánico que se crea entre el circuito de entrada y de salida del opto acoplador. Fundamentalmente los opto acopladores son dispositivos que están formados por una fuente emisora de luz (circuito de entrada), y un foto-sensor de silicio (circuito de salida), al no haber contacto eléctrico produce un aislamiento superior a los 10MΩ, brindando así una alta protección al microcontrolador. Acorde a esto se utilizó el opto acoplador 4N35, el cual tiene un LED emisor que necesita una corriente de entrada if = 20mA (Véase Anexo E) para emitir luz. Debido a que la entrada del LED es 24
cuando el estado de la entrada es un 1
lógico y para que su funcionamiento sea óptimo se calculó la resistencia para limitar la corriente del LED. Por lo tanto: Ec. 12 Ec. 13 Ec. 14
91
Ec. 15 Teniendo en cuenta que 1.165KΩ no es un valor comercial lo aproximamos a 1.2KΩ. Es importante tener en cuenta que la salida del circuito opto acoplador es un inversor y se debe corregir por software para saber el estado real de la entrada. En la Figura 3.2 se aprecia el circuito implementado con optoacopladores. Figura 3.2 Circuito de las Entradas Digitales con Optoacopladores.
3.2.2.2 Entradas Análogas
En la Figura 3.3 se observa que las entradas análogas reciben una señal de 420mA la cual se convierte en voltaje para el conversor Análogo-Digital(A/D), esto se logra conectando a una resistencia en paralelo a la señal de entrada para obtener un voltaje variable 1-5V, donde un 1V es el valor mínimo (4mA) y 5V el valor máximo (20mA). Teniendo en cuenta esto, la resolución del conversor Análogo-Digital se calcula mediante la fórmula: Ec. 16
92
Donde
y
son los limites superior e inferior respectivamente de los
voltajes que van a ser convertidos y
es el número de Bits del conversor A/D.
Por lo tanto: Ec. 17 Ec. 18 Lo que indica que por cada
que aumente en la entrada del conversor este
aumentara una unidad en su salida. Además se implemento un amplificador operacional como seguidor de voltaje para obtener una baja impedancia a la salida que permita tener lecturas correctas hacia el microcontrolador, ya que se recomienda tener una impedancia máxima de entrada de 10KΩ6. El operacional que se utilizo fue el LM324 debido a que tiene un bajo consumo de energía (esto aparece en el Anexo D como 'power drain'), se usa como aplicación para fuentes sencillas de alimentación y puede trabajar con voltajes desde 3V hasta 32V. Como este operacional posee perdidas, el voltaje de alimentación tiene que ser mayor que 5V. Por cuestiones de diseño el voltaje de alimentación que se tomo fue de 9V y aparte se coloca una resistencia de un 1K a la salida del operacional para limitar la corriente que llega al microcontrolador en caso de que haya un sobre voltaje.
6
Esta parte fue tomada del Anexo B Datos Técnicos del Microcontrolador PIC16F877A
93
Figura 3.3-Circuito de las Entradas Analogas
Teniendo en cuenta el rango de la señal de corriente de 4-20mA y el rango de voltaje de 1-5V del circuito operacional, entonces: Ley de ohm: Ec. 19 Ec. 20 Ec. 21 Ec. 22 Ec. 23 Donde
es el valor de resistencia para la conversión de corriente a
voltaje que se usa en las 2 entradas análogas del dispositivo. 3.2.2.3 Puerto de Comunicación RS-485
94
Para integrar este puerto de comunicación al módulo Esclavo se utilizó el integrado MAX485 (Véase Anexo C), el cual se encarga de regular los niveles de voltaje TTL del microcontrolador y los del estándar RS-485. Este integrado maneja una señal de control para la recepción y transmisión de datos. En la Tabla 3.4 se indican los posibles estados que puede tener el integrado MAX485 según las señales de control manejadas desde el microcontrolador.
Tabla 3.4 Estados de Control del Integrado MAX485. Señal de Control Estado Habilita la Recepción 0 1 Habilita la Transmisión
En la Figura 3.4 se muestra la conexión del circuito.
Figura 3.4-Puerto de Comunicación RS-485
95
El conector implementado en el módulo para este puerto de comunicaciones es un DB9 macho, el cual es compatible con el puerto serial RS-485 del PLC S7-200. (Véase Figura 3.5). Figura 3.5-Conector Macho DB-9
3.2.2.4 Interfaz de Usuario
Se implemento un Display de cristal líquido LCD de 16x2 como interfaz visual para el módulo Esclavo para observar algunos parámetros a configurar del protocolo como la dirección del dispositivo Esclavo, la velocidad de transmisión y también para visualizar los datos Análogos-Digitales localmente de la DAQ sin necesidad de tener comunicación con el PLC (Véase Figura 3.6). Para poder modificar digitalmente dichos parámetros del protocolo y seleccionar la visualización de los datos Análogos-Digitales, se implementaron 3 pulsadores que manejaban la configuración de estos. Estos pulsadores junto al LCD corresponden a la interfaz de usuario.
96
Figura 3.6-Circuito Interfaz de Usuario
Interfaz pulsadores: Se diseño un teclado con 3 pulsadores conectados a
3 pines del puerto C del microcontrolador de la siguiente manera: un extremo del pulsador está conectado en serie a la entrada del PIC y a una resistencia de 10K está conectada a VCC. El otro extremo del pulsador va conectado a tierra y a un condensador de 1nF que a su vez está conectado a la entrada del PIC (Véase Figura 3.6). El objetivo de este circuito es eliminar el rebote y filtrar el ruido ocasionado en el momento de presionar el pulsador. Cada pulsador usa lógica negativa, al presionarlo pone un 0 lógico a la entrada del microcontrolador y cuando no pone un 1 lógico.
97
Módulo LCD: la conexión del display de cristal líquido es directa con el
microcontrolador y no necesita significativas adecuaciones físicas, ya que este consta de su propio controlador, espacio de memoria y su manejo se hace por software lo cual hace más sencilla su implementación. Debido que el módulo LCD es un circuito integrado hay que garantizar que tenga conectados la alimentación, la
tierra y el contraste para su correcto
funcionamiento. El contraste LCD se maneja mediante la variación de un Trimmer conectado al pin de VEE del LCD, en la Figura 3.6 se muestra la conexión implementada.
3.2.2.5 Unidad de Procesamiento y Control
De acuerdo a los requerimientos técnicos del hardware mencionados en la sección 3.2.1.1 se escogió el microcontrolador PIC16F877A como el dispositivo programable aplicado a la adquisición de datos, implementación del protocolo Modbus y monitoreo de las entradas (digitales-análogas) porque posee varias características (Véase Anexo B) que hacen a este microcontrolador un dispositivo muy versátil, eficiente y práctico para utilizarse en estas aplicaciones. Algunas de las características importantes de este microcontrolador, son: Puerto de comunicación serial (USART). Bajo consumo 2mA para 5V. CPU tipo RISC (conjunto de instrucciones reducidas). Puertos de entrada/salida. Un conversor análogo/digital de 10-Bit.
Memoria de programa de 8Kx14 Bits.
Capacidad de Almacenamiento en su memoria EEPROM.
98
El esquema básico diseñado y la asignación de pines al microcontrolador que corresponde a la especificación de la DAQ se muestran en la Figura 3.7 y la Tabla 3.5. Tabla 3.5-Asignación de Pines # Pin 1
Nombre MCLR
Función RESET
2
RA0
ENTRADA ANÁLOGA 0
3
RA1
ENTRADA ANÁLOGA 1
4
RA2
VREF+= 5V
5
RA3
VREF-= 1V
6
RA4
7
RA5
8
RE0
9
RE1
10
RE2
11
Vdd
5 VDC
12
Vss
GND
13
OSC1/CLK
CRISTAL
14
OSC1/CLK
CRISTAL
15
RC0
BOTÓN UP
16
RC1
BOTÓN DOWN
17
RC2/CCP1
BOTÓN OK
18
RC3/SCK
19
RD0/PSP0
CONTROL LCD E
20
RD1/PSP1
CONTROL LCD RS
21
RD2/PSP2
CONTROL LCD RW
22
RD3/PSP3
23
RC4/SD1
24
RC5/SD0
25
RC6/Tx
CONTROL MAX485 DE/RE
RO MAX485
99
26
RC7/RX
DI MAX485
27
RD4/PSP4
DATOS LCD D4
28
RD5/PSP5
DATOS LCD D5
29
RD6/PSP6
DATOS LCD D6
30
RD7/PSP7
DATOS LCD D7
31
Vss
5 VDC
32
Vdd
GND
33
RBO/INT
ENTRADA DIGITAL 1
34
RB1
ENTRADA DIGITAL 2
35
RB2
ENTRADA DIGITAL 3
36
RB3
ENTRADA DIGITAL 4
37
RB4
ENTRADA DIGITAL 5
38
RB5
ENTRADA DIGITAL 6
39
RB6/PGC
ENTRADA DIGITAL 7
40
RB7/PGD
ENTRADA DIGITAL 8
100
Figura 3.7-Circuito Esquemático General de la DAQ.
101
3.2.2.6 Fuente de Alimentación Dado que se requiere un diseño más óptimo y sencillo del dispositivo se opto por usar un adaptador de voltaje comercial, para no diseñar una fuente interna en el dispositivo lo cual lo hace más grande. El adaptador de voltaje tiene las siguientes características: Voltaje de entrada: 100-240
~50/60Hz
Voltaje de salida: 9 Corriente de salida: Max. 600mA El dispositivo Esclavo tiene un consumo de corriente de 50mA y visto ya las características del adaptador se afirma que tiene la suficiente potencia para alimentar el dispositivo Esclavo.
3.2.3 Evaluación de costos Conociendo el hardware y teniendo en cuenta que el prototipo esclavo fue pensado como una alternativa económica, se realizo un estimativo en dinero de lo que puede llagar a costar la producción o replica de este dispositivo en su implementación final, en la Tabla 3.6 se observa los costos en dinero del equipo. Tabla 3.6 Costos de Implementación Cantidad Descripcion Costo Unitario Costo total 1 Microcontrolador PIC 16F877A $18.000 $18.000 1 Base de 40 pines $ 200 $200 8 Opto acopladores 4N35 $ 700 $5.600 8 Resistencias de 1.2K $ 50 $400 8 Resistencias de 1K $ 40 $320 8 Bases de 6 pines $ 200 $1.600 9 Borneras de Montaje $ 400 $3.600 9 Borneras de Caja $ 300 $2.700 1 Circuito integrado LM324 $ 1.500 $1.500 2 Resistencias de 250 ohm $ 50 $100
102
2 1 3 3 1 2 3 3 3 13 1 1 2 1 1 1 2 1 2 1 1 1 1
Resistencias de 1000 ohm Base de 14 pines Borneras de Montaje Borneras de Caja Modulo LCD 16x2 Trimmer 10k Pulsadores N.A Capacitores de 1nF Resistencias de 10M Borneras de Montaje Puerto hembra DB9 Cable serial RS-485 Capacitores de 1uF Cristal de 4Mhz Circuito Integrado MAX -485 Base de 8 pines Borneras de Montaje RS-485 Regulador de Voltaje de 5v Bornera de Montaje Bornera de Caja Caja Circuito Impreso Adaptador 9V
$ 50 $ 200 $ 400 $ 300 $21.000 $ 500 $500 $ 20 $50 $ 400 $ 500 $3.000 $ 25 $500 $ 6.000 $200 $ 500 $ 1.000 $ 500 $ 300 $ 30.000 $ 20.000 $ 16.000 TOTAL
$100 $200 $1.200 $900 $21.000 $1.000 $1.500 $60 $150 $5.200 $500 $3.000 $50 $500 $6.000 $200 $1.000 $1.000 $1.000 $300 $30.000 $20.000 $16.000 $144.880
Con la anterior información mostrada se demuestra que la implementación de este proyecto es más económica que la adquisición de un equipo similar en el mercado, cabe anotar que en estos costos no está tomado en cuenta los valores asociados con la parte de diseño (mano de obra) ya que este es un proyecto tipo académico, que inicialmente no fue pensado para la comercialización.
103
4 DISEÑO E IMPLEMENTACIÓN DEL SOFTWARE DEL MÓDULO
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) de acuerdo a los requerimientos técnicos exigidos por la implementación del hardware para el Sistema de Adquisición y Procesamiento de Datos (Análogosdigitales). El PIC C Compiler permite que la implementación del Software de este proyecto sea desarrollada bajo el lenguaje de programación C; haciendo la programación muy flexible y manejando una estructura sencilla y apropiada para esta aplicación. El software se diseñó de modo que el módulo Esclavo pueda comunicarse con el PLC de acuerdo a las características del protocolo Modbus a través del puerto serie RS-485. Para la implementación del software se definen algunos parámetros necesarios para la comunicación Modbus entre dispositivos Maestro-Esclavo tal como muestran en la Tabla 4.1. El módulo desarrollado funciona como dispositivo Esclavo y el PLC Siemens S7-200 como Maestro. Tabla 4.1-Parámetros de la DAQ Modbus-RS-485 Interfaz de comunicación Dirección de Esclavo
1-8
Modo de transmisión
Halfduplex-RTU
Velocidad
1200/2400/4800/9600/19200
Paridad
Ninguna
Número de entradas digitales
8
Número de entradas análogas
2
104
4.1
REQUERIMIENTOS DEL SOFTWARE
El módulo de adquisición de datos Análogo-Digital funciona como dispositivo Esclavo y se comunica mediante protocolo Modbus con el PLC, para esta tarjeta de adquisición se diseñó un Software que cumpla con tres requerimientos básicos: 1. Adquisición de datos:
Adquisición de las señales análogas y procesamiento de datos.
Adquisición de las señales digitales y procesamiento de datos.
2. Comunicación serial bajo el protocolo de Comunicación Modbus.
3. Interfaz usuario para el módulo Esclavo.
4.2
Manejo y comunicación con el LCD.
Lectura de pulsadores y procesamiento de datos.
DESARROLLO DEL SOFTWARE DEL MICROCONTROLADOR
El Software en el microcontrolador del módulo Esclavo se implementó para ejecutar simultáneamente tareas específicas que están dentro del programa principal, estas tareas se encargan de ejecutar las funciones planteadas en los requerimientos del Software que son necesarias en la aplicación de este proyecto. De acuerdo a que la comunicación serial Modbus se maneja por interrupciones, el programa siempre tiene prioridad sobre el sistema de comunicación serial en el dispositivo Esclavo, por esta razón se diseñó un programa que pueda ejecutar la comunicación
Modbus
y
las
demás
concurrentemente.
105
funciones
del
dispositivo
Esclavo
4.3
ESTRUCTURA DEL PROGRAMA PRINCIPAL
El diseño del software se compone de una estructura principal la cual contiene 6 rutinas. Cada una de estas rutinas realiza una tarea diferente que se ejecuta de acuerdo a los requerimientos de Software mencionados del módulo Esclavo (Véase Figura 4.1). Inicialmente tenemos la rutina de inicialización en la cual se lleva a cabo la inicialización de variables, espacio de memoria y configuración de las librerías; esta rutina solo se ejecuta una vez en el programa principal. Después sigue la rutina Configuración del Módulo Esclavo que usa la información que se suministra a través de la interfaz de usuario con los pulsadores y configura los parámetros del dispositivo Esclavo. A partir de aquí se inicia un ciclo infinito en el programa principal. Seguidamente está la rutina Interfaz de Pulsadores la cual tiene la función de recibir, procesar, ejecutar la información de interfaz de usuario a través del teclado (pulsadores). A continuación está la rutina de adquisición de datos la cual sirve para leer los datos de entrada Análogos-Digitales del sistema, cuyos datos son adecuados en un formato real y didáctico para que cuando exista una solicitud estén listos para ser enviados. La interfaz LCD es la de visualización de las pantallas en el LCD para que el usuario pueda configurar el dispositivo y monitorear los datos localmente. Por último se consulta el registro de recepción serial, si no hay ninguna interrupción serial el programa principal salta hasta “la rutina Configuración módulo Esclavo” y continua por las demás rutinas siguientes hasta volver a consultar el
106
registro de recepción serial quedándose en un ciclo infinito hasta que ocurra la interrupción serial, en caso que la interrupción ocurra se ejecuta la rutina Modbus en la cual se recibe la solicitud modbus, se procesa y se envía una respuesta de acuerdo a la solicitud, una vez la rutina se haya ejecutado el programa principal regresa a “la rutina Configuración del módulo Esclavo” creando otro ciclo de programa infinito.
Figura 4.1-Diagrama de Flujo Rutina General.
4.3.1 Inicializaciones
107
Esta rutina solo se ejecuta cada vez que se energiza el módulo, en esta misma se lleva a cabo tareas tales como configurar puertos de Entradas-Salidas, configuración del puerto serial (velocidad, modo de comunicación), configuración de contadores, interrupciones y espacios de memoria (Véase Figura 4.2).
Figura 4.2-Diagrama de Flujo Rutina Inicializaciones
Configuración de espacios de memoria y registros
108
En esta subrutina se lleva a cabo la configuración e inicialización de los registros y espacios de memorias los cuales son usados en las rutinas del programa principal en la Tabla 4.2 se encuentra las variables utilizadas Tabla 4.2-Variables de Programa Variable Función input_regs[2] Variable tipo chart en la cual se almacena el valor de las 2 señales análogas una vez se haya hecho la adecuación, para después ser utilizada en la solicitud Modbus. inputs
Variable tipo int8 la cual almacena el estado real de las 8 entadas digitales una vez se le haya hecho la adecuación, para después ser utilizada en la solicitud Modbus.
Menu
Variable indica en que menú se encuentra la interfaz de usuario Variable indica que opción se apunta con el cursor en cualquier menú que se encuentre en la interfaz de usuario
Opción
OpciónActivada MODBUS_ADDRESS
Variable que indica cuando una opción es seleccionada para ser modificada Parámetro que se le ingresa a la librería modbus para determinar la dirección del esclavo
MODBUS_SERIAL_BAUD Parámetro que se le ingresa a la librería modbus para determinar la velocidad del esclavo Dirección Esclavo
Variable que se modifica para configurar la dirección del esclavo mediante la interfaz de usuario, el rango es de 1-8
Velocidad Esclavo[4]
Variable tipo chart que se modifica para configurar la velocidad de transmisión del Esclavo mediante la interfaz de usuario, los valores de velocidad son [1200-2400-4800-9600-19200bps]
109
Inicialización librería Modbus Rutina que permite la inicialización y configuración de la librería Modbus (Modbus.C)7, aquí se definen algunos parámetros para el funcionamiento de esta librería dentro del software del módulo Esclavo:
Modo de trasmisión “RTU”.
Tipo de Modbus “Esclavo”.
Tamaño del búfer “64 Bytes”.
Pin de control “E1”, pin transmisión “C6” y pin de recepción “C7”. Interrupción serial externa. Para la asignación de estos parámetros es importante leer la documentación incluida para la librería Modbus.C.
Inicialización librería LCD En esta se lleva a cabo la inicialización y configuración de la librería para el manejo del LCD (LCD.C)8, donde se define un parámetro para el funcionamiento esta librería:
Puerto D para el envió de los datos y control del LCD
Inicialización ADC puertos y reloj En esta subrutina se configuran los pines A1 y A2 para las entradas análogas, los pines A3 y A4 se definen para la referencia positiva y negativa 7
Esta es la librería usada para el manejo del protocolo Modbus y viene incluida en el compilador (PIC C Compiler). 8 Esta es la librería usada para el manejo del LCD y viene incluida en el compilador (PIC C Compiler).
110
respectivamente, adicionalmente se configura el reloj para la conversión de los datos análogos. (Véase Tabla 3.5) Inicialización de puertos de entrada. Rutina para la configuración de puertos, se asigna el puerto B como entrada para las 8 entradas digitales y se definen los pines C0, C1 y C2 como entradas a la interfaz del teclado. (Véase Tabla 3.5)
4.3.2 Configuración Módulo Esclavo
En esta rutina se modifican parámetros del programa según la información suministrada mediante la interfaz de usuario, se configura dos parámetros: La dirección del Esclavo y la velocidad de transmisión. (Véase Figuera 4.3) Figura 4.3-Diagrama de Flujo Rutina Configuración del Modulo Esclavo
111
4.3.3 Interfaz Pantalla LCD
En esta rutina se lleva a cabo la impresión de diferentes pantallas o menús en el LCD. Para determinar que pantalla debe ser impresa se consulta el estado de tres variables Menú, Opción y OpcionActivada (Véase Figura 4.4), el estado de estas variables es modificado en la interfaz de pulsadores.
112
Figura 4.4Diagrama de Flujo Rutina Interfaz LCD
113
114
4.3.4 Interfaz Pulsadores
La rutina de interfaz de pulsadores es la que ejecuta las funciones de la interfaz de usuario cuando un pulsador es presionado (Véase Figura 4.5), estas funciones se hacen mediante tres subrutinas las cuales son: Función Up Función Down Función Ok
Figura 4.5-Diagrama de Flujo Rutina Interfaz Pulsadores
115
4.3.4.1 Función Up
Esta subrutina sirve para desplazar la flecha de selección entra las opciones que hay en cada menú que se visualiza en el LCD, además permite modificar los parámetros de configuración del Esclavo ascendentemente, esto se hace mediante la consulta y modificación del estado de tres variables cada vez que se llama la subrutina Función Up: Menú, Opción y OpcionActivada. Dependiendo del estado estas se ejecuta una acción o se modifica el estado de una o varias de estas variables (Véase Figura 4.6)
116
Figura 4.6-Diagrama de Flujo Subrutina Función Up
117
118
4.3.4.2 Función Down
Esta subrutina sirve para desplazar la flecha de selección entra las opciones que hay en cada menú que se visualiza en el LCD, además permite modificar los parámetros de configuración del Esclavo descendentemente, esto se hace mediante la consulta y modificación del estado de tres variables cada vez que se llama la subrutina Función Down: Menú, Opción y OpcionActivada. Dependiendo del estado estas se ejecuta una acción o se modifica el estado de una o varias de estas variables (Véase Figura 4.7).
119
Figura 4.7-Diagrama de Flujo Subrutina Función Down
120
4.3.4.3 Función Ok
Esta subrutina sirve para ingresar a un menú en especifico, para entrar y salir de una opción a modificar (parámetros de configuración) y retroceder a un menú anterior. Esto se hace mediante la consulta y modificación del estado de tres variables cada vez que se llama la subrutina Función Ok: Menú, Opción y OpcionActivada. Dependiendo el estado de las variables se ejecuta una acción o se modifica el estado de una o varias de estas variables (Véase Figura 4.8).
121
Figura 4.8-Diagrama de Flujo Subrutina Función Ok
122
4.3.5 Adquisición de Datos
En este bloque se llevan a cabo las tareas de adquirir los datos de entrada provenientes de la planta o del sistema que se requiere monitorear y se almacenan en variables para ser usados en una solicitud Modbus. (Véase Figura 4.9). Figura 4.9-Diagrama de Flujo Rutina Adquisición de Datos.
123
Entradas digitales Se hace una Lectura de todo el puerto B donde se encuentran las 8 entradas digitales, luego se Almacenan los datos en una variable. Adecuación de entradas digitales En la sección 3.2.2.4 se mencionó que las entradas digitales son negadas, para mantener el nivel original se hizo una adecuación por software la cual consiste en hacer una XOR entre la variable que almacena los datos digitales y el numero FFh para así negar las entradas y mostrar su valor real. Análoga 1 Se selecciona el canal uno del conversor análogo, se lee el dato de ese canal y se almacena en una variable. Adecuación de entradas análoga 1 Por motivos didácticos se decidió que las entradas análogas fueran escaladas en porcentajes 0-100%, se hizo una adecuación por software la cual consiste en calcular el valor de la pendiente entre el valor real de la codificación y el valor de escalamiento (Véase la Ec.24). Luego de calcular este valor se multiplica por el dato análogo almacenado en la variable para hacer el escalamiento en porcentaje. La pendiente es definida como: Ec. 24 Ec. 25 Ec. 26 Ec. 27 Ec. 28
124
Análoga 2 Se selecciona el canal dos del conversor análogo, se lee el dato de ese canal y se almacena el dato en una variable. Adecuación de entradas análoga 2 La adecuación presentada para la análoga 1 también aplica para la análoga 2.
4.3.6 Modbus
Cada vez que haya una interrupción serial se ejecuta esta rutina que es la encargada de armar la trama con los datos recibidos serialmente y analizar su validez, además responde a la solicitud requerida y prepara los datos para construir una trama de respuesta que es enviada al Maestro Modbus. (Véase Figura 4.10)
125
Figura 4.10-Diagrama de Flujo Rutina Modbus
126
Calculo del CRC Se calcula el CRC de la trama recibida y se compara con el CRC recibido para verificar si la trama es válida, si no lo es se genera una respuesta en excepción.
Dirección Modbus Se consulta si la dirección Modbus que se encuentra en la trama coincide con la dirección del Esclavo la cual ha sido previamente asignada, en caso de que no sean iguales se asume que la trama no es para este Esclavo y se descarta.
Funciones Se consulta en la trama recibida qué función se debe realizar, que en este caso solo pueden ser la función 2 y la función 4
Respuesta en excepción Se envía una respuesta al Maestro en caso de alguna inconsistencia por que la trama no es válida y/o función no soportada.
4.3.6.1 Códigos de Función Modbus
Para poder usar el hardware del módulo por medio del protocolo Modbus es preciso establecer una relación entre las funciones y las entradas del módulo, dado que este es un dispositivo de solo entradas análogas-digitales se utilizaron dos funciones del protocolo Modbus que se detallaran a continuación.
Función 02(0x02) Lectura de Entradas Digitales: Esta función captura la
información del estado de entradas de datos discretos, cada entrada necesita un
127
espacio de memoria de un Bit, el cual representara los estados ON (activa) u OFF (apagada). La lectura del estado de una entrada digital por medio de esta función se lleva a cabo leyendo el Bit de la correspondiente entrada digital. Para mejorar el rendimiento se ha decidido implementar un registro que permita conocer el estado de las 8 entradas digitales por medio de esta función, de esta forma, de una sola petición se adquiere información de todo el estado de todas las entradas digitales. En la Figura 4.11 se detalla el software de la función. Figura 4.11-Diagrama de Flujo Subrutina Leer Entradas Digitales
128
Se consulta si el número de entradas solicitados está entre el rango de las entras del dispositivo Esclavo.
Se verifica la dirección de registro y el número de registro de las entradas digitales a leer.
Procesamiento de la solicitud Modbus Se lleva cabo la el cumplimiento de la función 02 y se verifica que no hubo ningún error al procesar la solicitud
Envió de respuesta En la construcción de la respuesta Modbus se preparan los Bytes de información a ser enviados como respuesta y se calcula el CRC de estos datos para finalmente enviar una respuesta al Maestro.
Respuesta en excepción Se realiza una respuesta en excepción en caso: Si el número de entradas solicitados no está entre el rango de las entras del dispositivo Esclavo. Si la dirección de registro y el número de registro de las entradas análogas a leer no están correctos. Si hubo error al procesar la solicitud.
Función 4(0x04) lectura de entradas análogas: La función 04 es una
función para la adquisición de datos de entrada pero se diferencia de la función 02 en que los datos se registran de 16 Bits en lugar de 1 Bit. Por medio de esta función se lee el valor que hay en las entradas análogas del módulo, cuya variación de 1 a 5
se digitaliza con valores discretos entre 0 a
1023, puesto que el ADC es de 10 Bits. Luego se escalan de 0-100%. En la Figura 4.12 se describen las subrutinas de la función.
129
Figura 4.12-Diagrama de Flujo Subrutina Leer Entradas Análogas
Se consulta si el número de entradas solicitados está entre el rango de las entras del dispositivo Esclavo. Se verifica la dirección de registro y el número de registro de las entradas análogas a leer.
130
Procesamiento de la solicitud Modbus Se lleva cabo la el cumplimiento de la función 04 y Se verifica que no hubo ningún error al procesar la solicitud
Envió de respuesta En la construcción de la respuesta Modbus se preparan los Bytes de información a ser enviados como respuesta y se calcula el CRC de estos datos para finalmente enviar una respuesta al Maestro.
Respuesta en excepción Se realiza una respuesta en excepción en caso: Si el número de entradas solicitados no está entre el rango de las entras del dispositivo Esclavo. Si la dirección de registro y el número de registro de las entradas análogas a leer no están correctos. Si hubo error al procesar la solicitud.
131
5 PRUEBAS Y RESULTADOS
En este capítulo se describen las pruebas realizadas para verificar el correcto funcionamiento del módulo Esclavo una vez terminada su construcción.
5.1
SOFTWARE UTILIZADO PARA LAS PRUEBAS
Para poder establecer una comunicación Modbus entre el dispositivo Esclavo y el PLC S7-200 es necesario instalar en el PC primero el Software del PLC STEP 7Micro/WIN y después la librería Modbus de instrucciones para el STEP 7Micro/WIN. STEP 7-Micro/WIN de Siemens es el Software o plataforma de trabajo que además permite configurar el PLC S7-200 como un Maestro Modbus. Cuenta con la capacidad de poder monitorear la comunicación Modbus, los datos solicitados y los errores que se puedan presentar en la solicitud. Para poder hacer el monitoreo es necesario que el STEP 7-Micro/WIN tenga comunicación constante con el PLC; esta comunicación debe hacerse utilizando cualquier medio serial(PPI, Profibus, OPC, etc.) excepto el puerto 0 del PLC puesto que este es usado para la comunicación Modbus. Para hacer estas pruebas se decidió hacer el monitoreo por comunicación Ethernet TCP/IP porque es de fácil configuración tanto en el PLC como en el PC. En la siguiente Figura 5.1 se observa el sistema implementado para las pruebas.
132
Figura 5.1-Sistema Para Las Pruebas
Para empezar, la librería de operación para el protocolo RTU Modbus están disponibles dentro de la carpeta “Librerías” del árbol de operaciones del STEP 7Micro/WIN"(Véase Figura 5.2). El requerimiento para utilizar esta librería de funciones de Modbus es disponer del STEP 7-Micro/WIN a partir de la versión V3.2. Para la comunicación Modbus se utilizan los módulos de la librería Modbus: "MBUS_CTRL" y "MBUS_MSG" para la parte del Maestro, las Tablas 5.1 y 5.2 describen el significado y las posibilidades de selección de los parámetros de estos módulos.
133
Figura 5.2-Árbol de Operaciones
Fuente [9]
134
Tabla 5.1Parámetros de la Operación MBUS_CTRL Parámetros Significado EN Mode Baud
Liberación Indicación del protocol Velocidad de transmisión en kBit/s
Parity
Paridad
Timeout
Tiempo máximo para la respuesta del Esclavo en ms
Done Error
Aviso de finalización Código de error
Posibilidades de selección 0 = PPI, 1 = MODBUS 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 0 = Ninguna, 1 = impar, 2 = par
Véase Tabla 2.7
Tabla 5.2-Parámetros de la operación MBUS_MSG Parámetro Significado Posibilidades de selección EN Liberación First Activación Slave Dirección del Esclavo RW "lectura" o "escritura" 0 = lectura, 1 = escritura Addr 0 -128 = Salidas digitales Dirección de inicio en Mobdus 1001-10128 = Entradas digitales 30001-30092 = Entradas analógicas 40001-49999 = Registros 2 Count
DataPtr Done Error Fuente [9
Número de Bits (0xxxx, 1xxxx) / Palabras (3xxxx, 4xxxx) Puntero al inicio de la memoria de variables Aviso de finalización Código de error
135
Véase Tabla 2.7
Para el monitoreo de los datos se emplea la herramienta Status Chart que viene incluida en el STEP 7-Micro/WIN. Esta herramienta permite ver los registro de memoria donde son almacenados los datos que se quieren monitorear, los datos pueden ser representados en formatos tales como: decimal, hexadecimal, binario y ASCII. En la Figura 5.3 se explica la conformación del status chart. Figura 5.3-Ventana Status Chart
Address= Dirección de la variable que se quiere monitorear. Format= Formato que se representa el valor de la variable monitoreada: Signed, Unsigned, Hexadecimal, Binary, FLoat y ASCII. Current Value= Valor actual de la variable monitoreada.
5.2
CONFIGURACIÓN DE LOS MÓDULOS MBUS_CTRL Y MBUS_MSG
Para realizar las pruebas se configuro la librería Modbus de la siguiente manera:
136
5.2.1 MBUS_CTRL
La operación MBUS_CTRL para el puerto 0 del S7-200 sirve para inicializar, vigilar o desactivar la comunicación Modbus. MBUS_CTRL se debe ejecutar sin errores antes de poder utilizar la operación MBUS_MSG. La operación se finaliza y el Bit Done se pone a 1 inmediatamente, antes de continuar con la siguiente operación. (Véase Figura 5.4) Figura 5.4-Moduló MBUS_CTRL
Esta operación se ejecuta en cada ciclo cuando está activada la entrada EN. La operación MBUS_CTRL se debe llamar en cada ciclo (incluyendo el primero) para que ésta pueda vigilar el progreso de los mensajes pendientes iniciados por la operación MBUS_MSG. El protocolo de Maestros Modbus no funcionará correctamente si no se llama a la operación MBUS_CTRL en cada ciclo. (Véase Anexo F) Configuración: Con "Mode"=1 se configura el Puerto 0 como Modbus
137
"Baud=9600" es la velocidad recomendada para el protocolo modbus "Parity=0" el dispositivo Esclavo funciona sin paridad Un "Timeout=1000" es suficiente tiempo para esperar una respuesta del Esclavo "Done=M0.0" y "Error=MB1" esta son las variables donde se almacena cuando
la
rutina
ha
finalizado
y/o
algún
error
ha
ocurrido.
Cabe destacar que algunas pruebas realizadas para el correcto funcionamiento del dispositivo esclavo fueron realizadas con intervalos de tiempo de hasta dos horas de funcionamiento continuo para comprobar la estabilidad del equipo en el tiempo. Estas pruebas de estabilidad arrojaron resultados satisfactorias para confiabilidad del equipo.
5.2.2 MBUS_MSG
La operación MBUS_MSG sirve para iniciar una petición a un Esclavo Modbus y procesar la respuesta. La operación MBUS_MSG inicia una petición a un Esclavo Modbus si están activadas las entradas EN y First. Para enviar la petición, esperar la respuesta y procesarla se requieren generalmente varios ciclos del programa del PLC. La entrada EN debe estar puesta a 1 para poder enviar una petición, debiendo permanecer activada hasta que se active el Bit Done. (Véase Figura 5.5)
138
Figura 5.5-Moduló MBUS_MSG
Nota: Sólo puede estar activada una operación MBUS_MSG a la vez. Si hay más de una operación MBUS_MSG activada, se procesará la primera MBUS_MSG ejecutada y todas las demás operaciones MBUS_MSG se cancelarán con el código de error 6. Si hay una nueva petición que se deba enviar el parámetro First debe estar activado durante un ciclo. La entrada First se debe activar cuando se detecte un flanco positivo, haciendo que la petición se transmita una vez. El parámetro Slave es la dirección del Esclavo Modbus. El rango permitido está comprendido entre 0 y 247. La dirección 0 se usa como dirección de broadcast (difusión general), pudiendo utilizarse sólo para peticiones de escritura. No hay respuesta a una petición de broadcast a la dirección 0. No todos los Esclavos soportan la dirección de broadcast. El parámetro "EN=1" habilita esta rutina. Configuración: El parámetro "EN=1" habilita esta rutina. El parámetro "First=0/1" inicia el envió de una trama modbus.
139
La ID Slave=1 es la dirección que tiene el módulo Esclavo la cuales tiene que coincidir con la del Esclavo. El "RW"=1 señala que la función a ejecutarse es solo de lectura. El puntero "DataPtr=VB10" representa el comienzo de la memoria de variables a leer. Hay que tener mucho cuidado al escoger el puntero por que puede solaparse con algún registro que utiliza la librería Modbus. Este parámetro "Addr" = "xxxxx" (Función que se desea probar) indica la dirección de la función que se desea solicitar. El parámetro "Count" le indica a Addr el número de palabras que se desea leer.
5.3
COMPROBACIÓN
DE
LA
FUNCIÓN
02(LECTURA
DE
ENTRADA
DIGITAL) Y DE COMUNICACIÓN CON El PLC
Para verificar que hay comunicación Modbus entre el PLC y la tarjeta de adquisición de datos se utiliza la función 02 que permite leer entradas digitales. En la Figura 5.6 se observa la ventana del Status Chart la variable MB2 en la cual se guardan los errores, encontrándose en 0 al hacer la prueba (Véase Tabla 2.7Códigos de Error de Ejecución del Protocolo Modbus en el Esclavos) lo que indica que hay comunicación sin errores entre los dos dispositivos. Para comprobar la función 02 y las entradas digitales reales se hicieron tres pruebas: La primera consiste en probar todas la entradas digitales al mismo tiempo (Véase Figura 5.6) Para iniciar la prueba en el rutina MBUS_MSG se coloca el parámetro Addr=10001 indicando que se va a solicitar la función 02 empezando desde la primera entrada y el parámetro Count =8 para leer las siguientes 8 entradas digitales contiguas.
140
Figura 5.6-Comprobación de la Función 02-a
141
En la ventana del Status Chart se aprecia la variable VB10 con un valor actual en binario de 11111111 lo que indica que todas las entradas digitales están activadas con presencia física de 24
sin errores de comunicación o fuera de rango en la
solicitud. En la segunda prueba se activan la mitad de las entradas digitales y la otra mitad están desactivadas (Véase Figura 5.7).
142
Figura 5.7-Comprobación de la Función 02-b
143
En la ventana del Status Chart se aprecia la variable VB10 con un valor actual en binario de 00001111 lo que indica que la mitad de las entradas digitales están activadas con presencia física de 24
sin errores de comunicación o fuera de
rango en la solicitud. Y en la última prueba se apagan todas las entradas digitales y como se puede ver en la Figura 5.8 no hay ningún tipo de error y el estado real de las entradas es 0000000b.
144
Figura 5.8-Comprobación de la Función 02-c
145
5.4
COMPROBACIÓN
DE
LA
FUNCIÓN
04(LECTURA
DE
ENTRADA
ANÁLOGA)
Para comprobar la función 04 y las entradas análogas físicamente se hicieron tres pruebas: La primera consiste en probar las 2 entradas análogas al 100% de la señal (20mA) (Véase Figura 5.9). Para iniciar la prueba, el módulo MBUS_MSG se configura con el parámetro Addr=30001 indicando que se va a solicitar la función 04, empezando desde la primera entrada y el parámetro Count =2 para leer las 2 entradas análogas seguidamente.
146
Figura 5.9-Comprobación de la Función 04-a
147
El puntero de donde se empiezan a guardar los datos está en la variable VB10, dado que la información es de 16 Bits, los datos se almacena en las variables contiguas VW10 y VW12. VB10 corresponde a la parte alta de la palabra VW10. En la ventana del Status Chart se aprecia la variable con un valor actual en decimal de 100 cada una, lo que indica que la señal de las entradas análogas está al máximo valor con una presencia física de 20mA, sin errores de comunicación o fuera de rango en la solicitud. La segunda prueba se hace con la mitad de la señal de las entradas análogas (Véase Figura 5.10).
148
Figura 5.10-Comprobación de la Función 04-b
149
En la ventana del Status Chart se aprecia la variable VW10 y VW12 con un valor actual en decimal de 50 lo que indica que la señal de las entradas análogas está con presencia física de 12mA y sin errores de comunicación o fuera de rango en la solicitud. En la última prueba se envía el valor mínimo de las entradas análogas (4mA). Como se puede ver en la Figura 5.11 no hay ningún tipo de error y el estado real de las entradas es 0d con una presencia física de 4mA.
150
Figura 5.11-Comprobación de la Función 04-c
151
5.5
COMPROBACIÓN DE CAMBIO DE VELOCIDAD
Debido a que el dispositivo Esclavo tiene la capacidad de cambiar la velocidad de transmisión se realizaron pruebas de comunicación en las cuales se cambia la misma velocidad en ambos dispositivos. El dispositivo Esclavo tiene la capacidad de cambiar su velocidad entre estos rangos: 1200, 2400, 4800, 9600 y 19200 bps. La prueba se hizo en todos los rangos mencionados logrando comunicación exitosa, pero gráficamente se mostrarán los casos extremos (máxima y mínima velocidad). En el primer caso la velocidad se cambia parámetro baud=1200bps como se observar en la Figura 5.12. Se consigue tener una comunicación exitosa entre los dos dispositivos como se observa en la Figura 5.12 la variable MB2=0 sin errores.
152
Figura 5.12-Comprobación de Cambio de Velocidad 1200
En el segundo caso la velocidad en el parámetro baud=19200bps se configura como se observa en la Figura 5.13, siendo esta la velocidad más alta del dispositivo Esclavo. Se consigue tener una comunicación exitosa entre los dos dispositivos como se observa en la Figura 5.13 la variable MB2=0 sin errores.
153
Figura 5.13-Comprobación de Cambio de Velocidad 19200
154
5.6
PRUEBA DE CAMBIO DE DIRECCIÓN DEL ESCLAVO
En las pruebas anteriores la dirección del Esclavo fue 1, en esta prueba se cambio a 8 en los dos dispositivos como se observa en la Figura 5.14, el parámetro Slave fue cambiado y la variable MB2 continúa en 0 sin errores
Figura 5.14-Prueba de Cambio de Dirección del Esclavo
155
5.7
COMPROBACIÓN DE ERRORES
Si se presenta alguna falla en la comunicación o el monitoreo de los datos se presentan errores; por esta razón se realizaron pruebas forzando errores en el sistema implementado (Véase Figura 5.1) para probar los mensajes de excepción. Las pruebas realizadas son las siguientes: Vencimiento del Timeout de recepción. Solicitud no soportada. Dirección de datos no soportada Función 02 Dirección de datos no soportada Función 04
5.7.1 Vencimiento del Timeout de Recepción (Error 03)
Este error ocurre cuando no se ha recibido una respuesta del Esclavo dentro del tiempo indicado en Timeout, el cual está configurado con 1000ms. Ello puede deberse a: Una conexión eléctrica defectuosa con el Esclavo Que los ajustes del Maestro y del Esclavo son diferentes (velocidad de transferencia y/o paridad) Una dirección incorrecta del Esclavo.
156
Figura 5.15-Vencimiento del Timeout de Recepción-1
En la prueba, el parámetro Baud del módulo MBUS_CTRL en el Maestro fue cambiado a 19200 (Véase Figura 5.15) y el en Esclavo la velocidad de trasmisión se mantuvo en 9600bps, forzando así un error de disparidad de velocidad lo cual no permite comunicación entre los dos dispositivos causando que el Maestro envié la solicitud sin obtener una respuesta hasta que el Timeout expire y genere el error MB2=3.
157
Figura 5.16-Vencimiento del Timeout de Recepción-2
Inmediatamente se generó el mismo error cambiando la dirección del Esclavo en la solicitud del Maestro (Slave=2), la cual no coincide con la dirección del dispositivo Esclavo ID=1 causando que nunca exista una respuesta por parte de este generando así el error MB=2 Timeout expirado (Véase Figura 5.15)
158
5.7.2 Función No Soportada (Error 101)
Este error sucede cuando el Esclavo no soporta la función solicitada en esta dirección. Para forzar el error se solicitó una función que el Esclavo no soporta Addr=40001(Lectura de Registro de Retención), generando así el error MB2=101 (Véase Figura 5.17). Figura 5.17-Función No Soportada
159
5.7.3 Dirección de Datos No Soportada (Error 102 Función 02)
El Esclavo no soporta la dirección de los datos. El rango de direcciones de la función solicitada de Addr más Count está fuera del rango de direcciones permitido para el Esclavo. Para forzar este error en la función 02 el parámetro Addr se configuró una dirección de inicio errónea 10009 puesto que el dispositivo Esclavo tiene un rango de dirección de los datos digitales de 10001-10008, se genera el envió de un código de excepción en respuesta indicando el error MB2=102 (Véase Figura 5.18).
160
Figura 5.18-Dirección de datos no soportada función 02-a
Otra forma que pueda ocurrir este error es si el parámetro Count es configurado fuera de rango Count=9 puesto que el dispositivo Esclavo solo tiene 8 entradas digitales causando el envió de un código de excepción en respuesta indicando el error MB2=102 (Véase Figura 5.19).
161
Figura 5.19-Dirección de Datos No Soportada Función 02-b
5.7.4 Dirección de Datos No Soportada (Error 102 Función 04)
El Esclavo no soporta la dirección de los datos. El rango de direcciones de la función solicitada de Addr más Count está fuera del rango de direcciones permitido para el Esclavo. 162
Para forzar este error en la función 04 el parámetro Addr se configuró una dirección de inicio errónea 30009 puesto que el dispositivo Esclavo tiene un rango de dirección de los datos análogos de 30001-30002 se genera el envió de un código de excepción en respuesta indicando el error MB2=102 (Véase Figura 5.20). Figura 5.20-Dirección de Datos No Soportada Función 04-a
163
Otra manera de forzar este error es si el parámetro Count es Configurado fuera de rango Count=9 puesto que el dispositivo Esclavo solo tiene 2 entradas análogas esto causa el envió de un código de excepción en respuesta indicando el error MB2=102 (Véase Figura 5.21). Figura 5.21-Dirección de Datos No Soportada Función 04-b
164
6 CONCLUSIONES Y RECOMENDACIONES
6.1
CONCLUSIONES
Dadas las características del diseño del módulo de adquisición de datos con comunicación Modbus este sirve como herramienta didáctica dentro del laboratorio de automatización de ingeniería electrónica, para el desarrollo de nuevas aplicaciones con PLC’s Siemens y comunicaciones industriales tales como sistemas de adquisición de datos industriales, domótica, edificios inteligentes, en aplicaciones de supervisión, control de variables, como módulo de expansión para puertos en PLC, etcétera, brindándole al estudiante una perspectiva más amplia en el área de las comunicaciones industriales y la adquisición remota de datos. Los módulos similares en el mercado que son fabricados por grandes empresas y tienen costos elevados no se compara con el prototipo implementado el cual cuenta con elementos de costo moderado y fácil adquisición, fácil de duplicar y podría ser usado para distintas aplicaciones didácticas. Por lo cual este proyecto se convierte en una opción económica para el desarrollo de aplicaciones de distinto ámbito. Modbus es un bus de campo que 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. Su frecuente aplicación en la industria colombiana y de la región hace que sea importante tenerlo en cuenta para estudiar su estructura y campo de aplicación. En la implementación de la tarjeta adquisición de datos se opto por un Display LCD como modo de visualización para la configuración del 165
dispositivo Esclavo como velocidades de trasmisión y dirección del Esclavo. Además la interfaz permite el monitoreo de las variables durante la comunicación Modbus con el fin de efectuar la supervisión del estado actual de las entradas análogas-digitales del dispositivo Esclavo localmente. Durante las pruebas de comunicación serial se comprobaron la información de los datos de las tramas recibidas y enviadas tales como; los códigos de excepción, la no recepción de una respuesta, la configuración de diferentes velocidades de trasmisión y dirección de Esclavo. El resultado de estas pruebas fue el eficiente funcionamiento del dispositivo Esclavo tanto para los datos de adquisición como para las condiciones que el protocolo Modbus exige.
6.2
RECOMENDACIONES Para este tipo de proyecto que realicen funciones como manejo de protocolos de comunicación y adquisición de datos, es preferible utilizar un leguaje de programación de nivel alto para implementar estas aplicaciones. se recomienda usar compiladores para microcontroladores PIC que trabajan con lenguaje C como: PICC DE HI-TECH, CCS PIC C Compiler los cuales cuentan con librerías e instrucciones que facilitan la implementación de un sistema como este. Se recomienda configurar correctamente el Módulo de la librería modbus MBUS_MSG del Step Microwin del PLC S7-200 los parámetros Count y Addr para evitar errores por mala configuración de direccionamiento de datos. Se aconseja configurar correctamente
el Módulo de la librería modbus
MBUS_MSG del Step Microwin del PLC S7-200 el parámetro Slave y el
166
parámetro baud de la librería modbus MBUS_CTRL para evitar errores al no recibir respuesta en la comunicación. Finalmente, se recomienda leer el Manual de Usuario de este equipo para su óptima utilización y correcto funcionamiento, además de revisar la teoría acerca del Protocolo Modbus, poniendo énfasis en las Funciones y Tramas.
167
7 BIBLIOGRAFÍA
[1] B&B Electronics Mfg. RS-485 remote I/O solutions. [En línea], ,[citado el 26 de octubre 20010]
[2]MODBUS.ORG.
DGH
Corporation.
[En
línea]
, [citado el 23 de octubre de 20010]
[3]
MODICON.
Bus,
Networks
&
Communication
[en
línea].[citado el 14 de octubre de 2010]
[4]CREUSS, ANTONIO. Instrumentación y control industrial. Cuarta edición. Editorial Marcombo. México, 1992.
[5]Corrales Luis. Interfaces de Comunicación Industrial, Almería (España) ,2004.
[6]AUTONOMAS.ORG.
Protocolo
Modbus.
[En
línea],,[citado el 22 de octubre 2010]
[7]MODBUS.ORG. Guía Protocolo Modbus. [En línea] [citado en 10 de Julio de 2010]
[8]MODBUS.ORG.
Guía
Protocolo
Modbus.
[En
línea]
[citado en 22 de Julio de 2010]
168
[9]Siemens Automation. Empresa fabricante de PLC S7-200 [En línea] [citado en 12 de Octubre de 2010]
[10]MICROCHIP. Fabricante de microcontroladores PIC [En línea] característica técnicas sobre PIC16f877a
[11]WIKIPEDIA.ORG.
Teoría
Amplificadores
Operacionales.
[En
línea]
[citado en 28 Septiembre de 2010]
[12]IFENT.ORG.
Teoría
Amplificadores
Operacionales.
[En [citado
línea] en
15
Febrero de 201]
[13]AUTOMATAS.ORG.
Buses
de
Campo.
[En
línea]
[citado en 30 de Agosto de 2010]
[14]IFENT.ORG.
Módulo
LCD
[En
línea]
[citado en 15 Febrero de 201]
169
170
8 ANEXOS
171
Anexo A-Manual de Usuario
172
ÍNDICE
INTRODUCCIÓN
175
1. DESCRIPCIÓN DEL EQUIPO
175
1.1.
CARACTERÍSTICAS
175
1.2.
COMPONTES DEL DISPOSITIVO
176
1.2.1.
177
Descripción de los Componentes del Bloque Central
1.3.
CONEXIONES
178
1.4.
PREPARACIÓN PARA LA OPERACIÓN DEL DISPOSITIVO
179
2. OPERACIÓN DEL DISPOSITIVO 2.1.MENÚ
186 CONFIGURACIÓN 186
2.1.1.
Configuracion de Velocidad
187
2.1.2.
Configuracion de Dereccion del Esclavo
188
2.2.MENÚ
DATOS
I/0 189
3. MANTENIMIENTO Y PRECAUCIONES 3.1.
PRECAUCIONES DE OPERACIÓN
173
190 190
174
INTRODUCCIÓN
El módulo de adquisición de datos DAQ es un dispositivo portátil que sirve como interfaz remota para la adquisición de datos para el PLC S7-200. La DAQ se comunica con el PLC mediante el protocolo Modbus RS485.Este dispositivo tiene la capacidades de adquirir de señales Análogas-Digitales, monitorear localmente los datos y ser configurado para la comunicación Modbus.
1. DESCRIPCIÓN DEL EQUIPO
1.1. CARACTERÍSTICAS
El modulo de adquisición de datos cuanta con las siguientes características: Adquisición de señales digitales de 0-24v ópticamente aisladas. Adquisición y conversión de señales análogas de 4-20mA. Comunicación con PLC S7-200 mediante el bus de campo Modbus Puerto serial RS485 Compatibilidad con cables de 2 hilos Capacidad de reajustar parámetros de configuración de la comunicación Modbus a través de la interfaz de usuario. Sin comprobación de paridad Interfaz de usuario para el monitoreo local de los datos. Adaptador de alimentación externo 110-240V.
175
1.2. COMPONTES DEL DISPOSITIVO
El dispositivo esclavo se compone de un bloque central en el cual internamente se encuentra toda la circuitería, la unidad procesamiento y la interfaz de comunicación. En este bloque está conformado por la interfaz de usuario (LCD y teclado), conector DB9 para la interfaz de comunicación RS485. Cuenta con 8 terminales de conexión para las entradas digitales, 2 terminales para las entradas análogas y un LED piloto indicando cuando se efectúa la una comunicación Modbus. Figura 1.1-Vista Frontal Superior
176
Figura 1.2-Vista Lateral Superior
Figura 1.3-Vista latera derecha
1.2.1. Descripción de los Componentes del Bloque Central
En la en la imágenes anteriores se observaron la diferentes vista del dispositivo. DB9.
Terminal para la comunicación Modbus RS-485
AN1
Terminal para la señal Análoga uno.
AN2
Terminal para la señal Análoga dos.
GND
Tierra Análogas
177
COM
Común 24V
D0-D7
Terminal para las 8 señales digitales.
Tx/Rx
LED indicador de transmisión.
Vin
Terminal para la fuente de alimentación externa.
Tecla de selección de una opción o parámetro.
Tecla de selección de una opción o parámetro.
Ent
Tecla para seleccionar o modificar opción.
1.3. CONEXIONES
Para asegurar un correcto funcionamiento hay que conectar la fuente de alimentación externa al dispositivo para energizarlo y conectar el cable serial al dispositivo esclavo mediante el puerto DB9 y el otro extremo al puerto 0 del PLC (Véase Figura. 1.4)
178
Figura 1.4-Sistema de Conexión
1.4. PREPARACIÓN PARA LA OPERACIÓN DEL DISPOSITIVO
Antes comenzar a utilizar el dispositivo esclavo, previamente hay que configurar el dispositivo maestro PLC S7-200 Siemens como maestro Modbus ya que si no existe al menos un maestreo en una red Modbus nunca habrá comunicación serial. Para poder establecer comunicación Modbus entre el dispositivo Esclavo y el PLC S7-200 es necesario instalar en el PC primero el Software del PLC STEP 7Micro/WIN y después la librería Modbus de instrucciones para el STEP 7Micro/WIN. STEP 7-Micro/WIN de Siemens es el Software o plataforma de trabajo que además permite configurar el PLC S7-200 como un Maestro Modbus. Cuenta con la capacidad de poder monitorear la comunicación Modbus, los datos solicitados y los errores que se puedan presentar en la solicitud. Para poder hacer el monitoreo
179
es necesario que el STEP 7-Micro/WIN tenga comunicación constante con el PLC; esta comunicación debe hacerse utilizando cualquier medio serial (PPI, Profibus, OPC, etc.) excepto el puerto 0 del PLC puesto que este es usado para la comunicación Modbus. Para fines didácticos se decidió hacer el monitoreo por comunicación Ethernet TCP/IP porque es de fácil configuración tanto en el PLC como en el PC. El requerimiento para utilizar la librería de funciones Modbus es instalar el STEP 7-Micro/WIN a partir de la versión V3.2. Después de haber instalado exitosamente existirá un grupo de iconos correspondientes en el árbol de operaciones del STEP -Micro/WIN donde para la comunicación Modbus se utilizan los siguientes módulos de la librería: "MBUS_CTRL" y "MBUS_MSG", tal como se muestran en la figura:
Figura 1.5-Árbol de Operaciones
180
El diseño del software que se implementa en STEP 7-Micro/WIN permite configurar al PLC S7-200 como maestro y monitorear los datos solicitados y los errores que se puedan presentar en la solicitud de datos del dispositivo maestro hacia la tarjeta DAQ durante la comunicación Modbus A continuación se presenta la explicación de los módulos de la librería Modbus y la configuración recomendada para establecer una comunicación Modbus.
Función del MBUS_CTRL: La operación MBUS_CTRL para el puerto 0 del S7-200 sirve para inicializar, vigilar o desactivar la comunicación Modbus. MBUS_CTRL se debe ejecutar sin errores antes de poder utilizar la operación MBUS_MSG. La operación se finaliza y el Bit Done se pone a 1 inmediatamente, antes de continuar con la siguiente operación. Esta operación se ejecuta en cada ciclo cuando está activada la entrada EN. La operación MBUS_CTRL se debe llamar en cada ciclo (incluyendo el primero) para que ésta pueda vigilar el progreso de los mensajes pendientes iniciados por la operación MBUS_MSG. El protocolo de maestros Modbus no funcionará correctamente si no se llama a la operación MBUS_CTRL en cada ciclo. Figura 1.6-Modulo MBUS_CTRL
181
Configuración del modulo CTRL: Con "Mode"=1 se configura el Puerto 0 como Modbus "Baud=9600" es la velocidad recomendada para el protocolo modbus "Parity=0" el dispositivo esclavo funciona sin paridad Un "Timeout=1000" es suficiente tiempo para esperar una respuesta del esclavo "Done=M0.0" y "Error=MB1" esta son las variables donde se almacena cuando la rutina ha finalizado y/o algún error ha ocurrido Función del MBUS_MSG: La operación MBUS_MSG sirve para iniciar una petición a un esclavo Modbus y procesar la respuesta. La operación MBUS_MSG inicia una petición a un esclavo Modbus si están activadas las entradas EN y First. Para enviar la petición, esperar la respuesta y procesarla se requieren generalmente varios ciclos del programa del PLC. La entrada EN debe estar puesta a 1 para poder enviar una petición, debiendo permanecer activada hasta que se active el Bit Done. Nota: Sólo puede estar activada una operación MBUS_MSG a la vez. Si hay más de una operación MBUS_MSG activada, se procesará la primera MBUS_MSG ejecutada y todas las demás operaciones MBUS_MSG se cancelarán con el código de error 6. Si hay una nueva petición que se deba enviar el parámetro First debe estar activado durante un ciclo. La entrada First se debe activar cuando se detecte un flanco positivo, haciendo que la petición se transmita una vez. El parámetro Slave es la dirección del esclavo Modbus. El rango permitido está comprendido entre 0 y 247. La dirección 0 se usa como dirección de broadcast (difusión general), pudiendo utilizarse sólo para peticiones de escritura. No hay respuesta a una
182
petición de broadcast a la dirección 0. No todos los esclavos soportan la dirección de broadcast. El parámetro "EN=1" habilita esta rutina. Figura 1.7-Modulo MBUS_MSG
Configuración del modulo MSG: El parámetro "EN=1" habilita esta rutina. El parámetro "First=0/1" inicia el envió de una trama modbus. La ID Slave=1 es la dirección que tiene el módulo esclavo la cuales tiene que coincidir con la del esclavo. El "RW"=1 señala que la función a ejecutarse es solo de lectura. El puntero "DataPtr=VB10" representa el comienzo de la memoria de variables a leer. Hay que tener mucho cuidado al escoger el puntero por que puede solaparse con algún registro que utiliza la librería Modbus. Este parámetro "Addr" = "xxxxx" (Función que se desea probar) indica la dirección de la función que se desea solicitar. El parámetro "Count" le indica a Addr el número de palabras que se desea leer.
183
El software se puede implementar teniendo en cuenta las configuraciones anteriormente mencionado se pueden apreciar en la siguiente figura.
184
Figura 1.8-Software para PLC S7-200
185
2. OPERACIÓN DEL DISPOSITIVO
Una vez cumplido los pasos de la sección 1.3 -1.4 en la pantalla aparecerá el Menú Principal del moduló esclavo. En el menú principal se encuentran dos opciones para seleccionar, Configuración y Datos I/O, las cuales permiten acceder a submenús para la configuración del dispositivo esclavo y el monitoreo de los datos Digitales-Análogos (Véase figura).
2.1. MENÚ CONFIGURACIÓN
Por defecto los parámetros de comunicación del dispositivo están preconfigurados de la siguiente manera:
ID=1 VEL=9600
Para empezar la operación del dispositivo esclavo hay que configurar los parámetros de comunicación, de tal manera que coincidan con los parámetros implementados en el Maestro, para así poder establecer comunicación. Inicialmente en la pantalla principal se visualiza el indicador apuntando a la opción Configuración. Por defecto el indicador [>] se encuentra en modo de desplazamiento, lo cual indica al usuario que puede desplazarse por las diferentes opciones presionado las teclas
y
. Para acceder al Submenú de
Configuración se oprime la tecla Ent. Una vez presionada, el menú principal cambia al submenú Configuración tal como se muestra en la figura siguiente.
186
En este submenú se encuentra dos parámetros para configurar: ID dirección del esclavo que se quiere asignar y VEL velocidad de transmisión del dispositivo.
2.1.1. Configuracion de Velocidad
La Velocidad de Transmisión Serial se cambia seleccionando el parámetro VEL en la pantalla, luego se pulsa la tecla Ent para seleccionar una de las 4 opciones de velocidad [1200-2400-4800-9600-19200]. Cuando el indicador cambie de posición apuntando hacia el parámetro [<] indica que la opción ya se puede modificar. Pulsando las teclas
y
el usuario
define la velocidad de transmisión del modulo, la selección se hace ascendentemente y descendentemente con cada una de las opciones de velocidad anteriormente mencionadas (Véase figuras).
Una vez seleccionada y definida la velocidad de transmisión se presiona la tecla Ent para confirmar la selección escogida.
187
2.1.2. Configuracion de Dereccion del Esclavo La Dirección del Dispositivo se cambia seleccionando el parámetro ID, luego se Pulsa la tecla Ent para escoger la dirección que se desea asignar. Los rangos de dirección están comprendidos entre 1-8.
Cuando el indicador cambie de posición apuntando hacia el parámetro [<] indica que la opción ya se puede modificar. Pulsando las teclas
y
el usuario define
la dirección del dispositivo esclavo, la selección se hace aumentando y/o disminuyendo el rango de la dirección del esclavo. En las siguientes imágenes se observa los valores extremos y medio de la dirección esclavo.
Una vez seleccionado y definido la dirección del esclavo se presiona la tecla Ent para confirmar la elección escogida.
188
Después de haber seleccionado los parámetros de configuración y se quiere regresar al menú principal, desplazamos el curso con las teclas
y
hasta
opción Salir, luego presionamos la tecla Ent e inmediatamente se regresa al menú principal.
2.2. MENÚ DATOS I/0
Estando en el menú principal desplazamos el curso con las teclas
y
hasta
la opción Datos I/O y presionamos la tecla Ent para ingresar al submenú del monitoreo de los datos (Véase figura).
El submenú Datos I/O muestra el estado real de todas las señales de entrada del dispositivo. Las señales análogas se representan AN0 y AN1 en valores de porcentaje de 0-100 y todas las señales digitales se representan en un byte de 8 bits llamado DB0, en la siguiente figura se muestra la visualización de los datos.
Para regresar al menú principal en cualquier momento se presiona la tecla Ent.
189
3. MANTENIMIENTO Y PRECAUCIONES
En esta sección se presentan las precauciones que se deben tomar y las acciones a realizar para el correcto funcionamiento del dispositivo. 3.1. PRECAUCIONES DE OPERACIÓN
Verificar la correcta conexión del dispositivo (fuente de alimentación y cable serial). Configurar el dispositivo maestro y esclavo con los mismos parámetros de comunicación serial. Configurar correctamente los parámetros de solicitud Modbus (Addr, Count,). En caso de algún bloqueo en el correcto funcionamiento del dispositivo esclavo, desconéctelo y vuélvalo conectar para reiniciar todas sus funciones.
190
Anexo B-Datos Técnicos del Microcontrolador PIC16F877A
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
Anexo C-Datos Técnicos del Circuito Integrado MAX485
228
229
230
231
232
233
234
235
236
Anexo D-Datos técnicos del Circuito Integrado LM324
237
238
239
240
241
242
243
244
245
Anexo E-Datos técnicos del Circuito Integrado 4N35
246
247
248
249
250
251
252
253
254
255
256
257
258
Anexo F-Datos técnicos del PLC (Manejo de la Librería Modbus)
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276