Red de PLC's 1Server-nClientes

  • 6 Respuestas
  • 56 Vistas

Mariano

  • Aprendiz
  • **
  • Mensajes: 76
Red de PLC's 1Server-nClientes
« : febrero 07, 2019, 18:27:15 pm »
Buenas tardes Boris,

Tengo dos PLC conectados mediante red inalámbrica. Uno hace de Servidor y el otro de Cliente. Necesitaría agregar por ahora dos PLC's Clientes al sistema y es posible que a futuro sean necesarios más Clientes.

El protocolo usado en ambos PLC es el TCP.
La cantidad de datos que se transmiten es despreciable por el momento, tal vez se podría necesitar, como máximo requerimiento, la transmisión de los datos almacenados en las memorias EEPROM de cada uno de los clientes. (Requerimiento de uso esporádico sólo ante la eventual descarga p/ proceso de datos)

En cuanto a la cantidad de Clientes a agregar al sistema considerando que no hace falta que se comuniquen todos a la vez. Cada cliente se comunicaría cada 10 o 20 segundos al servar. Cuantos clientes harían al límite teórico estimado? (El límite de clientes que yo imagino no superar sería de 30 como máximo)

Y considerando que tal vez en caso de la transmisión de datos desde la memoria EEPROM de un cliente podría tomar varios segundos o minutos, debería generar algún error o conflicto si los demás clientes deben "esperar" las respuestas del server mientras tanto?

Saludos

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 1963
  • Soporte Técnico
Re:Red de PLC's 1Server-nClientes
« Respuesta #1 : febrero 08, 2019, 20:04:04 pm »
El protocolo usado en ambos PLC es el TCP.
La cantidad de datos que se transmiten es despreciable por el momento, tal vez se podría necesitar, como máximo requerimiento, la transmisión de los datos almacenados en las memorias EEPROM de cada uno de los clientes. (Requerimiento de uso esporádico sólo ante la eventual descarga p/ proceso de datos)

En cuanto a la cantidad de Clientes a agregar al sistema considerando que no hace falta que se comuniquen todos a la vez. Cada cliente se comunicaría cada 10 o 20 segundos al servar. Cuantos clientes harían al límite teórico estimado? (El límite de clientes que yo imagino no superar sería de 30 como máximo)

Buenas tardes Mariano.

El servidor TCP como esta configurado en actualmente en el PLC, tiene un limite de dos conexiones simultaneas.

La pregunta es ¿por qué tantos PLC deben estar conectado un mismo PLC? ¿Cuál es la finalidad?.

¿Qué tipo de datos estás transmitiendo? ¿Control o información/estadística?.

Te consulto, para ver si es el esquema más apropiado.

Y considerando que tal vez en caso de la transmisión de datos desde la memoria EEPROM de un cliente podría tomar varios segundos o minutos, debería generar algún error o conflicto si los demás clientes deben "esperar" las respuestas del server mientras tanto?

Si el servidor tiene todas las conexiones ocupadas, simplemente va a rechazar o "abortar" la conexión de otro cliente. El cliente que intenta crear la conexión por su parte, va a ver como el servidor le cierra o aborta la conexión y retornaría un código de error o timeout. Este mecanismo no interfiere el funcionamiento de los otros clientes que están conectados.

Saludos!
« Última Modificación: febrero 08, 2019, 20:09:06 pm por Soporte »
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

Mariano

  • Aprendiz
  • **
  • Mensajes: 76
Re:Red de PLC's 1Server-nClientes
« Respuesta #2 : febrero 09, 2019, 11:08:41 am »
Buen día Boris.

El número de 30 lo puse como máximo estimado en un futuro lejano.
Supón que la necesidad es de ir agregando PLC's de a uno hasta llegar a 10 clientes por ejemplo.

La finalidad de tener control de un PLC central sobre los demás es implementar un scada en visual c# que muestre un panel virtual de control en un monitor a través de una PC para tener monitoreo y control de todo el sistema en una sola Pantalla.

Los programas en los PLC's clientes no serían demasiado complejos. Pero imagino que si deberían almacenar en memoria datos estadísticos.

