TODOPIC
Lenguajes de programación para PC => C, C#, C++ => Mensaje iniciado por: juaperser1 en 04 de Abril de 2019, 09:52:46
-
Buenas tardes.
El tema es que tengo de otros proyectos, el protocolo modbus ya implementado, pero siempre ha sido con un único maestro en el bus.
ahora me ha tocado tener un bus multimaestro en uno de los proyectos, y como modbus es muy fiable y robusto, me gustaría poder usarlo pero no estoy seguro de que se pueda.
¿alguien me puede confirmar si es posible hacer un protocolo modbus multimaestro? el bus es RS485. Si la respuesta es si, ¿conocéis algún procedimiento a seguir manual, o algo por el estilo? o directamente lo busco en los documentos de modbus?
Lo tenia implementado de hace mucho tiempo y no me acuerdo de casi na, tendré ademas que portarlo a los nuevos micros pero eso no sera un gran problema.
un saludo y gracias.
-
Hola:
El modbus esclavo responde al maestro que le consulte ,no diferencia entre maestros.-
Lo que te traera problemas es que si son maestros en distintos equipo ,cada maestro administra el tiempo en que consulta .-
En ese momento puede coincidir que 2 maestros consulten a a vez o que el esclavo esté respondiento a un maestro cuando otro maestro trate de consultar.-
Para resover esto ,vienen equipos que administran las encuestas de varios maestros a la vez.-
Este problema no se produce en el modbus TCP.-
Sds.
Jorge
-
Modbus es de un solo Maestro, solo en TCP y con cambios importantes es multimaestro.
Véanlo en modbus.org
-
Vaya ¿Y conoceís algún protocolo multimaestro para un RS485?
-
Para un cableado similar al RS485, tiene el CanBus, es mucho mejor que multimaestro.
Pero el hardware es muy diferente.
Funciona con el paradigma productor-consumidor.
-
Para un cableado similar al RS485, tiene el CanBus, es mucho mejor que multimaestro.
Pero el hardware es muy diferente.
Funciona con el paradigma productor-consumidor.
No puedo cambiar el hardware ya que debe integrarse en un cableado rs485 ya existente.
Bueno a ver como puedo solventar esto.
¿Seria posible que un único maestro, actué como intermediario entre los distintos esclavos, o el tiempo seria considerablemente grande?
es decir, si un esclavo debe comunicarse con otro, el maestro lee los datos y se los pasa al otro esclavo.
Esto es viable o seria una comunicación muy lenta? suponiendo que quiera hacer un pulling de unos 200 esclavos.
-
No existe un Maestro de hasta 200 esclavos, si desarrollas en Modbus debes atenerte a cumplir la norma, creo que el máximo es 32 esclavos sin usar repetidor.
3.4.1 Maximum number of devices without repeater
A figure of 32 devices is always authorized on any RS485-MODBUS system without repeater.
Depending of :
- all the possible addresses,
- the figure of RS485 Unit Load used by the devices,
- and the line polarization in need be,
A RS485 system may implement a larger number of devices. Some devices allow the implementation of a RS485-MODBUS serial line
with more than 32 devices, without repeater.
In this case these MODBUS devices must be documented to say how many of such devices are authorized without repeater.
The use of a repeater between two heavy loaded RS485-MODBUS is also possible.
Lo que se puede hacer es poner gateways o repetidores entre redes, que permitan comunicarse los maestros de varias redes entre si, pero tendrás que hacer cálculos importantes de latencias, velocidades de comunicación, carga de datos, etcétera.
La norma te asegura que si la cumples bien, tu sistema va a funcionar siempre bien.
Aquí tienes la norma.
http://modbus.org/docs/Modbus_over_serial_line_V1_02.pdf (http://modbus.org/docs/Modbus_over_serial_line_V1_02.pdf)
-
Muchas gracias MGLSOFT voy a estudiarme esto que me has pasado y cuando tenga las cosas mas claras sigo comentando, por que veo que me fallan algunos conceptos.
un saludo.
-
Ningún problema. :D :D
Cuando puedas darte una vuelta por el tema sobre Bus Can, te servirá para futuros proyectos, seguramente.
-
Tengo una duda con respecto al RS485, sabia que hay el shield del cable lo mejor es ponerlo a una de las masas de los circuitos, pero veo en algunos esquemas, que además del A y B del rs485 también mandan el cable de GND, esto es necesario?
(https://i.stack.imgur.com/0ntQf.gif)
Yo tenia entendido que no era necesario, y veo por internet posturas enfrentadas.
Por cierto, el shield lo pongo a un GND del RS485 no a tierra de protección ¿verdad?
-
Como bien dices, hay muchas posturas entre los fabricantes para usar el hilo gnd.
Algunos lo utilizan siempre y otros nunca, es mas , en algun momento debes mezclar equipos y ese hilo nunca se conecta en algunos y en otros es indispensable.
En mi caso, la experiencia me dice que cuando hay diferentes fuentes de alimentación en los equipos, mejor si usas el hilo GND para equipotenciar la linea de RS485.
-
Como bien dices, hay muchas posturas entre los fabricantes para usar el hilo gnd.
Algunos lo utilizan siempre y otros nunca, es mas , en algun momento debes mezclar equipos y ese hilo nunca se conecta en algunos y en otros es indispensable.
En mi caso, la experiencia me dice que cuando hay diferentes fuentes de alimentación en los equipos, mejor si usas el hilo GND para equipotenciar la linea de RS485.
Ok muchas gracias, pues intentaré que se instale también un cable para el GND en la instalación.
un saludo.