I agree, writing your own PID control algorithm is usually the best solution, and not too difficult to do, as long as your controller (I don't know the MSC-51) gives you the tools (add, subtract, multiply, divide, timer and somewhere to store values from the previous calculation).
You'll need to consider the application. The PID output will need to be set to incremental (eg valve control), or added to / subracted from your previous output (motor speed control), to suit. You also need to think about what your PID control should do if you go into manual control, or stop your controlled device (pump, valve or whatever) from running - should you hold the last value, track what the device does, or set the output to zero - you don't what the integral term to keep on accumulating....
I find it useful to be able to adjust the gain of the intgral term independantly of the gain for the proportional term - helps when commissioning.
Warning:
My experience of commercial PID control algorithms is that they all implement slightly differently. I've come across one commercial controller where the built-in PID algorithm had been rewritten to act on the rate of change of the error rather than the error itself! This introduces a lead in the control function. Although this would be OK for heating control, it introduced some weird instability effects when we tried using it for flow control. - So it's better to know the maths of the PID function (by writing it yourself) than rely on someone else implementing it properly!
