Módulo Modbus

Share Embed Donate


Short Description

Download Módulo Modbus...

Description

DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO DE ADQUISICIÓN REMOTA DE DATOS PARA PLC’S MEDIANTE EL ESTÁNDAR DE COMUNICACIÓN MODBUS.

ARLEY FERNANDO MURILLO MOSQUERA GLEN ALAN MARTÍNEZ CARABALÍ

UNIVERSIDAD DE SAN BUENAVENTURA CALI FACULTAD DE INGENIERÍA PROGRAMA DE INGENIERÍA ELECTRÓNICA SANTIAGO DE CALI 2011

DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO DE ADQUISICIÓN REMOTA DE DATOS PARA PLC’S MEDIANTE EL ESTÁNDAR DE COMUNICACIÓN MODBUS.

ARLEY FERNANDO MURILLO MOSQUERA GLEN ALAN MARTÍNEZ CARABALÍ

PROYECTO DE GRADO DIRECTOR: Ing. Edgar Antonio Giraldo Orozco.

UNIVERSIDAD DE SAN BUENAVENTURA CALI FACULTAD DE INGENIERÍA PROGRAMA DE INGENIERÍA ELECTRÓNICA SANTIAGO DE CALI 2011

Este trabajo de grado, en la modalidad de Proyecto de investigación, es aceptado como uno de los

requisitos para obtener el título de

Ingeniero Electrónico en la Universidad de San Buenaventura Cali.

____________________________________ Ing. EDGAR ANTONIO GIRALDO OROZCO

________________________________________________ Ing. CARLOS MAURICIO BETANCURT

_______________________________________________ Ing. ANDRÉS ERAZO

Santiago de Cali, 03 de Junio del 2011

Le agradezco a Dios el darme el privilegio de vivir este momento y de poder culminar una etapa más de mi vida, además al Ingeniero Edgar Orozco por su colaboración y guía para la realización de este proyecto de grado. Este libro se lo dedico a mis padres, por ser ellos los culpables de que este logro se haya concretado, mis más sinceros agradecimientos, gracias por contar con Uds. después de todas la adversidades, este logro se obtuvo gracias a la confianza brindada por Uds. Muchas gracias. Arley Fernando Murillo Mosquera

TABLA DE CONTENIDO

1

DESCRIPCIÓN

DEL

PROYECTO

Y

CARACTERÍSTICAS

Generales 1.1

FORMULACIÓN DEL PROBLEMA

25

1.2

JUSTIFICACIÓN

25

1.3

OBJETIVOS

27

1.3.1

Objetivo General

27

1.3.2

Objetivo Específicos

27

1.4

2

25

DESCRIPCIÓN DEL DOCUMENTO

MARCO TEÓRICO.

27

29

2.1

ANTECEDENTES

29

2.2

PLC (Programable Logic Controller)

30

2.2.1

31

Funciones Básica de un PLC

2.3

MICROCONTROLADORES

32

2.4

AMPLIFICADORES OPERACIONALES

33

2.4.1

35

Tipos de Configuración

2.5

MÓDULO LCD

38

2.6

SISTEMAS DE ADQUISICIÓN DE DATOS

40

2.6.1

Elementos de un Sistema de Adquisición de Datos

42

2.7

COMUNICACIONES SERIALES

45

2.8

PROTOCOLOS DE COMUNICACIÓN

47

2.8.1

48

Modbus

8

2.8.2

3

DISEÑO E IMPLEMENTACIÓN DEL MÓDULO 3.1

3.2

85 86

DISPOSITIVO MAESTRO

3.1.1

4

52

Descripción General

87

Cable de Red

89

MÓDULO ESCLAVO

3.2.1

Requerimientos Específicos del Módulo Esclavo

89

3.2.2

Diseño del Módulo Esclavo

90

3.2.3

Evaluacion de Costos

90

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

5

4.1

REQUERIMIENTOS DEL SOFTWARE

105

4.2

DESARROLLO DEL SOFTWARE DEL MICROCONTROLADOR

105

4.3

ESTRUCTURA DEL PROGRAMA PRINCIPAL

106

4.3.1

Inicializaciones

107

4.3.2

Configuración Módulo Esclavo

111

4.3.3

Interfaz Pantalla LCD

112

4.3.4

Interfaz Pulsadores

115

4.3.5

Adquisición de Datos

123

4.3.6

Modbus

125

PRUEBAS Y RESULTADOS 5.1

132

SOFTWARE UTILIZADO PARA LAS PRUEBAS

9

132

5.2

CONFIGURACIÓN DE LOS MÓDULOS MBUS_CTRL y MBUS_MSG

136

5.2.1

MBUS_CTRL

137

5.2.2

MBUS_MSG

138

5.3

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

DE COMUNICACIÓN CON El PLC 5.4

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

6

5.5

COMPROBACIÓN DE CAMBIO DE VELOCIDAD

152

5.6

PRUEBA DE CAMBIO DE DIRECCIÓN DEL ESCLAVO

155

5.7

COMPROBACIÓN DE ERRORES

156

5.7.1

Vencimiento del Timeout de Recepción (Error 03)

156

5.7.2

Función No Soportada (Error 101)

159

5.7.3

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

160

5.7.4

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

162

CONCLUSIONES Y RECOMENDACIONES

165

6.1

CONCLUSIONES

165

6.2

RECOMENDACIONES

166

7

BIBLIOGRAFÍA

168

8

ANEXOS

171

10

11

LISTA DE FIGURAS

Figura 2.1-Símbolo del amplificador operacional

34

Figura 2.2-Circuito Esquemático del Amplificador No inversor

35

Figura 2.3-Circuito Esquemático del Amplificador Inversor

36

Figura 2.4-Circuito Esquemático del Amplificador Diferencial

37

Figura 2.5-Circuito Esquemático del Amplificador Seguidor de Voltaje 38 Figura 2.6-Modulo LCD

39

Figura 2.8-Filtro Antialising

42

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

43

Figura 2.10-Trama de las Comunicaciones Seriales.

46

Figura 2.11-Comunicación General del Modbus.

50

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

51

Figura 2.13-Trama General del Modbus.

52

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

54

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

55

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

59

Figura 2.17-Modo Unicast.

73

Figura 2.18-Modo Broadcast.

74

Figura 2.19-Tiempos de la Trama RTU.

76

Figura 2.20-Trama de Mensaje RTU.

77

Figura 2.21-Tiempos de Caracter de la Trama RTU.

77

12

Figura 2.22-Topologia General de 2 Hilos.

84

Figura 2.23-Topologia General de 4 Hilos.

84

Figura 3.1-Esquema de Diseño.

85

Figura 3.2 Circuito de las Entradas Digitales con Optoacopladores. 92 Figura 3.3-Circuito de las Entradas Digitales

94

Figura 3.4-Puerto de Comunicación RS-485

95

Figura 3.5-Conector Macho DB-9

96

Figura 3.6-Circuito Interfaz de Usuario

97

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

101

Figura 4.1-Diagrama de Flujo Rutina General.

107

Figura 4.2-Diagrama de Flujo Rutina Inicializaciones

108

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

111

Figura 4.4Diagrama de Flujo Rutina Interfaz LCD

113

Figura 4.5-Diagrama de Flujo Rutina Interfaz Pulsadores

115

Figura 4.6-Diagrama de Flujo Subrutina Función Up

117

Figura 4.7-Diagrama de Flujo Subrutina Función Down

120

Figura 4.8-Diagrama de Flujo Subrutina Función Ok

122

Figura 4.9-Diagrama de Flujo Rutina Adquisición de Datos.

123

Figura 4.10-Diagrama de Flujo Rutina Modbus

126

Figura 4.11-Diagrama de Flujo Subrutina Leer Entradas Digitales

128

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

13

Figura 5.1-Sistema Para Las Pruebas

133

Figura 5.2-Árbol de Operaciones

134

Figura 5.3-Ventana Status Chart

136

Figura 5.4-Moduló MBUS_CTRL

137

Figura 5.5-Moduló MBUS_MSG

139

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

141

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

143

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

145

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

147

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

149

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

151

Figura 5.12-Comprobación de Cambio de Velocidad 1200

153

Figura 5.13-Comprobación de Cambio de Velocidad 19200

154

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

155

Figura 5.15-Vencimiento del Timeout de Recepción-1

157

Figura 5.16-Vencimiento del Timeout de Recepción-2

158

Figura 5.17-Función No Soportada

159

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

161

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

162

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

163

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

164

14

15

LISTA DE TABLAS

Tabla 2.1-Referencias y Precios.

29

Tabla 2.2-Asignación de pines del LCD

40

Tabla 2.3-Modelo del Dato Modbus

57

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

63

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

64

Tabla 2.6-Envió de Función 04

67

Tabla 2.7-Envió de Función 04

69

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

71

Tabla 2.9-Secuencia de Bit en Modo RTU.

75

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

76

Tabla 2.11Trama de Mensaje RTU.

76

Tabla 2.12-Codificación ASCII.

79

Tabla 3.1-Tipo de Modelo del Dato

87

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

88

Tabla 3.3-Asignación de Pines del Puerto de Comunicación del S7-200 88 Tabla 3.4 Estados de Control del Integrado MAX485.

95

Tabla 3.5-Asignación de Pines

99

Tabla 3.5-Costos de Implementación

99

16

Tabla 4.1-Parámetros de la DAQ

104

Tabla 4.2-Variables de Programa

109

Tabla 5.1Parámetros de la Operación MBUS_CTRL

135

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

135

17

18

LISTA DE ANEXOS Anexo A-Manual de Usuario

172

Anexo B-Datos Técnicos del Microcontrolador PIC16F877A

191

Anexo C-Datos Técnicos del Circuito Integrado MAX485

228

Anexo D-Datos técnicos del Circuito Integrado LM324

237

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

246

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

259

19

20

GLOSARIO

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

AO: amplificadores operacionales son dispositivos electrónicos que ofrecen múltiples aplicaciones en el procesamiento de señales eléctricas, los cuales modifican la magnitud y/o fase de estas.

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

EIA/TIA-232: Es una norma para una interfaz en serie de 25 pines, que se puede utilizar para conectar ordenadores a componentes que forman parte de una red. (EIA/TIA-232 se denominaba anteriormente RS-232.)

EIA/TIA-422:(anteriormente RS-422) es un protocolo de comunicación de datos serial que describe comunicaciones 4-wire, full-duplex, línea diferencial y multidrop. Suministra transmisión de datos balanceada con líneas de transmisión unidirecional/no reversible, terminadas o no terminadas. Al contrario de RS-485 (que es multi-point en vez de multi-drop), EIA-422 no permite múltiples drivers solamente múltiples receivers.

EIA-485 (antes RS-485 o RS485) es Modelo de OSI capa física eléctrico especificación de dos alambre, half-duplex, de múltiples puntos conexión serial.

21

OPC: (OLE for Process Control) es un estándar de comunicación en el campo del control y supervisión de procesos. Este estándar permite que diferentes fuentes de datos envíen datos a un mismo servidor OPC, al que a su vez podrán conectarse diferentes programas compatibles con dicho estándar.

PIC:(Peripheral Interface Controller) son una familia de micro controladores tipo RISC fabricados por Microchip Technology Inc.

PLC:(Programable logic controller), es un equipo electrónico, programable en lenguaje no informático, diseñado para controlar en tiempo real y en ambiente de tipo industrial, procesos secuenciales.

TCP/IP: Es el conjunto de protocolos usado en Internet, suministrando un mecanismo de transporte de datos confiable entre máquinas y permitiendo interoperabilidad entre diversas plataformas.

22

RESUMEN

El objetivo de este proyecto es diseñar e implementar un módulo de adquisición remota de datos para PLC’s mediante el estándar de comunicación Modbus para el laboratorio de automatización de la Universidad de San Buenaventura Seccional Cali. Se realizó un estudio de investigación aplicativo, basado en las generalidades del estándar Modbus, la adquisición de datos, las comunicaciones seriales

y los

diferentes

componentes que

fueron

necesarios

para

la

implementación. Como resultado de la investigación, se planteó un diseño del hardware compuesto de una tarjeta de adquisición de datos utilizada como dispositivo Esclavo. El diseño tiene una Unidad de procesamiento (Microcontrolador), 8 entradas digitales ópticamente aisladas, 2 entradas analógicas, interfaz de usuario (LCD y Teclado) y comunicación serial por el puerto RS485 con configuración de par trenzado bajo el protocolo de comunicación Modbus. El diseño del software del microcontrolador fue realizado sobre la herramienta de programación PIC C Compiler de la firma CCS (Custom Computer Services), el cual hizo la programación muy flexible, manejando una estructura sencilla y apropiada para esta aplicación. El software se implemento de acuerdo a los requisitos del protocolo Modbus y los requerimientos técnicos exigidos por la implementación del hardware para el Sistema de Adquisición, Procesamiento de Datos (Análogos-digitales) y la Interfaz de Usuario. Se realizaron pruebas de comunicación Modbus y adquisición de datos al módulo Esclavo una vez terminada su construcción, verificando así la búsqueda de fallas de diseño y de operación para el mejoramiento del correcto funcionamiento del dispositivo. El proyecto demostró que es posible diseñar y construir módulos de comunicación Modbus con tecnología propia.

23

INTRODUCCIÓN

El diseño del módulo de comunicaciones Esclavo Modbus, se implementa considerando la necesidad de mejorar las aplicaciones prácticas del laboratorio de Ingeniería Electrónica con respecto al aprendizaje del área Industrial de la Universidad San Buenaventura Cali. La opción por optar en conseguir este módulo de comunicaciones es crítica, ya que Los requerimientos técnicos son bastante amplios e incluso los costos son altamente elevados y por eso la solución planteada es el diseño e implementación de una interfaz prototipo (tarjeta), que tenga opciones de acceso a dispositivos industriales mediante entradas digitales y analógicas, donde la comunicación con el controlador se hace por el puerto serial RS485, con configuración de 2 hilos, con protocolo Modbus. Para determinar el prototipo a trabajar en este proyecto se presentara una investigación específica del protocolo Modbus como eje, desde su forma de comunicación hasta su manera de funcionamiento. Este protocolo debe cumplir ciertas condiciones de comunicación de tipo especifico como por ejemplo, su velocidad de transmisión y recepción, su hasta su modo básico de transmisión serial Halfduplex. Adicionalmente al tratarse esto, el hardware y el software deberán diseñarse de tal forma que soporte estas condiciones físicas eficientemente, donde el hardware permitirá el desarrollo del software para la adquisición de datos AnálogosDigitales, el control y comunicación.

24

1 DESCRIPCIÓN

DEL

PROYECTO

Y

CARACTERÍSTICAS

GENERALES

1.1

FORMULACIÓN DEL PROBLEMA

En la industria de automatización con Programmable Logic Controllers (PLC) se utiliza la adquisición de datos remota mediante módulos con bus de campo; este tipo de buses flexibiliza la expansión de nuevos transmisores o actuadores en un sistema ya instalado, también permite la reducción masiva de cables y costos asociados. Modbus es un bus de campo y su frecuente aplicación en la industria colombiana y de la región hace que sea importante tenerlo en cuenta para estudiar su estructura y campo de aplicación. La Universidad de San Buenaventura Seccional Cali, cuenta con PLC’s, los cuales tienen incorporado la comunicación por bus de campo con el estándar Modbus, pero sus ventajas, características y las diversas aplicaciones que se pueden implementar en él, no son utilizadas en gran parte debido a que no cuenta con módulos que realicen la interfaz con comunicación Modbus entre los sistemas de medida o de salida y el PLC, y así permitir cobijar en su totalidad las características del puerto de comunicación Modbus.

1.2

JUSTIFICACIÓN

En la actualidad el Protocolo Modbus, es un bus de campo muy usado en la región y en el mundo debido a su simplicidad y especificación abierta, permitiendo llevar a cabo proyectos de gran complejidad y obtener un funcionamiento fiable, facilitando así un mayor rango de aplicaciones que son implementadas por el sector privado, público y académico, por estas razones muchos dispositivos 25

utilizan la comunicación Modbus tales como PLC, Human Machine Interface (HMI)1, sensores y actuadores remotos. Además el Modbus tiene la ventaja que puede alcanzar distancias muy largas con un buen aislamiento a las perturbaciones y conectar múltiples dispositivos a la red, dando significativas ventajas en el sector industrial. Este atributo con que cuenta el Modbus se debe a su capa física RS-485 que define sus niveles de voltaje y la cantidad de dispositivos que se pueden conectar en una misma red. Con lo anterior mencionado la comunicación Modbus en el ámbito didáctico permite implementar múltiples aplicaciones como comunicación con interfaces hombre máquina, comunicación con sensores y actuadores entre otras, dándole al estudiante una perspectiva más amplia respecto a las comunicaciones industriales y la adquisición remota de datos. Desarrollando en su totalidad este proyecto se dotará al laboratorio de automatización de un módulo de adquisición remota de datos con comunicación Modbus, el cual servirá como herramienta de aprendizaje y de desarrollo de nuevas aplicaciones con PLC y comunicaciones industriales. Este módulo pretende ser una solución económica con tecnología propia a partir de conocimientos adquiridos como ingenieros en formación, permitiendo dar nuevas bases de desarrollo de nuevos proyectos de grado y mejorar la formación académica en comunicaciones industriales y adquisición de datos. Este prototipo se desarrolla con elementos adquiridos en la región y que permita ser una solución económica en comparación con los módulos existentes en el mercado de este tipo.

1

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

26

1.3

OBJETIVOS

1.3.1 Objetivo General

Diseñar e implementar un módulo de adquisición remota de datos para PLC’s mediante el estándar de comunicación Modbus para el laboratorio de automatización de la Universidad de San Buenaventura Seccional Cali.

1.3.2 Objetivo Específicos



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



Diseñar el sistema de acondicionamiento de señales, los filtros y el aislamiento del módulo de adquisición.



Identificar el microcontrolador con las características requeridas para la aplicación.



Implementar

el

protocolo

de

comunicación

Modbus

en

el

microcontrolador. 

Determinar e implementar el hardware necesario para la capa física RS485.



Realizar pruebas de adquisición de datos para verificación de conversión de señales.



1.4

Realizar pruebas de comunicación Modbus con el PLC.

DESCRIPCIÓN DEL DOCUMENTO

Para el desarrollo del proyecto se traza el siguiente planteamiento:

27

En el Capítulo 1 se analiza el problema, se fijan objetivos para luego establecer en los capítulos posteriores el diseño general del proyecto. Consecutivamente en el Capítulo 2 se presenta la teoría sintetizada del protocolo Modbus, de los sistemas de adquisición de datos, las comunicaciones seriales y los PLC, información que sirve para poder lograr los objetivos que se quieren alcanzar. Consecuentemente en el capítulo 3 se plantea el diseño del hardware del módulo Esclavo, teniendo en cuenta los requerimientos del prototipo a crear. Después en el capítulo 4 se presenta todo el desarrollo del software necesario para llevar a cabo el protocolo Modbus y la adquisición de datos en el microcontrolador del dispositivo Esclavo, donde se describe detalladamente cada uno de los diagramas de flujo y los programas con sus respectivas aplicaciones. En el capítulo 5 se presentan las pruebas en el diseño de la tarjeta de adquisición de datos y los resultados obtenidos de las pruebas. Al final se presentan las conclusiones obtenidas una vez se ha terminado el proceso de implementación y por último las recomendaciones de la construcción del prototipo

28

2 MARCO TEÓRICO.

2.1

ANTECEDENTES

En la Escuela Politécnica Nacional de Quito Ecuador, se diseñó un prototipo de un módulo Esclavo de control para protocolo Modbus con entradas y salidas Analógicas-Digitales como proyecto de grado, con el objetivo de solucionar problemas de mediciones de temperatura en una empresa local de Ecuador. El módulo consiste en un sistema embebido en un PIC con una entrada y una salida digital, 2 entradas y 2 salidas análogas, el módulo se comunica con un computador mediante medio físico RS-485. La empresa B&B Electronics [1] comercializa dispositivos de adquisición de datos remotos con comunicación Modbus con diferentes funciones. Tabla 2.1-Referencias y Precios. Análogas

Modelo ADAM-4051

Digitales

Salidas Entradas Salidas Entradas / / / 16

Precio (US) $ 140,00

ADAM-4069

/

/

8

/

$ 210,00

ADAM-4068

/

/

8

/

$ 165,00

ADAM-4019+

/

8

/

/

$ 350,00

ADAM-4118

/

8

/

/

$ 285,00

ADAM-4024

4

/

/

/

$ 275,00

En la Tabla 2.1 se puede observar los diferentes precios y modelos de adquisición remota de datos, donde la gran desventaja de estos dispositivos es que no integran las I/O en el mismo dispositivo, si no que vienen aparte y con unos costos de compra muy altos. El prototipo que se implementó incorpora entradas análogas y digitales dentro del mismo dispositivo, lo cual es una gran ventaja en

29

comparación de los dispositivos mostrados. También su diseño se implementó con elementos económicos y asequibles que se encuentran dentro del mercado local. También se investigó que la compañía DHG [2] tiene a disposición en su inventario el módulo de adquisición de datos D500M de 4 entradas análogas; este dispositivo viene provisto de conexiones directas para 4 señales análogas del mismo tipo y rango para cualquier dispositivo con puerto RS-485. El módulo permite conexiones con una gran variedad de sensores y suministra todas la señales acondicionadas, ajustada, linealizadas y convertidas a unidades de ingeniería. Los valores del dato son trasmitidos vía RS-485 usando el protocolo DGH ASCII o el protocolo Modbus RTU. El protocolo es seleccionado por el usuario lo cual brinda la posibilidad conectar As Interfaces con algún de estos protocolos.

2.2

PLC (Programable Logic Controller)

Un PLC o controlador Lógico Programable, son dispositivos electrónicos muy usados en la Automatización industrial capaces de controlar procesos, sistemas o maquinas usadas en la industria. En principio, un PLC contiene entradas-salidas, las cuales se conectan directamente a dispositivos como elementos primarios y finales donde el estado de las salidas, dependen del estado de las entradas y la lógica del programa. En forma general la estructura básica de cualquier autómata programable es:  Fuente de alimentación: es la encargada de convertir la tensión de la red, 220

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

trabajo en los circuitos electrónicos que forma el Autómata.  CPU: la Unidad Central de Procesos es el auténtico cerebro del sistema. Es el encargado de recibir órdenes del operario a través de la consola de 30

programación y el módulo de entradas. Después las procesa para enviar respuestas al módulo de salidas.  Módulo de entradas: aquí se unen eléctricamente los captadores (interruptores, finales de carrera.). La información que recibe la envía al CPU para ser procesada según la programación. Hay 2 tipos de captadores conectables al módulo de entradas: los pasivos y los activos.  Módulo de salida: es el encargado de activar y desactivar los actuadores (bobinas de contactores, motores pequeños.). La información enviada por las entradas a la CPU, cuando está procesada se envía al módulo de salidas para que estas sean activadas (también los actuadores que están conectados a ellas). Hay 3 módulos de salidas según el proceso a controlar por el autómata: relés, triac y transistores.  Terminal de programación: la terminal o consola de programación es el que permite comunicar al operario con el sistema. Sus funciones son la transferencia

y

modificación

de

programas,

la

verificación

de

la

programación y la información del funcionamiento de los procesos.  Periféricos: ellos no intervienen directamente en el funcionamiento del autómata pero sí facilitan la labor del operario.

2.2.1 Funciones Básica de un PLC

 Detección: lectura de la señal de los captadores distribuidos por el sistema de fabricación.  Mando: elaborar y enviar las acciones al sistema mediante los accionadores y preaccionadores.

31

 Dialogo hombre maquina: mantener un diálogo con los operarios de producción, obedeciendo sus consignas e informando del estado del proceso.  Programación: Para introducir, elaborar y cambiar el programa de aplicación del autómata. El dialogo de programación debe permitir modificar el programa incluso con el autómata controlando la maquina.

2.3

MICROCONTROLADORES

Los micros controladores son circuitos integrados fundados bajo la arquitectura tradicional de John Von Neumann. 2En este modelo la unidad central de proceso o CPU está conectada a una memoria única que contiene las instrucciones del programa y los datos. Este dispositivo electrónico maneja señales con la capacidad de efectuar tareas de adquisición y procesamiento de información de datos, el cual está compuesto de las siguientes características: Una CPU (basado principalmente en un microprocesador de 4, 8 ó 16 bits), puertos paralelos de entrada y salida, puerto serie, Timers, contadores, memorias de datos (RAM) y de programa (ROM), reloj, y en algunos casos hasta convertidores analógicos digitales, todo esto dentro de un solo chip. Debido a esto los microcontroladores están encaminados básicamente hacia un amplio rango de aplicaciones tales como; los sistemas de control de alarmas, tableros de control en la industria automotriz, en la instrumentación módica, en los teclados de computadora, en los sistemas portátiles de almacenamiento de datos, en equipos de laboratorio, etcétera. A pesar de que un microprocesador es más rápido que un microcontrolador para la ejecución de sus instrucciones, en la mayoría de los casos es necesario interconectarlo con dispositivos periféricos. En el mercado se encuentra una gran variedad de marcas y modelos entre las que se encontró: MICROCHIP, ATMEL, MOTOROLA, NATIONAL SEMICONCUCTOR, 2

32

CYPRESS, PHILLIPS y TEXAS INSTRUMENTS. Estas compañías producen microprocesadores de las siguientes familias:  INTEL las familias 8038, 8051 y 8052.  MICROCHIP se encuentran las familias PIC (familias 12, 14, 16, 17, 18).  MOTOROLA las familias 68HC05, 68HC08, 68HC11, 68HC12, 68HC16y MC68CXX.  ATMEL las familias AT89 y AT91.  TEXAS INSTRUMENTS las familias TMS370, TMS370C16 TMS370 y MSP430.

2.4

AMPLIFICADORES OPERACIONALES

Los amplificadores operacionales son dispositivos electrónicos que ofrecen múltiples aplicaciones en el procesamiento de señales eléctricas, los cuales modifican la magnitud y/o fase de estas. Algunas diversas aplicaciones son: amplificación, filtrado analógico, acoplamiento, rectificación, detección de umbral, conmutación digital, etc. [12] Los amplificadores operacionales se caracterizan por:  Una Impedancia de Entrada muy alta.  Una Impedancia de Salida bastante baja.  Una Ganancia muy alta alrededor de los 10000.  Un Ancho de Banda (BW) que tiende a infinito.  Una buena respuesta en frecuencia. El símbolo básico de un circuito operacional es un triangulo donde generalmente se representa con 5 pines (Véase Figura 2.1):

33

Figura 2.1-Símbolo del amplificador operacional

 Alimentación positiva (Vs+).  Alimentación negativa (Vs-). 

Entrada no inversora (+).

 Entrada inversora (-). 

Salida (Vout).

Donde al aplicar la teoría de AO y la teoría de circuitos eléctricos se encuentra que la ecuación que relaciona la salida en función de la entrada es: Ec. 1 En este tipo de configuración el voltaje de entrada ingresa por el pin positivo (+) pero como la ganancia del operacional es muy grande, el voltaje de entrada positivo será igual al voltaje de entrada negativo Dado a su diferencia de potencial: Ec. 2 Quedando La salida en función de la entrada: Ec. 3

34

2.4.1 Tipos de Configuración

Casi todos los amplificadores operacionales están basados en estas 2 configuraciones básicas; la configuración no inversora y la configuración inversora.

2.4.1.1 Configuración No Inversora

En este caso la señal a amplificar se aplica al pin no inversor (+) del Amplificador Operacional y como el nombre indica la señal de salida no está invertido respecto a la entrada. En la Figura 2.2 se observa el circuito del amplificador no inverso Figura 2.2-Circuito Esquemático del Amplificador No inversor

Conociendo el voltaje en el pin inversor (-) podemos calcular la relación que existe entre el voltaje de salida (Vout) con respecto al voltaje de entrada (Vin) haciendo uso de un pequeño divisor de tensión.

35

Ec. 4 Donde su ganancia es: en este caso la señal a amplificar se aplica al pin no inversor (+) del Amplificador Operacional y como el nombre indica la señal de salida no está invertido respecto a la entrada. Ec. 5 2.4.1.2 Configuración Inversora

Se denomina inversor ya qué la forma de la señal de salida es igual a la forma de la señal de entrada pero con la fase invertida a 180 grados. El análisis de este circuito es el siguiente: el voltaje positivo es igual al voltaje negativo los cuales serán igual a cero. Ec. 6 En la Figura 2.3 se observa el circuito del amplificador inverso. Figura 2.3-Circuito Esquemático del Amplificador Inversor

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

36

Y su ganancia es: Ec. 8

2.4.1.3 Configuración Diferencial

Este amplificador es una combinación de las 2 configuraciones anteriores aunque está basada en los otros 2 circuitos, el amplificador diferencial tiene características únicas. Este circuito tiene aplicada señales en ambos terminales de entrada y utiliza la amplificación diferencial natural del amplificador operacional para 2 funciones básicas tales como (Véase Figura 2.4):  Acondicionamiento de señales análogas.  Manipulación de pequeñas señales de baja potencia. Figura 2.4-Circuito Esquemático del Amplificador Diferencial

Suponiendo que el circuito esta balanceado, la ecuación que caracteriza a este circuito en función de la entrada es la siguiente: Ec. 9 Donde su ganancia:

37

Ec. 10

2.4.1.4 Configuración Seguidor de Voltaje

Esta configuración tiene como función realizar el acople de impedancias, ya que, en teoría no consume ninguna corriente en su entrada y entrega señal en su salida. Figura 2.5-Circuito Esquemático del Amplificador Seguidor de Voltaje

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

MÓDULO LCD

Un módulo LCD es un dispositivo electrónico digital que está constituido por una pantalla de cristal líquido, un controlador y dos memorias internas independientes: la DDRAM y la CGRAM. Debido a esta peculiar disposición el módulo puede obtener eficientemente el mecanismo de mostrar los caracteres alfanuméricos con tan solo enviar el código ASCII asociado. El LCD tiene el siguiente aspecto físico como se ve en la Figura 2.6.

38

Figura 2.6-Modulo LCD

El módulo LCD incorpora su propio método de comunicación para realizar operaciones de lectura y escritura. Es por ello, que el módulo LCD cuenta con unos Bits de control con los cuales el dispositivo identifica cuando el dato en el bus es

una

instrucción

o

información

a

almacenar

en

la

memoria,

que

automáticamente es desplegada en pantalla. RS es el Bit de control que le indican al procesador cuando la palabra de transmisión es un dato (1) o instrucción (0). En la Figura 2.7 se muestra la asignación de pines correspondiente de un Módulo LCD con sus respectivas características.

39

Tabla 2.2-Asignación de pines del LCD NUMERO DEL PIN SÍMBOLO FUNCIÓN 1 Vdd Fuente de Alimentación(5V) 2 Vss Tierra (GND) 3 Vo Contraste de Ajuste 4 RS Registro de la Señal de Control H/ L 5 R/W Señal de lectura / escritura H/L 6 E Señal de Habilitación H 7 DB0 Línea de Bus de Dato H/ L 8 DB1 Línea de Bus de Dato H/ L 9 DB2 Línea de Bus de Dato H/ L 10 DB3 Línea de Bus de Dato H/ L 11 DB4 Línea de Bus de Dato H/ L 12 DB5 Línea de Bus de Dato H/ L 13 DB6 Línea de Bus de Dato H/ L 14 DB7 Línea de Bus de Dato H/ L

2.6

SISTEMAS DE ADQUISICIÓN DE DATOS

Una tarjeta de adquisición de datos es un sistema que utiliza sensores, transductores, amplificadores, convertidores analógico-digital (A/D) y digitalanalógico (D/A), que interactúan entre sí ofreciendo procesar información de un sistema físico del mundo real (datos-analógicos) en forma digitalizada, donde cada dispositivo no solo trabaja de manera individual sino que trabaja efectivamente con los demás componentes para que todo el sistema opere correctamente. Una vez que las señales eléctricas se transforman en digitales, se envían a través del bus de datos a la memoria del computador Personal Computer (PC). Los datos analógicos tomados del sistema físico se convierten en un valor de voltaje a través del conversor A/D que a su vez corresponde a una combinación binaria. Esta conversión requiere de un sensor o transductor que se encarga de leer la variable

40

física y de representar dicha variable en un valor de voltaje o corriente, por el cual tenemos que hacer llegar al ADC del microcontrolador. Para que el ADC pueda realizar la conversión del valor analógico, se le tiene que agregar un voltaje de referencia, porque éste es el que indica precisamente cuál es el rango de operación de la entrada del ADC. Todos los ADC del Peripheral Interface Controller (PIC), aceptan como máximo un rango de operación que llega hasta 5V, por lo que podemos establecer rangos de operación de cualquier valor de voltaje, siempre y cuando no rebasemos los 5V. [14] Una vez definido el rango, la señal a digitalizar posee una frecuencia alta de operación y para reproducirla en un proceso posterior hay que tomar un buen número de muestras donde así digitalizarlas como tal. En caso contrario, aparecerá el fenómeno del aliasing (Véase Figura 2.8), que se produce al inframuestrear. Si la señal sufre aliasing, es imposible recuperar el original. Velocidad de muestreo recomendada:  2*frecuencia mayor (medida de frecuencia)  10*frecuencia mayor (detalle de la forma de onda)

41

Figura 2.7-Filtro Antialising

2.6.1 Elementos de un Sistema de Adquisición de Datos

Un sistema de adquisición de datos (Véase Figura 2.9).consta básicamente de: Las fuentes de señales, que son de dos clases:  Elementos medición directa: producen la señal como resultado de cantidades eléctricas, como mediciones de voltaje, de corriente, de resistencia, de frecuencia, etc.  Transductores: dispositivos que censan los fenómenos físicos y convierten parámetros no eléctricos en señales eléctricas, ejemplos de ellos son las resistencias

detectoras

de

temperatura,

Detectores

Resistivos

de

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

42

etc. En cada caso las señales eléctricas son proporcionales a los parámetros físicos que monitorean. 2.6.1.1 Elementos de Acondicionamiento de Señales

Estos elementos realizan la tarea de amplificar las señales de bajo nivel, aislarlas y filtrarlas para tomar mediciones más precisas. Además algunos transductores usan voltaje o corriente como excitación para poder producir su valor de salida. Figura 2.8-Sistema de Adquisición de Datos Análogos.

 Etapa de Acondicionamiento El problema es que la mayoría de los sensores y transductores generan señales que se debe acondicionar antes de que un dispositivo tarjeta de Adquisición de Datos (DAQ) que pueda adquirir con precisión la señal. Este procesamiento al frente, conocido como acondicionamiento de señal, incluye funciones como amplificación, filtrado, aislamiento eléctrico y multiplexado. El acondicionamiento de señales se divide entonces en:

43

 Amplificación: Es el tipo más común de acondicionamiento. Cuando las señales son muy pequeñas deben amplificarse para incrementar su resolución y reducir el ruido.  Aislamiento: Las señales del transductor del medio ambiente y las señales del equipo receptor se aíslan para reducir ruidos que las distorsionan. En las señales del receptor se aíslan para evitar transiciones de voltaje que lo dañen. Una razón adicional es asegurar que las lecturas del equipo de medición no sean afectadas por diferencias en potenciales de tierra o voltajes de modo común, ya que esta diferencia puede resultar imprecisiones en la señal adquirida, o si la diferencia es muy grande, puede dañar el sistema de medición.  Multiplexado: Es una técnica para medir varias señales con un solo dispositivo. A menudo se multiplexa para monitorear diferentes fuentes de señales de lenta variación como por ejemplo la temperatura. El instrumento toma muestra de un canal, cambia al próximo canal y toma otra muestra, y así continúa. Se aconseja que los multiplexores se utilicen antes del conversor y después del condicionamiento de la señal, ya que de esta manera no molestará a los aislantes que podamos tener.  Filtrado: El filtro elimina las señales indeseadas de las que se están tratando de medir. Para las señales de tipo DC (temperatura) se usa un filtro de ruido que reducen la precisión de la medición y para las señales de tipo AC tales como las de vibración, requieren otros filtros conocidos como filtros antialiasing, los cuales son filtros pasa bajas con una ventana de corte muy alta para remover casi completamente las frecuencias indeseables.  Excitación: Prácticamente es la inducción electromagnética que genera la etapa de acondicionamiento hacia algunos transductores como galgas

44

extensiometricas, termistores o RTD que por su constitución necesitan de la misma.  Linealizacion: Muchos transductores como los termopares, tienen una respuesta no lineal a los cambios en el fenómeno que están midiendo por lo que se requieren rutinas de Linealizacion que calculan los nuevos valores correspondientes a su medición. Instrumentos de registro grafico. Registran el comportamiento en el tiempo de las señales monitoreadas. Estos registros se pueden imprimir en rollos de papel o en una pantalla de computador.

2.7

COMUNICACIONES SERIALES

El concepto de comunicación serial es simple, es un código de codificación binario que representa los caracteres de los mensajes digitales de los Bits a través de 0 y 1, en serie , uno detrás de otro, lo que hacen que la transmisión sean mucho más lentas que sus homólogas "paralelo" en las que se transmiten varios Bits a la vez. Tanto en dispositivos de transmisión como en dispositivos de recepción los puertos serie son los dispositivos a través de los cuales los datos son transferidos. En este código los 0 y 1 son caracteres, por lo tanto las comunicaciones seriales son un código binario por que usan solo 2 valores posibles ceros y unos. Este concepto ha seguido los estándares definidos desde 1969 por el RS232(Recommended Standard 232). La velocidad de transmisión de datos es expresada en Bits por segundo o Baudios, donde todo tipo de comunicación serial tiene que realizarse en tiempos correctos, es decir que, los dispositivos a comunicarse deben tener la misma velocidad de transferencia, donde comúnmente es de 9600bps que es equivalente a decir también 1Bit cada 10µS.

45

Existen varios modos básicos para las transmisiones serie:  Simplex: Un dispositivo transmite y el otro recibe.  Halfduplex: Ambos dispositivos transmiten pero no simultáneamente, esto quiere decir que mientras un dispositivo transmite la otra espera hasta que lo reciba.  Full-duplex: Ambos equipos transmiten simultáneamente. Para ello se requieren dos líneas independientes, transmisión y recepción; la línea de transmisión de un equipo se conecta a la entrada de recepción del otro y viceversa. Los puertos serie del PC son capaces de utilizar este modo.  Asíncronas: Las transmisiones asíncronas son aquellas en que los Bits que constituyen el código de un carácter se emiten con la ayuda de impulsos suplementarios que permiten mantener en sincronismo en los dos extremos.  Síncronas: En las transmisiones síncronas los caracteres se transmiten consecutivamente, no existiendo ni Bit de inicio ni Bit de parada entre los caracteres, estando dividida la corriente de caracteres en bloques, enviándose una secuencia de sincronización al inicio de cada bloque. Figura 2.9-Trama de las Comunicaciones Seriales.

Las características seriales más importantes son: tasa de baudios, Bits de datos, Bits de paro, y paridad (Véase Figura 2.10).  Tasa de baudios: es una unidad de medición para comunicación que indica el número de Bits transferidos por segundo.

46

 Bits de datos: son mediciones de los Bits de datos actuales en una transmisión, la cantidad de datos actuales puede ser que no complete 8 Bits. Los valores estándar para los paquetes de datos son de 5, 7, y 8 Bits. El marco que usted elija dependerá de la información que está transfiriendo.  Bits de paro: son utilizados para señalar el término de comunicaciones en un paquete sencillo.  Bit de paridad: este Bit se utiliza para comprobar si los Bits de datos han sido bien recibidos. Existen estas variantes: Paridad par: si la suma de los Bits de datos es par, el Bit de paridad es 1, si es impar, el Bit de paridad es 0. Paridad impar: si la suma de los Bits de datos es impar, el Bit de paridad es 1, si es par, el Bit de paridad es 0.Sin paridad. No se utiliza el Bit de paridad.

2.8

PROTOCOLOS DE COMUNICACIÓN

En la actualidad existen diversos protocolos que rigen las comunicaciones en el ambiente industrial, con diferentes características tales como, el medio físico en la que se trasporta los datos, la manera en que se segmenta, se codifican y se interpretan los datos para ser trasmitidos y recibidos. Un protocolo de comunicación es un conjunto de reglas que permiten la transferencia e intercambio de datos entre distintos dispositivos que conforman una red. [13] Con la evolución de los microprocesadores, ha sido más factible su unificación a redes industriales con notable ventajas como:

47



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



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



Monitoreo remoto de componentes.

Los buses de campo permite la integración de equipos de medición y control de variables de procesos. Su objetivo primordial es sustituir las conexiones punto a punto entre los elementos de campo y el equipo de control. Normalmente son redes digitales, bidireccionales, multipunto, montadas sobre un bus en serie, que conecta dispositivos de campo como PLC’s, transductores, actuadores, sensores y equipos de supervisión. Los buses con mayor presencia en el sector industrial son:  HART

 Seriplex

 Profibus

 ASI

 Fieldbus Foundation

 InterBus Loop

 CAN bus

 Modbus

 InterBus-S

 Modbus Plus

2.8.1 Modbus

[8]El protocolo Modbus fue desarrollado por Modicon a finales de 1980 para comunicación entre PLC’s. La designación Modbus Modicon corresponde a una marca registrada por Gould Inc. Como en tantos otros casos, la designación no corresponde propiamente al estándar de red, incluyendo todos los aspectos desde el nivel físico hasta el de aplicación, sino a un protocolo de enlace (nivel OSI 2)3. Puede por tanto, 3

El modelo de referencia de Interconexión de Sistemas Abiertos (OSI, Open System Interconection) lanzado en 1984 fue el modelo de red descriptivo creado por ISO. Proporcionó a los fabricantes un conjunto de

48

implementarse con diversos tipos de conexión física y cada fabricante suele suministrar un software de aplicación propio, que permite parametrizar sus productos. Durante la comunicación sobre una red Modbus, el protocolo determina como cada controlador conocerá su dirección de dispositivo, reconocerá un mensaje direccionado a él, determinara el tipo de acción a tomar y extraerá cualquier dato u otra información contenida en el mensaje. La principal característica de este bus de campo es el control de acceso al medio, tipo Maestro/Esclavo. En la actualidad debido a su simplicidad y especificación abierta, actualmente es ampliamente utilizado por diferentes fabricantes.

2.8.1.1 Modbus Capa de Aplicación

Modbus se enfoca en la capa de aplicación (protocolo de mensaje), se encuentra en el nivel 7 del modelo OSI, también permite la comunicación con diferentes tipos de redes o buses entre cliente y servidor. Modbus es un protocolo de solicitud/respuesta y proporciona servicios especificados por códigos de función. Los comandos de Modbus son funciones de solicitud/respuesta de la PDU’s. El alcance de este documento describe como establecer una comunicación entre Maestro/Esclavo, donde la tarjeta de adquisición de datos será el Esclavo y el PLC el Maestro. Para lograr la interoperabilidad entre diferentes clases de buses y redes actualmente esta implementado así:  TCP/IP sobre Ethernet.  Trasmisión serial asíncrona a través de varios medios (EIA/TIA-232, EIA422, EIA/TIA-485-A, fibra, radio, etc.) estándares que aseguraron una mayor compatibilidad e interoperabilidad entre los distintos tipos de tecnología de red producidos por las empresas a nivel mundial.

49

 Modbus plus, una alta velocidad paso de la señal en red. En la Figura 2.11 se encuentra la comunicación general del Modbus.

Figura 2.10-Comunicación General del Modbus.

Fuente [8]

El protocolo Modbus permite una fácil comunicación con todo tipo de arquitectura de redes. En Figura 2.12 se observa algunos tipos de integración de redes Modbus

50

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

5000

5000 5000

Cada tipo de dispositivo (PLC, HMI, Panel de control, driver, interfaces de I/O) puede usar Modbus para iniciar una operación remota. La misma comunicación se puede hacer tanto como en serial o redes Ethernet TCP/IP. Los Gateways permiten una comunicación entre diferentes tipos de redes usando el protocolo Modbus.

51

2.8.2

Descripción General

2.8.2.1 Descripción del Protocolo

El Modbus define una unidad de dato independiente (PDU) de las capas de comunicación principal del modelo OSI. La Unidad de Dato del Protocolo PDU, se le puede adicionar un campo sobre La Unidad de Dato de Aplicación (ADU), para buses específicos o redes. En la siguiente Figura 2.13 se muestra la estructura general de la trama Modbus.

Figura 2.12-Trama General del Modbus.

Fuente [8] La función de la unidad de dato de aplicación (ADU) del Maestro indica al Esclavo que clase de acción debe desarrollar .El protocolo de aplicación Modbus se ubica en el nivel 7 del modelo OSI y establece el formato de una solicitud iniciada por un Maestro.

52

El código de función de la unidad de datos del Modbus es codificado en un solo Byte. Los códigos validos están en el rango de 1-255 en formato decimal (el rango de 128-255 es reservado y usado para respuestas en excepción). Cuando el mensaje es enviado desde un Maestro a un Esclavo la trama del código de función le dice al Esclavo que clase de acción debe desarrollar, donde el código de función 0 no es válido. Estos códigos de función agregan códigos de sub-función para definir múltiples acciones. La trama del dato utiliza información adicional del código de función para que el Esclavo reconozca la acción definida por el código de función. Esta información adicional de la trama puede incluir ítems de direccionamiento de registros donde son manejados por el contador del Byte del dato en la trama. En ocasiones la trama del dato puede venir en “0”, en este caso el Esclavo no requiere una información adicional y el código de función solo especifica la acción. Sin ningún error ocurre relacionado con el código de función solicitado en una recepción adecuada, la trama del dato de la respuesta de un Esclavo a un Maestro contiene el dato requerido. Por el contrario si ocurre un error, la trama del dato contiene un código de excepción para que la aplicación del Esclavo la pueda usar y así determinar la siguiente acción a tomar. Por ejemplo un Maestro puede leer el estado ON/OFF de un grupo I/O o puede leer o escribir el contenido del dato de un grupo de registros. Cuándo el Esclavo responde al Maestro este usa el código de función para indicar una normal respuesta (sin error) o alguna clase de error ocurrido (llamado una respuesta opcional).Para una respuesta normal el Esclavo simplemente repite la solicitud del original código de función. La Figura 2.14 muestra el orden secuencial de tramas de una transmisión (solicitud) y recepción (respuesta).

53

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

Fuente [8]

Para una respuesta en excepción, el Esclavo devuelve un código que es equivalente al código de función original de la PDU solicitada con su Bit más significativo seteado en 1. En la Figura 2.15 detalla cómo es una respuesta en excepción del dispositivo Esclavo hacia el dispositivo Maestro.

54

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

Fuente [8]

El tamaño de la PDU es limitada por el tamaño de la implementación del protocolo Modbus sobre redes seriales (Max. RS485 ADU=256 Bytes). Por lo tanto: La PDU por línea de comunicación serial= 265-direccion Esclavo (1 Byte)- CRC (2 Bytes)=253 Bytes Consecuentemente: RS232 /RS485 ADU = 253 Bytes+ dirección Esclavo (1 Byte)+ CRC (2 Bytes)= 256 Bytes. TCP MODBUS ADU = 253 Bytes+ MBAP (7 Bytes) = 260 Bytes. El Modbus define tres PDUS:

55

 MODBUS Solicitud PDU, mb_req_pdu: La mb_req_pdu está definida como: mb_req_pdu = {function_code, request_data}, donde function_code = [1 Byte] Modbus código de función request_data = [n Byte] Esta trama es una función de código dependiente y usualmente contiene información adicional, como por ejemplo: referencia de variable, contador de variables, códigos de sub-funciones etc.

 MODBUS Respuesta PDU, mb_rsp_pdu La mb_rsp_pdu es definida como: mb_rsp_pdu = {function_code, response_data}, Dónde: function_code= [1 Byte] Modbus código de función response_data= [n Byte] Esta trama es una función de código dependiente y usualmente contiene información adicional, como por ejemplo: referencia de variable, contador de variables, códigos de sub-funciones etc.  MODBUS respuesta de excepción PDU, mb_excep_rsp_pdu La mb_exceo_rsp_pdu es definida como: mb_excep_rsp_pdu = {exception-function_code, request_data} Dónde: Exception-function_code= [1 Byte] Modbus código de función + 0x80 exception_code = [1 Byte] El código de excepción Modbus está definido en la Tabla 2.7.

56



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

para las direcciones e ítems del dato. Esto significa que cuando hay una cantidad numérica más grande que un simple Byte transmitido, el Byte más significativo es enviado primero. Por ejemplo: Tamaño del Registro

16 – Bits

Valor

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



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

series de índices que tienen sus características principales. Las cuatro características primordiales pueden verse en la Tabla 2.2. Tabla 2.3-Modelo del Dato Modbus Primeros Tipo de Índices

Objetó

Tipo de

Comentarios Este tipo de dato puede ser

Entradas discretas

suministrado Un solo Bit

Solo lectura

por

I/O

del

sistema Este tipo de dato puede ser

Bobinas

Un solo Bit

Lectura-

alterado por una aplicación del

Escritura

programa Este tipo de dato puede ser

Registros de

Palabra de

entrada

16-Bit

suministrado Solo lectura

por

I/O

del

sistema Este tipo de dato puede ser

Registros

Palabra de

Lectura-

alterado por una aplicación del

holding

16-Bit

Escritura

programa

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

57

Las diferencias entre entradas/salidas, y entre Bit-direccionable y palabradireccionable de los ítems del dato, no implican ningún comportamiento de aplicación. Es perfectamente aceptable, y muy común, a lo que se refiere a las cuatro características, como solapamiento entre sí, siendo esta la más natural interpretación del objetivo de dispositivo en cuestión. Por cada una de estas características, el protocolo permite elegir de los 65536 ítems del dato solo uno, y las operaciones de leer o escribir de estos ítems son designadas para abarcar múltiples y consecutivos ítems del dato hasta alcanzar un límite del tamaño del dato él cual es dependiente de la comunicación del código de la función. Es obvio que todo el dato manejado por vía Modbus debe ser localizado en dispositivos de memoria de aplicación del Esclavo. Pero la dirección física en memoria no debe ser confundida por los datos de referencia. El único requisito es establecer un vínculo de datos de referencia con la dirección física. Los números de referencia lógica del Modbus que son usados en funciones, son índices enteros sin signo a partir del cero 

Modelo Direccionamiento Modbus: el protocolo de aplicación Modbus

define precisamente reglas para el direccionamiento de la PDU. En una PDU-MODBUS cada dato es direccionado desde: [0 -65535]. Esto también define claramente un modelo del dato compuesto de 4 bloques que comprenden varios elementos numerados desde 1 hasta n. El modelo del dato-Modbus tiene que ser obligado a la aplicación del dispositivo (objeto IEC-611315, u otro modelo de aplicación), donde el pre-mapeado entre el

5 El estándar internacional IEC 61131 es el primer paso para la estandarización de los autónomas programable y sus periféricos, incluyendo los lenguajes de programación que se debe utilizar.

58

modelo del dato Modbus y el dispositivo de aplicación, es totalmente del diseñador del dispositivo específico. 

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

diagrama de estado que describe el procesamiento genérico de una transacción Modbus en el Esclavo.

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

59

Una vez la solicitud ha sido procesada por un Esclavo, se construye una respuesta mediante la adecuada transacción del Esclavo Modbus.

60

Dependiendo del resultado del procesamiento de los 2 tipos de respuesta se construye así: Para una respuesta sin excepción: 

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

Para una respuesta excepción: 

El objetivo es suministrar al Maestro de información relevante concerniente al error detectado durante el procesamiento.



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

 

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

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

Función del Modbus, las cuales son:

1. Códigos de Función Públicos  Los códigos de función están bien definidos.  Garantiza que sea único.  Validado por la comunidad MODBUS-IDA.org  Públicamente documentado.  Incluye ambos, los códigos de función públicos definidos como tan bien los códigos indefinidos de función reservados para uso futuro.

2. Códigos de Función Definidos por el Usuario  Hay 2 rangos para que el usuario defina códigos de función, es decir 65 a 72 y desde 100 a 110 decimal

61

 El usuario puede seleccionar e implementar un código de función que no está soportado por la especificación.  No hay garantía que el uso del código de la función seleccionada sea único.  Si el usuario quiere reasignar una funcionalidad de un código de función público, tendrá que iniciar una RFC para introducir el cambio dentro de la categoría pública y tener un nuevo código de función público asignado.  La organización Modbus-Inc. expresamente se reserva desarrollar el propósito de una RFC.

3. Códigos de Función Reservados

 Los códigos de función actualmente usados por algunas compañías para legalizar productos y no están disponibles para uso del público De la Tabla 2.3 se aprecian algunos códigos de función actualmente usados por algunas compañías para legalizar sus productos y no están disponibles para uso del público.

62

Tabla 2.4-Categoría del Código de Función del Modbus. 127 Códigos de función públicos

100

Códigos de función definidos por el usuario Códigos de función públicos

72 65

Códigos de función definidos por el usuario

Códigos de función públicos

1 Fuente [8]



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

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

63

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

Código Entradas Digitales Físicas

Bits de Acceso

Bits Internos o Bobinas Físicas

Entradas Físicas de Registros

Registros Internos

16 Bits de Acceso Dato de Acceso

Registros de Salida Físicos.

Acceso de File Record Diagnósticos

Lectura de Entradas Digitales Lectura de Bobinas Escritura de una sola Bobina Escritura de Múltiples Bobinas Lectura de Entrada Análoga Lectura de Registros Holding Escritura de un solo Registro Escritura de Múltiples Registros Lectura/Escritu ra Múltiples Registros Mascara del Registro de Escritura Lectura de cola del FIFO Lectura de File Record Escritura de File Record Lectura de Estado en 64

Su cód igo

( H e x)

01

0 2 0 1

05

0 5

15

0 F

04

0 4

02

06

0 3 0 6

16

1 0

23

1 7

03

22 24 20 21 07

1 6 1 8 1 4 1 5 0 7

Excepción

Otro



Diagnostico Obtención de Contador de eventos Obtención del Registro de eventos Informe de Esclavos ID Lectura del dispositivo de Identificación Encapsulado de Interface Referencia General del CAN open

08

0018, 20

0 8 0 B

11

0 C 1 1

12 17

43

2 B 2 B

43

2 B

43

13

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

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

01(0x01) Lectura de bobinas: esta función es usada para leer desde 1 a

