Pregunta

Estoy trabajando con un paquete de software de automatización basado en PC llamado Think'n'Do creado por Contacto Fénix Realiza procesamiento en tiempo real, lee entradas/lógica de control/escribe salidas, todo ello en un máximo de 50 ms.Tenemos un servidor OPC que lee/escribe etiquetas desde un PLC cada 10 ms.Hay un gran retraso al escribir una etiqueta en el PLC y volver a leer el valor escrito (Think'n'Do (50 ms) > Servidor OPC (10 ms) > PLC (10 ms) > Servidor OPC (10 ms) > Think'n'Do (50 ms)) ese proceso tarda hasta 6 segundos en completarse cuando, según mis cálculos, solo debería tardar 130 ms.

Sería útil cualquier idea sobre dónde buscar o por qué podría tardar tanto más.

¿Fue útil?

Solución

Depende de cómo haya configurado su cliente OPC para extraer datos.Cuando te suscribes a un grupo en OPC, puedes especificar una frecuencia de actualización.El valor predeterminado podría ser 1 o incluso 5, dependiendo del cliente OPC.También hay un límite que el servidor OPC puede imponer a la frecuencia de actualización de los datos.Esto solo se aplica si su cliente OPC está suscrito a eventos de cambio de datos.

La otra forma de hacerlo es realizar lecturas/escrituras asíncronas o sincronizadas en el servidor OPC.También hay varios modos de lectura.Dado que está usando OPC, puede usar cualquier cliente compatible con OPC para probar su servidor, esto le dirá si el problema está en una configuración en Think'n'Do o es algo con el PLC/servidor.

El mejor cliente OPC de propósito general que he usado es OPC Quick Client.Puedes conseguirlo con TOP Server aquí: http://www.toolboxopc.com/Features/Demo/demo.shtml.Simplemente tome la demostración de TOP Server e instale OPC Quick Client.Puede usarlo para conectarse a su servidor OPC, explorar las etiquetas y ver cómo se ven los datos.El segundo mejor cliente OPC que he usado es el de ICONICS (llamado OPC Data Spy) disponible aquí: http://www.iconics.com/support/free_tools.asp.

Utilice el cliente OPC para ver qué tan rápido puede leer los datos.Asegúrese de configurar correctamente la frecuencia de actualización del grupo.Creo que las herramientas también podrían proporcionarle información sobre el tiempo (pero podrá calcular un retraso de 6 segundos con bastante facilidad).

Otros consejos

Parece como si no estuviera utilizando el caché en el servidor OPC.Normalmente los servidores OPC tienen un caché, si su cliente se conecta y no especifica que quiere usar el caché, no obtendrá el rendimiento que necesita.El servidor OPC es responsable de actualizar la caché del dispositivo, aunque los criterios de actualización pueden diferir de un servidor OPC a otro.

Si el sistema realiza lecturas sincrónicas (bloqueando llamadas de E/S), luego implementa la lógica de su aplicación y luego escribe sincrónicamente (nuevamente bloqueando), entonces debe considerar que hay múltiples viajes de ida y vuelta al PLC.

Una lectura sincrónica implica Aplicación (solicitud)->OPCServer->PLC->OPCServer->App(resultado).Esa es solo la lectura de un elemento (aunque puede solicitar un grupo de elementos de una sola vez).

Luego, una escritura de sincronización similar también implica App(Write)->OPCServer->PLC->OPCServer->App(Done).

Las lecturas y escrituras asincrónicas y las lecturas y escrituras grupales pueden ayudar a reducir el bloqueo de la aplicación, pero tenga cuidado de que su aplicación pueda hacer frente a este comportamiento asincrónico.

La otra cosa a tener en cuenta es la configuración del PLC. En los PLC de Allen-Bradley hay una configuración de retardo entre exploraciones que se utiliza para atender solicitudes de E/S a través de redes externas.Si ese tiempo es corto y tiene un gran ancho de banda de datos, esto ralentizará las cosas.

Aquí hay algunos lugares para buscar:Configuración del Cliente OPC, del propio Cliente OPC, del Servidor OPC o del propio PLC.

Aquí hay cosas que debes verificar:

  1. Configuración del cliente OPC: el grupo OPC al que ha agregado las etiquetas OPC debe tener una velocidad de escaneo rápida (es decir,100 ms a 1 seg dependiendo para qué lo uses).¿Con el acto de escribir valores notas si los valores llegan más rápido?De lo contrario, es posible que haya un problema de configuración de red o DCOM.
  2. Cliente OPC: descargue un software de cliente OPC gratuito (probablemente del sitio web de la Fundación OPC o de los principales proveedores de software del servidor OPC) para ver si recupera los valores más rápido.Si es así, puede que haya un problema con su cliente.
  3. Servidor OPC: algunos servidores OPC tienen herramientas de diagnóstico.Enciéndalos y vea a qué hora se producen realmente las escrituras y a qué hora se realizan las lecturas.Si puede responder esas preguntas, probablemente pueda identificar si el culpable del retraso es el PLC o el servidor OPC.Observe también el uso de CPU del servidor OPC; si nota que está usando más CPU de lo normal, probablemente significa que el servidor OPC está cargado, lo que podría deteriorar el rendimiento.
  4. Otros: finalmente verifique el PLC, la red está funcionando correctamente.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top