Autor Tema: Protocolo para RS485  (Leído 37986 veces)

0 Usuarios y 4 Visitantes están viendo este tema.

Desconectado zagoaristides

  • PIC12
  • **
  • Mensajes: 99
    • deportes de contacto y fitness
Re: Protocolo para RS485
« Respuesta #15 en: 09 de Abril de 2009, 13:59:36 »
Zagoaristides, este protocolo lo realicé hace como 6 meses para la tesis de ingeniería, por lo que la verdad que no recuerdo bien, pero estoy casi seguro que es como dices,  :D :D jjjaaaja, resulta que en estos momentos entiendes mejor el código que yo.
Pero recuerdo que después le agregué además código CRC y quedó mejor implementado, si tienes interés en utilizarlo me dices y lo busco para enviartelo.

Saludos, Ales.

Si la verdad me vendría genial que me lo pases mi mail de hotmail es zagoaristides

(Problema con PIC 18F2553)
Por cierto ya que debes saber más que yo en esto, traté de hacer funcionar tu ejemplo con un 18F2553 y no pude, imposible, no sé que cosa hago mal pero no me reconoce la interrupción, tal vez sea un problema de configuración de este PIC pero no puedo decifrarlo. Alguien que sepa más me puede ayudar?

Adjunto los archivos con la simulación. Fíjense de cambiar la ruta donde busca el .h

Ahh y por cierto, traté con la librería RS485.c, me pasa lo mismo, recibo bien pero no envía bien o no se interrumpe cuando llega algo, no se si alguien la probó, pero no entiendo como hace cuando tiene que enviar ya que no cambia el PIN DE del MAX487. Si alquien quiere esta simulación me avisa y la paso también.


Gracias.

Nadie nació sabiendo...Que genio ese Nadie!!!

Desconectado zagoaristides

  • PIC12
  • **
  • Mensajes: 99
    • deportes de contacto y fitness
Re: Protocolo para RS485
« Respuesta #16 en: 14 de Abril de 2009, 12:17:25 »
Lo pudiste mandar?
Nadie nació sabiendo...Que genio ese Nadie!!!

Desconectado zagoaristides

  • PIC12
  • **
  • Mensajes: 99
    • deportes de contacto y fitness
Re: Protocolo para RS485
« Respuesta #17 en: 25 de Abril de 2009, 11:53:46 »
Zagoaristides, este protocolo lo realicé hace como 6 meses para la tesis de ingeniería, por lo que la verdad que no recuerdo bien, pero estoy casi seguro que es como dices,  :D :D jjjaaaja, resulta que en estos momentos entiendes mejor el código que yo.
Pero recuerdo que después le agregué además código CRC y quedó mejor implementado, si tienes interés en utilizarlo me dices y lo busco para enviartelo.

Saludos, Ales.

Hola Ale, aún estoy esperándolo. zagoaristides 4rr0b4 h0tm4il punt0 c0m es mi correo. Gracias.
Nadie nació sabiendo...Que genio ese Nadie!!!

Desconectado zagoaristides

  • PIC12
  • **
  • Mensajes: 99
    • deportes de contacto y fitness
Re: Protocolo para RS485
« Respuesta #18 en: 05 de Mayo de 2009, 17:20:17 »
Zagoaristides, este protocolo lo realicé hace como 6 meses para la tesis de ingeniería, por lo que la verdad que no recuerdo bien, pero estoy casi seguro que es como dices,  :D :D jjjaaaja, resulta que en estos momentos entiendes mejor el código que yo.
Pero recuerdo que después le agregué además código CRC y quedó mejor implementado, si tienes interés en utilizarlo me dices y lo busco para enviartelo.

Saludos, Ales.

Hola Ale, aún estoy esperándolo. zagoaristides 4rr0b4 h0tm4il punt0 c0m es mi correo. Gracias.

Nada aún... voy a terminar como la del Muelle de San Blas
Nadie nació sabiendo...Que genio ese Nadie!!!

