Anda di halaman 1dari 273

DISEO E IMPLEMENTACIN DE UN MDULO DE ADQUISICIN REMOTA

DE DATOS PARA PLCS MEDIANTE EL ESTNDAR DE COMUNICACIN


MODBUS.

ARLEY FERNANDO MURILLO MOSQUERA


GLEN ALAN MARTNEZ CARABAL

UNIVERSIDAD DE SAN BUENAVENTURA CALI


FACULTAD DE INGENIERA
PROGRAMA DE INGENIERA ELECTRNICA
SANTIAGO DE CALI
2011

DISEO E IMPLEMENTACIN DE UN MDULO DE ADQUISICIN REMOTA


DE DATOS PARA PLCS MEDIANTE EL ESTNDAR DE COMUNICACIN
MODBUS.

ARLEY FERNANDO MURILLO MOSQUERA


GLEN ALAN MARTNEZ CARABAL

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

UNIVERSIDAD DE SAN BUENAVENTURA CALI


FACULTAD DE INGENIERA
PROGRAMA DE INGENIERA ELECTRNICA
SANTIAGO DE CALI
2011

Este trabajo de grado, en la modalidad de


Proyecto de investigacin, es aceptado como uno
de los

requisitos para obtener el ttulo de

Ingeniero Electrnico en la Universidad de San


Buenaventura Cali.

____________________________________
Ing. EDGAR ANTONIO GIRALDO OROZCO

________________________________________________
Ing. CARLOS MAURICIO BETANCURT

_______________________________________________
Ing. ANDRS ERAZO

Santiago de Cali, 03 de Junio del 2011

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


poder culminar una etapa ms de mi vida, adems al Ingeniero Edgar
Orozco por su colaboracin y gua para la realizacin de este proyecto
de grado.
Este libro se lo dedico a mis padres, por ser ellos los culpables de que
este logro se haya concretado, mis ms sinceros agradecimientos,
gracias por contar con Uds. despus de todas la adversidades, este
logro se obtuvo gracias a la confianza brindada por Uds. Muchas
gracias.
Arley Fernando Murillo Mosquera

TABLA DE CONTENIDO

DESCRIPCIN

DEL

PROYECTO

CARACTERSTICAS

Generales
1.1

FORMULACIN DEL PROBLEMA

25

1.2

JUSTIFICACIN

25

1.3

OBJETIVOS

27

1.3.1

Objetivo General

27

1.3.2

Objetivo Especficos

27

1.4

25

DESCRIPCIN DEL DOCUMENTO

MARCO TERICO.

27

29

2.1

ANTECEDENTES

29

2.2

PLC (Programable Logic Controller)

30

2.2.1

31

Funciones Bsica de un PLC

2.3

MICROCONTROLADORES

32

2.4

AMPLIFICADORES OPERACIONALES

33

2.4.1

35

Tipos de Configuracin

2.5

MDULO LCD

38

2.6

SISTEMAS DE ADQUISICIN DE DATOS

40

2.6.1

Elementos de un Sistema de Adquisicin de Datos

42

2.7

COMUNICACIONES SERIALES

45

2.8

PROTOCOLOS DE COMUNICACIN

47

2.8.1

48

Modbus

2.8.2

DISEO E IMPLEMENTACIN DEL MDULO


3.1

3.2

85
86

DISPOSITIVO MAESTRO

3.1.1

52

Descripcin General

87

Cable de Red

89

MDULO ESCLAVO

3.2.1

Requerimientos Especficos del Mdulo Esclavo

89

3.2.2

Diseo del Mdulo Esclavo

90

3.2.3

Evaluacion de Costos

90

DISEO E IMPLEMENTACIN DEL SOFTWARE DEL MDULO


104

4.1

REQUERIMIENTOS DEL SOFTWARE

105

4.2

DESARROLLO DEL SOFTWARE DEL MICROCONTROLADOR

105

4.3

ESTRUCTURA DEL PROGRAMA PRINCIPAL

106

4.3.1

Inicializaciones

107

4.3.2

Configuracin Mdulo Esclavo

111

4.3.3

Interfaz Pantalla LCD

112

4.3.4

Interfaz Pulsadores

115

4.3.5

Adquisicin de Datos

123

4.3.6

Modbus

125

PRUEBAS Y RESULTADOS
5.1

132

SOFTWARE UTILIZADO PARA LAS PRUEBAS

132

5.2

CONFIGURACIN DE LOS MDULOS MBUS_CTRL y MBUS_MSG

136

5.2.1

MBUS_CTRL

137

5.2.2

MBUS_MSG

138

5.3

COMPROBACIN DE LA FUNCIN 02(LECTURA DE ENTRADA DIGITAL) Y


140

DE COMUNICACIN CON El PLC


5.4

COMPROBACIN DE LA FUNCIN 04(LECTURA DE ENTRADA ANLOGA)


146

5.5

COMPROBACIN DE CAMBIO DE VELOCIDAD

152

5.6

PRUEBA DE CAMBIO DE DIRECCIN DEL ESCLAVO

155

5.7

COMPROBACIN DE ERRORES

156

5.7.1

Vencimiento del Timeout de Recepcin (Error 03)

156

5.7.2

Funcin No Soportada (Error 101)

159

5.7.3

Direccin de Datos No Soportada (Error 102 Funcin 02)

160

5.7.4

Direccin de Datos No Soportada (Error 102 Funcin 04)

162

CONCLUSIONES Y RECOMENDACIONES

165

6.1

CONCLUSIONES

165

6.2

RECOMENDACIONES

166

BIBLIOGRAFA

168

ANEXOS

171

10

11

LISTA DE FIGURAS

Figura 2.1-Smbolo del amplificador operacional

34

Figura 2.2-Circuito Esquemtico del Amplificador No inversor

35

Figura 2.3-Circuito Esquemtico del Amplificador Inversor

36

Figura 2.4-Circuito Esquemtico del Amplificador Diferencial

37

Figura 2.5-Circuito Esquemtico del Amplificador Seguidor de Voltaje


38
Figura 2.6-Modulo LCD

39

Figura 2.8-Filtro Antialising

42

Figura 2.9-Sistema de Adquisicin de Datos Anlogos.

43

Figura 2.10-Trama de las Comunicaciones Seriales.

46

Figura 2.11-Comunicacin General del Modbus.

50

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

51

Figura 2.13-Trama General del Modbus.

52

Figura 2.14-Transaccin del Modbus (libre de error).

54

Figura 2.15-Transaccin del Modbus (Respuesta en Excepcin)

55

Figura 2.16-Diagrama de Flujo de la Transaccin del Modbus.

59

Figura 2.17-Modo Unicast.

73

Figura 2.18-Modo Broadcast.

74

Figura 2.19-Tiempos de la Trama RTU.

76

Figura 2.20-Trama de Mensaje RTU.

77

Figura 2.21-Tiempos de Caracter de la Trama RTU.

77

12

Figura 2.22-Topologia General de 2 Hilos.

84

Figura 2.23-Topologia General de 4 Hilos.

84

Figura 3.1-Esquema de Diseo.

85

Figura 3.2 Circuito de las Entradas Digitales con Optoacopladores. 92


Figura 3.3-Circuito de las Entradas Digitales

94

Figura 3.4-Puerto de Comunicacin RS-485

95

Figura 3.5-Conector Macho DB-9

96

Figura 3.6-Circuito Interfaz de Usuario

97

Figura 3.7-Circuito Esquemtico General de la DAQ.

101

Figura 4.1-Diagrama de Flujo Rutina General.

107

Figura 4.2-Diagrama de Flujo Rutina Inicializaciones

108

Figura 4.3-Diagrama de Flujo Rutina Configuracin del Modulo


Esclavo

111

Figura 4.4Diagrama de Flujo Rutina Interfaz LCD

113

Figura 4.5-Diagrama de Flujo Rutina Interfaz Pulsadores

115

Figura 4.6-Diagrama de Flujo Subrutina Funcin Up

117

Figura 4.7-Diagrama de Flujo Subrutina Funcin Down

120

Figura 4.8-Diagrama de Flujo Subrutina Funcin Ok

122

Figura 4.9-Diagrama de Flujo Rutina Adquisicin de Datos.

123

Figura 4.10-Diagrama de Flujo Rutina Modbus

126

Figura 4.11-Diagrama de Flujo Subrutina Leer Entradas Digitales

128

Figura 4.12-Diagrama de Flujo Subrutina Leer Entradas Anlogas 130

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-Comprobacin de la Funcin 02-a

141

Figura 5.7-Comprobacin de la Funcin 02-b

143

Figura 5.8-Comprobacin de la Funcin 02-c

145

Figura 5.9-Comprobacin de la Funcin 04-a

147

Figura 5.10-Comprobacin de la Funcin 04-b

149

Figura 5.11-Comprobacin de la Funcin 04-c

151

Figura 5.12-Comprobacin de Cambio de Velocidad 1200

153

Figura 5.13-Comprobacin de Cambio de Velocidad 19200

154

Figura 5.14-Prueba de Cambio de Direccin del Esclavo

155

Figura 5.15-Vencimiento del Timeout de Recepcin-1

157

Figura 5.16-Vencimiento del Timeout de Recepcin-2

158

Figura 5.17-Funcin No Soportada

159

Figura 5.18-Direccin de datos no soportada funcin 02-a

161

Figura 5.19-Direccin de Datos No Soportada Funcin 02-b

162

Figura 5.20-Direccin de Datos No Soportada Funcin 04-a

163

Figura 5.21-Direccin de Datos No Soportada Funcin 04-b

164

14

15

LISTA DE TABLAS

Tabla 2.1-Referencias y Precios.

29

Tabla 2.2-Asignacin de pines del LCD

40

Tabla 2.3-Modelo del Dato Modbus

57

Tabla 2.4-Categora del Cdigo de Funcin del Modbus.

63

Tabla 2.5-Definicin de Cdigo de Funcin Pblico.

64

Tabla 2.6-Envi de Funcin 04

67

Tabla 2.7-Envi de Funcin 04

69

Tabla 2.8-Cdigos de Error de Ejecucin del Protocolo Modbus en el


Esclavo.

71

Tabla 2.9-Secuencia de Bit en Modo RTU.

75

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

76

Tabla 2.11Trama de Mensaje RTU.

76

Tabla 2.12-Codificacin ASCII.

79

Tabla 3.1-Tipo de Modelo del Dato

87

Tabla 3.2-Datos Tcnicos Generales de un Cable de Red.

88

Tabla 3.3-Asignacin de Pines del Puerto de Comunicacin del S7-200


88
Tabla 3.4 Estados de Control del Integrado MAX485.

95

Tabla 3.5-Asignacin de Pines

99

Tabla 3.5-Costos de Implementacin

99

16

Tabla 4.1-Parmetros de la DAQ

104

Tabla 4.2-Variables de Programa

109

Tabla 5.1Parmetros de la Operacin MBUS_CTRL

135

Tabla 5.2-Parmetros de la operacin MBUS_MSG

135

17

18

LISTA DE ANEXOS
Anexo A-Manual de Usuario

172

Anexo B-Datos Tcnicos del Microcontrolador PIC16F877A

191

Anexo C-Datos Tcnicos del Circuito Integrado MAX485

228

Anexo D-Datos tcnicos del Circuito Integrado LM324

237

Anexo E-Datos tcnicos del Circuito Integrado 4N35

246

Anexo F-Datos tcnicos del PLC (Manejo de la Librera Modbus)

259

19

20

GLOSARIO

ALIASING: es el efecto que causa que seales continuas distintas se tornen


indistinguibles cuando se les muestrea digitalmente.

AO: amplificadores operacionales son dispositivos electrnicos que ofrecen


mltiples aplicaciones en el procesamiento de seales elctricas, los cuales
modifican la magnitud y/o fase de estas.

DAQ: es el mdulo de digitalizacin o tarjeta de Adquisicin de Datos.

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

EIA/TIA-422:(anteriormente RS-422) es un protocolo de comunicacin de datos


serial que describe comunicaciones 4-wire, full-duplex, lnea diferencial y multidrop. Suministra transmisin de datos balanceada con lneas de transmisin
unidirecional/no reversible, terminadas o no terminadas. Al contrario de RS-485
(que es multi-point en vez de multi-drop), EIA-422 no permite mltiples drivers
solamente mltiples receivers.

EIA-485 (antes RS-485 o RS485) es Modelo de OSI capa fsica elctrico


especificacin de dos alambre, half-duplex, de mltiples puntos conexin serial.

21

OPC: (OLE for Process Control) es un estndar de comunicacin en el campo del


control y supervisin de procesos. Este estndar permite que diferentes fuentes de
datos enven datos a un mismo servidor OPC, al que a su vez podrn conectarse
diferentes programas compatibles con dicho estndar.

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


RISC fabricados por Microchip Technology Inc.

PLC:(Programable logic controller), es un equipo electrnico, programable en


lenguaje no informtico, diseado para controlar en tiempo real y en ambiente de
tipo industrial, procesos secuenciales.

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


mecanismo de transporte de datos confiable entre mquinas y permitiendo
interoperabilidad entre diversas plataformas.

22

RESUMEN

El objetivo de este proyecto es disear e implementar un mdulo de adquisicin


remota de datos para PLCs mediante el estndar de comunicacin Modbus para
el laboratorio de automatizacin de la Universidad de San Buenaventura Seccional
Cali. Se realiz un estudio de investigacin aplicativo, basado en las
generalidades del estndar Modbus, la adquisicin de datos, las comunicaciones
seriales

y los

diferentes

componentes que

fueron

necesarios

para

la

implementacin.
Como resultado de la investigacin, se plante un diseo del hardware compuesto
de una tarjeta de adquisicin de datos utilizada como dispositivo Esclavo. El
diseo tiene una Unidad de procesamiento (Microcontrolador), 8 entradas digitales
pticamente aisladas, 2 entradas analgicas, interfaz de usuario (LCD y Teclado)
y comunicacin serial por el puerto RS485 con configuracin de par trenzado bajo
el protocolo de comunicacin Modbus. El diseo del software del microcontrolador
fue realizado sobre la herramienta de programacin PIC C Compiler de la firma
CCS (Custom Computer Services), el cual hizo la programacin muy flexible,
manejando una estructura sencilla y apropiada para esta aplicacin. El software se
implemento de acuerdo a los requisitos del protocolo Modbus y los requerimientos
tcnicos exigidos por la implementacin del hardware para el Sistema de
Adquisicin, Procesamiento de Datos (Anlogos-digitales) y la Interfaz de Usuario.
Se realizaron pruebas de comunicacin Modbus y adquisicin de datos al mdulo
Esclavo una vez terminada su construccin, verificando as la bsqueda de fallas
de diseo y de operacin para el mejoramiento del correcto funcionamiento del
dispositivo.
El proyecto demostr que es posible disear y construir mdulos de comunicacin
Modbus con tecnologa propia.

23

INTRODUCCIN

El diseo del mdulo de comunicaciones Esclavo Modbus, se implementa


considerando la necesidad de mejorar las aplicaciones prcticas del laboratorio de
Ingeniera Electrnica con respecto al aprendizaje del rea Industrial de la
Universidad San Buenaventura Cali. La opcin por optar en conseguir este mdulo
de comunicaciones es crtica, ya que Los requerimientos tcnicos son bastante
amplios e incluso los costos son altamente elevados y por eso la solucin
planteada es el diseo e implementacin de una interfaz prototipo (tarjeta), que
tenga opciones de acceso a dispositivos industriales mediante entradas digitales y
analgicas, donde la comunicacin con el controlador se hace por el puerto serial
RS485, con configuracin de 2 hilos, con protocolo Modbus.
Para determinar el prototipo a trabajar en este proyecto se presentara una
investigacin especfica del protocolo Modbus como eje, desde su forma de
comunicacin hasta su manera de funcionamiento. Este protocolo debe cumplir
ciertas condiciones de comunicacin de tipo especifico como por ejemplo, su
velocidad de transmisin y recepcin, su hasta su modo bsico de transmisin
serial Halfduplex.
Adicionalmente al tratarse esto, el hardware y el software debern disearse de tal
forma que soporte estas condiciones fsicas eficientemente, donde el hardware
permitir el desarrollo del software para la adquisicin de datos AnlogosDigitales, el control y comunicacin.

24

1 DESCRIPCIN

DEL

PROYECTO

CARACTERSTICAS

GENERALES

1.1

FORMULACIN DEL PROBLEMA

En la industria de automatizacin con Programmable Logic Controllers (PLC) se


utiliza la adquisicin de datos remota mediante mdulos con bus de campo; este
tipo de buses flexibiliza la expansin de nuevos transmisores o actuadores en un
sistema ya instalado, tambin permite la reduccin masiva de cables y costos
asociados. Modbus es un bus de campo y su frecuente aplicacin en la industria
colombiana y de la regin hace que sea importante tenerlo en cuenta para estudiar
su estructura y campo de aplicacin.
La Universidad de San Buenaventura Seccional Cali, cuenta con PLCs, los cuales
tienen incorporado la comunicacin por bus de campo con el estndar Modbus,
pero sus ventajas, caractersticas y las diversas aplicaciones que se pueden
implementar en l, no son utilizadas en gran parte debido a que no cuenta con
mdulos que realicen la interfaz con comunicacin Modbus entre los sistemas de
medida o de salida y el PLC, y as permitir cobijar en su totalidad las
caractersticas del puerto de comunicacin Modbus.

1.2

JUSTIFICACIN

En la actualidad el Protocolo Modbus, es un bus de campo muy usado en la regin


y en el mundo debido a su simplicidad y especificacin abierta, permitiendo llevar
a cabo proyectos de gran complejidad y obtener un funcionamiento fiable,
facilitando as un mayor rango de aplicaciones que son implementadas por el
sector privado, pblico y acadmico, por estas razones muchos dispositivos
25

utilizan la comunicacin Modbus tales como PLC, Human Machine Interface


(HMI)1, sensores y actuadores remotos.
Adems el Modbus tiene la ventaja que puede alcanzar distancias muy largas con
un buen aislamiento a las perturbaciones y conectar mltiples dispositivos a la red,
dando significativas ventajas en el sector industrial. Este atributo con que cuenta el
Modbus se debe a su capa fsica RS-485 que define sus niveles de voltaje y la
cantidad de dispositivos que se pueden conectar en una misma red. Con lo
anterior mencionado la comunicacin Modbus en el mbito didctico permite
implementar mltiples aplicaciones como comunicacin con interfaces hombre
mquina, comunicacin con sensores y actuadores entre otras, dndole al
estudiante una perspectiva ms amplia respecto a las comunicaciones industriales
y la adquisicin remota de datos.
Desarrollando en su totalidad este proyecto se dotar al laboratorio de
automatizacin de un mdulo de adquisicin remota de datos con comunicacin
Modbus, el cual servir como herramienta de aprendizaje y de desarrollo de
nuevas aplicaciones con PLC y comunicaciones industriales. Este mdulo
pretende ser una solucin econmica con tecnologa propia a partir de
conocimientos adquiridos como ingenieros en formacin, permitiendo dar nuevas
bases de desarrollo de nuevos proyectos de grado y mejorar la formacin
acadmica en comunicaciones industriales y adquisicin de datos.
Este prototipo se desarrolla con elementos adquiridos en la regin y que permita
ser una solucin econmica en comparacin con los mdulos existentes en el
mercado de este tipo.

HMI se usa para referirse a la interaccin entre humanos y mquinas.

26

1.3

OBJETIVOS

1.3.1 Objetivo General

Disear e implementar un mdulo de adquisicin remota de datos para PLCs


mediante el estndar de comunicacin Modbus para el laboratorio de
automatizacin de la Universidad de San Buenaventura Seccional Cali.

1.3.2 Objetivo Especficos

Investigar el estado del arte y las generalidades del estndar Modbus.

Disear el sistema de acondicionamiento de seales, los filtros y el


aislamiento del mdulo de adquisicin.

Identificar el microcontrolador con las caractersticas requeridas para la


aplicacin.

Implementar

el

protocolo

de

comunicacin

Modbus

en

el

microcontrolador.

Determinar e implementar el hardware necesario para la capa fsica RS485.

Realizar pruebas de adquisicin de datos para verificacin de conversin


de seales.

1.4

Realizar pruebas de comunicacin Modbus con el PLC.

DESCRIPCIN DEL DOCUMENTO

Para el desarrollo del proyecto se traza el siguiente planteamiento:

27

En el Captulo 1 se analiza el problema, se fijan objetivos para luego establecer en


los captulos posteriores el diseo general del proyecto.
Consecutivamente en el Captulo 2 se presenta la teora sintetizada del protocolo
Modbus, de los sistemas de adquisicin de datos, las comunicaciones seriales y
los PLC, informacin que sirve para poder lograr los objetivos que se quieren
alcanzar.
Consecuentemente en el captulo 3 se plantea el diseo del hardware del mdulo
Esclavo, teniendo en cuenta los requerimientos del prototipo a crear.
Despus en el captulo 4 se presenta todo el desarrollo del software necesario
para llevar a cabo el protocolo Modbus y la adquisicin de datos en el
microcontrolador del dispositivo Esclavo, donde se describe detalladamente cada
uno de los diagramas de flujo y los programas con sus respectivas aplicaciones.
En el captulo 5 se presentan las pruebas en el diseo de la tarjeta de adquisicin
de datos y los resultados obtenidos de las pruebas.
Al final se presentan las conclusiones obtenidas una vez se ha terminado el
proceso de implementacin y por ltimo las recomendaciones de la construccin
del prototipo

28

2 MARCO TERICO.

2.1

ANTECEDENTES

En la Escuela Politcnica Nacional de Quito Ecuador, se dise un prototipo de un


mdulo Esclavo de control para protocolo Modbus con entradas y salidas
Analgicas-Digitales como proyecto de grado, con el objetivo de solucionar
problemas de mediciones de temperatura en una empresa local de Ecuador. El
mdulo consiste en un sistema embebido en un PIC con una entrada y una salida
digital, 2 entradas y 2 salidas anlogas, el mdulo se comunica con un
computador mediante medio fsico RS-485.
La empresa B&B Electronics [1] comercializa dispositivos de adquisicin de datos
remotos con comunicacin Modbus con diferentes funciones.
Tabla 2.1-Referencias y Precios.
Anlogas

Modelo
ADAM-4051

Digitales

Salidas Entradas Salidas Entradas


/
/
/
16

Precio (US)
$ 140,00

ADAM-4069

$ 210,00

ADAM-4068

$ 165,00

ADAM-4019+

$ 350,00

ADAM-4118

$ 285,00

ADAM-4024

$ 275,00

En la Tabla 2.1 se puede observar los diferentes precios y modelos de adquisicin


remota de datos, donde la gran desventaja de estos dispositivos es que no
integran las I/O en el mismo dispositivo, si no que vienen aparte y con unos costos
de compra muy altos. El prototipo que se implement incorpora entradas anlogas
y digitales dentro del mismo dispositivo, lo cual es una gran ventaja en

29

comparacin de los dispositivos mostrados. Tambin su diseo se implement con


elementos econmicos y asequibles que se encuentran dentro del mercado local.
Tambin se investig que la compaa DHG [2] tiene a disposicin en su
inventario el mdulo de adquisicin de datos D500M de 4 entradas anlogas; este
dispositivo viene provisto de conexiones directas para 4 seales anlogas del
mismo tipo y rango para cualquier dispositivo con puerto RS-485. El mdulo
permite conexiones con una gran variedad de sensores y suministra todas la
seales acondicionadas, ajustada, linealizadas y convertidas a unidades de
ingeniera. Los valores del dato son trasmitidos va RS-485 usando el protocolo
DGH ASCII o el protocolo Modbus RTU. El protocolo es seleccionado por el
usuario lo cual brinda la posibilidad conectar As Interfaces con algn de estos
protocolos.

2.2

PLC (Programable Logic Controller)

Un PLC o controlador Lgico Programable, son dispositivos electrnicos muy


usados en la Automatizacin industrial capaces de controlar procesos, sistemas o
maquinas usadas en la industria. En principio, un PLC contiene entradas-salidas,
las cuales se conectan directamente a dispositivos como elementos primarios y
finales donde el estado de las salidas, dependen del estado de las entradas y la
lgica del programa.
En forma general la estructura bsica de cualquier autmata programable es:
Fuente de alimentacin: es la encargada de convertir la tensin de la red,
220

. a baja tensin de C.C. normalmente 24V, siendo esta la tensin de

trabajo en los circuitos electrnicos que forma el Autmata.


CPU: la Unidad Central de Procesos es el autntico cerebro del sistema. Es
el encargado de recibir rdenes del operario a travs de la consola de
30

programacin y el mdulo de entradas. Despus las procesa para enviar


respuestas al mdulo de salidas.
Mdulo de entradas: aqu se unen elctricamente los captadores
(interruptores, finales de carrera.). La informacin que recibe la enva al
CPU para ser procesada segn la programacin. Hay 2 tipos de captadores
conectables al mdulo de entradas: los pasivos y los activos.
Mdulo de salida: es el encargado de activar y desactivar los actuadores
(bobinas de contactores, motores pequeos.). La informacin enviada por
las entradas a la CPU, cuando est procesada se enva al mdulo de
salidas para que estas sean activadas (tambin los actuadores que estn
conectados a ellas). Hay 3 mdulos de salidas segn el proceso a controlar
por el autmata: rels, triac y transistores.
Terminal de programacin: la terminal o consola de programacin es el
que permite comunicar al operario con el sistema. Sus funciones son la
transferencia

modificacin

de

programas,

la

verificacin

de

la

programacin y la informacin del funcionamiento de los procesos.


Perifricos: ellos no intervienen directamente en el funcionamiento del
autmata pero s facilitan la labor del operario.

2.2.1 Funciones Bsica de un PLC

Deteccin: lectura de la seal de los captadores distribuidos por el sistema


de fabricacin.
Mando: elaborar y enviar las acciones al sistema mediante los
accionadores y preaccionadores.

31

Dialogo hombre maquina: mantener un dilogo con los operarios de


produccin, obedeciendo sus consignas e informando del estado del
proceso.
Programacin: Para introducir, elaborar y cambiar el programa de
aplicacin del autmata. El dialogo de programacin debe permitir modificar
el programa incluso con el autmata controlando la maquina.

2.3

MICROCONTROLADORES

Los micros controladores son circuitos integrados fundados bajo la arquitectura


tradicional de John Von Neumann. 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 electrnico maneja seales con la
capacidad de efectuar tareas de adquisicin y procesamiento de informacin de
datos, el cual est compuesto de las siguientes caractersticas: Una CPU (basado
principalmente en un microprocesador de 4, 8 16 bits), puertos paralelos de
entrada y salida, puerto serie, Timers, contadores, memorias de datos (RAM) y de
programa (ROM), reloj, y en algunos casos hasta convertidores analgicos
digitales, todo esto dentro de un solo chip. Debido a esto los microcontroladores
estn encaminados bsicamente hacia un amplio rango de aplicaciones tales
como; los sistemas de control de alarmas, tableros de control en la industria
automotriz, en la instrumentacin mdica, en los teclados de computadora, en los
sistemas porttiles de almacenamiento de datos, en equipos de laboratorio,
etctera. A pesar de que un microprocesador es ms rpido que un
microcontrolador para la ejecucin de sus instrucciones, en la mayora de los
casos es necesario interconectarlo con dispositivos perifricos.
En el mercado se encuentra una gran variedad de marcas y modelos entre las que
se encontr: MICROCHIP, ATMEL, MOTOROLA, NATIONAL SEMICONCUCTOR,
2

32

CYPRESS, PHILLIPS y TEXAS INSTRUMENTS. Estas compaas producen


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

2.4

AMPLIFICADORES OPERACIONALES

Los amplificadores operacionales son dispositivos electrnicos que ofrecen


mltiples aplicaciones en el procesamiento de seales elctricas, los cuales
modifican la magnitud y/o fase de estas.
Algunas diversas aplicaciones son: amplificacin, filtrado analgico, acoplamiento,
rectificacin, deteccin de umbral, conmutacin digital, etc. [12]
Los amplificadores operacionales se caracterizan por:
Una Impedancia de Entrada muy alta.
Una Impedancia de Salida bastante baja.
Una Ganancia muy alta alrededor de los 10000.
Un Ancho de Banda (BW) que tiende a infinito.
Una buena respuesta en frecuencia.
El smbolo bsico de un circuito operacional es un triangulo donde generalmente
se representa con 5 pines (Vase Figura 2.1):

33

Figura 2.1-Smbolo del amplificador operacional

Alimentacin positiva (Vs+).


Alimentacin negativa (Vs-).

Entrada no inversora (+).

Entrada inversora (-).

Salida (Vout).

Donde al aplicar la teora de AO y la teora de circuitos elctricos se encuentra que


la ecuacin que relaciona la salida en funcin de la entrada es:
Ec. 1
En este tipo de configuracin el voltaje de entrada ingresa por el pin positivo (+)
pero como la ganancia del operacional es muy grande, el voltaje de entrada
positivo ser igual al voltaje de entrada negativo
Dado a su diferencia de potencial:
Ec. 2
Quedando La salida en funcin de la entrada:
Ec. 3

34

2.4.1 Tipos de Configuracin

Casi todos los amplificadores operacionales estn basados en estas 2


configuraciones bsicas; la configuracin no inversora y la configuracin inversora.

2.4.1.1 Configuracin No Inversora

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

Conociendo el voltaje en el pin inversor (-) podemos calcular la relacin que existe
entre el voltaje de salida (Vout) con respecto al voltaje de entrada (Vin) haciendo
uso de un pequeo divisor de tensin.

35

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

Se denomina inversor ya qu la forma de la seal de salida es igual a la forma de


la seal de entrada pero con la fase invertida a 180 grados. El anlisis de este
circuito es el siguiente: el voltaje positivo es igual al voltaje negativo los cuales
sern igual a cero.
Ec. 6
En la Figura 2.3 se observa el circuito del amplificador inverso.
Figura 2.3-Circuito Esquemtico del Amplificador Inversor

Donde la ecuacin que relaciona la salida respecto a la entrada es:


Ec. 7

36

Y su ganancia es:
Ec. 8

2.4.1.3 Configuracin Diferencial

Este amplificador es una combinacin de las 2 configuraciones anteriores aunque


est basada en los otros 2 circuitos, el amplificador diferencial tiene caractersticas
nicas. Este circuito tiene aplicada seales en ambos terminales de entrada y
utiliza la amplificacin diferencial natural del amplificador operacional para 2
funciones bsicas tales como (Vase Figura 2.4):
Acondicionamiento de seales anlogas.
Manipulacin de pequeas seales de baja potencia.
Figura 2.4-Circuito Esquemtico del Amplificador Diferencial

Suponiendo que el circuito esta balanceado, la ecuacin que caracteriza a este


circuito en funcin de la entrada es la siguiente:
Ec. 9
Donde su ganancia:

37

Ec. 10

2.4.1.4 Configuracin Seguidor de Voltaje

Esta configuracin tiene como funcin realizar el acople de impedancias, ya que,


en teora no consume ninguna corriente en su entrada y entrega seal en su
salida.
Figura 2.5-Circuito Esquemtico del Amplificador Seguidor de Voltaje

Como se puede apreciar en la Figura 2.5 la tensin de la seal de salida sigue a la


de entrada, de ah su nombre. Entonces la salida en trminos de la entrada es:
Ec. 11
2.5

MDULO LCD

Un mdulo LCD es un dispositivo electrnico digital que est constituido por una
pantalla de cristal lquido, un controlador y dos memorias internas independientes:
la DDRAM y la CGRAM. Debido a esta peculiar disposicin el mdulo puede
obtener eficientemente el mecanismo de mostrar los caracteres alfanumricos con
tan solo enviar el cdigo ASCII asociado. El LCD tiene el siguiente aspecto fsico
como se ve en la Figura 2.6.

38

Figura 2.6-Modulo LCD

El mdulo LCD incorpora su propio mtodo de comunicacin para realizar


operaciones de lectura y escritura. Es por ello, que el mdulo LCD cuenta con
unos Bits de control con los cuales el dispositivo identifica cuando el dato en el bus
es

una

instruccin

informacin

almacenar

en

la

memoria,

que

automticamente es desplegada en pantalla. RS es el Bit de control que le indican


al procesador cuando la palabra de transmisin es un dato (1) o instruccin (0).
En la Figura 2.7 se muestra la asignacin de pines correspondiente de un Mdulo
LCD con sus respectivas caractersticas.

39

Tabla 2.2-Asignacin de pines del LCD


NUMERO DEL PIN SMBOLO
FUNCIN
1
Vdd
Fuente de Alimentacin(5V)
2
Vss
Tierra (GND)
3
Vo
Contraste de Ajuste
4
RS
Registro de la Seal de Control H/ L
5
R/W
Seal de lectura / escritura H/L
6
E
Seal de Habilitacin H
7
DB0
Lnea de Bus de Dato H/ L
8
DB1
Lnea de Bus de Dato H/ L
9
DB2
Lnea de Bus de Dato H/ L
10
DB3
Lnea de Bus de Dato H/ L
11
DB4
Lnea de Bus de Dato H/ L
12
DB5
Lnea de Bus de Dato H/ L
13
DB6
Lnea de Bus de Dato H/ L
14
DB7
Lnea de Bus de Dato H/ L

2.6

SISTEMAS DE ADQUISICIN DE DATOS

Una tarjeta de adquisicin de datos es un sistema que utiliza sensores,


transductores, amplificadores, convertidores analgico-digital (A/D) y digitalanalgico (D/A), que interactan entre s ofreciendo procesar informacin de un
sistema fsico del mundo real (datos-analgicos) en forma digitalizada, donde cada
dispositivo no solo trabaja de manera individual sino que trabaja efectivamente con
los dems componentes para que todo el sistema opere correctamente.
Una vez que las seales elctricas se transforman en digitales, se envan a travs
del bus de datos a la memoria del computador Personal Computer (PC). Los datos
analgicos tomados del sistema fsico se convierten en un valor de voltaje a travs
del conversor A/D que a su vez corresponde a una combinacin binaria. Esta
conversin requiere de un sensor o transductor que se encarga de leer la variable

40

fsica y de representar dicha variable en un valor de voltaje o corriente, por el cual


tenemos que hacer llegar al ADC del microcontrolador.
Para que el ADC pueda realizar la conversin del valor analgico, se le tiene que
agregar un voltaje de referencia, porque ste es el que indica precisamente cul
es el rango de operacin de la entrada del ADC. Todos los ADC del Peripheral
Interface Controller (PIC), aceptan como mximo un rango de operacin que llega
hasta 5V, por lo que podemos establecer rangos de operacin de cualquier valor
de voltaje, siempre y cuando no rebasemos los 5V. [14]
Una vez definido el rango, la seal a digitalizar posee una frecuencia alta de
operacin y para reproducirla en un proceso posterior hay que tomar un buen
nmero de muestras donde as digitalizarlas como tal. En caso contrario,
aparecer el fenmeno del aliasing (Vase Figura 2.8), que se produce al inframuestrear. Si la seal sufre aliasing, es imposible recuperar el original.
Velocidad de muestreo recomendada:
2*frecuencia mayor (medida de frecuencia)
10*frecuencia mayor (detalle de la forma de onda)

41

Figura 2.7-Filtro Antialising

2.6.1 Elementos de un Sistema de Adquisicin de Datos

Un sistema de adquisicin de datos (Vase Figura 2.9).consta bsicamente de:


Las fuentes de seales, que son de dos clases:
Elementos medicin directa: producen la seal como resultado de
cantidades elctricas, como mediciones de voltaje, de corriente, de
resistencia, de frecuencia, etc.
Transductores: dispositivos que censan los fenmenos fsicos y convierten
parmetros no elctricos en seales elctricas, ejemplos de ellos son las
resistencias

detectoras

de

temperatura,

Detectores

Resistivos

de

Temperatura (RTDS), los transductores de flujo, transductores de presin,

