Hola a todos.
Hay algo que me come la cabeza y no llego a enteder sobre el bus rs485 y las tormentas; además de otros problemas que os comentaré.
De momento tengo una red rs485 como sigue:
Estoy usando el protocolo MODBUS, siendo el mestro un PC con un convertidor usb a rs485 como el de la foto:
Los nodos son todos "pseudo" automatas de fabricación casera que usan generalmente el atmega328p; menos dos, que son medidores de energia comerciales a los que el modulo de señal rs485 le tuve que hacer ingenieria inversa y le he acoplado uno de fabricación casera.
El circuito que uso para la implementación del bus, lo saque de la libreria simplemodbus y es el siguiente:
En la primera versión de la red utilizaba un cable sospechosamente raro que no tenia malla y los automatas tenian terminales atornillables donde conectar los cables del bus... Era demasiado problematico y daba fallos por todos sitios. Así que por recomendación de la gente de este foro, opte por utilizar un cable de red SFTP Cat6 apantallado. En aquel momento hice con placas de pruebas y conectores rj45 un adaptador al terminal atornillable de los automatas y monte los cables libre de normas, siguiendo esta forma:
Solo utilizo los pines 2,4 y 6. Llevando 2 D+, 4 GND y 6 D-. Fue algo que me monte rápidamente y es lo primero que se me vino a la cabeza, ya que los pines 2,4,6,8 estan detras del conector y podía quitar los otros. Como veis los pares naraja y naranja/blanco llevan los datos y el azul la referencia.
A partir de ese momento, toda placa que va al bus tiene dos conectores rj45 para la conexión y no tener que recurrir a nada extraño.
Haciendo eso el nivel de ruidos decae radicalmente. Mayormente tenía ruidos de los medidores de energia, pero creo que era un problema del transceptor que lleva el circuito. En este mismo foro pedí ayuda, pero al tratarse de algo comercial no obtuve respuestas y es lógico.
La distancia entre nodos es variable: del maestro al primer nodo hay unos 25 metros. Los 6 primeros nodos estan a distancias inferiores a los 30 cm. El siguiente esta separado unos 3 metros y del que le sigue a otros 30 cm. Estos estan dentro de un armario de chapa. El siguiente se encuentra a unos 8 metros, el próximo a 4 metros, luego 10 metros y llego a otro armario de chapa. Alli quedan tres que estan relativamente cerca y es donde está el último nodo. No he calculado la distancia total.
Cabe decir que:
* La malla del cable ftp está conectada en un extremo a tierra, pero no esta conectada al GND del circuito, ni la referencia del circuito (cable azul).
* Uso resistencia terminadora en ambos extremos de la red (en el convertidor usb y el ultimo nodo que es una sonda de ultrasonidos).
* El circuito he intentado hacerlo todo lo inmune al ruido que he podido, a simple cara. Uso para darle el visto bueno un contactor quemado (funciona, pero j***r, que trastazos mete y se queda pillado) y en el que conecto un transformador antiguo de 220vac a 125vac que a su vez alimenta un taladro antiguo de 125vac, sin filtros ni nada. Si aguanta la embestida lo doy por bueno. En el caso del rs485, si utilizo un cable normal, cada vez que arranco el contactor mete ruido a mansalva, usando el apantallado no hace nada.
* En los armarios y todo lugar que se precie: electrovalvulas, reles, interruptores tochos utilizo snubbers y varistores para limitar el ruido. Creo que en ese aspecto lo tengo bastante libre de ruidos.
Una imagen mil palabras:
Aquí se me presentan dos problemas:
Primero, un día de tormenta, aunque la tormenta esté a kilometros, el programa de control me dice errores: timeout, no especificado (de nodos que no existen) y asumo que es un ruido y no sé como puede entrar.
Segundo: sin haber tormentas, cuando introduzco algo en la red (un nuevo nodo por ejemplo), o simplemente he de modificar algo, lo hago en caliente. Esto que quiere decir: saco el conector rj45 de su sitio lo uno al siguiente nodo y aislo el que quiero trabajar. Lo unico que paro es al maestro para que no haya peticiones. Haciendo esto el ultimo nodo casca. El max485 deja de funcionar, recibo error de timeout y al final me toca cambiar el ic por otro nuevo y sale funcionando.
¿Alguna sugerencia de los expertos de por qué ocurre esto?
Hay algo que me come la cabeza y no llego a enteder sobre el bus rs485 y las tormentas; además de otros problemas que os comentaré.
De momento tengo una red rs485 como sigue:

