© 2007 Eaton Corporation. All rights reserved. Foreseer ® Derived Channels FE Level II, Rev. B...
-
Upload
giles-bridges -
Category
Documents
-
view
221 -
download
4
Transcript of © 2007 Eaton Corporation. All rights reserved. Foreseer ® Derived Channels FE Level II, Rev. B...
© 2007 Eaton Corporation. All rights reserved.
Foreseer® Derived Channels
FE Level II, Rev. B June 17, 2008
Derived Channels - Agenda
• Derived Channels – What and Why• Transfer Equation Variables• Transfer Equation Functions• Working with bits• Control Functions• Transfer Equation Samples• Exercise
Derived Channels – What and Why
• Ability to apply any mathematical or logical equation to a combination of channels or data
• Run Time Hours – From On/Off Status• Total Flow – From GPM• Rate of Change Alarms• Generator Run Time Remaining – From Fuel Monitoring• kWh, Peak Demand – From kW• UPS, PDU, Generator, etc. % Capacity or Power Density – From kVA or
kW
DATA INFORMATION KNOWLEDGE
Transfer Equation Variables
Variables
Variables are used to hold a value within a transfer equationThey can be descriptive in name and be used to make an equation easier to read such as:
on = 1;off = 0;
Or they can contain the results of an equation such as:total_current = [phase a] + [phase b] + [phase c];
Variables can be declared 3 different ways dependent on the scope of their use.
• Local Variables: Created by assignment, local to channel they are declared in only
x = 3; // creates a variable ‘x’ and assigns it the value of 3
• Global Variables: Created by assignment, must be declared in each channel where used, set to assigned value each time the server is launched.global my_global_var = 30; // creates a variable ‘my_global_var’ and assigns it the value of 30 on every server boot.global my_global_var; // declares the variable ‘my_global_var’ for use in designated channel.
• Persistent Global Variables: Created by assignment, must be declared in each channel where used, set to last calculated value each time the server is launched.persistent global my_persistent_var = 30; // creates a variable ‘my_persistent_var’ and initializes it the value of 30 one time only. persistent global my_persistent_var; // declares the variable ‘my_persistent_var’ for use in designated channel.
Transfer Equation Functionsif, else
Function: ‘if’, ‘else’
Description: Conditionals
Example:if( voltage < 450 )
alarm = true;
else
alarm = false:
Note: ‘else’ is optional
Transfer Equation FunctionsNormal Math / Math Operators
• Function: ‘+’, ‘-‘, ‘*’, ‘/’Description: Normal MathExample:
x = 2 + 2; (result 4)x = 12 – 2; (result 10)x = 3 * 2; (result 6)x = 22 / 2; (result 11)
• Function: ‘+=’, ‘-=’, ‘*=’, ‘/=’Description: Math OperatorExample: (assumes x = 3 prior to equation)
x += 2; shorthand for ‘x = x + 2;’ (result 5)x -= 2; shorthand for ‘x = x - 2;’ (result 1)x *= 2; shorthand for ‘x = x * 2;’ (result 6)x /= 2; shorthand for ‘x = x / 2;’ (result 1.5)
Transfer Equation FunctionsLogical OR, Logical AND
• Function: ‘||’Description: Logical ORExample:
x = true || false (result true)x = false || false (result false)
x = true || true (result true)
• Function: ‘&&’Description: Logical ANDExample:
x = true && false (result false)x = false && false (result false)x = true && true (result true)
Transfer Equation FunctionsComparisons
• Function: ‘>’, ‘<’, ‘>=’, ‘<=’, ‘==’, ‘!=’
Description: Comparison
Example:
x = 2 > 1; (result 1 or true, greater than)
x = 2 < 1; (result 0 or false, less than)
x = 2 >= 1; (result 1 or true, greater than or equal to)
x = 2 <= 1; (result 0 or false, less than or equal to)
x = 2 = = 1; (result 0 or false, equal to)
x = 2 != 1; (result 1 or true, not equal to)
Transfer Equation FunctionsIncrement, Decrement, Logical NOT
• Function: ‘++’, ‘--‘Description: Increment, DecrementExample: (assumes x = 3 prior to equation)
x++ (result 4)x -- (result 2)
• Function: ‘!‘Description: Logical NotExample:
x = !false (result true)x = !true (result false)
Transfer Equation FunctionsModulus
• Function: ‘%’
Description: Modulus (remainder of a division)
Example:
x = 45%8 (result 5)
x = 40%8 (result 0)
• Function: ‘%=’
Description: Modulus applied to left value using right value
Example: (assumes x = 45 prior to equation)
x %= 8 shorthand for ‘x = x%8;’ (result 5)
x %= 9 shorthand for ‘x = x%9;’ (result 0)
Transfer Equation FunctionsInteger, Absolute Value
• Function: ‘int’
Description: Integer (Truncation)
Example:
int(2.35) (result 2)
int(2.98) (result 2)
• Function: ‘abs’
Description: Absolute Value
Example:
abs(2.35) (result 2.35)
abs(-2.35) (result 2.35)
Transfer Equation FunctionsChannel Color Checks
• Function: ‘red(chan)’Description: Tests for the critical alarm condition of a channelExample:
red([\\Local\Derived Channels\Alarm Test Channel])Note: If the channel is in a red alarm (critical) or red alarm-acknowledged state this function will return true
• Function: ‘yellow(chan)’Description – Tests for the cautionary alarm condition of a channelExample:
yellow([\\Local\Derived Channels\Alarm Test Channel])Note: If the channel is in a yellow alarm (cautionary) or yellow alarm-acknowledged state this function will return true
• Function: ‘blue(chan)’Description – Tests for the acknowledged condition of a channelExample:
blue([\\Local\Derived Channels\Alarm Test Channel])Note: The result will be true only when the channel is in a blue-acknowledged state.
• Function: ‘green(chan)’Description: Tests for the normal condition of a channelExample:
green([\\Local\Derived Channels\Alarm Test Channel])Note: The result will be true only when the channel is in a green-normal state. If it’s disarmed or disabled or no-value the result will be
false.
Transfer Equation FunctionsDevice Color Checks
• Function: ‘red(device)’Description: Tests for the critical alarm condition of any channel within a deviceExample:
red([\\Local\Liebert AC 1])Note: If any channel in the device is in a red alarm (critical) this function will return true. Unlike the color check for a channel this function will only return true when the alarm is red, once acknowledged or disarmed it will change to false.
• Function: ‘yellow(device)’Description: Tests for the cautionary alarm condition of any channel within a deviceExample:
yellow([\\Local\Liebert AC 1])Note: If any channel in the device is in a yellow alarm (cautionary) this function will return true. Unlike the color check for a channel this function will only return true when the alarm is yellow, once acknowledged or disarmed it will change to false.
• Function: ‘blue(device)’Description: Tests for the acknowledged alarm condition of any channel within a deviceExample:
blue([\\Local\Liebert AC 1])Note: If any channel in the device is in a Blue acknowledged state this function will return true.
• Function: ‘green(device)’Description: Tests for the normal condition of all channels within a deviceExample:
green([\\Local\Liebert AC 1])Note: If all channels in the device are in a green, cyan, purple or grey state this function will return true. Unlike the color check for a channel this function will return true when there are no channels in an alarm or acknowledged state.
Transfer Equation FunctionsChannel Color Counts
• Function: ‘red_count’Description: Returns number of channels in critical alarm for the entire serverExample:
red_count()
• Function: ‘yellow_count’Description: Returns number of channels in cautionary alarm for the entire serverExample:
yellow_count()
• Function: ‘blue_count’Description: Returns number of channels acknowledged for the entire serverExample:
blue_count()
• Function: ‘green_count’Description: Returns number of channels in normal state for the entire serverExample:
green_count()
Transfer Equation Functionsprev and pulse
• Function: ‘prev(chan)’
Description: returns the value of a channel from the previous scan
Example:
prev([\\Local\Liebert System 3 AC\Temperature High])
• Function: ‘pulse(n)’Description: pulses, goes true for one scan every n minutes
Example:
pulse(15)
Transfer Equation Functionsmin and max
• Function: ‘min( [chan], reset )’
Description: returns the minimum value of a channel with reset
Example:
min([\\Local\Liebert System 3 AC\Humidity], monthly_reset)
Note: monthly_reset can be a variable or channel
• Function: ‘max( [chan], reset )’Description: returns the maximum value of a channel with reset
Example:
max([\\Local\Power Meter\kW], pulse(15))
Transfer Equation Functionsintegrate and random
• Function: ‘intg([chan], reset)’
Description: integrates the channel (or variable) value with reset
Example:
intg([\\Local\Generator 1\Running], false) / 60
Note: This example would provide a run time for Generator 1 in hours with no reset.
• Function: ‘rand(min, max)’
Description: generates a random number between the value of min and max
Example:
rand(68, 70)
Transfer Equation Functionsrtime
• Function: ‘rtime(n)’Description: Date and time values for ‘n’ =
0 - Century (19, 20) 1 - Year (00…99) 2 - Year (1980… 2038) 3 - Month (1…12) 4 - Day of Month (1…31) 5 - Day of Year (1…366) 6 - Hour (0…23) 7 - Minute (0…59) 8 - Second (0…59) 9 - Days since 1/1/197010 - Hours since 1/1/197011 - Minutes since 1/1/197012 - Day of Week (1…7)
Example:x = rtime(2);
Note: This example would set the variable ‘x’ to a value of 2006 (today’s date is 9/12/2006).
Transfer Equation FunctionsRate of Change
• Function: ‘roc([chan])’
Description: rate of change over a minute, calculated per second
Example:
roc(rtime(8)); (result = 60)
roc(rtime(8)/2); (result = 30)
Transfer Equation FunctionsPercent Difference
• Function: ‘absoluteDifference(value1, value2, deltamin)’Description: computes the percent absolute difference between the two values.Example:
x = absoluteDifference( 8, 10, 0.01); (result for x would be 25.00%)y = absoluteDifference(10, 8, 0.01); (result for x would be 20.00%)
Note: This function returns the absolute value of the delta divided by value1 times 100.
• Function: ‘relativeDifference(value1, value2, deltamin)’Description: computes the percent relative difference between the two values.Example:
x = relativeDifference( 8, 10, 0.01); (result for x would be 22.22%)y = relativeDifference(10, 8, 0.01); (result for x would be 22.22%)
Note: This function returns the absolute value of the delta divided by the average of value1 and value2 times 100.
Transfer Equation Functionshotkey functions
• Function: ‘hotkeyBool(n)’Description: Allows for Foreseer Server keyboard boolean input to a transfer equation.Example:
hotkeyBool(1); (value toggles between 0 and 1 when <ctrl>1 is pressed on the keyboard)Note: ‘n’ can be 0-9 to represent the numerical keys on a keyboard, used in conjunction with <ctrl>.
• Function: ‘hotkeyAna(n)’Description: Allows for Foreseer Server keyboard numerical input to a transfer equation.Example:
hotkeyAna(1); (user is prompted to enter a value when <alt>1 is pressed on the keyboard)Note: ‘n’ can be 0-9 to represent the numerical keys on a keyboard, used in conjunction with <alt>.
Prompt from pressing <alt>n
Transfer Equation Functionsarchive
• Function: ‘archivePoint([chan])’Description: Forces a digital point to archiveExample:
if( pulse(60) ) archivePoint([\\Local\Generator 1\Running])
Note: This example would force an archive of this point only once per hour.
• Function: ‘archiveDevice([device])’Description: Forces an archive for all digital points of a deviceExample:
if( pulse(300) ) archivePoint([\\Local\Generator 1])
Note: This example would force an archive of all digital points for this device once every 5 hours.
• Function: ‘archiveAll()’Description: Forces an archive for all digital points of a server.Example:
if( (rtime(6)= =0) && (rtime(7)= =0) && pulse(1) ) archiveAll()
Note: This example would force an archive of all digital points once per day at midnight, the pulse(1) holds reset true for one scan rather than one minute.
Transfer Equation Functionsdisable/enable device
• Function: ‘disableDevice([device])’, ‘enableDevice([device])’
Description: Disables or Enables a Foreseer Device.
Example:
if( [\\Local\JCI\AC 1 Control] = = off )
disableDevice([\\Local\AC 1]);
else
enableDevice([\\Local\AC 1]);
Note: This example would disable the device as long as the control system has it turned off.
Transfer Equation Functionsdisarm/rearm device
• Function: ‘disarmDevice([device])’, ‘rearmDevice([device])’Description: Disarms or Rearms a Foreseer Device.Example:
if( [\\Local\Generator 1\Voltage Phase A-B] < 400 ) disarmDevice([\\Local\Generator 1]);
else rearmDevice([\\Local\Generator 1]);
Note: This example would disarm the generator as long as the generator is not running. The device would still be monitored and data would continue to archive.
Transfer Equation FunctionsHandling Channel No Value states
• Function: ‘handleNoValue([?chanVal], defaultVal )’Description: Assigns a fixed value to a channel that equates to no value.Example:
UIE_1_Fault = handleNoValue([?\\Local\UIE Module 1\Device Communications], true);UIE_2_Fault = handleNoValue([?\\Local\UIE Module 2\Device Communications], true);UIE_3_Fault = handleNoValue([?\\Local\UIE Module 3\Device Communications], true);
if( UIE_1_Fault || UIE_2_Fault || UIE_3_Fault) true;else false;
Note: This example would set the value of the channel to true if any of the UIE modules have a Device Communications alarm or if they are disabled.
• Function: ‘abortWithNoValue()’Description: Aborts processing of a User Defined Equation and assigns ‘No Value’ to the channel.Example:
voltage = handleNoValue([?\\Local\Generator 1\Voltage Phase A-B], 999999);
if( voltage = = 999999)abortWithNoValue();
if( [\\Local\Generator 1\Voltage Phase A-B] < 400 ) disarmDevice([\\Local\AC 1]);else rearmDevice([\\Local\AC 1]);
Note: This example would abort the equation if the Voltage Phase A-B channel has no value.
Transfer Equation FunctionsBit Manipulation
Bits within a variable or analog channel are often used to store multiple pieces of information that may or may not be related.
Examples:• In a communications protocol alarm or status states are often bit packed into a value
because it’s a more efficient method for storage and transmission of the information. • Foreseer AC Control uses a bit packed variable for each AC Zone to determine which
AC’s are to be on or off. These variables are manipulated based on conditions of the AC’s and the control scheme.
Each bit has a position and a weight. • The position or bit number starts at zero and increments one counting from the right. • The ‘weight’ is the binary value of the bit 1, 2, 4 etc. By adding together all of the ‘1’
bits you reach the value of the variable. In the example below the decimal value is 105.
Transfer Equation FunctionssetBit, clearBit, checkBit
• Function: ‘setBit(n)’Description: Sets Bit ‘n’ of a channel or variableExample: (assumes x = 2 prior to equation)
a = setBit(3) (result = 8)x += setBit(3) (result = 10)
• Function: ‘clearBit(n, var)’Description: Clears Bit ‘n’ of a channel or variableExample: (assumes x = 10 prior to equation)
clearBit(1, x) (result = 8)
• Function: ‘checkBit(n, var)’Description: Returns the status of bit ‘n’ of a channel or variableExample: (assumes x = 2 prior to equation)
a = checkBit(3, x) (result = false)a = checkBit(1, x) (result = true)
Transfer Equation FunctionsControl Functions
• Control interface • Currently only available with thick client • Supports three types of control points:
• tri-state control, digital (two-state), set-point control.
• User permissions• Added to protect the controls from unauthorized users
• Change User Defined Equations
• Change Control Points
Transfer Equation FunctionsControl Functions – Setpoint Control
Setpoint: Used to manipulate the value of an analog channel between a pre-defined minimum and maximum value. Example usage would be to control the temperature setpoint of an Air Conditioner.
• Variable name:_SETPOINT_ the current setpoint value
• Comment fields:_CAPTION_ a single line of text to be displayed at the top of the dialog_MIN_ the minimum allowed set-point value_MAX_ the maximum allowed set-point value_FLOAT_ the set-point value is a floating point number
• Example:_SETPOINT_ = 72;////_CAPTION_=”AC 1 Temperature Setpoint”//_MIN_=66//_MAX_=80//[Sales Demo\Liebert AC 1\M_Temperature Setpoint] = _SETPOINT__SETPOINT_
• As shown on the thick Client -
Transfer Equation FunctionsControl Functions – Digital Control
Digital: Used to manipulate the value of a digital channel between true and false. Example uses would be on/off (direct device control), enable/disable (enable or disable a control function or process), reset/idle (used to reset a process to a known state).
• Variable name:_TWOSTATE_ the current control point state (0 or 1)
• Comment fields:_CAPTION_ a single line of text to be displayed at the top of the dialog_TITLE0_ the label of the radio button for state 0_TITLE1_ the label of the radio button for state 1
• Example:_TWOSTATE_ = 1;////_CAPTION_=”Rotation Enabled”//_TITLE0_=”No”//_TITLE1_=”Yes”//_TWOSTATE_
• As shown on the thick Client -
Transfer Equation FunctionsControl Functions – Tri-State Control
Tri-State: Used to manipulate the value of an analog channel between 0, 1, and 2. Example use would be On-Off-Auto for manual override of a device normally controlled by a process (auto).
• Variable name:_TRISTATE_ the current control point state (0, 1 or 2)
• Comment fields:_CAPTION_ a single line of text to be displayed at the top of the dialog_TITLE0_ the label of the radio button for state 0_TITLE1_ the label of the radio button for state 1_TITLE2_ the label of the radio button for state 2
• Example:_TRISTATE_ = 1;////_CAPTION_=”AC 1 Override Control”//_TITLE0_=”Manual Override: Off”//_TITLE1_=”Auto”//_TITLE2_=”Manual Override: On”//_TRISTATE_
• As shown on the thick Client -
Transfer Equation FunctionsControl Functions – Tri-State Control
A format option has been implemented on the channel value object (thick client only) that allows some fixed strings to be used for the values of a tri-state control.
• Off, On, Auto• Disabled, Enabled, Auto• Stop, Start, Auto• Off, Low, High• Off, Auto, On• Disabled, Auto, Enabled• Stop, Auto, Start• Closed, Open, Auto• Closed, Auto, Open• Off, Standby, On
Transfer Equation FunctionsExercises
1. kWH with monthly reset
2. % Out of spec with weekly reset
3. Decode bits to a text channel
4. Disarm meter when generator not running
5. Current Imbalance
6. Run time remaining
7. Debugging
© 2007 Eaton Corporation. All rights reserved.
Questions??