Re: [foxboro] Check against entering ridiculous values
- From: "William C Ricker" <wcricker@xxxxxxxxxxxxxxx>
- To: <foxboro@xxxxxxxxxxxxx>
- Date: Tue, 17 Oct 2006 00:38:21 -0400
Adam;
How about this.
A Math block feeds values to HI and LO setpoint limits based on the
current setpoint value. So, the MATH block reads the setpoint value
each scan and multiplies it against a limit (say 10 % in this example)
Next it sets RO01 to be the current setpoint minus that value, and
RO02 to be current setpoint plus that value. Theoreticaly, the
following code does just that (no, I haven't run it.)
Now to allow for conditions when the setpoint must be changed by
larger amounts, we have an override. Set the value of RO03 to
a time, a number of scans of the MATH block, and for that time
duration, the outputs are copied from inputs RI02 and RI03 which
might be set as the LO and HI measurement range. If the MATH
block runs an one scan per second, setting RO03 to 15 gives the
operator 15 seconds to make a big setpoint change.
RO03 can be set because STEP14 does the RELease instruction each
scan, allowing the RO03 parameter to be writable.
Using a MTH block instead of a CALC or CALCA uses 1/4 of the space
in CP memory, and it is shorter and easier to see whats going on
in the block.
The special overlay would only need a pick to set the RO03 value.
All the logic stays in CIO data base and is not hidden away in the
display system somewhere; a plus for the maintenance guys.
I didn't run this code so maybe it has a bug (what, in 14 lines ??)
But it should get the idea across.
So, the example code:
RI01 = :PID.SPT
RI02 = the low setpoint limit in the override state
RI03 = the high setpoint limit in the override state
M01 = 0.10
STEP01 MUL RI01 M01 ; CALCULATE 10 % OF SETPOINT
STEP02 STM M02
STEP03 SUB RI01 M02
STEP04 OUT RO01 ; CONNECT TO SPLLIM
STEP05 ADD RI01 M02
STEP06 OUT RO02 ; CONNECT TO SPHLIM
STEP07 IN RO03 ; OPERATOR OVERRIDE
STEP08 BEQ 14 ; BRANCH IF NO OVERRIDE (maybe this should be BIN)
STEP09 DEC RO03 ; ELSE COUNT DOWN OVERRIDE TIME
STEP10 IN RI02 ; COPY LO SETPOINT LIMIT VALUE
STEP11 OUT RO01 ; TO PID.SPLLIM
STEP12 IN RI03 ; AND COPY SETPOINT HI LIMIT
STEP13 OUT RO02 ; TO PID.SPHLIM
STEP14 REL RO03 ; ALLOW OPS INPUT TO OVERRIDE
Good luck,
William C Ricker
FeedForward, Inc.
_______________________________________________________________________
This mailing list is neither sponsored nor endorsed by Invensys Process
Systems (formerly The Foxboro Company). Use the info you obtain here at
your own risks. Read http://www.thecassandraproject.org/disclaimer.html
foxboro mailing list: http://www.freelists.org/list/foxboro
to subscribe: mailto:foxboro-request@xxxxxxxxxxxxx?subject=join
to unsubscribe: mailto:foxboro-request@xxxxxxxxxxxxx?subject=leave
- References:
- [foxboro] Check against entering ridiculous values
- From: Adam.Pemberton
Other related posts:
- » Re: [foxboro] Check against entering ridiculous values
- » Re: [foxboro] Check against entering ridiculous values
- » Re: [foxboro] Check against entering ridiculous values
- » Re: [foxboro] Check against entering ridiculous values
- » Re: [foxboro] Check against entering ridiculous values
- » Re: [foxboro] Check against entering ridiculous values
- » Re: [foxboro] Check against entering ridiculous values
- » Re: [foxboro] Check against entering ridiculous values
- » Re: [foxboro] Check against entering ridiculous values
- » Re: [foxboro] Check against entering ridiculous values
- » Re: [foxboro] Check against entering ridiculous values
- » Re: [foxboro] Check against entering ridiculous values
- » Re: [foxboro] Check against entering ridiculous values
- » Re: [foxboro] Check against entering ridiculous values
- [foxboro] Check against entering ridiculous values
- From: Adam.Pemberton