Download Windows Time DLL

Place the DLL in your DAQFactory installation folder and all DAQFactory will use the Windows system clock instead of the high precision timer.
Works with all versions of DAQFactory, release 5+.

Reasons to use this DLL:

DAQFactory's time is drifting a lot compared to the Windows system time.
You need to synchonize time between machines using a network time server that is automatically syncing the WIndows system clock.
You want DAQFactory to adjust for daylight savings time (see warning below).

Reasons NOT to use this DLL:

You need high precision time stamps and precise looping. The standard Windows clock has a precision of about 15ms. The normal DAQFactory clock has a precision of about 100ns, though time is only recorded to the microsecond.
Daylight savings time is going to mess up your control loops. See below:


DAYLIGHT SAVINGS TIME WARNING:

If you use this DLL and have daylight savings time enabled on your system, when the system clock is adjusted for daylight savings time your control and acquisition loops will be affected:

In the spring, when clocks shift forward, DAQFactory will think it was hung for an hour. This will cause a Timing Lag error on all acqusition loops. Serial and Ethernet communications may throw a timeout error even though comms are fine. Any script that is looking for timeouts, or watchdog scripts may trigger since it will appear as if nothing happened for an hour.

In the fall, when the clocks shift backwards, any loops that happen to be waiting (for example in a delay(), or even simple Channel Timing) will likely hang for one hour while the clock comes back to future time. This means an hour of dead time. Worse, if a loop happens to not be in the delay() at the time of the time shift, it will run normally, so which loops hang for an hour and which run properly is completely random.


We strongly recommend turning off daylight savings time if you wish to use this DLL and the Windows system clock.


If you do elect to leave DST on while using this driver, you should consider using the system.IsDST() to determine when the switch occurs and reset all your loops. Use channel.Restart() to reset an Channel Timing loops.