Untitled

 avatar
unknown
plain_text
a year ago
684 B
5
Indexable
FUNCTION_BLOCK Manager
VAR_INPUT
	MyPump: POINTER TO PumpControl;
	FStart:BOOL;
	FStop:BOOL;
END_VAR
VAR_OUTPUT
	Trip:BOOL;
	Available:BOOL;
END_VAR
    prevPStart, prevPStop:BOOL;
VAR
	
END_VAR


IF FStart AND NOT prevFStart AND NOT MyPump^.PFail THEN
    StartRequest();
END_IF

IF FStop AND NOT prevFStop THEN
    StopRequest();
END_IF

prevFStart:=ThisObj^.FStart;
prevFstop:=ThisObj^.FStop;

IF MyPump^.PFail THEN 
	Trip := TRUE;
END_IF

IF NOT MyPump^.PRun AND NOT MyPump^.PFail THEN
    Available:=TRUE;
END_IF
IF Available AND Trip THEN 
	Available:=FALSE;
END_IF

# StartRequest
MyPump^.StartPump();

#StopRequest
MyPump^.StopPump();
Editor is loading...
Leave a Comment