Hi
Try this
// ---------- Init ----------
FMOV(SM402 , 0 , 29 , wParam[0]);
// ---------- PID parameters ---------
wParam[0] := i_wSamplingTime;
wParam[1].0 := i_bOperationDirection;
wParam[1].5 := i_bOutputLimitEnable;
wParam[2] := i_wInputFilterConstant;
wParam[3] := i_wProportionalGain;
wParam[4] := i_wIntegralTime;
wParam[5] := i_wDifferentialGain;
wParam[6] := i_wDifferentialTime;
wParam[22] := i_wUpperMVLimit;
wParam[23] := i_wLowerMVLimit;
// --------- PID auto ---------
PID(i_bEnablePID , i_wTargetValue , i_wProcessValue , wParam[0] , o_wManipulatedValue);
// --------- Manual value ---------
MOV(i_bAutoManual , i_wManualValue , o_wManipulatedValue);
// ---------- Zero output when PID is disabled ----------
MOV(NOT i_bEnablePID , 0 , o_wManipulatedValue);
// ---------- Bumpless mode transfer ----------
IF i_bAutoManual THEN
INT2DINT(TRUE , o_wManipulatedValue , dTempReg);
dTempReg := 100 * dTempReg;
bTempArray[0] := DINT_TO_BITARR(dTempReg , 32);
wParam[18] := BITARR_TO_INT(bTempArray[0] , 16);
wParam[19] := BITARR_TO_INT(bTempArray[16] , 16);
END_IF;