Vous êtes sur la page 1sur 19

1

TECNOLOGICO DE MONTERREY

REDES INSDUSTRIALES

DISEO E IMPLEMENTACIN DE UNA RED DE CAMPO CON LA CAPA FSICA EIA 485
UTILIZANDO EL PROTOCOLO MODBUS.

Integrantes:
Ana Pamela Castro Martin A01298181
Daro Guamn Lozada A01298193

Fecha de entrega:
28 de Octubre del 2013

Objetivo:
Integrar una red de campo entre un maestro y dos esclavos utilizando la capa fsica EIA-
485 para establecer la comunicacin utilizando el protocolo Modbus.

Especificaciones:
Conversor USB- RS 485
Conversor TTL RS 485
Conversor TTL RS485 RS232
Plataforma Raspberry pi
2 Plataforma Arduinos Decimal

Descripcin
La red de campo que se logr implementar en el presente Proyecto utilizando el
protocolo Modbus RTU cuenta con una plataforma Rasperry y dos Arduino que funciona
como master y esclavos respectivamente, usan como medio de comunicacin la Interfaz
RS-485 utilizando diferentes tipos de convertidores.



Monterrey, 28 de octubre del 2013

2


INDICE


1. Resumen: .............................................................................................................................................................................................. 3
2. Identificacin del problema y justificacin: ....................................................................................................................... 3
3. Objetivos: ............................................................................................................................................................................................. 3
4. Metodologa ........................................................................................................................................................................................ 3
5. Resultados ........................................................................................................................................................................................ 16
6. Conclusiones .................................................................................................................................................................................... 16
7. Referencias Bibliogrficas ........................................................................................................................................................ 16
8. Anexos ................................................................................................................................................................................................ 17


































3

1. Resumen:

En el presente trabajo se muestra los objetivos, procedimiento, metodologa, resultados y
conclusiones que se obtuvieron al disear e implementar una red de campo con un
maestro y dos esclavos utilizando el protocolo Modbus RTU con comunicacin punto a
punto, y la capa fsica RS 485. Como maestro se utiliza una plataforma Raspberry con
programacin en Python aprovechado la librera MinimalModbus y dos Arduinos como
esclavos utilizando la librera SimpleModbus. Para que la comunicacin sea posible en la
red se deber tomar en cuenta muchos aspectos importantes como los parmetros de
servicio, las funciones implementadas en cada disposicin y el hardware. Tambin se
mostrar el diseo e implementacin de tres conversores con la finalidad de poder obtener
compatibilidad entre seales digitales de diferente categora y para que sea posible que
interacten las entidades de la red.
2. Identificacin del problema y justificacin:

Como parte del curso de redes industriales es necesaria la integracin de los conocimientos
tericos con la prctica. Este proyecto nos sirve como base para entender el
funcionamiento y configuracin de una red industrial.
El protocolo Modbus es utilizado en las redes de campo de gran cantidad de industrias, para
realizar el control procesos y monitoreo de variables por ser fcil de utilizar y acceso libre
al mismo. En el mundo de las redes industriales se han desarrollado varios tipos de
protocolos y cada uno de estos con interfaces especficas. No todos los dispositivos como
sensores y transmisores poseen la comunicacin que el protocolo requiere por lo que es
necesario la utilizacin de conversores adecuados.
3. Objetivos:

General

Integrar una red de campo entre un maestro y dos esclavos utilizando la capa
fsica EIA-485 para establecer la comunicacin utilizando el protocolo Modbus.

Especficos

Disear e implementar 3 convertidores RS 485- TTl, RS 485 Rs232, RS 485
USB.
Investigar y recopilar informacin de las libreras que permiten implementar el
protocolo Modbus sobre diferentes plataformas.
Configurar la red de campo con los parmetros necesarios que requiere el
protocolo Modbus RTU.

4. Metodologa


4

El presente proyecto fue realizado diferentes etapas y pasos que se describen a
continuacin.




