# Comunicación RS-422/RS485 con pic familia 16f8XX



## Luis Eduardo Sánchez (Jul 23, 2006)

Hola a todos!

Si alguno de ustedes tiene información de como implementar el protocolo de comunicación MODBUS al pic 16f8xx y de como generar las rutinas para las direcciones en este sistema, les quedaría agradecido.

Saludos


----------



## tweetydj (Jul 23, 2006)

Por que no pruebas con un pic que tenga incorporado el protocolo modbus en el hard?


----------



## maunix (Jul 24, 2006)

tweetydj dijo:
			
		

> Por que no pruebas con un pic que tenga incorporado el protocolo modbus en el hard?



¿Existe tal pic? Hasta donde yo sé el modbus es un protocolo de nivel de enlace , transporte y aplicación y no de capa física, pero siempre se aprende algo nuevo.

¿Puedes aclarar tu punto?


----------



## maunix (Jul 24, 2006)

Luis Eduardo Sánchez dijo:
			
		

> Hola a todos!
> 
> Si alguno de ustedes tiene información de como implementar el protocolo de comunicación MODBUS al pic 16f8xx y de como generar las rutinas para las direcciones en este sistema, les quedaría agradecido.
> 
> Saludos



Creo que en www.sasian.es había algo del tema

Saludos


----------



## Deus (Oct 16, 2007)

respecto a modbus, no existe un pic dedicado para modbus, pero existe varios codigos q lo hacen trabajar con las funciones de lectura y escritura de bit, y de palabras. estube trabajando para la generacion de un codigo propio, pero con algunas erratas.  ops: en especial con los esclavos (ya q estoy armando una red)se puede implementar facilmente en un F877, pero prefiero en un F648, ya q en pocos pines (iguales q el F84) tienen las mismas funciones q el F877, incluyendo USART, hasta con el F84 se puede hacer. (Con algo de trabajo extra, pero se puede)
Apenas tenga algun fruto, les aviso.


----------



## gabrielg (Nov 14, 2007)

Hola

Aqui tienes información para hacer una RS-485. 

Ingresa a esta direccion encontras mucho del tema:

http://www.mikroe.com/en/compilers/mikrobasic/pic/

Espero te sirva. Saludos


----------



## juanbenitez27 (Jul 18, 2008)

hola quisiera saber si me pueden ayudar, tengo que comunicar 2 pics separados por una distancia de 50m, tengo que mandarle la información de 15 entradas de uno al otro para asi accionar una serie de salidas en el otro extremo, en forma paralelo son demaciados cables y no es viable, por RS-232 es mucha la distancia, como implementaria un sistema de RS-485 para este caso?


----------



## gabrielg (Jul 18, 2008)

Hola Juanbenitez27

Si operas la RS232 a baja velocidad, es decir 4800, por ejemplo, no vas a tener problemas de distancia. 

Otra solución, mejor que la anterior, es emplear RS-422, la cual es una RS-232 en modo diferencial, solo cambia el circuito integrado que debes colocar en la salida del PIC, el programa es el mismo.

En vez de un MAX232, debes utilizar un MAX1487 (o similar, hay versiones de National mas economicas). Si necesitas comunicación bidireccional (sería conveniente confirmar que los datos llegaron bien) utiliza 2 de estos integrados y te evitas el programar para entrada y/o salida y es full duplex.

Suerte y comentá como te fué. Saludos


----------



## joule_24 (Jul 19, 2008)

juanbenitez27 dijo:
			
		

> hola quisiera saber si me pueden ayudar, tengo que comunicar 2 pics separados por una distancia de 50m, tengo que mandarle la información de 15 entradas de uno al otro para asi accionar una serie de salidas en el otro extremo, en forma paralelo son demaciados cables y no es viable, por RS-232 es mucha la distancia, como implementaria un sistema de RS-485 para este caso?



mira man lo puedes hacer con un max 232 y con un pic 16F84 en cada extremo   es relativamente facil solo tienes q saber el diagrama de tiempos y listo yo hise uno si kieres contactame me gustaria ayudarte


