发布于 2006-09-22 14:45:51
0楼
前几天刚好做了一个:
FUNCTION_BLOCK FB 61
TITLE =
VERSION : 0.1
VAR_INPUT
Run : BOOL ;
Reset : BOOL ;
END_VAR
VAR_OUTPUT
RunTime_Time : TIME ;
END_VAR
VAR
TimeTickLastScan : TIME ;
END_VAR
VAR_TEMP
TimeTick : TIME ;
END_VAR
BEGIN
NETWORK
TITLE =
CALL "TIME_TCK" (
RET_VAL := #TimeTick);
L #TimeTickLastScan; //if the time tick is less then timeticklastscan
L #TimeTick;
JNB _001; //then update timeticklastscan with timetick
A #Run; //if "run" is on, then calculate the runtime
JNB _001;
L #TimeTick; //runtime=runtime+(timetick-timeticklastscan)
L #TimeTickLastScan;
-D ;
L #RunTime_Time;
+D ;
T #RunTime_Time;
_001: L #TimeTick; //if "run" is off,then update timeticklastscan with timetick
T #TimeTickLastScan;
A #Reset;
JNB _002;
L 0;
T #RunTime_Time;
_002: NOP 0;
END_FUNCTION_BLOCK