DISEO E IMPLEMENTACIN DE LOS CONVERTIDORES RS485 RS 232, RS485
TTL Y RS 485 USB.

1. En internet nos podemos encontrar diagramas muy tiles que nos pueden ayudar en el
diseo de convertidores. Los convertidores a usar en este proyecto tendrn control de
flujo automtico de datos. La Figura 1 nos muestra el circuito para esto:



Figura 1.- Esquema de control de flujo automtico.

Como se pude observar la idea de este circuito es que ponga a masa el pin enable de
transmisin cuando en la lnea de datos tengamos 5 V, y que lo deje a 5V, habilitndolo
cuando caiga a cero.
2. El circuito del paso anterior es el mismo que se debe implementar para obtener el
conversor RS-485 - TTL. La figura 2 muestra el esquema de conexin y la tabla 1 la lista
DISEO E
IMPLEMENTACIN DE
LOS CONVERTIDORES
PRUEBA DE LOS
CONVERTIDORES
DESCARGA DE
LIBRERIAS EN LAS
PLATAFORMAS.
PROGRAMACIN Y
CONFIGURACIN DE LA
RED.

5

de elementos que se necesita para la implementacin. En el Anexo 1 y 2 se muestran la
distribucin de pines del MAX485 y del NE 555 respectivamente con informacin
adicional que ser de mucha ayuda al armar el circuito.



Figura 2.- Conversor TTL-RS485.

Tabla 1.-Materiales para conversor RS485-TTL.
CONVERSOR RS485 TTL
Cant. Descripcin
1 Max 485
1 CI 555
1 Diodo 1N4007
2 Capacitores cermicos 0.01 Uf
1 Resistencia 3.9 K
1 Resistencia 120
2 Resistencias 560
1 Terminal 2
1 Tira de espadines hembra
2 Zcalos de 8 pines
- 10 cm de cable UTP
1 Placa tipo proto board de 3 x 3 cm.

3. La figura 3 muestra el esquema de conexin para la implementacin del conversor RS
485 RS 232 y la tabla 2 la lista de elementos que se necesita para la implementacin. El
anexo 1, 2 y 5 muestran la distribucin de pines del max 485, NE 555, max 232 con
informacin adicional til para la implementacin.

6


Figura 3.- Conversor RS232-RS485.


Tabla 2.-Materiales para conversor RS485-RS232.
CONVERSOR RS485 RS 232
Cant. Descripcin
1 Max 485
1 CI 555
1 Max 232
1 Diodo 1N4007
2 Capacitores cermicos 0.01 uF
4 Capacitores electroltico de 10 uF
1 Resistencia 3.9 K
1 Resistencia 120
2 Resistencias 560
1 Interface RS 232 hembra a 90 grados
1 Terminal 2
1 Tira de espadines hembra
2 Zcalos de 8 pines
- 10 cm de cable UTP
1 Placa tipo proto board de 3 x 5 cm.

4. A continuacin se muestra figura 4 donde se puede observar el esquema de conexin
para la implementacin del conversor RS 485 RS 232 y la tabla 3 la lista de elementos
necesarios. Desde el anexo 1 hasta el 3 se muestran una parte de la hoja de
especificaciones tcnicas del max 485, NE 555, FT232L con informacin adicional que
ser de mucha ayuda al armar el circuito. Tomar especial atencin en el anexo 4 donde
el fabricante del componente FT 232L muestra la aplicacin de este circuito integrado
para la conexin con el shield del USB.


7


Figura 4.- Conversor USB-RS485.

Tabla 3.-Materiales para conversor RS485-USB.
CONVERSOR RS485 USB
Cant. Descripcin
1 Max 485
1 Circuito Integrado NE555
1 Circuito Integrado FT 232 L
1 Diodo 1N4007
2 Capacitores cermicos 0.01 uF
1 Resistencia 3.9 K
1 Resistencia 120
2 Resistencias 560
1 Interface USB hembra
1 Terminal 2
1 Tira de espadines hembra
2 Zcalos de 8 pines
- 10 cm de cable UTP
1 Placa tipo proto board de 3 x 6 cm.


