2 Index .......................................................................................................................................20
Calculation Serve
Remote Automation Solutions
Website: www.EmersonProcess.com/Remote
Reference Guide
r
D301483X412
23-Feb-2010 - Page 4
Calculation Serve
Remote Automation Solutions
Website: www.EmersonProcess.com/Remote
Reference Guide
r
D301483X412
23-Feb-2010 - Page 5
Calculation Serve
1 Calculation Server
1.1 Calculation Server Overview
The OpenEnterprise Calculation Server executes calculations and runs applications (executables and
Windows command files). Calculations can be run on a timed basis, at user request and follo wing a
signal value change. Calculations can also be chained together to form a squence of calcul ations.
Its main use is to run programmable calculations to be performed on data from the OpenEnterprise
Server Database. The Server Side Calculation DLL, provided with OpenEnterprise should be
sufficient for most calculation requirements.
However, user defined calculations can be written in any language that can access the Calculation
Server's Calculation and OECalculationUtils interfaces, such as Visual C++ or Visual BASIC.
1.2 Calculation Components Diagram
1.2.1 Calculation Components Diagram
This is a diagram of how diary triggered calculations are managed within OpenEnterprise. The
Scheduler notifies the Calculation server that it is time to run a calculation. The Calculation server
runs the DLL specified for the calculation, which reads and/or writes the necessary values to the
Database.
1.2.2 The Database
Calculations can access the data in the database and update values according to the algorith ms
employed by the calculation program and user provided 'arguments'.
Remote Automation Solutions
Website: www.EmersonProcess.com/Remote
Reference Guide
r
D301483X412
23-Feb-2010 - Page 6
The database stores calculation configuration details in the Calculation table. The Calculation table
contains the name of each calculation, the time when the calculation will run, whether it should use a
diary or attribute triggers, and any optional command line parameters that will be passed to the
calculation.
The calculations are scheduled (triggered) by the Scheduler or internally by the database if using
attribute triggers.
It is the Calculation Server that actually runs the calculations.
Calculation Serve
1.2.3 The Scheduler
The OpenEnterprise Scheduler is the component that is used to trigger calculations based on a diary.
When the diary time is due, the Scheduler sets the 'due' attribute of the calculation that is using the
diary to 'True', which activates the Calculation Server to run the calculation.
1.2.4 The Calculation Server
The Calculation Server is a component that is used to run calculations. It sources all of its
configuration data from the Database's Calculation table. The Calculation table's 'Calculate' attribute
is monitored to determine when to run a calculation. The Calculation Server itself performs no
calculation scheduling.
The Calculation Server uses the Server Security component to logon to the database.
1.2.5 Calculation Interface
The Calculation interface is defined by the Calculation Server for the use of ActiveX DLL calculations.
The ActiveX DLL will implement the Calculation interface. When browsing with Visual Basic this
interface will be seen as 'CalculationServer.Calculation'.
The interface simply consists of a single method, Execute. The Visual BASIC calculation will
implement the Execute method by placing the calculation specific code within the body of the Execute
method. Note that the Execute method must be implemented as a synchronous method. Once the
Execute method returns, the Calculation Server will deem the calculation as complete.
1.2.5.1 Properties
There are
1.2.5.2 Methods
The Execute
long Execute(
VARIANT FAR* Arg1,
VARIANT FAR* Arg2,
currently no properties declared.
method is defined as follows.
VARIANT FAR* Arg3)
The return value for the Execute function should indicate the status of the calculation. The following
rules should be used when returning a status code.
Remote Automation Solutions
Website: www.EmersonProcess.com/Remote
Reference Guide
r
D301483X412
23-Feb-2010 - Page 7
Status CodeDescription
> 0 Application (calculation) specific error code.
0 Success
< 0 Internal error and status codes. Calculations
should not return a value less than zero.
Calculation Components Diagram
Calculation Serve
1.2.6 The Calculations
The OpenEnterprise Server Side Calculation DLL, which comes with the product is sophisticated
enough for most calculation needs. It also enables the user to specify Calculation arguments by
using the 'calculator' like Editor, which is part of the Calculation Configuration tool.
Those wishing to create their own calculations, should write them as ActiveX DLLs in Visual C++ or
Visual BASIC implementing the Calculation interface. A calculation may be set up to use the
OECalculationUtils or ODBC to interface with the database.
The Calculation Server will actually run any executable application. It can be used to run anything
(with the exception of an NT Service). For example, if the user wishes to run Microsoft® Excel to
generate and print a report on a scheduled basis then the Calculation Server will run Excel as the
target.
Of course, in order for the Server to find the executables, especially if they are DLLs, they must be
registered on the Server.
1.2.7 The OESyncAccessMDI
The OESynchAccessMDI is a component that runs on the OpenEnterprise Server and provides
methods to read and write to an OpenEnterprise database in a synchronous manner. When browsing
with Visual BASIC this interface will be seen as 'OpenEnterprise Synchronous database access'. As
an alternative to this interface, the OECalculationUtils interface can be used instead. Note that
OESynchAccessMDI uses the Server Security component to logon to the database.
1.2.7.1 OESynchAccess Interface
The OESynchAccess inte
1.2.7.1.1 Properties
Name DirectionData
DefaultTimeout [in] short The default timeout, specified in seconds,
DefaultNameIdentifier [in] BSTR Specifies the default name used to identify
DefaultNameIdentifierType [in] BSTR The data type of the
rface provides the following properties and methods .
Explanation
Type
applied to all synchronous database reads
and writes. Default 45 seconds.
a signal object within the database.
Default value is 'name'.
DefaultNameIdentifier. Default value is
'string'
Remote Automation Solutions
Website: www.EmersonProcess.com/Remote
Reference Guide
r
D301483X412
23-Feb-2010 - Page 8
DefaultDataService [in] BSTR The default database data service for all
database read and write requests. This by
default is 'rtrdb1'.
1.2.7.1.2 Methods
Method Name Return Value TypeTable Read from / Written to
ReadInteger(parameter list) long IntegerAnalog table
WriteInteger(parameter list) long IntegerAnalog table
ReadAnalog(parameter list) long RealAnalog table
WriteAnalog(parameter list) long RealAnalog table
ReadDigital(parameter list) long Digital table
WriteDigital(parameter list) long Digital table
ReadTime(parameter list) long Time table
WriteTime(parameter list) long Time table
ReadString(parameter list) long StringSignal table
WriteString(parameter list) long StringSignal table
Calculation Serve
These functions are used to read from and write values to the database. All the Read and Write calls
act, by default, on the corresponding signal tables. For example, the ReadInteger will default to
reading the readvalue from the IntegerAnalog table. A limitation of the calls is that they only support
objects that can be identified by a single attribute primary key. Composite primary keys are not
supported. Also, a single Read or Write will act on a single attribute only. In other words, a call to
ReadInteger can only retrieve the value of a single column.
Note that all the optional parameters, whilst they are all string attributes, are declared as VARIANTS
within an automation interface. This allows the value VT_ERROR to be passed as the value,
indicating the value has not been supplied by the call.
Calculation Components Diagram
Calculation Serve
1.2.8 ODBC
ODBC is the industry standard method of reading and writing data to remote data sources. It is also
one of the ways to interact with the Server database when writing a calculation using VB.
1.2.9 The OECalculationUtils Class Library
The OECalculationUtils Class Library provides an object based method of synchronously reading and
writing data to an OpenEnterprise database. When browsing Objects within Visual BASIC this
interface will be seen as 'OpenEnterprise Calculation Utilities'.
The OECalculationUtils Class Library uses the IOESynchAccess interface but wraps the interface into
an object- oriented design. The user can create attribute objects that can be used to query and
update the database multiple times.
1.2.9.1 OECalculationUtils Classes
Two mai
1.2.9.1.1 AttributeObject class
Obje
specific object. Thereafter it can be used to query and update that object's attribute value.
1.2.9.1.1.1 Properties
1. dataservice As Variant - data service of the database
2. tableName As Variant
3. attributeName As Variant
4. objectName As Variant
5. attributeType As OEDataTypes
6. ObjectIDName As Variant
7. ObjectIDType As OEDataTypes
8. Value As Variant - value last read or written
1.2.9.1.1.2 Methods
1. Initialise(
n classes are provided: AttributeObject and Utilities.
cts of the AttributeObject class can be created and initialized to reference a specific attribute of a
name As String, _
Optional tableName As String = "integeranalog", _
Optional attributeName As String = "value", _
Optional attributeType As OEDataTypes = OEReal, _
Remote Automation Solutions
Website: www.EmersonProcess.com/Remote
Reference Guide
r
D301483X412
23-Feb-2010 - Page 10
Optional objectName As String = "name", _
Optional objectType As OEDataTypes = OEString, _
Optional dataservice As String = "rtrdb1")
2. ReadValue() As Long
3. WriteValue() As Long
1.2.9.1.2 Utilities class
Calculation Serve
The Utility cla
1.2.9.1.2.1 Properties
1. DefaultDataService(ByVal vNewValue As Variant)
2. DefaultTimeout(ByVal vNewValue As Variant)
1.2.9.1.2.2 Methods
Sleep(seconds As Long) As Long
Cal
culation Components Diagram
ss object provides the following utility properties and methods.
1.3 Starting the Calculation Components
1.3.1 Starting the Calculation Server
If calculations are going to be used, the Calculation Server should be started by the Session Manager
as part of an OpenEnterprise Server Session. To edit the Calculation Server task, select it from the
task list in the Session Manager's interface. Then select the Stop option from the context menu. When
the task has stopped select the Properties option from the same context menu. This will open the
Task Properties dialog.
On the Task page of this dialog, the following command line options should be provided in the
'Program Arguments' field.
This optio
configuration. If it is not present, then the Calculation Server will not connect to any dataservice.
1.3.1.1.2 ServerID
Optional p
Servers from the same Calculation table (database). E.g. ServerID=HOSTA.
n is mandatory. It specifies the data service of the database that holds the calculation
arameter. Specifies the ID of the Calculation Server when supporting multiple Calculation
re:Starting the
Remote Automation Solutions
Website: www.EmersonProcess.com/Remote
Reference Guide
r
D301483X412
23-Feb-2010 - Page 11
Calculation Serve
1.3.2 Starting the Calculation Server
If calculations are going to be used, the Calculation Server should be started by the Session Manager
as part of an OpenEnterprise Server Session. To edit the Calculation Server task, select it from the
task list in the Session Manager's interface. Then select the Stop option from the context menu. When
the task has stopped select the Properties option from the same context menu. This will open the
Task Properties dialog.
On the Task page of this dialog, the following command line options should be provided in the
'Program Arguments' field.
This optio
configuration. If it is not present, then the Calculation Server will not connect to any dataservice.
1.3.2.1.2 ServerID
Optional p
Servers from the same Calculation table (database). E.g. ServerID=HOSTA.
n is mandatory. It specifies the data service of the database that holds the calculation
arameter. Specifies the ID of the Calculation Server when supporting multiple Calculation
re:Starting the
1.3.3 Starting the OESyncAccessMDI
It is recommended that you start the OESynchAccessMDI component as part of an OpenEnterprise
Server Session so it will already be connected to the database when the first calculation is run. To
edit the OESynchAccessMDI task, select it from the task list in the Session Manager's interface. Then
select the Stop option from the context menu. When the task has stopped select the Properties option
from the same context menu. This will open the Task Properties dialog.
On the Task page of this dialog, the following command line options should be provided in the
'Program Arguments' field.
Program Arguments
OESynchAccessMDI [/DataService=<dataservice>]
Where:
DataService
Specifies the data service of the database that holds the calculation configuration. If not
present the default will be rtrdb1.E.g. DataService=rtrdb1
Remote Automation Solutions
Website: www.EmersonProcess.com/Remote
Reference Guide
r
D301483X412
23-Feb-2010 - Page 12
Calculation Serve
1.4 Configuring a Calculation
1.4.1 Configuring a Calculation
Configuration of Calculations is best done using the Calculation Config Tool, found within the Toolbox.
Calculations created with the tool are inserted into the calculation_table.
The Configuration tool provides access to all of the methods of running and controlling calculat ions.
However, the topics listed below give further insight into the attributes of the calculation table that are
used to control and trouble shoot calculations. The Status Codes are particularly useful in tracking
down problems.
• Temporarily Stopping a Calculation
• Monitoring the Status of a Calculation
• Specifying Calculation Arguments
• Running a Calculation
• Executing a Calculation When an Alarm Occurs
• Calculation Cascading
• Status Codes
1.4.2 Temporarily Stopping a Calculation
Set the calculation's Disable attribute to TRUE. To resume the calculations set the Disable attribute to
FALSE.
1.4.3 Monitoring the Status of a Calculation
The following attributes can be used to monitor a calculation. Status, Disable, LastDueTime,
LastCalculateTime and CompletionTime.
1.4.4 Specifying Calculation Arguments
The Calculation Configuration tool provides a Calculation Editor for use with the product's own Server
Side Calculation DLL, which will meet most needs. However, user defined calculations can optionally
be passed arguments by typing them directly into the 'Arguments' field on the Action Details dialog of
the Configuration tool. The Calculation Server treats command line arguments differently for an
ActiveX DLL and an EXE calculation.
1.4.4.1 ActiveX DLL
An ActiveX DLL that imple
command line parameters. When specifying the Calculation.Args attribute the arguments should be
specified as a comma separated list.
For example,
ments the Execute method can be configured to receive up to three
Remote Automation Solutions
Website: www.EmersonProcess.com/Remote
Reference Guide
r
D301483X412
23-Feb-2010 - Page 13
Args = 'Argument1'
...will set Execute.Arg1 to "Argument1". Arg2 and Arg3 will have the value VT_EMPTY.
Args = 'Argument1,Argument2'
...will set Execute.Arg1 to "Argument1" and Arg2 to "Argument2". Arg3 will have the value
VT_EMPTY.
1.4.4.1.1 Executable
Calculation Serve
An Executabl
and hence only has meaning to the calculation itself.
The calculation EXE will be invoked as follows:
<Calculation.ProgramID> <Calculation.Args>
For example:-
ProgramID = 'C:\MyApps\Calculation.exe'
Args = 'Argument1 Argument2' Will be invoked as
C:\MyApps\Calculation.exe Argument1 Argument2
Database Configuration
e calculation can be passed any number of arguments as the argument list is parsed
1.4.5 Running a Calculation
A calculation can be triggered or run from a Diary, from one or more attribute triggers, or manually.
1.4.5.1 Diary
To run the
attribute.
1.4.5.2 Attribute Trigger
calculation from a Diary specify the appropriate diary name in the Calculation.Diary
A calcul
Tool for information on how to configure attribute triggers the easy way. Attribute triggers can be
configured such that a calculation will run whenever a given attribute within a given object changes
value. Note that the calculation will always be triggered for every change to the attribute trigger's
value. It is recommended to use the MinimumInterval attribute if there are concerns about the
calculation running too frequently.
Also note that attribute triggers can only be placed on objects within the local database. Remo te
attribute triggers are not supported.
The following is an example SQL statement showing how an attribute trigger could be configured
using the SQL Client:-
INSERT INTO realanalogsignaltrigger_table(id,calculationname,objectvalue)
VALUES (0, 'Calculation1', 'REAL.ANALOG.1');
ation can be triggered by one or more attribute triggers. See the Calculation Configuration
Remote Automation Solutions
Website: www.EmersonProcess.com/Remote
Reference Guide
r
D301483X412
23-Feb-2010 - Page 14
This will result in the Calculation1 running for every change in the RealAnalog.Value of the
RealAnalog object whose name is REAL.ANALOG.1. Calculationname should refer to the
Calculation.Name attribute of the calculation you want to run.
1.4.5.3 Manually
Calculation Serve
To run a
to TRUE.
Setting the Calculate attribute will always result in the Calculation Server running the calculation. This
is recommended for testing the calculation.
Setting the Due attribute will look at the Disable and MinimumInterval attributes before deciding
whether to trigger the calculation or not. This is recommended for normal running.
Database Configuration
calculation manually then, set either the Calculation.Calculate or Calculation.Due attributes
1.4.6 Executing a Calculation When an Alarm Occurs
An Alarm Action is defined as an action that is to be performed when an alarm occurs. Alarm actions
can be configured to run a Calculation.
Alarm action programs are configured on a per alarm condition basis. For NW3000 remote al arms a
signal will only have a single alarm condition. Other signals may have more than one ala rm co ndition.
The base table for alarm conditions is the AlarmCondition_table whic h holds all the alarm action
configuration. However, in order to configure the appropriate alarm condition entries the user must
configure the derived alarm condition tables as these reference the source objects.
For example, with NW3000 remote alarms, the RealAnalogAlarmCondition and DigitalAlarmCondition
tables should be used when configuring alarm actions.
In order to configure an Alarm Action, the following attributes can be used.
ATTRIBUTE TYPE MEANING
AlarmAction STRING The name of the Calculation to run. This should reference a
calculation.name attribute.
AlarmActionOptions INTEGER Optional options to control how the AlarmAction is triggered.
The various bits refer to the following:
BIT0 - Set to 1 to trigger the AlarmAction when alarm is
updated to 'cleared'. Default behavior is to trigger alarm
actions only when an alarm condition is updated to 'not
cleared'.
BIT1 to 31 - Reserved for future use.
AlarmActionEnable BOOL Enable or disable the AlarmAction from being triggered.
TRUE - AlarmAction is enabled.FALSE - AlarmAction is
disabled.The default value is TRUE.
By default, Alarm Actions will only be triggered when an alarm condition is updated to 'not cleared'.
Remote Automation Solutions
Website: www.EmersonProcess.com/Remote
Reference Guide
r
D301483X412
23-Feb-2010 - Page 15
Calculation Serve
1.4.7 Configuring Calculation Cascades
Calculation cascades enable the completion of a calculation to automatically trigger another
calculation. This can be useful if a calculation requires another calculation to manipulate database
data before it can run itself.
Two Calculation_table attributes control calculation cascades, namely NextCalculation and
IgnoreCompletionStatus.
The NextCalculation attribute identifies the next calculation to run and refers to the name of the
calculation. When the current calculation completes successfully (Calculate = FALSE and Status = 0),
if the NextCalculation is not NULL then the calculation is located and triggered (Due = TRUE ). If the
next calculation should be run regardless of the completion status then the IgnoreCompletionStatus
should be set to TRUE.
1.4.8 Status Codes
All internally generated status codes are negative or zero. Application specific status code s should be
positive. Each calculation component has unique status codes within the following ranges.
General Code Ranges
RangeComponent
>= 1 Application specific.
0 General status code for Okay.
-1 to -99 Calculation CL.
-100 to -199 Calculation Server.
-200 to -299 OESynchAccessMDI
Some Individual status codes:
ValueMeaning
0 Okay.
-1 Calculation is currently running.
-2 No calculation has been supplied.
-3 The attribute is unrecognized. This error may occur when setting up an
attribute trigger for a calculation when the attribute does not exist.
-4 Failed to link to the attribute trigger. Check the parameters for the attribute
trigger.
-5 Not implemented.
-6 The minimum frequency for the calculation has been exceeded.
-7 The calculation is due but is already calculating.
-8 The calculation is disabled.
-100 The calculation is disabled.
-101 Not implemented.
Remote Automation Solutions
Website: www.EmersonProcess.com/Remote
Reference Guide
r
D301483X412
23-Feb-2010 - Page 16
-102 Unknown calculation type. The Calculation Server was unable to determin e
the calculation type (EXE, DLL or BAT).
-103 Failed to create thread.
-104 Invalid Program ID. The supplied ActiveX DLL program id could not be
converted to a Class ID. Check spelling and that the ActiveX DLL has been
registered successfully.
-105 ActiveX DLL does not support the unknown interface.
-106 ActiveX DLL does not implement the IOECalculation interface.
-107 ActiveX DLL does not implement the IOECalculation.Execute method.
-108 Failed to call the Execute function of the ActiveX DLL.
-109 Failed to create a process. Specific to EXE and Bat calculations.
-110 File does not exist.
-111 The path does not exist.
-112 Access denied.
-113 Argument list is too long.
-114 Bad file format.
-115 Not enough memory.
-200 Not implemented.
-201 Failed to connect to the database.
-202 Read error occurred.
-203 Data type mismatch.
-204 Write error occurred.
Calculation Serve
Database Configuration
1.4.9 Calculation DLLs
1.4.9.1 Writing a Calculation
These are the tasks required to write a calculation as a DLL using Visual BASIC.
Tasks
1. Create a new project using the ActiveX DLL template.
2. Choose "Project", "References" and select "OpenEnterprise Calculation Server" and
"OpenEnterprise Calculation Utilities".
3. Use the "Implements" keyword to implement the Calculation Server interface.
4. Declare the Execute function and use the OpenEnterprise Calculation Utilities classes,
methods and properties to interact with the database.
1.4.9.2 DLL Example Code
This exam
only if another signal allows the calculation:
ple reads two signal values, adds them together and writes the result to another signal, but
Remote Automation Solutions
Website: www.EmersonProcess.com/Remote
Reference Guide
r
D301483X412
23-Feb-2010 - Page 17
Option Explicit
Implements CalculationServer.Calculation
' declare an object so we can use the Calculation utilities (Sleep)
Dim Utils As New OECalculationUtils.Utilities
' declare the signal objects
Dim INPUT1 As New OECalculationUtils.AttributeObject
Dim INPUT2 As New OECalculationUtils.AttributeObject
Dim CONTROL As New OECalculationUtils.AttributeObject
Dim OUTPUT As New OECalculationUtils.AttributeObject
Private Sub Class_Initialize()
' place any specific initialisation here
Calculation Serve
End Sub
'this method is called by the calculation server to run the calculation
Public Function Calculation_Execute(
ByRef Arg1 As Variant, _
ByRef Arg2 As Variant, _
ByRef Arg3 As Variant) As Long
Dim error As Long
' setup the global exception handling
On Error GoTo Error_Label
' initialise the signal objects with name and table details
INPUT1.Initialise "Input.1.", "nw3000RealAnalog", "value", OEReal
INPUT2.Initialise "Input.2.", "nw3000RealAnalog", "value", OEReal
CONTROL.Initialise "Control..", "nw3000Digital", "value", OEBoolean
OUTPUT.Initialise "Output..", "nw3000RealAnalog", "value", OEReal
' read the control signal to see if we can proceed
error = CONTROL.ReadValue()
if ((error = 0) AND (CONTROL.Value)) Then
error = INPUT1.ReadValue()
Remote Automation Solutions
Website: www.EmersonProcess.com/Remote
Reference Guide
r
D301483X412
23-Feb-2010 - Page 18
error = INPUT2.ReadValue()
OUTPUT.Value = INPUT1.Value + INPUT2.Value
OUTPUT.WriteValue()
End If
' finish by storing the last error code (zero == success)
Calculation_Execute = error
Exit Function
Error_Label:
' capture the latest error value to send back to the calculation
Calculation_Execute = error
End Function
Calculation Serve
Private Sub Class_Terminate()
' delete the Calculation utilities object
Set Utils = Nothing
' now delete all the objects
Set INPUT1 = Nothing
Set INPUT2 = Nothing
Set CONTROL = Nothing
Set OUTPUT = Nothing
End Sub
1.5 Generating Calculation Alarms
The system can be optionally configured to generate alarms based on the Calculation.Status attribute.
By default, no alarms will be generated. Alarms are configured on a per calculation basis.
In order to generate an alarm for a given calculation, an entry needs to be created within the
CalculationStatusAlarmCondition_table.
For example, the following SQL statement will create an alarm condition for the calculation named
'Calculation1' using priority 252. The 'condition' value of 9 refers to a change of state alarm but is
ignored by the calculation alarm sub-system. The id field should always be set to zero:
INSERT INTO CalculationStatusAlarmCondition_Table (id,priority,condition
,name) VALUES (0, 252, 9, 'Calculation1');
Each configured calculation alarm can be either a control alarm or a monitor alarm. By default the
alarm will be a control alarm.
Remote Automation Solutions
Website: www.EmersonProcess.com/Remote
Reference Guide
r
D301483X412
23-Feb-2010 - Page 19
1.5.1.1.1.1 Control Alarms
A control al
failures and will not regenerate alarms, or update existing alarms, when the same error is continually
repeating.
For example, if the user has configured a calculation with a program id that does not exist then an
alarm will be generated when the calculation is first triggered to indicate Invalid Program ID. The next
time the calculation is triggered, if the program id is still invalid then no new alarm will be generated as
the previous alarm will still be current.
1.5.1.1.1.2 Monitor Alarms
A monitor ala
statuses. A monitor alarm should be used if you wish to record every running of the calculation. In
order to create a Monitor Alarm, when creating the alarm condition, the MonitorAlarm attribute must
be set to TRUE. By default its value is FALSE.
For example,
INSERT INTO CalculationStatusAlarmCondition_Table (id ,priority ,condition
,name, MonitorAlarm) values (0, 252, 9, 'Calculation1', TRUE);
arm is an intelligent alarm condition that will attempt to only generate alarms given actual
rm records all changes to the status attribute including all transient and non-alarm
Bristol, Inc., Bristol Babcock Ltd, Bristol Canada, BBI SA de CV and the Flow Computer Division , are wholly owned subsidiaries of Emerson Electric Co. doing business
as Remote Automation Solutions (“RAS”), a division of Emerson Process Management. ROC, FloBoss, ROCLINK, Bristol, Bristol Babcock, ControlWave, TeleFlow and
Helicoid are trademarks of RAS. AMS, PlantWeb and the PlantWeb logo are marks of Emerson Electric Co. The Emerson logo is a trademark and service mark of the
Emerson Electric Co. All other marks are property of their respective owners.
The contents of this publication are presented for informational purposes only. While every effort has been made to ensure informational accuracy, they are not to be
construed as warranties or guarantees, express or implied, regarding the products or services described herein or their use or applicability. RAS reserves the right to
modify or improve the designs or specifications of such products at any time without notice. All sales are governed by RAS’ terms and conditions which are available upon
request. RAS does not assume responsibility for the selection, use or maintenance of any product. Responsibility for proper selection, us e and maint en ance of any RAS
product remains solely with the purchaser and end-user.
Engineered and supported by:
Remote Automation Solutions,
Blackpole Road, Worcester, WR3 8YB, UK
Registered office: Meridian East, Leicester, LE19 1UX
Calculation Serve
Registered in England and Wales, Registration No. 00671801
VAT Reg No. GB 705 353 652
Emerson Process Management
Remote Automation Solutions
1100 Buckingham St
Watertown, CT 06795
T 1 (860) 945 2200
F 1 (860) 945 2278
www.EmersonProcess.com/Remote
binfo@EmersonProcess.com