42

etc. En cada caso las seales elctricas son proporcionales a los


parmetros fsicos que monitorean.
2.6.1.1 Elementos de Acondicionamiento de Seales

Estos elementos realizan la tarea de amplificar las seales de bajo nivel, aislarlas
y filtrarlas para tomar mediciones ms precisas. Adems algunos transductores
usan voltaje o corriente como excitacin para poder producir su valor de salida.
Figura 2.8-Sistema de Adquisicin de Datos Anlogos.

Etapa de Acondicionamiento
El problema es que la mayora de los sensores y transductores generan seales
que se debe acondicionar antes de que un dispositivo tarjeta de Adquisicin de
Datos (DAQ) que pueda adquirir con precisin la seal. Este procesamiento al
frente, conocido como acondicionamiento de seal, incluye funciones como
amplificacin, filtrado, aislamiento elctrico y multiplexado.
El acondicionamiento de seales se divide entonces en:

43

Amplificacin: Es el tipo ms comn de acondicionamiento. Cuando las


seales son muy pequeas deben amplificarse para incrementar su
resolucin y reducir el ruido.
Aislamiento: Las seales del transductor del medio ambiente y las seales
del equipo receptor se aslan para reducir ruidos que las distorsionan. En
las seales del receptor se aslan para evitar transiciones de voltaje que lo
daen. Una razn adicional es asegurar que las lecturas del equipo de
medicin no sean afectadas por diferencias en potenciales de tierra o
voltajes de modo comn, ya que esta diferencia puede resultar
imprecisiones en la seal adquirida, o si la diferencia es muy grande, puede
daar el sistema de medicin.
Multiplexado: Es una tcnica para medir varias seales con un solo
dispositivo. A menudo se multiplexa para monitorear diferentes fuentes de
seales de lenta variacin como por ejemplo la temperatura. El instrumento
toma muestra de un canal, cambia al prximo canal y toma otra muestra, y
as contina. Se aconseja que los multiplexores se utilicen antes del
conversor y despus del condicionamiento de la seal, ya que de esta
manera no molestar a los aislantes que podamos tener.
Filtrado: El filtro elimina las seales indeseadas de las que se estn
tratando de medir. Para las seales de tipo DC (temperatura) se usa un
filtro de ruido que reducen la precisin de la medicin y para las seales de
tipo AC tales como las de vibracin, requieren otros filtros conocidos como
filtros antialiasing, los cuales son filtros pasa bajas con una ventana de
corte muy alta para remover casi completamente las frecuencias
indeseables.
Excitacin: Prcticamente es la induccin electromagntica que genera la
etapa de acondicionamiento hacia algunos transductores como galgas

44

extensiometricas, termistores o RTD que por su constitucin necesitan de la


misma.
Linealizacion: Muchos transductores como los termopares, tienen una
respuesta no lineal a los cambios en el fenmeno que estn midiendo por lo
que se requieren rutinas de Linealizacion que calculan los nuevos valores
correspondientes a su medicin.
Instrumentos de registro grafico. Registran el comportamiento en el tiempo
de las seales monitoreadas. Estos registros se pueden imprimir en rollos
de papel o en una pantalla de computador.

2.7

COMUNICACIONES SERIALES

El concepto de comunicacin serial es simple, es un cdigo de codificacin binario


que representa los caracteres de los mensajes digitales de los Bits a travs de 0 y
1, en serie , uno detrs de otro, lo que hacen que la transmisin sean mucho ms
lentas que sus homlogas "paralelo" en las que se transmiten varios Bits a la vez.
Tanto en dispositivos de transmisin como en dispositivos de recepcin los
puertos serie son los dispositivos a travs de los cuales los datos son transferidos.
En este cdigo los 0 y 1 son caracteres, por lo tanto las comunicaciones seriales
son un cdigo binario por que usan solo 2 valores posibles ceros y unos. Este
concepto ha seguido los estndares definidos desde 1969 por el RS232(Recommended Standard 232).
La velocidad de transmisin de datos es expresada en Bits por segundo o
Baudios, donde todo tipo de comunicacin serial tiene que realizarse en tiempos
correctos, es decir que, los dispositivos a comunicarse deben tener la misma
velocidad de transferencia, donde comnmente es de 9600bps que es equivalente
a decir tambin 1Bit cada 10S.

45

Existen varios modos bsicos para las transmisiones serie:


Simplex: Un dispositivo transmite y el otro recibe.
Halfduplex: Ambos dispositivos transmiten pero no simultneamente, esto
quiere decir que mientras un dispositivo transmite la otra espera hasta que
lo reciba.
Full-duplex: Ambos equipos transmiten simultneamente. Para ello se
requieren dos lneas independientes, transmisin y recepcin; la lnea de
transmisin de un equipo se conecta a la entrada de recepcin del otro y
viceversa. Los puertos serie del PC son capaces de utilizar este modo.
Asncronas: Las transmisiones asncronas son aquellas en que los Bits
que constituyen el cdigo de un carcter se emiten con la ayuda de
impulsos suplementarios que permiten mantener en sincronismo en los dos
extremos.
Sncronas: En las transmisiones sncronas los caracteres se transmiten
consecutivamente, no existiendo ni Bit de inicio ni Bit de parada entre los
caracteres, estando dividida la corriente de caracteres en bloques,
envindose una secuencia de sincronizacin al inicio de cada bloque.
Figura 2.9-Trama de las Comunicaciones Seriales.

Las caractersticas seriales ms importantes son: tasa de baudios, Bits de datos,


Bits de paro, y paridad (Vase Figura 2.10).
Tasa de baudios: es una unidad de medicin para comunicacin que indica
el nmero de Bits transferidos por segundo.

46

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


transmisin, la cantidad de datos actuales puede ser que no complete 8
Bits. Los valores estndar para los paquetes de datos son de 5, 7, y 8 Bits.
El marco que usted elija depender de la informacin que est transfiriendo.
Bits de paro: son utilizados para sealar el trmino de comunicaciones en
un paquete sencillo.
Bit de paridad: este Bit se utiliza para comprobar si los Bits de datos han
sido bien recibidos. Existen estas variantes:
Paridad par: si la suma de los Bits de datos es par, el Bit de paridad es 1,
si es impar, el Bit de paridad es 0.
Paridad impar: si la suma de los Bits de datos es impar, el Bit de paridad
es 1, si es par, el Bit de paridad es 0.Sin paridad. No se utiliza el Bit de
paridad.

2.8

PROTOCOLOS DE COMUNICACIN

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


ambiente industrial, con diferentes caractersticas tales como, el medio fsico en la
que se trasporta los datos, la manera en que se segmenta, se codifican y se
interpretan los datos para ser trasmitidos y recibidos.
Un protocolo de comunicacin es un conjunto de reglas que permiten la
transferencia e intercambio de datos entre distintos dispositivos que conforman
una red. [13]
Con la evolucin de los microprocesadores, ha sido ms factible su unificacin a
redes industriales con notable ventajas como:

47

Mayor precisin originada por la integracin de tecnologa digital en las


mediciones.

Mejor y mayor abarcamiento de informacin de los dispositivos.

Monitoreo remoto de componentes.

Los buses de campo permite la integracin de equipos de medicin y control de


variables de procesos. Su objetivo primordial es sustituir las conexiones punto a
punto entre los elementos de campo y el equipo de control.
Normalmente son redes digitales, bidireccionales, multipunto, montadas sobre un
bus en serie, que conecta dispositivos de campo como PLCs, transductores,
actuadores, sensores y equipos de supervisin.
Los buses con mayor presencia en el sector industrial son:
HART

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
comunicacin entre PLCs. La designacin Modbus Modicon corresponde a una
marca registrada por Gould Inc.
Como en tantos otros casos, la designacin no corresponde propiamente al
estndar de red, incluyendo todos los aspectos desde el nivel fsico hasta el de
aplicacin, sino a un protocolo de enlace (nivel OSI 2)3. Puede por tanto,
3

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

48

implementarse con diversos tipos de conexin fsica y cada fabricante suele


suministrar un software de aplicacin propio, que permite parametrizar sus
productos. Durante la comunicacin sobre una red Modbus, el protocolo determina
como cada controlador conocer su direccin de dispositivo, reconocer un
mensaje direccionado a l, determinara el tipo de accin a tomar y extraer
cualquier dato u otra informacin contenida en el mensaje. La principal
caracterstica de este bus de campo es el control de acceso al medio, tipo
Maestro/Esclavo.
En la actualidad debido a su simplicidad y especificacin abierta, actualmente es
ampliamente utilizado por diferentes fabricantes.

2.8.1.1 Modbus Capa de Aplicacin

Modbus se enfoca en la capa de aplicacin (protocolo de mensaje), se encuentra


en el nivel 7 del modelo OSI, tambin permite la comunicacin con diferentes tipos
de redes o buses entre cliente y servidor.
Modbus es un protocolo de solicitud/respuesta y proporciona servicios
especificados por cdigos de funcin. Los comandos de Modbus son funciones de
solicitud/respuesta de la PDUs. El alcance de este documento describe como
establecer una comunicacin entre Maestro/Esclavo, donde la tarjeta de
adquisicin de datos ser el Esclavo y el PLC el Maestro.
Para lograr la interoperabilidad entre diferentes clases de buses y redes
actualmente esta implementado as:
TCP/IP sobre Ethernet.
Trasmisin serial asncrona a travs de varios medios (EIA/TIA-232, EIA422, EIA/TIA-485-A, fibra, radio, etc.)
estndares que aseguraron una mayor compatibilidad e interoperabilidad entre los distintos tipos de
tecnologa de red producidos por las empresas a nivel mundial.

49

Modbus plus, una alta velocidad paso de la seal en red.


En la Figura 2.11 se encuentra la comunicacin general del Modbus.

Figura 2.10-Comunicacin General del Modbus.

Fuente [8]

El protocolo Modbus permite una fcil comunicacin con todo tipo de arquitectura
de redes. En Figura 2.12 se observa algunos tipos de integracin de redes
Modbus

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 operacin remota.
La misma comunicacin se puede hacer tanto como en serial o redes Ethernet
TCP/IP. Los Gateways permiten una comunicacin entre diferentes tipos de redes
usando el protocolo Modbus.

51

2.8.2

Descripcin General

2.8.2.1 Descripcin del Protocolo

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


comunicacin principal del modelo OSI.
La Unidad de Dato del Protocolo PDU, se le puede adicionar un campo sobre La
Unidad de Dato de Aplicacin (ADU), para buses especficos o redes. En la
siguiente Figura 2.13 se muestra la estructura general de la trama Modbus.

Figura 2.12-Trama General del Modbus.

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

52

El cdigo de funcin de la unidad de datos del Modbus es codificado en un solo


Byte. Los cdigos validos estn en el rango de 1-255 en formato decimal (el rango
de 128-255 es reservado y usado para respuestas en excepcin). Cuando el
mensaje es enviado desde un Maestro a un Esclavo la trama del cdigo de funcin
le dice al Esclavo que clase de accin debe desarrollar, donde el cdigo de
funcin 0 no es vlido. Estos cdigos de funcin agregan cdigos de sub-funcin
para definir mltiples acciones.
La trama del dato utiliza informacin adicional del cdigo de funcin para que el
Esclavo reconozca la accin definida por el cdigo de funcin. Esta informacin
adicional de la trama puede incluir tems de direccionamiento de registros donde
son manejados por el contador del Byte del dato en la trama.
En ocasiones la trama del dato puede venir en 0, en este caso el Esclavo no
requiere una informacin adicional y el cdigo de funcin solo especifica la accin.
Sin ningn error ocurre relacionado con el cdigo de funcin solicitado en una
recepcin adecuada, la trama del dato de la respuesta de un Esclavo a un Maestro
contiene el dato requerido. Por el contrario si ocurre un error, la trama del dato
contiene un cdigo de excepcin para que la aplicacin del Esclavo la pueda usar
y as determinar la siguiente accin a tomar.
Por ejemplo un Maestro puede leer el estado ON/OFF de un grupo I/O o puede
leer o escribir el contenido del dato de un grupo de registros. Cundo el Esclavo
responde al Maestro este usa el cdigo de funcin para indicar una normal
respuesta (sin error) o alguna clase de error ocurrido (llamado una respuesta
opcional).Para una respuesta normal el Esclavo simplemente repite la solicitud del
original cdigo de funcin. La Figura 2.14 muestra el orden secuencial de tramas
de una transmisin (solicitud) y recepcin (respuesta).

53

Figura 2.13-Transaccin del Modbus (libre de error).

Fuente [8]

Para una respuesta en excepcin, el Esclavo devuelve un cdigo que es


equivalente al cdigo de funcin original de la PDU solicitada con su Bit ms
significativo seteado en 1. En la Figura 2.15 detalla cmo es una respuesta en
excepcin del dispositivo Esclavo hacia el dispositivo Maestro.

54

Figura 2.14-Transaccin del Modbus (Respuesta en Excepcin)

Fuente [8]

El tamao de la PDU es limitada por el tamao de la implementacin del protocolo


Modbus sobre redes seriales (Max. RS485 ADU=256 Bytes).
Por lo tanto:
La PDU por lnea de comunicacin serial= 265-direccion Esclavo (1 Byte)- CRC
(2 Bytes)=253 Bytes
Consecuentemente:
RS232 /RS485 ADU = 253 Bytes+ direccin Esclavo (1 Byte)+ CRC (2 Bytes)=
256 Bytes.
TCP MODBUS ADU = 253 Bytes+ MBAP (7 Bytes) = 260 Bytes.
El Modbus define tres PDUS:

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 cdigo de funcin
request_data = [n Byte] Esta trama es una funcin de cdigo dependiente y
usualmente contiene informacin adicional, como por ejemplo: referencia de
variable, contador de variables, cdigos de sub-funciones etc.

MODBUS Respuesta PDU, mb_rsp_pdu


La mb_rsp_pdu es definida como:
mb_rsp_pdu = {function_code, response_data},
Dnde:
function_code= [1 Byte] Modbus cdigo de funcin
response_data= [n Byte] Esta trama es una funcin de cdigo dependiente
y usualmente contiene informacin adicional, como por ejemplo: referencia
de variable, contador de variables, cdigos de sub-funciones etc.
MODBUS respuesta de excepcin PDU, mb_excep_rsp_pdu
La mb_exceo_rsp_pdu es definida como:
mb_excep_rsp_pdu = {exception-function_code, request_data}
Dnde:
Exception-function_code= [1 Byte] Modbus cdigo de funcin + 0x80
exception_code = [1 Byte] El cdigo de excepcin Modbus est definido en
la Tabla 2.7.

56

Decodificacin del Dato: Modbus usa una representacin big Endian4

para las direcciones e tems del dato. Esto significa que cuando hay una cantidad
numrica ms grande que un simple Byte transmitido, el Byte ms significativo es
enviado primero. Por ejemplo:
Tamao del Registro

16 Bits

Valor

0x1234 El primer Byte enviado es 0x12 despus 0x34

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

series de ndices que tienen sus caractersticas principales.


Las cuatro caractersticas primordiales pueden verse en la Tabla 2.2.
Tabla 2.3-Modelo del Dato Modbus
Primeros
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 aplicacin 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 aplicacin del

holding

16-Bit

Escritura

programa

4 El trmino Big Endian se refiere a la forma en que los nmeros binarios de bytes mltiples son guardados
en la computadora.

57

Las diferencias entre entradas/salidas, y entre Bit-direccionable y palabradireccionable de los tems del dato, no implican ningn comportamiento de
aplicacin. Es perfectamente aceptable, y muy comn, a lo que se refiere a las
cuatro caractersticas, como solapamiento entre s, siendo esta la ms natural
interpretacin del objetivo de dispositivo en cuestin.
Por cada una de estas caractersticas, el protocolo permite elegir de los 65536
tems del dato solo uno, y las operaciones de leer o escribir de estos tems son
designadas para abarcar mltiples y consecutivos tems del dato hasta alcanzar
un lmite del tamao del dato l cual es dependiente de la comunicacin del cdigo
de la funcin.
Es obvio que todo el dato manejado por va Modbus debe ser localizado en
dispositivos de memoria de aplicacin del Esclavo. Pero la direccin fsica en
memoria no debe ser confundida por los datos de referencia. El nico requisito es
establecer un vnculo de datos de referencia con la direccin fsica.
Los nmeros de referencia lgica del Modbus que son usados en funciones, son
ndices enteros sin signo a partir del cero

Modelo Direccionamiento Modbus: el protocolo de aplicacin Modbus

define precisamente reglas para el direccionamiento de la PDU.


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

5 El estndar internacional IEC 61131 es el primer paso para la estandarizacin de los autnomas
programable y sus perifricos, incluyendo los lenguajes de programacin que se debe utilizar.

58

modelo del dato Modbus y el dispositivo de aplicacin, es totalmente del diseador


del dispositivo especfico.

Definicin de la transaccin del Modbus: en la Figura 2.16 se observa el

diagrama de estado que describe el procesamiento genrico de una transaccin


Modbus en el Esclavo.

Figura 2.15-Diagrama de Flujo de la Transaccin del Modbus.

59

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

60

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


construye as:
Para una respuesta sin excepcin:

La respuesta cdigo de funcin = La solicitud del cdigo de la funcin

Para una respuesta excepcin:

El objetivo es suministrar al Maestro de informacin relevante


concerniente al error detectado durante el procesamiento.

El cdigo de funcin de excepcin = la solicitud del cdigo de funcin +


0x80.

Un cdigo en excepcin es suministrado para indicar la razn del error.

Categoras del cdigo de funcin: hay 3 categoras de cdigos de

Funcin del Modbus, las cuales son:

1. Cdigos de Funcin Pblicos


Los cdigos de funcin estn bien definidos.
Garantiza que sea nico.
Validado por la comunidad MODBUS-IDA.org
Pblicamente documentado.
Incluye ambos, los cdigos de funcin pblicos definidos como tan bien los
cdigos indefinidos de funcin reservados para uso futuro.

2. Cdigos de Funcin Definidos por el Usuario


Hay 2 rangos para que el usuario defina cdigos de funcin, es decir 65 a
72 y desde 100 a 110 decimal

61

El usuario puede seleccionar e implementar un cdigo de funcin que no


est soportado por la especificacin.
No hay garanta que el uso del cdigo de la funcin seleccionada sea nico.
Si el usuario quiere reasignar una funcionalidad de un cdigo de funcin
pblico, tendr que iniciar una RFC para introducir el cambio dentro de la
categora pblica y tener un nuevo cdigo de funcin pblico asignado.
La organizacin Modbus-Inc. expresamente se reserva desarrollar el
propsito de una RFC.

3. Cdigos de Funcin Reservados

Los cdigos de funcin actualmente usados por algunas compaas


para legalizar productos y no estn disponibles para uso del pblico
De la Tabla 2.3 se aprecian algunos cdigos de funcin actualmente usados por
algunas compaas para legalizar sus productos y no estn disponibles para uso
del pblico.

62

Tabla 2.4-Categora del Cdigo de Funcin del Modbus.


127
Cdigos de funcin pblicos

100

Cdigos de funcin definidos por el usuario


Cdigos de funcin pblicos

72
65

Cdigos de funcin definidos por el usuario

Cdigos de funcin pblicos

1
Fuente [8]

Definicin del los cdigos de funcin pblicos: la Tabla 2.4 se describe

los cdigos de funcin disponibles que ya han sido definidos para el pblico.

63

Tabla 2.5-Definicin de Cdigo de Funcin Pblico.


Cdigos de
Funcin

Cdigo
Entradas
Digitales
Fsicas

Bits de
Acceso

Bits Internos o
Bobinas
Fsicas

Entradas
Fsicas de
Registros

Registros
Internos

16 Bits
de
Acceso
Dato
de
Acceso

Registros de
Salida Fsicos.

Acceso de File Record


Diagnsticos

Lectura de
Entradas
Digitales
Lectura de
Bobinas
Escritura de
una sola
Bobina
Escritura de
Mltiples
Bobinas
Lectura de
Entrada
Anloga
Lectura de
Registros
Holding
Escritura de un
solo Registro
Escritura de
Mltiples
Registros
Lectura/Escritu
ra Mltiples
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
cd
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

Excepcin

Otro

Diagnostico
Obtencin de
Contador de
eventos
Obtencin del
Registro de
eventos
Informe de
Esclavos ID
Lectura del
dispositivo de
Identificacin
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

Descripcin de los cdigos de funcin: a continuacin se describen

algunos de los cdigos de funcin pblicos.

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

2000 estados contiguos de bobinas en un dispositivo remoto. La solicitud de la


PDU especfica la direccin de inicio, es decir la direccin de la primera bobina y el
nmero de bobinas. En la PDU las bobinas son direccionadas empezando por
cero. Por otro lado las bobinas enumeradas de 1-16 son direccionadas como 0-15.
Las bobinas en el mensaje de respuestas son empaquetadas con un Bit por
bobina en la trama del dato. El estado es mostrado como 1=ON y 0=OFF. El LSB
del primer Byte del dato contiene la salida direccionada en la solicitud. Las otras
bobinas siguen hacia el final de la parte alta de ese Byte, y desde la parte baja
hasta la parte alta en los Bytes posteriores.

65

Si la cantidad de la salida que se devuelve no es un mltiplo de 8, los Bits


restantes en el Byte del dato final ser rellenado con ceros (hacia el orden superior
del final del Byte).El Byte de conteo indica la cantidad de Bytes completos del
dato.

02(0x02) Lectura de entradas digitales: esta funcin es usada para leer

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


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

66

Tabla 2.6-Envi de Funcin 04


Solicitud
Cdigo de funcin

1 Byte

0x02

Direccin de inicio

2 Bytes

0x0000 hasta 0xFFFF

Cantidad de entradas

2 Bytes

1 hasta 2000 (0x7D0)

Respuesta
Cdigo de funcin

1 Byte

0x02

Contador de byte

1 Byte

N*

Estado de las Entradas


N* x 1 Byte
*N = Cantidad de entradas / 8 si el resto es diferente de 0 N = N +1
Error
Cdigo de error
Cdigo de excepcin
Fuente [8]

1 Byte

0x82

1 Byte

01 o 02 o 03 o 04

03(0x03) Lectura de registro de retencin: esta funcin es usada para

leer el contenido de un bloque contiguo de un registro de retencin en un


dispositivo remoto. La solicitud de la PDU especfica la direccin de inicio y el
nmero de registros. En la PDU los registros son direccionados empezando por
cero. Por otro lado los registros enumerados de 1-16 son direccionados como 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 mltiplo de 8, los Bits
restantes en el Byte del dato final sern rellenados con ceros (hacia el orden
superior del final del Byte). El Byte de conteo indica la cantidad de Bytes
completos del dato.

04(0x04) Lectura de entrada anloga: esta funcin es usada para leer

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


solicitud (Maestro) de la PDU especifica la direccin de inicio del registro y el
nmero de registros. Los registros de la PDU son direccionados empezando por
cero. Por otro lado los registros enumerados de [1-16] son direccionados como [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 Funcin 04


Solicitud
1 Byte
Cdigo de funcin
0x04
2 Bytes
Direccin de inicio
0x0000 hasta 0xFFFF
Cantidad de registros de entrada 2 Bytes
0x0001 hasta 0x007D

Cdigo de funcin
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
Cdigo de error

0x84
1 Byte

Cdigo de excepcin

01 o 02 o 03 o 04
1 Byte

Fuente [8]

05(0x05) Lectura de una sola bobina: este cdigo de funcin es usado

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

06(0x06) Registro de solo escritura: este cdigo de funcin es usado para

escribir un solo registro soportado en un dispositivo remoto.


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

16(0x10) Escritura de mltiples registros: este cdigo de funcin es

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


dispositivo remoto.
La solicitud de valores escritos es especificada en el dato de solicitud. El dato es
empaquetado como dos Bytes por registros. La respuesta normal retorna el cdigo
de funcin, direccin de inicio y una cantidad de registros escritos en dos Bytes
por registros. La respuesta normal retorna el cdigo de funcin, direccin de inicio,
y una cantidad de registros escritos.

Cdigos de excepcin: Los cdigos de excepcin se producen cuando

hay un error de comunicacin en la respuesta del dispositivo Esclavo, estos


cdigos pueden ser: por error de paridad, por error de CRC, por error de
direccionamiento, etc. En la Tabla 2.7 se muestra los cdigos de error soportados
por el Esclavo Modbus.

70

Tabla 2.8-Cdigos de Error de Ejecucin del Protocolo Modbus en el


Esclavo.
Cdigos de
Descripcin
error
0
Sin error.

Error de paridad en la respuesta. Slo es posible si se utiliza


paridad par o impar. La transferencia ha sido perturbada y es
posible que se hayan recibido datos incorrectos. Este error se
debe normalmente a un problema elctrico, p. ej. Un cableado
incorrecto o ruidos elctricos que afectan la comunicacin.

No utilizado

Timeout de recepcin. No se ha recibido una respuesta del


Esclavo dentro del tiempo indicado en Timeout. Ello puede
deberse a una conexin elctrica defectuosa con el Esclavo, a
que los ajustes del Maestro y del Esclavo son diferentes
(velocidad de transferencia y/o paridad), o bien a una direccin
incorrecta del Esclavo.

Error en un parmetro de peticin. Uno o ms parmetros de


entrada (Slave, RW, Addr o Count) se han ajustado a un valor no
vlido. En la documentacin se indican los valores permitidos
para los parmetros de entrada.

El Maestro Modbus no est habilitado. MBUS_CTRL se debe


llamar en cada ciclo antes de llamar a MBUS_MSG.

Modbus est procesando otra peticin. Slo puede estar activada


una operacin MBUS_MSG a la vez.

Error en la respuesta. La respuesta recibida no corresponde a la


peticin. Ello indica que hay un problema en el Esclavo o que un
Esclavo incorrecto ha respondido a la peticin.

Error CRC en la respuesta. La transferencia ha sido perturbada y


es posible que se hayan recibido datos incorrectos. Este error se
debe normalmente a un problema elctrico, p. ej. Un cableado
incorrecto o ruidos elctricos que afectan la comunicacin.

101

El Esclavo no soporta la funcin solicitada en esta direccin.

71

102

El Esclavo no soporta la direccin de los datos. El rango de


direcciones solicitado de Addr ms Count est fuera del rango de
direcciones permitido para el Esclavo.

103

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


parmetro Addr.

105

El Esclavo ha aceptado el mensaje, pero hay un retardo en la


respuesta. Este es un error de MBUS_MSG. El programa de
usuario debera reenviar la peticin ms tarde.

106

El Esclavo ha aceptado el mensaje, pero hay un retardo en la


respuesta. Este es un error de MBUS_MSG. El programa de
usuario debera reenviar la peticin ms tarde. El Esclavo est
ocupado y ha rechazado el mensaje. Intente reenviar la misma
peticin para obtener una respuesta.

107
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 lnea

serial Modbus es un protocolo Maestro-Esclavo, donde solamente un Maestro al


tiempo es conectado al bus, y una o varios nodos Esclavos (nmero mximo 247)
son conectados al mismo bus serial.
Una comunicacin Modbus es siempre iniciada por el Maestro, donde los nodos
Esclavos nunca trasmiten un dato sin recibir una solicitud desde el nodo Maestro.
En una red, los nodos Maestros nunca se comunicaran entre s, siendo el nodo
Maestro quien inicia una transaccin Modbus al tiempo.
El nodo Maestro enva una solicitud al Esclavo de dos modos:

Modo unicast: el Maestro direcciona a un Esclavo individualmente y despus


de recibir y procesar la solicitud, el Esclavo devuelve un mensaje al Maestro
(una respuesta), en la Figura 2.17 se puede apreciar la comunicacin Unicast.
72

En este modo, la transaccin consiste en dos mensajes: una solicitud desde el


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

nica

(1

247),

de

modo

que

pueda

ser direccionado

independientemente de otros nodos.


Figura 2.16-Modo Unicast.

Fuente [7]

Modo broadcast, el Maestro puede enviar una solicitud a todos los Esclavos,
en la Figura 2.18 se puede ver como se realiza una comunicacin broadcast.
El modo broadcast tiene las siguientes caractersticas:
La solicitud broadcast es escrita necesariamente por comandos.
Ninguna respuesta es retornada a la solicitud broadcast enviada por
el Maestro.
Todos los dispositivos tendrn que aceptar el modo broadcast por
funciones de escritura.
La direccin 0 es reservada para un cambio de broadcast.

73

Figura 2.17-Modo Broadcast.

Fuente [7]

Modos de trasmisin serial: Dos modos diferentes de trasmisin serial

son definidos. El modo RTU y el modo ASCII.


Estos definen el contenido del Bit de la trama de mensajes trasmitida serial mente
en la lnea serial.
Este modos determinan como la informacin es decodificada y empaquetada
dentro de la trama del mensaje. El modo de transmisin tendr que ser el mismo
para todos los dispositivos sobre la lnea serial.
Sin embargo el modo ASCII es requerido en algunas aplicaciones especficas, la
interoperabilidad entre dispositivos Modbus puede ser lograda solamente si cada
dispositivo tiene el mismo modo de comunicacin. El modo de transmisin ASCII
es opcional.
En los dispositivos, el modo de transmisin debe ser establecido por el usuario
(RTU o ASCII), de lo contrario el modo RTU ser establecido por defecto.

74

Modo de transmisin RTU: cuando los dispositivos se comunican sobre

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

permite un mejor

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

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

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

2 3 4 5

Paridad Stop

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

75

transmitido para llenar la trama de los caracteres asncronos de 11 Bits (Vase


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

2 3 4 5

Stop Stop

Trama de descripcin (Vase Tabla 2.10)


Tabla 2.11Trama de Mensaje RTU.
Direccin Funcin
Datos
CRC
1 byte

1 byte

0 hasta 252 bytes

2 bytes
CRC Bajo CRC Alto

El tamao mximo de una trama RTU Modbus es 256 Bytes

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

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

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 ms de 1.5 veces el carcter se produce entre dos
caracteres (Vase Figura 2.21), la trama se declara incompleta y debe ser
descartada por el receptor.
Figura 2.20-Tiempos de Caracter de la Trama RTU.

Fuente [7]
Chequeo del CRC: el modo RTU incluye una trama de comprobacin de errores
que es basada en una comprobacin de redundancia cclica (CRC), mtodo
realizado en el contenido del mensaje.
La trama CRC verifica el contenido de todo el mensaje. Esto se aplica
independientemente de cualquier comprobacin de paridad usada para los
caracteres individuales del mensaje.

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 recepcin del mensaje y compara el valor calculado
con el valor actual que este recibi en la trama del CRC. Si los 2 valores no son
iguales, se produce un error.
El clculo del CRC es iniciada por la primera pre-carga de un registro de 16-Bit
para todos los 1. Despus comienza un proceso de aplicacin de Bytes sucesivos
de 8 Bits del mensaje para el contenido actual del registro. Solo los 8 Bits del dato
en cada carcter son usados para generar el CRC. Los Bits de parada, inicio y el
Bit-paridad no son aplicables al CRC. Durante la generacin del CRC cada
carcter de 8-Bit se le aplica una XOR con el contenido del registro. Despus el
resultado es desplazado en la direccin del Bit menos significativo (LSB) con ceros
en la posicin del Bit ms significativo (MSB).
El LSB es extrado y examinado. Si el LSB fue un uno (1), la XOR se lleva a cabo
con un valor predeterminado, fijo. Si el LSB fue un cero (0), la XOR no se lleva a
cabo. Este proceso es repetido hasta que 8 cambios hayan sido relazados.
Despus el ltimo cambio (8), el siguiente Byte de 8-Bit es XOR con un valor
actual del registro, y el proceso se repite durante ms de ocho cambios como se
describi anteriormente. El contenido final del registro, despus de que todos los
Bytes del mensaje han sido aplicados, es el valor del CRC.

Modo de transmisin ASCII: Cuando los dispositivos se configuran para

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

78

lugar a error. Es por ello que muchos equipos slo soportan este modo de
comunicacin. Desde el punto de vista del diagnstico, es tambin ms simple, ya
que las tramas se pueden ver directamente. Por el contrario, la gran desventaja es
que las tramas tienen una longitud de aproximadamente el doble que las tramas
RTU, lo cual tiene el efecto neto de reducir la velocidad de comunicacin a la
mitad. El modo ASCII se presta mejor para el desarrollo de drivers de
comunicacin mediante lenguajes de alto nivel. El formato para cada Byte en
modo ASCII es (Vase Tabla 2.11):

Inicio

Direccin

1
carcter

2
caracteres

Tabla 2.12-Codificacin ASCII.


Funcin
Datos
2
caracteres

hasta 2 por 252


caracteres

LRC
2
caracteres

Fin
2
caracteres
CR
LF

Mtodos de Comprobacin de Errores: la seguridad estndar de la lnea serial


es basada en 2 tipos de comprobacin de errores.
Comprobacin de Paridad (par o impar) debe ser aplicado a cada carcter.
Comprobacin de trama (LRC o CRC) tiene ser aplicado a todo el mensaje.
Tanto la comprobacin del carcter y el mensaje son generados en el dispositivo
(Maestro o Esclavo) que emite y aplica al contenido del mensaje antes de la
transmisin. El dispositivo (Esclavo o Maestro) controla cada carcter y el
mensaje entero de la trama durante la recepcin.
El Maestro es configurado por el usuario que espera un intervalo de tiempo
predeterminado (respuesta de tiempo de espera) antes de abortar la transaccin.
Este intervalo se establece por un tiempo para que cualquier Esclavo responda
normalmente (solicitud-unicast).Si el Esclavo detecta un error de transmisin, el
error no ser ejecutado sobre el mensaje y el Esclavo no construir una respuesta
al Maestro. Por lo tanto el tiempo de espera se vencer y permitir que el
programa del Maestro maneje el error.

79

Comprobacin de paridad: los usuarios pueden configurar los dispositivos

para paridad o la comprobacin de paridad impar, o ninguna comprobacin de


paridad. Esto determinara como el Bit de paridad se establecer en cada carcter.
Si cualquier paridad o paridad impar es especificado, la cantidad de 1 Bits sern
contados en la porcin del dato de cada carcter (siete Bits para el modelo ASCII
o ocho para el RTU). El Bit de paridad despus se establecer en 0 o 1 dando
lugar a una paridad o imparidad de un Bit.
La total cantidad de 1 Bit en la trama son cuatro (4). Si la paridad par es usada el
Bit de paridad de la trama es un cero (0), tomando la cantidad de un Bit que sigue
siendo un numero par (cuatro). Si la paridad impar es usada, el Bit-paridad ser un
1, tomando una cantidad par (cinco).
Cuando el mensaje es transmitido, el Bit de paridad es calculado y aplicado a la
trama de cada carcter del dispositivo que recibe los contadores de la cantidad de
1 Bit y fijan un error sino son las mismas para ese dispositivo configurado. (Todos
los dispositivos de la lnea serial Modbus tendr que ser configurado para usar el
mismo mtodo de comprobacin de paridad).
Esa comprobacin de paridad solo puede detectar un error si un nmero impar de
Bits que se recogieron o se redujo un a carcter que contiene tres Bits en 1, el
resultado todava es un recuento impar de un Bits en 1.
Si la paridad de comprobacin no est especificada, el Bit paridad no es
transmitido y la comprobacin de paridad no puede ser hecha, entonces un Bit
adicional de parada es transmitido para llenar la trama del carcter.

Comprobacin de la trama: en el modo RTU, los mensajes incluyen una

comprobacin de error en la trama que es basada en el mtodo CRC. La trama del


CRC

comprueba

el

contenido

entero

del

mensaje.

Esto

es

aplicado

independientemente de un mtodo de comprobacin de paridad usado para los


caracteres individuales del mensaje.

80

2.8.2.3 Capa Fsica Modbus

General: el estndar EIA/TIA-485 tambin conocido como el estndar RS-

485. Este estndar permite

sistemas multipunto y punto a punto, en una

configuracin de 2 hilos. Adems, algunos dispositivos pueden implementar una


configuracin de cuatro hilos RS-485.
En un sistema Modbus, un dispositivo Maestro, y uno o varios dispositivos
Esclavos pueden comunicarse en una lnea serial pasivo.
En el sistema estndar Modbus, todos los dispositivos son conectados en un cable
troncal constituido por 3 conductores. Dos de los conductores (la configuracin de
dos-hilos) forman un par trenzado balanceado, en donde los datos bidireccionales
son trasmitidos normalmente en la velocidad de Bit de 9600bps.
Cada dispositivo puede ser conectado (Vase Figura 2.23):
Directamente un cable troncal, formando una cadena tipo margarita.
En una red pasiva TAP con un cable de derivacin.
En una red activa TAP con un cable especifico.

Velocidad del dato: 9600bps y 19.2Kbps son los valores comnmente

usados para la velocidad de comunicacin, 9600 es el valor por defecto requerido.

2.8.2.4 Interfaz Elctrica

RS-232: el RS-232C es un estndar que constituye la tercera revisin de la

antigua norma RS-232, propuesta por la EIA (Asociacin de Industrias


Electrnicas), este estndar se basa en una comunicacin asncrona, es decir que
los datos pueden ser transmitidos en cualquier momento por lo que deben tomarse

81

precauciones para sincronizar la transmisin y recepcin. Este estndar tambin


emplea un puerto serie RS-232C, que consiste en un conector tipo DB25 de 25
pines, aunque es normal encontrar la versin de 9 pines DB9, mas barato e
incluso ms extendido para cierto tipo de perifricos.
Todas las normas RS-232 cumplen con los siguientes niveles de voltaje:
Un 1 lgico es un voltaje comprendido entre 5V y 15V en el transmisor y
entre 3V y 25V en el receptor.
Un 0 lgico es un voltaje comprendido entre +5V y +15V en el transmisor y
entre +3V y +25V en el receptor.
La importancia de conocer esta norma, radica en los niveles de voltaje que maneja
el puerto serial ya que son diferentes a los que manejan los microcontroladores y
los dems circuitos integrados. Por lo tanto se necesita de una interface que haga
posible la conversin de niveles de voltaje a los estndares manejados por el RS232C.

RS-485: RS-485 (Estndar EIA-485) es una mejora sobre RS-422 ya que

incrementa el nmero de dispositivos que se pueden conectar (de 10 a 32) y


define las caractersticas necesarias para asegurar los valores adecuados de
voltaje cuando se tiene la carga mxima. Gracias a esta capacidad, es posible
crear redes de dispositivos conectados a un solo puerto RS-485. Esta capacidad,
y la gran inmunidad al ruido, hacen que este tipo de transmisin serial sea la
eleccin de muchas aplicaciones industriales que necesitan dispositivos
distribuidos en red conectados a una PC u otro controlador para la coleccin de
datos, HMI, u otras operaciones. RS-485 es un conjunto que cubre RS-422, por lo
que todos los dispositivos que se comunican usando RS-422 pueden ser
controlados por RS-485. El hardware de RS-485 se puede utilizar en
comunicaciones seriales de distancias de hasta 4000 pies de cable.

82

La interfaz RS-485 ha sido desarrollada para la transmisin en serie de datos de


alta velocidad a grandes distancias. Est concebida como sistema Bus
bidireccional con hasta 32 participantes. La norma RS-485 define solamente las
especificaciones elctricas para receptores y transmisores en un sistema de bus
digital, pero no define o recomienda ningn protocolo de datos. Fsicamente puede
instalarse tanto como un sistema de 2 hilos o de 4 hilos.
Dado que varios transmisores trabajan en una lnea comn, tiene que garantizarse
con un protocolo que en todo momento est activo, como mximo, un transmisor
de datos. Los otros transmisores tienen que encontrarse en ese momento en
estado de alta impedancia.
RS-485 de 2 hilos: el Bus RS-485 de 2 hilos se compone segn la Figura 2.23
de un cable propio del bus con una longitud mxima de 500mts. Los participantes
se conectan a este cable a travs de una lnea adaptadora de longitud mxima de
5 metros. La ventaja de la tcnica de 2 hilos reside esencialmente en la capacidad
multimaestro, en donde cualquier participante puede cambiar datos en principio
con cualquier otro. El Bus de 2 hilos es bsicamente apto slo para
comunicaciones Halfduplex.
Puesto que slo hay a disposicin una va de transmisin, siempre puede enviar
datos un solo participante. Despus de finalizar el envo, pueden responder otros
participantes.

83

Figura 2.21-Topologia General de 2 Hilos.

Fuente [7]

RS-485 de 4 hilos: la tcnica de 4 hilos slo puede ser usada por

aplicaciones Maestro/Esclavo. Segn la Figura 2.24 se cablea la salida de datos


del Maestro a las entradas de datos de todos los Esclavos.
El Bus de 4 hilos es apto para comunicaciones FullDuplex, ya que cada direccin,
recepcin y transmisin, tiene su propia ruta.
Figura 2.22-Topologia General de 4 Hilos.

Fuente [7]

84

3 DISEO E IMPLEMENTACIN DEL MDULO

En el presente capitulo se muestra el diseo de la tarjeta de adquisicin de datos


(DAQ) resultante, con sus respectivas caractersticas hasta su proceso de
instalacin. La Adquisicin de Datos consiste en tomar un conjunto de variables
fsicas analgicas y digitales para convertirlas en tensiones elctricas y
digitalizarlas de forma que se puedan procesar en el PLC, permitiendo su
monitoreo dentro del proceso. El hardware utilizado es bsicamente una tarjeta de
adquisicin de datos utilizada como dispositivo Esclavo, el diseo tiene entradas
digitales, entradas analgicas, interfaz de usuario y comunicacin serial por el
puerto RS485 con configuracin de par trenzado bajo el protocolo de
comunicacin Modbus. Teniendo en cuenta esto se muestra el esquema de diseo
del prototipo en la Figura 3.1.
Figura 3.1-Esquema de Diseo.

85

3.1

DISPOSITIVO MAESTRO

En el punto 2.8.1 del captulo 2 se describieron los requerimientos generales del


protocolo Modbus de un dispositivo Maestro/Esclavo, donde el dispositivo Maestro
es el encargado de ejecutar las acciones de solicitud hacia el dispositivo Esclavo.
Un dispositivo Maestro puede ser un PC, un PLC, u otro dispositivo que solicite
alguna peticin al dispositivo Esclavo a travs de un puerto de comunicaciones
serial usando el protocolo Modbus.
Para este proyecto se utiliz como dispositivo Maestro es PLC S7-200 Siemens
(Vase Anexo F), que se encuentra en las instalaciones del laboratorio de
Automtica de la Universidad San Buenaventura Cali. Este PLC trae incluido el
hardware de comunicacin serial RS485 indispensable para la transmisin
Modbus. Las libreras y rutinas de interrupciones pre-configuradas y diseadas
especialmente para la comunicacin Modbus se instalan desde el STEP 7Micro/WIN (Software de aplicacin del PLC). Las operaciones del protocolo
Modbus permiten configurar el S7-200 para que acte como Maestro o Esclavo.
Las operaciones de Maestros Modbus en el PLC S7-200 actan en modo RTU y
se comunican con uno o varios Esclavos Modbus a travs del puerto de
comunicacin de la CPU especfico para dicho protocolo; en este caso es la CPU
222 con puerto de comunicacin RS-485.
Los parmetros bsicos para configurar un dispositivo Maestro son:
Puerto serial
Velocidad de comunicacin
Bit de paridad
Bit de parada
Modo RTU o ASCII
Tiempo de espera de respuesta

86

El PLC S7-200 incorpora una librera de operaciones que facilita la comunicacin


con los equipos Modbus. Esta librera Incorpora funciones Modbus de lecturaescritura del dispositivo Maestro en un rango de direccin especfica (Vase
tercera columna de la Tabla 3.1). El Esclavo debe soportar las funciones indicadas
en la Tabla 3.1.

Tabla 3.1-Tipo de Modelo del Dato


Leer
o Funcin de Esclavo requeridas
Direccin Modbus
Escribir
por el Maestro
Leer
Funcin 1
00001 a 09999 salidas
Funcin 5 para una sola salida
digitales
Escribir
Funcin 15 para varias salidas
Leer
Funcin 2
10001 a 19999 entradas
digitales
Escribir
Imposible
Leer
Funcin 4
30001 a 39999 registros de
entrada
Escribir
Imposible
Leer
Funcin 3
40001 a 49999 registros de
Funcin 6 para un solo registro
retencin
Escribir
Funcin 16 para varios registros
Fuente [9]

3.1.1 Cable de Red

Los PLC S7-200 de Siemens integran mdulos de comunicacin como interface


Industrial-Modbus, Ethernet, entre otros.
Estos mdulos se incorporan dentro de la CPU 222 del S7-200 que viene con un
puerto de comunicacin serial RS-485 con un cable de red par trenzado con las
caractersticas tcnicas de la Tabla 3.2.

87

Tabla 3.2-Datos Tcnicos Generales de un Cable de Red.


Datos tcnicos

Descripcin

Tipo de cable

Apantallado, con par trenzado

Resistencia de bucle

115 /km

Capacidad efectiva

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

Impedancia nominal
Atenuacin
Seccin del
cable

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


alma

Dimetro del cable


Fuente [9]

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

Los puertos de comunicacin de las CPUs S7-200 son compatibles con el


estndar RS-485 va un conector DB9 conforme al estndar RS-485. La Tabla 3.3
muestra el conector que ofrece el enlace fsico para el puerto de comunicacin,
indicndose tambin las asignaciones de pines de los puertos de comunicacin.

Tabla 3.3-Asignacin de Pines del Puerto de Comunicacin del S7-200


Enchufe
N de pin
Puerto RS-485
1
Tierra
2
Hilo lgico
Seal B RS-485
3
RTS (TTL)
4
5
Hilo lgico
6
5 V,100 resistor en serie
7
24 V
Seal A RS-485
8
Seleccin protocolo de 10 Bits
9
(entrada)
Carcasa del enchufe Tierra
Fuente [9]

88

3.2

MDULO ESCLAVO

Para llevar a cabo la comunicacin Modbus en una red, es necesario la presencia


de al menos de un Maestro Modbus. Un Esclavo Modbus puede ser un PLC, un
variador de velocidad, un transmisor, un HMI o cualquier mdulo que pueda
comportarse como un Esclavo Modbus cumpliendo con los siguientes
parmetros:
Direccin del Esclavo
Puerto serial a utilizar
Velocidad de comunicacin
Bit de paridad
Bit de parada
Modo RTU o ASCII

El dispositivo Esclavo tiene que mantener un estado de recepcin (en espera)


para poder aceptar los mensajes que son enviados por el Maestro. Una vez que el
Esclavo recibe la trama completa Modbus, analiza y procesa la peticin enviando
una respuesta al Maestro. La recepcin y la transmisin de una trama Modbus
debe cumplir las con las normas del protocolo.

3.2.1 Requerimientos Especficos del Mdulo Esclavo

3.2.1.1 Requerimientos del Hardware

Aunque el prototipo diseado pretende ser una herramienta con fines didcticos,
los elementos y dispositivos son los mismos usados en la industria. Por esta razn

89

fue necesario determinar un hardware que se ajuste a los estndares de


dispositivos industriales.
Los microcontroladores son dispositivos diseados para diversas aplicaciones,
tales como para control y procesamiento de datos. Para el desarrollo de la tarjeta
de adquisicin de datos el microcontrolador es el encargado de la adquisicin de
los datos y cumple con los requerimientos del protocolo Modbus mencionados,
adems de esto, permite definir espacios de memoria que son de uso exclusivo
del protocolo y la adquisicin de datos como: puertos de entrada de las seales
Anlogas-Digitales y registros para la recepcin y transmisin de datos.
Teniendo en cuenta lo anterior el hardware se compone de 5 ncleos principales
que son:
Unidad de conexin de las entradas digitales.
Unidad de conexin de las entradas anlogas.
Puerto de comunicacin serial.
Unidad de control y procesamiento de datos.
Interfaz de usuario (teclado y LCD).

3.2.2 Diseo del Mdulo Esclavo

De acuerdo a los requerimientos del hardware mencionados anteriormente y las


necesidades del laboratorio el mdulo debe contar con los siguientes
componentes:
8 Entradas digitales 24

2 Entradas anlogas 4-20mA.


Puerto de Comunicacin serial RS-485.
Interfaz de Usuario

90

Las caractersticas seleccionadas para el mdulo Esclavo son las que utilizan la
mayora de dispositivos de la industria, tales como trasmisores, vlvulas y
sensores.

3.2.2.1 Entradas Digitales

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


de 24

en los respectivos conectores. Para que estas seales digitales puedan

ser trasmitidas al microcontrolador, debe reducirse el voltaje a niveles TTL. En la


actualidad existen diversos circuitos integrados que brinda estas caractersticas,
entre ellos estn los Rels y los Opto acopladores. Estos ltimos tienen una gran
ventaja ya que cuentan con un aislamiento galvnico que se crea entre el circuito
de entrada y de salida del opto acoplador.
Fundamentalmente los opto acopladores son dispositivos que estn formados por
una fuente emisora de luz (circuito de entrada), y un foto-sensor de silicio (circuito
de salida), al no haber contacto elctrico produce un aislamiento superior a los
10M, brindando as una alta proteccin al microcontrolador.
Acorde a esto se utiliz el opto acoplador 4N35, el cual tiene un LED emisor que
necesita una corriente de entrada if = 20mA (Vase Anexo E) para emitir luz.
Debido a que la entrada del LED es 24

cuando el estado de la entrada es un 1

lgico y para que su funcionamiento sea ptimo se calcul la resistencia para


limitar la corriente del LED. Por lo tanto:
Ec. 12
Ec. 13
Ec. 14

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 Anlogas

En la Figura 3.3 se observa que las entradas anlogas reciben una seal de 420mA la cual se convierte en voltaje para el conversor Anlogo-Digital(A/D), esto
se logra conectando a una resistencia en paralelo a la seal de entrada para
obtener un voltaje variable 1-5V, donde un 1V es el valor mnimo (4mA) y 5V el
valor mximo (20mA).
Teniendo en cuenta esto, la resolucin del conversor Anlogo-Digital se calcula
mediante la frmula:
Ec. 16

92

Donde

son los limites superior e inferior respectivamente de los

voltajes que van a ser convertidos y

es el nmero de Bits del conversor A/D.

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

que aumente en la entrada del conversor este

aumentara una unidad en su salida.


Adems se implemento un amplificador operacional como seguidor de voltaje para
obtener una baja impedancia a la salida que permita tener lecturas correctas hacia
el microcontrolador, ya que se recomienda tener una impedancia mxima de
entrada de 10K6.
El operacional que se utilizo fue el LM324 debido a que tiene un bajo consumo de
energa (esto aparece en el Anexo D como 'power drain'), se usa como aplicacin
para fuentes sencillas de alimentacin y puede trabajar con voltajes desde 3V
hasta 32V. Como este operacional posee perdidas, el voltaje de alimentacin tiene
que ser mayor que 5V. Por cuestiones de diseo el voltaje de alimentacin que se
tomo fue de 9V y aparte se coloca una resistencia de un 1K a la salida del
operacional para limitar la corriente que llega al microcontrolador en caso de que
haya un sobre voltaje.

Esta parte fue tomada del Anexo B Datos Tcnicos del Microcontrolador PIC16F877A

93

Figura 3.3-Circuito de las Entradas Analogas

Teniendo en cuenta el rango de la seal de corriente de 4-20mA y el rango de


voltaje de 1-5V del circuito operacional, entonces:
Ley de ohm:
Ec. 19
Ec. 20
Ec. 21
Ec. 22
Ec. 23
Donde

es el valor de resistencia para la conversin de corriente a

voltaje que se usa en las 2 entradas anlogas del dispositivo.


3.2.2.3 Puerto de Comunicacin RS-485

94

Para integrar este puerto de comunicacin al mdulo Esclavo se utiliz el


integrado MAX485 (Vase Anexo C), el cual se encarga de regular los niveles de
voltaje TTL del microcontrolador y los del estndar RS-485. Este integrado maneja
una seal de control para la recepcin y transmisin de datos. En la Tabla 3.4 se
indican los posibles estados que puede tener el integrado MAX485 segn las
seales de control manejadas desde el microcontrolador.

Tabla 3.4 Estados de Control del Integrado MAX485.


Seal de Control
Estado
Habilita la Recepcin
0
1
Habilita la Transmisin

En la Figura 3.4 se muestra la conexin del circuito.

Figura 3.4-Puerto de Comunicacin RS-485

95

El conector implementado en el mdulo para este puerto de comunicaciones es un


DB9 macho, el cual es compatible con el puerto serial RS-485 del PLC S7-200.
(Vase Figura 3.5).
Figura 3.5-Conector Macho DB-9

3.2.2.4 Interfaz de Usuario

Se implemento un Display de cristal lquido LCD de 16x2 como interfaz visual para
el mdulo Esclavo para observar algunos parmetros a configurar del protocolo
como la direccin del dispositivo Esclavo, la velocidad de transmisin y tambin
para visualizar los datos Anlogos-Digitales localmente de la DAQ sin necesidad
de tener comunicacin con el PLC (Vase Figura 3.6).
Para poder modificar digitalmente dichos parmetros del protocolo y seleccionar la
visualizacin de los datos Anlogos-Digitales, se implementaron 3 pulsadores que
manejaban la configuracin de estos. Estos pulsadores junto al LCD corresponden
a la interfaz de usuario.

96

Figura 3.6-Circuito Interfaz de Usuario

Interfaz pulsadores: Se diseo un teclado con 3 pulsadores conectados a

3 pines del puerto C del microcontrolador de la siguiente manera: un extremo del


pulsador est conectado en serie a la entrada del PIC y a una resistencia de 10K
est conectada a VCC. El otro extremo del pulsador va conectado a tierra y a un
condensador de 1nF que a su vez est conectado a la entrada del PIC (Vase
Figura 3.6).
El objetivo de este circuito es eliminar el rebote y filtrar el ruido ocasionado en el
momento de presionar el pulsador.
Cada pulsador usa lgica negativa, al presionarlo pone un 0 lgico a la entrada del
microcontrolador y cuando no pone un 1 lgico.

97

Mdulo LCD: la conexin del display de cristal lquido es directa con el

microcontrolador y no necesita significativas adecuaciones fsicas, ya que este


consta de su propio controlador, espacio de memoria y su manejo se hace por
software lo cual hace ms sencilla su implementacin.
Debido que el mdulo LCD es un circuito integrado hay que garantizar que tenga
conectados la alimentacin, la

tierra y el contraste para su correcto

funcionamiento. El contraste LCD se maneja mediante la variacin de un Trimmer


conectado al pin de VEE del LCD, en la Figura 3.6 se muestra la conexin
implementada.

3.2.2.5 Unidad de Procesamiento y Control

De acuerdo a los requerimientos tcnicos del hardware mencionados en la seccin


3.2.1.1 se escogi el microcontrolador PIC16F877A como el dispositivo
programable aplicado a la adquisicin de datos, implementacin del protocolo
Modbus y monitoreo de las entradas (digitales-anlogas) porque posee varias
caractersticas (Vase Anexo B) que hacen a este microcontrolador un dispositivo
muy verstil, eficiente y prctico para utilizarse en estas aplicaciones.
Algunas de las caractersticas importantes de este microcontrolador, son:
Puerto de comunicacin serial (USART).
Bajo consumo 2mA para 5V.
CPU tipo RISC (conjunto de instrucciones reducidas).
Puertos de entrada/salida.
Un conversor anlogo/digital de 10-Bit.

Memoria de programa de 8Kx14 Bits.

Capacidad de Almacenamiento en su memoria EEPROM.

98

El esquema bsico diseado y la asignacin de pines al microcontrolador que


corresponde a la especificacin de la DAQ se muestran en la Figura 3.7 y la Tabla
3.5.
Tabla 3.5-Asignacin de Pines
# Pin
1

Nombre
MCLR

Funcin
RESET

RA0

ENTRADA ANLOGA 0

RA1

ENTRADA ANLOGA 1

RA2

VREF+= 5V

RA3

VREF-= 1V

RA4

RA5

RE0

RE1

10

RE2

11

Vdd

5 VDC

12

Vss

GND

13

OSC1/CLK

CRISTAL

14

OSC1/CLK

CRISTAL

15

RC0

BOTN UP

16

RC1

BOTN DOWN

17

RC2/CCP1

BOTN OK

18

RC3/SCK

19

RD0/PSP0

CONTROL LCD E

20

RD1/PSP1

CONTROL LCD RS

21

RD2/PSP2

CONTROL LCD RW

22

RD3/PSP3

23

RC4/SD1

24

RC5/SD0

25

RC6/Tx

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 Esquemtico General de la DAQ.

101

3.2.2.6 Fuente de Alimentacin


Dado que se requiere un diseo ms ptimo y sencillo del dispositivo se opto por
usar un adaptador de voltaje comercial, para no disear una fuente interna en el
dispositivo lo cual lo hace ms grande.
El adaptador de voltaje tiene las siguientes caractersticas:
Voltaje de entrada: 100-240

~50/60Hz

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

3.2.3 Evaluacin de costos


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

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 informacin mostrada se demuestra que la implementacin de este


proyecto es ms econmica que la adquisicin de un equipo similar en el
mercado, cabe anotar que en estos costos no est tomado en cuenta los valores
asociados con la parte de diseo (mano de obra) ya que este es un proyecto tipo
acadmico, que inicialmente no fue pensado para la comercializacin.

103

4 DISEO E IMPLEMENTACIN DEL SOFTWARE DEL MDULO

El diseo del software del microcontrolador fue realizado sobre la herramienta de


programacin PIC C Compiler de la firma CCS (Custom Computer Services) de
acuerdo a los requerimientos tcnicos exigidos por la implementacin del
hardware para el Sistema de Adquisicin y Procesamiento de Datos (Anlogosdigitales). El PIC C Compiler permite que la implementacin del Software de este
proyecto sea desarrollada bajo el lenguaje de programacin C; haciendo la
programacin muy flexible y manejando una estructura sencilla y apropiada para
esta aplicacin.
El software se dise de modo que el mdulo Esclavo pueda comunicarse con el
PLC de acuerdo a las caractersticas del protocolo Modbus a travs del puerto
serie RS-485. Para la implementacin del software se definen algunos parmetros
necesarios para la comunicacin Modbus entre dispositivos Maestro-Esclavo tal
como muestran en la Tabla 4.1. El mdulo desarrollado funciona como dispositivo
Esclavo y el PLC Siemens S7-200 como Maestro.
Tabla 4.1-Parmetros de la DAQ
Modbus-RS-485
Interfaz de comunicacin
Direccin de Esclavo

1-8

Modo de transmisin

Halfduplex-RTU

Velocidad

1200/2400/4800/9600/19200

Paridad

Ninguna

Nmero de entradas digitales

Nmero de entradas anlogas

104

4.1

REQUERIMIENTOS DEL SOFTWARE

El mdulo de adquisicin de datos Anlogo-Digital funciona como dispositivo


Esclavo y se comunica mediante protocolo Modbus con el PLC, para esta tarjeta
de adquisicin se dise un Software que cumpla con tres requerimientos bsicos:
1. Adquisicin de datos:

Adquisicin de las seales anlogas y procesamiento de datos.

Adquisicin de las seales digitales y procesamiento de datos.

2. Comunicacin serial bajo el protocolo de Comunicacin Modbus.

3. Interfaz usuario para el mdulo Esclavo.

4.2

Manejo y comunicacin con el LCD.

Lectura de pulsadores y procesamiento de datos.

DESARROLLO DEL SOFTWARE DEL MICROCONTROLADOR

El Software en el microcontrolador del mdulo Esclavo se implement para


ejecutar simultneamente tareas especficas que estn dentro del programa
principal, estas tareas se encargan de ejecutar las funciones planteadas en los
requerimientos del Software que son necesarias en la aplicacin de este proyecto.
De acuerdo a que la comunicacin serial Modbus se maneja por interrupciones, el
programa siempre tiene prioridad sobre el sistema de comunicacin serial en el
dispositivo Esclavo, por esta razn se dise un programa que pueda ejecutar la
comunicacin

Modbus

las

dems

concurrentemente.

105

funciones

del

dispositivo

Esclavo

4.3

ESTRUCTURA DEL PROGRAMA PRINCIPAL

El diseo del software se compone de una estructura principal la cual contiene 6


rutinas. Cada una de estas rutinas realiza una tarea diferente que se ejecuta de
acuerdo a los requerimientos de Software mencionados del mdulo Esclavo
(Vase Figura 4.1).
Inicialmente tenemos la rutina de inicializacin en la cual se lleva a cabo la
inicializacin de variables, espacio de memoria y configuracin de las libreras;
esta rutina solo se ejecuta una vez en el programa principal.
Despus sigue la rutina Configuracin del Mdulo Esclavo que usa la informacin
que se suministra a travs de la interfaz de usuario con los pulsadores y configura
los parmetros del dispositivo Esclavo. A partir de aqu se inicia un ciclo infinito en
el programa principal.
Seguidamente est la rutina Interfaz de Pulsadores la cual tiene la funcin de
recibir, procesar, ejecutar la informacin de interfaz de usuario a travs del teclado
(pulsadores).
A continuacin est la rutina de adquisicin de datos la cual sirve para leer los
datos de entrada Anlogos-Digitales del sistema, cuyos datos son adecuados en
un formato real y didctico para que cuando exista una solicitud estn listos para
ser enviados.
La interfaz LCD es la de visualizacin de las pantallas en el LCD para que el
usuario pueda configurar el dispositivo y monitorear los datos localmente.
Por ltimo se consulta el registro de recepcin serial, si no hay ninguna
interrupcin serial el programa principal salta hasta la rutina Configuracin mdulo
Esclavo y continua por las dems rutinas siguientes hasta volver a consultar el

106

registro de recepcin serial quedndose en un ciclo infinito hasta que ocurra la


interrupcin serial, en caso que la interrupcin ocurra se ejecuta la rutina Modbus
en la cual se recibe la solicitud modbus, se procesa y se enva una respuesta de
acuerdo a la solicitud, una vez la rutina se haya ejecutado el programa principal
regresa a la rutina Configuracin del mdulo Esclavo creando otro ciclo de
programa infinito.

Figura 4.1-Diagrama de Flujo Rutina General.

4.3.1 Inicializaciones

107

Esta rutina solo se ejecuta cada vez que se energiza el mdulo, en esta misma
se lleva a cabo tareas tales como configurar puertos de Entradas-Salidas,
configuracin del puerto serial (velocidad, modo de comunicacin), configuracin
de contadores, interrupciones y espacios de memoria (Vase Figura 4.2).

Figura 4.2-Diagrama de Flujo Rutina Inicializaciones

Configuracin de espacios de memoria y registros

108

En esta subrutina se lleva a cabo la configuracin e inicializacin de los


registros y espacios de memorias los cuales son usados en las rutinas del
programa principal en la Tabla 4.2 se encuentra las variables utilizadas
Tabla 4.2-Variables de Programa
Variable
Funcin
input_regs[2]
Variable tipo chart en la cual se almacena el valor
de las 2 seales anlogas una vez se haya hecho
la adecuacin, para despus ser utilizada en la
solicitud Modbus.
inputs

Variable tipo int8 la cual almacena el estado real


de las 8 entadas digitales una vez se le haya
hecho la adecuacin, para despus ser utilizada en
la solicitud Modbus.

Menu

Variable indica en que men se encuentra la


interfaz de usuario
Variable indica que opcin se apunta con el cursor
en cualquier men que se encuentre en la interfaz
de usuario

Opcin

OpcinActivada
MODBUS_ADDRESS

Variable que indica cuando una opcin es


seleccionada para ser modificada
Parmetro que se le ingresa a la librera modbus
para determinar la direccin del esclavo

MODBUS_SERIAL_BAUD Parmetro que se le ingresa a la librera modbus


para determinar la velocidad del esclavo
Direccin Esclavo

Variable que se modifica para configurar la


direccin del esclavo mediante la interfaz de
usuario, el rango es de 1-8

Velocidad Esclavo[4]

Variable tipo chart que se modifica para configurar


la velocidad de transmisin del Esclavo mediante
la interfaz de usuario, los valores de velocidad son
[1200-2400-4800-9600-19200bps]

109

Inicializacin librera Modbus


Rutina que permite la inicializacin y configuracin de la librera Modbus
(Modbus.C)7, aqu se definen algunos parmetros para el funcionamiento de
esta librera dentro del software del mdulo Esclavo:

Modo de trasmisin RTU.

Tipo de Modbus Esclavo.

Tamao del bfer 64 Bytes.

Pin de control E1, pin transmisin C6 y pin de recepcin C7.


Interrupcin serial externa.
Para la asignacin de estos parmetros es importante leer la documentacin
incluida para la librera Modbus.C.

Inicializacin librera LCD


En esta se lleva a cabo la inicializacin y configuracin de la librera para el
manejo del LCD (LCD.C)8, donde se define un parmetro para el
funcionamiento esta librera:

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

Inicializacin ADC puertos y reloj


En esta subrutina se configuran los pines A1 y A2 para las entradas anlogas,
los pines A3 y A4 se definen para la referencia positiva y negativa
7

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

110

respectivamente, adicionalmente se configura el reloj para la conversin de los


datos anlogos. (Vase Tabla 3.5)
Inicializacin de puertos de entrada.
Rutina para la configuracin de puertos, se asigna el puerto B como entrada
para las 8 entradas digitales y se definen los pines C0, C1 y C2 como entradas
a la interfaz del teclado. (Vase Tabla 3.5)

4.3.2 Configuracin Mdulo Esclavo

En esta rutina se modifican parmetros del programa segn la informacin


suministrada mediante la interfaz de usuario, se configura dos parmetros: La
direccin del Esclavo y la velocidad de transmisin. (Vase Figuera 4.3)
Figura 4.3-Diagrama de Flujo Rutina Configuracin del Modulo Esclavo

111

4.3.3 Interfaz Pantalla LCD

En esta rutina se lleva a cabo la impresin de diferentes pantallas o mens en


el LCD. Para determinar que pantalla debe ser impresa se consulta el estado
de tres variables Men, Opcin y OpcionActivada (Vase Figura 4.4), el estado
de estas variables es modificado en la interfaz de pulsadores.

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 (Vase Figura 4.5), estas funciones se
hacen mediante tres subrutinas las cuales son:
Funcin Up
Funcin Down
Funcin Ok

Figura 4.5-Diagrama de Flujo Rutina Interfaz Pulsadores

115

4.3.4.1 Funcin Up

Esta subrutina sirve para desplazar la flecha de seleccin entra las opciones que
hay en cada men que se visualiza en el LCD, adems permite modificar los
parmetros de configuracin del Esclavo ascendentemente, esto se hace
mediante la consulta y modificacin del estado de tres variables cada vez que se
llama la subrutina Funcin Up: Men, Opcin y OpcionActivada. Dependiendo del
estado estas se ejecuta una accin o se modifica el estado de una o varias de
estas variables (Vase Figura 4.6)

116

Figura 4.6-Diagrama de Flujo Subrutina Funcin Up

117

118

4.3.4.2 Funcin Down

Esta subrutina sirve para desplazar la flecha de seleccin entra las opciones que
hay en cada men que se visualiza en el LCD, adems permite modificar los
parmetros de configuracin del Esclavo descendentemente, esto se hace
mediante la consulta y modificacin del estado de tres variables cada vez que se
llama la subrutina Funcin Down: Men, Opcin y OpcionActivada. Dependiendo
del estado estas se ejecuta una accin o se modifica el estado de una o varias de
estas variables (Vase Figura 4.7).

119

Figura 4.7-Diagrama de Flujo Subrutina Funcin Down

120

4.3.4.3 Funcin Ok

Esta subrutina sirve para ingresar a un men en especifico, para entrar y salir de
una opcin a modificar (parmetros de configuracin) y retroceder a un men
anterior. Esto se hace mediante la consulta y modificacin del estado de tres
variables cada vez que se llama la subrutina Funcin Ok: Men, Opcin y
OpcionActivada. Dependiendo el estado de las variables se ejecuta una accin o
se modifica el estado de una o varias de estas variables (Vase Figura 4.8).

121

Figura 4.8-Diagrama de Flujo Subrutina Funcin Ok

122

4.3.5 Adquisicin de Datos

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

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.
Adecuacin de entradas digitales
En la seccin 3.2.2.4 se mencion que las entradas digitales son negadas,
para mantener el nivel original se hizo una adecuacin por software la cual
consiste en hacer una XOR entre la variable que almacena los datos digitales y
el numero FFh para as negar las entradas y mostrar su valor real.
Anloga 1
Se selecciona el canal uno del conversor anlogo, se lee el dato de ese canal y
se almacena en una variable.
Adecuacin de entradas anloga 1
Por motivos didcticos se decidi que las entradas anlogas fueran escaladas
en porcentajes 0-100%, se hizo una adecuacin por software la cual consiste
en calcular el valor de la pendiente entre el valor real de la codificacin y el
valor de escalamiento (Vase la Ec.24). Luego de calcular este valor se
multiplica por el dato anlogo almacenado en la variable para hacer el
escalamiento en porcentaje.
La pendiente es definida como:
Ec. 24
Ec. 25
Ec. 26
Ec. 27
Ec. 28

124

Anloga 2
Se selecciona el canal dos del conversor anlogo, se lee el dato de ese canal y
se almacena el dato en una variable.
Adecuacin de entradas anloga 2
La adecuacin presentada para la anloga 1 tambin aplica para la anloga 2.

4.3.6 Modbus

Cada vez que haya una interrupcin serial se ejecuta esta rutina que es la
encargada de armar la trama con los datos recibidos serialmente y analizar su
validez, adems responde a la solicitud requerida y prepara los datos para
construir una trama de respuesta que es enviada al Maestro Modbus. (Vase
Figura 4.10)

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 vlida, si no lo es se genera una respuesta en
excepcin.

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

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

Respuesta en excepcin
Se enva una respuesta al Maestro en caso de alguna inconsistencia por
que la trama no es vlida y/o funcin no soportada.

4.3.6.1 Cdigos de Funcin Modbus

Para poder usar el hardware del mdulo por medio del protocolo Modbus es
preciso establecer una relacin entre las funciones y las entradas del mdulo,
dado que este es un dispositivo de solo entradas anlogas-digitales se utilizaron
dos funciones del protocolo Modbus que se detallaran a continuacin.

Funcin 02(0x02) Lectura de Entradas Digitales: Esta funcin captura la

informacin del estado de entradas de datos discretos, cada entrada necesita un

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 funcin se lleva a
cabo leyendo el Bit de la correspondiente entrada digital.
Para mejorar el rendimiento se ha decidido implementar un registro que permita
conocer el estado de las 8 entradas digitales por medio de esta funcin, de esta
forma, de una sola peticin se adquiere informacin de todo el estado de todas las
entradas digitales. En la Figura 4.11 se detalla el software de la funcin.
Figura 4.11-Diagrama de Flujo Subrutina Leer Entradas Digitales

128

Se consulta si el nmero de entradas solicitados est entre el rango de las


entras del dispositivo Esclavo.

Se verifica la direccin de registro y el nmero de registro de las entradas


digitales a leer.

Procesamiento de la solicitud Modbus


Se lleva cabo la el cumplimiento de la funcin 02 y se verifica que no hubo
ningn error al procesar la solicitud

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

Respuesta en excepcin
Se realiza una respuesta en excepcin en caso:
Si el nmero de entradas solicitados no est entre el rango de las
entras del dispositivo Esclavo.
Si la direccin de registro y el nmero de registro de las entradas
anlogas a leer no estn correctos.
Si hubo error al procesar la solicitud.

Funcin 4(0x04) lectura de entradas anlogas: La funcin 04 es una

funcin para la adquisicin de datos de entrada pero se diferencia de la funcin 02


en que los datos se registran de 16 Bits en lugar de 1 Bit.
Por medio de esta funcin se lee el valor que hay en las entradas anlogas del
mdulo, cuya variacin de 1 a 5

se digitaliza con valores discretos entre 0 a

1023, puesto que el ADC es de 10 Bits. Luego se escalan de 0-100%. En la Figura


4.12 se describen las subrutinas de la funcin.

129

Figura 4.12-Diagrama de Flujo Subrutina Leer Entradas Anlogas

Se consulta si el nmero de entradas solicitados est entre el rango de las


entras del dispositivo Esclavo.
Se verifica la direccin de registro y el nmero de registro de las entradas
anlogas a leer.

130

Procesamiento de la solicitud Modbus


Se lleva cabo la el cumplimiento de la funcin 04 y Se verifica que no hubo
ningn error al procesar la solicitud

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

Respuesta en excepcin
Se realiza una respuesta en excepcin en caso:
Si el nmero de entradas solicitados no est entre el rango de las
entras del dispositivo Esclavo.
Si la direccin de registro y el nmero de registro de las entradas
anlogas a leer no estn correctos.
Si hubo error al procesar la solicitud.

131

5 PRUEBAS Y RESULTADOS

En este captulo se describen las pruebas realizadas para verificar el correcto


funcionamiento del mdulo Esclavo una vez terminada su construccin.

5.1

SOFTWARE UTILIZADO PARA LAS PRUEBAS

Para poder establecer una comunicacin Modbus entre el dispositivo Esclavo y el


PLC S7-200 es necesario instalar en el PC primero el Software del PLC STEP 7Micro/WIN y despus la librera Modbus de instrucciones para el STEP 7Micro/WIN.
STEP 7-Micro/WIN de Siemens es el Software o plataforma de trabajo que
adems permite configurar el PLC S7-200 como un Maestro Modbus. Cuenta con
la capacidad de poder monitorear la comunicacin Modbus, los datos solicitados y
los errores que se puedan presentar en la solicitud. Para poder hacer el monitoreo
es necesario que el STEP 7-Micro/WIN tenga comunicacin constante con el PLC;
esta comunicacin debe hacerse utilizando cualquier medio serial(PPI, Profibus,
OPC, etc.) excepto el puerto 0 del PLC puesto que este es usado para la
comunicacin Modbus. Para hacer estas pruebas se decidi hacer el monitoreo
por comunicacin Ethernet TCP/IP porque es de fcil configuracin tanto en el
PLC como en el PC. En la siguiente Figura 5.1 se observa el sistema
implementado para las pruebas.

132

Figura 5.1-Sistema Para Las Pruebas

Para empezar, la librera de operacin para el protocolo RTU Modbus estn


disponibles dentro de la carpeta Libreras del rbol de operaciones del STEP 7Micro/WIN"(Vase Figura 5.2). El requerimiento para utilizar esta librera de
funciones de Modbus es disponer del STEP 7-Micro/WIN a partir de la versin
V3.2. Para la comunicacin Modbus se utilizan los mdulos de la librera Modbus:
"MBUS_CTRL" y "MBUS_MSG" para la parte del Maestro, las Tablas 5.1 y 5.2
describen el significado y las posibilidades de seleccin de los parmetros de
estos mdulos.

133

Figura 5.2-rbol de Operaciones

Fuente [9]

134

Tabla 5.1Parmetros de la Operacin MBUS_CTRL


Parmetros
Significado
EN
Mode
Baud

Liberacin
Indicacin del protocol
Velocidad de transmisin en kBit/s

Parity

Paridad

Timeout

Tiempo mximo para la respuesta del


Esclavo en ms

Done
Error

Aviso de finalizacin
Cdigo de error

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

Vase Tabla 2.7

Tabla 5.2-Parmetros de la operacin MBUS_MSG


Parmetro
Significado
Posibilidades de seleccin
EN
Liberacin
First
Activacin
Slave
Direccin del Esclavo
RW
"lectura" o "escritura"
0 = lectura, 1 = escritura
Addr
0 -128 = Salidas digitales
Direccin de inicio en Mobdus
1001-10128 = Entradas
digitales
30001-30092 = Entradas
analgicas
40001-49999 = Registros 2
Count

DataPtr
Done
Error
Fuente [9

Nmero de Bits (0xxxx, 1xxxx) /


Palabras
(3xxxx,
4xxxx)
Puntero al inicio de la memoria
de variables
Aviso de finalizacin
Cdigo de error

135

Vase 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 conformacin del status chart.
Figura 5.3-Ventana Status Chart

Address= Direccin de la variable que se quiere monitorear.


Format= Formato que se representa el valor de la variable monitoreada:
Signed, Unsigned, Hexadecimal, Binary, FLoat y ASCII.
Current Value= Valor actual de la variable monitoreada.

5.2

CONFIGURACIN DE LOS MDULOS MBUS_CTRL Y MBUS_MSG

Para realizar las pruebas se configuro la librera Modbus de la siguiente manera:

136

5.2.1 MBUS_CTRL

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

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

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

algn

error

ha

ocurrido.

Cabe destacar que algunas pruebas realizadas para el correcto funcionamiento


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

5.2.2 MBUS_MSG

La operacin MBUS_MSG sirve para iniciar una peticin a un Esclavo Modbus y


procesar la respuesta. La operacin MBUS_MSG inicia una peticin a un Esclavo
Modbus si estn activadas las entradas EN y First. Para enviar la peticin, esperar
la respuesta y procesarla se requieren generalmente varios ciclos del programa
del PLC. La entrada EN debe estar puesta a 1 para poder enviar una peticin,
debiendo permanecer activada hasta que se active el Bit Done. (Vase Figura 5.5)

138

Figura 5.5-Modul MBUS_MSG

Nota: Slo puede estar activada una operacin MBUS_MSG a la vez. Si hay ms
de una operacin MBUS_MSG activada, se procesar la primera MBUS_MSG
ejecutada y todas las dems operaciones MBUS_MSG se cancelarn con el
cdigo de error 6.
Si hay una nueva peticin que se deba enviar el parmetro First debe estar
activado durante un ciclo. La entrada First se debe activar cuando se detecte un
flanco positivo, haciendo que la peticin se transmita una vez. El parmetro Slave
es la direccin del Esclavo Modbus. El rango permitido est comprendido entre 0 y
247. La direccin 0 se usa como direccin de broadcast (difusin general),
pudiendo utilizarse slo para peticiones de escritura. No hay respuesta a una
peticin de broadcast a la direccin 0. No todos los Esclavos soportan la direccin
de broadcast. El parmetro "EN=1" habilita esta rutina.
Configuracin:
El parmetro "EN=1" habilita esta rutina.
El parmetro "First=0/1" inicia el envi de una trama modbus.

139

La ID Slave=1 es la direccin que tiene el mdulo Esclavo la cuales tiene


que coincidir con la del Esclavo.
El "RW"=1 seala que la funcin a ejecutarse es solo de lectura.
El puntero "DataPtr=VB10" representa el comienzo de la memoria de
variables a leer. Hay que tener mucho cuidado al escoger el puntero por
que puede solaparse con algn registro que utiliza la librera Modbus.
Este parmetro "Addr" = "xxxxx" (Funcin que se desea probar) indica la
direccin de la funcin que se desea solicitar.
El parmetro "Count" le indica a Addr el nmero de palabras que se desea
leer.

5.3

COMPROBACIN

DE

LA

FUNCIN

02(LECTURA

DE

ENTRADA

DIGITAL) Y DE COMUNICACIN CON El PLC

Para verificar que hay comunicacin Modbus entre el PLC y la tarjeta de


adquisicin de datos se utiliza la funcin 02 que permite leer entradas digitales. En
la Figura 5.6 se observa la ventana del Status Chart la variable MB2 en la cual se
guardan los errores, encontrndose en 0 al hacer la prueba (Vase Tabla 2.7Cdigos de Error de Ejecucin del Protocolo Modbus en el Esclavos) lo que indica
que hay comunicacin sin errores entre los dos dispositivos.
Para comprobar la funcin 02 y las entradas digitales reales se hicieron tres
pruebas:
La primera consiste en probar todas la entradas digitales al mismo tiempo (Vase
Figura 5.6) Para iniciar la prueba en el rutina MBUS_MSG se coloca el parmetro
Addr=10001 indicando que se va a solicitar la funcin 02 empezando desde la
primera entrada y el parmetro Count =8 para leer las siguientes 8 entradas
digitales contiguas.

140

Figura 5.6-Comprobacin de la Funcin 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 estn activadas
con presencia fsica de 24

sin errores de comunicacin o fuera de rango en la

solicitud.
En la segunda prueba se activan la mitad de las entradas digitales y la otra mitad
estn desactivadas (Vase Figura 5.7).

142

Figura 5.7-Comprobacin de la Funcin 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 estn
activadas con presencia fsica de 24

sin errores de comunicacin o fuera de

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

144

Figura 5.8-Comprobacin de la Funcin 02-c

145

5.4

COMPROBACIN

DE

LA

FUNCIN

04(LECTURA

DE

ENTRADA

ANLOGA)

Para comprobar la funcin 04 y las entradas anlogas fsicamente se hicieron tres


pruebas:
La primera consiste en probar las 2 entradas anlogas al 100% de la seal (20mA)
(Vase Figura 5.9). Para iniciar la prueba, el mdulo MBUS_MSG se configura con
el parmetro Addr=30001 indicando que se va a solicitar la funcin 04, empezando
desde la primera entrada y el parmetro Count =2 para leer las 2 entradas
anlogas seguidamente.

146

Figura 5.9-Comprobacin de la Funcin 04-a

147

El puntero de donde se empiezan a guardar los datos est en la variable VB10,


dado que la informacin es de 16 Bits, los datos se almacena en las variables
contiguas VW10 y VW12. VB10 corresponde a la parte alta de la palabra VW10.
En la ventana del Status Chart se aprecia la variable con un valor actual en
decimal de 100 cada una, lo que indica que la seal de las entradas anlogas est
al mximo valor con una presencia fsica de 20mA, sin errores de comunicacin o
fuera de rango en la solicitud.
La segunda prueba se hace con la mitad de la seal de las entradas anlogas
(Vase Figura 5.10).

148

Figura 5.10-Comprobacin de la Funcin 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 seal de las entradas anlogas est
con presencia fsica de 12mA y sin errores de comunicacin o fuera de rango en la
solicitud.
En la ltima prueba se enva el valor mnimo de las entradas anlogas (4mA).
Como se puede ver en la Figura 5.11 no hay ningn tipo de error y el estado real
de las entradas es 0d con una presencia fsica de 4mA.

150

Figura 5.11-Comprobacin de la Funcin 04-c

151

5.5

COMPROBACIN DE CAMBIO DE VELOCIDAD

Debido a que el dispositivo Esclavo tiene la capacidad de cambiar la velocidad de


transmisin se realizaron pruebas de comunicacin en las cuales se cambia la
misma velocidad en ambos dispositivos.
El dispositivo Esclavo tiene la capacidad de cambiar su velocidad entre estos
rangos: 1200, 2400, 4800, 9600 y 19200 bps. La prueba se hizo en todos los
rangos mencionados logrando comunicacin exitosa, pero grficamente se
mostrarn los casos extremos (mxima y mnima velocidad).
En el primer caso la velocidad se cambia parmetro baud=1200bps como se
observar en la Figura 5.12. Se consigue tener una comunicacin exitosa entre los
dos dispositivos como se observa en la Figura 5.12 la variable MB2=0 sin errores.

152

Figura 5.12-Comprobacin de Cambio de Velocidad 1200

En el segundo caso la velocidad en el parmetro baud=19200bps se configura


como se observa en la Figura 5.13, siendo esta la velocidad ms alta del
dispositivo Esclavo. Se consigue tener una comunicacin exitosa entre los dos
dispositivos como se observa en la Figura 5.13 la variable MB2=0 sin errores.

153

Figura 5.13-Comprobacin de Cambio de Velocidad 19200

154

5.6

PRUEBA DE CAMBIO DE DIRECCIN DEL ESCLAVO

En las pruebas anteriores la direccin del Esclavo fue 1, en esta prueba se cambio
a 8 en los dos dispositivos como se observa en la Figura 5.14, el parmetro Slave
fue cambiado y la variable MB2 contina en 0 sin errores

Figura 5.14-Prueba de Cambio de Direccin del Esclavo

155

5.7

COMPROBACIN DE ERRORES

Si se presenta alguna falla en la comunicacin o el monitoreo de los datos se


presentan errores; por esta razn se realizaron pruebas forzando errores en el
sistema implementado (Vase Figura 5.1) para probar los mensajes de excepcin.
Las pruebas realizadas son las siguientes:
Vencimiento del Timeout de recepcin.
Solicitud no soportada.
Direccin de datos no soportada Funcin 02
Direccin de datos no soportada Funcin 04

5.7.1 Vencimiento del Timeout de Recepcin (Error 03)

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

156

Figura 5.15-Vencimiento del Timeout de Recepcin-1

En la prueba, el parmetro Baud del mdulo MBUS_CTRL en el Maestro fue


cambiado a 19200 (Vase Figura 5.15) y el en Esclavo la velocidad de trasmisin
se mantuvo en 9600bps, forzando as un error de disparidad de velocidad lo cual
no permite comunicacin entre los dos dispositivos causando que el Maestro envi
la solicitud sin obtener una respuesta hasta que el Timeout expire y genere el error
MB2=3.

157

Figura 5.16-Vencimiento del Timeout de Recepcin-2

Inmediatamente se gener el mismo error cambiando la direccin del Esclavo en


la solicitud del Maestro (Slave=2), la cual no coincide con la direccin del
dispositivo Esclavo ID=1 causando que nunca exista una respuesta por parte de
este generando as el error MB=2 Timeout expirado (Vase Figura 5.15)

158

5.7.2 Funcin No Soportada (Error 101)

Este error sucede cuando el Esclavo no soporta la funcin solicitada en esta


direccin. Para forzar el error se solicit una funcin que el Esclavo no soporta
Addr=40001(Lectura de Registro de Retencin), generando as el error MB2=101
(Vase Figura 5.17).
Figura 5.17-Funcin No Soportada

159

5.7.3 Direccin de Datos No Soportada (Error 102 Funcin 02)

El Esclavo no soporta la direccin de los datos. El rango de direcciones de la


funcin solicitada de Addr ms Count est fuera del rango de direcciones
permitido para el Esclavo.
Para forzar este error en la funcin 02 el parmetro Addr se configur una
direccin de inicio errnea 10009 puesto que el dispositivo Esclavo tiene un rango
de direccin de los datos digitales de 10001-10008, se genera el envi de un
cdigo de excepcin en respuesta indicando el error MB2=102 (Vase Figura
5.18).

160

Figura 5.18-Direccin de datos no soportada funcin 02-a

Otra forma que pueda ocurrir este error es si el parmetro Count es configurado
fuera de rango Count=9 puesto que el dispositivo Esclavo solo tiene 8 entradas
digitales causando el envi de un cdigo de excepcin en respuesta indicando el
error MB2=102 (Vase Figura 5.19).

161

Figura 5.19-Direccin de Datos No Soportada Funcin 02-b

5.7.4 Direccin de Datos No Soportada (Error 102 Funcin 04)

El Esclavo no soporta la direccin de los datos. El rango de direcciones de la


funcin solicitada de Addr ms Count est fuera del rango de direcciones
permitido para el Esclavo.
162

Para forzar este error en la funcin 04 el parmetro Addr se configur una


direccin de inicio errnea 30009 puesto que el dispositivo Esclavo tiene un rango
de direccin de los datos anlogos de 30001-30002 se genera el envi de un
cdigo de excepcin en respuesta indicando el error MB2=102 (Vase Figura
5.20).
Figura 5.20-Direccin de Datos No Soportada Funcin 04-a

163

Otra manera de forzar este error es si el parmetro Count es Configurado fuera de


rango Count=9 puesto que el dispositivo Esclavo solo tiene 2 entradas anlogas
esto causa el envi de un cdigo de excepcin en respuesta indicando el error
MB2=102 (Vase Figura 5.21).
Figura 5.21-Direccin de Datos No Soportada Funcin 04-b

164

6 CONCLUSIONES Y RECOMENDACIONES

6.1

CONCLUSIONES

Dadas las caractersticas del diseo del mdulo de adquisicin de datos con
comunicacin Modbus este sirve como herramienta didctica dentro del
laboratorio de automatizacin de ingeniera electrnica, para el desarrollo
de nuevas aplicaciones con PLCs Siemens y comunicaciones industriales
tales como sistemas de adquisicin de datos industriales, domtica,
edificios inteligentes, en aplicaciones de supervisin, control de variables,
como mdulo de expansin para puertos en PLC, etctera, brindndole al
estudiante una perspectiva ms amplia en el rea de las comunicaciones
industriales y la adquisicin remota de datos.
Los mdulos similares en el mercado que son fabricados por grandes
empresas y tienen costos elevados no se compara con el prototipo
implementado el cual cuenta con elementos de costo moderado y fcil
adquisicin, fcil de duplicar y podra ser usado para distintas aplicaciones
didcticas. Por lo cual este proyecto se convierte en una opcin econmica
para el desarrollo de aplicaciones de distinto mbito.
Modbus es un bus de campo que flexibiliza la expansin de nuevos
transmisores o actuadores en un sistema ya instalado, tambin permite la
reduccin masiva de cables y costos asociados. Su frecuente aplicacin en
la industria colombiana y de la regin hace que sea importante tenerlo en
cuenta para estudiar su estructura y campo de aplicacin.
En la implementacin de la tarjeta adquisicin de datos se opto por un
Display LCD como modo de visualizacin para la configuracin del
165

dispositivo Esclavo como velocidades de trasmisin y direccin del Esclavo.


Adems la interfaz permite el monitoreo de las variables durante la
comunicacin Modbus con el fin de efectuar la supervisin del estado actual
de las entradas anlogas-digitales del dispositivo Esclavo localmente.
Durante las pruebas de comunicacin serial se comprobaron la informacin
de los datos de las tramas recibidas y enviadas tales como; los cdigos de
excepcin, la no recepcin de una respuesta, la configuracin de diferentes
velocidades de trasmisin y direccin de Esclavo. El resultado de estas
pruebas fue el eficiente funcionamiento del dispositivo Esclavo tanto para
los datos de adquisicin como para las condiciones que el protocolo
Modbus exige.

6.2

RECOMENDACIONES
Para este tipo de proyecto que realicen funciones como manejo de
protocolos de comunicacin y adquisicin de datos, es preferible utilizar un
leguaje de programacin de nivel alto para implementar estas aplicaciones.
se recomienda usar compiladores para microcontroladores PIC que
trabajan con lenguaje C como: PICC DE HI-TECH, CCS PIC C Compiler
los cuales cuentan con libreras e instrucciones que facilitan la
implementacin de un sistema como este.
Se recomienda configurar correctamente el Mdulo de la librera modbus
MBUS_MSG del Step Microwin del PLC S7-200 los parmetros Count y
Addr para evitar errores por mala configuracin de direccionamiento de
datos.
Se aconseja configurar correctamente

el Mdulo de la librera modbus

MBUS_MSG del Step Microwin del PLC S7-200 el parmetro Slave y el

166

parmetro baud de la librera modbus MBUS_CTRL para evitar errores al


no recibir respuesta en la comunicacin.
Finalmente, se recomienda leer el Manual de Usuario de este equipo para
su ptima utilizacin y correcto funcionamiento, adems de revisar la teora
acerca del Protocolo Modbus, poniendo nfasis en las Funciones y Tramas.

167

7 BIBLIOGRAFA

[1] B&B Electronics Mfg. RS-485 remote I/O solutions. [En lnea], <http://www.bbelec.com/product_multi_family.asp?multifamilyid=21>,[citado el 26 de octubre
20010]

[2]MODBUS.ORG.

DGH

Corporation.

[En

lnea]

<http://www.Modbus.org/viewdevice.php?id=259>, [citado el 23 de octubre de


20010]

[3]

MODICON.

Bus,

Networks

&

Communication

[en

lnea].<www.modicon.com/techpubs/toc7.html>[citado el 14 de octubre de 2010]

[4]CREUSS, ANTONIO. Instrumentacin y control industrial. Cuarta edicin.


Editorial Marcombo. Mxico, 1992.

[5]Corrales Luis. Interfaces de Comunicacin Industrial, Almera (Espaa) ,2004.

[6]AUTONOMAS.ORG.

Protocolo

Modbus.

[En

lnea],<lhttp://www.automatas.org/Modbus>,[citado el 22 de octubre 2010]

[7]MODBUS.ORG. Gua Protocolo Modbus. [En lnea] <www.Modbus.org/docs/


Modbus_Application_Protocol_V1_1b.pdf> [citado en 10 de Julio de 2010]

[8]MODBUS.ORG.

Gua

Protocolo

Modbus.

[En

lnea]

<www.Modbus.org/docs/Modbus_over_serial_line_V1.pdf> [citado en 22 de Julio


de 2010]

168

[9]Siemens Automation. Empresa fabricante de PLC S7-200 [En lnea]


<cache.automation.siemens.com/dnl/zI/zIwODk3AAAA_1109582_HB/s7200_syste
m_manual_es-ES.pdf> [citado en 12 de Octubre de 2010]

[10]MICROCHIP. Fabricante de microcontroladores PIC [En lnea] caracterstica


tcnicas sobre PIC16f877a<www.microchip.com>

[11]WIKIPEDIA.ORG.

Teora

Amplificadores

Operacionales.

[En

lnea]

<http://es.wikipedia.org/wiki/Amplificador_operacional> [citado en 28 Septiembre


de 2010]

