Omron C200HS - how to implement PID instruction


Thread Starter


I've just acquired an Omron C200HS and I have to make a PID temperature control system. But I have only OC225 relay output unit. As I have
seen the PID(--) instriction outputs a hex. number, how it can be trensfered to cycle a relay in the O/P unit i.e. make a pulse width control with adjustable cycle time? Or I have to get some additional unit(s)? D/A converter is not acceptable because the control signal has to
drive an AC motor and so to open or close a valve and keep the temperature around the SP. The wear of the relay during proportional cycling
time souldn't ba a problem because the valve motor draws a relatevlly small current (0.4A).
Every idea is welcome.

Thanks in advance.
Hi Steve!
In order to have a PID loop, you need to have a TC type of module if you have a thermocouple sensor or a RTD module if you have a RTD
sensor. Likewise, you also need an analog output module to drive your valve to specific opening. You can not have a PID loop if your valve
can only to a close/open job. Hunting of the SP can be observed if you decide to use an open/close type of a valve. You need a lot of
conversion if you decide to use a digital module in lieu of an analog module. You should transfer the word level of the digin so that all
the 16 bits will be used to act as an analog...
I don't think there will be a simple answer to this one. I have used PID loops in Omron PLC's, but always with an anlogue output. As a first attempt, it may be worth creating a hysteresis band around an arbitary point on the PID analogue output. Then as the analugoe output passes the upper limit, the output turns on, and as it drops below the lower limit, it turns off. As for the
positioning of the limit points and their seperation, I would have to guess at a start point, but would probably pick somewhere around the middle of the range.

This is only a guess and something that might be fun to try experimentally to see how good it is. I'm sure someone may have a better answer for you.


As I see it your main problem is that you can open a valve but how do you close it? Because for a PID implementation you need a positive and negative action. Usually one of them is done by the plant itself (for instance, you heat a room,
and the room alone gets cold) but with a valve if you do nothing it will stay at its position without moving. I think that is the first problem you should solve. And after that you have to convert the output of the PID to a open.close
signal for the motor.

Hope of being helpful

I believe that the control you describe can be realized (I am not familiar with this particular controller and this is the only limitation).

1. You should choose the cycle period (T). It cannot be too large: there will be temperature oscillations due to propagation of this low frequency PWM control to the output of the system (temperature). It cannot be too small your
valve will be worn out pretty quickly. A good value would be around 0.1 of the period of the cycle of self-excited oscillations in on-off control of the same process.
2. You should determine the limits of your PID control in the controller and associate them with the limits of the required PWM control. For example, you can obtain the output of the PID block as an 8-bit value. Then value 00 should
correspond to 0% of on/off valve ratio and FF should correspond to 100% on/off valve ratio.
3. You should calculate (within your controller) an actual value of the control command as time t during which the valve should be open. It can be calculated from the above proportions and the chosen value T, for example, if the PID
output is F0 t=0.5T.

Hope this would help. If you have any question please contact me at:
"[email protected]", mailto:[email protected]
Igor Boiko

Johan Bengtsson

I don't know much about omron, but the general idea is to have two timers, one for how long the output is going to be activated (the timer value should be calculated from the PID output) and one either for the remaining time or for the entire period whatever you feel easiest to implement

Since you need a up/down sort of control I suggest you divide the output range in two halves and run the motor in neither directon at that value and at maximum speed but oposite directions at both ends.

Since the valve is probably a lot faster than the process you would like to have a fairly long cycle time compared to maximum on time. (ie a fairly short on time)

/Johan Bengtsson

Do you need education in the area of automation?
P&L, Innovation in training
Box 252, S-281 23 H{ssleholm SWEDEN
Tel: +46 451 49 460, Fax: +46 451 89 833
E-mail: [email protected]
Hi everybody and thank you so much for your replies!
First of all I would like to add something to some of your answers.
For Ting: I have a termocouple module as an input unit.
For Deepblue: The valve motor can be driven in both directions - to open or to close. This is an old three-wire AC motor: phase to open, phase to close and common.
For Igor: Your idea is the right one. Actually, something like that but more applicable I've got
by e-mail from a guy who I thank a lot to.
So, I'll try to use two PID blocks (first for forward and second for reverse action) and two relays in order to drive the valve in both directions and keep the temperature around a desired SP.
Thank you again and best wishes.