Add Times-scripts/FC_GetSetLocalTime.txt
This commit is contained in:
parent
7aa2aab4cf
commit
96e584a8de
67
Times-scripts/FC_GetSetLocalTime.txt
Normal file
67
Times-scripts/FC_GetSetLocalTime.txt
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
FUNCTION "FC_GetSetLocalTime" : Int
|
||||
TITLE = 'Read / Write / Set Local Time (DTL)'
|
||||
VERSION : 1.1
|
||||
// ────────────────────────────────────────────────────────────────
|
||||
// Purpose:
|
||||
// - Read current local time (RD_LOC_T)
|
||||
// - Write new local date/time (WR_LOC_T)
|
||||
// Call examples:
|
||||
// Read: xWrite := FALSE; RET_VAL := FC_GetSetLocalTime(xWrite:=FALSE, dtLocal=>CurrentTime);
|
||||
// Write: xWrite := TRUE; RET_VAL := FC_GetSetLocalTime(xWrite:=TRUE, dtLocal:=NewTime);
|
||||
// ────────────────────────────────────────────────────────────────
|
||||
|
||||
VAR_INPUT
|
||||
xWrite : BOOL; // FALSE = read only TRUE = write new time
|
||||
dtLocal : DTL; // IN: new local time when xWrite=TRUE
|
||||
// OUT: current local time when xWrite=FALSE
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
xDone : BOOL; // TRUE = operation finished (no error)
|
||||
xError : BOOL; // TRUE = failed
|
||||
wStatus : WORD; // Detailed status / error code
|
||||
END_VAR
|
||||
|
||||
VAR_TEMP
|
||||
ret : Int;
|
||||
END_VAR
|
||||
|
||||
BEGIN
|
||||
|
||||
xDone := FALSE;
|
||||
xError := FALSE;
|
||||
wStatus := 16#0000;
|
||||
ret := 0;
|
||||
|
||||
IF xWrite THEN
|
||||
// ─── WRITE new local time ─────────────────────────────────────
|
||||
WR_LOC_T(
|
||||
LOCTIME := dtLocal, // Desired local date/time
|
||||
RET_VAL => ret,
|
||||
STATUS => wStatus
|
||||
);
|
||||
|
||||
IF ret = 0 THEN
|
||||
xDone := TRUE;
|
||||
ELSE
|
||||
xError := TRUE;
|
||||
END_IF;
|
||||
|
||||
ELSE
|
||||
// ─── READ current local time ──────────────────────────────────
|
||||
RD_LOC_T(
|
||||
RET_VAL => ret,
|
||||
STATUS => wStatus,
|
||||
LOCTIME => dtLocal // Current local time returned here
|
||||
);
|
||||
|
||||
IF ret = 0 THEN
|
||||
xDone := TRUE;
|
||||
ELSE
|
||||
xError := TRUE;
|
||||
END_IF;
|
||||
END_IF;
|
||||
|
||||
"FC_GetSetLocalTime" := ret; // Usually 0 = OK, positive = warning, negative = error
|
||||
|
||||
END_FUNCTION
|
||||
Loading…
Reference in a new issue