2000 estados contiguos de bobinas en un dispositivo remoto. La solicitud de la PDU específica la dirección de inicio, es decir la dirección de la primera bobina y el número de bobinas. En la PDU las bobinas son direccionadas empezando por cero. Por otro lado las bobinas enumeradas de 1-16 son direccionadas como 0-15. Las bobinas en el mensaje de respuestas son empaquetadas con un Bit por bobina en la trama del dato. El estado es mostrado como 1=ON y 0=OFF. El LSB del primer Byte del dato contiene la salida direccionada en la solicitud. Las otras bobinas siguen hacia el final de la parte alta de ese Byte, y desde la parte baja hasta la parte alta en los Bytes posteriores.

65

Si la cantidad de la salida que se devuelve no es un múltiplo de 8, los Bits restantes en el Byte del dato final será rellenado con ceros (hacia el orden superior del final del Byte).El Byte de conteo indica la cantidad de Bytes completos del dato. 

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

desde [1 a 2000] estados contiguos de entradas digitales en un dispositivo remoto (Esclavo). La solicitud (Maestro) de la PDU específica la dirección de inicio, es decir la dirección de la primera entrada y el número de entradas. En la PDU las entradas digitales son direccionadas empezando por cero. Por otro lado las entradas digitales enumeradas de [1-16] son direccionadas como [0-15]. Las entradas digitales en el mensaje de respuestas son empaquetadas un Bit por entradas en la trama del dato. El estado es mostrado como 1=ON y 0=OFF. El LSB del primer Byte del dato contiene las entradas direccionadas en la solicitud. Las otras entradas siguen hacia la parte alta del el final de ese Byte, y desde la parte baja hasta la parte alta en los Bytes posteriores. Si la cantidad de las entradas que se devuelve no es un múltiplo de 8, los Bits restantes en el Byte del dato final serán rellenados con ceros (hacia el orden superior del final del Byte). El Byte de conteo indica la cantidad de Bytes completos del dato. En la Tabla 2.5 se muestra como es el envió de la solitud, la respuesta y el error.

66

Tabla 2.6-Envió de Función 04 Solicitud Código de función

1 Byte

0x02

Dirección de inicio

2 Bytes

0x0000 hasta 0xFFFF

Cantidad de entradas

2 Bytes

1 hasta 2000 (0x7D0)

Respuesta Código de función

1 Byte

0x02

Contador de byte

1 Byte

N*

Estado de las Entradas N* x 1 Byte *N = Cantidad de entradas / 8 si el resto es diferente de 0 ⇒ N = N +1 Error Código de error Código de excepción Fuente [8] 

1 Byte

0x82

1 Byte

01 o 02 o 03 o 04

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

leer el contenido de un bloque contiguo de un registro de retención en un dispositivo remoto. La solicitud de la PDU específica la dirección de inicio y el número de registros. En la PDU los registros son direccionados empezando por cero. Por otro lado los registros enumerados de 1-16 son direccionados como 015. Los datos de registros en el mensaje de respuestas son empaquetados por dos Bit por registro. El estado es mostrado como 1=ON y 0=OFF. El LSB del primer Byte del dato contiene las entradas direccionadas en la solicitud. Las otras entradas

67

siguen hacia orden superior del el final de ese Byte, y desde el orden inferior al orden superior en los Bytes posteriores. Si la cantidad de las entradas que se devuelve no es un múltiplo de 8, los Bits restantes en el Byte del dato final serán rellenados con ceros (hacia el orden superior del final del Byte). El Byte de conteo indica la cantidad de Bytes completos del dato. 

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

desde [1-125] entradas análogas contiguas en un dispositivo remoto (Esclavo). La solicitud (Maestro) de la PDU especifica la dirección de inicio del registro y el número de registros. Los registros de la PDU son direccionados empezando por cero. Por otro lado los registros enumerados de [1-16] son direccionados como [015]. Los datos de registros en el mensaje de respuestas son empaquetados por dos Bytes por registro, con el contenido binario es justificado a la derecha dentro de cada Byte. Por cada registro, el primer Byte contiene la parte alta del los Bits y la segunda contiene la parte baja de los Bits. En la Tabla 2.6 se muestra como es el envió de la solitud, la respuesta y el error.

68

Tabla 2.7-Envió de Función 04 Solicitud 1 Byte Código de función 0x04 2 Bytes Dirección de inicio 0x0000 hasta 0xFFFF Cantidad de registros de entrada 2 Bytes 0x0001 hasta 0x007D

Código de función Contador de byte Estado de las Entradas

Respuesta 1 Byte 0x04 1 Byte 2 x N* N* x 2 Byte

*N = Cantidad de Registros de entrada. Error Código de error

0x84 1 Byte

Código de excepción

01 o 02 o 03 o 04 1 Byte

Fuente [8] 

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

para escribir una sola salida para cualquier estado ON /OFF en un dispositivo remoto. Esta solicitud de estado ON/OFF se especifica por una constante en la solicitud del campo del dato. Un a solicitud de valor 0X0000 puede ser OFF. Todos los otros valores son ilegales y no afectaran la salida. La solicitud de la PDU específica la dirección de la bobina para ser cambiada. Las bobinas son direccionadas para empezar en cero. Por lo tanto la bobina numerado 1 es direccionado como 0. El estado de la solicitud ON/OFF esta especificado por una constante en el valor del campo de la bobina. Un valor de 0XFF00 solicita a la bobina que este en ON. Un valor de 0X0000 solicita a la bobina estar en OFF. Todos los otros valores son ilegales y no afectaran a bobina. La respuesta normal es un eco de la solicitud, donde después se retorna cuando la bobina ya ha sido escrita. 69



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

escribir un solo registro soportado en un dispositivo remoto. La solicitud de la PDU especifica la dirección del registro a ser escrito. Los registros son direccionados para empezar en cero. Por lo tanto el registro numerado 1 es direccionado como 0. La respuesta normal es un eco de la solicitud, donde inmediatamente se retorna el contenido del registro cuando ya ha sido escrito. 

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

usado para escribir un bloque de registros contiguos (1 a 123 registros), en un dispositivo remoto. La solicitud de valores escritos es especificada en el dato de solicitud. El dato es empaquetado como dos Bytes por registros. La respuesta normal retorna el código de función, dirección de inicio y una cantidad de registros escritos en dos Bytes por registros. La respuesta normal retorna el código de función, dirección de inicio, y una cantidad de registros escritos.



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

hay un error de comunicación en la respuesta del dispositivo Esclavo, estos códigos pueden ser: por error de paridad, por error de CRC, por error de direccionamiento, etc. En la Tabla 2.7 se muestra los códigos de error soportados por el Esclavo Modbus.

70

Tabla 2.8-Códigos de Error de Ejecución del Protocolo Modbus en el Esclavo. Códigos de Descripción error 0 Sin error.

1

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

2

No utilizado

3

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

4

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

5

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

6

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

7

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

8

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

101

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

71

102

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

103

El Esclavo no soporta el tipo de datos. El Esclavo no soporta el parámetro Addr.

105

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

106

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

107 108

El Esclavo ha rechazado el mensaje por un motivo desconocido. Error de paridad en la memoria del Esclavo. Éste es un error del Esclavo.

Fuente [9] 2.8.2.2 Capa de Enlace de Datos Modbus



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

serial Modbus es un protocolo Maestro-Esclavo, donde solamente un Maestro al tiempo es conectado al bus, y una o varios nodos Esclavos (número máximo 247) son conectados al mismo bus serial. Una comunicación Modbus es siempre iniciada por el Maestro, donde los nodos Esclavos nunca trasmiten un dato sin recibir una solicitud desde el nodo Maestro. En una red, los nodos Maestros nunca se comunicaran entre sí, siendo el nodo Maestro quien inicia una transacción Modbus al tiempo. El nodo Maestro envía una solicitud al Esclavo de dos modos: 

Modo unicast: el Maestro direcciona a un Esclavo individualmente y después de recibir y procesar la solicitud, el Esclavo devuelve un mensaje al Maestro (una respuesta), en la Figura 2.17 se puede apreciar la comunicación Unicast. 72

En este modo, la transacción consiste en dos mensajes: una solicitud desde el Maestro y una respuesta desde el Esclavo, donde cada Esclavo tendrá una dirección

única

(1

a

247),

de

modo

que

pueda

ser direccionado

independientemente de otros nodos. Figura 2.16-Modo Unicast.

Fuente [7] 

Modo broadcast, el Maestro puede enviar una solicitud a todos los Esclavos, en la Figura 2.18 se puede ver como se realiza una comunicación broadcast. El modo broadcast tiene las siguientes características:  La solicitud broadcast es escrita necesariamente por comandos.  Ninguna respuesta es retornada a la solicitud broadcast enviada por el Maestro.  Todos los dispositivos tendrán que aceptar el modo broadcast por funciones de escritura.  La dirección 0 es reservada para un cambio de broadcast.

73

Figura 2.17-Modo Broadcast.

Fuente [7] 

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

son definidos. El modo RTU y el modo ASCII. Estos definen el contenido del Bit de la trama de mensajes trasmitida serial mente en la línea serial. Este modos determinan como la información es decodificada y empaquetada dentro de la trama del mensaje. El modo de transmisión tendrá que ser el mismo para todos los dispositivos sobre la línea serial. Sin embargo el modo ASCII es requerido en algunas aplicaciones específicas, la interoperabilidad entre dispositivos Modbus puede ser lograda solamente si cada dispositivo tiene el mismo modo de comunicación. El modo de transmisión ASCII es opcional. En los dispositivos, el modo de transmisión debe ser establecido por el usuario (RTU o ASCII), de lo contrario el modo RTU será establecido por defecto.

74



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

una línea serial Modbus usando el modo RTU (Remote Terminal Unit), cado 8 Bits del Byte en un mensaje contiene dos de 4 Bits hexadecimales. La principal ventaja de este modo es que su carácter de mayor densidad

permite un mejor

rendimiento del dato que en el modo ASCII para la misma velocidad de trasmisión. Cada mensaje tendrá que ser trasmitido en un continuo flujo de caracteres. El formato (11 Bits) para cada Byte en el modo RTU es: Codificación del sistema: 8 Bit binarios Bits por Byte:

1 Bit inicio 8 Bits de dato, el menos significativo Bit es enviado Primero 1 Bit para la complementación de paridad 1 Bit de parada

Otros modos (paridad par, impar, sin paridad) también pueden ser usados a fin de asegurar una máxima compatibilidad con otros productos. Observación: el uso de no paridad requiere dos Bits de parada. Como se transmiten los caracteres serial mente: Cada carácter es enviado en el orden de izquierda a derecha. Esto se puede apreciar en la Tabla 2.8 Del LSB al MSB Tabla 2.9-Secuencia de Bit en Modo RTU. Start

1

2 3 4 5

6

7

8

Paridad Stop

Los dispositivos pueden aceptar la configuración ya sea par, impar o sin chaqueo de paridad. Si no se implementa la paridad, un Bit adicional de parada es

75

transmitido para llenar la trama de los caracteres asíncronos de 11 Bits (Véase Tabla 2.9) Tabla 2.10-Secuencia de Bit en Modo RTU (Sin Paridad). Start

1

2 3 4 5

6

7

8

Stop Stop

Trama de descripción (Véase Tabla 2.10) Tabla 2.11Trama de Mensaje RTU. Dirección Función Datos CRC 1 byte

1 byte

0 hasta 252 bytes

2 bytes CRC Bajo CRC Alto

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

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

trama del dispositivo de transmisión que tiene un punto conocido de inicio y final. Esto permite al dispositivo que reciba una nueva trama para el inicio del mensaje y para saber cuando el mensaje es completado. Los mensajes parciales tendrán que ser detectados y los errores tendrán que ser establecidos como un resultado. En el modo RTU, las tramas de mensajes son separadas por un intervalo de tiempo silencioso al menos de 3.5 veces el carácter (Véase Figuras 2.19 y 2.20). Figura 2.18-Tiempos de la Trama RTU.

76

Figura 2.19-Trama de Mensaje RTU.

Fuente [7] La trama de mensaje entero tendrá que ser trasmitida como un flujo continuo de caracteres. Si un intervalo silencioso de más de 1.5 veces el carácter se produce entre dos caracteres (Véase Figura 2.21), la trama se declara incompleta y debe ser descartada por el receptor. Figura 2.20-Tiempos de Caracter de la Trama RTU.

Fuente [7] Chequeo del CRC: el modo RTU incluye una trama de comprobación de errores que es basada en una comprobación de redundancia cíclica (CRC), método realizado en el contenido del mensaje. La trama CRC verifica el contenido de todo el mensaje. Esto se aplica independientemente de cualquier comprobación de paridad usada para los caracteres individuales del mensaje.

77

El campo CRC contiene un valor de 16-Bit implementando como 2 Bytes de 8 Bits. La trama CRC se adjunta en el último campo mensaje. Cuando este es hecho, el Byte de orden inferior de la trama es anexado primero, seguido por el Byte de orden superior, donde el Byte de orden superior del CRC es el último Byte a ser enviado en el mensaje. El valor del CRC es calculado por el dispositivo emisor, el cual anexa el CRC al mensaje. El dispositivo receptor vuelve a calcular un CRC durante la recepción del mensaje y compara el valor calculado con el valor actual que este recibió en la trama del CRC. Si los 2 valores no son iguales, se produce un error. El cálculo del CRC es iniciada por la primera pre-carga de un registro de 16-Bit para todos los 1. Después comienza un proceso de aplicación de Bytes sucesivos de 8 Bits del mensaje para el contenido actual del registro. Solo los 8 Bits del dato en cada carácter son usados para generar el CRC. Los Bits de parada, inicio y el Bit-paridad no son aplicables al CRC. Durante la generación del CRC cada carácter de 8-Bit se le aplica una XOR con el contenido del registro. Después el resultado es desplazado en la dirección del Bit menos significativo (LSB) con ceros en la posición del Bit más significativo (MSB). El LSB es extraído y examinado. Si el LSB fue un uno (1), la XOR se lleva a cabo con un valor predeterminado, fijo. Si el LSB fue un cero (0), la XOR no se lleva a cabo. Este proceso es repetido hasta que 8 cambios hayan sido relazados. Después el último cambio (8), el siguiente Byte de 8-Bit es XOR con un valor actual del registro, y el proceso se repite durante más de ocho cambios como se describió anteriormente. El contenido final del registro, después de que todos los Bytes del mensaje han sido aplicados, es el valor del CRC. 

Modo de transmisión ASCII: Cuando los dispositivos se configuran para

comunicarse en una red Modbus según el modo ASCII, cada Byte de 8 Bits en un mensaje se envía como dos caracteres ASCII. La principal ventaja de este modo es que permite intervalos de tiempo de hasta un segundo entre caracteres sin dar

78

lugar a error. Es por ello que muchos equipos sólo soportan este modo de comunicación. Desde el punto de vista del diagnóstico, es también más simple, ya que las tramas se pueden ver directamente. Por el contrario, la gran desventaja es que las tramas tienen una longitud de aproximadamente el doble que las tramas RTU, lo cual tiene el efecto neto de reducir la velocidad de comunicación a la mitad. El modo ASCII se presta mejor para el desarrollo de drivers de comunicación mediante lenguajes de alto nivel. El formato para cada Byte en modo ASCII es (Véase Tabla 2.11):

Inicio

Dirección

1 carácter

2 caracteres

Tabla 2.12-Codificación ASCII. Función Datos 2 caracteres

hasta 2 por 252 caracteres

LRC 2 caracteres

Fin 2 caracteres CR LF

Métodos de Comprobación de Errores: la seguridad estándar de la línea serial es basada en 2 tipos de comprobación de errores.  Comprobación de Paridad (par o impar) debe ser aplicado a cada carácter.  Comprobación de trama (LRC o CRC) tiene ser aplicado a todo el mensaje. Tanto la comprobación del carácter y el mensaje son generados en el dispositivo (Maestro o Esclavo) que emite y aplica al contenido del mensaje antes de la transmisión. El dispositivo (Esclavo o Maestro) “controla” cada carácter y el mensaje entero de la trama durante la recepción. El Maestro es configurado por el usuario que espera un intervalo de tiempo predeterminado (respuesta de tiempo de espera) antes de abortar la transacción. Este intervalo se establece por un tiempo para que cualquier Esclavo responda normalmente (solicitud-unicast).Si el Esclavo detecta un error de transmisión, el error no será ejecutado sobre el mensaje y el Esclavo no construirá una respuesta al Maestro. Por lo tanto el tiempo de espera se vencerá y permitirá que el programa del Maestro maneje el error.

79



Comprobación de paridad: los usuarios pueden configurar los dispositivos

para paridad o la comprobación de paridad impar, o ninguna comprobación de paridad. Esto determinara como el Bit de paridad se establecerá en cada carácter. Si cualquier paridad o paridad impar es especificado, la cantidad de 1 Bits serán contados en la porción del dato de cada carácter (siete Bits para el modelo ASCII o ocho para el RTU). El Bit de paridad después se establecerá en 0 o 1 dando lugar a una paridad o imparidad de un Bit. La total cantidad de 1 Bit en la trama son cuatro (4). Si la paridad par es usada el Bit de paridad de la trama es un cero (0), tomando la cantidad de un Bit que sigue siendo un numero par (cuatro). Si la paridad impar es usada, el Bit-paridad será un 1, tomando una cantidad par (cinco). Cuando el mensaje es transmitido, el Bit de paridad es calculado y aplicado a la trama de cada carácter del dispositivo que recibe los contadores de la cantidad de 1 Bit y fijan un error sino son las mismas para ese dispositivo configurado. (Todos los dispositivos de la línea serial Modbus tendrá que ser configurado para usar el mismo método de comprobación de paridad). Esa comprobación de paridad solo puede detectar un error si un número impar de Bits que se recogieron o se redujo un a carácter que contiene tres Bits en 1, el resultado todavía es un recuento impar de un Bits en 1. Si la paridad de comprobación no está especificada, el Bit paridad no es transmitido y la comprobación de paridad no puede ser hecha, entonces un Bit adicional de parada es transmitido para llenar la trama del carácter. 

Comprobación de la trama: en el modo RTU, los mensajes incluyen una

comprobación de error en la trama que es basada en el método CRC. La trama del CRC

comprueba

el

contenido

entero

del

mensaje.

Esto

es

aplicado

independientemente de un método de comprobación de paridad usado para los caracteres individuales del mensaje.

80

2.8.2.3 Capa Física Modbus



General: el estándar EIA/TIA-485 también conocido como el estándar RS-

485. Este estándar permite

sistemas multipunto y punto a punto, en una

