Autor Tema: Comunicar varios Pic via 485 al PC  (Leído 6390 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado zonadjarn

  • PIC10
  • *
  • Mensajes: 45
Comunicar varios Pic via 485 al PC
« en: 21 de Octubre de 2007, 12:53:39 »
Muy buenas a todos, necesito que me echeis una mano con un proyecto ya que estoy un poco atascado:
Se trata de un control semafórico a distancia.
Cada semaforo "4 en cada cruce" iria controlado por un PIC y estos mediante 485 "irian todos en el mismo bus" deverian comunicarse con el PC, en el cual se debe monitorizar el estado actucal de cada semaforo.
Para programar estoy indeciso si utilizar el VB.
Me podeis dar alguna idea?...Saludos
En los Albores de la Electronica, "THE GOD IS PIO LAZARO"

Desconectado zonadjarn

  • PIC10
  • *
  • Mensajes: 45
Re: Comunicar varios Pic via 485 al PC
« Respuesta #1 en: 21 de Octubre de 2007, 12:58:38 »
Bueno mientras alguien me puede ayudar tengo dos dudas esenciales:

1) como puedo saber desde el programa de VB que Pic me esta mandando la informacion "para hacer la accion que precise".

2)Como cada cruce es de 4 semaforos tengo q tener 4 pics.
Mi pregunta: habria que poner un pic central de comunicacion en cada cruce antes de ir al pc? o valdria con conectar todas las salidas 485 de todos los pìc al bus 485 que va al pc "digamos empalmarlos?...Saludos
En los Albores de la Electronica, "THE GOD IS PIO LAZARO"

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: Comunicar varios Pic via 485 al PC
« Respuesta #2 en: 21 de Octubre de 2007, 13:40:44 »
Hola, para implementar la comunicacion, los pic estaran en modo esclavo, y cada uno tendra un numero de identificacion, que al ser consultado por ese numero, te responda con los estados de salida

la implementacion dependera de "hasta donde quieras llegar", y podras emplear desde un pic por semaforo, a un pic por cruce, o a colocar un pic dedicado a la comunicacion... son todas posibilidades..

Suerte!

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado zonadjarn

  • PIC10
  • *
  • Mensajes: 45
Re: Comunicar varios Pic via 485 al PC
« Respuesta #3 en: 21 de Octubre de 2007, 15:45:52 »
Hola, para implementar la comunicacion, los pic estaran en modo esclavo, y cada uno tendra un numero de identificacion, que al ser consultado por ese numero, te responda con los estados de salida

la implementacion dependera de "hasta donde quieras llegar", y podras emplear desde un pic por semaforo, a un pic por cruce, o a colocar un pic dedicado a la comunicacion... son todas posibilidades..

Suerte!

Norberto

Hola muy buenas, te entiendo mas o menos. hay algun manual o algo de como hacer lo de maestros y esclavos con los pic?
Otra cosa, que programa me recomendarias para hacer la programacion en el pC?...Saludos
En los Albores de la Electronica, "THE GOD IS PIO LAZARO"

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Comunicar varios Pic via 485 al PC
« Respuesta #4 en: 21 de Octubre de 2007, 16:11:31 »
Un poco de filosofía barata sobre el RS485:

Independiente de protocolos hardware y/o software de control de flujo del RS485 mas complejos voy a hablar del sistema mas simple de implementación de comunicaciones RS485.

La idea fundamental que quiero transmitir es la siguiente: Todos los dispositivos colgados en paralelo de las dos líneas de un RS485 pueden hablar al mismo tiempo, pero no deben hablar al mismo tiempo, por que en este caso nadie oirá nada de nada.

Una de las soluciones posibles, la mas simple, es que uno de ellos habla siempre primero, es el MASTER, y todos los demás sólo responden, son los SLAVES.

Escenifiquemos una situación imaginando que tenemos un PIC al que llamamos MASTER y otro PIC al que llamamos SLAVE.

Una posible conversación entre ellos podría ser:

MASTER : "Hola SLAVE"
SLAVE : "Hola MASTER".

Simple y sencillo como juego de chiquillo.

Pero compliquemos un poco el asunto, añadiendo a nuestra Red RS485 un segundo PIC también llamado SLAVE

Nuestra conversación anterior sería:

MASTER : "Hola SLAVE"
SLAVE : "Hola MASTER". SLAVE : "Hola MASTER".

Puafffff, el PIC MASTER habla y los dos PIC's SLAVE lo oyen y le contestan al mismo tiempo. Choque, Crash, Overrun, simultaneidad de tiempo y espacio, el resultado no puede ser mas horrible: nadie escucha nada.

La solución no puede ser mas sencilla: Implementamos lo que conocemos como sistema de POLLING (sondeo, muestreo, pregunta) para ello nombramos de forma distinta a cada SLAVE. Uno de ellos será SLAVE1 y el otro responderá a SLAVE2.

De forma que nuestra conversación será ahora:

MASTER : "Hola SLAVE1"
SLAVE1 : "Hola MASTER".
MASTER : "Hola SLAVE2"
SLAVE1 : "Hola MASTER".

Sólo uno de ellos habla cada vez, primero el MASTER le pregunta al SLAVE1, sólo éste le contesta, después el MASTER le pregunta al SLAVE2 y es entonces este cuando le contesta también. El MASTER está haciendo POLLING y los SLAVES contestan cuando se reconocen en el mensaje del MASTER.

En una forma mas académica: Cada PIC SLAVE guarda un parámetro de configuración del estilo "001", "002", "00x". El PIC MASTER emite un mensaje del estilo "P001:?", todos los SLAVES reciben el mismo mensaje pero sólo el PIC numerado como "001" responderá algo así como "R001:ABCDEFG"

Fijaos como un "P001:?" significaría algo así como "Pregunta para el 001 : ¿Tú quien eres?" y el "R001:ABCDEFG" debería entenderse como "Respuesta de 001 : Yo soy ABCDEFG"

Con esto te aseguras unas comunicaciones simples y fiables.  :mrgreen: :mrgreen: :mrgreen:

Un saludo.
« Última modificación: 21 de Octubre de 2007, 16:15:43 por RedPic »
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado zonadjarn

  • PIC10
  • *
  • Mensajes: 45
Re: Comunicar varios Pic via 485 al PC
« Respuesta #5 en: 21 de Octubre de 2007, 16:35:57 »
Mas o menos te entiendo, hay que hacer un barrido de 1 a 1, pero a ver si tienes algun ejemplo de como se haria..Saludos
En los Albores de la Electronica, "THE GOD IS PIO LAZARO"

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Comunicar varios Pic via 485 al PC
« Respuesta #6 en: 21 de Octubre de 2007, 16:45:53 »
Mas o menos te entiendo, hay que hacer un barrido de 1 a 1, pero a ver si tienes algun ejemplo de como se haria..Saludos

¿Como se haría ... el qué? ¿el contenido de los mensaje que se intercambien? ¿el programa del SERVER? ¿el de los SLAVES? ¿En C? ¿En ASM?  :shock:
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado zonadjarn

  • PIC10
  • *
  • Mensajes: 45
Re: Comunicar varios Pic via 485 al PC
« Respuesta #7 en: 21 de Octubre de 2007, 17:05:01 »
Mas o menos te entiendo, hay que hacer un barrido de 1 a 1, pero a ver si tienes algun ejemplo de como se haria..Saludos

¿Como se haría ... el qué? ¿el contenido de los mensaje que se intercambien? ¿el programa del SERVER? ¿el de los SLAVES? ¿En C? ¿En ASM?  :shock:

Bueno te pregunto, el cod ese de identificacion del pic como seria? y como llamarias discriminarias desde el PC cada msje q te llega de algun pic,
el programa tendra 3 cruces con 4 semaforos cada 1 y depende en q cruce pinches apareceran esos 4 semaforos.
Nose si usar VB u otro...Saludos


P.D-->Con algun ejemplito facil de esa comunicacion o tutorial seria valioso en principio, esq otra opcion es usar automatas em vez  de pic
En los Albores de la Electronica, "THE GOD IS PIO LAZARO"

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Comunicar varios Pic via 485 al PC
« Respuesta #8 en: 21 de Octubre de 2007, 17:36:13 »
Hola:

A mi me parece que te preguntaron que lenguae usarás para el pic, no que como irían los semáforos, dependiéndo del lenguaje que uses se te podrá indicar o dar pistas en base a pequeños códigos para que puedas irlo implementarlo a tus necesidades

