Comunicación Visual .Net con PLC (ex Modo DAQ)

  • 19 Respuestas
  • 617 Vistas

cimx

  • Novato
  • *
  • Mensajes: 10
Comunicación Visual .Net con PLC (ex Modo DAQ)
« : octubre 17, 2017, 20:11:14 pm »
Buenas tardes
Tengo un PLC CUBE STX8092, el cual quiero controlar y monitorear en modo DAQ.
Capturo el programa ejemplo que viene en el Manual de Usuario Modo DAQ en el apartado 5.3 Diseñar el Programa.

en la línea
-- PioBoard = new Stx8xxx("192.168.1.81", 0, Stx8xxxId.STX8081);

cambié por
-- PioBoard = new Stx8xxx("192.168.1.81", 0, Stx8xxxId.STX8092);

incluso, ejecuté el programa que viene de ejemplo en el archivo STX80XX-UM-DAQ-AX_BX_files

y no he tenido éxito.

Me manda el siguiente error:

"ErrorCmdUnsopportedInPLC"

Me podrías apoyar por favor?

Saludos cordiales.
« Última Modificación: diciembre 22, 2017, 19:40:00 pm por Soporte »

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 1918
  • Soporte Técnico
Re:Modo DAQ
« Respuesta #1 : octubre 18, 2017, 10:29:37 am »
Buenos días,

¿Que modelo de PLC tenés?.

El error ErrorCmdUnsopportedInPLC significa que el "comando no esta soportado en modo PLC", esto se debe a una de dos posibles causas:

  • Que tengas un modelo de STX8092 que solo soporte modo PLC, pero no modo DAQ (como los modelos C1, C2, D1 y D2).
  • Que no hayas iniciado en en modo DAQ si tenés un modelo con soporte modo DAQ.

En el primer caso, no podrias utilizarlo, sin embargo, si necesitas comunicarte con Visual C# en la red local en modo PLC, podes utilizar la transmisión/recepción de datos como explica la nota de aplicación AN001:

http://slicetex.com/docs/an/an001

Se muestra en la nota un ejemplo para leer una entrada y para enviar datos al PLC para activar/desactivar una salida.

En el segundo caso, si tenes un modelo A1 o A2, en StxLadder desde menú "PLC > Configurar PLC > Pestaña Otros", debes seleccionar Modo DAQ y reiniciar el dispositivo.

Saludos
« Última Modificación: octubre 18, 2017, 10:41:39 am por Soporte »
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

Atención: Desde el 1 de enero al 25 de enero de 2019, cerramos por vacaciones.
Tenga en cuenta para sus pedidos y/o consultas.

cimx

  • Novato
  • *
  • Mensajes: 10
Re:Modo DAQ
« Respuesta #2 : octubre 18, 2017, 11:39:28 am »
Muchas gracias por el pronto soporte.
Efectivamente, tengo un PLC CUBE STX8092 D1

Intentaré con la solución que me brindaste, reitero mi agradecimiento y te felicito por la cantidad y calidad de soporte que tienes para el producto.

Saludos cordiales.

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 1918
  • Soporte Técnico
Re:Modo DAQ
« Respuesta #3 : octubre 18, 2017, 13:18:05 pm »
Perfecto, gracias, quedamos a disposición.
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

Atención: Desde el 1 de enero al 25 de enero de 2019, cerramos por vacaciones.
Tenga en cuenta para sus pedidos y/o consultas.

cimx

  • Novato
  • *
  • Mensajes: 10
Re:Modo DAQ
« Respuesta #4 : noviembre 01, 2017, 11:34:21 am »
Buenos días

Intenté con comunicarme con los ejemplos como explica la nota de aplicación AN001 en la red local en modo PLC, y logré comunicarme con éxito para transferirle datos desde PC-->PLC

Para recibir datos de PC<--PLC , ejecuté los programas ejemplo Prueba2 VB.NET, tanto la aplicación Visual como el programa del PLC y me manda el siguiente error X Intente nuevamente!.

Modifiqué las respectivas IPs y el modelo del PLC
PioBoard = New stx8xxx.Stx8xxx("192.168.1.81", 0, Stx8xxxId.STX8092)

Me podrías apoyar por favor?

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 1918
  • Soporte Técnico