[12]IFENT.ORG.

Teora

Amplificadores

Operacionales.

<http://www.ifent.org/temas/amplificadores_operacionales.asp>

[En
[citado

lnea]
en

15

Febrero de 201]

[13]AUTOMATAS.ORG.

Buses

de

Campo.

[En

lnea]

<http://www.automatas.org/abb/comunicaciones.htm> [citado en 30 de Agosto de


2010]

[14]IFENT.ORG.

Mdulo

LCD

[En

lnea]

<http://picrobot.blogspot.com/2010/03/lcdgar.html> [citado en 15 Febrero de 201]

169

170

8 ANEXOS

171

Anexo A-Manual de Usuario

172

NDICE

INTRODUCCIN

175

1. DESCRIPCIN DEL EQUIPO

175

1.1.

CARACTERSTICAS

175

1.2.

COMPONTES DEL DISPOSITIVO

176

1.2.1.

177

Descripcin de los Componentes del Bloque Central

1.3.

CONEXIONES

178

1.4.

PREPARACIN PARA LA OPERACIN DEL DISPOSITIVO

179

2. OPERACIN DEL DISPOSITIVO


2.1.MEN

186
CONFIGURACIN
186

2.1.1.

Configuracion de Velocidad

187

2.1.2.

Configuracion de Dereccion del Esclavo

