Hello,
Our Cr1000x skips one record per 30 minutes. It also skips systems scans in a similar speed, but in a much less regular fashion. Very few scans are skipped. Process time varies, but does not show unusual peaks when skipping occurs. 14 frame errors are reported in the CPI status table, unsure over how long time.
I followed Campbells recommendations to avoid skipped scans
Calibrations and calculations are run in slow sequences
The logger is connected to 6 Volt-modules via a CPI-network (star topology). The network has a total length of over 300m, CPI speed is set to 50
All in all, around 60 sensors are connected, all serial
Time is synchronized with a licor smartflux
No errors are reported in the logger status table (WatchDog, Prog, ...)
I can submit parts of the program and other information here. But for now I am wondering what the likely reason for the skipped records is. I suspect some kind of synchronization issue but am not sure where I should start searching. The data loss is not significant, but I want to find out where our pipeline could be optimized.
Best regards,
H
Looked into it more
- a record is skipped every 88 records, so every 1760 seconds. Very regular.
- around midnight, the last record is always 23:59:40, the first after that 00:00:40. Two records skipped.
What are likely causes for this? I am not aware on processes on the system that run in these intervals. In another forum post, loggernet clock synching is mentioned, but that is turned off for this station
Best regards,
H
If you skip a scan when that scan would output a record, you get a skipped record. Focus on solving the skipped scans, and it should resolve the skipped records.
There are values in the Status table of the datalogger that provide good clues. Look at processing time and max processing time. Having few skipped scans, I think your measurement time is OK.
You want the program to be compiling in pipeline mode if possible.
https://www.campbellsci.com/videos/pipeline-sequential
Running in pipeline mode, you might be able to just increase the buffers on the Scan() instruction. Max processing time can guide how much time needs to be buffered. The buffers let the processing catch up.