OSCAT Forum

oscat.lib => oscat.lib fuer Step 7 => Thema gestartet von: mg in 16. Dezember 2025, 06:50:31

Titel: S7-1200 T_PLC_ms, T_PLC_us
Beitrag von: mg in 16. Dezember 2025, 06:50:31


//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

*)