----------



## itvboy (Jul 31, 2008)

Saludos. es sistema modbus es muy facil de implementar, yo tengo una red con 7 controladores hablando modbus y conectados a Wonderware Intouch. Uso RS-485 Half duplex. El pic que utilizo es el PIC18F252.

Te recomiendo utilizes modbus en modo ASCII Ya que es mas facil de trabajar.
Te recuerdo que el RS485 utiliza 2 resistencias de polarizacion (2.2K) y una resistencia de terminacion (120) en cada estremo del bus.

Pues listo, a utilizar modbus, si qusieras leer una entrada digital del pic con la direccion 05 la trama seria esta.

:05010200001FB

: empieza una trama
05 es la direccion del esclavo
01 es la funcion para leer una entrada digital
0200 es una direccion de referencia de entrada
0001 es la cantidad de entradas que quieres leer
FB es la comprobacion que se transmitio bien (LRC) que no es mas que la suma de los bytes enviados restados de 255 mas 1.

Suerte! Yo tuve exito en una semana y tras 6 meses de pruebas en campo industrial eh logrado pulirlo.


----------



## GustavoT (Sep 26, 2008)

itvboy hace que paresca todo tan simple. donde se puede leer mas sobre el protocolo ?

Gustavo


----------



## Gregory (Mar 27, 2009)

juan benitez no te des mala vida implementa rs232 a una velocidad de 2400 o maximo el doble y alcanzaras los 50 mts con facilidad


----------



## itvboy (Abr 17, 2009)

Gregory, es mas facil implementar un RS485 con Max485 a implementar un RS232 con MAX232, ya que el ultimo requiere capacitores y 3 cables de comunicacion. EL MAX485 es muy manejable con PICS, no requiere capacitores ni resistencias (en un montaje sencillo claro) y puedes alcanzar el kilometro de transmision con solo 2 cables. Yo te recomiendo ampliamente el RS485 en HALF DUPLES (Asi ahorras cables). En internet puedes encontrar muchas referencias de PICS con MAX485


----------



## Gregory (Abr 18, 2009)

que tal muchachos, alguien tendra información "tutoriales" ejemplos lo que sea sobre los distintos protocolos de comunicacacion tales como spi,i2c, rs-232 y rs-485..............esta bien juan benitez nunca he trabajado con rs-485 no sabia que era mas facil de implementar con max-485.. tambien he leido de un convertidor de rs-232 a rs -485. si no me equivoco es el 75176. que opinas al respecto


----------



## maritov (May 21, 2009)

Yo utilizo a menudo el 75176 en conversores 232-485 y funciona a la perfeccion, nunca un problema.Saludos y coraje


----------



## EmilianoF (Jul 10, 2009)

maritov dijo:
			
		

> Yo utilizo a menudo el 75176 en conversores 232-485 y funciona a la perfeccion, nunca un problema.Saludos y coraje



Hola, estoy intentando realizar una comunicación entre dos pic 16f877 a unos 80 mts de distancia y para eso estoy utilizando el ds75176 pero no puedo lograr una buena comunicación. 
Alguién podría darme una mano con el tema?


----------



## Walmore (Abr 14, 2010)

Hola itvboy, en estos momentos estoy realizando mi trabajo especial de grado y estoy creando un sistema de monitoreo con pics pero necesito comunicarlos por protocolo Modbus, creeme que es estado tiempo ya tratando de hacerlo pero nada..., he leido tu comentario y dices que ya tienes varios pics con modbus y hasta los comunicas a un Wonderware Intouch. Apreciaria mucho tu ayuda para realizar esta comunicacion modbus, para que sepas estoy usando el PIC16F877. De ante mani muchas gracias por futuras ayudas!!



itvboy dijo:


> Saludos. es sistema modbus es muy facil de implementar, yo tengo una red con 7 controladores hablando modbus y conectados a Wonderware Intouch. Uso RS-485 Half duplex. El pic que utilizo es el PIC18F252.
> 
> Te recomiendo utilizes modbus en modo ASCII Ya que es mas facil de trabajar.
> Te recuerdo que el RS485 utiliza 2 resistencias de polarizacion (2.2K) y una resistencia de terminacion (120) en cada estremo del bus.
> ...



Hola itvboy, en estos momentos estoy realizando mi trabajo especial de grado y estoy creando un sistema de monitoreo con pics pero necesito comunicarlos por protocolo Modbus, creeme que es estado tiempo ya tratando de hacerlo pero nada..., he leido tu comentario y dices que ya tienes varios pics con modbus y hasta los comunicas a un Wonderware Intouch. Apreciaria mucho tu ayuda para realizar esta comunicacion modbus, para que sepas estoy usando el PIC16F877. De ante mani muchas gracias por futuras ayudas!!


----------



## COSMICO (Sep 28, 2010)

Saludo a todos.
Ya que estan hablando del tema..necesito saber sobre este protocolo"rs422"
diagrama de tiempos como es la trama de la señal 
y bits de control.. para un trabajo que debo hacer en la u
Gracias por la ayuda..


----------



## moxxxri (Abr 9, 2011)

Walmore Estoytrabajando en algo parecidoa .Estoy tratando de comunicar tres pic usando modbus Ojala me puedas ayudar


----------



## LMarVg (Ago 28, 2011)

Hola ItvBoy te agradecería si me pudieras ayudar....necesito comunicar una HMI (6070iH) a un PIC 16F877. Para esto utilizo el 75176. El problema que tengo es que: inicie el USART como en el datasheet, (modo recepción) y una rutina que monitoree el RCSTA,RCIF , que es el que se activa cuando se llena el RCREG.
El tema seria que cuando energizo todo el circuito y sin enviar ningún byte desde el hmi se setea este bit (RCIF=1) es decir que adquiere un dato sin que se lo envie. luego mando las lineas A y B del 75176 a 0 V y no sucede esta interrupcion. Te sucedio algo similar cuando realizabas tu proyecto???

Desde ya muchas gracias.


----------



## mjtelecom (Jun 6, 2012)

Buenas tardes a todos!!

Les escribo ya que, estoy implementando un sistema de comunicación entre 2 dispositivos del cual, sólo realizo el programa de uno de ellos. Quiero visualizar por mi pantalla los valores de los datos que me envía el otro dispositivo. El otro dispositivo maneja un bit start, dirección de origen, dirección de destino, 5 bits de datos, 9600 baudios, sin bit de paridad, y un bit stop. Trabaja con el protocolo RS-485 con RTU. No he trabajado con estos protocolos, estoy mirando por internet información del mismo pero no concreto nada... Al momento de activar la recepción de datos nunca se me activa PIR1,RCIF, de momento tengo la configuración de la UART correcto, al igual que en el otro dispositivo. Espero que me puedan ayudar. Aquí les dejo el enlace de una parte de mi código:

https://www.forosdeelectronica.com/f24/comunicaciones-rs-485-pic16f87x-76133/

Les agradecería mucho su ayuda. Un saludo!


----------



## Cristhiancdbc (Dic 20, 2012)

Tengo una duda, yo tengo la comunicación entre tres pic (un maestro por así llamarlo y dos esclavos) con rs232, funciona bien y está direccionado, es decir, dependiendo de lo enviado en el maestro recibe el esclavo 1 o el 2. Como se sabe rs232 es una comunicación punto a punto o sea de un PIC a otro PIC pero si coloco el segundo esclavo para hacer una red con tres PIC y solo un par de cables de cobre me puede ocasionar un grave problema. Para esto quiero colocarle un conversor a 485 en cada PIC, esto entonces ¿me daría la posibilidad de hacer esta conexión y tener el maestro y dos esclavos? si es así, no debo modificarle nada a los códigos ¿verdad? ni los dB ni nada.

Gracias.


----------

