_xReturnValue); // Start timer after which the output of the Signal fb will be checked _fbOffTimer(IN := TRUE, PT := (timOffTime + T#50MS)); IF _xSignalForOffTest THEN _xSignalForOffTest := FALSE; END_IF // Signal must be true at the start of the test // If not, abort the test IF _xSignalForOffTest AND (NOT _xReturnValue) THEN AssertTrue(Condition := _xReturnValue, Message := 'Signal not true at start of test'); _xTestWithOffTimeFinished := TRUE; END_IF // Check value after a time which is longer than the signal delay time IF NOT _fbOffTimer.Q THEN IF (NOT _xReturnValue) THEN AssertFalse(Condition := _xReturnValue, Message := 'Signal was false before the time was over'); _fbOnTimer.IN := FALSE; _xTestWithOffTimeFinished := TRUE; END_IF ELSE AssertFalse(Condition := _xReturnValue, Message := 'Signal was not false after the time elapsed'); _fbOnTimer.IN := FALSE; _xTestWithOffTimeFinished := TRUE; END_IF IF _xTestWithOffTimeFinished THEN TEST_FINISHED(); END_IF]]> _xReturnValue); // Start timer after which the output of the Signal fb will be checked _fbOnTimer(IN := TRUE, PT := (timOnTime + T#50MS)); // Check value after a time which is longer than the signal delay time IF NOT _fbOnTimer.Q THEN IF _xReturnValue THEN AssertTrue(Condition := _xReturnValue, Message := 'Signal was true before the time was over'); _fbOnTimer.IN := FALSE; _xTestWithOnTimeFinished := TRUE; END_IF ELSE AssertTrue(Condition := _xReturnValue, Message := 'Signal was not true after the time elapsed'); _fbOnTimer.IN := FALSE; _xTestWithOnTimeFinished := TRUE; END_IF IF _xTestWithOnTimeFinished THEN TEST_FINISHED(); END_IF]]> _xReturnValue); AssertEquals(Expected:= _xExpected, Actual:= _xReturnValue, Message:= 'Signal is not false'); // Test high signal _xSignal := TRUE; _xExpected := TRUE; _fbReleaseSignal( xSignal:= _xSignal, xRelease:= _xRelease, timOnDelay:= T#0MS, timOffDelay:= T#0MS, xReleaseSignal=> _xReturnValue); AssertEquals(Expected:= _xExpected, Actual:= _xReturnValue, Message:= 'Signal is not true'); // Test with inactive release _xRelease := FALSE; _xSignal := TRUE; _xExpected := FALSE; _fbReleaseSignal( xSignal:= _xSignal, xRelease:= _xRelease, timOnDelay:= T#0MS, timOffDelay:= T#0MS, xReleaseSignal=> _xReturnValue); AssertEquals(Expected:= _xExpected, Actual:= _xReturnValue, Message:= 'Signal is not false with no active release'); TEST_FINISHED();]]>