Re:Modo DAQ
« Respuesta #5 : noviembre 01, 2017, 13:24:46 pm »
Para recibir datos de PC<--PLC , ejecuté los programas ejemplo Prueba2 VB.NET, tanto la aplicación Visual como el programa del PLC y me manda el siguiente error X Intente nuevamente!.

Modifiqué las respectivas IPs y el modelo del PLC
PioBoard = New stx8xxx.Stx8xxx("192.168.1.81", 0, Stx8xxxId.STX8092)

Buenos días,

Al PLC debes cargarle el ejemplo del proyecto Udp_Tx de la Nota de Aplicación.

Asegurate que tengas definida la IP de tu PC en el proyecto del PLC. Esto se hace en la línea Pawn:

Código: (Pawn) [Seleccionar]
      // Enviar paquete UDP a dirección 192.168.1.15, puerto 4980.
      UdpSend(192,168,1,15, 4980, 5, Data, false)

En el caso anterior, la PC tiene la IP: 192.168.1.15.
Asegúrate que sea la IP de tu PC en la red local la que coloques.

Al ejecutar el programa "Prueba2" en Visual C# o Basic.Net, seguramente Windows te pedirá autorización para que el programa acceda al firewall de Windows y así permitir recepción de datos por red, como muestra la siguiente imagen:



Si no te pide, puede que lo hayas bloqueado en otra ejecución.

En ese caso, debes ir al Panel Control y navegar hasta "Firewall de Windows" como sigue:

Panel de control > Sistema y seguridad > Firewall de Windows

En ese lugar, tocar la opción "Permitir una aplicación o una característica a través de Firewall de Windows".

Vas a entrar en una ventana, tocar el botón "Cambiar la configuración" (te va a pedir clave de administrador si estas como usuario).

Luego en la lista buscar Prueba2. Hacer click en el mismo y seleccionar "Quitar" con el botón de abajo.
Si hay otro item en la lista con el mismo nombre, también seleccionar y quitar.

Finalmente para salir hace click en "Aceptar".

Luego ejecutar nuevamente el programa y cuando te pida acceso al Firewall, lo habilitas.

Fíjate si así te funciona.

Saludos
« Última Modificación: noviembre 01, 2017, 13:26:51 pm por Soporte »
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

Atención: Desde el 1 de enero al 25 de enero de 2019, cerramos por vacaciones.
Tenga en cuenta para sus pedidos y/o consultas.

cimx

  • Novato
  • *
  • Mensajes: 10
Re:Modo DAQ
« Respuesta #6 : noviembre 01, 2017, 15:28:19 pm »
Excelente!
Era cuestión del firewall.

Si quisiera monitorear estatus de I/Os del PLC en la PC, tienes algún ejemplo?

Saludos

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 1918
  • Soporte Técnico
Re:Modo DAQ
« Respuesta #7 : noviembre 01, 2017, 17:45:13 pm »
Si quisiera monitorear estatus de I/Os del PLC en la PC, tienes algún ejemplo?

Tengo un ejemplo de un proyecto que realizamos hace un tiempo para un cliente.

Es una aplicación en C# que monitorea las entradas/salidas del PLC y lo registra en un archivo de texto (LOG).

El proyecto original era para un PLC STX8060 más un módulo de expansión STX570, donde se leen las I/O del PLC y del Módulo, en total 18 entradas y 16 salidas.

Te adjunto el proyecto modificado (rápidamente) para el PLC STX8092, leyendo 12 DIN y controlando 12 DOUT, sin módulo de expansión.

El programa del PLC escucha conexión desde la PC y continuamente reporta el estado de las I/O. Si una entrada DIN se activa, la correspondiente salida DOUT se activa también. Al desactivarse la DIN, la salida se mantiene activada por algunos segundos de más.

Es un ejemplo del cual podes partir, es un poco avanzado porque tiene mucho código del lado de C# ya que contempla errores, genera un log, crea una tarea en segundo plano, etc.

Para probarlo, carga el código en el PLC, luego ejecuta el programa C# en Windows, ejecuta opción "Activar" y observa la pestaña "Entradas" cuando colocas un nivel alto en alguna DIN. También observa la pestaña "Salidas" y "Log".

Saludos
« Última Modificación: noviembre 01, 2017, 17:51:02 pm por Soporte »
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

Atención: Desde el 1 de enero al 25 de enero de 2019, cerramos por vacaciones.
Tenga en cuenta para sus pedidos y/o consultas.

cimx

  • Novato
  • *
  • Mensajes: 10
