Offhand, I don't remember the limit's for the CLX PID instruction, but I vaguely remember them as being 0-100% output. If that is the case, then 50% is the mid point. If you need the output scaled to +/-100%, just take:
(PID.OUT - 50) * 100%
You can change the scaling factor if you need a smaller trim band:
(PID.OUT - 50) * 5% for example
When the loop is disabled (SWM = True), manually put the .SO to 50. The polarity of the final output term will be dictated by your configuration, in general, a winder will run with a PV-SP equation, and a positive error will cause it to speed up, while a negative error will cause it to slow down.
Also, the action of the loop you describe, does not look like a PID, but rather a P-only. An active PID on a system will almost always have some I (Integral) output to maintain the feedback element at the setpoint value. At the case where FBK=SP, then it is running purely on the integral (time-accumulated) error value.
The 'special case', where a winder PID output would be zero, is if you are using feed-forward of a speed reference signal, with very accurate compensation for build-up.
How are you calculating diameter again? On high-speed machines, using purely the line-speed/winder-speed ratio will in almost all cases cause a destructive diameter calculation during a ramp. In that case, the PID trim must be opened up, or the diamter calculation must be frozen if there is a dVelocity/dTime of the line speed.