configuración de 2 hilos. Además, algunos dispositivos pueden implementar una configuración de cuatro hilos RS-485. En un sistema Modbus, un dispositivo Maestro, y uno o varios dispositivos Esclavos pueden comunicarse en una línea serial pasivo. En el sistema estándar Modbus, todos los dispositivos son conectados en un cable troncal constituido por 3 conductores. Dos de los conductores (la configuración de dos-hilos) forman un par trenzado balanceado, en donde los datos bidireccionales son trasmitidos normalmente en la velocidad de Bit de 9600bps. Cada dispositivo puede ser conectado (Véase Figura 2.23):  Directamente un cable troncal, formando una cadena tipo margarita.  En una red pasiva TAP con un cable de derivación.  En una red activa TAP con un cable especifico. 

Velocidad del dato: 9600bps y 19.2Kbps son los valores comúnmente

usados para la velocidad de comunicación, 9600 es el valor por defecto requerido.

2.8.2.4 Interfaz Eléctrica



RS-232: el RS-232C es un estándar que constituye la tercera revisión de la

antigua norma RS-232, propuesta por la EIA (Asociación de Industrias Electrónicas), este estándar se basa en una comunicación asíncrona, es decir que los datos pueden ser transmitidos en cualquier momento por lo que deben tomarse

81

precauciones para sincronizar la transmisión y recepción. Este estándar también emplea un puerto serie RS-232C, que consiste en un conector tipo DB25 de 25 pines, aunque es normal encontrar la versión de 9 pines DB9, mas barato e incluso más extendido para cierto tipo de periféricos. Todas las normas RS-232 cumplen con los siguientes niveles de voltaje:  Un “1” lógico es un voltaje comprendido entre 5V y 15V en el transmisor y entre 3V y 25V en el receptor.  Un “0” lógico es un voltaje comprendido entre +5V y +15V en el transmisor y entre +3V y +25V en el receptor. La importancia de conocer esta norma, radica en los niveles de voltaje que maneja el puerto serial ya que son diferentes a los que manejan los microcontroladores y los demás circuitos integrados. Por lo tanto se necesita de una interface que haga posible la conversión de niveles de voltaje a los estándares manejados por el RS232C.



RS-485: RS-485 (Estándar EIA-485) es una mejora sobre RS-422 ya que

incrementa el número de dispositivos que se pueden conectar (de 10 a 32) y define las características necesarias para asegurar los valores adecuados de voltaje cuando se tiene la carga máxima. Gracias a esta capacidad, es posible crear redes de dispositivos conectados a un solo puerto RS-485. Esta capacidad, y la gran inmunidad al ruido, hacen que este tipo de transmisión serial sea la elección de muchas aplicaciones industriales que necesitan dispositivos distribuidos en red conectados a una PC u otro controlador para la colección de datos, HMI, u otras operaciones. RS-485 es un conjunto que cubre RS-422, por lo que todos los dispositivos que se comunican usando RS-422 pueden ser controlados por RS-485. El hardware de RS-485 se puede utilizar en comunicaciones seriales de distancias de hasta 4000 pies de cable.

82

La interfaz RS-485 ha sido desarrollada para la transmisión en serie de datos de alta velocidad a grandes distancias. Está concebida como sistema Bus bidireccional con hasta 32 participantes. La norma RS-485 define solamente las especificaciones eléctricas para receptores y transmisores en un sistema de bus digital, pero no define o recomienda ningún protocolo de datos. Físicamente puede instalarse tanto como un sistema de 2 hilos o de 4 hilos. Dado que varios transmisores trabajan en una línea común, tiene que garantizarse con un protocolo que en todo momento esté activo, como máximo, un transmisor de datos. Los otros transmisores tienen que encontrarse en ese momento en estado de alta impedancia.  RS-485 de 2 hilos: el Bus RS-485 de 2 hilos se compone según la Figura 2.23 de un cable propio del bus con una longitud máxima de 500mts. Los participantes se conectan a este cable a través de una línea adaptadora de longitud máxima de 5 metros. La ventaja de la técnica de 2 hilos reside esencialmente en la capacidad multimaestro, en donde cualquier participante puede cambiar datos en principio con cualquier otro. El Bus de 2 hilos es básicamente apto sólo para comunicaciones Halfduplex. Puesto que sólo hay a disposición una vía de transmisión, siempre puede enviar datos un solo participante. Después de finalizar el envío, pueden responder otros participantes.

83

Figura 2.21-Topologia General de 2 Hilos.

Fuente [7] 

RS-485 de 4 hilos: la técnica de 4 hilos sólo puede ser usada por

aplicaciones Maestro/Esclavo. Según la Figura 2.24 se cablea la salida de datos del Maestro a las entradas de datos de todos los Esclavos. El Bus de 4 hilos es apto para comunicaciones FullDuplex, ya que cada dirección, recepción y transmisión, tiene su propia ruta. Figura 2.22-Topologia General de 4 Hilos.

Fuente [7]

84

3 DISEÑO E IMPLEMENTACIÓN DEL MÓDULO

En el presente capitulo se muestra el diseño de la tarjeta de adquisición de datos (DAQ) resultante, con sus respectivas características hasta su proceso de instalación. La Adquisición de Datos consiste en tomar un conjunto de variables físicas analógicas y digitales para convertirlas en tensiones eléctricas y digitalizarlas de forma que se puedan procesar en el PLC, permitiendo su monitoreo dentro del proceso. El hardware utilizado es básicamente una tarjeta de adquisición de datos utilizada como dispositivo Esclavo, el diseño tiene entradas digitales, entradas analógicas, interfaz de usuario y comunicación serial por el puerto RS485 con configuración de par trenzado bajo el protocolo de comunicación Modbus. Teniendo en cuenta esto se muestra el esquema de diseño del prototipo en la Figura 3.1. Figura 3.1-Esquema de Diseño.

85

3.1

DISPOSITIVO MAESTRO

En el punto 2.8.1 del capítulo 2 se describieron los requerimientos generales del protocolo Modbus de un dispositivo Maestro/Esclavo, donde el dispositivo Maestro es el encargado de ejecutar las acciones de solicitud hacia el dispositivo Esclavo. Un dispositivo Maestro puede ser un PC, un PLC, u otro dispositivo que solicite alguna petición al dispositivo Esclavo a través de un puerto de comunicaciones serial usando el protocolo Modbus. Para este proyecto se utilizó como dispositivo Maestro es PLC S7-200 Siemens (Véase Anexo F), que se encuentra en las instalaciones del laboratorio de Automática de la Universidad San Buenaventura Cali. Este PLC trae incluido el hardware de comunicación serial RS485 indispensable para la transmisión Modbus. Las librerías y rutinas de interrupciones pre-configuradas y diseñadas especialmente para la comunicación Modbus se instalan desde el STEP 7Micro/WIN (Software de aplicación del PLC). Las operaciones del protocolo Modbus permiten configurar el S7-200 para que actúe como Maestro o Esclavo. Las operaciones de Maestros Modbus en el PLC S7-200 actúan en modo RTU y se comunican con uno o varios Esclavos Modbus a través del puerto de comunicación de la CPU específico para dicho protocolo; en este caso es la CPU 222 con puerto de comunicación RS-485. Los parámetros básicos para configurar un dispositivo Maestro son:  Puerto serial  Velocidad de comunicación  Bit de paridad  Bit de parada  Modo RTU o ASCII  Tiempo de espera de respuesta

86

El PLC S7-200 incorpora una librería de operaciones que facilita la comunicación con los equipos Modbus. Esta librería Incorpora funciones Modbus de lecturaescritura del dispositivo Maestro en un rango de dirección específica (Véase tercera columna de la Tabla 3.1). El Esclavo debe soportar las funciones indicadas en la Tabla 3.1.

Tabla 3.1-Tipo de Modelo del Dato Leer o Función de Esclavo requeridas Dirección Modbus Escribir por el Maestro Leer Función 1 00001 a 09999 salidas Función 5 para una sola salida digitales Escribir Función 15 para varias salidas Leer Función 2 10001 a 19999 entradas digitales Escribir Imposible Leer Función 4 30001 a 39999 registros de entrada Escribir Imposible Leer Función 3 40001 a 49999 registros de Función 6 para un solo registro retención Escribir Función 16 para varios registros Fuente [9]

3.1.1 Cable de Red

Los PLC S7-200 de Siemens integran módulos de comunicación como interface Industrial-Modbus, Ethernet, entre otros. Estos módulos se incorporan dentro de la CPU 222 del S7-200 que viene con un puerto de comunicación serial RS-485 con un cable de red par trenzado con las características técnicas de la Tabla 3.2.

87

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

Descripción

Tipo de cable

Apantallado, con par trenzado

Resistencia de bucle

≤ 115 Ω/km

Capacidad efectiva

30 pF/m Aprox 135 Ω a 160 Ω (frecuencia =3 MHz a 20 MHz)

Impedancia nominal Atenuación Sección del cable

0,9 dB/100 m (frecuencia=200 KHz) alma

Diámetro del cable Fuente [9]

del 0,3 mm2 a 0,5 mm2 8 mm±0,5 mm

Los puertos de comunicación de las CPUs S7-200 son compatibles con el estándar RS-485 vía un conector DB9 conforme al estándar RS-485. La Tabla 3.3 muestra el conector que ofrece el enlace físico para el puerto de comunicación, indicándose también las asignaciones de pines de los puertos de comunicación.

Tabla 3.3-Asignación de Pines del Puerto de Comunicación del S7-200 Enchufe Nº de pin Puerto RS-485 1 Tierra 2 Hilo lógico Señal B RS-485 3 RTS (TTL) 4 5 Hilo lógico 6 5 V,100 Ω resistor en serie 7 24 V Señal A RS-485 8 Selección protocolo de 10 Bits 9 (entrada) Carcasa del enchufe Tierra Fuente [9]

88

3.2

MÓDULO ESCLAVO

Para llevar a cabo la comunicación Modbus en una red, es necesario la presencia de al menos de un Maestro Modbus. Un Esclavo Modbus puede ser un PLC, un variador de velocidad, un transmisor, un HMI o cualquier módulo que pueda comportarse como un “Esclavo” Modbus cumpliendo con los siguientes parámetros:  Dirección del Esclavo  Puerto serial a utilizar  Velocidad de comunicación  Bit de paridad  Bit de parada  Modo RTU o ASCII

El dispositivo Esclavo tiene que mantener un estado de recepción (en espera) para poder aceptar los mensajes que son enviados por el Maestro. Una vez que el Esclavo recibe la trama completa Modbus, analiza y procesa la petición enviando una respuesta al Maestro. La recepción y la transmisión de una trama Modbus debe cumplir las con las normas del protocolo.

3.2.1 Requerimientos Específicos del Módulo Esclavo

3.2.1.1 Requerimientos del Hardware

Aunque el prototipo diseñado pretende ser una herramienta con fines didácticos, los elementos y dispositivos son los mismos usados en la industria. Por esta razón

89

fue necesario determinar un hardware que se ajuste a los estándares de dispositivos industriales. Los microcontroladores son dispositivos diseñados para diversas aplicaciones, tales como para control y procesamiento de datos. Para el desarrollo de la tarjeta de adquisición de datos el microcontrolador es el encargado de la adquisición de los datos y cumple con los requerimientos del protocolo Modbus mencionados, además de esto, permite definir espacios de memoria que son de uso exclusivo del protocolo y la adquisición de datos como: puertos de entrada de las señales Análogas-Digitales y registros para la recepción y transmisión de datos. Teniendo en cuenta lo anterior el hardware se compone de 5 núcleos principales que son:  Unidad de conexión de las entradas digitales.  Unidad de conexión de las entradas análogas.  Puerto de comunicación serial.  Unidad de control y procesamiento de datos.  Interfaz de usuario (teclado y LCD).

3.2.2 Diseño del Módulo Esclavo

De acuerdo a los requerimientos del hardware mencionados anteriormente y las necesidades del laboratorio el módulo debe contar con los siguientes componentes:  8 Entradas digitales 24

.

 2 Entradas análogas 4-20mA.  Puerto de Comunicación serial RS-485.  Interfaz de Usuario

90

Las características seleccionadas para el módulo Esclavo son las que utilizan la mayoría de dispositivos de la industria, tales como trasmisores, válvulas y sensores.

3.2.2.1 Entradas Digitales

El estado de las entradas digitales debe ser detectado con la ausencia/presencia de 24

en los respectivos conectores. Para que estas señales digitales puedan

ser trasmitidas al microcontrolador, debe reducirse el voltaje a niveles TTL. En la actualidad existen diversos circuitos integrados que brinda estas características, entre ellos están los Relés y los Opto acopladores. Estos últimos tienen una gran ventaja ya que cuentan con un aislamiento galvánico que se crea entre el circuito de entrada y de salida del opto acoplador. Fundamentalmente los opto acopladores son dispositivos que están formados por una fuente emisora de luz (circuito de entrada), y un foto-sensor de silicio (circuito de salida), al no haber contacto eléctrico produce un aislamiento superior a los 10MΩ, brindando así una alta protección al microcontrolador. Acorde a esto se utilizó el opto acoplador 4N35, el cual tiene un LED emisor que necesita una corriente de entrada if = 20mA (Véase Anexo E) para emitir luz. Debido a que la entrada del LED es 24

cuando el estado de la entrada es un 1

lógico y para que su funcionamiento sea óptimo se calculó la resistencia para limitar la corriente del LED. Por lo tanto: Ec. 12 Ec. 13 Ec. 14

91

Ec. 15 Teniendo en cuenta que 1.165KΩ no es un valor comercial lo aproximamos a 1.2KΩ. Es importante tener en cuenta que la salida del circuito opto acoplador es un inversor y se debe corregir por software para saber el estado real de la entrada. En la Figura 3.2 se aprecia el circuito implementado con optoacopladores. Figura 3.2 Circuito de las Entradas Digitales con Optoacopladores.

3.2.2.2 Entradas Análogas

En la Figura 3.3 se observa que las entradas análogas reciben una señal de 420mA la cual se convierte en voltaje para el conversor Análogo-Digital(A/D), esto se logra conectando a una resistencia en paralelo a la señal de entrada para obtener un voltaje variable 1-5V, donde un 1V es el valor mínimo (4mA) y 5V el valor máximo (20mA). Teniendo en cuenta esto, la resolución del conversor Análogo-Digital se calcula mediante la fórmula: Ec. 16

92

Donde

y

son los limites superior e inferior respectivamente de los

voltajes que van a ser convertidos y

es el número de Bits del conversor A/D.

Por lo tanto: Ec. 17 Ec. 18 Lo que indica que por cada

que aumente en la entrada del conversor este

aumentara una unidad en su salida. Además se implemento un amplificador operacional como seguidor de voltaje para obtener una baja impedancia a la salida que permita tener lecturas correctas hacia el microcontrolador, ya que se recomienda tener una impedancia máxima de entrada de 10KΩ6. El operacional que se utilizo fue el LM324 debido a que tiene un bajo consumo de energía (esto aparece en el Anexo D como 'power drain'), se usa como aplicación para fuentes sencillas de alimentación y puede trabajar con voltajes desde 3V hasta 32V. Como este operacional posee perdidas, el voltaje de alimentación tiene que ser mayor que 5V. Por cuestiones de diseño el voltaje de alimentación que se tomo fue de 9V y aparte se coloca una resistencia de un 1K a la salida del operacional para limitar la corriente que llega al microcontrolador en caso de que haya un sobre voltaje.

6

Esta parte fue tomada del Anexo B Datos Técnicos del Microcontrolador PIC16F877A

93

Figura 3.3-Circuito de las Entradas Analogas

Teniendo en cuenta el rango de la señal de corriente de 4-20mA y el rango de voltaje de 1-5V del circuito operacional, entonces: Ley de ohm: Ec. 19 Ec. 20 Ec. 21 Ec. 22 Ec. 23 Donde

es el valor de resistencia para la conversión de corriente a

voltaje que se usa en las 2 entradas análogas del dispositivo. 3.2.2.3 Puerto de Comunicación RS-485

94

Para integrar este puerto de comunicación al módulo Esclavo se utilizó el integrado MAX485 (Véase Anexo C), el cual se encarga de regular los niveles de voltaje TTL del microcontrolador y los del estándar RS-485. Este integrado maneja una señal de control para la recepción y transmisión de datos. En la Tabla 3.4 se indican los posibles estados que puede tener el integrado MAX485 según las señales de control manejadas desde el microcontrolador.

Tabla 3.4 Estados de Control del Integrado MAX485. Señal de Control Estado Habilita la Recepción 0 1 Habilita la Transmisión

En la Figura 3.4 se muestra la conexión del circuito.

Figura 3.4-Puerto de Comunicación RS-485

95

El conector implementado en el módulo para este puerto de comunicaciones es un DB9 macho, el cual es compatible con el puerto serial RS-485 del PLC S7-200. (Véase Figura 3.5). Figura 3.5-Conector Macho DB-9

3.2.2.4 Interfaz de Usuario

Se implemento un Display de cristal líquido LCD de 16x2 como interfaz visual para el módulo Esclavo para observar algunos parámetros a configurar del protocolo como la dirección del dispositivo Esclavo, la velocidad de transmisión y también para visualizar los datos Análogos-Digitales localmente de la DAQ sin necesidad de tener comunicación con el PLC (Véase Figura 3.6). Para poder modificar digitalmente dichos parámetros del protocolo y seleccionar la visualización de los datos Análogos-Digitales, se implementaron 3 pulsadores que manejaban la configuración de estos. Estos pulsadores junto al LCD corresponden a la interfaz de usuario.

96

Figura 3.6-Circuito Interfaz de Usuario



Interfaz pulsadores: Se diseño un teclado con 3 pulsadores conectados a

3 pines del puerto C del microcontrolador de la siguiente manera: un extremo del pulsador está conectado en serie a la entrada del PIC y a una resistencia de 10K está conectada a VCC. El otro extremo del pulsador va conectado a tierra y a un condensador de 1nF que a su vez está conectado a la entrada del PIC (Véase Figura 3.6). El objetivo de este circuito es eliminar el rebote y filtrar el ruido ocasionado en el momento de presionar el pulsador. Cada pulsador usa lógica negativa, al presionarlo pone un 0 lógico a la entrada del microcontrolador y cuando no pone un 1 lógico.

97



Módulo LCD: la conexión del display de cristal líquido es directa con el

microcontrolador y no necesita significativas adecuaciones físicas, ya que este consta de su propio controlador, espacio de memoria y su manejo se hace por software lo cual hace más sencilla su implementación. Debido que el módulo LCD es un circuito integrado hay que garantizar que tenga conectados la alimentación, la