Re:Modo DAQ
« Respuesta #8 : diciembre 21, 2017, 19:14:51 pm »
Qué tal.

Ejecuté este programa que me enviaste.
Por el lado del PLC todo funciona OK, las salidas reaccionan a su entrada correspondiente, sin embargo en la aplicación visual, al presionar el botón azul me manda el error que adjunto en la imagen.

Por otro lado, sigo contemplando el viaje a Argentina para las consultas que tengo con respecto a la marca y los modelos que manejan, sería a después del 25 de enero, aunque, habría la posibilidad e hacer sesiones virtuales vía skype o team viewer en estos días? desde luego con los respectivos honorarios que esto genere.

Saludos cordiales.

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 1918
  • Soporte Técnico
Re:Comunicación Visual .Net con PLC (ex Modo DAQ)
« Respuesta #9 : diciembre 22, 2017, 20:04:14 pm »
Buenas tardes,

Ejecuté este programa que me enviaste.
Por el lado del PLC todo funciona OK, las salidas reaccionan a su entrada correspondiente, sin embargo en la aplicación visual, al presionar el botón azul me manda el error que adjunto en la imagen.

Eso ocurre cuando corres el programa desde Visual C# en modo "Depuración" o "Debug".

Básicamente dice que no puede llamarse a un control desde un proceso diferente al proceso que creó el control (objeto gráfico).
Si corres el programa en modo "Release", generando desde menú "Depurar > Generar solución" el ejecutable y luego buscas el archivo "EXE" generado por el compilador en la carpeta "bin\Release" del proyecto; lo ejecutas y no tenés el problema.

En .Net no se recomienda llamar de esa manera a un control, es decir, el programa crea un proceso en segundo plano para escuchar comunicaciones desde el PLC, y cuando recibe los datos, altera textos de la ventana principal (otro proceso independiente).

Esto se debe hacer con "delegados" y otras cuestiones para hacerlo "seguro", pero para una aplicación simple como el ejemplo no es necesario.
Así que no le des mucha importancia.

Por otro lado, sigo contemplando el viaje a Argentina para las consultas que tengo con respecto a la marca y los modelos que manejan, sería a después del 25 de enero, aunque, habría la posibilidad e hacer sesiones virtuales vía skype o team viewer en estos días? desde luego con los respectivos honorarios que esto genere.

La semana siguiente es una semana un tanto complicada, acá en Argentina llega esta época de fin de año y hay más presión para terminar pedidos, por los feriados festivos, por lo que es complicado hacerlo bien con tiempo.

No dispongo para darte una asistencia en este momento por Skype o Team Viewer (pero se puede ver en otra oportunidad).

Sin embargo, más a mediado de semana, si tenes alguna consulta que no puedas resolver, podemos ver de un llamado telefónico por WhatsApp, como para aclararte algún panorama o cuestión en lo cual tengas dudas.

Si querés podes avisarme antes sobre que tema es la consulta, así estoy mejor preparado y aprovechamos mejor el tiempo.

Avísame si te parece y coordinamos teniendo en cuenta el horario que manejan en México.

Saludos.

« Última Modificación: diciembre 22, 2017, 20:09:20 pm por Soporte »
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

Atención: Desde el 1 de enero al 25 de enero de 2019, cerramos por vacaciones.
Tenga en cuenta para sus pedidos y/o consultas.

cimx

  • Novato
  • *
  • Mensajes: 10
Re:Comunicación Visual .Net con PLC (ex Modo DAQ)
« Respuesta #10 : diciembre 23, 2017, 20:37:08 pm »
Bien! ejecuté el programa como me mencionas, el .exe y funciona perfectamente.
Lo quería ejecutar en modo debug para ir depurando y entendiendo qué hace el programa, tanto el del PLC como el de la PC.
Este ejemplo se acerca mucho a lo que necesitamos hacer, es decir, leer estados de algunos registros del PLC y ir alimentando nuestra Base de Datos SQL.

Si nos pudieras apoyar con la llamada vía Whats App en estos días, queremos una aplicación que registre:

  • Lecturas de una entrada física que nos indicará cada cuando se efectúa un ciclo en una máquina.
  • Si la máquina ha estado detenida por cierto tiempo que la máquina no arranque hasta que no se haya capturado el motivo de de dicho paro.
  • Intervalos de tiempo de cada Ciclo.

