Relación SAMPLER BUFF SIZE con segundo de adquisición en DiskSamplerLog4

  • 3 Respuestas
  • 85 Vistas

Miguel Gomez

  • Novato
  • *
  • Mensajes: 10
Que tal.
Hemos usado el disksample4 con un total de 7 canales como entrada (VIN), activando el log y convirtiendo el archivo bin. Observamos en el log ya en excel que en 1 segundo hay un total de 127 ineas y en otro segundo vemos 254 lineas, es aleatorio. Pudieses ampliarnos el tema del buffer size? Queremos tener claro puesto que el usuario final esperaria, si le digo que muestreo 200 x segundo, ver en el log las 200 muestras del segundo. Para tener bien el argumento del funcionamiento.

saludo
« Última Modificación: junio 22, 2022, 17:33:46 pm por Soporte »

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 2276
  • Soporte Técnico
Observamos en el log ya en excel que en 1 segundo hay un total de 127 ineas y en otro segundo vemos 254 lineas, es aleatorio. Pudieses ampliarnos el tema del buffer size? Queremos tener claro puesto que el usuario final esperaria, si le digo que muestreo 200 x segundo, ver en el log las 200 muestras del segundo. Para tener bien el argumento del funcionamiento.

Hola Miguel.

Cuando el PLC muestrea a 200 muestras por segundo, esto es, una muestra cada 0.005 segundos, el PLC no las escribe inmediatamente en el archivo binario, sino que espera que se llene un buffer interno, que en este caso tiene el tamaño SAMPLERS_BUF_SIZE = 127.

Entonces, transcurren 0.005 * 127 = 0.635 segundos antes de que se escriban las muestras a un archivo (en este momento se llama al evento @OnVinBufFullA() en "Samplers.p", y escribe las muestras con DiskLogAddArray()).

Por lo tanto, supongamos que se comienza a muestrear justo en el segundo exacto "0", tendremos el siguiente log cada 0.635 segundos:

  • 0.635 segundos: se escriben 127 muestras
  • 1.27 segundos: se escriben 127 muestras
  • 1.905 segundos: se escriben 127 muestras
  • 2.54 segundos: se escriben 127 muestras
  • 3.175 segundos: se escriben 127 muestras
  • 3.81 segundos: se escriben 127 muestras
  • 4.445 segundos: se escriben 127 muestras
  • 5.07 segundos: se escriben 127 muestras

Notar como las líneas marcadas en rojo pertenecen al mismo segundo, porque el log estuvo espaciado cada 0.635, y la sumatoria hace que algunos logs queden en el mismo segundo, pero el espacio de tiempo siempre es el mismo. En esos casos, verá 127+127 = 254 muestras asociadas a un mismo segundo.

Como la menor unidad de tiempo para fecha/hora es el segundo en el reloj del PLC, el tiempo asociado solo contiene el segundo, pero no las milésimas de segundo. Sin embargo, el muestreo es correcto, el espaciado entre cada muestra es de 0.005 segundos.

Si no se entiende la explicación, me avisa.

Saludos!
« Última Modificación: junio 22, 2022, 18:20:56 pm por Soporte »
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

Miguel Gomez

  • Novato
  • *
  • Mensajes: 10
quedó claro! ya vimos como controlar este tema.

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 2276
  • Soporte Técnico
quedó claro! ya vimos como controlar este tema.

Perfecto. Tener en cuenta que para muestreos rápidos, como este, conviene tener el tamaño de SAMPLERS_BUF_SIZE al máximo, es decir en 127. Esto permite que entre cada evento @OnVinBufFullA() donde se escribe la tarjeta, esté más espaciado en el tiempo, por ejemplo 0.635 segundos para 200 muestras/s. Entonces, nos aseguramos tener todo ese tiempo disponible extra para otras operaciones del PLC. Por ejemplo, la operación de escritura de esas muestras tarda entre 0.010 a 0.030 segundos en promedio, pero si por algún motivo se retrasa, estamos sobrados de tiempo hasta la próxima escritura, que debe ser cada 0.635 segundos para no perder últimas muestras adquiridas (sino serán remplazadas o mezcladas por nuevas muestras).

Si bajamos el el valor de SAMPLERS_BUF_SIZE  el tiempo entre eventos @OnVinBufFullA() será menor, con lo cuál dispondremos de menos tiempo extra para cualquier retraso no contemplado en la escritura de las muestras.

Es a criterio del programador, se puede bajar el valor, pero cuando tenemos tiempos muy pequeños o muestreos a alta velocidad, conviene el mayor valor.

Saludos!
« Última Modificación: junio 23, 2022, 12:10:21 pm por Soporte »
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com