Just make your own: (Should work but needs to be tested)
Code:
FUNCTION_BLOCK TOF_Advanced
VAR_INPUT
IN:BOOL;
PT:TIME;
RST:BOOL;
END_VAR
VAR_OUTPUT
ET:TIME;
Q:BOOL;
END_VAR
VAR
tStartTime : TIME;
tCurrentTime : TIME;
END_VAR
//Read system time
tCurrentTime := TIME();
//Set Q based off IN and PT
IF RST THEN
Q := FALSE;
ET := T#0MS; //You can reset ET here also if wanted
ELSIF IN THEN
Q := TRUE;
ET := T#0MS;
tStartTime := tCurrentTime;
ELSIF tCurrentTime - tStartTime >= PT AND Q THEN
ET := tCurrentTime - tStartTime;
Q := FALSE;
tCurrentTime := T#0MS;
ELSIF Q AND NOT IN THEN
ET := tCurrentTime - tStartTime;
END_IF
Attachment:
TOF_Advanced.PNG