Reitero, creo que este ejemplo que nos compartiste nos sirve perfectamente, sólo habría que entenderlo al 100% de nuestra parte para hacer las adecuaciones correspondientes a nuestras necesidades, es decir, tal vez no leer todas las I/0's, tal vez sólo 1 ó 2, y más bien leer registros booleanos, enteros, string, creados y programados desde el PLC.

Quedo a la espera de tus comentarios.

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 1918
  • Soporte Técnico
Re:Comunicación Visual .Net con PLC (ex Modo DAQ)
« Respuesta #11 : diciembre 26, 2017, 10:49:01 am »
Si nos pudieras apoyar con la llamada vía Whats App en estos días, queremos una aplicación que registre:

  • Lecturas de una entrada física que nos indicará cada cuando se efectúa un ciclo en una máquina.
  • Si la máquina ha estado detenida por cierto tiempo que la máquina no arranque hasta que no se haya capturado el motivo de de dicho paro.
  • Intervalos de tiempo de cada Ciclo.

Reitero, creo que este ejemplo que nos compartiste nos sirve perfectamente, sólo habría que entenderlo al 100% de nuestra parte para hacer las adecuaciones correspondientes a nuestras necesidades, es decir, tal vez no leer todas las I/0's, tal vez sólo 1 ó 2, y más bien leer registros booleanos, enteros, string, creados y programados desde el PLC.

Muy bien, entonces repaso el código del programa para darte una idea general sobre como funciona, así podés modificarlo.

Habilitamos WhatsApp para esta oportunidad en el número de la empresa: +54-9-351-3423793

Envíanos un mensaje así tenemos tu contacto telefónico.

El jueves 28/12 podríamos hacer la llamada.

Te propongo a las 14 hs (México) que serían las 17 hs (Argentina). Hay 3 horas de diferencia.

Avísame si te queda bien ese día y horario.

Saludos
« Última Modificación: diciembre 26, 2017, 10:52:35 am por Soporte »
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

Atención: Desde el 1 de enero al 25 de enero de 2019, cerramos por vacaciones.
Tenga en cuenta para sus pedidos y/o consultas.

cimx

  • Novato
  • *
  • Mensajes: 10
Re:Comunicación Visual .Net con PLC (ex Modo DAQ)
« Respuesta #12 : enero 26, 2018, 03:54:40 am »
Desarrollé una pequeña aplicación para control y monitoreo de registros del PLC desde una PC en Visual Basic .NEt
El PLC Setea un Registro Booleano en True, la PC monitorea mediante un tmr cada segundo y cuando detecta el registro booleano en True, la PC lo hace False.

La aplicación corre perfectamente durante unos minutos, pero después de cierto tiempo me manda errores, a veces a los 10min, a veces a los 30min, a veces a las 2 horas.

Adjunto imágenes del error que me manda mi aplicación. Nos podrías apoyar?

Saludos cordiales 

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 1918
  • Soporte Técnico
Re:Comunicación Visual .Net con PLC (ex Modo DAQ)
« Respuesta #13 : enero 28, 2018, 19:05:16 pm »
Buenas tardes.

Aparentemente por el tipo de error que te tira en la captura de pantalla: "System.StackOverflowException"

Tenés un loop o bucle infinito del cual no sale nunca porque la condición para entrar en el mismo se torna "verdadera" siempre. Dentro de este loop seguramente haces uso de memoria creando variables u objetos, lo cual al tornarse infinito produce un "desborde de memoria" o "Stack Overflow", generando la excepción que te muestra.

Puede ser un loop o algo recursivo (que se llama a si mismo infinita veces) como te sugiere el cartel de error.

Revisa en el código, cerca del error, en que parte tenés algún loop, y verifica que la condición de "salida" no se vuelva siempre falsa o que tenga algún mecanismo para salir en caso de error.

Fíjate si podes identificarlo o compartime parte del código para ver.

Saludos


« Última Modificación: enero 28, 2018, 19:10:00 pm por Soporte »
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

Atención: Desde el 1 de enero al 25 de enero de 2019, cerramos por vacaciones.
Tenga en cuenta para sus pedidos y/o consultas.

cimx

  • Novato
  • *
  • Mensajes: 10
Re:Comunicación Visual .Net con PLC (ex Modo DAQ)
« Respuesta #14 : enero 29, 2018, 00:33:30 am »
Te mando los programas, el del PLC (monIO) y el de VisualBasic (monIOBD).

Gracias por el apoyo
Saludos