//entfällt bei S7-1200: "IDB_STIME"();
#T_PLC_MS := "System_Time_DB".ms_dw;
(* hier muss die korrektur für step7 stattfinden
plctime muss den vollen wertebereich von time ausnutzen:
wenn bei step7 time -24tage bis plus 24 tage ist dann muss der timer auch beim überlauf auf -24tage springen
und auf keinen fall auf 0 !!!!
für siemens muss ein weiterer fb im main eingebunden werden der sicherstellt das alle 32 bits durchgezählt werden.
es kann nur ein fb sein den er muss sich das oberste (32te) bit merken.
oder etwa spring s7 bei überlauf auf -24 tage????? dann wäre keine korrektur nötig.
*)
IF "debug" THEN
#T_PLC_MS := DINT_TO_DWORD((DWORD_TO_DINT(SHL(IN:=#T_PLC_MS,N:="N") OR SHL(IN:=DWORD#1,N:="N"))-1) + DWORD_TO_DINT("offset_1"));
END_IF;
(* revision history
hm 14.9.2007 rev 1.0
original version
hm 12. nov 2007 rev 1.1
added temporaray variable tx because some compilers could not handle time() as an argument
hm 16. nov. 2008 rev 1.2
initialized constants with 0 for compatibility reasons
*)
//entfällt bei S7-1200: "IDB_STIME"();
#T_PLC_US := "System_Time_DB".us_dw;
(* hier muss die korrektur für step7 stattfinden
plctime muss den vollen wertebereich von time ausnutzen:
wenn bei step7 time -24tage bis plus 24 tage ist dann muss der timer auch beim überlauf auf -24tage springen
und auf keinen fall auf 0 !!!!
für siemens muss ein weiterer fb im main eingebunden werden der sicherstellt das alle 32 bits durchgezählt werden.
es kann nur ein fb sein den er muss sich das oberste (32te) bit merken.
oder etwa spring s7 bei überlauf auf -24 tage????? dann wäre keine korrektur nötig.
*)
IF "debug" THEN
#T_PLC_US := DINT_TO_DWORD((DWORD_TO_DINT(SHL(IN:=#T_PLC_US,N:="N") OR SHL(IN:=DWORD#1,N:="N"))-1) + DWORD_TO_DINT("offset_1"));
END_IF;
(* revision history
hm 14.9.2007 rev 1.0
original version
hm 12. nov 2007 rev 1.1
added temporaray variable tx because some compilers could not handle time() as an argument
hm 16. nov. 2008 rev 1.2
initialized constants with 0 for compatibility reasons
*)