Table of Contents
np_type - AccelNET NPtypes
Each NPtype operates is
two possible ways.
If Label and RefName are NULL the rule works one way.
If Label and RefName point to a valid AccelNET parameter the rule works
another way.
The descriptions below list the behavior for each case.
If the
rule description is preceeded by "null:" then it describes the case where
the Label and RefName are NULL.
If the rule description is preceeded by
"parm:" then it describes the case where the Label and RefName point to
a valid AccelNET parameter.
In the descriptions below V is the accumulator,
Scale is the scale field from the NUMPOINT record and data_point is the
value of the AccelNET parameter referenced by the Label and RefName.
- add - addition
null: V += Scale
parm: V += data_point * Scale
- sub - subtraction
null: V -= Scale
parm: V -= data_point * Scale
- mult - multiplication
null: V *= Scale
parm: V *= data_point * Scale
- div - division
null: V /= Scale
parm: V /= data_point * Scale
if Scale == 0 then V = 0 (avoid an exception)
- abs - absolute value
null: V = fabs(V * Scale)
parm: V = fabs(data_point * Scale)
- pow - raise to a power
null: V = pow(V, Scale)
parm: V = pow(V, data_point * Scale)
- pow2 - raise to a power
null: V = pow(Scale, V)
parm: V = pow(data_point * Scale, V)
- ln - natural log
null: V = log(V * Scale)
parm: V = log(data_point * Scale)
- log - common log
null: V = log10(V * Scale)
parm: V = log10(data_point * Scale)
- mod_E - extract exponent
null: modf(V * Scale, E); V = E;
parm: modf(data_point * Scale, E); V = E;
- mod_R - extract remainder
null: V = modf(V * Scale, E)
parm: V = modf(data_point * Scale, E)
- sin - sine
null: V = sin(V * Scale)
parm: V = sin(data_point * Scale)
- cos - cosine
null: V = cos(V * Scale)
parm: V = cos(data_point * Scale)
- tan - tangent
null: V = tan(V * Scale)
parm: V = tan(data_point * Scale)
- asin - arc sine
null: V = asin(V * Scale)
parm: V = asin(data_point * Scale)
- acos - arc cosine
null: V = acos(V * Scale)
parm: V = acos(data_point * Scale)
- atan - arc tangent
null: V = atan(V * Scale)
parm: V = atan(data_point * Scale)
- load - load a value
null: V = Scale
parm: V = data_point * Scale
- or - OR function
null: V = V
parm: V = (V | (data_point << Scale)
the 2nd rule is suspect and may be changed - rlk 8/23/2000
- gate - gating function
if (V == Scale) then NLdatapoint = V
This allows one datapoint to be copied
to another using a third datapoint as a switch.
One use is for copying
a Faraday cup CR value to a CRsave datapoint using a nop/chg datapoint.
The numeric chain is traversed until a gate function is found. If the gate
function is true i.e. V == Scale then the gate function is asserted i.e. the
value of the accumulator is copied to the output datapoint and traversal
of the chain ends.
This allows one of a set of datapoints to be switched
into an output datapoint using a datapoint as a control to select which
one to copy.
- add_S1 - add to subtotal 1
See the add function above.
- sub_S1 - sub to subtotal 1
See the sub function above.
- mult_S1 - mult to subtotal 1
See the mult function above.
- div_S1 - div to subtotal 1
See the div function above.
- abs_S1 - absolute to subtotal 1
See the abs function above.
- pow_S1 - raise to a power subtotal 1
See the pow function above.
- pow2_S1 - raise to a power subtotal 1
See the pow2 function above.
- ln_S1 - natural log
See the ln function above.
- log_S1 - common log
See the log function above.
- mod_E_S1 - exponent
See the mod_E function above.
- mod_R_S1 - remainder
See the mod_R function above.
- sin_S1 - sine
See the sin function above.
- cos_S1 - cosine
See the cos function above.
- tan_S1 - tangent
See the tan function above.
- asin_S1 - arc sine
See the asin function above.
- acos_S1 - arc cosine
See the acos function above.
- atan_S1 - arc tangent
See the atan function above.
- load_S1 - load value
See the load function above.
- t_add_S1 - add subtotal to main total
total += subtotal 1, clr S1
- t_sub_S1 - subtract subtotal from main total
total -= subtotal 1, clr S1
- t_mul_S1 - multply main total by subtotal
total *= subtotal 1, clr S1
- t_div_S1 - divide main total by subtotal
total /= subtotal 1, clr S1
These functions codes
behave exactly the same as the _S1 counterparts except that they use subtotal
2.
- add_S2
- sub_S2
- mult_S2
- div_S2
- abs_S2
- pow_S2
- pow2_S2
- ln_S2
- log_S2
- mod_E_S2
- mod_R_S2
- sin_S2
- cos_S2
- tan_S2
- asin_S2
- acos_S2
- atan_S2
- load_S2
- t_add_S2
- t_sub_S2
- t_mul_S2
- t_div_S2
-
These functions codes behave exactly the same
as the _S1 counterparts except that they use subtotal 3.
- add_S3
- sub_S3
- mult_S3
- div_S3
- abs_S3
- pow_S3
- pow2_S3
- ln_S3
- log_S3
- mod_E_S3
- mod_R_S3
- sin_S3
- cos_S3
- tan_S3
- asin_S3
- acos_S3
- atan_S3
- load_S3
- t_add_S3
- t_sub_S3
- t_mul_S2
- t_div_S3
-
These functions codes behave exactly the same
as the _S1 counterparts except that they use subtotal 4.
- add_S4
- sub_S4
- mult_S4
- div_S4
- abs_S4
- pow_S4
- pow2_S4
- ln_S4
- log_S4
- mod_E_S4
- mod_R_S4
- sin_S4
- cos_S4
- tan_S4
- asin_S4
- acos_S4
- atan_S4
- load_S4
- t_add_S4
- t_sub_S4
- t_mul_S4
- t_div_S4
-
$Id: np_type.7,v 1.4 2009/11/02 20:36:48 kitchen Exp
$
Table of Contents