tierra y el contraste para su correcto

funcionamiento. El contraste LCD se maneja mediante la variación de un Trimmer conectado al pin de VEE del LCD, en la Figura 3.6 se muestra la conexión implementada.

3.2.2.5 Unidad de Procesamiento y Control

De acuerdo a los requerimientos técnicos del hardware mencionados en la sección 3.2.1.1 se escogió el microcontrolador PIC16F877A como el dispositivo programable aplicado a la adquisición de datos, implementación del protocolo Modbus y monitoreo de las entradas (digitales-análogas) porque posee varias características (Véase Anexo B) que hacen a este microcontrolador un dispositivo muy versátil, eficiente y práctico para utilizarse en estas aplicaciones. Algunas de las características importantes de este microcontrolador, son:  Puerto de comunicación serial (USART).  Bajo consumo 2mA para 5V.  CPU tipo RISC (conjunto de instrucciones reducidas).  Puertos de entrada/salida.  Un conversor análogo/digital de 10-Bit. 

Memoria de programa de 8Kx14 Bits.

 Capacidad de Almacenamiento en su memoria EEPROM.

98

El esquema básico diseñado y la asignación de pines al microcontrolador que corresponde a la especificación de la DAQ se muestran en la Figura 3.7 y la Tabla 3.5. Tabla 3.5-Asignación de Pines # Pin 1

Nombre MCLR

Función RESET

2

RA0

ENTRADA ANÁLOGA 0

3

RA1

ENTRADA ANÁLOGA 1

4

RA2

VREF+= 5V

5

RA3

VREF-= 1V

6

RA4

7

RA5

8

RE0

9

RE1

10

RE2

11

Vdd

5 VDC

12

Vss

GND

13

OSC1/CLK

CRISTAL

14

OSC1/CLK

CRISTAL

15

RC0

BOTÓN UP

16

RC1

BOTÓN DOWN

17

RC2/CCP1

BOTÓN OK

18

RC3/SCK

19

RD0/PSP0

CONTROL LCD E

20

RD1/PSP1

CONTROL LCD RS

21

RD2/PSP2

CONTROL LCD RW

22

RD3/PSP3

23

RC4/SD1

24

RC5/SD0

25

RC6/Tx

CONTROL MAX485 DE/RE

RO MAX485

99

26

RC7/RX

DI MAX485

27

RD4/PSP4

DATOS LCD D4

28

RD5/PSP5

DATOS LCD D5

29

RD6/PSP6

DATOS LCD D6

30

RD7/PSP7

DATOS LCD D7

31

Vss

5 VDC

32

Vdd

GND

33

RBO/INT

ENTRADA DIGITAL 1

34

RB1

ENTRADA DIGITAL 2

35

RB2

ENTRADA DIGITAL 3

36

RB3

ENTRADA DIGITAL 4

37

RB4

ENTRADA DIGITAL 5

38

RB5

ENTRADA DIGITAL 6

39

RB6/PGC

ENTRADA DIGITAL 7

40

RB7/PGD

ENTRADA DIGITAL 8

100

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

101

3.2.2.6 Fuente de Alimentación Dado que se requiere un diseño más óptimo y sencillo del dispositivo se opto por usar un adaptador de voltaje comercial, para no diseñar una fuente interna en el dispositivo lo cual lo hace más grande. El adaptador de voltaje tiene las siguientes características:  Voltaje de entrada: 100-240

~50/60Hz

 Voltaje de salida: 9  Corriente de salida: Max. 600mA El dispositivo Esclavo tiene un consumo de corriente de 50mA y visto ya las características del adaptador se afirma que tiene la suficiente potencia para alimentar el dispositivo Esclavo.

3.2.3 Evaluación de costos Conociendo el hardware y teniendo en cuenta que el prototipo esclavo fue pensado como una alternativa económica, se realizo un estimativo en dinero de lo que puede llagar a costar la producción o replica de este dispositivo en su implementación final, en la Tabla 3.6 se observa los costos en dinero del equipo. Tabla 3.6 Costos de Implementación Cantidad Descripcion Costo Unitario Costo total 1 Microcontrolador PIC 16F877A $18.000 $18.000 1 Base de 40 pines $ 200 $200 8 Opto acopladores 4N35 $ 700 $5.600 8 Resistencias de 1.2K $ 50 $400 8 Resistencias de 1K $ 40 $320 8 Bases de 6 pines $ 200 $1.600 9 Borneras de Montaje $ 400 $3.600 9 Borneras de Caja $ 300 $2.700 1 Circuito integrado LM324 $ 1.500 $1.500 2 Resistencias de 250 ohm $ 50 $100

102

2 1 3 3 1 2 3 3 3 13 1 1 2 1 1 1 2 1 2 1 1 1 1

Resistencias de 1000 ohm Base de 14 pines Borneras de Montaje Borneras de Caja Modulo LCD 16x2 Trimmer 10k Pulsadores N.A Capacitores de 1nF Resistencias de 10M Borneras de Montaje Puerto hembra DB9 Cable serial RS-485 Capacitores de 1uF Cristal de 4Mhz Circuito Integrado MAX -485 Base de 8 pines Borneras de Montaje RS-485 Regulador de Voltaje de 5v Bornera de Montaje Bornera de Caja Caja Circuito Impreso Adaptador 9V

$ 50 $ 200 $ 400 $ 300 $21.000 $ 500 $500 $ 20 $50 $ 400 $ 500 $3.000 $ 25 $500 $ 6.000 $200 $ 500 $ 1.000 $ 500 $ 300 $ 30.000 $ 20.000 $ 16.000 TOTAL

$100 $200 $1.200 $900 $21.000 $1.000 $1.500 $60 $150 $5.200 $500 $3.000 $50 $500 $6.000 $200 $1.000 $1.000 $1.000 $300 $30.000 $20.000 $16.000 $144.880

Con la anterior información mostrada se demuestra que la implementación de este proyecto es más económica que la adquisición de un equipo similar en el mercado, cabe anotar que en estos costos no está tomado en cuenta los valores asociados con la parte de diseño (mano de obra) ya que este es un proyecto tipo académico, que inicialmente no fue pensado para la comercialización.

103

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

El diseño del software del microcontrolador fue realizado sobre la herramienta de programación PIC C Compiler de la firma CCS (Custom Computer Services) de acuerdo a los requerimientos técnicos exigidos por la implementación del hardware para el Sistema de Adquisición y Procesamiento de Datos (Análogosdigitales). El PIC C Compiler permite que la implementación del Software de este proyecto sea desarrollada bajo el lenguaje de programación C; haciendo la programación muy flexible y manejando una estructura sencilla y apropiada para esta aplicación. El software se diseñó de modo que el módulo Esclavo pueda comunicarse con el PLC de acuerdo a las características del protocolo Modbus a través del puerto serie RS-485. Para la implementación del software se definen algunos parámetros necesarios para la comunicación Modbus entre dispositivos Maestro-Esclavo tal como muestran en la Tabla 4.1. El módulo desarrollado funciona como dispositivo Esclavo y el PLC Siemens S7-200 como Maestro. Tabla 4.1-Parámetros de la DAQ Modbus-RS-485 Interfaz de comunicación Dirección de Esclavo

1-8

Modo de transmisión

Halfduplex-RTU

Velocidad

1200/2400/4800/9600/19200

Paridad

Ninguna

Número de entradas digitales

8

Número de entradas análogas

2

104

4.1

REQUERIMIENTOS DEL SOFTWARE

El módulo de adquisición de datos Análogo-Digital funciona como dispositivo Esclavo y se comunica mediante protocolo Modbus con el PLC, para esta tarjeta de adquisición se diseñó un Software que cumpla con tres requerimientos básicos: 1. Adquisición de datos: 

Adquisición de las señales análogas y procesamiento de datos.



Adquisición de las señales digitales y procesamiento de datos.

2. Comunicación serial bajo el protocolo de Comunicación Modbus.

3. Interfaz usuario para el módulo Esclavo.

4.2



Manejo y comunicación con el LCD.



Lectura de pulsadores y procesamiento de datos.

DESARROLLO DEL SOFTWARE DEL MICROCONTROLADOR

El Software en el microcontrolador del módulo Esclavo se implementó para ejecutar simultáneamente tareas específicas que están dentro del programa principal, estas tareas se encargan de ejecutar las funciones planteadas en los requerimientos del Software que son necesarias en la aplicación de este proyecto. De acuerdo a que la comunicación serial Modbus se maneja por interrupciones, el programa siempre tiene prioridad sobre el sistema de comunicación serial en el dispositivo Esclavo, por esta razón se diseñó un programa que pueda ejecutar la comunicación

Modbus

y

las

demás

concurrentemente.

105

funciones

del

dispositivo

Esclavo

4.3

ESTRUCTURA DEL PROGRAMA PRINCIPAL

El diseño del software se compone de una estructura principal la cual contiene 6 rutinas. Cada una de estas rutinas realiza una tarea diferente que se ejecuta de acuerdo a los requerimientos de Software mencionados del módulo Esclavo (Véase Figura 4.1). Inicialmente tenemos la rutina de inicialización en la cual se lleva a cabo la inicialización de variables, espacio de memoria y configuración de las librerías; esta rutina solo se ejecuta una vez en el programa principal. Después sigue la rutina Configuración del Módulo Esclavo que usa la información que se suministra a través de la interfaz de usuario con los pulsadores y configura los parámetros del dispositivo Esclavo. A partir de aquí se inicia un ciclo infinito en el programa principal. Seguidamente está la rutina Interfaz de Pulsadores la cual tiene la función de recibir, procesar, ejecutar la información de interfaz de usuario a través del teclado (pulsadores). A continuación está la rutina de adquisición de datos la cual sirve para leer los datos de entrada Análogos-Digitales del sistema, cuyos datos son adecuados en un formato real y didáctico para que cuando exista una solicitud estén listos para ser enviados. La interfaz LCD es la de visualización de las pantallas en el LCD para que el usuario pueda configurar el dispositivo y monitorear los datos localmente. Por último se consulta el registro de recepción serial, si no hay ninguna interrupción serial el programa principal salta hasta “la rutina Configuración módulo Esclavo” y continua por las demás rutinas siguientes hasta volver a consultar el

106

registro de recepción serial quedándose en un ciclo infinito hasta que ocurra la interrupción serial, en caso que la interrupción ocurra se ejecuta la rutina Modbus en la cual se recibe la solicitud modbus, se procesa y se envía una respuesta de acuerdo a la solicitud, una vez la rutina se haya ejecutado el programa principal regresa a “la rutina Configuración del módulo Esclavo” creando otro ciclo de programa infinito.

Figura 4.1-Diagrama de Flujo Rutina General.

4.3.1 Inicializaciones

107

Esta rutina solo se ejecuta cada vez que se energiza el módulo, en esta misma se lleva a cabo tareas tales como configurar puertos de Entradas-Salidas, configuración del puerto serial (velocidad, modo de comunicación), configuración de contadores, interrupciones y espacios de memoria (Véase Figura 4.2).

Figura 4.2-Diagrama de Flujo Rutina Inicializaciones

 Configuración de espacios de memoria y registros

108

En esta subrutina se lleva a cabo la configuración e inicialización de los registros y espacios de memorias los cuales son usados en las rutinas del programa principal en la Tabla 4.2 se encuentra las variables utilizadas Tabla 4.2-Variables de Programa Variable Función input_regs[2] Variable tipo chart en la cual se almacena el valor de las 2 señales análogas una vez se haya hecho la adecuación, para después ser utilizada en la solicitud Modbus. inputs

Variable tipo int8 la cual almacena el estado real de las 8 entadas digitales una vez se le haya hecho la adecuación, para después ser utilizada en la solicitud Modbus.

Menu

Variable indica en que menú se encuentra la interfaz de usuario Variable indica que opción se apunta con el cursor en cualquier menú que se encuentre en la interfaz de usuario

Opción

OpciónActivada MODBUS_ADDRESS

Variable que indica cuando una opción es seleccionada para ser modificada Parámetro que se le ingresa a la librería modbus para determinar la dirección del esclavo

MODBUS_SERIAL_BAUD Parámetro que se le ingresa a la librería modbus para determinar la velocidad del esclavo Dirección Esclavo

Variable que se modifica para configurar la dirección del esclavo mediante la interfaz de usuario, el rango es de 1-8

Velocidad Esclavo[4]

Variable tipo chart que se modifica para configurar la velocidad de transmisión del Esclavo mediante la interfaz de usuario, los valores de velocidad son [1200-2400-4800-9600-19200bps]

109

 Inicialización librería Modbus Rutina que permite la inicialización y configuración de la librería Modbus (Modbus.C)7, aquí se definen algunos parámetros para el funcionamiento de esta librería dentro del software del módulo Esclavo: 

Modo de trasmisión “RTU”.



Tipo de Modbus “Esclavo”.



Tamaño del búfer “64 Bytes”.

 Pin de control “E1”, pin transmisión “C6” y pin de recepción “C7”.  Interrupción serial externa. Para la asignación de estos parámetros es importante leer la documentación incluida para la librería Modbus.C.

 Inicialización librería LCD En esta se lleva a cabo la inicialización y configuración de la librería para el manejo del LCD (LCD.C)8, donde se define un parámetro para el funcionamiento esta librería: 

Puerto D para el envió de los datos y control del LCD

 Inicialización ADC puertos y reloj En esta subrutina se configuran los pines A1 y A2 para las entradas análogas, los pines A3 y A4 se definen para la referencia positiva y negativa 7

Esta es la librería usada para el manejo del protocolo Modbus y viene incluida en el compilador (PIC C Compiler). 8 Esta es la librería usada para el manejo del LCD y viene incluida en el compilador (PIC C Compiler).

110

respectivamente, adicionalmente se configura el reloj para la conversión de los datos análogos. (Véase Tabla 3.5)  Inicialización de puertos de entrada. Rutina para la configuración de puertos, se asigna el puerto B como entrada para las 8 entradas digitales y se definen los pines C0, C1 y C2 como entradas a la interfaz del teclado. (Véase Tabla 3.5)

4.3.2 Configuración Módulo Esclavo

En esta rutina se modifican parámetros del programa según la información suministrada mediante la interfaz de usuario, se configura dos parámetros: La dirección del Esclavo y la velocidad de transmisión. (Véase Figuera 4.3) Figura 4.3-Diagrama de Flujo Rutina Configuración del Modulo Esclavo

111

4.3.3 Interfaz Pantalla LCD

En esta rutina se lleva a cabo la impresión de diferentes pantallas o menús en el LCD. Para determinar que pantalla debe ser impresa se consulta el estado de tres variables Menú, Opción y OpcionActivada (Véase Figura 4.4), el estado de estas variables es modificado en la interfaz de pulsadores.

112

Figura 4.4Diagrama de Flujo Rutina Interfaz LCD

113

114

4.3.4 Interfaz Pulsadores

La rutina de interfaz de pulsadores es la que ejecuta las funciones de la interfaz de usuario cuando un pulsador es presionado (Véase Figura 4.5), estas funciones se hacen mediante tres subrutinas las cuales son:  Función Up  Función Down  Función Ok

Figura 4.5-Diagrama de Flujo Rutina Interfaz Pulsadores

115

4.3.4.1 Función Up

Esta subrutina sirve para desplazar la flecha de selección entra las opciones que hay en cada menú que se visualiza en el LCD, además permite modificar los parámetros de configuración del Esclavo ascendentemente, esto se hace mediante la consulta y modificación del estado de tres variables cada vez que se llama la subrutina Función Up: Menú, Opción y OpcionActivada. Dependiendo del estado estas se ejecuta una acción o se modifica el estado de una o varias de estas variables (Véase Figura 4.6)

116

Figura 4.6-Diagrama de Flujo Subrutina Función Up

117

118

4.3.4.2 Función Down

Esta subrutina sirve para desplazar la flecha de selección entra las opciones que hay en cada menú que se visualiza en el LCD, además permite modificar los parámetros de configuración del Esclavo descendentemente, esto se hace mediante la consulta y modificación del estado de tres variables cada vez que se llama la subrutina Función Down: Menú, Opción y OpcionActivada. Dependiendo del estado estas se ejecuta una acción o se modifica el estado de una o varias de estas variables (Véase Figura 4.7).

119

Figura 4.7-Diagrama de Flujo Subrutina Función Down

120

4.3.4.3 Función Ok

Esta subrutina sirve para ingresar a un menú en especifico, para entrar y salir de una opción a modificar (parámetros de configuración) y retroceder a un menú anterior. Esto se hace mediante la consulta y modificación del estado de tres variables cada vez que se llama la subrutina Función Ok: Menú, Opción y OpcionActivada. Dependiendo el estado de las variables se ejecuta una acción o se modifica el estado de una o varias de estas variables (Véase Figura 4.8).

121

Figura 4.8-Diagrama de Flujo Subrutina Función Ok

122

4.3.5 Adquisición de Datos

En este bloque se llevan a cabo las tareas de adquirir los datos de entrada provenientes de la planta o del sistema que se requiere monitorear y se almacenan en variables para ser usados en una solicitud Modbus. (Véase Figura 4.9). Figura 4.9-Diagrama de Flujo Rutina Adquisición de Datos.

123

 Entradas digitales Se hace una Lectura de todo el puerto B donde se encuentran las 8 entradas digitales, luego se Almacenan los datos en una variable.  Adecuación de entradas digitales En la sección 3.2.2.4 se mencionó que las entradas digitales son negadas, para mantener el nivel original se hizo una adecuación por software la cual consiste en hacer una XOR entre la variable que almacena los datos digitales y el numero FFh para así negar las entradas y mostrar su valor real.  Análoga 1 Se selecciona el canal uno del conversor análogo, se lee el dato de ese canal y se almacena en una variable.  Adecuación de entradas análoga 1 Por motivos didácticos se decidió que las entradas análogas fueran escaladas en porcentajes 0-100%, se hizo una adecuación por software la cual consiste en calcular el valor de la pendiente entre el valor real de la codificación y el valor de escalamiento (Véase la Ec.24). Luego de calcular este valor se multiplica por el dato análogo almacenado en la variable para hacer el escalamiento en porcentaje. La pendiente es definida como: Ec. 24 Ec. 25 Ec. 26 Ec. 27 Ec. 28

