- Este tema tiene 1 respuestas, 2 participantes y se actualizó por última vez 4 años, hace 10 meses da .
Viendo 2 publicaciones - 1 a 2 (de 2 total)
Viendo 2 publicaciones - 1 a 2 (de 2 total)
- Debe iniciar sesión para responder a este tema.
Inicio > Foro > Información del entorno de desarrollo de LogicLab > Conexión Modbus TCP con múltiples servidores.
Necesitaría conectar hasta 8 dispositivos propietarios a la red Ethernet (llamémoslos servidor 1 ... 8) con un cliente Cortex M7 y mediante comunicación Modbus TCP consultan cíclicamente todos los dispositivos 8.
Mi pregunta es: ¿puedo configurar el cliente 8 FB SysTCPClient cada uno con un PeerAdd diferente? ¿Pueden las comunicaciones activas de 8 vivir juntas? ¿El tiempo del ciclo podría ser menor que aproximadamente 50mS?
Sí, por supuesto que puede instanciar 8 FB SysTCPClient al que conecta 8 ModbusMaster FB y todos funcionarán en paralelo de forma independiente entre sí. Cada SysTCPClient se conectará a la dirección IP del dispositivo servidor y ModbuaMaster podrá intercambiar datos con él.
Los 50mS que solicitas también podrían ser posibles, pero el protocolo modbus no está optimizado para la velocidad, se espera recibir una respuesta para cada comando y si tienes que escribir y leer datos del servidor, se necesitarán 4 paquetes, ya que hay una comunicación TCP. También se deben considerar los paquetes Ack.
Para aumentar la velocidad si tu servidor lo gestiona puedes utilizar una comunicación UDP con el FB SysUDPClient En este caso, evite los paquetes Ack.
Si los sistemas fueran todos SlimLine Se logra una comunicación más optimizada con la biblioteca eLLabDataExchLib que gestiona el envío de datos solo en variación y en el paquete Ack también hay datos leídos.