Estoy usando el protocolo MODBUS, siendo el mestro un PC con un convertidor usb a rs485 como el de la foto:

Los nodos son todos "pseudo" automatas de fabricación casera que usan generalmente el atmega328p; menos dos, que son medidores de energia comerciales a los que el modulo de señal rs485 le tuve que hacer ingenieria inversa y le he acoplado uno de fabricación casera.
El circuito que uso para la implementación del bus, lo saque de la libreria simplemodbus y es el siguiente:

En la primera versión de la red utilizaba un cable sospechosamente raro que no tenia malla y los automatas tenian terminales atornillables donde conectar los cables del bus... Era demasiado problematico y daba fallos por todos sitios. Así que por recomendación de la gente de este foro, opte por utilizar un cable de red SFTP Cat6 apantallado. En aquel momento hice con placas de pruebas y conectores rj45 un adaptador al terminal atornillable de los automatas y monte los cables libre de normas, siguiendo esta forma:

Solo utilizo los pines 2,4 y 6. Llevando 2 D+, 4 GND y 6 D-. Fue algo que me monte rápidamente y es lo primero que se me vino a la cabeza, ya que los pines 2,4,6,8 estan detras del conector y podía quitar los otros. Como veis los pares naraja y naranja/blanco llevan los datos y el azul la referencia.
A partir de ese momento, toda placa que va al bus tiene dos conectores rj45 para la conexión y no tener que recurrir a nada extraño.
Haciendo eso el nivel de ruidos decae radicalmente. Mayormente tenía ruidos de los medidores de energia, pero creo que era un problema del transceptor que lleva el circuito. En este mismo foro pedí ayuda, pero al tratarse de algo comercial no obtuve respuestas y es lógico.
La distancia entre nodos es variable: del maestro al primer nodo hay unos 25 metros. Los 6 primeros nodos estan a distancias inferiores a los 30 cm. El siguiente esta separado unos 3 metros y del que le sigue a otros 30 cm. Estos estan dentro de un armario de chapa. El siguiente se encuentra a unos 8 metros, el próximo a 4 metros, luego 10 metros y llego a otro armario de chapa. Alli quedan tres que estan relativamente cerca y es donde está el último nodo. No he calculado la distancia total.
Cabe decir que:
* La malla del cable ftp está conectada en un extremo a tierra, pero no esta conectada al GND del circuito, ni la referencia del circuito (cable azul).
* Uso resistencia terminadora en ambos extremos de la red (en el convertidor usb y el ultimo nodo que es una sonda de ultrasonidos).
* El circuito he intentado hacerlo todo lo inmune al ruido que he podido, a simple cara. Uso para darle el visto bueno un contactor quemado (funciona, pero j***r, que trastazos mete y se queda pillado) y en el que conecto un transformador antiguo de 220vac a 125vac que a su vez alimenta un taladro antiguo de 125vac, sin filtros ni nada. Si aguanta la embestida lo doy por bueno. En el caso del rs485, si utilizo un cable normal, cada vez que arranco el contactor mete ruido a mansalva, usando el apantallado no hace nada.
* En los armarios y todo lugar que se precie: electrovalvulas, reles, interruptores tochos utilizo snubbers y varistores para limitar el ruido. Creo que en ese aspecto lo tengo bastante libre de ruidos.
Una imagen mil palabras:

Aquí se me presentan dos problemas:
Primero, un día de tormenta, aunque la tormenta esté a kilometros, el programa de control me dice errores: timeout, no especificado (de nodos que no existen) y asumo que es un ruido y no sé como puede entrar.
Segundo: sin haber tormentas, cuando introduzco algo en la red (un nuevo nodo por ejemplo), o simplemente he de modificar algo, lo hago en caliente. Esto que quiere decir: saco el conector rj45 de su sitio lo uno al siguiente nodo y aislo el que quiero trabajar. Lo unico que paro es al maestro para que no haya peticiones. Haciendo esto el ultimo nodo casca. El max485 deja de funcionar, recibo error de timeout y al final me toca cambiar el ic por otro nuevo y sale funcionando.
¿Alguna sugerencia de los expertos de por qué ocurre esto?