124

 Análoga 2 Se selecciona el canal dos del conversor análogo, se lee el dato de ese canal y se almacena el dato en una variable.  Adecuación de entradas análoga 2 La adecuación presentada para la análoga 1 también aplica para la análoga 2.

4.3.6 Modbus

Cada vez que haya una interrupción serial se ejecuta esta rutina que es la encargada de armar la trama con los datos recibidos serialmente y analizar su validez, además responde a la solicitud requerida y prepara los datos para construir una trama de respuesta que es enviada al Maestro Modbus. (Véase Figura 4.10)

125

Figura 4.10-Diagrama de Flujo Rutina Modbus

126



Calculo del CRC Se calcula el CRC de la trama recibida y se compara con el CRC recibido para verificar si la trama es válida, si no lo es se genera una respuesta en excepción.



Dirección Modbus Se consulta si la dirección Modbus que se encuentra en la trama coincide con la dirección del Esclavo la cual ha sido previamente asignada, en caso de que no sean iguales se asume que la trama no es para este Esclavo y se descarta.



Funciones Se consulta en la trama recibida qué función se debe realizar, que en este caso solo pueden ser la función 2 y la función 4



Respuesta en excepción Se envía una respuesta al Maestro en caso de alguna inconsistencia por que la trama no es válida y/o función no soportada.

4.3.6.1 Códigos de Función Modbus

Para poder usar el hardware del módulo por medio del protocolo Modbus es preciso establecer una relación entre las funciones y las entradas del módulo, dado que este es un dispositivo de solo entradas análogas-digitales se utilizaron dos funciones del protocolo Modbus que se detallaran a continuación. 

Función 02(0x02) Lectura de Entradas Digitales: Esta función captura la

información del estado de entradas de datos discretos, cada entrada necesita un

127

espacio de memoria de un Bit, el cual representara los estados ON (activa) u OFF (apagada). La lectura del estado de una entrada digital por medio de esta función se lleva a cabo leyendo el Bit de la correspondiente entrada digital. Para mejorar el rendimiento se ha decidido implementar un registro que permita conocer el estado de las 8 entradas digitales por medio de esta función, de esta forma, de una sola petición se adquiere información de todo el estado de todas las entradas digitales. En la Figura 4.11 se detalla el software de la función. Figura 4.11-Diagrama de Flujo Subrutina Leer Entradas Digitales

128



Se consulta si el número de entradas solicitados está entre el rango de las entras del dispositivo Esclavo.



Se verifica la dirección de registro y el número de registro de las entradas digitales a leer.



Procesamiento de la solicitud Modbus Se lleva cabo la el cumplimiento de la función 02 y se verifica que no hubo ningún error al procesar la solicitud



Envió de respuesta En la construcción de la respuesta Modbus se preparan los Bytes de información a ser enviados como respuesta y se calcula el CRC de estos datos para finalmente enviar una respuesta al Maestro.



Respuesta en excepción Se realiza una respuesta en excepción en caso:  Si el número de entradas solicitados no está entre el rango de las entras del dispositivo Esclavo.  Si la dirección de registro y el número de registro de las entradas análogas a leer no están correctos.  Si hubo error al procesar la solicitud.



Función 4(0x04) lectura de entradas análogas: La función 04 es una

función para la adquisición de datos de entrada pero se diferencia de la función 02 en que los datos se registran de 16 Bits en lugar de 1 Bit. Por medio de esta función se lee el valor que hay en las entradas análogas del módulo, cuya variación de 1 a 5

se digitaliza con valores discretos entre 0 a

1023, puesto que el ADC es de 10 Bits. Luego se escalan de 0-100%. En la Figura 4.12 se describen las subrutinas de la función.

129

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

 Se consulta si el número de entradas solicitados está entre el rango de las entras del dispositivo Esclavo.  Se verifica la dirección de registro y el número de registro de las entradas análogas a leer.

130

 Procesamiento de la solicitud Modbus Se lleva cabo la el cumplimiento de la función 04 y Se verifica que no hubo ningún error al procesar la solicitud 

Envió de respuesta En la construcción de la respuesta Modbus se preparan los Bytes de información a ser enviados como respuesta y se calcula el CRC de estos datos para finalmente enviar una respuesta al Maestro.

 Respuesta en excepción Se realiza una respuesta en excepción en caso:  Si el número de entradas solicitados no está entre el rango de las entras del dispositivo Esclavo.  Si la dirección de registro y el número de registro de las entradas análogas a leer no están correctos.  Si hubo error al procesar la solicitud.

131

5 PRUEBAS Y RESULTADOS

En este capítulo se describen las pruebas realizadas para verificar el correcto funcionamiento del módulo Esclavo una vez terminada su construcción.

5.1

SOFTWARE UTILIZADO PARA LAS PRUEBAS

Para poder establecer una comunicación Modbus entre el dispositivo Esclavo y el PLC S7-200 es necesario instalar en el PC primero el Software del PLC STEP 7Micro/WIN y después la librería Modbus de instrucciones para el STEP 7Micro/WIN. STEP 7-Micro/WIN de Siemens es el Software o plataforma de trabajo que además permite configurar el PLC S7-200 como un Maestro Modbus. Cuenta con la capacidad de poder monitorear la comunicación Modbus, los datos solicitados y los errores que se puedan presentar en la solicitud. Para poder hacer el monitoreo es necesario que el STEP 7-Micro/WIN tenga comunicación constante con el PLC; esta comunicación debe hacerse utilizando cualquier medio serial(PPI, Profibus, OPC, etc.) excepto el puerto 0 del PLC puesto que este es usado para la comunicación Modbus. Para hacer estas pruebas se decidió hacer el monitoreo por comunicación Ethernet TCP/IP porque es de fácil configuración tanto en el PLC como en el PC. En la siguiente Figura 5.1 se observa el sistema implementado para las pruebas.

132

Figura 5.1-Sistema Para Las Pruebas

Para empezar, la librería de operación para el protocolo RTU Modbus están disponibles dentro de la carpeta “Librerías” del árbol de operaciones del STEP 7Micro/WIN"(Véase Figura 5.2). El requerimiento para utilizar esta librería de funciones de Modbus es disponer del STEP 7-Micro/WIN a partir de la versión V3.2. Para la comunicación Modbus se utilizan los módulos de la librería Modbus: "MBUS_CTRL" y "MBUS_MSG" para la parte del Maestro, las Tablas 5.1 y 5.2 describen el significado y las posibilidades de selección de los parámetros de estos módulos.

133

Figura 5.2-Árbol de Operaciones

Fuente [9]

134

Tabla 5.1Parámetros de la Operación MBUS_CTRL Parámetros Significado EN Mode Baud

Liberación Indicación del protocol Velocidad de transmisión en kBit/s

Parity

Paridad

Timeout

Tiempo máximo para la respuesta del Esclavo en ms

Done Error

Aviso de finalización Código de error

Posibilidades de selección 0 = PPI, 1 = MODBUS 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 0 = Ninguna, 1 = impar, 2 = par

Véase Tabla 2.7

Tabla 5.2-Parámetros de la operación MBUS_MSG Parámetro Significado Posibilidades de selección EN Liberación First Activación Slave Dirección del Esclavo RW "lectura" o "escritura" 0 = lectura, 1 = escritura Addr 0 -128 = Salidas digitales Dirección de inicio en Mobdus 1001-10128 = Entradas digitales 30001-30092 = Entradas analógicas 40001-49999 = Registros 2 Count