5. El circuito integrado FT 232 L es un componente de montaje superficial no ser posible
colocarlo en un protoboard por lo que tendremos que adecuarlo. Para lo cual usaremos
cable muy fino llamado wire - wrap, espadines machos y una placa tipo proto board. Es
necesario ser muy pacientes y precisos al soldar y no daar el componente con el calor.
Siguiendo estos consejos finalmente el CI FT232RL quedar como se muestra la figura 5.


8


Figura 5.- CI FT232RL.


6. Una vez que hemos comprado todos los elementos necesarios para los convertidores es
hora de armarlos primeramente en el protoboard para poder asegurar el
funcionamiento de cada uno.

PRUEBA DE LOS CONVERTIDORES.

7. Usando un terminal serial del software Microcode Studio (figura 7) y un cable USB a RS
232 (figura 6). Se prueba cada convertidor de la siguiente manera:


Figura 6.- Conversor RS232-USB.



Figura 7.- Terminal Serial de Microcode.


Para comprobar el correcto funcionamiento de los convertidores conectamos en cascada el
conversor USB-R485 con RS485-RS232, seguidamente conectamos la interfaz serial con el

9

conversor RS232-USB para poder conectarlo a la computadora, seguidamente enviamos
caracteres por la terminal serial de microcode y tenemos que obtener los mismos
caracteres del otro lado, si es as los convertidores funcionan correctamente; Repetir el
mismo procedimiento con el conversor TTL-RS485.

8. Tambin es posible probar el funcionamiento de los convertidores implementando el
protocolo Modbus.
Descargar un simulador de maestro: Modbus Tester (figura 8) en el siguiente
link. http://www.modbus.pl/node/10
Descargar en otra PC un simulador de esclavos: Modbus Slave (figura 9) en el
siguiente link. http://www.modbustools.com/modbus_slave.asp


Figura 8.- Interfaz Grfica Modbus Tester.



Figura 9.- Interfaz Grfica Modbus Slave.


10


9. Una vez que hemos comprobado el funcionamiento de cada convertidor, es momento
de soldar, para esto necesitamos algunas herramientas y equipos especiales como los
que se encuentran en la figura 10 (cautn, estao, pinzas de corte, pasta para soldar y
una esponja) para que sea un trabajo sencillo y no tedioso.



Figura 10.- Materiales y herramientas para soldar.


10. Ser ordenados y cuidadosos al soldar los elementos siguiendo el esquema de cada
convertidor. Las figuras 11, 12 y 13 muestran los convertidores ya implementados:


Figura 11.- Conversor TTL-RS485.



Figura 12.- Conversor RS232-RS485.



Figura 13.- Conversor USB-RS485.





11

DESCARGA DE LIBRERIAS EN LAS PLATAFORMAS.

11. Para la plataforma Rapberry que ser el maestro de la red se usar el lenguaje de
programacin de Python. Para descargar esta librera la Raspberry debe tener acceso a
internet. Escribir los siguientes comandos en la consola y esperar que se complete la
instalacin:

sudo pip install -U pyserial
sudo pip install -U minimalmodbus

12. Dos Arduinos diecimal sern los esclavos de la red. Se descarga la librera de
SimpleModbusSlave de la siguiente manera :

Ingresar al siguiente link https://code.google.com/p/simple-modbus/
En la pestaa Dowland descargamos el archivo SimpleModbusSlaveV7.zip
Lo descomprimimos y copiamos su contenido en la carpeta de las libreras del
Software Arduino.
(Simple-modbus)

PROGRAMACIN Y CONFIGURACIN DE LA RED.

13. A continuacin se presenta la programacin realizada en un script de python en la
raspberry.


#!/usr/bin/env python
# Librerias utilizadas
import minimalmodbus
import time

