PROYECTO DE GRADO
DIRECTOR: Ing. Edgar Antonio Giraldo Orozco.
____________________________________
Ing. EDGAR ANTONIO GIRALDO OROZCO
________________________________________________
Ing. CARLOS MAURICIO BETANCURT
_______________________________________________
Ing. ANDRS ERAZO
TABLA DE CONTENIDO
DESCRIPCIN
DEL
PROYECTO
CARACTERSTICAS
Generales
1.1
25
1.2
JUSTIFICACIN
25
1.3
OBJETIVOS
27
1.3.1
Objetivo General
27
1.3.2
Objetivo Especficos
27
1.4
25
MARCO TERICO.
27
29
2.1
ANTECEDENTES
29
2.2
30
2.2.1
31
2.3
MICROCONTROLADORES
32
2.4
AMPLIFICADORES OPERACIONALES
33
2.4.1
35
Tipos de Configuracin
2.5
MDULO LCD
38
2.6
40
2.6.1
42
2.7
COMUNICACIONES SERIALES
45
2.8
PROTOCOLOS DE COMUNICACIN
47
2.8.1
48
Modbus
2.8.2
3.2
85
86
DISPOSITIVO MAESTRO
3.1.1
52
Descripcin General
87
Cable de Red
89
MDULO ESCLAVO
3.2.1
89
3.2.2
90
3.2.3
Evaluacion de Costos
90
4.1
105
4.2
105
4.3
106
4.3.1
Inicializaciones
107
4.3.2
111
4.3.3
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
132
5.2
136
5.2.1
MBUS_CTRL
137
5.2.2
MBUS_MSG
138
5.3
5.5
152
5.6
155
5.7
COMPROBACIN DE ERRORES
156
5.7.1
156
5.7.2
159
5.7.3
160
5.7.4
162
CONCLUSIONES Y RECOMENDACIONES
165
6.1
CONCLUSIONES
165
6.2
RECOMENDACIONES
166
BIBLIOGRAFA
168
ANEXOS
171
10
11
LISTA DE FIGURAS
34
35
36
37
39
42
43
46
50
51
52
54
55
59
73
74
76
77
77
12
84
84
85
94
95
96
97
101
107
108
111
113
115
117
120
122
123
126
128
13
133
134
136
137
139
141
143
145
147
149
151
153
154
155
157
158
159
161
162
163
164
14
15
LISTA DE TABLAS
29
40
57
63
64
67
69
71
75
76
76
79
87
88
95
99
99
16
104
109
135
135
17
18
LISTA DE ANEXOS
Anexo A-Manual de Usuario
172
191
228
237
246
259
19
20
GLOSARIO
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.)
21
22
RESUMEN
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
24
1 DESCRIPCIN
DEL
PROYECTO
CARACTERSTICAS
GENERALES
1.1
1.2
JUSTIFICACIN
26
1.3
OBJETIVOS
Implementar
el
protocolo
de
comunicacin
Modbus
en
el
microcontrolador.
1.4
27
28
2 MARCO TERICO.
2.1
ANTECEDENTES
Modelo
ADAM-4051
Digitales
Precio (US)
$ 140,00
ADAM-4069
$ 210,00
ADAM-4068
$ 165,00
ADAM-4019+
$ 350,00
ADAM-4118
$ 285,00
ADAM-4024
$ 275,00
29
2.2
modificacin
de
programas,
la
verificacin
de
la
31
2.3
MICROCONTROLADORES
32
2.4
AMPLIFICADORES OPERACIONALES
33
Salida (Vout).
34
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
36
Y su ganancia es:
Ec. 8
37
Ec. 10
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
una
instruccin
informacin
almacenar
en
la
memoria,
que
39
2.6
40
41
detectoras
de
temperatura,
Detectores
Resistivos
de
42
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
44
2.7
COMUNICACIONES SERIALES
45
46
2.8
PROTOCOLOS DE COMUNICACIN
47
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
49
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
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
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
53
Fuente [8]
54
Fuente [8]
55
56
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
Modelo del Dato Modbus: Modbus basa su modelo del dato en unas
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-
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-
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
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
59
Una vez la solicitud ha sido procesada por un Esclavo, se construye una respuesta
mediante la adecuada transaccin del Esclavo Modbus.
60
61
62
100
72
65
1
Fuente [8]
los cdigos de funcin disponibles que ya han sido definidos para el pblico.
63
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.
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
65
66
1 Byte
0x02
Direccin de inicio
2 Bytes
Cantidad de entradas
2 Bytes
Respuesta
Cdigo de funcin
1 Byte
0x02
Contador de byte
1 Byte
N*
1 Byte
0x82
1 Byte
01 o 02 o 03 o 04
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.
68
Cdigo de funcin
Contador de byte
Estado de las Entradas
Respuesta
1 Byte
0x04
1 Byte
2 x N*
N* x 2 Byte
0x84
1 Byte
Cdigo de excepcin
01 o 02 o 03 o 04
1 Byte
Fuente [8]
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
70
No utilizado
101
71
102
103
105
106
107
108
Fuente [9]
2.8.2.2 Capa de Enlace de Datos Modbus
nica
(1
247),
de
modo
que
pueda
ser direccionado
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
Fuente [7]
74
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
2 3 4 5
Stop Stop
1 byte
2 bytes
CRC Bajo CRC Alto
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
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
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
LRC
2
caracteres
Fin
2
caracteres
CR
LF
79
comprueba
el
contenido
entero
del
mensaje.
Esto
es
aplicado
80
81
82
83
Fuente [7]
Fuente [7]
84
85
3.1
DISPOSITIVO MAESTRO
86
87
Descripcin
Tipo de cable
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
del
0,3 mm2 a 0,5 mm2
8 mm0,5 mm
88
3.2
MDULO ESCLAVO
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
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.
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.
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
Por lo tanto:
Ec. 17
Ec. 18
Lo que indica que por cada
Esta parte fue tomada del Anexo B Datos Tcnicos del Microcontrolador PIC16F877A
93
94
95
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
97
98
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
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
101
~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.
102
2
1
3
3
1
2
3
3
3
13
1
1
2
1
1
1
2
1
2
1
1
1
1
$ 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
103
1-8
Modo de transmisin
Halfduplex-RTU
Velocidad
1200/2400/4800/9600/19200
Paridad
Ninguna
104
4.1
4.2
Modbus
las
dems
concurrentemente.
105
funciones
del
dispositivo
Esclavo
4.3
106
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).
108
Menu
Opcin
OpcinActivada
MODBUS_ADDRESS
Velocidad Esclavo[4]
109
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
111
112
113
114
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
117
118
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
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
122
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
126
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.
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.
127
128
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.
129
130
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
5.1
132
133
Fuente [9]
134
Liberacin
Indicacin del protocol
Velocidad de transmisin en kBit/s
Parity
Paridad
Timeout
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
DataPtr
Done
Error
Fuente [9
135
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
5.2
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
la
rutina
ha
finalizado
y/o
algn
error
ha
ocurrido.
5.2.2 MBUS_MSG
138
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
5.3
COMPROBACIN
DE
LA
FUNCIN
02(LECTURA
DE
ENTRADA
140
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
solicitud.
En la segunda prueba se activan la mitad de las entradas digitales y la otra mitad
estn desactivadas (Vase Figura 5.7).
142
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
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
145
5.4
COMPROBACIN
DE
LA
FUNCIN
04(LECTURA
DE
ENTRADA
ANLOGA)
146
147
148
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
151
5.5
152
153
154
5.6
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
155
5.7
COMPROBACIN DE ERRORES
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
157
158
159
160
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
163
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
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
166
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]
[3]
MODICON.
Bus,
Networks
&
Communication
[en
[6]AUTONOMAS.ORG.
Protocolo
Modbus.
[En
[8]MODBUS.ORG.
Gua
Protocolo
Modbus.
[En
lnea]
168
[11]WIKIPEDIA.ORG.
Teora
Amplificadores
Operacionales.
[En
lnea]
[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]
[14]IFENT.ORG.
Mdulo
LCD
[En
lnea]
169
170
8 ANEXOS
171
172
NDICE
INTRODUCCIN
175
175
1.1.
CARACTERSTICAS
175
1.2.
176
1.2.1.
177
1.3.
CONEXIONES
178
1.4.
179
186
CONFIGURACIN
186
2.1.1.
Configuracion de Velocidad
187
2.1.2.
188
2.2.MEN
DATOS
I/0
189
3. MANTENIMIENTO Y PRECAUCIONES
3.1.
PRECAUCIONES DE OPERACIN
173
190
190
174
INTRODUCCIN
1.1. CARACTERSTICAS
175
176
AN1
AN2
GND
Tierra Anlogas
177
COM
Comn 24V
D0-D7
Tx/Rx
Vin
Ent
1.3. CONEXIONES
178
179
180
181
182
183
184
185
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).
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
186
el usuario
187
el usuario define
Una vez seleccionado y definido la direccin del esclavo se presiona la tecla Ent
para confirmar la eleccin escogida.
188
hasta
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.
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
190
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
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276