Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations waross on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

SLC 500

Status
Not open for further replies.

Oxidation

Petroleum
Oct 5, 2003
41
I'm working on an SLC 500 based combustion control system. My fuel gas valve moves much quicker than the air control valve due to the size of the FCV on the FD fan. When increasing TIC output I end up with CO exceeding 30ppm for 30 seconds. There is no 'cross-linking' in the program for 'lead-lag' control, so I'm looking at alterantive methods of slowing the fuel gas valve when the TIC output increases.
Does anyone have any proposals.
I'm thinking of directing the output word to a PID instruction then to the output.
The other way is to use the 'RMP' instruction, but this looks complicated

Thanks
 
Replies continue below

Recommended for you

If I understand you correctly, you want to maitain a co level of 300 PPM. This tells me that you have some device to measure the co level. If this device outputs a current or voltage that is proportional to the co level that is being sensed and you know the mathematical, perhaps ratiometric relationship between the flow rate of fuel induced and the co produced, you can use an analog signal fed to a servo valve to control the flow of fuel.

best regards, PLCSAVVY
 
The RMP instruction should be the right one for your application. Maybe there are program examples on ABs website.

Otherwise, program your own "ramp" function, like this:

(psudocode)
Code:
IF intermediatevalue1 > outputvalue THEN 
  (IF timetick THEN 
    (intermediatevalue2:=intermediatevalue2 + rampvalue
     IF intermediatevalue2 > intermediatevalue1 THEN
      (intermediatevalue2 := intermediatevalue1)
    )
  )

IF intermediatevalue1 < outputvalue THEN 
  (IF timetick THEN 
    (intermediatevalue2:=intermediatevalue2 - rampvalue
     IF intermediatevalue2 < intermediatevalue1 THEN
      (intermediatevalue2 := intermediatevalue1)
    )
  )

outputvalue := intermediatevalue2
 
I think you're saying that you don't have feedback signals for air flow and fuel flow, but are individually controlling both of these actuators from the output of a single PID loop.

Often, this is done with a single output (called &quot;firing rate&quot;) from the controller, and the fuel and air valves are mechanically linked to a single actuator. The linkage creates the proper relationship between fuel valve position and air damper position for each firing rate.

I would consider developing a piecewise linear curve for proper fuel valve position and air damper position at various firing rates. This might be done by ramping firing up manually, and tweaking each position to get an acceptable CO level. Then add some logic that calculates those positions on the fly based on the firing rate output from your PID.
 
I have a ratio table linking TIC output to individual valves within the PLC. The problem is the physical size difference in the FD air valve & FG valves. The FD air valve is 32 inch, the gas valve is 4 inch. When the TIC output increases the gas valve moves much faster to set point than the air valve leading to CO excursions above 30ppm. What I'm looking for is a good method of employing a 'ramp' on the gas valve only to prevent this.
I started programming Friday, the first attempt wasn't quite right but I think I'm closer now.
Thanks for all your help
 
You can use high and low signal selectors for the lead lag functions to make air increase before fuel and remove fuel before air. You should find material on the web for this.


John
 
It really sounds like you need to ramp the output to limit the rate of change, so both valves move at the same speed.

I would write the code much as JesperMP has suggested, although he has not clearly defined the variables.

I would put it simpler. This is my standard ramping logic.

You need to set up a clock pulse, say 1 second.
Define your Maximum Rate of change per second RATE
Each second check
If your required position is greater than your output, then add Rate to your output.
If your required position is less than your output, then subtract Rate from your output.
If your required position is within RATE to your output, set OUTPUT to the required position.
 
Thanks all, I solved the problem last week using a solution similar to Killemall.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor