Rs485 full duplex

Hola a todos, tengo un inconveniente al transmitir datos desde varios dispositivos con rs485.

estoy realizando un proyecto para controlar cuatro pics desde un software, la idea es que los cuatro pic puedan enviar la informacion al mismo tiempo en este caso envian el ID el cual va hacer (A,B,C,D). pero entonces solo he logrado que me ransmitan dos pics cuando conecto el tercero con el rs485 la transmision de datos desde los pic hacia el softwar mure.
los integrados que he utilizado para las pruebas son los siguientes:
max485 con este integrado me toco utilizar uno para tx y otro para rx
max490
max489

bien venidas todas las recomendaciones y experiencias que hayan tenido.


de antemano gracias, ...
 
:)Hola no soy un experto en esto de los pic pero le pongo garra a cada problema que aparece, e probado con rs232, rs485, RF,IR(infrarojo) y todos andan muy bien.no se que usas yo uso PBP y lo principal es que identifiques bien cada modulo esclavo y solo responda a ese unico llamado, yo uso el sn75176.
 

Adjuntos

  • sn75176(rs485).pdf
    197 KB · Visitas: 27
Hola, tu problema está aqui: " la idea es que los cuatro pic puedan enviar la informacion al mismo tiempo"
Debes definir un protocolo, para que cada terminal responda a un IP (por definirlo de una manera), sólo cuando es llamado, cómo comenta el compañero, de ésta manera se evita las colisiones de datos.
 
El RS 485 full dúplex se llama RS 422 si no me equivoco, claro que no va con dos cables va con cuatro y no es multipunto, es punto a punto. Eléctricamente son iguales.
 
ok gracias por sus comentarios, pero si no puedo enviar datos de los 4 dispositvos al mismo tiempo como lo puedo hacer? o tienen otro metodo que no sea rs485 para enviar datos al mismo tiempo me prodria servir XBee??, o que recomiendan.



Gracias,



Hola, tu problema está aqui: " la idea es que los cuatro pic puedan enviar la informacion al mismo tiempo"
Debes definir un protocolo, para que cada terminal responda a un IP (por definirlo de una manera), sólo cuando es llamado, cómo comenta el compañero, de ésta manera se evita las colisiones de datos.

hola roberto, los 4 pic cuando tienen datos ellos envian su identificacion al software para darle a conecer que hay datos, una vez el software recibe la identificacion el responde con un caracter assci al primer esclavo que envio su identificacion, cuando el esclavo recibe el caracter assci lo comparar para ver si es a el que le toca responder, una vez mira que si le toca responder envia los datos hacia el software.
el inconveniente seria que cuando los 4 pic tengan datos van ha enviar su identificacion al sofware al mismo tiempo.
como puedo solucionar este inconveniente para que no haya colicion de datos. o depronto conoces otro metodo para control industrial por que la idea es conectar hasta 20 pic por este protocolo.

gracias,(y)
 
Última edición:
Veamos, puedes hacer lo sig., envias un llamado a cada terminal luego de contestar cada uno a su tiempo con una espera de timeout, luego obtenido todos los datos el sistema central toma la acción.
PD/Recién veo que editaste el mensaje. El tema es que ningún terminal puede enviar datos hasta que sea solicitado. Ahora si el sistema hace un llamado y el terminal aún no concluye la adquisición de dato a enviar puede enviar una señal de advertencia para que el sistema haga un reintento o varios según sea lo que se busca.
Puedes conectar la cantidad de terminales que quieras, eso sí la velocidad de respuesta de adquisición total será influenciada.
Por lo tanto deberás experimentar con la max. velocidad de comunicación que te permite el soporte físico.
 
Última edición:
ok gracias por sus comentarios, pero si no puedo enviar datos de los 4 dispositvos al mismo tiempo como lo puedo hacer? o tienen otro metodo que no sea rs485 para enviar datos al mismo tiempo me prodria servir XBee??, o que recomiendan.



Gracias,





hola roberto, los 4 pic cuando tienen datos ellos envian su identificacion al software para darle a conecer que hay datos, una vez el software recibe la identificacion el responde con un caracter assci al primer esclavo que envio su identificacion, cuando el esclavo recibe el caracter assci lo comparar para ver si es a el que le toca responder, una vez mira que si le toca responder envia los datos hacia el software.
el inconveniente seria que cuando los 4 pic tengan datos van ha enviar su identificacion al sofware al mismo tiempo.
como puedo solucionar este inconveniente para que no haya colicion de datos. o depronto conoces otro metodo para control industrial por que la idea es conectar hasta 20 pic por este protocolo.

