SetClock
(Engine-Level Function)
Description: | Sets the VTScada system clock and calendar. |
Returns: | Nothing |
Usage: | Script Only. |
Function Groups: | Time and Date |
Related to: | Seconds | Today |
Format: | SetClock(Date, Time) |
Parameters: |
Date |
Required. Any numeric expression giving the new date, in days since 1 January 1970. |
Time |
Required. Any numeric expression giving the new time, in seconds since midnight. |
Comments: |
This statement allows the synchronization of the VTScada system clock / calendar with another clock / calendar. All pending timers, and all built-in statements and functions that depend on the system clock / calendar are adjusted to match.
This function can work only when VTScada is run with administrative privileges. (Specifically, under a Windows user with the SE_SYSTEMTIME_NAME privilege.)
Caution is necessary, because VTScada will not adjust times and dates stored in variables or files (VTScada does not know if a variable contains a number or time or date). I/O drivers which time and date stamp results will not adjust themselves retroactively. However, as each new action occurs, the new time and date will be used. This is because I/O drivers are not built-in functions, they are modules. |
Example:
If ZEditField(10, 40, 110, 10, minPastHr, 2, 1, 1); [ currTime = Seconds(); minPastHr = Cast(minPastHr, 0){ Type status (0 - 255) }; minPastHr %= 60 { Valid range is from 0 - 60 }; convTime = currTime { Seconds since midnight } - currTime % 24 { Seconds past the hour } + (minPastHr * 60){ New seconds past the hour }; SetClock(Today(), convTime) { Set the system clock }; ]
This takes a value that has been entered into an input field and sets the system clock by it. The date and hour remain unchanged, only the minutes are set.