print " PROYECTO DE REDES INDUSTRIALES"
print "Por: Pame y Dario"
while 1:
print "INGRESE LA DIRECCION DEL ESCLAVO 1 o 2"
# Direccion del Esclavo
a=input()
if a==1 or a==2:
# Configuracion de los Parametros de servicio con la direccin del esclavo
esclavo=minimalmodbus.Instrument('/dev/ttyUSB0',a)
esclavo.serial.baudrate =9600
esclavo.serial.bytesize =8
esclavo.serial.stopbits =2
esclavo.serial.timeout =1

print "Para escribir: E Para leer: L"
c=raw_input()
if c=="L":
print " INGRESE LA DIRECCION DE REGISTRO 0-9"

12

b=input()
e=input("Cuantos registros desea leer?")

# Lectura de los registros del esclavo y direccin seleccionada
valorobtenido=esclavo.read_registers(b,e,3)
print " El valor obtenido del esclavo"
print a
print "de la direccion:"
print b
print " Es:"
print valorobtenido

if c=="E":
print " INGRESE LA DIRECCION DE REGISTRO 0-9"
b=input()
print " INGRESE EL VALOR A ESCRIBIR"
d=input()

# Escritura sobre la direccin de los registros en el esclavo
esclavo.write_register(b, d,0)
if c!= "E" and c!="L":
print ".........ERROR......"
if a!=1 and a!=2:
print "......ERROR......!!!"
print "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
print "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"



14. La programacin de los esclavos se presenta a continuacin.


#include <SimpleModbusSlave.h>

enum
{
// Aade o elimina registros sobre los que puedes leer o escribir.
REG0,
REG1,
REG2,
REG3,
REG4,
REG5,
REG6,
REG7,
REG8,
HOLDING_REGS_SIZE
};


13

// Tipo de los registros (enteros).
unsigned int holdingRegs[HOLDING_REGS_SIZE];

void setup()
{
// Pin 3 como salida
pinMode(3, OUTPUT);

/* modbus_configure(&Serial, baudrate, byteFormat, ID, transmit enable pin, registers
size, holding register array)
*/
/*
SERIAL_8N2: 1 start bit, 8 data bits, 2 stop bits
SERIAL_8E1: 1 start bit, 8 data bits, 1 Even parity bit, 1 stop bit
SERIAL_8O1: 1 start bit, 8 data bits, 1 Odd parity bit, 1 stop bit
*/
modbus_configure(&Serial, 9600, SERIAL_8N2, 2, 2, 9, holdingRegs);

// Asignacin de valores a los registros.
holdingRegs[0] = 1;
holdingRegs[1] = 2;
holdingRegs[2] = 3;
holdingRegs[3] = 4;
holdingRegs[4] = 5;
holdingRegs[5] = 6;
holdingRegs[6] = 111;
holdingRegs[7] = 111;
holdingRegs[8] = 111;
}

void loop()
{
if (holdingRegs[1] == 1)
{
digitalWrite(3, HIGH);
}
else
{
digitalWrite(3, LOW);
}

// Lnea de cdigo encargada de actualizar los valores e implementar las funciones.
modbus_update();
}


15. Como se pudo ver en el cdigo tanto el maestro como los esclavos deben ser
configurados con los mismos parmetros de servicio:

Velocidad en baudios: 9600

14

1 start bit, 8 data bits, 2 stop bits

16. Cambiar la direccin del esclavo antes de cargar la programacin en el segundo
esclavo.
17. En la figura 14 se puede ver la conexin fsica de la red. No olvidar que la tierra en
todos los circuitos y plataformas debe estar cableada.



Figura 14.- Esquema de conexin de la red.

18. Compilamos y ejecutamos el programa en el maestro con los siguientes comandos:

sudo python MAESTRO.py

A continuacin se puede observar la ejecucin del programa cuando el maestro lee los
registros del esclavo. El programa es interactivo con el usuario (figura 15):


15


Figura 15.- Lectura de registros a travs del maestro.

En la figura 16 se puede observar la ejecucin del programa cuando el usuario selecciona la
opcin de escritura y se comprueba la funcin leyendo el valor del registro en el que se
escribi.


Figura 16.- Escritura de valores sobre los esclavos.


16

5. Resultados

Los valores que se lograron obtener al realizar pruebas ejecutando diferentes comandos en
las lneas de programacin del master se puede ver en la tabla 2.
Tabla 2.- Valores obtenidos al leer y escribir.

Funcin Empleada Valor Ledo
(Master)
Valor Escrito
(Esclavo)
Errores
read_register(2,1) 0.1 -
read_register(2,0) 10 -
read_registers(2,5,3) [1,2,3,4] -
write_register(7,35,0) 35 -
read_register(7,0) 35 -



Los resultados que se adquirieron desde el master como se ve en la tabla 1 carecen de
errores tanto en la escritura y lectura de los datos, debemos mencionar que las
funciones efectuadas solo corresponden a holding register, puesto que la librera que se
utiliz sobre la plataforma arduino implementa solo esta funcin.

Los leds que se utiliz para verificar la escritura de los valores sobre las plataformas
arduino se encendieron y apagaron de acuerdo a lo preestablecido (Encendido: Valor
de 1 en el registro 1; Apagado: Valores diferentes de 1 en el registro 1) logrando
comprobar el funcionamiento adecuado del protocolo sobre el esclavo 1 al igual que el
esclavo 2.
6. Conclusiones

Gracias a los conceptos vistos en clase y la informacin investigada fue posible
integrar una red de campo utilizando el protocolo modbus RTU.

Implementar el protocolo utilizando libreras, es ms fcil que programar desde
cero el protocolo sobre cualquier plataforma.

Como trabajos futuros, las plataformas que trabajan como esclavos pueden
establecer comunicacin con cualquier aplicacin que implemente el protocolo
modbus y funcione como master o con un servidor OPC.
7. Referencias Bibliogrficas

Bartolom, J. (2011). El protocolo MODBUS. Recuperado el 18 de Octubre de 2013, de
http://www.tolaemon.com/docs/modbus.htm

FTDI Chip. (2010). FT 232 R. Recuperado el 24 de Octubre de 2013, de
http://www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT232R.pdf


17

Instruments, T. (Marzo de 2004). Max 232. Recuperado el 24 de Octubre de 2013, de
http://www.ti.com/lit/ds/symlink/max232.pdf

LVR. (s.f.). Rs 485. Recuperado el 18 de Octubre de 2013, de
http://www.lvr.com/images/rs-485_circuits_f1.gif

MAXIM. (1996). Max 485. Recuperado el 24 de Octubre de 2013, de
http://ecee.colorado.edu/~mcclurel/max485ds.pdf

Modbus-IDA.ORG. (Diciembre de 2006). MODBUS over Serial Line. Recuperado el 18 de
Octubre de 2013, de
http://www.modbus.com/docs/Modbus_over_serial_line_V1_02.pdf

Simple-modbus. (s.f.). Recuperado el 18 de Octubre de 2013, de Modbus RTU libraries
for Arduino: https://code.google.com/p/simple-modbus/

Texas Instruments. (Marzo de 2013). LM555. Recuperado el 24 de Octubre de 2013, de
http://www.ti.com/lit/ds/symlink/lm555.pdf

Wikipedia. (Mayo de 2013). RS-485. Recuperado el 18 de Octubre de 2013, de
http://es.wikipedia.org/wiki/RS-485

8. Anexos



Anexo 1.- Parte Superior MAX485



18



Anexo 2.- Parte Superior Timer 555



Anexo 3.- Distribucin de Pines y Esquema del CI FT232RL


Anexo 4.- Esquema de conexin del CI FT232RL

19




Anexo 5.- Distribucin de Pines MAX232

Vous aimerez peut-être aussi