View
216
Download
0
Embed Size (px)
Citation preview
DevNet Unplugged 2002 “Express Your Innovations” 1
Develop Efficiently and Consistentlywith PI ACE
Advanced Computing Engine
Martin Jetté, [email protected]
OSI Developers Network
Copyright © 2002 OSI Software, Inc. All rights reserved.
DevNet Unplugged 2002 “Express Your Innovations” 2
ACE applications
PI Universal Data Server
• Data filtering • Engineering calculations• Financial calculations• K.P.I.• Communication (e.g., paging, emailing, etc.)• Data transfer
PI-PE Subsystem PI-ACE
DevNet Unplugged 2002 “Express Your Innovations” 3
Advantages of using ACE for your applications
• ACE structure helps organize computations (EXE files, modules, contexts)
• ACE computations can be deployed in a distributed environment
• ACE can use tags from different PI servers• ACE can perform several computations in the
same module (no need to ‘cascade’ equations)• Comments are easily added to the VB code
DevNet Unplugged 2002 “Express Your Innovations” 4
Advantages of using ACE for your applications
• Natural triggering - can use multiple input tags for computation triggering
• Can debug and test the equation interactively• Can stop and restart independently any EXE,
module or context• Built in data filtering, clamping and substitution• Several logging levels and options• Advanced programming functions are available
(For… Next loops, Cases, external libraries, iterative computations,…)
DevNet Unplugged 2002 “Express Your Innovations” 5
Advantages of using ACE for your applications
ACE is "module database aware”– Calculations can easily be re-implemented on other pieces of
equipment simply by assigning a new context (PI Module) for that calculation.
– You can exploit the scalability of PI Properties and PI Aliases collection of a PI Module with for/each loops. Computation can be reconfigured simply by editing the PI Module database.
'where mymodule contains an unknown number'of temperature aliasesFor Each MyAlias in mymodule.aliases
temp = temp + MyAlias.datasource.data.snapshotc = c+1
Next MyAliasAvgtemp = temp / c
DevNet Unplugged 2002 “Express Your Innovations” 6
PI Module Database - Refresher• The PI Module Database is a hierarchical Database
with Historical capability and much more– Released with PI Universal Data Server 3.3 April 2001– Integrated to our Archive Database, PI Batch Database and PI
Transfer Record Database– Scalable– Secure– ActiveX based development tools to access the PI Module
Database. (PI-SDK)• The PI Module database is an organized/hierarchical
collection of PI Modules.• The PI Module Database adds structure and relation to
your data– TAGNAME, TIMESTAMP, VALUE ???
DevNet Unplugged 2002 “Express Your Innovations” 7
PI ModuleDB – Physical Model
Division
Location
Unit
Department
Equipment
Equipment Class
EnterpriseThe structure of the PI ModuleDB allows the information to be stored hierarchically in relation to a physical model, a business model or an application model .
DevNet Unplugged 2002 “Express Your Innovations” 8
PI ModuleDB - Business modelThe ModuleDB hierarchy can be used to organize a group of modules in multiple ways on your PI Server. Since you can insert Module links anywhere in the ModuleDB structure, you may want to allow users to choose from several different navigational paths to access information from a particular plant.
All Sites Business groups Regional Divisions
DevNet Unplugged 2002 “Express Your Innovations” 9
PI ModuleDB - Application model
• PI ModuleDB can provide a structure at the server level for organizing your PI application settings.
• PI ModuleDB can be used as a registry for your PI applications.
• PI tools using PI ModuleDB: PI ACE, PI ICU, PI BatchView 3, PI ModuleDB Editor, PI RTSQC, Process Templates,…
DevNet Unplugged 2002 “Express Your Innovations” 10
PI Module Characteristics
• Each module has:– Configurable information about itself - PIProperties– Linked tags - PIAliases– Dated versions - Revision number, Version number,
EffectiveDate and ObsoleteDate– System assigned information – UniqueID, Owner, Parent
list,…– Submodules with the same characteristics - PIModules
DevNet Unplugged 2002 “Express Your Innovations” 11
PIProperties• The PIProperties are collection of named values that can
store information related to a PI module• A PIProperty has a name and a value that can be almost
any type: string, numeric, date,…• PIProperties are used to store information about a
module, example:– Serial number– Installation date– Name of the technician that performed the installation
• The PI ModuleDB lets you keep history of changes in properties– Note: We recommend to use tags to archive high frequency
changing properties > 1 week rather than PI Properties
DevNet Unplugged 2002 “Express Your Innovations” 12
Module Properties• PIProperties are hierarchical
DevNet Unplugged 2002 “Express Your Innovations” 13
PIAliases
• PIAliases let you configure common names to access real time information => PI tags
DevNet Unplugged 2002 “Express Your Innovations” 14
PIAliases
Temperature identification without aliases
RX:TC143.PV RX:TC144.PV RX:TC145.PV RX:TC146.PV
Temperature identification with aliases
Temperature Temperature Temperature TemperatureReactor1 Reactor 2 Reactor 3 Reactor 4
Reactor1 Reactor 2 Reactor 3 Reactor 4
DevNet Unplugged 2002 “Express Your Innovations” 15
Versions and Revisions
• Each PI Module has a set of properties to control versioning :– EffectiveDate : Date when the module was put into
service (12/31/1969 7:00:01 by default)– ObsoleteDate : Out of service date– Version number : Let you keep track of major changes in
the configuration of your modules– Revision number : lets you keep track of minor changes
to modules Modify a propriety or alias Rename a module Change effective date…
DevNet Unplugged 2002 “Express Your Innovations” 16
Track History of Changes to Modules• The information in a module is kept throughout time, so it is possible to
look at a module to see its configuration back in time.
DevNet Unplugged 2002 “Express Your Innovations” 17
• ACE Wizard (Visual Basic Add-In)– A wizard for setting up, testing, and scheduling
calculations– All PI API and PI SDK code is provided behind the
scenes
• ACE Manager– Control panel for starting and stopping calculations– Provides means for assigning a calculation to Modules
• ACE Scheduler– Coordinates execution of calculation
The Three Parts of ACE
DevNet Unplugged 2002 “Express Your Innovations” 18
ACE Scheduler
ACE VBWizard
ACE Manager
DevNet Unplugged 2002 “Express Your Innovations” 19
Structure of ACE Modules
ACE Executable 1
ACE Module 1
ACE Module N
ACE Executable M
ACE Executables
ACE Context 1
ACE Context K
Information stored in PI ModuleDB
ACE EXE file
DevNet Unplugged 2002 “Express Your Innovations” 20
Example 1 My First ACE Computation
DevNet Unplugged 2002 “Express Your Innovations” 21
ACE Wizard (VB Add-in)Step 1 : Defining Input and Outputs
Either PI Tags or Module aliases may be used.
PI ACE will create output tags if they don’t already exist.
DevNet Unplugged 2002 “Express Your Innovations” 22
• Rich development environment
• COM servers
– Formula library
– Steam functions
• PI tags as ACE objects
– Methods
– Properties
• ACE built-in functions
Step 2 : Writing Your Calculation
ACE Wizard (VB Add-in)
DevNet Unplugged 2002 “Express Your Innovations” 23
Step 3 : Debugging Your Calculation
The Visual Basic debugger can be used to check calculation, step-by-step.
Waving the cursor over variables will show their values.
ACE Wizard (VB Add-in)
DevNet Unplugged 2002 “Express Your Innovations” 24
Step 4 : Testing Your Calculation
PI ACE provides additional testing under various conditions that may occur during real time execution.
ACE Wizard (VB Add-in)
DevNet Unplugged 2002 “Express Your Innovations” 25
Step 5 : Scheduling Your Calculation
Natural Scheduling
Timed Scheduling
ACE Wizard (VB Add-in)
DevNet Unplugged 2002 “Express Your Innovations” 26
ACE Manager• Monitor ACE Modules• Modify calculation status of ACE Modules
– Take out of service– Resume– Delete
• Edit scheduling information• Edit tag options (clamping and substitution)• Define the scheduling of a calculation and the PI
module (if any) associated with it. – This is a “context”
• Copy structural information of ACE Modules from one PI server to another
DevNet Unplugged 2002 “Express Your Innovations” 27
DevNet Unplugged 2002 “Express Your Innovations” 28
ACE Scheduler
• A Windows NT/2000 service
– Communicates with the default PI Server for the
computer where the ACE Scheduler is installed.
– Periodically checks for changes in the ACE
configuration information. • For example, after a context for an ACE Module is
successfully registered or added (via the ACE Wizard or
ACE Manager), the ACE Scheduler would automatically
start the ACE Context (i.e., the ACE Module with the
specified context). The status for the context becomes
"On" if successful and "Error" otherwise.
DevNet Unplugged 2002 “Express Your Innovations” 29
Example 2 Energy Calculation
DevNet Unplugged 2002 “Express Your Innovations” 30
Steam functions
• Steam tables are accessible for PE and ACE
• The steam functions calculate the thermodynamic
properties of a stream.
• These functions are derived from the software
distribution of ASME's Steam Tables, 6th Edition. The
functions support both English units and SI units.
• The PISteamTableFunctions.dll is not included
automatically in the references for new ACE project
(EXE).
DevNet Unplugged 2002 “Express Your Innovations” 31
Steam functions
• 24 different functions for both English
and SI units: StmEng_xxx or StmSI_xxx
• Examples
– StmSI_VPS(P, S) calculates the vapor specific
volume as a function of pressure and entropy. Use
for both superheated or wet steam.
– StmEng_VsatP(P) calculates the saturated vapor
specific volume as a function of pressure
DevNet Unplugged 2002 “Express Your Innovations” 32
Steam Functions - Example
DevNet Unplugged 2002 “Express Your Innovations” 33
Steam Functions - Example
DevNet Unplugged 2002 “Express Your Innovations” 34
Steam Functions - Example
DevNet Unplugged 2002 “Express Your Innovations” 35
Example 3 The Power of Multiple contexts using the PI Module Database
Deploy quickly a consistent set computations across the enterprise.
DevNet Unplugged 2002 “Express Your Innovations” 36
Flow compensation example
DevNet Unplugged 2002 “Express Your Innovations” 37
Example 4 DevNet Email Notifier
(available soon)
This download will be available in 2 flavors:a) Simple one line function call (.Bas include file)
b) Module database aware alarm engine
DevNet Unplugged 2002 “Express Your Innovations” 38
A – Single function callThis function sends an email. Prerequisites:• Include DevNetEmail.Bas file to your ACE project• Make reference to the Microsoft CDO for Exchange 2000 Library or
the Microsoft CDO for Windows 2000 library
Function SendMessage(strMsg As String, strSubject _ As String, strMailingList As String, strMailingCC As _ String, strSMTPServer As String, strFrom As String)_ As Boolean
Parameter Description
strMsg (passed) This is the message that appears in the email body
StrSubject (passed) This is the subject of the email message
strMailingList (passed) List of email addresses to send the message
strMailingCC (passed) List of email addresses (carbon copy) to send the message
strSMTPServer (passed)
SMTP server to be used for the email message delivery
strFROM (passed) Email address of the sender
DevNet Unplugged 2002 “Express Your Innovations” 39
B – Module Database aware Alarm engine
Key features:• Send automatically an email message for HIGH and LOW
alarms• Alarm level are configurable via the PI Module database
properties• Alarms can be triggered via snapshot data or summary
calculations• Configurable Alarm repeat delay• The addition of new Alarms are automatically picked up by
PI ACE (no stopping and starting of ACE computation simply add a PI module with the corresponding properties)
DevNet Unplugged 2002 “Express Your Innovations” 40