4 votos

RxTx comunicación con varios esclavos usando una RaspberryPi

Yo soy un programador tratando de construir un circuito con limitada EE conocimiento. Con tantas opciones(al menos al ser nuevo en esto), quiero asegurarme de que voy por el camino correcto.

Lo que estoy tratando de construir es un dispositivo maestro con una RaspberryPi y muchos plug and play esclavos(relés y sensores con muy pequeñas cantidades de transferencia de datos). Parece que el uso de modbus/rs485/pic/75176(LTC485) sería la mejor solución.

  1. Dispositivo de consumo, por lo que los costos de los componentes de la materia y un fuera de la plataforma de producto no funcionará.
  2. El más dispositivos puedo conectar el mejor. (A mi entender se Modbus puede hacer 250 dispositivos por defecto, pero puedo hacer un doble registro(16 bits) para obtener 65k m de ancho de banda probablemente corte que en al menos la mitad de lo que está bien)
  3. Los esclavos pueden ser repetido muchas veces. es decir, un 10 de la misma sensores de temperatura. Yo estoy entendiendo que no necesariamente se tiene que definir el esclavo id modbus y se puede definir sobre la marcha. Por favor me corrija si me equivoco ya que no le puedo pedir a un consumidor para establecer el ID manualmente si hay más de 1.
  4. Necesito el consumidor (true usuario final no de la empresa) para simplemente conecte un dispositivo y el sistema de reconocer lo que es y ser capaz de identificar de manera única.
  5. Verdadero tiempo real no es necesario, un par de segundos de retraso no es un gran negocio.
  6. Todo va a ser una llamada de la maestra para que obtenga los datos del esclavo. Nada procedentes de los esclavos.
  7. Plan sobre el uso de un estándar de cable rj45 con una distancia máxima de 100 m, ya que eso es lo que ellos están calificados para (hoteles simple estándar).
  8. Por último, pienso en tener una opción inalámbrica en el futuro, así que si alguno de los que puede encajar bien, eso es un plus.

He encontrado este ejemplo que parece que lo estoy buscando. Haciendo mi código en c++, pero debe ser fácil de convertir. https://docs.google.com/document/d/1YN4BeXw4zrb2dlk9HcTDxd-E5vxNjVN8wcSF4Q86yz0/

De nuevo, tengo mucho que aprender, pero cansado de bajar un montón de caminos equivocados, por lo que cualquier consejo sería genial.

Gracias de antemano.

3voto

amigandoo Puntos 16
  1. Dispositivo de consumo, por lo que los costos de los componentes de la materia y un fuera de la plataforma de producto no funcionará.

Cuando no importa en la industria ;)

  1. El más dispositivos puedo conectar el mejor. (A mi entender se Modbus puede hacer 250 dispositivos por defecto, pero puedo hacer un doble registro(16 bits) para obtener 65k m de ancho de banda probablemente corte que en al menos la mitad de lo que está bien)

Técnicamente sólo se puede dar a los esclavos dirección 1-247 como 248-250 están reservados. Usted podría duplicar la dirección de registro, pero entonces no sería compatible con cualquier otro dispositivo Modbus como usted ya no está utilizando el Protocolo Modbus.

  1. Los esclavos pueden ser repetido muchas veces. es decir, un 10 de la misma sensores de temperatura. Yo estoy entendiendo que no necesariamente se tiene que definir el esclavo id modbus y se puede definir sobre la marcha. Por favor me corrija si me equivoco ya que no le puedo pedir a un consumidor para establecer el ID manualmente si hay más de 1.

¿Qué se entiende por "diseño sobre la marcha"? Si usted no se va a permitir a su usuario final para definir su propio Esclavo IDs entonces yo recomendaría que usted inicie su propio esclavo Id a un número mayor, como 150+. Si su dispositivo está conectado a un pre-existentes de la red Modbus, a continuación, puede ejecutar en el tema de los pre-exsisting esclavos ya el uso de direcciones que se asignan. HUY! Tenga en cuenta que la mayoría de los usuarios finales comenzará la asignación de los dispositivos en la dirección 1, pero eso no es siempre el caso.

  1. Necesito el consumidor (true usuario final no de la empresa) para simplemente conecte un dispositivo y el sistema de reconocer lo que es y ser capaz de identificar de manera única.

Muy fácil de hacer, pero como se indicó en el apartado 3, si su codificados de Esclavo ID ya existe en su sistema, usted tendrá múltiples dispositivos de comunicarse con el mismo maestro.

Todo lo que dijo se ve como estándar Modbus RTU especificaciones por lo que debe estar bien allí. Yo recomendaría buscar Modbus TCP protocolos para cuando se utiliza la transmisión inalámbrica. Aquí está un enlace útil para un sitio web que va a través de todos los Protocolos Modbus, así como análisis en profundidad sobre lo Modbus Errores y las Respuestas de la necesidad de buscar como.

Simplemente Modbus

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X