Descargue como PDF, TXT o lea en línea desde Scribd
Descargar como pdf o txt
Está en la página 1de 273
DISEO E IMPLEMENTACIN DE UN MDULO DE ADQUISICIN REMOTA
DE DATOS PARA PLCS MEDIANTE EL ESTNDAR DE COMUNICACIN
MODBUS.
ARLEY FERNANDO MURILLO MOSQUERA GLEN ALAN MARTNEZ CARABAL
UNIVERSIDAD DE SAN BUENAVENTURA CALI FACULTAD DE INGENIERA PROGRAMA DE INGENIERA ELECTRNICA SANTIAGO DE CALI 2011 DISEO E IMPLEMENTACIN DE UN MDULO DE ADQUISICIN REMOTA DE DATOS PARA PLCS MEDIANTE EL ESTNDAR DE COMUNICACIN MODBUS.
ARLEY FERNANDO MURILLO MOSQUERA GLEN ALAN MARTNEZ CARABAL
PROYECTO DE GRADO DIRECTOR: Ing. Edgar Antonio Giraldo Orozco.
UNIVERSIDAD DE SAN BUENAVENTURA CALI FACULTAD DE INGENIERA PROGRAMA DE INGENIERA ELECTRNICA SANTIAGO DE CALI 2011 Este trabajo de grado, en la modalidad de Proyecto de investigacin, es aceptado como uno de los requisitos para obtener el ttulo de Ingeniero Electrnico en la Universidad de San Buenaventura Cali.
____________________________________ Ing. EDGAR ANTONIO GIRALDO OROZCO
________________________________________________ Ing. CARLOS MAURICIO BETANCURT
_______________________________________________ Ing. ANDRS 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 ms de mi vida, adems al Ingeniero Edgar Orozco por su colaboracin y gua para la realizacin 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 ms sinceros agradecimientos, gracias por contar con Uds. despus de todas la adversidades, este logro se obtuvo gracias a la confianza brindada por Uds. Muchas gracias. Arley Fernando Murillo Mosquera 8
TABLA DE CONTENIDO
1 DESCRIPCIN DEL PROYECTO Y CARACTERSTICAS Generales 25 1.1 FORMULACIN DEL PROBLEMA 25 1.2 JUSTIFICACIN 25 1.3 OBJETIVOS 27 1.3.1 Objetivo General 27 1.3.2 Objetivo Especficos 27 1.4 DESCRIPCIN DEL DOCUMENTO 27
2 MARCO TERICO. 29 2.1 ANTECEDENTES 29 2.2 PLC (Programable Logic Controller) 30 2.2.1 Funciones Bsica de un PLC 31 2.3 MICROCONTROLADORES 32 2.4 AMPLIFICADORES OPERACIONALES 33 2.4.1 Tipos de Configuracin 35 2.5 MDULO LCD 38 2.6 SISTEMAS DE ADQUISICIN DE DATOS 40 2.6.1 Elementos de un Sistema de Adquisicin de Datos 42 2.7 COMUNICACIONES SERIALES 45 2.8 PROTOCOLOS DE COMUNICACIN 47 2.8.1 Modbus 48 9
2.8.2 Descripcin General 52
3 DISEO E IMPLEMENTACIN DEL MDULO 85 3.1 DISPOSITIVO MAESTRO 86 3.1.1 Cable de Red 87 3.2 MDULO ESCLAVO 89 3.2.1 Requerimientos Especficos del Mdulo Esclavo 89 3.2.2 Diseo del Mdulo Esclavo 90 3.2.3 Evaluacion de Costos 90
4 DISEO E IMPLEMENTACIN DEL SOFTWARE DEL MDULO 104 4.1 REQUERIMIENTOS DEL SOFTWARE 105 4.2 DESARROLLO DEL SOFTWARE DEL MICROCONTROLADOR 105 4.3 ESTRUCTURA DEL PROGRAMA PRINCIPAL 106 4.3.1 Inicializaciones 107 4.3.2 Configuracin Mdulo Esclavo 111 4.3.3 Interfaz Pantalla LCD 112 4.3.4 Interfaz Pulsadores 115 4.3.5 Adquisicin de Datos 123 4.3.6 Modbus 125
5 PRUEBAS Y RESULTADOS 132 5.1 SOFTWARE UTILIZADO PARA LAS PRUEBAS 132 10
5.2 CONFIGURACIN DE LOS MDULOS MBUS_CTRL y MBUS_MSG 136 5.2.1 MBUS_CTRL 137 5.2.2 MBUS_MSG 138 5.3 COMPROBACIN DE LA FUNCIN 02(LECTURA DE ENTRADA DIGITAL) Y DE COMUNICACIN CON El PLC 140 5.4 COMPROBACIN DE LA FUNCIN 04(LECTURA DE ENTRADA ANLOGA) 146 5.5 COMPROBACIN DE CAMBIO DE VELOCIDAD 152 5.6 PRUEBA DE CAMBIO DE DIRECCIN DEL ESCLAVO 155 5.7 COMPROBACIN DE ERRORES 156 5.7.1 Vencimiento del Timeout de Recepcin (Error 03) 156 5.7.2 Funcin No Soportada (Error 101) 159 5.7.3 Direccin de Datos No Soportada (Error 102 Funcin 02) 160 5.7.4 Direccin de Datos No Soportada (Error 102 Funcin 04) 162
Figura 2.1-Smbolo del amplificador operacional 34 Figura 2.2-Circuito Esquemtico del Amplificador No inversor 35 Figura 2.3-Circuito Esquemtico del Amplificador Inversor 36 Figura 2.4-Circuito Esquemtico del Amplificador Diferencial 37 Figura 2.5-Circuito Esquemtico del Amplificador Seguidor de Voltaje 38 Figura 2.6-Modulo LCD 39 Figura 2.8-Filtro Antialising 42 Figura 2.9-Sistema de Adquisicin de Datos Anlogos. 43 Figura 2.10-Trama de las Comunicaciones Seriales. 46 Figura 2.11-Comunicacin 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-Transaccin del Modbus (libre de error). 54 Figura 2.15-Transaccin del Modbus (Respuesta en Excepcin) 55 Figura 2.16-Diagrama de Flujo de la Transaccin 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 13
Figura 2.22-Topologia General de 2 Hilos. 84 Figura 2.23-Topologia General de 4 Hilos. 84
Figura 3.1-Esquema de Diseo. 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 Comunicacin RS-485 95 Figura 3.5-Conector Macho DB-9 96 Figura 3.6-Circuito Interfaz de Usuario 97 Figura 3.7-Circuito Esquemtico 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 Configuracin 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 Funcin Up 117 Figura 4.7-Diagrama de Flujo Subrutina Funcin Down 120 Figura 4.8-Diagrama de Flujo Subrutina Funcin Ok 122 Figura 4.9-Diagrama de Flujo Rutina Adquisicin 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 Anlogas 130 14
Figura 5.1-Sistema Para Las Pruebas 133 Figura 5.2-rbol de Operaciones 134 Figura 5.3-Ventana Status Chart 136 Figura 5.4-Modul MBUS_CTRL 137 Figura 5.5-Modul MBUS_MSG 139 Figura 5.6-Comprobacin de la Funcin 02-a 141 Figura 5.7-Comprobacin de la Funcin 02-b 143 Figura 5.8-Comprobacin de la Funcin 02-c 145 Figura 5.9-Comprobacin de la Funcin 04-a 147 Figura 5.10-Comprobacin de la Funcin 04-b 149 Figura 5.11-Comprobacin de la Funcin 04-c 151 Figura 5.12-Comprobacin de Cambio de Velocidad 1200 153 Figura 5.13-Comprobacin de Cambio de Velocidad 19200 154 Figura 5.14-Prueba de Cambio de Direccin del Esclavo 155 Figura 5.15-Vencimiento del Timeout de Recepcin-1 157 Figura 5.16-Vencimiento del Timeout de Recepcin-2 158 Figura 5.17-Funcin No Soportada 159 Figura 5.18-Direccin de datos no soportada funcin 02-a 161 Figura 5.19-Direccin de Datos No Soportada Funcin 02-b 162 Figura 5.20-Direccin de Datos No Soportada Funcin 04-a 163 Figura 5.21-Direccin de Datos No Soportada Funcin 04-b 164
15
16
LISTA DE TABLAS
Tabla 2.1-Referencias y Precios. 29 Tabla 2.2-Asignacin de pines del LCD 40 Tabla 2.3-Modelo del Dato Modbus 57 Tabla 2.4-Categora del Cdigo de Funcin del Modbus. 63 Tabla 2.5-Definicin de Cdigo de Funcin Pblico. 64 Tabla 2.6-Envi de Funcin 04 67 Tabla 2.7-Envi de Funcin 04 69 Tabla 2.8-Cdigos de Error de Ejecucin 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-Codificacin ASCII. 79
Tabla 3.1-Tipo de Modelo del Dato 87 Tabla 3.2-Datos Tcnicos Generales de un Cable de Red. 88 Tabla 3.3-Asignacin de Pines del Puerto de Comunicacin del S7-200 88 Tabla 3.4 Estados de Control del Integrado MAX485. 95 Tabla 3.5-Asignacin de Pines 99 Tabla 3.5-Costos de Implementacin 99
17
Tabla 4.1-Parmetros de la DAQ 104 Tabla 4.2-Variables de Programa 109
Tabla 5.1Parmetros de la Operacin MBUS_CTRL 135 Tabla 5.2-Parmetros de la operacin MBUS_MSG 135
18
19
LISTA DE ANEXOS Anexo A-Manual de Usuario 172 Anexo B-Datos Tcnicos del Microcontrolador PIC16F877A 191 Anexo C-Datos Tcnicos del Circuito Integrado MAX485 228 Anexo D-Datos tcnicos del Circuito Integrado LM324 237 Anexo E-Datos tcnicos del Circuito Integrado 4N35 246 Anexo F-Datos tcnicos del PLC (Manejo de la Librera Modbus) 259
20
21
GLOSARIO
ALIASING: es el efecto que causa que seales continuas distintas se tornen indistinguibles cuando se les muestrea digitalmente.
AO: amplificadores operacionales son dispositivos electrnicos que ofrecen mltiples aplicaciones en el procesamiento de seales elctricas, los cuales modifican la magnitud y/o fase de estas.
DAQ: es el mdulo de digitalizacin o tarjeta de Adquisicin 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 comunicacin de datos serial que describe comunicaciones 4-wire, full-duplex, lnea diferencial y multi- drop. Suministra transmisin de datos balanceada con lneas de transmisin 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 mltiples drivers solamente mltiples receivers.
EIA-485 (antes RS-485 o RS485) es Modelo de OSI capa fsica elctrico especificacin de dos alambre, half-duplex, de mltiples puntos conexin serial. 22
OPC: (OLE for Process Control) es un estndar de comunicacin en el campo del control y supervisin de procesos. Este estndar permite que diferentes fuentes de datos enven datos a un mismo servidor OPC, al que a su vez podrn conectarse diferentes programas compatibles con dicho estndar.
PIC:(Peripheral Interface Controller) son una familia de micro controladores tipo RISC fabricados por Microchip Technology Inc.
PLC:(Programable logic controller), es un equipo electrnico, programable en lenguaje no informtico, diseado 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 mquinas y permitiendo interoperabilidad entre diversas plataformas.
23
RESUMEN
El objetivo de este proyecto es disear e implementar un mdulo de adquisicin remota de datos para PLCs mediante el estndar de comunicacin Modbus para el laboratorio de automatizacin de la Universidad de San Buenaventura Seccional Cali. Se realiz un estudio de investigacin aplicativo, basado en las generalidades del estndar Modbus, la adquisicin de datos, las comunicaciones seriales y los diferentes componentes que fueron necesarios para la implementacin. Como resultado de la investigacin, se plante un diseo del hardware compuesto de una tarjeta de adquisicin de datos utilizada como dispositivo Esclavo. El diseo tiene una Unidad de procesamiento (Microcontrolador), 8 entradas digitales pticamente aisladas, 2 entradas analgicas, interfaz de usuario (LCD y Teclado) y comunicacin serial por el puerto RS485 con configuracin de par trenzado bajo el protocolo de comunicacin Modbus. El diseo del software del microcontrolador fue realizado sobre la herramienta de programacin PIC C Compiler de la firma CCS (Custom Computer Services), el cual hizo la programacin muy flexible, manejando una estructura sencilla y apropiada para esta aplicacin. El software se implemento de acuerdo a los requisitos del protocolo Modbus y los requerimientos tcnicos exigidos por la implementacin del hardware para el Sistema de Adquisicin, Procesamiento de Datos (Anlogos-digitales) y la Interfaz de Usuario. Se realizaron pruebas de comunicacin Modbus y adquisicin de datos al mdulo Esclavo una vez terminada su construccin, verificando as la bsqueda de fallas de diseo y de operacin para el mejoramiento del correcto funcionamiento del dispositivo. El proyecto demostr que es posible disear y construir mdulos de comunicacin Modbus con tecnologa propia. 24
INTRODUCCIN
El diseo del mdulo de comunicaciones Esclavo Modbus, se implementa considerando la necesidad de mejorar las aplicaciones prcticas del laboratorio de Ingeniera Electrnica con respecto al aprendizaje del rea Industrial de la Universidad San Buenaventura Cali. La opcin por optar en conseguir este mdulo de comunicaciones es crtica, ya que Los requerimientos tcnicos son bastante amplios e incluso los costos son altamente elevados y por eso la solucin planteada es el diseo e implementacin de una interfaz prototipo (tarjeta), que tenga opciones de acceso a dispositivos industriales mediante entradas digitales y analgicas, donde la comunicacin con el controlador se hace por el puerto serial RS485, con configuracin de 2 hilos, con protocolo Modbus. Para determinar el prototipo a trabajar en este proyecto se presentara una investigacin especfica del protocolo Modbus como eje, desde su forma de comunicacin hasta su manera de funcionamiento. Este protocolo debe cumplir ciertas condiciones de comunicacin de tipo especifico como por ejemplo, su velocidad de transmisin y recepcin, su hasta su modo bsico de transmisin serial Halfduplex. Adicionalmente al tratarse esto, el hardware y el software debern disearse de tal forma que soporte estas condiciones fsicas eficientemente, donde el hardware permitir el desarrollo del software para la adquisicin de datos Anlogos- Digitales, el control y comunicacin.
25
1 DESCRIPCIN DEL PROYECTO Y CARACTERSTICAS GENERALES
1.1 FORMULACIN DEL PROBLEMA
En la industria de automatizacin con Programmable Logic Controllers (PLC) se utiliza la adquisicin de datos remota mediante mdulos con bus de campo; este tipo de buses flexibiliza la expansin de nuevos transmisores o actuadores en un sistema ya instalado, tambin permite la reduccin masiva de cables y costos asociados. Modbus es un bus de campo y su frecuente aplicacin en la industria colombiana y de la regin hace que sea importante tenerlo en cuenta para estudiar su estructura y campo de aplicacin.
La Universidad de San Buenaventura Seccional Cali, cuenta con PLCs, los cuales tienen incorporado la comunicacin por bus de campo con el estndar Modbus, pero sus ventajas, caractersticas y las diversas aplicaciones que se pueden implementar en l, no son utilizadas en gran parte debido a que no cuenta con mdulos que realicen la interfaz con comunicacin Modbus entre los sistemas de medida o de salida y el PLC, y as permitir cobijar en su totalidad las caractersticas del puerto de comunicacin Modbus.
1.2 JUSTIFICACIN
En la actualidad el Protocolo Modbus, es un bus de campo muy usado en la regin y en el mundo debido a su simplicidad y especificacin 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, pblico y acadmico, por estas razones muchos dispositivos 26
utilizan la comunicacin Modbus tales como PLC, Human Machine Interface (HMI) 1 , sensores y actuadores remotos. Adems el Modbus tiene la ventaja que puede alcanzar distancias muy largas con un buen aislamiento a las perturbaciones y conectar mltiples dispositivos a la red, dando significativas ventajas en el sector industrial. Este atributo con que cuenta el Modbus se debe a su capa fsica 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 comunicacin Modbus en el mbito didctico permite implementar mltiples aplicaciones como comunicacin con interfaces hombre mquina, comunicacin con sensores y actuadores entre otras, dndole al estudiante una perspectiva ms amplia respecto a las comunicaciones industriales y la adquisicin remota de datos. Desarrollando en su totalidad este proyecto se dotar al laboratorio de automatizacin de un mdulo de adquisicin remota de datos con comunicacin Modbus, el cual servir como herramienta de aprendizaje y de desarrollo de nuevas aplicaciones con PLC y comunicaciones industriales. Este mdulo pretende ser una solucin econmica con tecnologa propia a partir de conocimientos adquiridos como ingenieros en formacin, permitiendo dar nuevas bases de desarrollo de nuevos proyectos de grado y mejorar la formacin acadmica en comunicaciones industriales y adquisicin de datos. Este prototipo se desarrolla con elementos adquiridos en la regin y que permita ser una solucin econmica en comparacin con los mdulos existentes en el mercado de este tipo.
1 HMI se usa para referirse a la interaccin entre humanos y mquinas. 27
1.3 OBJETIVOS
1.3.1 Objetivo General
Disear e implementar un mdulo de adquisicin remota de datos para PLCs mediante el estndar de comunicacin Modbus para el laboratorio de automatizacin de la Universidad de San Buenaventura Seccional Cali.
1.3.2 Objetivo Especficos
Investigar el estado del arte y las generalidades del estndar Modbus. Disear el sistema de acondicionamiento de seales, los filtros y el aislamiento del mdulo de adquisicin. Identificar el microcontrolador con las caractersticas requeridas para la aplicacin. Implementar el protocolo de comunicacin Modbus en el microcontrolador. Determinar e implementar el hardware necesario para la capa fsica RS- 485. Realizar pruebas de adquisicin de datos para verificacin de conversin de seales. Realizar pruebas de comunicacin Modbus con el PLC.
1.4 DESCRIPCIN DEL DOCUMENTO
Para el desarrollo del proyecto se traza el siguiente planteamiento: 28
En el Captulo 1 se analiza el problema, se fijan objetivos para luego establecer en los captulos posteriores el diseo general del proyecto. Consecutivamente en el Captulo 2 se presenta la teora sintetizada del protocolo Modbus, de los sistemas de adquisicin de datos, las comunicaciones seriales y los PLC, informacin que sirve para poder lograr los objetivos que se quieren alcanzar. Consecuentemente en el captulo 3 se plantea el diseo del hardware del mdulo Esclavo, teniendo en cuenta los requerimientos del prototipo a crear. Despus en el captulo 4 se presenta todo el desarrollo del software necesario para llevar a cabo el protocolo Modbus y la adquisicin 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 captulo 5 se presentan las pruebas en el diseo de la tarjeta de adquisicin de datos y los resultados obtenidos de las pruebas. Al final se presentan las conclusiones obtenidas una vez se ha terminado el proceso de implementacin y por ltimo las recomendaciones de la construccin del prototipo
29
2 MARCO TERICO.
2.1 ANTECEDENTES
En la Escuela Politcnica Nacional de Quito Ecuador, se dise un prototipo de un mdulo Esclavo de control para protocolo Modbus con entradas y salidas Analgicas-Digitales como proyecto de grado, con el objetivo de solucionar problemas de mediciones de temperatura en una empresa local de Ecuador. El mdulo consiste en un sistema embebido en un PIC con una entrada y una salida digital, 2 entradas y 2 salidas anlogas, el mdulo se comunica con un computador mediante medio fsico RS-485. La empresa B&B Electronics [1] comercializa dispositivos de adquisicin de datos remotos con comunicacin Modbus con diferentes funciones. Tabla 2.1-Referencias y Precios. Modelo Anlogas Digitales Precio (US) Salidas Entradas Salidas Entradas ADAM-4051 / / / 16 $ 140,00 ADAM-4069 / / 8 / $ 210,00 ADAM-4068 / / 8 / $ 165,00 ADAM-4019+ / 8 / / $ 350,00 ADAM-4118 / 8 / / $ 285,00 ADAM-4024 4 / / / $ 275,00
En la Tabla 2.1 se puede observar los diferentes precios y modelos de adquisicin 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 anlogas y digitales dentro del mismo dispositivo, lo cual es una gran ventaja en 30
comparacin de los dispositivos mostrados. Tambin su diseo se implement con elementos econmicos y asequibles que se encuentran dentro del mercado local. Tambin se investig que la compaa DHG [2] tiene a disposicin en su inventario el mdulo de adquisicin de datos D500M de 4 entradas anlogas; este dispositivo viene provisto de conexiones directas para 4 seales anlogas del mismo tipo y rango para cualquier dispositivo con puerto RS-485. El mdulo permite conexiones con una gran variedad de sensores y suministra todas la seales acondicionadas, ajustada, linealizadas y convertidas a unidades de ingeniera. Los valores del dato son trasmitidos va 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 algn de estos protocolos.
2.2 PLC (Programable Logic Controller)
Un PLC o controlador Lgico Programable, son dispositivos electrnicos muy usados en la Automatizacin 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 lgica del programa. En forma general la estructura bsica de cualquier autmata programable es:
Fuente de alimentacin: es la encargada de convertir la tensin de la red, 220 . a baja tensin de C.C. normalmente 24V, siendo esta la tensin de trabajo en los circuitos electrnicos que forma el Autmata.
CPU: la Unidad Central de Procesos es el autntico cerebro del sistema. Es el encargado de recibir rdenes del operario a travs de la consola de 31
programacin y el mdulo de entradas. Despus las procesa para enviar respuestas al mdulo de salidas.
Mdulo de entradas: aqu se unen elctricamente los captadores (interruptores, finales de carrera.). La informacin que recibe la enva al CPU para ser procesada segn la programacin. Hay 2 tipos de captadores conectables al mdulo de entradas: los pasivos y los activos.
Mdulo de salida: es el encargado de activar y desactivar los actuadores (bobinas de contactores, motores pequeos.). La informacin enviada por las entradas a la CPU, cuando est procesada se enva al mdulo de salidas para que estas sean activadas (tambin los actuadores que estn conectados a ellas). Hay 3 mdulos de salidas segn el proceso a controlar por el autmata: rels, triac y transistores.
Terminal de programacin: la terminal o consola de programacin es el que permite comunicar al operario con el sistema. Sus funciones son la transferencia y modificacin de programas, la verificacin de la programacin y la informacin del funcionamiento de los procesos.
Perifricos: ellos no intervienen directamente en el funcionamiento del autmata pero s facilitan la labor del operario.
2.2.1 Funciones Bsica de un PLC
Deteccin: lectura de la seal de los captadores distribuidos por el sistema de fabricacin. Mando: elaborar y enviar las acciones al sistema mediante los accionadores y preaccionadores. 32
Dialogo hombre maquina: mantener un dilogo con los operarios de produccin, obedeciendo sus consignas e informando del estado del proceso. Programacin: Para introducir, elaborar y cambiar el programa de aplicacin del autmata. El dialogo de programacin debe permitir modificar el programa incluso con el autmata controlando la maquina.
2.3 MICROCONTROLADORES
Los micros controladores son circuitos integrados fundados bajo la arquitectura tradicional de John Von Neumann. 2 En 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 electrnico maneja seales con la capacidad de efectuar tareas de adquisicin y procesamiento de informacin de datos, el cual est compuesto de las siguientes caractersticas: 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 analgicos digitales, todo esto dentro de un solo chip. Debido a esto los microcontroladores estn encaminados bsicamente hacia un amplio rango de aplicaciones tales como; los sistemas de control de alarmas, tableros de control en la industria automotriz, en la instrumentacin mdica, en los teclados de computadora, en los sistemas porttiles de almacenamiento de datos, en equipos de laboratorio, etctera. A pesar de que un microprocesador es ms rpido que un microcontrolador para la ejecucin de sus instrucciones, en la mayora de los casos es necesario interconectarlo con dispositivos perifricos. En el mercado se encuentra una gran variedad de marcas y modelos entre las que se encontr: MICROCHIP, ATMEL, MOTOROLA, NATIONAL SEMICONCUCTOR,
2
33
CYPRESS, PHILLIPS y TEXAS INSTRUMENTS. Estas compaas 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 electrnicos que ofrecen mltiples aplicaciones en el procesamiento de seales elctricas, los cuales modifican la magnitud y/o fase de estas. Algunas diversas aplicaciones son: amplificacin, filtrado analgico, acoplamiento, rectificacin, deteccin de umbral, conmutacin 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 smbolo bsico de un circuito operacional es un triangulo donde generalmente se representa con 5 pines (Vase Figura 2.1):
Donde al aplicar la teora de AO y la teora de circuitos elctricos se encuentra que la ecuacin que relaciona la salida en funcin de la entrada es: Ec. 1 En este tipo de configuracin 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 funcin de la entrada: Ec. 3
35
2.4.1 Tipos de Configuracin
Casi todos los amplificadores operacionales estn basados en estas 2 configuraciones bsicas; la configuracin no inversora y la configuracin inversora.
2.4.1.1 Configuracin No Inversora
En este caso la seal a amplificar se aplica al pin no inversor (+) del Amplificador Operacional y como el nombre indica la seal 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 Esquemtico del Amplificador No inversor
Conociendo el voltaje en el pin inversor (-) podemos calcular la relacin que existe entre el voltaje de salida (Vout) con respecto al voltaje de entrada (Vin) haciendo uso de un pequeo divisor de tensin. 36
Ec. 4 Donde su ganancia es: en este caso la seal a amplificar se aplica al pin no inversor (+) del Amplificador Operacional y como el nombre indica la seal de salida no est invertido respecto a la entrada. Ec. 5 2.4.1.2 Configuracin Inversora
Se denomina inversor ya qu la forma de la seal de salida es igual a la forma de la seal de entrada pero con la fase invertida a 180 grados. El anlisis de este circuito es el siguiente: el voltaje positivo es igual al voltaje negativo los cuales sern igual a cero. Ec. 6 En la Figura 2.3 se observa el circuito del amplificador inverso. Figura 2.3-Circuito Esquemtico del Amplificador Inversor
Donde la ecuacin que relaciona la salida respecto a la entrada es: Ec. 7 37
Y su ganancia es: Ec. 8
2.4.1.3 Configuracin Diferencial
Este amplificador es una combinacin de las 2 configuraciones anteriores aunque est basada en los otros 2 circuitos, el amplificador diferencial tiene caractersticas nicas. Este circuito tiene aplicada seales en ambos terminales de entrada y utiliza la amplificacin diferencial natural del amplificador operacional para 2 funciones bsicas tales como (Vase Figura 2.4): Acondicionamiento de seales anlogas. Manipulacin de pequeas seales de baja potencia.
Figura 2.4-Circuito Esquemtico del Amplificador Diferencial
Suponiendo que el circuito esta balanceado, la ecuacin que caracteriza a este circuito en funcin de la entrada es la siguiente: Ec. 9 Donde su ganancia: 38
Ec. 10
2.4.1.4 Configuracin Seguidor de Voltaje
Esta configuracin tiene como funcin realizar el acople de impedancias, ya que, en teora no consume ninguna corriente en su entrada y entrega seal en su salida.
Figura 2.5-Circuito Esquemtico del Amplificador Seguidor de Voltaje
Como se puede apreciar en la Figura 2.5 la tensin de la seal de salida sigue a la de entrada, de ah su nombre. Entonces la salida en trminos de la entrada es: Ec. 11 2.5 MDULO LCD
Un mdulo LCD es un dispositivo electrnico digital que est constituido por una pantalla de cristal lquido, un controlador y dos memorias internas independientes: la DDRAM y la CGRAM. Debido a esta peculiar disposicin el mdulo puede obtener eficientemente el mecanismo de mostrar los caracteres alfanumricos con tan solo enviar el cdigo ASCII asociado. El LCD tiene el siguiente aspecto fsico como se ve en la Figura 2.6. 39
Figura 2.6-Modulo LCD
El mdulo LCD incorpora su propio mtodo de comunicacin para realizar operaciones de lectura y escritura. Es por ello, que el mdulo LCD cuenta con unos Bits de control con los cuales el dispositivo identifica cuando el dato en el bus es una instruccin o informacin a almacenar en la memoria, que automticamente es desplegada en pantalla. RS es el Bit de control que le indican al procesador cuando la palabra de transmisin es un dato (1) o instruccin (0). En la Figura 2.7 se muestra la asignacin de pines correspondiente de un Mdulo LCD con sus respectivas caractersticas.
40
Tabla 2.2-Asignacin de pines del LCD NUMERO DEL PIN SMBOLO FUNCIN 1 Vdd Fuente de Alimentacin(5V) 2 Vss Tierra (GND) 3 Vo Contraste de Ajuste 4 RS Registro de la Seal de Control H/ L 5 R/W Seal de lectura / escritura H/L 6 E Seal de Habilitacin H 7 DB0 Lnea de Bus de Dato H/ L 8 DB1 Lnea de Bus de Dato H/ L 9 DB2 Lnea de Bus de Dato H/ L 10 DB3 Lnea de Bus de Dato H/ L 11 DB4 Lnea de Bus de Dato H/ L 12 DB5 Lnea de Bus de Dato H/ L 13 DB6 Lnea de Bus de Dato H/ L 14 DB7 Lnea de Bus de Dato H/ L
2.6 SISTEMAS DE ADQUISICIN DE DATOS
Una tarjeta de adquisicin de datos es un sistema que utiliza sensores, transductores, amplificadores, convertidores analgico-digital (A/D) y digital- analgico (D/A), que interactan entre s ofreciendo procesar informacin de un sistema fsico del mundo real (datos-analgicos) en forma digitalizada, donde cada dispositivo no solo trabaja de manera individual sino que trabaja efectivamente con los dems componentes para que todo el sistema opere correctamente. Una vez que las seales elctricas se transforman en digitales, se envan a travs del bus de datos a la memoria del computador Personal Computer (PC). Los datos analgicos tomados del sistema fsico se convierten en un valor de voltaje a travs del conversor A/D que a su vez corresponde a una combinacin binaria. Esta conversin requiere de un sensor o transductor que se encarga de leer la variable 41
fsica 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 conversin del valor analgico, se le tiene que agregar un voltaje de referencia, porque ste es el que indica precisamente cul es el rango de operacin de la entrada del ADC. Todos los ADC del Peripheral Interface Controller (PIC), aceptan como mximo un rango de operacin que llega hasta 5V, por lo que podemos establecer rangos de operacin de cualquier valor de voltaje, siempre y cuando no rebasemos los 5V. [14] Una vez definido el rango, la seal a digitalizar posee una frecuencia alta de operacin y para reproducirla en un proceso posterior hay que tomar un buen nmero de muestras donde as digitalizarlas como tal. En caso contrario, aparecer el fenmeno del aliasing (Vase Figura 2.8), que se produce al infra- muestrear. Si la seal 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)
42
Figura 2.7-Filtro Antialising
2.6.1 Elementos de un Sistema de Adquisicin de Datos
Un sistema de adquisicin de datos (Vase Figura 2.9).consta bsicamente de: Las fuentes de seales, que son de dos clases:
Elementos medicin directa: producen la seal como resultado de cantidades elctricas, como mediciones de voltaje, de corriente, de resistencia, de frecuencia, etc. Transductores: dispositivos que censan los fenmenos fsicos y convierten parmetros no elctricos en seales elctricas, ejemplos de ellos son las resistencias detectoras de temperatura, Detectores Resistivos de Temperatura (RTDS), los transductores de flujo, transductores de presin, 43
etc. En cada caso las seales elctricas son proporcionales a los parmetros fsicos que monitorean. 2.6.1.1 Elementos de Acondicionamiento de Seales
Estos elementos realizan la tarea de amplificar las seales de bajo nivel, aislarlas y filtrarlas para tomar mediciones ms precisas. Adems algunos transductores usan voltaje o corriente como excitacin para poder producir su valor de salida.
Figura 2.8-Sistema de Adquisicin de Datos Anlogos.
Etapa de Acondicionamiento El problema es que la mayora de los sensores y transductores generan seales que se debe acondicionar antes de que un dispositivo tarjeta de Adquisicin de Datos (DAQ) que pueda adquirir con precisin la seal. Este procesamiento al frente, conocido como acondicionamiento de seal, incluye funciones como amplificacin, filtrado, aislamiento elctrico y multiplexado. El acondicionamiento de seales se divide entonces en:
44
Amplificacin: Es el tipo ms comn de acondicionamiento. Cuando las seales son muy pequeas deben amplificarse para incrementar su resolucin y reducir el ruido. Aislamiento: Las seales del transductor del medio ambiente y las seales del equipo receptor se aslan para reducir ruidos que las distorsionan. En las seales del receptor se aslan para evitar transiciones de voltaje que lo daen. Una razn adicional es asegurar que las lecturas del equipo de medicin no sean afectadas por diferencias en potenciales de tierra o voltajes de modo comn, ya que esta diferencia puede resultar imprecisiones en la seal adquirida, o si la diferencia es muy grande, puede daar el sistema de medicin.
Multiplexado: Es una tcnica para medir varias seales con un solo dispositivo. A menudo se multiplexa para monitorear diferentes fuentes de seales de lenta variacin como por ejemplo la temperatura. El instrumento toma muestra de un canal, cambia al prximo canal y toma otra muestra, y as contina. Se aconseja que los multiplexores se utilicen antes del conversor y despus del condicionamiento de la seal, ya que de esta manera no molestar a los aislantes que podamos tener.
Filtrado: El filtro elimina las seales indeseadas de las que se estn tratando de medir. Para las seales de tipo DC (temperatura) se usa un filtro de ruido que reducen la precisin de la medicin y para las seales de tipo AC tales como las de vibracin, 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.
Excitacin: Prcticamente es la induccin electromagntica que genera la etapa de acondicionamiento hacia algunos transductores como galgas 45
extensiometricas, termistores o RTD que por su constitucin necesitan de la misma.
Linealizacion: Muchos transductores como los termopares, tienen una respuesta no lineal a los cambios en el fenmeno que estn midiendo por lo que se requieren rutinas de Linealizacion que calculan los nuevos valores correspondientes a su medicin. Instrumentos de registro grafico. Registran el comportamiento en el tiempo de las seales monitoreadas. Estos registros se pueden imprimir en rollos de papel o en una pantalla de computador.
2.7 COMUNICACIONES SERIALES
El concepto de comunicacin serial es simple, es un cdigo de codificacin binario que representa los caracteres de los mensajes digitales de los Bits a travs de 0 y 1, en serie , uno detrs de otro, lo que hacen que la transmisin sean mucho ms lentas que sus homlogas "paralelo" en las que se transmiten varios Bits a la vez. Tanto en dispositivos de transmisin como en dispositivos de recepcin los puertos serie son los dispositivos a travs de los cuales los datos son transferidos. En este cdigo los 0 y 1 son caracteres, por lo tanto las comunicaciones seriales son un cdigo binario por que usan solo 2 valores posibles ceros y unos. Este concepto ha seguido los estndares definidos desde 1969 por el RS- 232(Recommended Standard 232). La velocidad de transmisin de datos es expresada en Bits por segundo o Baudios, donde todo tipo de comunicacin serial tiene que realizarse en tiempos correctos, es decir que, los dispositivos a comunicarse deben tener la misma velocidad de transferencia, donde comnmente es de 9600bps que es equivalente a decir tambin 1Bit cada 10S. 46
Existen varios modos bsicos para las transmisiones serie: Simplex: Un dispositivo transmite y el otro recibe. Halfduplex: Ambos dispositivos transmiten pero no simultneamente, esto quiere decir que mientras un dispositivo transmite la otra espera hasta que lo reciba. Full-duplex: Ambos equipos transmiten simultneamente. Para ello se requieren dos lneas independientes, transmisin y recepcin; la lnea de transmisin de un equipo se conecta a la entrada de recepcin del otro y viceversa. Los puertos serie del PC son capaces de utilizar este modo. Asncronas: Las transmisiones asncronas son aquellas en que los Bits que constituyen el cdigo de un carcter se emiten con la ayuda de impulsos suplementarios que permiten mantener en sincronismo en los dos extremos. Sncronas: En las transmisiones sncronas 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, envindose una secuencia de sincronizacin al inicio de cada bloque. Figura 2.9-Trama de las Comunicaciones Seriales.
Las caractersticas seriales ms importantes son: tasa de baudios, Bits de datos, Bits de paro, y paridad (Vase Figura 2.10). Tasa de baudios: es una unidad de medicin para comunicacin que indica el nmero de Bits transferidos por segundo. 47
Bits de datos: son mediciones de los Bits de datos actuales en una transmisin, la cantidad de datos actuales puede ser que no complete 8 Bits. Los valores estndar para los paquetes de datos son de 5, 7, y 8 Bits. El marco que usted elija depender de la informacin que est transfiriendo.
Bits de paro: son utilizados para sealar el trmino 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 COMUNICACIN
En la actualidad existen diversos protocolos que rigen las comunicaciones en el ambiente industrial, con diferentes caractersticas tales como, el medio fsico 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 comunicacin es un conjunto de reglas que permiten la transferencia e intercambio de datos entre distintos dispositivos que conforman una red. [13] Con la evolucin de los microprocesadores, ha sido ms factible su unificacin a redes industriales con notable ventajas como: 48
Mayor precisin originada por la integracin de tecnologa digital en las mediciones. Mejor y mayor abarcamiento de informacin de los dispositivos. Monitoreo remoto de componentes. Los buses de campo permite la integracin de equipos de medicin 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 PLCs, transductores, actuadores, sensores y equipos de supervisin. Los buses con mayor presencia en el sector industrial son: HART Profibus Fieldbus Foundation CAN bus InterBus-S Seriplex ASI InterBus Loop Modbus Modbus Plus
2.8.1 Modbus
[8]El protocolo Modbus fue desarrollado por Modicon a finales de 1980 para comunicacin entre PLCs. La designacin Modbus Modicon corresponde a una marca registrada por Gould Inc. Como en tantos otros casos, la designacin no corresponde propiamente al estndar de red, incluyendo todos los aspectos desde el nivel fsico hasta el de aplicacin, sino a un protocolo de enlace (nivel OSI 2) 3 . Puede por tanto,
3 El modelo de referencia de Interconexin 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 49
implementarse con diversos tipos de conexin fsica y cada fabricante suele suministrar un software de aplicacin propio, que permite parametrizar sus productos. Durante la comunicacin sobre una red Modbus, el protocolo determina como cada controlador conocer su direccin de dispositivo, reconocer un mensaje direccionado a l, determinara el tipo de accin a tomar y extraer cualquier dato u otra informacin contenida en el mensaje. La principal caracterstica de este bus de campo es el control de acceso al medio, tipo Maestro/Esclavo. En la actualidad debido a su simplicidad y especificacin abierta, actualmente es ampliamente utilizado por diferentes fabricantes.
2.8.1.1 Modbus Capa de Aplicacin
Modbus se enfoca en la capa de aplicacin (protocolo de mensaje), se encuentra en el nivel 7 del modelo OSI, tambin permite la comunicacin con diferentes tipos de redes o buses entre cliente y servidor. Modbus es un protocolo de solicitud/respuesta y proporciona servicios especificados por cdigos de funcin. Los comandos de Modbus son funciones de solicitud/respuesta de la PDUs. El alcance de este documento describe como establecer una comunicacin entre Maestro/Esclavo, donde la tarjeta de adquisicin 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. Trasmisin serial asncrona a travs de varios medios (EIA/TIA-232, EIA- 422, EIA/TIA-485-A, fibra, radio, etc.)
estndares que aseguraron una mayor compatibilidad e interoperabilidad entre los distintos tipos de tecnologa de red producidos por las empresas a nivel mundial. 50
Modbus plus, una alta velocidad paso de la seal en red. En la Figura 2.11 se encuentra la comunicacin general del Modbus.
Figura 2.10-Comunicacin General del Modbus.
Fuente [8]
El protocolo Modbus permite una fcil comunicacin con todo tipo de arquitectura de redes. En Figura 2.12 se observa algunos tipos de integracin de redes Modbus
51
Figura 2.11-Ejemplo de una Arquitectura de Redes de Modbus. 5000 5000 5000
Cada tipo de dispositivo (PLC, HMI, Panel de control, driver, interfaces de I/O) puede usar Modbus para iniciar una operacin remota. La misma comunicacin se puede hacer tanto como en serial o redes Ethernet TCP/IP. Los Gateways permiten una comunicacin entre diferentes tipos de redes usando el protocolo Modbus.
52
2.8.2 Descripcin General
2.8.2.1 Descripcin del Protocolo
El Modbus define una unidad de dato independiente (PDU) de las capas de comunicacin principal del modelo OSI. La Unidad de Dato del Protocolo PDU, se le puede adicionar un campo sobre La Unidad de Dato de Aplicacin (ADU), para buses especficos 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 funcin de la unidad de dato de aplicacin (ADU) del Maestro indica al Esclavo que clase de accin debe desarrollar .El protocolo de aplicacin Modbus se ubica en el nivel 7 del modelo OSI y establece el formato de una solicitud iniciada por un Maestro. 53
El cdigo de funcin de la unidad de datos del Modbus es codificado en un solo Byte. Los cdigos validos estn en el rango de 1-255 en formato decimal (el rango de 128-255 es reservado y usado para respuestas en excepcin). Cuando el mensaje es enviado desde un Maestro a un Esclavo la trama del cdigo de funcin le dice al Esclavo que clase de accin debe desarrollar, donde el cdigo de funcin 0 no es vlido. Estos cdigos de funcin agregan cdigos de sub-funcin para definir mltiples acciones. La trama del dato utiliza informacin adicional del cdigo de funcin para que el Esclavo reconozca la accin definida por el cdigo de funcin. Esta informacin 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 informacin adicional y el cdigo de funcin solo especifica la accin. Sin ningn error ocurre relacionado con el cdigo de funcin solicitado en una recepcin 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 cdigo de excepcin para que la aplicacin del Esclavo la pueda usar y as determinar la siguiente accin 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. Cundo el Esclavo responde al Maestro este usa el cdigo de funcin 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 cdigo de funcin. La Figura 2.14 muestra el orden secuencial de tramas de una transmisin (solicitud) y recepcin (respuesta).
54
Figura 2.13-Transaccin del Modbus (libre de error).
Fuente [8]
Para una respuesta en excepcin, el Esclavo devuelve un cdigo que es equivalente al cdigo de funcin original de la PDU solicitada con su Bit ms significativo seteado en 1. En la Figura 2.15 detalla cmo es una respuesta en excepcin del dispositivo Esclavo hacia el dispositivo Maestro.
55
Figura 2.14-Transaccin del Modbus (Respuesta en Excepcin)
Fuente [8]
El tamao de la PDU es limitada por el tamao de la implementacin del protocolo Modbus sobre redes seriales (Max. RS485 ADU=256 Bytes). Por lo tanto: La PDU por lnea de comunicacin serial= 265-direccion Esclavo (1 Byte)- CRC (2 Bytes)=253 Bytes Consecuentemente: RS232 /RS485 ADU = 253 Bytes+ direccin Esclavo (1 Byte)+ CRC (2 Bytes)= 256 Bytes. TCP MODBUS ADU = 253 Bytes+ MBAP (7 Bytes) = 260 Bytes. El Modbus define tres PDUS: 56
MODBUS Solicitud PDU, mb_req_pdu: La mb_req_pdu est definida como: mb_req_pdu = {function_code, request_data}, donde function_code = [1 Byte] Modbus cdigo de funcin request_data = [n Byte] Esta trama es una funcin de cdigo dependiente y usualmente contiene informacin adicional, como por ejemplo: referencia de variable, contador de variables, cdigos de sub-funciones etc.
MODBUS Respuesta PDU, mb_rsp_pdu La mb_rsp_pdu es definida como: mb_rsp_pdu = {function_code, response_data}, Dnde: function_code= [1 Byte] Modbus cdigo de funcin response_data= [n Byte] Esta trama es una funcin de cdigo dependiente y usualmente contiene informacin adicional, como por ejemplo: referencia de variable, contador de variables, cdigos de sub-funciones etc.
MODBUS respuesta de excepcin PDU, mb_excep_rsp_pdu La mb_exceo_rsp_pdu es definida como: mb_excep_rsp_pdu = {exception-function_code, request_data} Dnde: Exception-function_code= [1 Byte] Modbus cdigo de funcin + 0x80 exception_code = [1 Byte] El cdigo de excepcin Modbus est definido en la Tabla 2.7.
57
Decodificacin del Dato: Modbus usa una representacin big Endian 4
para las direcciones e tems del dato. Esto significa que cuando hay una cantidad numrica ms grande que un simple Byte transmitido, el Byte ms significativo es enviado primero. Por ejemplo: Tamao del Registro 16 Bits Valor 0x1234 El primer Byte enviado es 0x12 despus 0x34
Modelo del Dato Modbus: Modbus basa su modelo del dato en unas series de ndices que tienen sus caractersticas principales. Las cuatro caractersticas primordiales pueden verse en la Tabla 2.2. Tabla 2.3-Modelo del Dato Modbus Primeros ndices Tipo de Objet Tipo de Comentarios Entradas discretas Un solo Bit Solo lectura Este tipo de dato puede ser suministrado por I/O del sistema Bobinas Un solo Bit Lectura- Escritura Este tipo de dato puede ser alterado por una aplicacin del programa Registros de entrada Palabra de 16-Bit Solo lectura Este tipo de dato puede ser suministrado por I/O del sistema Registros holding Palabra de 16-Bit Lectura- Escritura Este tipo de dato puede ser alterado por una aplicacin del programa
4 El trmino Big Endian se refiere a la forma en que los nmeros binarios de bytes mltiples son guardados en la computadora. 58
Las diferencias entre entradas/salidas, y entre Bit-direccionable y palabra- direccionable de los tems del dato, no implican ningn comportamiento de aplicacin. Es perfectamente aceptable, y muy comn, a lo que se refiere a las cuatro caractersticas, como solapamiento entre s, siendo esta la ms natural interpretacin del objetivo de dispositivo en cuestin. Por cada una de estas caractersticas, 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 mltiples y consecutivos tems del dato hasta alcanzar un lmite del tamao del dato l cual es dependiente de la comunicacin del cdigo de la funcin. Es obvio que todo el dato manejado por va Modbus debe ser localizado en dispositivos de memoria de aplicacin del Esclavo. Pero la direccin fsica en memoria no debe ser confundida por los datos de referencia. El nico requisito es establecer un vnculo de datos de referencia con la direccin fsica. Los nmeros de referencia lgica del Modbus que son usados en funciones, son ndices enteros sin signo a partir del cero Modelo Direccionamiento Modbus: el protocolo de aplicacin Modbus define precisamente reglas para el direccionamiento de la PDU. En una PDU-MODBUS cada dato es direccionado desde: [0 -65535]. Esto tambin 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 aplicacin del dispositivo (objeto IEC-61131 5 , u otro modelo de aplicacin), donde el pre-mapeado entre el
5 El estndar internacional IEC 61131 es el primer paso para la estandarizacin de los autnomas programable y sus perifricos, incluyendo los lenguajes de programacin que se debe utilizar. 59
modelo del dato Modbus y el dispositivo de aplicacin, es totalmente del diseador del dispositivo especfico. Definicin de la transaccin del Modbus: en la Figura 2.16 se observa el diagrama de estado que describe el procesamiento genrico de una transaccin Modbus en el Esclavo.
Figura 2.15-Diagrama de Flujo de la Transaccin del Modbus. 60
Una vez la solicitud ha sido procesada por un Esclavo, se construye una respuesta mediante la adecuada transaccin del Esclavo Modbus. 61
Dependiendo del resultado del procesamiento de los 2 tipos de respuesta se construye as: Para una respuesta sin excepcin: La respuesta cdigo de funcin = La solicitud del cdigo de la funcin Para una respuesta excepcin: El objetivo es suministrar al Maestro de informacin relevante concerniente al error detectado durante el procesamiento. El cdigo de funcin de excepcin = la solicitud del cdigo de funcin + 0x80. Un cdigo en excepcin es suministrado para indicar la razn del error.
Categoras del cdigo de funcin: hay 3 categoras de cdigos de Funcin del Modbus, las cuales son:
1. Cdigos de Funcin Pblicos
Los cdigos de funcin estn bien definidos. Garantiza que sea nico. Validado por la comunidad MODBUS-IDA.org Pblicamente documentado. Incluye ambos, los cdigos de funcin pblicos definidos como tan bien los cdigos indefinidos de funcin reservados para uso futuro.
2. Cdigos de Funcin Definidos por el Usuario
Hay 2 rangos para que el usuario defina cdigos de funcin, es decir 65 a 72 y desde 100 a 110 decimal 62
El usuario puede seleccionar e implementar un cdigo de funcin que no est soportado por la especificacin. No hay garanta que el uso del cdigo de la funcin seleccionada sea nico. Si el usuario quiere reasignar una funcionalidad de un cdigo de funcin pblico, tendr que iniciar una RFC para introducir el cambio dentro de la categora pblica y tener un nuevo cdigo de funcin pblico asignado. La organizacin Modbus-Inc. expresamente se reserva desarrollar el propsito de una RFC.
3. Cdigos de Funcin Reservados
Los cdigos de funcin actualmente usados por algunas compaas para legalizar productos y no estn disponibles para uso del pblico De la Tabla 2.3 se aprecian algunos cdigos de funcin actualmente usados por algunas compaas para legalizar sus productos y no estn disponibles para uso del pblico.
63
Tabla 2.4-Categora del Cdigo de Funcin del Modbus. 127 Cdigos de funcin pblicos 100 Cdigos de funcin definidos por el usuario 72 Cdigos de funcin pblicos 65 Cdigos de funcin definidos por el usuario 1 Cdigos de funcin pblicos Fuente [8]
Definicin del los cdigos de funcin pblicos: la Tabla 2.4 se describe los cdigos de funcin disponibles que ya han sido definidos para el pblico.
64
Tabla 2.5-Definicin de Cdigo de Funcin Pblico.
Cdigos de Funcin
Cdigo Su cd igo ( H e x) Dato de Acceso Bits de Acceso Entradas Digitales Fsicas Lectura de Entradas Digitales 02 0 2 Bits Internos o Bobinas Fsicas Lectura de Bobinas 01 0 1 Escritura de una sola Bobina 05 0 5 Escritura de Mltiples Bobinas 15 0 F
16 Bits de Acceso Entradas Fsicas de Registros
Lectura de Entrada Anloga 04 0 4 Lectura de Registros Holding 03 0 3 Escritura de un solo Registro 06 0 6 Registros Internos Escritura de Mltiples Registros 16 1 0 Lectura/Escritu ra Mltiples Registros 23 1 7 Registros de Salida Fsicos. Mascara del Registro de Escritura 22 1 6
Lectura de cola del FIFO 24 1 8 Acceso de File Record Lectura de File Record 20 1 4 Escritura de File Record 21 1 5 Diagnsticos Lectura de Estado en 07 0 7 65
Excepcin Diagnostico 08 00- 18, 20 0 8 Obtencin de Contador de eventos 11 0 B Obtencin del Registro de eventos 12 0 C Informe de Esclavos ID 17 1 1 Lectura del dispositivo de Identificacin 43 2 B Otro Encapsulado de Interface 43 2 B
Referencia General del CAN open 43 13 2 B
Descripcin de los cdigos de funcin: a continuacin se describen algunos de los cdigos de funcin pblicos.
01(0x01) Lectura de bobinas: esta funcin es usada para leer desde 1 a 2000 estados contiguos de bobinas en un dispositivo remoto. La solicitud de la PDU especfica la direccin de inicio, es decir la direccin de la primera bobina y el nmero 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. 66
Si la cantidad de la salida que se devuelve no es un mltiplo 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 funcin es usada para leer desde [1 a 2000] estados contiguos de entradas digitales en un dispositivo remoto (Esclavo). La solicitud (Maestro) de la PDU especfica la direccin de inicio, es decir la direccin de la primera entrada y el nmero 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 mltiplo de 8, los Bits restantes en el Byte del dato final sern 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.
67
Tabla 2.6-Envi de Funcin 04 Solicitud Cdigo de funcin 1 Byte 0x02 Direccin de inicio 2 Bytes 0x0000 hasta 0xFFFF Cantidad de entradas 2 Bytes 1 hasta 2000 (0x7D0)
Respuesta Cdigo de funcin 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 Cdigo de error 1 Byte 0x82 Cdigo de excepcin 1 Byte 01 o 02 o 03 o 04 Fuente [8]
03(0x03) Lectura de registro de retencin: esta funcin es usada para leer el contenido de un bloque contiguo de un registro de retencin en un dispositivo remoto. La solicitud de la PDU especfica la direccin de inicio y el nmero de registros. En la PDU los registros son direccionados empezando por cero. Por otro lado los registros enumerados de 1-16 son direccionados como 0- 15. Los datos de registros en el mensaje de respuestas son empaquetados por dos Bit por registro. El estado es mostrado como 1=ON y 0=OFF. El LSB del primer Byte del dato contiene las entradas direccionadas en la solicitud. Las otras entradas 68
siguen hacia orden superior del el final de ese Byte, y desde el orden inferior al orden superior en los Bytes posteriores. Si la cantidad de las entradas que se devuelve no es un mltiplo de 8, los Bits restantes en el Byte del dato final sern 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 anloga: esta funcin es usada para leer desde [1-125] entradas anlogas contiguas en un dispositivo remoto (Esclavo). La solicitud (Maestro) de la PDU especifica la direccin de inicio del registro y el nmero de registros. Los registros de la PDU son direccionados empezando por cero. Por otro lado los registros enumerados de [1-16] son direccionados como [0- 15]. Los datos de registros en el mensaje de respuestas son empaquetados por dos 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.
69
Tabla 2.7-Envi de Funcin 04 Solicitud Cdigo de funcin 1 Byte 0x04 Direccin de inicio 2 Bytes 0x0000 hasta 0xFFFF Cantidad de registros de entrada 2 Bytes 0x0001 hasta 0x007D
Respuesta Cdigo de funcin 1 Byte 0x04 Contador de byte 1 Byte 2 x N* Estado de las Entradas N* x 2 Byte *N = Cantidad de Registros de entrada.
Error Cdigo de error 1 Byte 0x84
Cdigo de excepcin 1 Byte 01 o 02 o 03 o 04
Fuente [8]
05(0x05) Lectura de una sola bobina: este cdigo de funcin 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 especfica la direccin 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 despus se retorna cuando la bobina ya ha sido escrita. 70
06(0x06) Registro de solo escritura: este cdigo de funcin es usado para escribir un solo registro soportado en un dispositivo remoto. La solicitud de la PDU especifica la direccin 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 mltiples registros: este cdigo de funcin 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 cdigo de funcin, direccin de inicio y una cantidad de registros escritos en dos Bytes por registros. La respuesta normal retorna el cdigo de funcin, direccin de inicio, y una cantidad de registros escritos.
Cdigos de excepcin: Los cdigos de excepcin se producen cuando hay un error de comunicacin en la respuesta del dispositivo Esclavo, estos cdigos pueden ser: por error de paridad, por error de CRC, por error de direccionamiento, etc. En la Tabla 2.7 se muestra los cdigos de error soportados por el Esclavo Modbus.
71
Tabla 2.8-Cdigos de Error de Ejecucin del Protocolo Modbus en el Esclavo. Cdigos de error Descripcin 0 Sin error. 1 Error de paridad en la respuesta. Slo 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 elctrico, p. ej. Un cableado incorrecto o ruidos elctricos que afectan la comunicacin. 2 No utilizado 3 Timeout de recepcin. No se ha recibido una respuesta del Esclavo dentro del tiempo indicado en Timeout. Ello puede deberse a una conexin elctrica 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 direccin incorrecta del Esclavo. 4 Error en un parmetro de peticin. Uno o ms parmetros de entrada (Slave, RW, Addr o Count) se han ajustado a un valor no vlido. En la documentacin se indican los valores permitidos para los parmetros 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 peticin. Slo puede estar activada una operacin MBUS_MSG a la vez. 7 Error en la respuesta. La respuesta recibida no corresponde a la peticin. Ello indica que hay un problema en el Esclavo o que un Esclavo incorrecto ha respondido a la peticin. 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 elctrico, p. ej. Un cableado incorrecto o ruidos elctricos que afectan la comunicacin. 101 El Esclavo no soporta la funcin solicitada en esta direccin. 72
102 El Esclavo no soporta la direccin de los datos. El rango de direcciones solicitado de Addr ms 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 parmetro 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 debera reenviar la peticin ms 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 debera reenviar la peticin ms tarde. El Esclavo est ocupado y ha rechazado el mensaje. Intente reenviar la misma peticin para obtener una respuesta. 107 El Esclavo ha rechazado el mensaje por un motivo desconocido. 108 Error de paridad en la memoria del Esclavo. ste es un error del Esclavo. Fuente [9]
2.8.2.2 Capa de Enlace de Datos Modbus
Protocolo principal Maestro/Esclavo Modbus: el protocolo de lnea serial Modbus es un protocolo Maestro-Esclavo, donde solamente un Maestro al tiempo es conectado al bus, y una o varios nodos Esclavos (nmero mximo 247) son conectados al mismo bus serial. Una comunicacin 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 transaccin Modbus al tiempo. El nodo Maestro enva una solicitud al Esclavo de dos modos: Modo unicast: el Maestro direcciona a un Esclavo individualmente y despus de recibir y procesar la solicitud, el Esclavo devuelve un mensaje al Maestro (una respuesta), en la Figura 2.17 se puede apreciar la comunicacin Unicast. 73
En este modo, la transaccin consiste en dos mensajes: una solicitud desde el Maestro y una respuesta desde el Esclavo, donde cada Esclavo tendr una direccin 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 comunicacin broadcast. El modo broadcast tiene las siguientes caractersticas:
La solicitud broadcast es escrita necesariamente por comandos. Ninguna respuesta es retornada a la solicitud broadcast enviada por el Maestro. Todos los dispositivos tendrn que aceptar el modo broadcast por funciones de escritura. La direccin 0 es reservada para un cambio de broadcast.
74
Figura 2.17-Modo Broadcast.
Fuente [7] Modos de trasmisin serial: Dos modos diferentes de trasmisin 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 lnea serial. Este modos determinan como la informacin es decodificada y empaquetada dentro de la trama del mensaje. El modo de transmisin tendr que ser el mismo para todos los dispositivos sobre la lnea serial. Sin embargo el modo ASCII es requerido en algunas aplicaciones especficas, la interoperabilidad entre dispositivos Modbus puede ser lograda solamente si cada dispositivo tiene el mismo modo de comunicacin. El modo de transmisin ASCII es opcional. En los dispositivos, el modo de transmisin debe ser establecido por el usuario (RTU o ASCII), de lo contrario el modo RTU ser establecido por defecto. 75
Modo de transmisin RTU: cuando los dispositivos se comunican sobre una lnea 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 carcter de mayor densidad permite un mejor rendimiento del dato que en el modo ASCII para la misma velocidad de trasmisin. Cada mensaje tendr que ser trasmitido en un continuo flujo de caracteres. El formato (11 Bits) para cada Byte en el modo RTU es: Codificacin 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 complementacin de paridad 1 Bit de parada Otros modos (paridad par, impar, sin paridad) tambin pueden ser usados a fin de asegurar una mxima compatibilidad con otros productos. Observacin: el uso de no paridad requiere dos Bits de parada. Como se transmiten los caracteres serial mente: Cada carcter 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 configuracin ya sea par, impar o sin chaqueo de paridad. Si no se implementa la paridad, un Bit adicional de parada es 76
transmitido para llenar la trama de los caracteres asncronos de 11 Bits (Vase 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 descripcin (Vase Tabla 2.10) Tabla 2.11Trama de Mensaje RTU. Direccin Funcin Datos CRC 1 byte 1 byte 0 hasta 252 bytes 2 bytes CRC Bajo CRC Alto
El tamao mximo de una trama RTU Modbus es 256 Bytes Tramado del mensaje RTU: un mensaje Modbus es ubicado dentro de una trama del dispositivo de transmisin 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 tendrn que ser detectados y los errores tendrn 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 carcter (Vase Figuras 2.19 y 2.20). Figura 2.18-Tiempos de la Trama RTU.
77
Figura 2.19-Trama de Mensaje RTU.
Fuente [7] La trama de mensaje entero tendr que ser trasmitida como un flujo continuo de caracteres. Si un intervalo silencioso de ms de 1.5 veces el carcter se produce entre dos caracteres (Vase 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 comprobacin de errores que es basada en una comprobacin de redundancia cclica (CRC), mtodo realizado en el contenido del mensaje. La trama CRC verifica el contenido de todo el mensaje. Esto se aplica independientemente de cualquier comprobacin de paridad usada para los caracteres individuales del mensaje. 78
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 recepcin 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 clculo del CRC es iniciada por la primera pre-carga de un registro de 16-Bit para todos los 1. Despus comienza un proceso de aplicacin de Bytes sucesivos de 8 Bits del mensaje para el contenido actual del registro. Solo los 8 Bits del dato en cada carcter son usados para generar el CRC. Los Bits de parada, inicio y el Bit-paridad no son aplicables al CRC. Durante la generacin del CRC cada carcter de 8-Bit se le aplica una XOR con el contenido del registro. Despus el resultado es desplazado en la direccin del Bit menos significativo (LSB) con ceros en la posicin del Bit ms significativo (MSB). El LSB es extrado 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. Despus el ltimo cambio (8), el siguiente Byte de 8-Bit es XOR con un valor actual del registro, y el proceso se repite durante ms de ocho cambios como se describi anteriormente. El contenido final del registro, despus de que todos los Bytes del mensaje han sido aplicados, es el valor del CRC. Modo de transmisin ASCII: Cuando los dispositivos se configuran para comunicarse en una red Modbus segn el modo ASCII, cada Byte de 8 Bits en un mensaje se enva como dos caracteres ASCII. La principal ventaja de este modo es que permite intervalos de tiempo de hasta un segundo entre caracteres sin dar 79
lugar a error. Es por ello que muchos equipos slo soportan este modo de comunicacin. Desde el punto de vista del diagnstico, es tambin ms 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 comunicacin a la mitad. El modo ASCII se presta mejor para el desarrollo de drivers de comunicacin mediante lenguajes de alto nivel. El formato para cada Byte en modo ASCII es (Vase Tabla 2.11):
Tabla 2.12-Codificacin ASCII. Inicio Direccin Funcin Datos LRC Fin 1 carcter 2 caracteres 2 caracteres hasta 2 por 252 caracteres 2 caracteres 2 caracteres CR LF
Mtodos de Comprobacin de Errores: la seguridad estndar de la lnea serial es basada en 2 tipos de comprobacin de errores. Comprobacin de Paridad (par o impar) debe ser aplicado a cada carcter. Comprobacin de trama (LRC o CRC) tiene ser aplicado a todo el mensaje. Tanto la comprobacin del carcter y el mensaje son generados en el dispositivo (Maestro o Esclavo) que emite y aplica al contenido del mensaje antes de la transmisin. El dispositivo (Esclavo o Maestro) controla cada carcter y el mensaje entero de la trama durante la recepcin. El Maestro es configurado por el usuario que espera un intervalo de tiempo predeterminado (respuesta de tiempo de espera) antes de abortar la transaccin. Este intervalo se establece por un tiempo para que cualquier Esclavo responda normalmente (solicitud-unicast).Si el Esclavo detecta un error de transmisin, 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. 80
Comprobacin de paridad: los usuarios pueden configurar los dispositivos para paridad o la comprobacin de paridad impar, o ninguna comprobacin de paridad. Esto determinara como el Bit de paridad se establecer en cada carcter. Si cualquier paridad o paridad impar es especificado, la cantidad de 1 Bits sern contados en la porcin del dato de cada carcter (siete Bits para el modelo ASCII o ocho para el RTU). El Bit de paridad despus 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 carcter 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 lnea serial Modbus tendr que ser configurado para usar el mismo mtodo de comprobacin de paridad). Esa comprobacin de paridad solo puede detectar un error si un nmero impar de Bits que se recogieron o se redujo un a carcter que contiene tres Bits en 1, el resultado todava es un recuento impar de un Bits en 1. Si la paridad de comprobacin no est especificada, el Bit paridad no es transmitido y la comprobacin de paridad no puede ser hecha, entonces un Bit adicional de parada es transmitido para llenar la trama del carcter. Comprobacin de la trama: en el modo RTU, los mensajes incluyen una comprobacin de error en la trama que es basada en el mtodo CRC. La trama del CRC comprueba el contenido entero del mensaje. Esto es aplicado independientemente de un mtodo de comprobacin de paridad usado para los caracteres individuales del mensaje. 81
2.8.2.3 Capa Fsica Modbus
General: el estndar EIA/TIA-485 tambin conocido como el estndar RS- 485. Este estndar permite sistemas multipunto y punto a punto, en una configuracin de 2 hilos. Adems, algunos dispositivos pueden implementar una configuracin de cuatro hilos RS-485. En un sistema Modbus, un dispositivo Maestro, y uno o varios dispositivos Esclavos pueden comunicarse en una lnea serial pasivo. En el sistema estndar Modbus, todos los dispositivos son conectados en un cable troncal constituido por 3 conductores. Dos de los conductores (la configuracin 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 (Vase Figura 2.23): Directamente un cable troncal, formando una cadena tipo margarita. En una red pasiva TAP con un cable de derivacin. En una red activa TAP con un cable especifico.
Velocidad del dato: 9600bps y 19.2Kbps son los valores comnmente usados para la velocidad de comunicacin, 9600 es el valor por defecto requerido.
2.8.2.4 Interfaz Elctrica
RS-232: el RS-232C es un estndar que constituye la tercera revisin de la antigua norma RS-232, propuesta por la EIA (Asociacin de Industrias Electrnicas), este estndar se basa en una comunicacin asncrona, es decir que los datos pueden ser transmitidos en cualquier momento por lo que deben tomarse 82
precauciones para sincronizar la transmisin y recepcin. Este estndar tambin emplea un puerto serie RS-232C, que consiste en un conector tipo DB25 de 25 pines, aunque es normal encontrar la versin de 9 pines DB9, mas barato e incluso ms extendido para cierto tipo de perifricos. Todas las normas RS-232 cumplen con los siguientes niveles de voltaje: Un 1 lgico es un voltaje comprendido entre 5V y 15V en el transmisor y entre 3V y 25V en el receptor. Un 0 lgico 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 dems circuitos integrados. Por lo tanto se necesita de una interface que haga posible la conversin de niveles de voltaje a los estndares manejados por el RS- 232C.
RS-485: RS-485 (Estndar EIA-485) es una mejora sobre RS-422 ya que incrementa el nmero de dispositivos que se pueden conectar (de 10 a 32) y define las caractersticas necesarias para asegurar los valores adecuados de voltaje cuando se tiene la carga mxima. 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 transmisin serial sea la eleccin de muchas aplicaciones industriales que necesitan dispositivos distribuidos en red conectados a una PC u otro controlador para la coleccin 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. 83
La interfaz RS-485 ha sido desarrollada para la transmisin 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 elctricas para receptores y transmisores en un sistema de bus digital, pero no define o recomienda ningn protocolo de datos. Fsicamente puede instalarse tanto como un sistema de 2 hilos o de 4 hilos. Dado que varios transmisores trabajan en una lnea comn, tiene que garantizarse con un protocolo que en todo momento est activo, como mximo, 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 segn la Figura 2.23 de un cable propio del bus con una longitud mxima de 500mts. Los participantes se conectan a este cable a travs de una lnea adaptadora de longitud mxima de 5 metros. La ventaja de la tcnica 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 bsicamente apto slo para comunicaciones Halfduplex. Puesto que slo hay a disposicin una va de transmisin, siempre puede enviar datos un solo participante. Despus de finalizar el envo, pueden responder otros participantes.
84
Figura 2.21-Topologia General de 2 Hilos.
Fuente [7] RS-485 de 4 hilos: la tcnica de 4 hilos slo puede ser usada por aplicaciones Maestro/Esclavo. Segn 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 direccin, recepcin y transmisin, tiene su propia ruta. Figura 2.22-Topologia General de 4 Hilos.
Fuente [7]
85
3 DISEO E IMPLEMENTACIN DEL MDULO
En el presente capitulo se muestra el diseo de la tarjeta de adquisicin de datos (DAQ) resultante, con sus respectivas caractersticas hasta su proceso de instalacin. La Adquisicin de Datos consiste en tomar un conjunto de variables fsicas analgicas y digitales para convertirlas en tensiones elctricas y digitalizarlas de forma que se puedan procesar en el PLC, permitiendo su monitoreo dentro del proceso. El hardware utilizado es bsicamente una tarjeta de adquisicin de datos utilizada como dispositivo Esclavo, el diseo tiene entradas digitales, entradas analgicas, interfaz de usuario y comunicacin serial por el puerto RS485 con configuracin de par trenzado bajo el protocolo de comunicacin Modbus. Teniendo en cuenta esto se muestra el esquema de diseo del prototipo en la Figura 3.1. Figura 3.1-Esquema de Diseo.
86
3.1 DISPOSITIVO MAESTRO
En el punto 2.8.1 del captulo 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 peticin al dispositivo Esclavo a travs de un puerto de comunicaciones serial usando el protocolo Modbus. Para este proyecto se utiliz como dispositivo Maestro es PLC S7-200 Siemens (Vase Anexo F), que se encuentra en las instalaciones del laboratorio de Automtica de la Universidad San Buenaventura Cali. Este PLC trae incluido el hardware de comunicacin serial RS485 indispensable para la transmisin Modbus. Las libreras y rutinas de interrupciones pre-configuradas y diseadas especialmente para la comunicacin Modbus se instalan desde el STEP 7- Micro/WIN (Software de aplicacin del PLC). Las operaciones del protocolo Modbus permiten configurar el S7-200 para que acte como Maestro o Esclavo. Las operaciones de Maestros Modbus en el PLC S7-200 actan en modo RTU y se comunican con uno o varios Esclavos Modbus a travs del puerto de comunicacin de la CPU especfico para dicho protocolo; en este caso es la CPU 222 con puerto de comunicacin RS-485. Los parmetros bsicos para configurar un dispositivo Maestro son: Puerto serial Velocidad de comunicacin Bit de paridad Bit de parada Modo RTU o ASCII Tiempo de espera de respuesta 87
El PLC S7-200 incorpora una librera de operaciones que facilita la comunicacin con los equipos Modbus. Esta librera Incorpora funciones Modbus de lectura- escritura del dispositivo Maestro en un rango de direccin especfica (Vase 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 Direccin Modbus Leer o Escribir Funcin de Esclavo requeridas por el Maestro 00001 a 09999 salidas digitales Leer Funcin 1 Escribir Funcin 5 para una sola salida Funcin 15 para varias salidas 10001 a 19999 entradas digitales Leer Funcin 2 Escribir Imposible 30001 a 39999 registros de entrada Leer Funcin 4 Escribir Imposible 40001 a 49999 registros de retencin Leer Funcin 3 Escribir Funcin 6 para un solo registro Funcin 16 para varios registros Fuente [9]
3.1.1 Cable de Red
Los PLC S7-200 de Siemens integran mdulos de comunicacin como interface Industrial-Modbus, Ethernet, entre otros. Estos mdulos se incorporan dentro de la CPU 222 del S7-200 que viene con un puerto de comunicacin serial RS-485 con un cable de red par trenzado con las caractersticas tcnicas de la Tabla 3.2.
88
Tabla 3.2-Datos Tcnicos Generales de un Cable de Red. Datos tcnicos Descripcin Tipo de cable Apantallado, con par trenzado Resistencia de bucle 115 /km Capacidad efectiva 30 pF/m Impedancia nominal Aprox 135 a 160 (frecuencia =3 MHz a 20 MHz) Atenuacin 0,9 dB/100 m (frecuencia=200 KHz) Seccin del alma del cable 0,3 mm2 a 0,5 mm2 Dimetro del cable 8 mm0,5 mm Fuente [9] Los puertos de comunicacin de las CPUs S7-200 son compatibles con el estndar RS-485 va un conector DB9 conforme al estndar RS-485. La Tabla 3.3 muestra el conector que ofrece el enlace fsico para el puerto de comunicacin, indicndose tambin las asignaciones de pines de los puertos de comunicacin.
Tabla 3.3-Asignacin de Pines del Puerto de Comunicacin del S7-200 Enchufe N de pin Puerto RS-485 1 Tierra 2 Hilo lgico 3 Seal B RS-485 4 RTS (TTL) 5 Hilo lgico 6 5 V,100 resistor en serie 7 24 V 8 Seal A RS-485 9 Seleccin protocolo de 10 Bits (entrada) Carcasa del enchufe Tierra Fuente [9]
89
3.2 MDULO ESCLAVO
Para llevar a cabo la comunicacin 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 mdulo que pueda comportarse como un Esclavo Modbus cumpliendo con los siguientes parmetros: Direccin del Esclavo Puerto serial a utilizar Velocidad de comunicacin Bit de paridad Bit de parada Modo RTU o ASCII
El dispositivo Esclavo tiene que mantener un estado de recepcin (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 peticin enviando una respuesta al Maestro. La recepcin y la transmisin de una trama Modbus debe cumplir las con las normas del protocolo.
3.2.1 Requerimientos Especficos del Mdulo Esclavo
3.2.1.1 Requerimientos del Hardware
Aunque el prototipo diseado pretende ser una herramienta con fines didcticos, los elementos y dispositivos son los mismos usados en la industria. Por esta razn 90
fue necesario determinar un hardware que se ajuste a los estndares de dispositivos industriales. Los microcontroladores son dispositivos diseados para diversas aplicaciones, tales como para control y procesamiento de datos. Para el desarrollo de la tarjeta de adquisicin de datos el microcontrolador es el encargado de la adquisicin de los datos y cumple con los requerimientos del protocolo Modbus mencionados, adems de esto, permite definir espacios de memoria que son de uso exclusivo del protocolo y la adquisicin de datos como: puertos de entrada de las seales Anlogas-Digitales y registros para la recepcin y transmisin de datos. Teniendo en cuenta lo anterior el hardware se compone de 5 ncleos principales que son: Unidad de conexin de las entradas digitales. Unidad de conexin de las entradas anlogas. Puerto de comunicacin serial. Unidad de control y procesamiento de datos. Interfaz de usuario (teclado y LCD).
3.2.2 Diseo del Mdulo Esclavo
De acuerdo a los requerimientos del hardware mencionados anteriormente y las necesidades del laboratorio el mdulo debe contar con los siguientes componentes: 8 Entradas digitales 24 . 2 Entradas anlogas 4-20mA. Puerto de Comunicacin serial RS-485. Interfaz de Usuario 91
Las caractersticas seleccionadas para el mdulo Esclavo son las que utilizan la mayora de dispositivos de la industria, tales como trasmisores, vlvulas 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 seales digitales puedan ser trasmitidas al microcontrolador, debe reducirse el voltaje a niveles TTL. En la actualidad existen diversos circuitos integrados que brinda estas caractersticas, entre ellos estn los Rels y los Opto acopladores. Estos ltimos tienen una gran ventaja ya que cuentan con un aislamiento galvnico que se crea entre el circuito de entrada y de salida del opto acoplador. Fundamentalmente los opto acopladores son dispositivos que estn formados por una fuente emisora de luz (circuito de entrada), y un foto-sensor de silicio (circuito de salida), al no haber contacto elctrico produce un aislamiento superior a los 10M, brindando as una alta proteccin 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 (Vase Anexo E) para emitir luz. Debido a que la entrada del LED es 24 cuando el estado de la entrada es un 1 lgico 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 92
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 Anlogas
En la Figura 3.3 se observa que las entradas anlogas reciben una seal de 4- 20mA la cual se convierte en voltaje para el conversor Anlogo-Digital(A/D), esto se logra conectando a una resistencia en paralelo a la seal de entrada para obtener un voltaje variable 1-5V, donde un 1V es el valor mnimo (4mA) y 5V el valor mximo (20mA). Teniendo en cuenta esto, la resolucin del conversor Anlogo-Digital se calcula mediante la frmula: Ec. 16 93
Donde y son los limites superior e inferior respectivamente de los voltajes que van a ser convertidos y es el nmero 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. Adems 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 mxima de entrada de 10K 6 . El operacional que se utilizo fue el LM324 debido a que tiene un bajo consumo de energa (esto aparece en el Anexo D como 'power drain'), se usa como aplicacin para fuentes sencillas de alimentacin y puede trabajar con voltajes desde 3V hasta 32V. Como este operacional posee perdidas, el voltaje de alimentacin tiene que ser mayor que 5V. Por cuestiones de diseo el voltaje de alimentacin 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 Tcnicos del Microcontrolador PIC16F877A
94
Figura 3.3-Circuito de las Entradas Analogas
Teniendo en cuenta el rango de la seal 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 conversin de corriente a voltaje que se usa en las 2 entradas anlogas del dispositivo. 3.2.2.3 Puerto de Comunicacin RS-485
95
Para integrar este puerto de comunicacin al mdulo Esclavo se utiliz el integrado MAX485 (Vase Anexo C), el cual se encarga de regular los niveles de voltaje TTL del microcontrolador y los del estndar RS-485. Este integrado maneja una seal de control para la recepcin y transmisin de datos. En la Tabla 3.4 se indican los posibles estados que puede tener el integrado MAX485 segn las seales de control manejadas desde el microcontrolador.
Tabla 3.4 Estados de Control del Integrado MAX485. Seal de Control Estado 0 Habilita la Recepcin 1 Habilita la Transmisin
En la Figura 3.4 se muestra la conexin del circuito.
Figura 3.4-Puerto de Comunicacin RS-485
96
El conector implementado en el mdulo para este puerto de comunicaciones es un DB9 macho, el cual es compatible con el puerto serial RS-485 del PLC S7-200. (Vase Figura 3.5). Figura 3.5-Conector Macho DB-9
3.2.2.4 Interfaz de Usuario
Se implemento un Display de cristal lquido LCD de 16x2 como interfaz visual para el mdulo Esclavo para observar algunos parmetros a configurar del protocolo como la direccin del dispositivo Esclavo, la velocidad de transmisin y tambin para visualizar los datos Anlogos-Digitales localmente de la DAQ sin necesidad de tener comunicacin con el PLC (Vase Figura 3.6). Para poder modificar digitalmente dichos parmetros del protocolo y seleccionar la visualizacin de los datos Anlogos-Digitales, se implementaron 3 pulsadores que manejaban la configuracin de estos. Estos pulsadores junto al LCD corresponden a la interfaz de usuario.
97
Figura 3.6-Circuito Interfaz de Usuario
Interfaz pulsadores: Se diseo 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 (Vase 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 lgica negativa, al presionarlo pone un 0 lgico a la entrada del microcontrolador y cuando no pone un 1 lgico.
98
Mdulo LCD: la conexin del display de cristal lquido es directa con el microcontrolador y no necesita significativas adecuaciones fsicas, ya que este consta de su propio controlador, espacio de memoria y su manejo se hace por software lo cual hace ms sencilla su implementacin. Debido que el mdulo LCD es un circuito integrado hay que garantizar que tenga conectados la alimentacin, la tierra y el contraste para su correcto funcionamiento. El contraste LCD se maneja mediante la variacin de un Trimmer conectado al pin de VEE del LCD, en la Figura 3.6 se muestra la conexin implementada.
3.2.2.5 Unidad de Procesamiento y Control
De acuerdo a los requerimientos tcnicos del hardware mencionados en la seccin 3.2.1.1 se escogi el microcontrolador PIC16F877A como el dispositivo programable aplicado a la adquisicin de datos, implementacin del protocolo Modbus y monitoreo de las entradas (digitales-anlogas) porque posee varias caractersticas (Vase Anexo B) que hacen a este microcontrolador un dispositivo muy verstil, eficiente y prctico para utilizarse en estas aplicaciones. Algunas de las caractersticas importantes de este microcontrolador, son: Puerto de comunicacin serial (USART). Bajo consumo 2mA para 5V. CPU tipo RISC (conjunto de instrucciones reducidas). Puertos de entrada/salida. Un conversor anlogo/digital de 10-Bit. Memoria de programa de 8Kx14 Bits. Capacidad de Almacenamiento en su memoria EEPROM. 99
El esquema bsico diseado y la asignacin de pines al microcontrolador que corresponde a la especificacin de la DAQ se muestran en la Figura 3.7 y la Tabla 3.5. Tabla 3.5-Asignacin de Pines # Pin Nombre Funcin 1 MCLR RESET 2 RA0 ENTRADA ANLOGA 0 3 RA1 ENTRADA ANLOGA 1 4 RA2 VREF+= 5V 5 RA3 VREF-= 1V 6 RA4 7 RA5 8 RE0 9 RE1 CONTROL MAX485 DE/RE 10 RE2 11 Vdd 5 VDC 12 Vss GND 13 OSC1/CLK CRISTAL 14 OSC1/CLK CRISTAL 15 RC0 BOTN UP 16 RC1 BOTN DOWN 17 RC2/CCP1 BOTN 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 RO MAX485 100
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
101
Figura 3.7-Circuito Esquemtico General de la DAQ.
102
3.2.2.6 Fuente de Alimentacin Dado que se requiere un diseo ms ptimo y sencillo del dispositivo se opto por usar un adaptador de voltaje comercial, para no disear una fuente interna en el dispositivo lo cual lo hace ms grande. El adaptador de voltaje tiene las siguientes caractersticas: 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 caractersticas del adaptador se afirma que tiene la suficiente potencia para alimentar el dispositivo Esclavo.
3.2.3 Evaluacin de costos Conociendo el hardware y teniendo en cuenta que el prototipo esclavo fue pensado como una alternativa econmica, se realizo un estimativo en dinero de lo que puede llagar a costar la produccin o replica de este dispositivo en su implementacin final, en la Tabla 3.6 se observa los costos en dinero del equipo. Tabla 3.6 Costos de Implementacin 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 103
2 Resistencias de 1000 ohm $ 50 $100 1 Base de 14 pines $ 200 $200 3 Borneras de Montaje $ 400 $1.200 3 Borneras de Caja $ 300 $900 1 Modulo LCD 16x2 $21.000 $21.000 2 Trimmer 10k $ 500 $1.000 3 Pulsadores N.A $500 $1.500 3 Capacitores de 1nF $ 20 $60 3 Resistencias de 10M $50 $150 13 Borneras de Montaje $ 400 $5.200 1 Puerto hembra DB9 $ 500 $500 1 Cable serial RS-485 $3.000 $3.000 2 Capacitores de 1uF $ 25 $50 1 Cristal de 4Mhz $500 $500 1 Circuito Integrado MAX -485 $ 6.000 $6.000 1 Base de 8 pines $200 $200 2 Borneras de Montaje RS-485 $ 500 $1.000 1 Regulador de Voltaje de 5v $ 1.000 $1.000 2 Bornera de Montaje $ 500 $1.000 1 Bornera de Caja $ 300 $300 1 Caja $ 30.000 $30.000 1 Circuito Impreso $ 20.000 $20.000 1 Adaptador 9V $ 16.000 $16.000
TOTAL $144.880
Con la anterior informacin mostrada se demuestra que la implementacin de este proyecto es ms econmica que la adquisicin 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 diseo (mano de obra) ya que este es un proyecto tipo acadmico, que inicialmente no fue pensado para la comercializacin.
104
4 DISEO E IMPLEMENTACIN DEL SOFTWARE DEL MDULO
El diseo del software del microcontrolador fue realizado sobre la herramienta de programacin PIC C Compiler de la firma CCS (Custom Computer Services) de acuerdo a los requerimientos tcnicos exigidos por la implementacin del hardware para el Sistema de Adquisicin y Procesamiento de Datos (Anlogos- digitales). El PIC C Compiler permite que la implementacin del Software de este proyecto sea desarrollada bajo el lenguaje de programacin C; haciendo la programacin muy flexible y manejando una estructura sencilla y apropiada para esta aplicacin. El software se dise de modo que el mdulo Esclavo pueda comunicarse con el PLC de acuerdo a las caractersticas del protocolo Modbus a travs del puerto serie RS-485. Para la implementacin del software se definen algunos parmetros necesarios para la comunicacin Modbus entre dispositivos Maestro-Esclavo tal como muestran en la Tabla 4.1. El mdulo desarrollado funciona como dispositivo Esclavo y el PLC Siemens S7-200 como Maestro. Tabla 4.1-Parmetros de la DAQ Interfaz de comunicacin Modbus-RS-485 Direccin de Esclavo 1-8 Modo de transmisin Halfduplex-RTU Velocidad 1200/2400/4800/9600/19200 Paridad Ninguna Nmero de entradas digitales 8 Nmero de entradas anlogas 2
105
4.1 REQUERIMIENTOS DEL SOFTWARE
El mdulo de adquisicin de datos Anlogo-Digital funciona como dispositivo Esclavo y se comunica mediante protocolo Modbus con el PLC, para esta tarjeta de adquisicin se dise un Software que cumpla con tres requerimientos bsicos: 1. Adquisicin de datos: Adquisicin de las seales anlogas y procesamiento de datos. Adquisicin de las seales digitales y procesamiento de datos. 2. Comunicacin serial bajo el protocolo de Comunicacin Modbus.
3. Interfaz usuario para el mdulo Esclavo. Manejo y comunicacin con el LCD. Lectura de pulsadores y procesamiento de datos.
4.2 DESARROLLO DEL SOFTWARE DEL MICROCONTROLADOR
El Software en el microcontrolador del mdulo Esclavo se implement para ejecutar simultneamente tareas especficas que estn dentro del programa principal, estas tareas se encargan de ejecutar las funciones planteadas en los requerimientos del Software que son necesarias en la aplicacin de este proyecto. De acuerdo a que la comunicacin serial Modbus se maneja por interrupciones, el programa siempre tiene prioridad sobre el sistema de comunicacin serial en el dispositivo Esclavo, por esta razn se dise un programa que pueda ejecutar la comunicacin Modbus y las dems funciones del dispositivo Esclavo concurrentemente. 106
4.3 ESTRUCTURA DEL PROGRAMA PRINCIPAL
El diseo 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 mdulo Esclavo (Vase Figura 4.1). Inicialmente tenemos la rutina de inicializacin en la cual se lleva a cabo la inicializacin de variables, espacio de memoria y configuracin de las libreras; esta rutina solo se ejecuta una vez en el programa principal. Despus sigue la rutina Configuracin del Mdulo Esclavo que usa la informacin que se suministra a travs de la interfaz de usuario con los pulsadores y configura los parmetros 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 funcin de recibir, procesar, ejecutar la informacin de interfaz de usuario a travs del teclado (pulsadores). A continuacin est la rutina de adquisicin de datos la cual sirve para leer los datos de entrada Anlogos-Digitales del sistema, cuyos datos son adecuados en un formato real y didctico para que cuando exista una solicitud estn listos para ser enviados. La interfaz LCD es la de visualizacin 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 recepcin serial, si no hay ninguna interrupcin serial el programa principal salta hasta la rutina Configuracin mdulo Esclavo y continua por las dems rutinas siguientes hasta volver a consultar el 107
registro de recepcin serial quedndose en un ciclo infinito hasta que ocurra la interrupcin serial, en caso que la interrupcin ocurra se ejecuta la rutina Modbus en la cual se recibe la solicitud modbus, se procesa y se enva una respuesta de acuerdo a la solicitud, una vez la rutina se haya ejecutado el programa principal regresa a la rutina Configuracin del mdulo Esclavo creando otro ciclo de programa infinito.
Figura 4.1-Diagrama de Flujo Rutina General.
4.3.1 Inicializaciones
108
Esta rutina solo se ejecuta cada vez que se energiza el mdulo, en esta misma se lleva a cabo tareas tales como configurar puertos de Entradas-Salidas, configuracin del puerto serial (velocidad, modo de comunicacin), configuracin de contadores, interrupciones y espacios de memoria (Vase Figura 4.2).
Figura 4.2-Diagrama de Flujo Rutina Inicializaciones
Configuracin de espacios de memoria y registros 109
En esta subrutina se lleva a cabo la configuracin e inicializacin 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 Funcin input_regs[2] Variable tipo chart en la cual se almacena el valor de las 2 seales anlogas una vez se haya hecho la adecuacin, para despus 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 adecuacin, para despus ser utilizada en la solicitud Modbus. Menu Variable indica en que men se encuentra la interfaz de usuario Opcin Variable indica que opcin se apunta con el cursor en cualquier men que se encuentre en la interfaz de usuario OpcinActivada Variable que indica cuando una opcin es seleccionada para ser modificada MODBUS_ADDRESS Parmetro que se le ingresa a la librera modbus para determinar la direccin del esclavo MODBUS_SERIAL_BAUD Parmetro que se le ingresa a la librera modbus para determinar la velocidad del esclavo Direccin Esclavo Variable que se modifica para configurar la direccin 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 transmisin del Esclavo mediante la interfaz de usuario, los valores de velocidad son [1200-2400-4800-9600-19200bps]
110
Inicializacin librera Modbus Rutina que permite la inicializacin y configuracin de la librera Modbus (Modbus.C) 7 , aqu se definen algunos parmetros para el funcionamiento de esta librera dentro del software del mdulo Esclavo: Modo de trasmisin RTU. Tipo de Modbus Esclavo. Tamao del bfer 64 Bytes. Pin de control E1, pin transmisin C6 y pin de recepcin C7. Interrupcin serial externa. Para la asignacin de estos parmetros es importante leer la documentacin incluida para la librera Modbus.C.
Inicializacin librera LCD En esta se lleva a cabo la inicializacin y configuracin de la librera para el manejo del LCD (LCD.C) 8 , donde se define un parmetro para el funcionamiento esta librera: Puerto D para el envi de los datos y control del LCD
Inicializacin ADC puertos y reloj En esta subrutina se configuran los pines A1 y A2 para las entradas anlogas, los pines A3 y A4 se definen para la referencia positiva y negativa
7 Esta es la librera usada para el manejo del protocolo Modbus y viene incluida en el compilador (PIC C Compiler). 8 Esta es la librera usada para el manejo del LCD y viene incluida en el compilador (PIC C Compiler). 111
respectivamente, adicionalmente se configura el reloj para la conversin de los datos anlogos. (Vase Tabla 3.5) Inicializacin de puertos de entrada. Rutina para la configuracin 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. (Vase Tabla 3.5)
4.3.2 Configuracin Mdulo Esclavo
En esta rutina se modifican parmetros del programa segn la informacin suministrada mediante la interfaz de usuario, se configura dos parmetros: La direccin del Esclavo y la velocidad de transmisin. (Vase Figuera 4.3) Figura 4.3-Diagrama de Flujo Rutina Configuracin del Modulo Esclavo 112
4.3.3 Interfaz Pantalla LCD
En esta rutina se lleva a cabo la impresin de diferentes pantallas o mens en el LCD. Para determinar que pantalla debe ser impresa se consulta el estado de tres variables Men, Opcin y OpcionActivada (Vase Figura 4.4), el estado de estas variables es modificado en la interfaz de pulsadores.
113
Figura 4.4Diagrama de Flujo Rutina Interfaz LCD 114
115
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 (Vase Figura 4.5), estas funciones se hacen mediante tres subrutinas las cuales son: Funcin Up Funcin Down Funcin Ok
Figura 4.5-Diagrama de Flujo Rutina Interfaz Pulsadores 116
4.3.4.1 Funcin Up
Esta subrutina sirve para desplazar la flecha de seleccin entra las opciones que hay en cada men que se visualiza en el LCD, adems permite modificar los parmetros de configuracin del Esclavo ascendentemente, esto se hace mediante la consulta y modificacin del estado de tres variables cada vez que se llama la subrutina Funcin Up: Men, Opcin y OpcionActivada. Dependiendo del estado estas se ejecuta una accin o se modifica el estado de una o varias de estas variables (Vase Figura 4.6) 117
Figura 4.6-Diagrama de Flujo Subrutina Funcin Up 118
119
4.3.4.2 Funcin Down
Esta subrutina sirve para desplazar la flecha de seleccin entra las opciones que hay en cada men que se visualiza en el LCD, adems permite modificar los parmetros de configuracin del Esclavo descendentemente, esto se hace mediante la consulta y modificacin del estado de tres variables cada vez que se llama la subrutina Funcin Down: Men, Opcin y OpcionActivada. Dependiendo del estado estas se ejecuta una accin o se modifica el estado de una o varias de estas variables (Vase Figura 4.7).
120
Figura 4.7-Diagrama de Flujo Subrutina Funcin Down
121
4.3.4.3 Funcin Ok
Esta subrutina sirve para ingresar a un men en especifico, para entrar y salir de una opcin a modificar (parmetros de configuracin) y retroceder a un men anterior. Esto se hace mediante la consulta y modificacin del estado de tres variables cada vez que se llama la subrutina Funcin Ok: Men, Opcin y OpcionActivada. Dependiendo el estado de las variables se ejecuta una accin o se modifica el estado de una o varias de estas variables (Vase Figura 4.8).
122
Figura 4.8-Diagrama de Flujo Subrutina Funcin Ok
123
4.3.5 Adquisicin 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. (Vase Figura 4.9). Figura 4.9-Diagrama de Flujo Rutina Adquisicin de Datos.
124
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. Adecuacin de entradas digitales En la seccin 3.2.2.4 se mencion que las entradas digitales son negadas, para mantener el nivel original se hizo una adecuacin 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. Anloga 1 Se selecciona el canal uno del conversor anlogo, se lee el dato de ese canal y se almacena en una variable. Adecuacin de entradas anloga 1 Por motivos didcticos se decidi que las entradas anlogas fueran escaladas en porcentajes 0-100%, se hizo una adecuacin por software la cual consiste en calcular el valor de la pendiente entre el valor real de la codificacin y el valor de escalamiento (Vase la Ec.24). Luego de calcular este valor se multiplica por el dato anlogo 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 125
Anloga 2 Se selecciona el canal dos del conversor anlogo, se lee el dato de ese canal y se almacena el dato en una variable. Adecuacin de entradas anloga 2 La adecuacin presentada para la anloga 1 tambin aplica para la anloga 2.
4.3.6 Modbus
Cada vez que haya una interrupcin serial se ejecuta esta rutina que es la encargada de armar la trama con los datos recibidos serialmente y analizar su validez, adems responde a la solicitud requerida y prepara los datos para construir una trama de respuesta que es enviada al Maestro Modbus. (Vase Figura 4.10)
126
Figura 4.10-Diagrama de Flujo Rutina Modbus
127
Calculo del CRC Se calcula el CRC de la trama recibida y se compara con el CRC recibido para verificar si la trama es vlida, si no lo es se genera una respuesta en excepcin. Direccin Modbus Se consulta si la direccin Modbus que se encuentra en la trama coincide con la direccin 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 funcin se debe realizar, que en este caso solo pueden ser la funcin 2 y la funcin 4 Respuesta en excepcin Se enva una respuesta al Maestro en caso de alguna inconsistencia por que la trama no es vlida y/o funcin no soportada.
4.3.6.1 Cdigos de Funcin Modbus
Para poder usar el hardware del mdulo por medio del protocolo Modbus es preciso establecer una relacin entre las funciones y las entradas del mdulo, dado que este es un dispositivo de solo entradas anlogas-digitales se utilizaron dos funciones del protocolo Modbus que se detallaran a continuacin.
Funcin 02(0x02) Lectura de Entradas Digitales: Esta funcin captura la informacin del estado de entradas de datos discretos, cada entrada necesita un 128
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 funcin 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 funcin, de esta forma, de una sola peticin se adquiere informacin de todo el estado de todas las entradas digitales. En la Figura 4.11 se detalla el software de la funcin. Figura 4.11-Diagrama de Flujo Subrutina Leer Entradas Digitales
129
Se consulta si el nmero de entradas solicitados est entre el rango de las entras del dispositivo Esclavo. Se verifica la direccin de registro y el nmero de registro de las entradas digitales a leer. Procesamiento de la solicitud Modbus Se lleva cabo la el cumplimiento de la funcin 02 y se verifica que no hubo ningn error al procesar la solicitud Envi de respuesta En la construccin de la respuesta Modbus se preparan los Bytes de informacin a ser enviados como respuesta y se calcula el CRC de estos datos para finalmente enviar una respuesta al Maestro. Respuesta en excepcin Se realiza una respuesta en excepcin en caso: Si el nmero de entradas solicitados no est entre el rango de las entras del dispositivo Esclavo. Si la direccin de registro y el nmero de registro de las entradas anlogas a leer no estn correctos. Si hubo error al procesar la solicitud.
Funcin 4(0x04) lectura de entradas anlogas: La funcin 04 es una funcin para la adquisicin de datos de entrada pero se diferencia de la funcin 02 en que los datos se registran de 16 Bits en lugar de 1 Bit. Por medio de esta funcin se lee el valor que hay en las entradas anlogas del mdulo, cuya variacin 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 funcin. 130
Figura 4.12-Diagrama de Flujo Subrutina Leer Entradas Anlogas
Se consulta si el nmero de entradas solicitados est entre el rango de las entras del dispositivo Esclavo.
Se verifica la direccin de registro y el nmero de registro de las entradas anlogas a leer.
131
Procesamiento de la solicitud Modbus Se lleva cabo la el cumplimiento de la funcin 04 y Se verifica que no hubo ningn error al procesar la solicitud Envi de respuesta En la construccin de la respuesta Modbus se preparan los Bytes de informacin a ser enviados como respuesta y se calcula el CRC de estos datos para finalmente enviar una respuesta al Maestro.
Respuesta en excepcin Se realiza una respuesta en excepcin en caso: Si el nmero de entradas solicitados no est entre el rango de las entras del dispositivo Esclavo. Si la direccin de registro y el nmero de registro de las entradas anlogas a leer no estn correctos. Si hubo error al procesar la solicitud.
132
5 PRUEBAS Y RESULTADOS
En este captulo se describen las pruebas realizadas para verificar el correcto funcionamiento del mdulo Esclavo una vez terminada su construccin.
5.1 SOFTWARE UTILIZADO PARA LAS PRUEBAS
Para poder establecer una comunicacin Modbus entre el dispositivo Esclavo y el PLC S7-200 es necesario instalar en el PC primero el Software del PLC STEP 7- Micro/WIN y despus la librera Modbus de instrucciones para el STEP 7- Micro/WIN. STEP 7-Micro/WIN de Siemens es el Software o plataforma de trabajo que adems permite configurar el PLC S7-200 como un Maestro Modbus. Cuenta con la capacidad de poder monitorear la comunicacin 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 comunicacin constante con el PLC; esta comunicacin debe hacerse utilizando cualquier medio serial(PPI, Profibus, OPC, etc.) excepto el puerto 0 del PLC puesto que este es usado para la comunicacin Modbus. Para hacer estas pruebas se decidi hacer el monitoreo por comunicacin Ethernet TCP/IP porque es de fcil configuracin tanto en el PLC como en el PC. En la siguiente Figura 5.1 se observa el sistema implementado para las pruebas.
133
Figura 5.1-Sistema Para Las Pruebas
Para empezar, la librera de operacin para el protocolo RTU Modbus estn disponibles dentro de la carpeta Libreras del rbol de operaciones del STEP 7- Micro/WIN"(Vase Figura 5.2). El requerimiento para utilizar esta librera de funciones de Modbus es disponer del STEP 7-Micro/WIN a partir de la versin V3.2. Para la comunicacin Modbus se utilizan los mdulos de la librera 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 seleccin de los parmetros de estos mdulos.
134
Figura 5.2-rbol de Operaciones
Fuente [9]
135
Tabla 5.1Parmetros de la Operacin MBUS_CTRL Parmetros Significado Posibilidades de seleccin EN Liberacin Mode Indicacin del protocol 0 = PPI, 1 = MODBUS Baud Velocidad de transmisin en kBit/s 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 Parity Paridad 0 = Ninguna, 1 = impar, 2 = par Timeout Tiempo mximo para la respuesta del Esclavo en ms
Done Aviso de finalizacin Error Cdigo de error Vase Tabla 2.7
Tabla 5.2-Parmetros de la operacin MBUS_MSG Parmetro Significado Posibilidades de seleccin EN Liberacin First Activacin Slave Direccin del Esclavo RW "lectura" o "escritura" 0 = lectura, 1 = escritura Addr Direccin de inicio en Mobdus
Count Nmero de Bits (0xxxx, 1xxxx) / Palabras (3xxxx, 4xxxx)
DataPtr Puntero al inicio de la memoria de variables
Done Aviso de finalizacin Error Cdigo de error Vase Tabla 2.7 Fuente [9
136
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 conformacin del status chart. Figura 5.3-Ventana Status Chart
Address= Direccin 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 CONFIGURACIN DE LOS MDULOS MBUS_CTRL Y MBUS_MSG
Para realizar las pruebas se configuro la librera Modbus de la siguiente manera:
137
5.2.1 MBUS_CTRL
La operacin MBUS_CTRL para el puerto 0 del S7-200 sirve para inicializar, vigilar o desactivar la comunicacin Modbus. MBUS_CTRL se debe ejecutar sin errores antes de poder utilizar la operacin MBUS_MSG. La operacin se finaliza y el Bit Done se pone a 1 inmediatamente, antes de continuar con la siguiente operacin. (Vase Figura 5.4) Figura 5.4-Modul MBUS_CTRL
Esta operacin se ejecuta en cada ciclo cuando est activada la entrada EN. La operacin 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 operacin MBUS_MSG. El protocolo de Maestros Modbus no funcionar correctamente si no se llama a la operacin MBUS_CTRL en cada ciclo. (Vase Anexo F) Configuracin: Con "Mode"=1 se configura el Puerto 0 como Modbus 138
"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 algn 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 operacin MBUS_MSG sirve para iniciar una peticin a un Esclavo Modbus y procesar la respuesta. La operacin MBUS_MSG inicia una peticin a un Esclavo Modbus si estn activadas las entradas EN y First. Para enviar la peticin, 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 peticin, debiendo permanecer activada hasta que se active el Bit Done. (Vase Figura 5.5)
139
Figura 5.5-Modul MBUS_MSG
Nota: Slo puede estar activada una operacin MBUS_MSG a la vez. Si hay ms de una operacin MBUS_MSG activada, se procesar la primera MBUS_MSG ejecutada y todas las dems operaciones MBUS_MSG se cancelarn con el cdigo de error 6. Si hay una nueva peticin que se deba enviar el parmetro First debe estar activado durante un ciclo. La entrada First se debe activar cuando se detecte un flanco positivo, haciendo que la peticin se transmita una vez. El parmetro Slave es la direccin del Esclavo Modbus. El rango permitido est comprendido entre 0 y 247. La direccin 0 se usa como direccin de broadcast (difusin general), pudiendo utilizarse slo para peticiones de escritura. No hay respuesta a una peticin de broadcast a la direccin 0. No todos los Esclavos soportan la direccin de broadcast. El parmetro "EN=1" habilita esta rutina. Configuracin: El parmetro "EN=1" habilita esta rutina. El parmetro "First=0/1" inicia el envi de una trama modbus. 140
La ID Slave=1 es la direccin que tiene el mdulo Esclavo la cuales tiene que coincidir con la del Esclavo. El "RW"=1 seala que la funcin 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 algn registro que utiliza la librera Modbus. Este parmetro "Addr" = "xxxxx" (Funcin que se desea probar) indica la direccin de la funcin que se desea solicitar. El parmetro "Count" le indica a Addr el nmero de palabras que se desea leer.
5.3 COMPROBACIN DE LA FUNCIN 02(LECTURA DE ENTRADA DIGITAL) Y DE COMUNICACIN CON El PLC
Para verificar que hay comunicacin Modbus entre el PLC y la tarjeta de adquisicin de datos se utiliza la funcin 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, encontrndose en 0 al hacer la prueba (Vase Tabla 2.7- Cdigos de Error de Ejecucin del Protocolo Modbus en el Esclavos) lo que indica que hay comunicacin sin errores entre los dos dispositivos. Para comprobar la funcin 02 y las entradas digitales reales se hicieron tres pruebas: La primera consiste en probar todas la entradas digitales al mismo tiempo (Vase Figura 5.6) Para iniciar la prueba en el rutina MBUS_MSG se coloca el parmetro Addr=10001 indicando que se va a solicitar la funcin 02 empezando desde la primera entrada y el parmetro Count =8 para leer las siguientes 8 entradas digitales contiguas.
141
Figura 5.6-Comprobacin de la Funcin 02-a
142
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 estn activadas con presencia fsica de 24 sin errores de comunicacin o fuera de rango en la solicitud. En la segunda prueba se activan la mitad de las entradas digitales y la otra mitad estn desactivadas (Vase Figura 5.7).
143
Figura 5.7-Comprobacin de la Funcin 02-b
144
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 estn activadas con presencia fsica de 24 sin errores de comunicacin 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 ningn tipo de error y el estado real de las entradas es 0000000b.
145
Figura 5.8-Comprobacin de la Funcin 02-c
146
5.4 COMPROBACIN DE LA FUNCIN 04(LECTURA DE ENTRADA ANLOGA)
Para comprobar la funcin 04 y las entradas anlogas fsicamente se hicieron tres pruebas: La primera consiste en probar las 2 entradas anlogas al 100% de la seal (20mA) (Vase Figura 5.9). Para iniciar la prueba, el mdulo MBUS_MSG se configura con el parmetro Addr=30001 indicando que se va a solicitar la funcin 04, empezando desde la primera entrada y el parmetro Count =2 para leer las 2 entradas anlogas seguidamente.
147
Figura 5.9-Comprobacin de la Funcin 04-a
148
El puntero de donde se empiezan a guardar los datos est en la variable VB10, dado que la informacin 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 seal de las entradas anlogas est al mximo valor con una presencia fsica de 20mA, sin errores de comunicacin o fuera de rango en la solicitud. La segunda prueba se hace con la mitad de la seal de las entradas anlogas (Vase Figura 5.10).
149
Figura 5.10-Comprobacin de la Funcin 04-b
150
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 seal de las entradas anlogas est con presencia fsica de 12mA y sin errores de comunicacin o fuera de rango en la solicitud. En la ltima prueba se enva el valor mnimo de las entradas anlogas (4mA). Como se puede ver en la Figura 5.11 no hay ningn tipo de error y el estado real de las entradas es 0d con una presencia fsica de 4mA.
151
Figura 5.11-Comprobacin de la Funcin 04-c
152
5.5 COMPROBACIN DE CAMBIO DE VELOCIDAD
Debido a que el dispositivo Esclavo tiene la capacidad de cambiar la velocidad de transmisin se realizaron pruebas de comunicacin 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 comunicacin exitosa, pero grficamente se mostrarn los casos extremos (mxima y mnima velocidad). En el primer caso la velocidad se cambia parmetro baud=1200bps como se observar en la Figura 5.12. Se consigue tener una comunicacin exitosa entre los dos dispositivos como se observa en la Figura 5.12 la variable MB2=0 sin errores.
153
Figura 5.12-Comprobacin de Cambio de Velocidad 1200
En el segundo caso la velocidad en el parmetro baud=19200bps se configura como se observa en la Figura 5.13, siendo esta la velocidad ms alta del dispositivo Esclavo. Se consigue tener una comunicacin exitosa entre los dos dispositivos como se observa en la Figura 5.13 la variable MB2=0 sin errores. 154
Figura 5.13-Comprobacin de Cambio de Velocidad 19200
155
5.6 PRUEBA DE CAMBIO DE DIRECCIN DEL ESCLAVO
En las pruebas anteriores la direccin del Esclavo fue 1, en esta prueba se cambio a 8 en los dos dispositivos como se observa en la Figura 5.14, el parmetro Slave fue cambiado y la variable MB2 contina en 0 sin errores
Figura 5.14-Prueba de Cambio de Direccin del Esclavo
156
5.7 COMPROBACIN DE ERRORES
Si se presenta alguna falla en la comunicacin o el monitoreo de los datos se presentan errores; por esta razn se realizaron pruebas forzando errores en el sistema implementado (Vase Figura 5.1) para probar los mensajes de excepcin. Las pruebas realizadas son las siguientes: Vencimiento del Timeout de recepcin. Solicitud no soportada. Direccin de datos no soportada Funcin 02 Direccin de datos no soportada Funcin 04
5.7.1 Vencimiento del Timeout de Recepcin (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 conexin elctrica defectuosa con el Esclavo Que los ajustes del Maestro y del Esclavo son diferentes (velocidad de transferencia y/o paridad) Una direccin incorrecta del Esclavo.
157
Figura 5.15-Vencimiento del Timeout de Recepcin-1
En la prueba, el parmetro Baud del mdulo MBUS_CTRL en el Maestro fue cambiado a 19200 (Vase Figura 5.15) y el en Esclavo la velocidad de trasmisin se mantuvo en 9600bps, forzando as un error de disparidad de velocidad lo cual no permite comunicacin 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.
158
Figura 5.16-Vencimiento del Timeout de Recepcin-2
Inmediatamente se gener el mismo error cambiando la direccin del Esclavo en la solicitud del Maestro (Slave=2), la cual no coincide con la direccin del dispositivo Esclavo ID=1 causando que nunca exista una respuesta por parte de este generando as el error MB=2 Timeout expirado (Vase Figura 5.15) 159
5.7.2 Funcin No Soportada (Error 101)
Este error sucede cuando el Esclavo no soporta la funcin solicitada en esta direccin. Para forzar el error se solicit una funcin que el Esclavo no soporta Addr=40001(Lectura de Registro de Retencin), generando as el error MB2=101 (Vase Figura 5.17). Figura 5.17-Funcin No Soportada
160
5.7.3 Direccin de Datos No Soportada (Error 102 Funcin 02)
El Esclavo no soporta la direccin de los datos. El rango de direcciones de la funcin solicitada de Addr ms Count est fuera del rango de direcciones permitido para el Esclavo. Para forzar este error en la funcin 02 el parmetro Addr se configur una direccin de inicio errnea 10009 puesto que el dispositivo Esclavo tiene un rango de direccin de los datos digitales de 10001-10008, se genera el envi de un cdigo de excepcin en respuesta indicando el error MB2=102 (Vase Figura 5.18).
161
Figura 5.18-Direccin de datos no soportada funcin 02-a
Otra forma que pueda ocurrir este error es si el parmetro Count es configurado fuera de rango Count=9 puesto que el dispositivo Esclavo solo tiene 8 entradas digitales causando el envi de un cdigo de excepcin en respuesta indicando el error MB2=102 (Vase Figura 5.19). 162
Figura 5.19-Direccin de Datos No Soportada Funcin 02-b
5.7.4 Direccin de Datos No Soportada (Error 102 Funcin 04)
El Esclavo no soporta la direccin de los datos. El rango de direcciones de la funcin solicitada de Addr ms Count est fuera del rango de direcciones permitido para el Esclavo. 163
Para forzar este error en la funcin 04 el parmetro Addr se configur una direccin de inicio errnea 30009 puesto que el dispositivo Esclavo tiene un rango de direccin de los datos anlogos de 30001-30002 se genera el envi de un cdigo de excepcin en respuesta indicando el error MB2=102 (Vase Figura 5.20). Figura 5.20-Direccin de Datos No Soportada Funcin 04-a
164
Otra manera de forzar este error es si el parmetro Count es Configurado fuera de rango Count=9 puesto que el dispositivo Esclavo solo tiene 2 entradas anlogas esto causa el envi de un cdigo de excepcin en respuesta indicando el error MB2=102 (Vase Figura 5.21). Figura 5.21-Direccin de Datos No Soportada Funcin 04-b
165
6 CONCLUSIONES Y RECOMENDACIONES
6.1 CONCLUSIONES
Dadas las caractersticas del diseo del mdulo de adquisicin de datos con comunicacin Modbus este sirve como herramienta didctica dentro del laboratorio de automatizacin de ingeniera electrnica, para el desarrollo de nuevas aplicaciones con PLCs Siemens y comunicaciones industriales tales como sistemas de adquisicin de datos industriales, domtica, edificios inteligentes, en aplicaciones de supervisin, control de variables, como mdulo de expansin para puertos en PLC, etctera, brindndole al estudiante una perspectiva ms amplia en el rea de las comunicaciones industriales y la adquisicin remota de datos.
Los mdulos 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 fcil adquisicin, fcil de duplicar y podra ser usado para distintas aplicaciones didcticas. Por lo cual este proyecto se convierte en una opcin econmica para el desarrollo de aplicaciones de distinto mbito.
Modbus es un bus de campo que flexibiliza la expansin de nuevos transmisores o actuadores en un sistema ya instalado, tambin permite la reduccin masiva de cables y costos asociados. Su frecuente aplicacin en la industria colombiana y de la regin hace que sea importante tenerlo en cuenta para estudiar su estructura y campo de aplicacin.
En la implementacin de la tarjeta adquisicin de datos se opto por un Display LCD como modo de visualizacin para la configuracin del 166
dispositivo Esclavo como velocidades de trasmisin y direccin del Esclavo. Adems la interfaz permite el monitoreo de las variables durante la comunicacin Modbus con el fin de efectuar la supervisin del estado actual de las entradas anlogas-digitales del dispositivo Esclavo localmente.
Durante las pruebas de comunicacin serial se comprobaron la informacin de los datos de las tramas recibidas y enviadas tales como; los cdigos de excepcin, la no recepcin de una respuesta, la configuracin de diferentes velocidades de trasmisin y direccin de Esclavo. El resultado de estas pruebas fue el eficiente funcionamiento del dispositivo Esclavo tanto para los datos de adquisicin 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 comunicacin y adquisicin de datos, es preferible utilizar un leguaje de programacin 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 libreras e instrucciones que facilitan la implementacin de un sistema como este.
Se recomienda configurar correctamente el Mdulo de la librera modbus MBUS_MSG del Step Microwin del PLC S7-200 los parmetros Count y Addr para evitar errores por mala configuracin de direccionamiento de datos. Se aconseja configurar correctamente el Mdulo de la librera modbus MBUS_MSG del Step Microwin del PLC S7-200 el parmetro Slave y el 167
parmetro baud de la librera modbus MBUS_CTRL para evitar errores al no recibir respuesta en la comunicacin.
Finalmente, se recomienda leer el Manual de Usuario de este equipo para su ptima utilizacin y correcto funcionamiento, adems de revisar la teora acerca del Protocolo Modbus, poniendo nfasis en las Funciones y Tramas.
168
7 BIBLIOGRAFA
[1] B&B Electronics Mfg. RS-485 remote I/O solutions. [En lnea], <http://www.bb- elec.com/product_multi_family.asp?multifamilyid=21>,[citado el 26 de octubre 20010]
[2]MODBUS.ORG. DGH Corporation. [En lnea] <http://www.Modbus.org/viewdevice.php?id=259>, [citado el 23 de octubre de 20010]
[3] MODICON. Bus, Networks & Communication [en lnea].<www.modicon.com/techpubs/toc7.html>[citado el 14 de octubre de 2010]
[4]CREUSS, ANTONIO. Instrumentacin y control industrial. Cuarta edicin. Editorial Marcombo. Mxico, 1992.
[5]Corrales Luis. Interfaces de Comunicacin Industrial, Almera (Espaa) ,2004.
[6]AUTONOMAS.ORG. Protocolo Modbus. [En lnea],<lhttp://www.automatas.org/Modbus>,[citado el 22 de octubre 2010]
[7]MODBUS.ORG. Gua Protocolo Modbus. [En lnea] <www.Modbus.org/docs/ Modbus_Application_Protocol_V1_1b.pdf> [citado en 10 de Julio de 2010]
[8]MODBUS.ORG. Gua Protocolo Modbus. [En lnea] <www.Modbus.org/docs/Modbus_over_serial_line_V1.pdf> [citado en 22 de Julio de 2010]
169
[9]Siemens Automation. Empresa fabricante de PLC S7-200 [En lnea] <cache.automation.siemens.com/dnl/zI/zIwODk3AAAA_1109582_HB/s7200_syste m_manual_es-ES.pdf> [citado en 12 de Octubre de 2010]
[10]MICROCHIP. Fabricante de microcontroladores PIC [En lnea] caracterstica tcnicas sobre PIC16f877a<www.microchip.com>
[11]WIKIPEDIA.ORG. Teora Amplificadores Operacionales. [En lnea] <http://es.wikipedia.org/wiki/Amplificador_operacional> [citado en 28 Septiembre de 2010]
[12]IFENT.ORG. Teora Amplificadores Operacionales. [En lnea] <http://www.ifent.org/temas/amplificadores_operacionales.asp> [citado en 15 Febrero de 201]
[13]AUTOMATAS.ORG. Buses de Campo. [En lnea] <http://www.automatas.org/abb/comunicaciones.htm> [citado en 30 de Agosto de 2010]
[14]IFENT.ORG. Mdulo LCD [En lnea] <http://picrobot.blogspot.com/2010/03/lcdgar.html> [citado en 15 Febrero de 201]
170
171
8 ANEXOS
172
Anexo A-Manual de Usuario
173
NDICE
INTRODUCCIN 175
1. DESCRIPCIN DEL EQUIPO 175 1.1. CARACTERSTICAS 175 1.2. COMPONTES DEL DISPOSITIVO 176 1.2.1. Descripcin de los Componentes del Bloque Central 177 1.3. CONEXIONES 178 1.4. PREPARACIN PARA LA OPERACIN DEL DISPOSITIVO 179
2. OPERACIN DEL DISPOSITIVO 186 2.1.MEN CONFIGURACIN 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 190 3.1. PRECAUCIONES DE OPERACIN 190
174
175
INTRODUCCIN
El mdulo de adquisicin de datos DAQ es un dispositivo porttil que sirve como interfaz remota para la adquisicin 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 seales Anlogas-Digitales, monitorear localmente los datos y ser configurado para la comunicacin Modbus.
1. DESCRIPCIN DEL EQUIPO
1.1. CARACTERSTICAS
El modulo de adquisicin de datos cuanta con las siguientes caractersticas: Adquisicin de seales digitales de 0-24v pticamente aisladas. Adquisicin y conversin de seales anlogas de 4-20mA. Comunicacin con PLC S7-200 mediante el bus de campo Modbus Puerto serial RS485 Compatibilidad con cables de 2 hilos Capacidad de reajustar parmetros de configuracin de la comunicacin Modbus a travs de la interfaz de usuario. Sin comprobacin de paridad Interfaz de usuario para el monitoreo local de los datos. Adaptador de alimentacin externo 110-240V.
176
1.2. COMPONTES DEL DISPOSITIVO
El dispositivo esclavo se compone de un bloque central en el cual internamente se encuentra toda la circuitera, la unidad procesamiento y la interfaz de comunicacin. En este bloque est conformado por la interfaz de usuario (LCD y teclado), conector DB9 para la interfaz de comunicacin RS485. Cuenta con 8 terminales de conexin para las entradas digitales, 2 terminales para las entradas anlogas y un LED piloto indicando cuando se efecta la una comunicacin Modbus. Figura 1.1-Vista Frontal Superior
177
Figura 1.2-Vista Lateral Superior
Figura 1.3-Vista latera derecha
1.2.1. Descripcin de los Componentes del Bloque Central
En la en la imgenes anteriores se observaron la diferentes vista del dispositivo. DB9. Terminal para la comunicacin Modbus RS-485
AN1 Terminal para la seal Anloga uno.
AN2 Terminal para la seal Anloga dos.
GND Tierra Anlogas 178
COM Comn 24V
D0-D7 Terminal para las 8 seales digitales.
Tx/Rx LED indicador de transmisin.
Vin Terminal para la fuente de alimentacin externa.
Tecla de seleccin de una opcin o parmetro.
Tecla de seleccin de una opcin o parmetro.
Ent Tecla para seleccionar o modificar opcin.
1.3. CONEXIONES
Para asegurar un correcto funcionamiento hay que conectar la fuente de alimentacin 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 (Vase Figura. 1.4)
179
Figura 1.4-Sistema de Conexin
1.4. PREPARACIN PARA LA OPERACIN 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 comunicacin serial. Para poder establecer comunicacin Modbus entre el dispositivo Esclavo y el PLC S7-200 es necesario instalar en el PC primero el Software del PLC STEP 7- Micro/WIN y despus la librera Modbus de instrucciones para el STEP 7- Micro/WIN. STEP 7-Micro/WIN de Siemens es el Software o plataforma de trabajo que adems permite configurar el PLC S7-200 como un Maestro Modbus. Cuenta con la capacidad de poder monitorear la comunicacin Modbus, los datos solicitados y los errores que se puedan presentar en la solicitud. Para poder hacer el monitoreo 180
es necesario que el STEP 7-Micro/WIN tenga comunicacin constante con el PLC; esta comunicacin debe hacerse utilizando cualquier medio serial (PPI, Profibus, OPC, etc.) excepto el puerto 0 del PLC puesto que este es usado para la comunicacin Modbus. Para fines didcticos se decidi hacer el monitoreo por comunicacin Ethernet TCP/IP porque es de fcil configuracin tanto en el PLC como en el PC. El requerimiento para utilizar la librera de funciones Modbus es instalar el STEP 7-Micro/WIN a partir de la versin V3.2. Despus de haber instalado exitosamente existir un grupo de iconos correspondientes en el rbol de operaciones del STEP -Micro/WIN donde para la comunicacin Modbus se utilizan los siguientes mdulos de la librera: "MBUS_CTRL" y "MBUS_MSG", tal como se muestran en la figura:
Figura 1.5-rbol de Operaciones
181
El diseo 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 comunicacin Modbus A continuacin se presenta la explicacin de los mdulos de la librera Modbus y la configuracin recomendada para establecer una comunicacin Modbus.
Funcin del MBUS_CTRL: La operacin MBUS_CTRL para el puerto 0 del S7-200 sirve para inicializar, vigilar o desactivar la comunicacin Modbus. MBUS_CTRL se debe ejecutar sin errores antes de poder utilizar la operacin MBUS_MSG. La operacin se finaliza y el Bit Done se pone a 1 inmediatamente, antes de continuar con la siguiente operacin. Esta operacin se ejecuta en cada ciclo cuando est activada la entrada EN. La operacin 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 operacin MBUS_MSG. El protocolo de maestros Modbus no funcionar correctamente si no se llama a la operacin MBUS_CTRL en cada ciclo. Figura 1.6-Modulo MBUS_CTRL
182
Configuracin 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 algn error ha ocurrido
Funcin del MBUS_MSG: La operacin MBUS_MSG sirve para iniciar una peticin a un esclavo Modbus y procesar la respuesta. La operacin MBUS_MSG inicia una peticin a un esclavo Modbus si estn activadas las entradas EN y First. Para enviar la peticin, 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 peticin, debiendo permanecer activada hasta que se active el Bit Done. Nota: Slo puede estar activada una operacin MBUS_MSG a la vez. Si hay ms de una operacin MBUS_MSG activada, se procesar la primera MBUS_MSG ejecutada y todas las dems operaciones MBUS_MSG se cancelarn con el cdigo de error 6. Si hay una nueva peticin que se deba enviar el parmetro First debe estar activado durante un ciclo. La entrada First se debe activar cuando se detecte un flanco positivo, haciendo que la peticin se transmita una vez. El parmetro Slave es la direccin del esclavo Modbus. El rango permitido est comprendido entre 0 y 247. La direccin 0 se usa como direccin de broadcast (difusin general), pudiendo utilizarse slo para peticiones de escritura. No hay respuesta a una 183
peticin de broadcast a la direccin 0. No todos los esclavos soportan la direccin de broadcast. El parmetro "EN=1" habilita esta rutina. Figura 1.7-Modulo MBUS_MSG
Configuracin del modulo MSG:
El parmetro "EN=1" habilita esta rutina. El parmetro "First=0/1" inicia el envi de una trama modbus. La ID Slave=1 es la direccin que tiene el mdulo esclavo la cuales tiene que coincidir con la del esclavo. El "RW"=1 seala que la funcin 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 algn registro que utiliza la librera Modbus. Este parmetro "Addr" = "xxxxx" (Funcin que se desea probar) indica la direccin de la funcin que se desea solicitar. El parmetro "Count" le indica a Addr el nmero de palabras que se desea leer. 184
El software se puede implementar teniendo en cuenta las configuraciones anteriormente mencionado se pueden apreciar en la siguiente figura.
185
Figura 1.8-Software para PLC S7-200
186
2. OPERACIN DEL DISPOSITIVO
Una vez cumplido los pasos de la seccin 1.3 -1.4 en la pantalla aparecer el Men Principal del modul esclavo. En el men principal se encuentran dos opciones para seleccionar, Configuracin y Datos I/O, las cuales permiten acceder a submens para la configuracin del dispositivo esclavo y el monitoreo de los datos Digitales-Anlogos (Vase figura).
2.1. MEN CONFIGURACIN
Por defecto los parmetros de comunicacin del dispositivo estn pre- configurados de la siguiente manera: ID=1 VEL=9600
Para empezar la operacin del dispositivo esclavo hay que configurar los parmetros de comunicacin, de tal manera que coincidan con los parmetros implementados en el Maestro, para as poder establecer comunicacin. Inicialmente en la pantalla principal se visualiza el indicador apuntando a la opcin Configuracin. 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 Configuracin se oprime la tecla Ent. Una vez presionada, el men principal cambia al submen Configuracin tal como se muestra en la figura siguiente. 187
En este submen se encuentra dos parmetros para configurar: ID direccin del esclavo que se quiere asignar y VEL velocidad de transmisin del dispositivo.
2.1.1. Configuracion de Velocidad
La Velocidad de Transmisin Serial se cambia seleccionando el parmetro 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 posicin apuntando hacia el parmetro [<] indica que la opcin ya se puede modificar. Pulsando las teclas y el usuario define la velocidad de transmisin del modulo, la seleccin se hace ascendentemente y descendentemente con cada una de las opciones de velocidad anteriormente mencionadas (Vase figuras).
Una vez seleccionada y definida la velocidad de transmisin se presiona la tecla Ent para confirmar la seleccin escogida.
188
2.1.2. Configuracion de Dereccion del Esclavo La Direccin del Dispositivo se cambia seleccionando el parmetro ID, luego se Pulsa la tecla Ent para escoger la direccin que se desea asignar. Los rangos de direccin estn comprendidos entre 1-8.
Cuando el indicador cambie de posicin apuntando hacia el parmetro [<] indica que la opcin ya se puede modificar. Pulsando las teclas y el usuario define la direccin del dispositivo esclavo, la seleccin se hace aumentando y/o disminuyendo el rango de la direccin del esclavo. En las siguientes imgenes se observa los valores extremos y medio de la direccin esclavo.
Una vez seleccionado y definido la direccin del esclavo se presiona la tecla Ent para confirmar la eleccin escogida.
189
Despus de haber seleccionado los parmetros de configuracin y se quiere regresar al men principal, desplazamos el curso con las teclas y hasta opcin 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 opcin Datos I/O y presionamos la tecla Ent para ingresar al submen del monitoreo de los datos (Vase figura).
El submen Datos I/O muestra el estado real de todas las seales de entrada del dispositivo. Las seales anlogas se representan AN0 y AN1 en valores de porcentaje de 0-100 y todas las seales digitales se representan en un byte de 8 bits llamado DB0, en la siguiente figura se muestra la visualizacin de los datos.
Para regresar al men principal en cualquier momento se presiona la tecla Ent. 190
3. MANTENIMIENTO Y PRECAUCIONES
En esta seccin se presentan las precauciones que se deben tomar y las acciones a realizar para el correcto funcionamiento del dispositivo. 3.1. PRECAUCIONES DE OPERACIN
Verificar la correcta conexin del dispositivo (fuente de alimentacin y cable serial). Configurar el dispositivo maestro y esclavo con los mismos parmetros de comunicacin serial. Configurar correctamente los parmetros de solicitud Modbus (Addr, Count,). En caso de algn bloqueo en el correcto funcionamiento del dispositivo esclavo, desconctelo y vulvalo conectar para reiniciar todas sus funciones.
191
Anexo B-Datos Tcnicos del Microcontrolador PIC16F877A
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
228
Anexo C-Datos Tcnicos del Circuito Integrado MAX485
229
230
231
232
233
234
235
236
237
Anexo D-Datos tcnicos del Circuito Integrado LM324
238
239
240
241
242
243
244
245
246
Anexo E-Datos tcnicos del Circuito Integrado 4N35
247
248
249
250
251
252
253
254
255
256
257
258
259
Anexo F-Datos tcnicos del PLC (Manejo de la Librera Modbus) 260