```pascal FUNCTION_BLOCK "SlewLimit" { S7_Optimized_Access := 'FALSE' } AUTHOR : 'Author' FAMILY : 'Function' NAME : 'Name' VERSION : 1.0 VAR_INPUT i_InValue : Real; // REAL Input Value TO Smooth i_SlewMax : Real; // Maximum Slew Rate Accepted i_Cycle : Real; // Cycle TIME END_VAR VAR_IN_OUT out : Real; END_VAR VAR mStep : Real; END_VAR BEGIN #mStep := #i_SlewMax * #i_Cycle ; IF #i_InValue >= #out THEN IF (#i_InValue - #out) > #mStep THEN #out := #out + #mStep ; ELSE #out := #i_InValue ; END_IF; ELSE IF (#out - #i_InValue) > #mStep THEN #out := #out - #mStep ; ELSE #out := #i_InValue ; END_IF; END_IF; END_FUNCTION_BLOCK ```