Desconectado yanki31

  • PIC10
  • *
  • Mensajes: 35
Re: Protocolo para RS485
« Respuesta #19 en: 20 de Mayo de 2009, 21:20:35 »
Buenas a todos señores electronicos sabios de los pics!! vengo antes que nada a pedir ayuda... casi auxilio por que? les explico, yo estoy por graduarme de Tecnico Superior en electricidad industrial y potencia, esto quiere decir alta tension, subestaciones electricas, instalaciones electricas residenciales, industriales.... en pocas palabras los conocimientos de nosotros en electronica y sobretodo en pic son demasiado basicos.... casi nulos. El hecho radica en que me mandaron a hacer "casi obligado" un proyecto final de grado sobre microcontroladores (PIC), estoy realmente desesperado por que de no poner a funcionar eso no me graduo y la verdad no tengo idea de como empezar si quiera.... agradeceria muchisimo si alguien me puede ayudar con esto... aqui les dejo la explicacion de lo que tengo que realizar:


PROYECTO: Diseño y puesta a prueba de un sistema remoto de adquisición de datos digitales y analógicos vía RS485 basado en microcontroladores PIC.


DESCRIPCIÓN

Se realizará un sistema de adquisición de múltiples datos analógicos y digitales, usando una baquelita orificada como base y varios Pics (seleccionar un micro que posea USART).

Este sistema debe contar con varios módulos que se pueden utilizar para los diferentes modos de funcionamiento del sistema. Los datos se envían por comunicación serial a una computadora personal, que lo recibe utilizando un software en Labview, y realiza las operaciones correspondientes para obtener el dato equivalente a la variable medida por el sensor.


MÓDULOS A DESARROLLAR

Comunicación PC – PIC      Desarrollo de un Subvi en Labview que permita
                                                 realizar un protocolo de acceso al medio.

Comunicación PIC – PIC     Desarrollo de una tarjeta de adquisición de datos (digitales y analógicos).



se que para ustedes esto quizas resulte algo simple... por que es de su area... pero para alguien del perfil que tengo es algo totalmente extraño por que no tengo los conocimientos para hacerlo. si me pueden ayudar se los agradeceria en el alma. gracias de antemano.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Protocolo para RS485
« Respuesta #20 en: 20 de Mayo de 2009, 22:00:46 »
Hola.

Debes definir primero que PIC vas a utilizar, tambien que lenguaje de programacion -C, ASM, Basic- luego ya se podria entrar de lleno a lo que quieres.

Saludos
El papel lo aguanta todo

Desconectado nicoach

  • PIC10
  • *
  • Mensajes: 3
Re: Protocolo para RS485
« Respuesta #21 en: 20 de Mayo de 2009, 22:44:52 »
Hola. Hablando de RS485, tengo una duda que puede parecer ridícula pero estoy dándole vueltas al proyecto que estoy haciendo para intercomunicar varios dispositivos y no sé si será por la hora pero no se me ocurre cómo averiguar, teniendo un pic y un max485 en cada dispositivo, si el bus ya se está utilizando por otros dispositivos o en cambio si está libre. ¿Me podríais indicar cuál sería la mejor manera?

Gracias de antemano.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Protocolo para RS485
« Respuesta #22 en: 20 de Mayo de 2009, 23:38:40 »
Hola.

La idea es tener un protocolo organizado en la comunicacion, es decir, debes definir cual PIC es el MASTER y cuales los SLAVES. El MASTER pide la informacion y solo el micro que la tenga va a contestar.
El papel lo aguanta todo

Desconectado nicoach

  • PIC10
  • *
  • Mensajes: 3
Re: Protocolo para RS485
« Respuesta #23 en: 21 de Mayo de 2009, 00:42:48 »
Hola.