DataPtr Done Error Fuente [9

Número de Bits (0xxxx, 1xxxx) / Palabras (3xxxx, 4xxxx) Puntero al inicio de la memoria de variables Aviso de finalización Código de error

135

Véase Tabla 2.7

Para el monitoreo de los datos se emplea la herramienta Status Chart que viene incluida en el STEP 7-Micro/WIN. Esta herramienta permite ver los registro de memoria donde son almacenados los datos que se quieren monitorear, los datos pueden ser representados en formatos tales como: decimal, hexadecimal, binario y ASCII. En la Figura 5.3 se explica la conformación del status chart. Figura 5.3-Ventana Status Chart

 Address= Dirección de la variable que se quiere monitorear.  Format= Formato que se representa el valor de la variable monitoreada: Signed, Unsigned, Hexadecimal, Binary, FLoat y ASCII.  Current Value= Valor actual de la variable monitoreada.

5.2

CONFIGURACIÓN DE LOS MÓDULOS MBUS_CTRL Y MBUS_MSG

Para realizar las pruebas se configuro la librería Modbus de la siguiente manera:

136

5.2.1 MBUS_CTRL

La operación MBUS_CTRL para el puerto 0 del S7-200 sirve para inicializar, vigilar o desactivar la comunicación Modbus. MBUS_CTRL se debe ejecutar sin errores antes de poder utilizar la operación MBUS_MSG. La operación se finaliza y el Bit Done se pone a 1 inmediatamente, antes de continuar con la siguiente operación. (Véase Figura 5.4) Figura 5.4-Moduló MBUS_CTRL

Esta operación se ejecuta en cada ciclo cuando está activada la entrada EN. La operación MBUS_CTRL se debe llamar en cada ciclo (incluyendo el primero) para que ésta pueda vigilar el progreso de los mensajes pendientes iniciados por la operación MBUS_MSG. El protocolo de Maestros Modbus no funcionará correctamente si no se llama a la operación MBUS_CTRL en cada ciclo. (Véase Anexo F) Configuración:  Con "Mode"=1 se configura el Puerto 0 como Modbus

137

 "Baud=9600" es la velocidad recomendada para el protocolo modbus  "Parity=0" el dispositivo Esclavo funciona sin paridad  Un "Timeout=1000" es suficiente tiempo para esperar una respuesta del Esclavo  "Done=M0.0" y "Error=MB1" esta son las variables donde se almacena cuando

la

rutina

ha

finalizado

y/o

algún

error

ha

ocurrido.

Cabe destacar que algunas pruebas realizadas para el correcto funcionamiento del dispositivo esclavo fueron realizadas con intervalos de tiempo de hasta dos horas de funcionamiento continuo para comprobar la estabilidad del equipo en el tiempo. Estas pruebas de estabilidad arrojaron resultados satisfactorias para confiabilidad del equipo.

5.2.2 MBUS_MSG

La operación MBUS_MSG sirve para iniciar una petición a un Esclavo Modbus y procesar la respuesta. La operación MBUS_MSG inicia una petición a un Esclavo Modbus si están activadas las entradas EN y First. Para enviar la petición, esperar la respuesta y procesarla se requieren generalmente varios ciclos del programa del PLC. La entrada EN debe estar puesta a 1 para poder enviar una petición, debiendo permanecer activada hasta que se active el Bit Done. (Véase Figura 5.5)

138

Figura 5.5-Moduló MBUS_MSG

Nota: Sólo puede estar activada una operación MBUS_MSG a la vez. Si hay más de una operación MBUS_MSG activada, se procesará la primera MBUS_MSG ejecutada y todas las demás operaciones MBUS_MSG se cancelarán con el código de error 6. Si hay una nueva petición que se deba enviar el parámetro First debe estar activado durante un ciclo. La entrada First se debe activar cuando se detecte un flanco positivo, haciendo que la petición se transmita una vez. El parámetro Slave es la dirección del Esclavo Modbus. El rango permitido está comprendido entre 0 y 247. La dirección 0 se usa como dirección de broadcast (difusión general), pudiendo utilizarse sólo para peticiones de escritura. No hay respuesta a una petición de broadcast a la dirección 0. No todos los Esclavos soportan la dirección de broadcast. El parámetro "EN=1" habilita esta rutina. Configuración:  El parámetro "EN=1" habilita esta rutina.  El parámetro "First=0/1" inicia el envió de una trama modbus.

139

 La ID Slave=1 es la dirección que tiene el módulo Esclavo la cuales tiene que coincidir con la del Esclavo.  El "RW"=1 señala que la función a ejecutarse es solo de lectura.  El puntero "DataPtr=VB10" representa el comienzo de la memoria de variables a leer. Hay que tener mucho cuidado al escoger el puntero por que puede solaparse con algún registro que utiliza la librería Modbus.  Este parámetro "Addr" = "xxxxx" (Función que se desea probar) indica la dirección de la función que se desea solicitar.  El parámetro "Count" le indica a Addr el número de palabras que se desea leer.

5.3

COMPROBACIÓN

DE

LA

FUNCIÓN

02(LECTURA

DE

ENTRADA

DIGITAL) Y DE COMUNICACIÓN CON El PLC

Para verificar que hay comunicación Modbus entre el PLC y la tarjeta de adquisición de datos se utiliza la función 02 que permite leer entradas digitales. En la Figura 5.6 se observa la ventana del Status Chart la variable MB2 en la cual se guardan los errores, encontrándose en 0 al hacer la prueba (Véase Tabla 2.7Códigos de Error de Ejecución del Protocolo Modbus en el Esclavos) lo que indica que hay comunicación sin errores entre los dos dispositivos. Para comprobar la función 02 y las entradas digitales reales se hicieron tres pruebas: La primera consiste en probar todas la entradas digitales al mismo tiempo (Véase Figura 5.6) Para iniciar la prueba en el rutina MBUS_MSG se coloca el parámetro Addr=10001 indicando que se va a solicitar la función 02 empezando desde la primera entrada y el parámetro Count =8 para leer las siguientes 8 entradas digitales contiguas.

140

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

141

En la ventana del Status Chart se aprecia la variable VB10 con un valor actual en binario de 11111111 lo que indica que todas las entradas digitales están activadas con presencia física de 24

sin errores de comunicación o fuera de rango en la

solicitud. En la segunda prueba se activan la mitad de las entradas digitales y la otra mitad están desactivadas (Véase Figura 5.7).

142

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

143

En la ventana del Status Chart se aprecia la variable VB10 con un valor actual en binario de 00001111 lo que indica que la mitad de las entradas digitales están activadas con presencia física de 24

sin errores de comunicación o fuera de

rango en la solicitud. Y en la última prueba se apagan todas las entradas digitales y como se puede ver en la Figura 5.8 no hay ningún tipo de error y el estado real de las entradas es 0000000b.

144

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

145

5.4

COMPROBACIÓN

DE

LA

FUNCIÓN

04(LECTURA

DE

ENTRADA

ANÁLOGA)

Para comprobar la función 04 y las entradas análogas físicamente se hicieron tres pruebas: La primera consiste en probar las 2 entradas análogas al 100% de la señal (20mA) (Véase Figura 5.9). Para iniciar la prueba, el módulo MBUS_MSG se configura con el parámetro Addr=30001 indicando que se va a solicitar la función 04, empezando desde la primera entrada y el parámetro Count =2 para leer las 2 entradas análogas seguidamente.

146

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

147

El puntero de donde se empiezan a guardar los datos está en la variable VB10, dado que la información es de 16 Bits, los datos se almacena en las variables contiguas VW10 y VW12. VB10 corresponde a la parte alta de la palabra VW10. En la ventana del Status Chart se aprecia la variable con un valor actual en decimal de 100 cada una, lo que indica que la señal de las entradas análogas está al máximo valor con una presencia física de 20mA, sin errores de comunicación o fuera de rango en la solicitud. La segunda prueba se hace con la mitad de la señal de las entradas análogas (Véase Figura 5.10).

148

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

149

En la ventana del Status Chart se aprecia la variable VW10 y VW12 con un valor actual en decimal de 50 lo que indica que la señal de las entradas análogas está con presencia física de 12mA y sin errores de comunicación o fuera de rango en la solicitud. En la última prueba se envía el valor mínimo de las entradas análogas (4mA). Como se puede ver en la Figura 5.11 no hay ningún tipo de error y el estado real de las entradas es 0d con una presencia física de 4mA.

150

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

151

5.5

COMPROBACIÓN DE CAMBIO DE VELOCIDAD

Debido a que el dispositivo Esclavo tiene la capacidad de cambiar la velocidad de transmisión se realizaron pruebas de comunicación en las cuales se cambia la misma velocidad en ambos dispositivos. El dispositivo Esclavo tiene la capacidad de cambiar su velocidad entre estos rangos: 1200, 2400, 4800, 9600 y 19200 bps. La prueba se hizo en todos los rangos mencionados logrando comunicación exitosa, pero gráficamente se mostrarán los casos extremos (máxima y mínima velocidad). En el primer caso la velocidad se cambia parámetro baud=1200bps como se observar en la Figura 5.12. Se consigue tener una comunicación exitosa entre los dos dispositivos como se observa en la Figura 5.12 la variable MB2=0 sin errores.

152

Figura 5.12-Comprobación de Cambio de Velocidad 1200

En el segundo caso la velocidad en el parámetro baud=19200bps se configura como se observa en la Figura 5.13, siendo esta la velocidad más alta del dispositivo Esclavo. Se consigue tener una comunicación exitosa entre los dos dispositivos como se observa en la Figura 5.13 la variable MB2=0 sin errores.

153

Figura 5.13-Comprobación de Cambio de Velocidad 19200

154

5.6

PRUEBA DE CAMBIO DE DIRECCIÓN DEL ESCLAVO

En las pruebas anteriores la dirección del Esclavo fue 1, en esta prueba se cambio a 8 en los dos dispositivos como se observa en la Figura 5.14, el parámetro Slave fue cambiado y la variable MB2 continúa en 0 sin errores

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

155

5.7

COMPROBACIÓN DE ERRORES

Si se presenta alguna falla en la comunicación o el monitoreo de los datos se presentan errores; por esta razón se realizaron pruebas forzando errores en el sistema implementado (Véase Figura 5.1) para probar los mensajes de excepción. Las pruebas realizadas son las siguientes:  Vencimiento del Timeout de recepción.  Solicitud no soportada.  Dirección de datos no soportada Función 02  Dirección de datos no soportada Función 04

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

Este error ocurre cuando no se ha recibido una respuesta del Esclavo dentro del tiempo indicado en Timeout, el cual está configurado con 1000ms. Ello puede deberse a:  Una conexión eléctrica defectuosa con el Esclavo  Que los ajustes del Maestro y del Esclavo son diferentes (velocidad de transferencia y/o paridad)  Una dirección incorrecta del Esclavo.

156

Figura 5.15-Vencimiento del Timeout de Recepción-1

En la prueba, el parámetro Baud del módulo MBUS_CTRL en el Maestro fue cambiado a 19200 (Véase Figura 5.15) y el en Esclavo la velocidad de trasmisión se mantuvo en 9600bps, forzando así un error de disparidad de velocidad lo cual no permite comunicación entre los dos dispositivos causando que el Maestro envié la solicitud sin obtener una respuesta hasta que el Timeout expire y genere el error MB2=3.

157

Figura 5.16-Vencimiento del Timeout de Recepción-2

Inmediatamente se generó el mismo error cambiando la dirección del Esclavo en la solicitud del Maestro (Slave=2), la cual no coincide con la dirección del dispositivo Esclavo ID=1 causando que nunca exista una respuesta por parte de este generando así el error MB=2 Timeout expirado (Véase Figura 5.15)

158

5.7.2 Función No Soportada (Error 101)

Este error sucede cuando el Esclavo no soporta la función solicitada en esta dirección. Para forzar el error se solicitó una función que el Esclavo no soporta Addr=40001(Lectura de Registro de Retención), generando así el error MB2=101 (Véase Figura 5.17). Figura 5.17-Función No Soportada

159

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

El Esclavo no soporta la dirección de los datos. El rango de direcciones de la función solicitada de Addr más Count está fuera del rango de direcciones permitido para el Esclavo. Para forzar este error en la función 02 el parámetro Addr se configuró una dirección de inicio errónea 10009 puesto que el dispositivo Esclavo tiene un rango de dirección de los datos digitales de 10001-10008, se genera el envió de un código de excepción en respuesta indicando el error MB2=102 (Véase Figura 5.18).

160

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

Otra forma que pueda ocurrir este error es si el parámetro Count es configurado fuera de rango Count=9 puesto que el dispositivo Esclavo solo tiene 8 entradas digitales causando el envió de un código de excepción en respuesta indicando el error MB2=102 (Véase Figura 5.19).

161

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

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

El Esclavo no soporta la dirección de los datos. El rango de direcciones de la función solicitada de Addr más Count está fuera del rango de direcciones permitido para el Esclavo. 162

Para forzar este error en la función 04 el parámetro Addr se configuró una dirección de inicio errónea 30009 puesto que el dispositivo Esclavo tiene un rango de dirección de los datos análogos de 30001-30002 se genera el envió de un código de excepción en respuesta indicando el error MB2=102 (Véase Figura 5.20). Figura 5.20-Dirección de Datos No Soportada Función 04-a

163

Otra manera de forzar este error es si el parámetro Count es Configurado fuera de rango Count=9 puesto que el dispositivo Esclavo solo tiene 2 entradas análogas esto causa el envió de un código de excepción en respuesta indicando el error MB2=102 (Véase Figura 5.21). Figura 5.21-Dirección de Datos No Soportada Función 04-b

164

6 CONCLUSIONES Y RECOMENDACIONES

6.1

CONCLUSIONES

 Dadas las características del diseño del módulo de adquisición de datos con comunicación Modbus este sirve como herramienta didáctica dentro del laboratorio de automatización de ingeniería electrónica, para el desarrollo de nuevas aplicaciones con PLC’s Siemens y comunicaciones industriales tales como sistemas de adquisición de datos industriales, domótica, edificios inteligentes, en aplicaciones de supervisión, control de variables, como módulo de expansión para puertos en PLC, etcétera, brindándole al estudiante una perspectiva más amplia en el área de las comunicaciones industriales y la adquisición remota de datos.  Los módulos similares en el mercado que son fabricados por grandes empresas y tienen costos elevados no se compara con el prototipo implementado el cual cuenta con elementos de costo moderado y fácil adquisición, fácil de duplicar y podría ser usado para distintas aplicaciones didácticas. Por lo cual este proyecto se convierte en una opción económica para el desarrollo de aplicaciones de distinto ámbito.  Modbus es un bus de campo que flexibiliza la expansión de nuevos transmisores o actuadores en un sistema ya instalado, también permite la reducción masiva de cables y costos asociados. Su frecuente aplicación en la industria colombiana y de la región hace que sea importante tenerlo en cuenta para estudiar su estructura y campo de aplicación.  En la implementación de la tarjeta adquisición de datos se opto por un Display LCD como modo de visualización para la configuración del 165

dispositivo Esclavo como velocidades de trasmisión y dirección del Esclavo. Además la interfaz permite el monitoreo de las variables durante la comunicación Modbus con el fin de efectuar la supervisión del estado actual de las entradas análogas-digitales del dispositivo Esclavo localmente.  Durante las pruebas de comunicación serial se comprobaron la información de los datos de las tramas recibidas y enviadas tales como; los códigos de excepción, la no recepción de una respuesta, la configuración de diferentes velocidades de trasmisión y dirección de Esclavo. El resultado de estas pruebas fue el eficiente funcionamiento del dispositivo Esclavo tanto para los datos de adquisición como para las condiciones que el protocolo Modbus exige.

6.2

RECOMENDACIONES  Para este tipo de proyecto que realicen funciones como manejo de protocolos de comunicación y adquisición de datos, es preferible utilizar un leguaje de programación de nivel alto para implementar estas aplicaciones. se recomienda usar compiladores para microcontroladores PIC que trabajan con lenguaje C como: PICC DE HI-TECH, CCS PIC C Compiler los cuales cuentan con librerías e instrucciones que facilitan la implementación de un sistema como este.  Se recomienda configurar correctamente el Módulo de la librería modbus MBUS_MSG del Step Microwin del PLC S7-200 los parámetros Count y Addr para evitar errores por mala configuración de direccionamiento de datos.  Se aconseja configurar correctamente

el Módulo de la librería modbus

MBUS_MSG del Step Microwin del PLC S7-200 el parámetro Slave y el

166

parámetro baud de la librería modbus MBUS_CTRL para evitar errores al no recibir respuesta en la comunicación.  Finalmente, se recomienda leer el Manual de Usuario de este equipo para su óptima utilización y correcto funcionamiento, además de revisar la teoría acerca del Protocolo Modbus, poniendo énfasis en las Funciones y Tramas.

167

7 BIBLIOGRAFÍA

[1] B&B Electronics Mfg. RS-485 remote I/O solutions. [En línea], ,[citado el 26 de octubre 20010]

[2]MODBUS.ORG.

DGH

Corporation.

[En

línea]

, [citado el 23 de octubre de 20010]

[3]

MODICON.

Bus,

Networks

&

Communication

[en

línea].[citado el 14 de octubre de 2010]

[4]CREUSS, ANTONIO. Instrumentación y control industrial. Cuarta edición. Editorial Marcombo. México, 1992.

[5]Corrales Luis. Interfaces de Comunicación Industrial, Almería (España) ,2004.

[6]AUTONOMAS.ORG.

Protocolo

Modbus.

[En

línea],,[citado el 22 de octubre 2010]

[7]MODBUS.ORG. Guía Protocolo Modbus. [En línea] [citado en 10 de Julio de 2010]

[8]MODBUS.ORG.

Guía

Protocolo

Modbus.

[En

línea]

[citado en 22 de Julio de 2010]

168

[9]Siemens Automation. Empresa fabricante de PLC S7-200 [En línea] [citado en 12 de Octubre de 2010]

[10]MICROCHIP. Fabricante de microcontroladores PIC [En línea] característica técnicas sobre PIC16f877a

[11]WIKIPEDIA.ORG.

Teoría

Amplificadores

Operacionales.

[En

línea]

[citado en 28 Septiembre de 2010]

[12]IFENT.ORG.

Teoría

Amplificadores

Operacionales.



[En [citado

línea] en

15

Febrero de 201]

[13]AUTOMATAS.ORG.

Buses

de

Campo.

[En

línea]

[citado en 30 de Agosto de 2010]

[14]IFENT.ORG.

Módulo

LCD

[En

línea]

[citado en 15 Febrero de 201]

169

170

8 ANEXOS

171

Anexo A-Manual de Usuario

172

ÍNDICE

INTRODUCCIÓN

175

1. DESCRIPCIÓN DEL EQUIPO

175

1.1.

CARACTERÍSTICAS

175

1.2.

COMPONTES DEL DISPOSITIVO

176

1.2.1.

177

Descripción de los Componentes del Bloque Central

1.3.

CONEXIONES

178

1.4.

PREPARACIÓN PARA LA OPERACIÓN DEL DISPOSITIVO

179

2. OPERACIÓN DEL DISPOSITIVO 2.1.MENÚ

186 CONFIGURACIÓN 186

2.1.1.

Configuracion de Velocidad

187

2.1.2.

Configuracion de Dereccion del Esclavo

188

2.2.MENÚ

DATOS

I/0 189

3. MANTENIMIENTO Y PRECAUCIONES 3.1.

PRECAUCIONES DE OPERACIÓN

173

190 190

174

INTRODUCCIÓN

El módulo de adquisición de datos DAQ es un dispositivo portátil que sirve como interfaz remota para la adquisición de datos para el PLC S7-200. La DAQ se comunica con el PLC mediante el protocolo Modbus RS485.Este dispositivo tiene la capacidades de adquirir de señales Análogas-Digitales, monitorear localmente los datos y ser configurado para la comunicación Modbus.

1. DESCRIPCIÓN DEL EQUIPO

1.1. CARACTERÍSTICAS

El modulo de adquisición de datos cuanta con las siguientes características:  Adquisición de señales digitales de 0-24v ópticamente aisladas.  Adquisición y conversión de señales análogas de 4-20mA.  Comunicación con PLC S7-200 mediante el bus de campo Modbus  Puerto serial RS485  Compatibilidad con cables de 2 hilos  Capacidad de reajustar parámetros de configuración de la comunicación Modbus a través de la interfaz de usuario.  Sin comprobación de paridad  Interfaz de usuario para el monitoreo local de los datos.  Adaptador de alimentación externo 110-240V.

175

1.2. COMPONTES DEL DISPOSITIVO

El dispositivo esclavo se compone de un bloque central en el cual internamente se encuentra toda la circuitería, la unidad procesamiento y la interfaz de comunicación. En este bloque está conformado por la interfaz de usuario (LCD y teclado), conector DB9 para la interfaz de comunicación RS485. Cuenta con 8 terminales de conexión para las entradas digitales, 2 terminales para las entradas análogas y un LED piloto indicando cuando se efectúa la una comunicación Modbus. Figura 1.1-Vista Frontal Superior

176

Figura 1.2-Vista Lateral Superior

Figura 1.3-Vista latera derecha

1.2.1. Descripción de los Componentes del Bloque Central

En la en la imágenes anteriores se observaron la diferentes vista del dispositivo. DB9.

Terminal para la comunicación Modbus RS-485

AN1

Terminal para la señal Análoga uno.

AN2

Terminal para la señal Análoga dos.

GND

Tierra Análogas

177

COM

Común 24V

D0-D7

Terminal para las 8 señales digitales.

Tx/Rx

LED indicador de transmisión.

Vin

Terminal para la fuente de alimentación externa.

Tecla de selección de una opción o parámetro.

Tecla de selección de una opción o parámetro.

Ent

Tecla para seleccionar o modificar opción.

1.3. CONEXIONES

Para asegurar un correcto funcionamiento hay que conectar la fuente de alimentación externa al dispositivo para energizarlo y conectar el cable serial al dispositivo esclavo mediante el puerto DB9 y el otro extremo al puerto 0 del PLC (Véase Figura. 1.4)

178

Figura 1.4-Sistema de Conexión

1.4. PREPARACIÓN PARA LA OPERACIÓN DEL DISPOSITIVO

Antes comenzar a utilizar el dispositivo esclavo, previamente hay que configurar el dispositivo maestro PLC S7-200 Siemens como maestro Modbus ya que si no existe al menos un maestreo en una red Modbus nunca habrá comunicación serial. Para poder establecer comunicación Modbus entre el dispositivo Esclavo y el PLC S7-200 es necesario instalar en el PC primero el Software del PLC STEP 7Micro/WIN y después la librería Modbus de instrucciones para el STEP 7Micro/WIN. STEP 7-Micro/WIN de Siemens es el Software o plataforma de trabajo que además permite configurar el PLC S7-200 como un Maestro Modbus. Cuenta con la capacidad de poder monitorear la comunicación Modbus, los datos solicitados y los errores que se puedan presentar en la solicitud. Para poder hacer el monitoreo

179

es necesario que el STEP 7-Micro/WIN tenga comunicación constante con el PLC; esta comunicación debe hacerse utilizando cualquier medio serial (PPI, Profibus, OPC, etc.) excepto el puerto 0 del PLC puesto que este es usado para la comunicación Modbus. Para fines didácticos se decidió hacer el monitoreo por comunicación Ethernet TCP/IP porque es de fácil configuración tanto en el PLC como en el PC. El requerimiento para utilizar la librería de funciones Modbus es instalar el STEP 7-Micro/WIN a partir de la versión V3.2. Después de haber instalado exitosamente existirá un grupo de iconos correspondientes en el árbol de operaciones del STEP -Micro/WIN donde para la comunicación Modbus se utilizan los siguientes módulos de la librería: "MBUS_CTRL" y "MBUS_MSG", tal como se muestran en la figura:

Figura 1.5-Árbol de Operaciones

180

El diseño del software que se implementa en STEP 7-Micro/WIN permite configurar al PLC S7-200 como maestro y monitorear los datos solicitados y los errores que se puedan presentar en la solicitud de datos del dispositivo maestro hacia la tarjeta DAQ durante la comunicación Modbus A continuación se presenta la explicación de los módulos de la librería Modbus y la configuración recomendada para establecer una comunicación Modbus.

 Función del MBUS_CTRL: La operación MBUS_CTRL para el puerto 0 del S7-200 sirve para inicializar, vigilar o desactivar la comunicación Modbus. MBUS_CTRL se debe ejecutar sin errores antes de poder utilizar la operación MBUS_MSG. La operación se finaliza y el Bit Done se pone a 1 inmediatamente, antes de continuar con la siguiente operación. Esta operación se ejecuta en cada ciclo cuando está activada la entrada EN. La operación MBUS_CTRL se debe llamar en cada ciclo (incluyendo el primero) para que ésta pueda vigilar el progreso de los mensajes pendientes iniciados por la operación MBUS_MSG. El protocolo de maestros Modbus no funcionará correctamente si no se llama a la operación MBUS_CTRL en cada ciclo. Figura 1.6-Modulo MBUS_CTRL

181

Configuración del modulo CTRL:  Con "Mode"=1 se configura el Puerto 0 como Modbus  "Baud=9600" es la velocidad recomendada para el protocolo modbus  "Parity=0" el dispositivo esclavo funciona sin paridad  Un "Timeout=1000" es suficiente tiempo para esperar una respuesta del esclavo  "Done=M0.0" y "Error=MB1" esta son las variables donde se almacena cuando la rutina ha finalizado y/o algún error ha ocurrido  Función del MBUS_MSG: La operación MBUS_MSG sirve para iniciar una petición a un esclavo Modbus y procesar la respuesta. La operación MBUS_MSG inicia una petición a un esclavo Modbus si están activadas las entradas EN y First. Para enviar la petición, esperar la respuesta y procesarla se requieren generalmente varios ciclos del programa del PLC. La entrada EN debe estar puesta a 1 para poder enviar una petición, debiendo permanecer activada hasta que se active el Bit Done. Nota: Sólo puede estar activada una operación MBUS_MSG a la vez. Si hay más de una operación MBUS_MSG activada, se procesará la primera MBUS_MSG ejecutada y todas las demás operaciones MBUS_MSG se cancelarán con el código de error 6. Si hay una nueva petición que se deba enviar el parámetro First debe estar activado durante un ciclo. La entrada First se debe activar cuando se detecte un flanco positivo, haciendo que la petición se transmita una vez. El parámetro Slave es la dirección del esclavo Modbus. El rango permitido está comprendido entre 0 y 247. La dirección 0 se usa como dirección de broadcast (difusión general), pudiendo utilizarse sólo para peticiones de escritura. No hay respuesta a una

182

petición de broadcast a la dirección 0. No todos los esclavos soportan la dirección de broadcast. El parámetro "EN=1" habilita esta rutina. Figura 1.7-Modulo MBUS_MSG

Configuración del modulo MSG:  El parámetro "EN=1" habilita esta rutina.  El parámetro "First=0/1" inicia el envió de una trama modbus.  La ID Slave=1 es la dirección que tiene el módulo esclavo la cuales tiene que coincidir con la del esclavo.  El "RW"=1 señala que la función a ejecutarse es solo de lectura.  El puntero "DataPtr=VB10" representa el comienzo de la memoria de variables a leer. Hay que tener mucho cuidado al escoger el puntero por que puede solaparse con algún registro que utiliza la librería Modbus.  Este parámetro "Addr" = "xxxxx" (Función que se desea probar) indica la dirección de la función que se desea solicitar.  El parámetro "Count" le indica a Addr el número de palabras que se desea leer.

183

El software se puede implementar teniendo en cuenta las configuraciones anteriormente mencionado se pueden apreciar en la siguiente figura.

184

Figura 1.8-Software para PLC S7-200

185

2. OPERACIÓN DEL DISPOSITIVO

Una vez cumplido los pasos de la sección 1.3 -1.4 en la pantalla aparecerá el Menú Principal del moduló esclavo. En el menú principal se encuentran dos opciones para seleccionar, Configuración y Datos I/O, las cuales permiten acceder a submenús para la configuración del dispositivo esclavo y el monitoreo de los datos Digitales-Análogos (Véase figura).

2.1. MENÚ CONFIGURACIÓN

Por defecto los parámetros de comunicación del dispositivo están preconfigurados de la siguiente manera:  

ID=1 VEL=9600

Para empezar la operación del dispositivo esclavo hay que configurar los parámetros de comunicación, de tal manera que coincidan con los parámetros implementados en el Maestro, para así poder establecer comunicación. Inicialmente en la pantalla principal se visualiza el indicador apuntando a la opción Configuración. Por defecto el indicador [>] se encuentra en modo de desplazamiento, lo cual indica al usuario que puede desplazarse por las diferentes opciones presionado las teclas

y

. Para acceder al Submenú de

Configuración se oprime la tecla Ent. Una vez presionada, el menú principal cambia al submenú Configuración tal como se muestra en la figura siguiente.

186

En este submenú se encuentra dos parámetros para configurar: ID dirección del esclavo que se quiere asignar y VEL velocidad de transmisión del dispositivo.

2.1.1. Configuracion de Velocidad

La Velocidad de Transmisión Serial se cambia seleccionando el parámetro VEL en la pantalla, luego se pulsa la tecla Ent para seleccionar una de las 4 opciones de velocidad [1200-2400-4800-9600-19200]. Cuando el indicador cambie de posición apuntando hacia el parámetro [
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF