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!