188

2.2.MEN

DATOS

I/0
189

3. MANTENIMIENTO Y PRECAUCIONES
3.1.

PRECAUCIONES DE OPERACIN

173

190
190

174

INTRODUCCIN

El mdulo de adquisicin de datos DAQ es un dispositivo porttil que sirve como


interfaz remota para la adquisicin de datos para el PLC S7-200. La DAQ se
comunica con el PLC mediante el protocolo Modbus RS485.Este dispositivo tiene
la capacidades de adquirir de seales Anlogas-Digitales, monitorear localmente
los datos y ser configurado para la comunicacin Modbus.

1. DESCRIPCIN DEL EQUIPO

1.1. CARACTERSTICAS

El modulo de adquisicin de datos cuanta con las siguientes caractersticas:


Adquisicin de seales digitales de 0-24v pticamente aisladas.
Adquisicin y conversin de seales anlogas de 4-20mA.
Comunicacin con PLC S7-200 mediante el bus de campo Modbus
Puerto serial RS485
Compatibilidad con cables de 2 hilos
Capacidad de reajustar parmetros de configuracin de la comunicacin
Modbus a travs de la interfaz de usuario.
Sin comprobacin de paridad
Interfaz de usuario para el monitoreo local de los datos.
Adaptador de alimentacin externo 110-240V.