gracias,(y)

A travez de el id, realizas un pool de respuestas usando el id asignado. Yo diria que ya lo tienes solucionado, el problema esta en como atender mas de uno. Yo lo realizo asi

1.- se realiza peticion de comunicacion (ya lo tienes)
2.- se consulta quien es (en realidad se le preguntan a todos)
3.- se establece comunicacion y transmite datos por cada uno que conteste
4.- termidado se cierra la secion, perdon comunicacion

bye bye
jvk85321
 
Amigos ya logre conectar mas de dos terminales por rs485, para lograrlo cambie los integrados. Pero ahora tengo otro inconveniente y es el siguiente al parecer en la red bus de 4 cables se esta generando ruido e intentado varias cosas para suprimir el ruido pero no me dio resultado. Amigos que recomendaciones me pueden dar.

Para concluir explicó el inconveniente, las terminales envian los datos cuando el maestro lo requiere, pero hay momentos en donde los datos de una de las tres terminales ya no llega al maestro en el momento requerido y es como si se demora. [emoji106] [emoji106] [emoji106] [emoji106]
 
Pues la demora puede deberse a colisiones en el bus debido a que mas de uno esta transmitiendo por el mismo, el maestro es el que debe guiar a los esclavos, o sea les debe indicar en que momento tiene que mandar los datos cada esclavo. Si todos los esclavos hablan/transmiten al mismo tiempo vas a seguir teniendo este problema. Si quieres hacer que varios dispositivos transmitan en simultaneo debes montar los mensajes en diferentes portadoras a diferentes frecuencias teniendo el cuidado de que no se solapen, de esa manera si podras hacer que todos transmitan en simultaneo y no se produscan errores/colisiones. Desde ya que no es nada facil de hacer lo que te digo.
 
Pues la demora puede deberse a colisiones en el bus debido a que mas de uno esta transmitiendo por el mismo, el maestro es el que debe guiar a los esclavos, o sea les debe indicar en que momento tiene que mandar los datos cada esclavo. Si todos los esclavos hablan/transmiten al mismo tiempo vas a seguir teniendo este problema. Si quieres hacer que varios dispositivos transmitan en simultaneo debes montar los mensajes en diferentes portadoras a diferentes frecuencias teniendo el cuidado de que no se solapen, de esa manera si podras hacer que todos transmitan en simultaneo y no se produscan errores/colisiones. Desde ya que no es nada facil de hacer lo que te digo.
Si el problema seria si se transmitiera los datos al mismo tiempo, pero gracias a las recomendaciones cambie el metodo a maestro guia esclavos.
 
485 es la mejora del 422, y no le veo la diferencia o no entiendo el planteo Scooter...Lo que me gustaria saber es si esta trabajando los datos seriales por software o por hardware? saludos
 
El titulo habla de full dúplex y 485 NO es full dúplex por definición

Si trabaja datos serie por software en mi opinión es que está loco. (Con perdón, cada uno que haga lo que quiera, solo es mi criterio)
 
Vamos de nuevo por que estoy enredando... el master es un CPU con un software? O es un pic que controla la comunicacion anivel software y no por interrupciones por hardware... vamos a partir de esta base por que es lo mismo, pero con diferente tufo...



O sea, con un cpu y su software, por lo general esta continuamente mandando tramas/peticiones/etc... cabe la posibilidad que si haces lectura por software en el pic, se pierda una peticion... si lo haces por hardware, el pic cumple con cualquier propoito que este haciendo y solo salta a la interrupcion cuando hay una señal serial con ID similar ... por eso es importante saber varias cosas que no especificas... para el caso de una comunicacion pic to pic master slave, ya cambia la cosa por que solo envia peticiones cuando tu quieres, pero podemos tener el mismo probla de perder la orden si hacemos que el pic slave esta haciendo algo y solo cada unos ms programados, va y se fija si hay algun dato serial entrante... a esgo es lo que se lla.a comunicacikn serial por software... capiche? Digrama y mas claro como estas encarando las cosas... quizas eso sume para que te den jna mejor ayuda
 
Última edición:
Atrás
Arriba