0.001 THEN AssertTrue(FALSE, 'Project cycle time not set to 10ms!'); ELSE _fbRampGen( rTarget:= 0.0, rTargetMin:= 0.0, rTargetMax:= 100.0, timRampUp:= T#5S, timRampDown:= T#5S, rSetpoint=> , xInTarget=> ); // Project should be set to 10ms cycle time for this test to work AssertEquals_REAL(Expected := 10.0, Actual := _fbRampGen.CycleTime, Delta := 0.01, 'Cycle time is not equal to project cycle time (10ms)'); END_IF TEST_FINISHED();]]> _rSetpoint, xInTarget => _xInTarget); // check for whether InTarget is reached at the specified time IF NOT _fbDelayInTargetResultDown.Q THEN AssertFalse(_xInTarget, 'InTarget reached earlier then expected.'); ELSE AssertTrue(_xInTarget, 'InTarget not reached in time.'); TEST_FINISHED(); END_IF]]> _rSetpoint, xInTarget => _xInTarget); // check for whether InTarget is reached at the specified time IF NOT _fbDelayInTargetResultUp.Q THEN AssertFalse(_xInTarget, 'InTarget reached earlier then expected.'); ELSE AssertTrue(_xInTarget, 'InTarget not reached in time.'); TEST_FINISHED(); END_IF]]> _rSetpoint, xInTarget =>); // check for clamping IF NOT _fbDelayMaxClamp.Q THEN // too early AssertTrue(_rSetpoint < rExpected,'Clamped value reached before expected time'); ELSE // after expected rampTime IF NOT _fbDelayMaxClampBuffer.Q THEN AssertEquals_REAL(Expected := rExpected, Actual := _rSetpoint, Delta := rDelta, 'Value did not stay on or did not reach MaxTarget'); ELSE TEST_FINISHED(); END_IF END_IF]]> _rSetpoint, xInTarget =>); // check for clamping IF NOT _fbDelayMinClamp.Q THEN // too early AssertTrue(_rSetpoint >= (rExpected - rDelta), 'Clamped value reached before expected time'); ELSE // after expected rampTime IF NOT _fbDelayMinClampBuffer.Q THEN AssertEquals_REAL(Expected := rExpected, Actual := _rSetpoint, Delta := rDelta, 'Value did not stay on or did not reach MinTarget'); ELSE TEST_FINISHED(); END_IF END_IF]]> _rSetpoint, xInTarget =>); // check for current expected value IF NOT _fbDelayRampDownContinuity.Q THEN AssertEquals_REAL(Expected := _rNextExpectedDown, Actual := _rSetpoint, Delta := rDelta, 'Expected current value was not achieved.'); ELSE // check for final value AssertEquals_REAL(Expected := rExpected, Actual := _rSetpoint, Delta := rDelta, 'Value was not reached in time.'); TEST_FINISHED(); END_IF]]> _rSetpoint, xInTarget =>); // check whether final value is reach on time or before IF NOT _fbDelayRampDownTime.Q THEN AssertTrue(_rSetpoint > (rExpected - rDelta),'Value reached before expected time.'); ELSE AssertEquals_REAL(Expected := rExpected, Actual := _rSetpoint, Delta := rDelta, 'Value was not reached in time.'); TEST_FINISHED(); END_IF ]]> _rSetpoint, xInTarget =>); // check for current expected value IF NOT _fbDelayRampUpContinuity.Q THEN AssertEquals_REAL(Expected := _rNextExpectedUp, Actual := _rSetpoint, Delta := rDelta, 'Expected current value was not achieved.'); ELSE // check for final value AssertEquals_REAL(Expected := rExpected, Actual := _rSetpoint, Delta := rDelta, 'Value was not reached in time.'); TEST_FINISHED(); END_IF]]> _rSetpoint, xInTarget =>); // check whether final value is reach on time or before IF NOT _fbDelayRampUpTime.Q THEN AssertTrue(_rSetpoint < rExpected,'Value reached before expected time.'); ELSE AssertEquals_REAL(Expected := rExpected, Actual := _rSetpoint, Delta := rDelta, 'Value was not reached in time.'); TEST_FINISHED(); END_IF]]>