175

1.2. COMPONTES DEL DISPOSITIVO

El dispositivo esclavo se compone de un bloque central en el cual internamente se


encuentra toda la circuitera, la unidad procesamiento y la interfaz de
comunicacin. En este bloque est conformado por la interfaz de usuario (LCD y
teclado), conector DB9 para la interfaz de comunicacin RS485. Cuenta con 8
terminales de conexin para las entradas digitales, 2 terminales para las entradas
anlogas y un LED piloto indicando cuando se efecta la una comunicacin
Modbus.
Figura 1.1-Vista Frontal Superior

176

Figura 1.2-Vista Lateral Superior

Figura 1.3-Vista latera derecha

1.2.1. Descripcin de los Componentes del Bloque Central

En la en la imgenes anteriores se observaron la diferentes vista del dispositivo.


DB9.

Terminal para la comunicacin Modbus RS-485

AN1

Terminal para la seal Anloga uno.

AN2

Terminal para la seal Anloga dos.

GND

Tierra Anlogas

177

COM

Comn 24V

D0-D7

Terminal para las 8 seales digitales.

Tx/Rx

LED indicador de transmisin.

Vin

Terminal para la fuente de alimentacin externa.

Tecla de seleccin de una opcin o parmetro.

Tecla de seleccin de una opcin o parmetro.

Ent

Tecla para seleccionar o modificar opcin.

1.3. CONEXIONES

Para asegurar un correcto funcionamiento hay que conectar la fuente de


alimentacin externa al dispositivo para energizarlo y conectar el cable serial al
dispositivo esclavo mediante el puerto DB9 y el otro extremo al puerto 0 del PLC
(Vase Figura. 1.4)

178

Figura 1.4-Sistema de Conexin

1.4. PREPARACIN PARA LA OPERACIN DEL DISPOSITIVO

Antes comenzar a utilizar el dispositivo esclavo, previamente hay que configurar el


dispositivo maestro PLC S7-200 Siemens como maestro Modbus ya que si no
existe al menos un maestreo en una red Modbus nunca habr comunicacin
serial.
Para poder establecer comunicacin Modbus entre el dispositivo Esclavo y el PLC
S7-200 es necesario instalar en el PC primero el Software del PLC STEP 7Micro/WIN y despus la librera Modbus de instrucciones para el STEP 7Micro/WIN.
STEP 7-Micro/WIN de Siemens es el Software o plataforma de trabajo que
adems permite configurar el PLC S7-200 como un Maestro Modbus. Cuenta con
la capacidad de poder monitorear la comunicacin Modbus, los datos solicitados y
los errores que se puedan presentar en la solicitud. Para poder hacer el monitoreo

179

es necesario que el STEP 7-Micro/WIN tenga comunicacin constante con el PLC;


esta comunicacin debe hacerse utilizando cualquier medio serial (PPI, Profibus,
OPC, etc.) excepto el puerto 0 del PLC puesto que este es usado para la
comunicacin Modbus. Para fines didcticos se decidi hacer el monitoreo por
comunicacin Ethernet TCP/IP porque es de fcil configuracin tanto en el PLC
como en el PC.
El requerimiento para utilizar la librera de funciones Modbus es instalar el STEP
7-Micro/WIN a partir de la versin V3.2. Despus de haber instalado exitosamente
existir un grupo de iconos correspondientes en el rbol de operaciones del STEP
-Micro/WIN donde para la comunicacin Modbus se utilizan los siguientes mdulos
de la librera: "MBUS_CTRL" y "MBUS_MSG", tal como se muestran en la figura:

Figura 1.5-rbol de Operaciones

180

El diseo del software que se implementa en STEP 7-Micro/WIN permite


configurar al PLC S7-200 como maestro y monitorear los datos solicitados y los
errores que se puedan presentar en la solicitud de datos del dispositivo maestro
hacia la tarjeta DAQ durante la comunicacin Modbus
A continuacin se presenta la explicacin de los mdulos de la librera Modbus y la
configuracin recomendada para establecer una comunicacin Modbus.

Funcin del MBUS_CTRL:


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

181

Configuracin del modulo CTRL:


Con "Mode"=1 se configura el Puerto 0 como Modbus
"Baud=9600" es la velocidad recomendada para el protocolo modbus
"Parity=0" el dispositivo esclavo funciona sin paridad
Un "Timeout=1000" es suficiente tiempo para esperar una respuesta del
esclavo
"Done=M0.0" y "Error=MB1" esta son las variables donde se almacena
cuando la rutina ha finalizado y/o algn error ha ocurrido
Funcin del MBUS_MSG:
La operacin MBUS_MSG sirve para iniciar una peticin a un esclavo Modbus y
procesar la respuesta. La operacin MBUS_MSG inicia una peticin a un esclavo
Modbus si estn activadas las entradas EN y First. Para enviar la peticin, esperar
la respuesta y procesarla se requieren generalmente varios ciclos del programa
del PLC. La entrada EN debe estar puesta a 1 para poder enviar una peticin,
debiendo permanecer activada hasta que se active el Bit Done.
Nota: Slo puede estar activada una operacin MBUS_MSG a la vez. Si hay ms
de una operacin MBUS_MSG activada, se procesar la primera MBUS_MSG
ejecutada y todas las dems operaciones MBUS_MSG se cancelarn con el
cdigo de error 6.
Si hay una nueva peticin que se deba enviar el parmetro First debe estar
activado durante un ciclo. La entrada First se debe activar cuando se detecte un
flanco positivo, haciendo que la peticin se transmita una vez. El parmetro Slave
es la direccin del esclavo Modbus. El rango permitido est comprendido entre 0 y
247. La direccin 0 se usa como direccin de broadcast (difusin general),
pudiendo utilizarse slo para peticiones de escritura. No hay respuesta a una

182

peticin de broadcast a la direccin 0. No todos los esclavos soportan la direccin


de broadcast. El parmetro "EN=1" habilita esta rutina.
Figura 1.7-Modulo MBUS_MSG

Configuracin del modulo MSG:


El parmetro "EN=1" habilita esta rutina.
El parmetro "First=0/1" inicia el envi de una trama modbus.
La ID Slave=1 es la direccin que tiene el mdulo esclavo la cuales tiene
que coincidir con la del esclavo.
El "RW"=1 seala que la funcin a ejecutarse es solo de lectura.
El puntero "DataPtr=VB10" representa el comienzo de la memoria de
variables a leer. Hay que tener mucho cuidado al escoger el puntero por
que puede solaparse con algn registro que utiliza la librera Modbus.
Este parmetro "Addr" = "xxxxx" (Funcin que se desea probar) indica la
direccin de la funcin que se desea solicitar.
El parmetro "Count" le indica a Addr el nmero de palabras que se desea
leer.

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. OPERACIN DEL DISPOSITIVO

Una vez cumplido los pasos de la seccin 1.3 -1.4 en la pantalla aparecer el
Men Principal del modul esclavo. En el men principal se encuentran dos
opciones para seleccionar, Configuracin y Datos I/O, las cuales permiten acceder
a submens para la configuracin del dispositivo esclavo y el monitoreo de los
datos Digitales-Anlogos (Vase figura).

2.1. MEN CONFIGURACIN

Por defecto los parmetros de comunicacin del dispositivo estn preconfigurados de la siguiente manera:

ID=1
VEL=9600

Para empezar la operacin del dispositivo esclavo hay que configurar los
parmetros de comunicacin, de tal manera que coincidan con los parmetros
implementados en el Maestro, para as poder establecer comunicacin.
Inicialmente en la pantalla principal se visualiza el indicador apuntando a la opcin
Configuracin. Por defecto el indicador [>] se encuentra en modo de
desplazamiento, lo cual indica al usuario que puede desplazarse por las diferentes
opciones presionado las teclas

. Para acceder al Submen de

Configuracin se oprime la tecla Ent. Una vez presionada, el men principal


cambia al submen Configuracin tal como se muestra en la figura siguiente.

186

En este submen se encuentra dos parmetros para configurar: ID direccin del


esclavo que se quiere asignar y VEL velocidad de transmisin del dispositivo.

2.1.1. Configuracion de Velocidad

La Velocidad de Transmisin Serial se cambia seleccionando el parmetro VEL en


la pantalla, luego se pulsa la tecla Ent para seleccionar una de las 4 opciones de
velocidad [1200-2400-4800-9600-19200].
Cuando el indicador cambie de posicin apuntando hacia el parmetro [<] indica
que la opcin ya se puede modificar. Pulsando las teclas

el usuario

define la velocidad de transmisin del modulo, la seleccin se hace


ascendentemente y descendentemente con cada una de las opciones de
velocidad anteriormente mencionadas (Vase figuras).

Una vez seleccionada y definida la velocidad de transmisin se presiona la tecla


Ent para confirmar la seleccin escogida.

187

2.1.2. Configuracion de Dereccion del Esclavo


La Direccin del Dispositivo se cambia seleccionando el parmetro ID, luego se
Pulsa la tecla Ent para escoger la direccin que se desea asignar. Los rangos de
direccin estn comprendidos entre 1-8.

Cuando el indicador cambie de posicin apuntando hacia el parmetro [<] indica


que la opcin ya se puede modificar. Pulsando las teclas

el usuario define

la direccin del dispositivo esclavo, la seleccin se hace aumentando y/o


disminuyendo el rango de la direccin del esclavo. En las siguientes imgenes se
observa los valores extremos y medio de la direccin esclavo.

Una vez seleccionado y definido la direccin del esclavo se presiona la tecla Ent
para confirmar la eleccin escogida.

188

Despus de haber seleccionado los parmetros de configuracin y se quiere


regresar al men principal, desplazamos el curso con las teclas

hasta

opcin Salir, luego presionamos la tecla Ent e inmediatamente se regresa al men


principal.

2.2. MEN DATOS I/0

Estando en el men principal desplazamos el curso con las teclas

hasta

la opcin Datos I/O y presionamos la tecla Ent para ingresar al submen del
monitoreo de los datos (Vase figura).

El submen Datos I/O muestra el estado real de todas las seales de entrada del
dispositivo. Las seales anlogas se representan AN0 y AN1 en valores de
porcentaje de 0-100 y todas las seales digitales se representan en un byte de 8
bits llamado DB0, en la siguiente figura se muestra la visualizacin de los datos.

Para regresar al men principal en cualquier momento se presiona la tecla Ent.

189

3. MANTENIMIENTO Y PRECAUCIONES

En esta seccin se presentan las precauciones que se deben tomar y las acciones
a realizar para el correcto funcionamiento del dispositivo.
3.1. PRECAUCIONES DE OPERACIN

Verificar la correcta conexin del dispositivo (fuente de alimentacin y cable


serial).
Configurar el dispositivo maestro y esclavo con los mismos parmetros de
comunicacin serial.
Configurar correctamente los parmetros de solicitud Modbus (Addr,
Count,).
En caso de algn bloqueo en el correcto funcionamiento del dispositivo
esclavo, desconctelo y vulvalo conectar para reiniciar todas sus
funciones.

190

Anexo B-Datos Tcnicos del Microcontrolador PIC16F877A

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

215

216

217

218

219

220

221

222

223

224

225

226

227

Anexo C-Datos Tcnicos del Circuito Integrado MAX485

228

229

230

231

232

233

234

235

236

Anexo D-Datos tcnicos del Circuito Integrado LM324

237

238

239

240

241

242

243

244

245

Anexo E-Datos tcnicos del Circuito Integrado 4N35

246

247

248

249

250

251

252

253

254

255

256

257

258

Anexo F-Datos tcnicos del PLC (Manejo de la Librera Modbus)

259

260

261

262

263

264

265

266

267

268

269

270

271

272

273

274

275

276

Anda mungkin juga menyukai