La idea es tener un protocolo organizado en la comunicacion, es decir,  debes definir cual PIC es el MASTER y cuales los SLAVES. El MASTER pide la informacion y solo el micro que la tenga va a contestar.
Gracias por responder. Lo del protocolo más o menos lo tengo claro y lo voy a implementar de forma similar a como han hecho otros foreros pero en el trabajo que estoy haciendo va a haber varios master, es más, todos los dispositivos tienen que comportarse en determinados momentos en master o slave y muchas veces cuando un master envía datos a un slave éste tiene que responder. La duda que tengo es que, por ejemplo, cuando un dispositivo con ID 00 quiera comunicarse con otro con ID 01 primero tiene que comprobar si el bus está libre porque puede darse el caso a que el dispositivo ID 02 esté transmitiendo al dispositivo ID 03 y después de esa transmisión el ID 03 empiece a transmitir para comunicar alguna respuesta, cosa que ID 00 no sabe o no debería saber.

Bueno, se me acaba de ocurrir una manera, aunque no se si sería la más adecuada. Cada vez que un dispositivo inicie una transmición, como los demás van a estar a la escucha para comprobar si el mensaje es para ellos está claro que no van a transmitir en ese momento. Añadiendo un bit en la transmicion se podría indicar con un 1 si la linea seguirá ocupada ya que el dispositivo que inició la transmición puede estar esperando una respuesta de otro dispositivo o con un 0 si en cambio es el final de la transmisión y ya no se espera ninguna respuesta. Programo cada pic para que analice todas las cadenas que circulan en el bus y que lea en cada una la posición del bits que da el estado de la línea y que lo almacene en una variable. Así, si un pic tiene la necesidad de transmitir, primero comprueba el estado de la variable, si es 0 la cambia a 1 y empieza a transmitir. Si necesita respuesta de otro pic, en la cadena de transmición pone un 1 en el bit que indica la disponibilidad del bus. Despues de enviar la cadena el resto de los pic cambian su variable a 1 excepto el que tiene que responder. Éste, al responder, en la cadena manda el bit de disponibilidad a 0 y acto seguido todos los pic cambian su variable a 0 lo que les indica que el bus vuelve a estar libre.

Seguramente me he enrollado mucho pero se me ocurrió ahora mismo y no podía dejar de escribir por miedo a olvidarme (ya estoy bastante cansado, aquí ahora son las 4:40 de la madrugada y todavía sigo dándole al asunto)


Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4919
Re: Protocolo para RS485
« Respuesta #24 en: 21 de Mayo de 2009, 05:04:11 »
Hola Nicoach!
No se si tu conoce el DMX512??? pues si revisa el Protocolo, te va a sacar de muchas dudas, el protocologo DMX512 esta hechos para esto, lo que debe tener claro que es Receptor / Transmisor
cada modulo lleva su direcion preprogramada, para asi evitar Colazo entre cadas dipositivo.
Saludos

 

Desconectado nicoach

  • PIC10
  • *
  • Mensajes: 3
Re: Protocolo para RS485
« Respuesta #25 en: 21 de Mayo de 2009, 11:54:19 »
Hola Nicoach!
No se si tu conoce el DMX512??? pues si revisa el Protocolo, te va a sacar de muchas dudas, el protocologo DMX512 esta hechos para esto, lo que debe tener claro que es Receptor / Transmisor
cada modulo lleva su direcion preprogramada, para asi evitar Colazo entre cadas dipositivo.
Saludos

 
Gracias stk500! He estado buscando información del protocolo DMX512 pero no he encontrado mucho sobre cómo funciona realmente es el protocolo. En cualquier caso, he pensado que la cadena de envío podría ser la siguiente:
*AABBCCDDDDDDDDE#

Donde:
* = Inicio de la cadena.
AA = Id del dispositivo al que va destinada la cadena.
BB = Id del dispositivo que envía la cadena. Necesario para que el destinatario pueda responderle.
CC = Refencia de la instrucción. Cada dispositivo tendrá una subrutina programada con una referencia por cada instrucción que deba realizar.
DDDDDDDD = datos que se envían relacionados con la instrucción.
E = Es un 1 si el bus seguirá ocupado porque espera respuesta desde otro dispositivo. Un 0 si después de la instrucción queda libre.
# = Carácter de fin de instrucción.