La información a transmitir sería mayormente de control (banderas de control ON/OFF) aunque también incluiría datos estadísticos (por ejemplo la corriente y temperatura de un motor eléctrico). Estos deberían poder ser enteros y decimales de coma flotante seguramente.

Porqué tantos PLC's?... El sistema a controlar está distribuído en un área de 5km de radio y los puntos de control podrán localizarse dentro de cualquier punto de ese sector.

Saludos

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 1963
  • Soporte Técnico
Re:Red de PLC's 1Server-nClientes
« Respuesta #3 : febrero 10, 2019, 21:29:37 pm »
La finalidad de tener control de un PLC central sobre los demás es implementar un scada en visual c# que muestre un panel virtual de control en un monitor a través de una PC para tener monitoreo y control de todo el sistema en una sola Pantalla.

La información a transmitir sería mayormente de control (banderas de control ON/OFF) aunque también incluiría datos estadísticos (por ejemplo la corriente y temperatura de un motor eléctrico). Estos deberían poder ser enteros y decimales de coma flotante seguramente.

En una primera instancia me imagino varias alternativas, pero una posible ya que vas a utilizar Visual C# es:

Todos los PLC como servidores ModBus TCP y la PC como cliente ModBus TCP.



Luego desde Visual C# vas leyendo cada PLC ubicado en una IP diferente, por ejemplo lees bloques de 8 registros de 16-bits de cada PLC y ahí tenes espacio suficiente para colocar banderas y temperatura/corriente.

Como es una computadora, podes hacer varias conexiones en paralelo para cada PLC distribuido y actualizar en pantalla los datos con una relativa buena tasa de refresco.

ModBus te permite escribir/leer, por lo que también controlas desde la PC.

Finalmente, en la PC vas guardando los datos estadísticos, para no tener que usar la EEPROM de los PLC.

Decime como ves este esquema, yo lo veo más robusto, ya que no dependés de un solo PLC como servidor.

Saludos!


« Última Modificación: febrero 10, 2019, 21:40:49 pm por Soporte »
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

Mariano

  • Aprendiz
  • **
  • Mensajes: 76
Re:Red de PLC's 1Server-nClientes
« Respuesta #4 : febrero 12, 2019, 07:32:04 am »
Ok Boris lo pienso por ese lado entonces.

Para encarar el desarrollo en visual que version usar?

Saludos

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 1963
  • Soporte Técnico
Re:Red de PLC's 1Server-nClientes
« Respuesta #5 : febrero 12, 2019, 10:57:06 am »
Para encarar el desarrollo en visual que version usar?

Yo estoy utilizando la versión 2015, pero la última me parece que es la 2017, la cual esta bien y más actualizada.

Lo podés descargar de: https://visualstudio.microsoft.com/es/vs/express



Por otro lado, en la librería STX8XXX.DLL hay implementada una librería para ModBus TCP master, la cual podés utilizar para C#. No está documentada en manual.

Sin embargo hay un ejemplo simple aquí en el foro, donde desde Visual C#, se escribe cada 10 mS un registro de 16-bits en el PLC, y luego se lo lee de vuelta. Ver siguiente link:

foro.slicetex.com/index.php?topic=336.0

En tu aplicación, solo necesitarías leer de a 8 registros con información por ejemplo (cada 30 o 60 segundos), y luego, eventualmente, escribir si necesitas generar un control. La librería incluye funciones para esto, pero en el ejemplo creo que no las utiliza.

Por ahora fíjate en el ejemplo del foro para intentar comprender el mecanismo, lo mismo que las rutinas del PLC, y después con tiempo, te puedo adaptar un ejemplo para leer 8 registros y/o escribir presionando un botón si lo necesitás para mayor claridad.



También hay que mencionar, que ModBus TCP al ser un protocolo standard, hay en internet librerías disponibles, gratis y pagas, y también software de todo tipo.

Saludos!


« Última Modificación: febrero 12, 2019, 10:58:52 am por Soporte »
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

Mariano

  • Aprendiz
  • **
  • Mensajes: 76
Re:Red de PLC's 1Server-nClientes
« Respuesta #6 : febrero 13, 2019, 10:08:27 am »
Ok Boris.

Gracias por la info.