Desconectado zonadjarn

  • PIC10
  • *
  • Mensajes: 45
Re: Comunicar varios Pic via 485 al PC
« Respuesta #9 en: 21 de Octubre de 2007, 17:53:32 »
Hola:

A mi me parece que te preguntaron que lenguae usarás para el pic, no que como irían los semáforos, dependiéndo del lenguaje que uses se te podrá indicar o dar pistas en base a pequeños códigos para que puedas irlo implementarlo a tus necesidades

El lenguaje seria en CSS...Saludos
En los Albores de la Electronica, "THE GOD IS PIO LAZARO"

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: Comunicar varios Pic via 485 al PC
« Respuesta #10 en: 22 de Octubre de 2007, 06:15:18 »
Un enlace a un proyecto con RS485 http://www.endtas.com/robot/modules.php?name=News&file=article&sid=183. Espero que te ayude.

Desconectado zonadjarn

  • PIC10
  • *
  • Mensajes: 45
Re: Comunicar varios Pic via 485 al PC
« Respuesta #11 en: 22 de Octubre de 2007, 13:38:03 »
Ahora una pregunta, creeis que es factible hacer este proyecto mediante PIC? o seria mejor realizarlo con automatas?.

una duda me acaba de surgir ahora con la programacion del Pic en CCS, necesito que el timer sea de 30 segundos, que es lo que los semaforos estaran en verde, no puedo usar el delay, ya que mientras lo esta ejecutando no se puede cancelar nada y no me valdria en caso de q le de al boton de paro de los semaforos...Saludos
« Última modificación: 22 de Octubre de 2007, 14:04:28 por zonadjarn »
En los Albores de la Electronica, "THE GOD IS PIO LAZARO"

Desconectado LABmouse

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3575
    • Juntos es mejor
Re: Comunicar varios Pic via 485 al PC
« Respuesta #12 en: 22 de Octubre de 2007, 16:37:30 »
No habría ningún problema en usar un PIC para dicha tarea.




Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Comunicar varios Pic via 485 al PC
« Respuesta #13 en: 22 de Octubre de 2007, 16:42:41 »
Ahora una pregunta, creeis que es factible hacer este proyecto mediante PIC? o seria mejor realizarlo con automatas?.

una duda me acaba de surgir ahora con la programacion del Pic en CCS, necesito que el timer sea de 30 segundos, que es lo que los semaforos estaran en verde, no puedo usar el delay, ya que mientras lo esta ejecutando no se puede cancelar nada y no me valdria en caso de q le de al boton de paro de los semaforos...Saludos
En realidad si no puedes usar el Delay() te conviene generar una interrupcion cada 5 mseg (por ejemplo) y usar contadores dentro de la interrupcion, comparando los acumuladores, una vez alcanzado el numero de interrupciones, activas un flag y pones en cero el contador.
El flag lo utilizas en el programa principal para ejecutar procesos cada XX tiempo.
La ventaja de este sistema es que con un solo timer tienes varios tiempos diferentes... :D
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado zonadjarn

  • PIC10
  • *
  • Mensajes: 45
Re: Comunicar varios Pic via 485 al PC
« Respuesta #14 en: 23 de Octubre de 2007, 04:51:40 »
Ahora una pregunta, creeis que es factible hacer este proyecto mediante PIC? o seria mejor realizarlo con automatas?.

una duda me acaba de surgir ahora con la programacion del Pic en CCS, necesito que el timer sea de 30 segundos, que es lo que los semaforos estaran en verde, no puedo usar el delay, ya que mientras lo esta ejecutando no se puede cancelar nada y no me valdria en caso de q le de al boton de paro de los semaforos...Saludos
En realidad si no puedes usar el Delay() te conviene generar una interrupcion cada 5 mseg (por ejemplo) y usar contadores dentro de la interrupcion, comparando los acumuladores, una vez alcanzado el numero de interrupciones, activas un flag y pones en cero el contador.
El flag lo utilizas en el programa principal para ejecutar procesos cada XX tiempo.
La ventaja de este sistema es que con un solo timer tienes varios tiempos diferentes... :D

Podria hacer un bucle de 30 seg utilizando el preescaler del PIC, ya que este va a 4Mhz y con el de 256 seria 1 segundo cada flanco?...Saludos
En los Albores de la Electronica, "THE GOD IS PIO LAZARO"