Driving a SSR with a PID Loop ???

brettshelley

Member
Join Date
Dec 2007
Location
Durban
Posts
45
Hi guys, I am having sleepless nights over this problem!

I am reading a temperature value and using a PID routine to make sure that the temperature stays at the process value. My problem is this:

The PID loop gives me a variable from 0 - 4000 depending on where the temperature is.

How can i manipulate this so that as the variable changes, the pulse of the output is driven directly proportional to the value???

Eg, 4000 = ON
2000 = pulse 50% ie. 10ms
etc

????
Cheers,

Brett
 
Most of the PID controllers (hardware and/or software) have a setting for On/Off control. This is commonly used for heating applications to drive an SSR-controlled heating element. By using On/Off control, the PID will automatically scale the cycling of the output the way you described.
 
jsatkanpak said:
Most of the PID controllers (hardware and/or software) have a setting for On/Off control. This is commonly used for heating applications to drive an SSR-controlled heating element. By using On/Off control, the PID will automatically scale the cycling of the output the way you described.

jsatkanpak's idea sounds the best route to go - if it is an option. Is this a PID block in a plc? I'm sure that there are several ways to accomplish this. Off the top of my head I'm thinking that you scale the output of PID function and the move it into a timer and combine this with a one-shot to effectively form a programmable-length one shot.

Some plc's also of pulse width modulated function built into them that may be of use.

Beware, I have not tried these methods, but I'm just trying to come up with some ideas.
 
Electrically_Bound said:
jsatkanpak's idea sounds the best route to go - if it is an option. Is this a PID block in a plc? I'm sure that there are several ways to accomplish this. Off the top of my head I'm thinking that you scale the output of PID function and the move it into a timer and combine this with a one-shot to effectively form a programmable-length one shot.

Some plc's also of pulse width modulated function built into them that may be of use.

Beware, I have not tried these methods, but I'm just trying to come up with some ideas.

This is quite common.
In slower acting loops, everyone uses a free running self resetting timer, & proportions the signal to be on for a % of that free running timer.
 
Based on a post in another forum I'm assuming that Brett is using a Mitsubishi PLC. My experience with Mitsubishi PLCs is limited to reading Mitsubishi programs for conversion to another PLC (nothing against Mitsubishi, its an issue of standardization).

In an AB PLC I would use a self resetting timer and an SCP instruction where the PID output is scaled to the timer preset. This scales the PID output value to the time range. Then while the accumulated time is less than the time scaled PID output value the heater is on.

A010208A.JPG
 
Hi Guys, well, tried the ON/OFF control which worked to some extent. When I wanted a constant value of 1000, the ON/OFF control worked the following way.

760 - ON
940 - OFF

No good! I autotuned, same problem.

Maybe the timer system would work? By the way, the PLC is a LG.

New to me as I normally program Mitsubishi!

Customer wanted LG!!!

Any other ideas would help!

Cheers,

Brett
 
as Alaric mentioned, there was a mitsubishi sample in your other thread...

760/940 ratio would be spot on if 1000 represented 44.7% but since you mention
range 0-4000, value of 1000 is just 25%...

also what do you mean by ON/OFF control (you mean solution posted by Peter?)
if so, how did you configure interrupt (update interval)?
can you post screenshot of your code?
 
The PLC type is a GM6-B. I ordered the type B as it had the PID built in to the cpu.

This is driving me crazy still. All i want to do is PID control a flippin SSR to keep the temperature at a constant!!!!

I have uploaded the PID section of the manual, maybe someone outhere can make more sense of it than I can....!

Cheers,

Brett
 
Alaric,

Based on your example and a little tweaking of timers and scaling, BOOM.

The whole thing worked like a charm.

Had to change the AT samlpe rate to 2s, the PID sample to 2s, the Pulse timer to 2s and it works very very well.

Thanks to all who helped me regarding this matter. I will make a PDF of the programme and upload it so that you can see.

Best regards,

Brett
 
Just to add, changed ALL the scan times to 1 second and the pulse behaves much better now...!

Even when I adjust the SV of the PID loop, it adjusts accordingly. Great!!!

Now all I have to do is copy the programme 16 times as I have to control 16 heaters via PID. Hope that the scan time will fair OK!!!

Wish me luck and again many many thanks.
 
As promised the first zone routine in PDF.

Hope that this helps anyone else who have a similar problem.

Thanks go out to all the guys who gave me ideas...

Regards,

Brett
 

Similar Topics

Hi guys, I am having sleepless nights over this problem! I am reading a temperature value and using a PID routine to make sure that the...
Replies
3
Views
1,888
We have a handful of nearly identical flywheel-driven machines. About a year ago, we installed a 15HP Powerflex 525 drive in simple V/Hz mode...
Replies
2
Views
880
Is there any issue with running a VFD-controlled 3-phase induction motor in torque control mode in the braking region continuously (back-driven by...
Replies
14
Views
4,026
Hello everyone, we're trying to get some information from our screwdrivers. - The control chain is IqR plc with RD77MS16, connected to MR-J4 and...
Replies
1
Views
830
Hi All, trying to restore a runtime application that i have been reliably informed was created in version 10 ftview, i get the below error:-...
Replies
1
Views
978
Back
Top Bottom