Espero que con este planteamiento no tenga problemas de comunicacion pero ¿qué opinais?

Saludos!

Desconectado yanki31

  • PIC10
  • *
  • Mensajes: 35
Re: Protocolo para RS485
« Respuesta #26 en: 21 de Mayo de 2009, 19:26:10 »
hola soy el del proyecto de comunicacion via RS485 que trata sobre esto:

PROYECTO: Diseño y puesta a prueba de un sistema remoto de adquisición de datos digitales y analógicos vía RS485 basado en microcontroladores PIC.


DESCRIPCIÓN

Se realizará un sistema de adquisición de múltiples datos analógicos y digitales, usando una baquelita orificada como base y varios Pics (seleccionar un micro que posea USART).

Este sistema debe contar con varios módulos que se pueden utilizar para los diferentes modos de funcionamiento del sistema. Los datos se envían por comunicación serial a una computadora personal, que lo recibe utilizando un software en Labview, y realiza las operaciones correspondientes para obtener el dato equivalente a la variable medida por el sensor.


MÓDULOS A DESARROLLAR

Comunicación PC – PIC      Desarrollo de un Subvi en Labview que permita
                                                 realizar un protocolo de acceso al medio.

Comunicación PIC – PIC     Desarrollo de una tarjeta de adquisición de datos (digitales y analógicos).


Falto decirles que el pic a utilizar puede ser el 16f873 o el 16f877 que son los mas faciles de conseguir aqui en venezuela, el tipo de lenguaje de programacion es pic C.

 De verdad el que me pueda ayudar en esto se lo agradeceria en el alma... ya que el desgraciado de mi tutor en vez de orientarme o ayudarme, lo que quiere al parecer es que repruebe este proyecto esto en conjunto con los demas profes que me dan clase. Como obiviamente no soy electronico si no de electricidad industrial no tengo los conociemientos para realizar esto, he hecho pruebas con algunos circuitos y programas que he visto por ahi pero no funcionan, en mi univ al parecer nadie sabe hacer la puta comunicacion RS485 y mi primer y principal problema radica en comunicar entre PICS con ese tipo de comunicacion. agradeceria mucho la ayuda de alguien que por lo menos me oriente

Desconectado yanki31

  • PIC10
  • *
  • Mensajes: 35
Re: Protocolo para RS485
« Respuesta #27 en: 24 de Mayo de 2009, 00:16:26 »
Hola.

Debes definir primero que PIC vas a utilizar, tambien que lenguaje de programacion -C, ASM, Basic- luego ya se podria entrar de lleno a lo que quieres.

Saludos

el pic 16f877 o el 16f873 que son los mas faciles de conseguir aqui en venezuela. el lenguaje de programacion pic C. y necesito por la menos un programa que comunique pics entre si y a la pc con este tipo de protocolo RS485. de verdad espero puedas ayudarme.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Protocolo para RS485
« Respuesta #28 en: 24 de Mayo de 2009, 15:15:56 »
Un Rele en la lejania by RedPic

Para hacerlo PIC a PIC basta conectar el otro PIC y listo, ah!! y generar el codigo para recepcion, que es lo mismo del slave del ejemplo.

Saludos
El papel lo aguanta todo

Desconectado yanki31

  • PIC10
  • *
  • Mensajes: 35
Re: Protocolo para RS485
« Respuesta #29 en: 24 de Mayo de 2009, 16:31:57 »
si pero la cosa es que no se como hacer este codigo en pic C para comunicar los pics y la pc via RS485, es ahi donde tengo la tranca en mi proyecto, por que la verdad poco o nada se de los micros... es mas que obvio que esto no es un proyecto para alguien que estudie electricidad si no mas bien para alguien de electronica. si pudiera tener un codigo o programa que comunique los pics entre si y el maestro al pc via RS485, ya lo demas seria facil. necesito ayuda es en ese sentido


 

anything