Pi Batch Guide
Pi Batch Guide
Pi Batch Guide
User Guide
OSIsoft, LLC
777 Davis St., Suite 250
San Leandro, CA 94577 USA
Tel: (01) 510-297-5800
Fax: (01) 510-357-8136
Web: http://www.osisoft.com
Prerequisites for installing PI interfaces for batch and manufacturing execution systems
.................................................................................................................................5
Security overview for PI interfaces for batch and manufacturing execution systems........................................5
Create and configure the interface instance.................................................................................................... 6
PI Data server connectivity.............................................................................................................................. 7
Logging and error messages............................................................................................................................7
PI Interfaces for Batch and Manufacturing Execution Systems User Guide iii
Contents
Supported features.................................................................................................127
Note:
These interfaces are designed for recipes that constrain a unit to run only one unit
procedure at a time.
Two different models are used to describe batch processes. The equipment model describes
the physical equipment necessary to create a batch while the recipe model describes the
procedures that are performed during the execution of a recipe. There is no intrinsic or direct
relationship between the models. With the exception of arbitration events, journal files contain
only recipe model event information.
The S88 process model is composed of the following hierarchy:
• Procedure (recipe)
• Unit procedures
• Operations
• Phases
• Phase steps
• Phase states
Note:
According to the ISA S88.01 standard, procedures and unit procedures are optional. A
recipe can be composed solely of operations and phases.
The physical model is composed of the following equipment-oriented hierarchy:
• Enterprise
• Site
• Area
• Process cell
• Unit
• Equipment module
• Control module
The PI Batch Database does not use a strict S88 approach to describe or record batch data. Unit
procedures from the data source are mapped to PI UnitBatches. Only a single unit procedure
can be active in a unit at any given time, which restricts the configuration of recipes that can be
run by the batch execution system if batch data is to be captured by the interface in a reliable
and meaningful way. By contrast, event frames support parallel unit procedures natively.
You can configure interfaces to create PI tags and equipment (elements in PI AF or PI Units in
the PI Module Database) by defining templates, which specify the events that trigger creation
and configure how the tag or equipment item is to be created.
Related manuals:
For details about the format and contents of source data, refer to the documentation provided
by your batch execution system vendor.
• Verify that the PI Data Archive is running and that the PI Data server is accessible from the
computer where you intend to run the interface (the interface node).
• If you intended to generate event frames, make sure that the PI Asset Framework is running
and that the PI Asset server is accessible from the interface node.
• Ensure that the system time on all these computers is correct.
• Verify that your batch execution system is up and running and that the data source is
accessible from the interface node.
To install the interface, download and run its setup kit. By default, the interface is installed in
an interface-specific folder in the following location: %PIHOME%\Interfaces\
The interface installation directory contains all the files and folders required to configure and
run the interface, and includes example configurations.
The interface can run on the same computer as the BES or on a dedicated node. To avoid
affecting the performance of the PI Data Archive, do not install the interface on the PI Data
server. When installing the interface, reserve the C: drive for the operating system, and install
the interface on another drive.
If the data source is Microsoft SQL Server, you must install the Microsoft SQL Native Client on
the interface node. You can download the client from the MSDN web site. If the data source is
an Oracle database, you must install the corresponding version of Oracle Provider for OLE DB.
• PI Data Archive permissions (PI SMT: Browse to Security > Database Security)
◦ Database security: Enable read/write access for the PIPOINT table and read access for
PIBACKUP
◦ Point Database security: Set both PtSecurity and DataSecurity to read/write
◦ Enable read access to the active points
• PI Asset Framework permissions
◦ Database: read/write
◦ Categories: read
◦ Element: read/write
Procedure
1. On the Interface Selection tab, click Add Interface. The Interface Selection window opens.
2. Browse to the directory where the interface is installed and choose its executable file. For
example: C:\Program Files (x86)\PIPC\Interfaces\FTBInt\PIFTBInt.exe.
3. Save your entry, then click OK.
4. On the File Selection tab, browse to the INI file where you want to store templates.
The installer installs a sample INI file, named with a "_new" extension, which you can copy
and rename.
5. On the Server Information tab, specify settings for your PI servers.
If you intend to create event frames, check Create event frames and specify the PI Asset
server and AF database.
6. On the Source tab, configure the settings for the data source (the BES).
Note that you can configure multiple data sources for the same interface instance.
7. On the Templates tab, define templates for creating and updating PI tags, overriding
incoming batch data, and creating and updating batch properties or event frame attributes.
• PIBatch/Procedure
The PIBatch is the highest level recorded in the PI Batch Database (or as an event frame). Its
properties record general data such as the batch ID, recipe name and type, and so on. If a
recipe is composed solely of levels below the unit batch (for example, an operation- or
phase-level recipe), the interface generates parent batches and unit batches. The best way
for the interface to determine the precise start and end time for a unit batch is to use
equipment arbitration events, which record the time a unit was acquired or released. If the
BES does not support arbitration events, the interface uses unit batch start and end events,
which can be affected by the start and end of lower levels and are inherently less precise
than equipment acquisition events.
• PIUnitBatch/Unit Procedure
For each unit procedure that it reads from the data source, the interface creates a
PIUnitBatch or an equivalent event frame. The start and end times record the duration of
physical processing within a unit.
The PIUnitBatch or event frame properties contain the batch ID and procedure name as
recorded by the data source unless you override it by configuring a batch ID mask using PI
Event Frames Interface Manager (on the Batch Setup tab). When operation- or phase-level
recipes are run, the interface creates a parent unit batch, using the operation or phase name
as the procedure name.
• Phase/PISubBatch
For each phase that it reads from the data source, the interface creates a PISubBatch or an
equivalent event frame as a child of the parent operation-level object. For recipes that occur
below the unit batch level, the interface generates parent events.
• Phase State/PISubBatch
For each phase state that it reads from the data source, the interface creates a PISubBatch
or an equivalent event frame as a child of the parent phase-level object. The start of a new
phase state ends the previous phase state, except for the terminating COMPLETE, ABORTED
and STOPPED phase states.
Note:
No phase state data is available from an Emerson DeltaV Alarms & Events data source.
• Phase Step/PISubBatch
Phase steps are not S88-compliant and are implemented differently by BES vendors (some
vendors do not support them). By default, phase steps are not enabled. To enable phase
steps using PI Event Frames Interface Manager, go to the Batch Setup tab, select the Report
as step check box, and specify the strings recorded by the BES to indicate the start and end
of a phase step.
For each phase step that it reads from the data source, the interface creates a PISubBatch or
corresponding event frame as a child of the parent phase-state-level object. Phase steps are
always created beneath the first RUNNING phase state, regardless of whether the parent
phase state has ended. The first start event starts a phase step, and subsequent start events
for the same phase step are ignored. Likewise, the first end event ends a phase step, and
subsequent end events for the same phase step are ignored.
If the parent phase is not found, phase steps do not create higher-level procedures, unit
procedures, phase states or operations. If the phase step is not closed by an appropriate
closing event, it is closed by the end of the parent phase. Zero-duration phase steps are
ignored.
interface reads from the data source, you can configure a batch ID mask that extracts a
common substring of the incoming ID to be used as the batch ID. The mask must match a
contiguous substring from the incoming batch ID (that is, you cannot define a mask that
skips characters).
To configure the mask using PI Event Frame Interface Manager as follows: on the Batch
Setup tab, set the Batch ID mask field. Specify the mask using fixed text and the following
wildcards:
Wildcard Description
# Single digit numerical value, 0-9
@ Single alpha character, a-z, A-Z
? Any single symbol
! Repeat the previous mask symbol
* Any set of symbols
You can specify multiple masks as a comma-separated list. The interface uses the result
from the first mask that successfully generates a substring. If the interface cannot match the
mask to the data in the incoming field, the entire field is used.
Example: For the data source BatchID column that contains the text lot30112 /
90dev123 / 12345stp / ld567, the following table lists masks and results.
Mask Result Matches…
##### 30112 The first five contiguous digits.
The first matching substring is
used.
### 301 The first three contiguous
digits.
@@@##### lot30112 Five contiguous digits with
three contiguous characters and
the characters are placed before
the sequence of digits.
##@@@### 90dev123 Five contiguous digits with
three contiguous characters and
the characters are placed before
the third digit.
#####@@@ 12345stp Five contiguous digits with
three contiguous characters and
the characters are followed the
digits.
????? lot30 The first five characters,
regardless of type.
batch execution system, configure a dedicated interface instance and specify the same PI AF
linking element. The interface creates a consolidated set of references under the linking
element, which provides a consolidated view of all the related events from the different
batch execution systems.
For example, the following figure illustrates an event frame created based on a batch from
an Emerson DeltaV batch execution system. This event frame is referenced under a linking
element to an event frame created by a Werum PAS-X manufacturing execution system.
Other batch interface instances that are configured to use the same linking element create
references to their batches under the same link.
You can configure templates that map the source data to string, integer or float data types and
configure the format of the information to be written to the target. The precise format of the
events coming from the data source depends on the BES vendor. For detailed information,
refer to the vendor-specific topic.
When you define templates using the PI Event Frame Interface Manager, you can choose from
a list of supported placeholders. To use a placeholder in a field when editing a template, click
the Add Placeholder… button and choose the desired placeholder.
You can define placeholders that read data from PI tags when triggered by batch events. To
specify a tag-based placeholder, use the following syntax:
[Tag, Name="PI Tag Name", <comma-delimited list of parameters>]
For example:
total:[Tag, name="sinusoid", range="10d", func="TOTAL"]
Following are wildcards, which you can use to define a mask for template settings and
placeholders, to match incoming data and format data to be written to the PI System.
Wildcard Description
# Single digit numerical value, 0-9
@ Single alpha character, a-z, A-Z
? Any single symbol
! Repeat the previous mask symbol
* Any set of symbols
For example, to match any event that starts with "Repo", use the * wildcard as follows:
[EVENT, VALUE="Repo*"].
The interface supports a set of parameters that provide fine control over how incoming data is
parsed. These advanced parsing parameters can be used in all types of templates. To enable
you to incorporate these parsing parameters into a placeholder expression, the Build a
Placeholder dialog provides an Add Substring Parsing option.
If you specify parsing parameters for one or more placeholders and no matching data is found,
the entry is set to blank. The following table lists the parameters for parsing incoming data.
The names of parameters, placeholders, and value substrings are not case-sensitive.
Parameter Description
LBE=ʺsubstringʺ Defines the left bound of the target substring value. The
resulting substring does not include the specified
substring.
LBI=ʺsubstringʺ Defines the left bound of the target substring value. The
resulting substring includes the specified substring.
Parameter Description
RBE=ʺsubstringʺ Defines the right bound of the target substring value. The
resulting substring does not include the specified
substring.
RBI=ʺsubstringʺ Defines the right bound of the target substring value. The
resulting substring includes the specified substring.
DELIM=ʺsubstringʺ Specifies the field separator character or substring. Must
be used in conjunction with the COUNT parameter. It
narrows the results to the substring contained in
delimiters, where the starting delimiter index is specified
by the COUNT parameter. To parse the delimited
substring, you can specify right and left boundary
substrings.
COUNT=# Index (position) of the delimiter from which to start
parsing. Must be used in conjunction with the DELIM
parameter.
To search all fields of an incoming event, specify a wildcard for the placeholder name (for
example [*,lbe="u:"]).
The following table lists examples of parsing a field that contains the following data: |
U:browntod|C:SP_CHARGE_AMOUNT|O:1200|N:1123|E:kg|M:Local
Example Resulting Data
[value, lbe=ʺN:ʺ] 1123|E:kg|M:Local
[value, lbi=ʺN:ʺ] N:1123|E:kg|M:Local
[value, rbe=ʺtodʺ] |U:brown
[value, rbi=ʺtodʺ] |U:browntod
[value, lbe=ʺU:ʺ, rbe=ʺ|ʺ] Browntod
[value, lbi=ʺU:ʺ, rbe=ʺ|ʺ] U:browntod
[value, lbe=ʺO:ʺ, rbi=ʺkgʺ] 1200|N:1123|E:kg
[value, delim=ʺ|ʺ,count=3] O:1200
[value, delim=ʺ|ʺ,count=3,lbe=ʺO:ʺ] 1200
[value, delim=ʺ|ʺ,count=3,lbe=ʺC:SPʺ,rbe=ʺUNTʺ] _CHARGE_AMO
[value, delim=ʺ|ʺ,count=6,lbe=ʺM:ʺ] Local
Procedure
1. To create or update PI tags when specified events are read, you configure tag templates.
2. To create or update PI tags based on alarms read from an Emerson DeltaV Alarms & Events
data source, you configure alarm tag templates.
3. To define tag templates using PI Event Frame Interface Manager, go to the Templates page
and click the Tag tab.
4. To configure the name of the tag to be created or updated, you specify the Name field. To
assign tag names based on incoming data, use placeholders.
For example, to track phase module report events on a per-unit basis, you might configure
the name as follows:
[Unit] [phasemodule] Report
With the preceding template, when the interface reads a report event for the NORTON
phase module on unit XUNIT_52003, it replaces the placeholders with data from the
specified fields and creates or updates a PI tag with the following name:
XUNIT_52003 NORTON Report
If the name structure contains placeholders, the tag template is triggered only if all the
corresponding fields from the incoming event contain data (that is, are not blank).
Different templates can update the same PI tag, if the templates’ name structure resolves to
the same tag. This capability enables you to write different values to the tag depending on
the nature of the triggering event. For example, a value of 1 can be written to the tag when a
unit procedure starts and a value of 0 can be written to the same tag when the unit
procedure ends.
5. To specify the data to be written to the tag, you configure the Value field. To include data
read from the data source in the tag value, use placeholders.
For example, to simply record the incoming value without transforming it, specify the
[PVAL] placeholder. A more complex example: to configure a value that concatenates phase
module, event, description, incoming value and engineering units, specify the following:
[PHASEMODULE].[EVENT].[DESCRIPT]: [PVAL] [EU]
Unlike placeholders in tag names, value placeholders can be replaced with empty fields
from the incoming event, unless you use advanced field parsing to configure the value.
6. To update a tag when a particular event is read from the data source, specify the EVENT
keyword in the Name field, as follows:
[EVENT, VALUE="event_text"]
This approach enables you to write different values to the tag depending on the text in the
EVENT column.
If you require a more refined approach, specify the incoming data that causes the template
to be evaluated by configuring one or more triggers on the Trigger tab of the tag template.
To configure the template to handle multiple different events, specify separate triggers
("OR" logic). To ensure that the template is triggered only when a set of multiple conditions
are all detected ("AND" logic), specify a single trigger containing all the conditions. For
example, to trigger the template only for system message events that are phase logic
failures, specify the trigger as follows:
[EVENT, value="System Message"] [DESCRIPT, value="Phase Logic Failure"]
To ignore specified incoming values, use "!=" (not equal) . For example, to ignore undefined
values, specify the following expression:
[PVAL, VALUE!="UNDEFINED"]
Setting Description
NAME (Required) Name of PI tag to be created or
updated.
VALUE (Required) Value to be assigned to PI tag (text)
TRIGGER Event text from data source (can be specified
using wildcards)
TYPE String/integer/float/auto. "Auto" directs the
interface to automatically detect the data type.
UNITALIAS Configure how unit alias (AF: PI point reference)
is created. By default, the alias is created in the
unit. To override the default, specify the path
where you want the alias created.
Example: UNITALIAS = \Building1\Unit2|
[PHASE]
The alias is created under the Unit2 module,
named using the value of the [PHASE] column.
PHASEALIAS Configure how the phase alias is created. By
default, the alias is created in the phase module.
To override the default, specify the path where
you want the alias created.
DESCRIPTOR Value for PI point descriptor attribute.
ENGUNITS Engineering units
TRANSLATE To enable translation, set to TRUE (default:
FALSE)
ANNOTATION Simple annotation to be written to the tag when
the interface updates it.
ANNOTATION2 Structured annotation to be written to the tag
when the interface updates it. For details about
structured annotations, refer to the PI Data
Archive System Management Guide.
8. To configure tag templates that catch events raised by the interface when it updates the PI
Batch Database, specify the following placeholders in the TRIGGER setting of the tag
template:
Placeholder Values Description
EVENT PIEVENT Specify [EVENT,
value="PIEVENT"]
DESCRIPT BATCH Specify the batch level you want
to trigger on. For example:
UNITBATCH
[DESCRIPT,
OPERATION
value="UNITBATCH"]
PHASE
[DESCRIPT, value="PHASE"]
PHASESTATE
PHASESTEP
For example, to detect the start of a batch, specify the following expression:
[EVENT, VALUE="PIEVENT"][DESCRIPT, VALUE="BATCH"][PVAL, VALUE="START"]
The following placeholders are supported when the triggering expression contains
[Parameter, value="PIEVENT"].
Placeholder Batch Database Event Frames
[BATCHID] PIBatch and PIUnitBatch: For a top-level event frame,
BatchID property. "Name" property. For second-
level event frame, "BatchID"
attribute
[PROCEDURE] PIBatch "Recipe" property Event frame "Recipe" attribute
[UNITPROCEDURE] PIUnitBatch "Procedure" Event frame "Name" property
property
[OPERATION] PISubBatch "Name" property
[PHASE] Level 4 PISubBatch "Name"
property
[PHASESTATE] Level 5 PISubBatch "Name"
property
[PHASESTEP] Level 6 PISubBatch "Name"
property
[UNIT] PIUnit "Name" property AF element "Name" property
Setting Description
Index Unique numeric ID (integer)
Name Property name
Value Value to assign to property
Trigger Data source event that triggers updates
Translate true/false (default: false)
EngUnits Engineering units (AF only)
Type INTEGER, FLOAT, STRING or FLOATSTRING (Default is string)
Category Asset category (AF only)
UOM Unit of measure (AF only)
Descriptor Description (AF only)
If Type is set to AUTO, the interface assigns the data type for the attribute or property based on
the first item of data that it receives. If the first value received is an integer but subsequent
values are floating point, the interface creates an integer attribute or property and truncates
any subsequent floating point values before storing them. To avoid truncation numeric input
that includes a mix of integer and floating point values, specify FLOATSTRING rather than AUTO.
Procedure
1. To map the units of measure in the data source to the correct PI AF engineering units,
configure an attribute template using PI Event Frames Interface Manager and select the
UOM check box, then configure the mapping between the source units of measure and the
UoM available in PI AF.
2. To write properties under the root UniqueID PIProperty node or root AF element,
regardless of the level from which the triggering event originated, specify the $ symbol as
the first element in name path, as follows: $\[Parameter]
3. To write properties under the root node, regardless of the level from which the triggering
event originated, specify the @ symbol as the first element in name path as follows: @\
[Parameter]
The property/attribute is updated when a batch starts. For example, to create or update a
property or attribute named TestTagCalc that contains a ten-day total for the "sinusoid" tag
and a ten-day minimum for the "test_data_1" tag, configure the template with the following
settings:
Setting Set to
Name TestTagCalc
Value total:[Tag, name="sinusoid", range="10d",
func="TOTAL"]
Trigger [Event,value="PIEVENT"]
[Descript,value="BATCH"] [Pval,value="START"]
To populate the product property/attribute with the formula name when a "Recipe header"
event arrives, ignoring undefined product codes, the template would use the following
settings:
Setting Set to
Product [PVAL]
Setting Set to
ProductTrigger [EVENT,VALUE="Recipe Header"]
[DESCRIPT,VALUE="Product Code"] [PVAL,
VALUE!="UNDEFINED"]
ProductTrigger [EVENT,VALUE="Formula Header"]
[DESCRIPT,VALUE="Formula Name"]
Procedure
1. To configure the triggering events and the data to be written, you define an alarm tag
template.
2. To define an alarm tag template using PI Event Frame Interface Manager, go to the
Templates tab and click Alarm Tags.
You specify alarm tag templates the same way as tag templates.
To handle alarm events you must configure at least one alarm tag template. For details, see
Templates.
The following table lists the placeholders that you can use in alarm tag templates.
Setting Allowed Placeholders Description
VALUE Same as for Name setting, plus (Required) Specifies the event
[TIME], [TAG] value structure for the specific
PI Point. Allowed placeholders
are not case sensitive. The event
timestamp is taken from the
incoming event [TIME] field.
TRIGGER Same as for Name setting (Optional) Specifies an event
that triggers evaluation of the
template. If you omit column
name, the interface checks the
incoming EVENT field for the
specified text. To check a
different field, specify the field
name. For example:
TAG[1].TRIGGER=[Pval,
value="CREATED"]
For example, to store all alarm and events coming from an Emerson DeltaV Alarms & Events
data source and create the module/AF element and alias automatically, use the following
settings:
Setting Set to
NAME Alarm Test [MODULE]
VALUE [EVENT] | [CATEGORY] | [AREA] |
[PROCESSCELL] | [UNIT] | [MODULE] |
[MODULEDESC] | [ATTRIBUTE] | [STATE] |
[LEVEL] | [DESC1] | [DESC2]
TRIGGER [EVENT]
To store alarms and events with level 5 or 10 to 19 in a single global alarm tag, the template
can use the following settings:
Setting Set to
NAME Alarm Test Global
VALUE [EVENT] | [CATEGORY] | [AREA] |
[PROCESSCELL] | [UNIT] | [MODULE] |
[MODULEDESC] | [ATTRIBUTE] | [STATE] |
[LEVEL] | [DESC1] | [DESC2]
TRIGGER [EVENT] [level, value="1#*"]
TRIGGER [EVENT] [level, value="5*"]
To create an integer tag for each combination of module and category using advanced
parsing to store only numerical values embedded in the Desc2 column for Event type
"CHANGE" when the Attribute column contains an "ALM_COUNTER" substring, the template
can use the following settings:
Setting Set to
NAME Test [MODULE] [CATEGORY]
VALUE [DESC2,LBE="VALUE = "]
TYPE INTEGER
TRIGGER [EVENT, VALUE="CHANGE"] [ATTRIBUTE,
VALUE="ALM_COUNTER*"]
Procedure
1. To create a recipe template using PI Event Frames Interface Manager, go to the Templates
tab and click Recipe.
The following recipe template settings are supported:
Setting Description
NAME (Required) Defines the convention used by the
interface to assign names to procedures, unit
procedures, etc. You can use the advanced
parsing parameters to define this field.
Example:
abc_[PROCEDURE]
If the procedure field of the incoming event
contains "Test", the corresponding Recipe field is
set to "abc_Test"
Setting Description
PRODUCTTRIGGER (Optional) Sets the product for the recipe after
the recipe object is created. Intended for use
when the product is defined in a separate event.
If a product trigger is defined, the product is
defined by the event that satisfies the trigger. If
no product trigger is defined, the product gets its
value from the event that created the recipe, and
the template is populated by the event’s
placeholder data.
Example:
[Parameter, Value="Recipe Header"] [Descript,
value="Product Name"]
2. To specify the level of hierarchy for the template, set the Index field on the Configuration
page as follows:
Batch Database Field Default Name Index
PIBatch Recipe Procedure 1
PIUnitBatch Procedure UnitProcedure 2
PISubBatch Name Operation 3
PISubBatch Name Phase 4
PISubBatch Name PhaseState 5
PISubBatch Name PhaseStep 6
3. To configure additional settings for event frames, the following settings support the
placeholders for the NAME setting. These settings are valid only for event frames.
Template Name Description
Descriptor (Optional) Specifies the Event frame descriptor
property for the particular source Recipe object.
Category (Optional) For each recipe level, defines the
event frame category. If the event that creates an
event frame contains insufficient information, no
category is assigned. To assign a category to an
event frame after its creation, use Category[x].
◦ PHASESTEP
◦ PROCEDURE
◦ PROCESSCELL
◦ PVAL
◦ UNIQUEID
◦ UNIT
◦ UNITPROCEDURE
◦ USERID
◦ [*,value= "Field"]
◦ [*,value= "Mask"]
Procedure
1. To exclude incoming data from processing using PI Event Frames Interface Manager, go to
the Filters tab.
2. Expand the setting for the type of data that you want to filter (phases, units, recipes or
phase states).
3. Specify the data that you want to exclude.
You can use wildcards to define masks for matching.
Procedure
1. To configure a translation using PI Event Frame Interface Manager, open the desired
template.
2. Select the Translate check box and click Translations.
The Translations window opens.
3. Specify the desired source and target text.
Translations are not case-sensitive.
• PIBatch
The interface creates a PIBatch for each batch found in the data source. The PIBatch
corresponds to the procedure in the recipe. PIBatches are not associated with a specific
piece of equipment. Each PIBatch contains one or more PI UnitBatches that correspond to
the unit procedures in the recipe.
The root property node is named using the batch ID, which is assigned by the BES. The
interface stores the following batch data in properties under the root node:
◦ BatchID
◦ Product
◦ Formula Name
◦ Recipe
◦ Recipe Type
◦ Start Time UTC
◦ End Time UTC
◦ Interface Name
◦ Interface ID
◦ Data Source
◦ Data from events captured by configuring properties templates
The properties collection is organized according to the hierarchy of the recipe model from
the data source. Events of interest are stored in lists under the appropriate recipe node.
Each property under the same node must have a unique name. By default, each property is
named "Event_<event count>", where <event count> is the current number of events
already stored under a specific node. The PIProperty value can be configured using
property templates.
Multiple source batches that have identical IDs or a common subset of characters in their ID
can be merged into a single PIBatch. The product and recipe properties contain data
associated with the first source batch that started the merged PIBatch. The original source
batch properties are stored in PIProperties under a node named using the unique ID of the
source batch. For each merged source batch, the interface creates a node that is named
using the unique ID of the source batch containing the original properties.
Because a source batch can terminate unexpectedly without proper unloading by the
operator, the interface caches batches in local memory for a timeout period, after which the
batch is considered abandoned. The interface closes abandoned batches, assigning end time
using the latest known timestamp for the batch. The default timeout is 100 days. To change
the default timeout, edit the interface settings using PI Event Frame Interface Manager.
• PIUnitBatch
A PIUnitBatch is created for each unit procedure recorded in the data source. The start and
end times of a PIUnitBatch are intended to reflect the start and completion of physical
processing in a unit, so they require both a start event and an "equipment acquired" event.
The unit batch ends when an "end" event or an "equipment released" event is detected.
By default, PIUnitBatches contain the batch ID and procedure name from the data source.
To override the default, use PI Event Frame Interface Manager to edit the settings. When
operation or phase-level recipes are run, the interface uses the operation or phase name as
the PIUnitBatch procedure name.
If unit procedures on the same unit overlap, the interface closes the conflicting PI
UnitBatches. The actual end time for a truncated unit batch is stored in its product property,
and the product is appended with the text "_TrueEndUTC=", followed by the actual end time
of the unit batch, specified as UTC in seconds.
Subbatches populate parent levels of the hierarchy with the name of the source operation,
phase, phase state and phase step as required.
Phase steps are not S88-compliant and support for phase steps varies among BES vendors.
(ABB800xA, Foxboro IA Series, Siemens SIMATIC, and WonderWare InBatch do not support
phase steps.) Phase steps are created beneath the first phase state subbatch named
"RUNNING", regardless of whether the parent phase state is ended. The name of phase step
start and stop events is read from the data source [DESCRIPT] column. The triggering event
is "Report". If the parent phase is not found, phase steps do not trigger the creation of
PIBatches, UnitBatches and SubBatches. If the phase step was not closed by an appropriate
closing event, the interface closes it by the end of its parent operation-level PI SubBatch.
Zero-duration phase steps are ignored.
Event frames
As an alternative to the PI Batch Database, you can use event frames to record batch data.
Unlike the PI Batch Database, which records a predefined and fixed set of data at each level,
you can define the attributes to be stored in event frames at every level of the hierarchy.
Each event frame contains the following fields:
• Name
• Description
• Start time
• End time
• Template
• Category (Default is "OSIBatch")
• Event-specific attributes
• Referenced elements such as unit or phase module
To view batch event frames and AF elements generated by the interface, use PI System
Explorer. The following figure illustrates the event frame hierarchy that the interface creates.
In the root-level event frame, the Name field contains the batch ID from the data source. In
lower-level event frames, the Name field contains the recipe name. In event frames for a
procedure-level recipe, the product and recipe properties from the data source are stored as
attributes. For unit procedure-level recipes, the batch ID and product from the data source are
stored as attributes.
If the highest recipe level is an operation or phase (that is, neither procedure nor unit
procedure levels are defined), the interface creates event frames that correspond to the
procedure and unit procedure level.
The following sections explain how data is stored in event frames for each level of the batch
hierarchy.
• Procedure
For each batch in the data source, the interface creates a root-level event frame that
represents the procedure in the recipe. Each root-level event frame contains a collection of
child event frames that correspond to unit procedures. Data from source batch events can
be recorded in the attributes of the event frame and in PI points. Source batches can have
identical IDs and recipe names in the same time frame. To match the source batch with an
event frame, the interface stores additional information in the extended properties of the
root event frame. The Name property contains the ID of the source batch, and the Value
property contains an XML structure composed of the following batch data:
◦ Batch ID
◦ Product (searchable)
◦ Formula name
◦ Recipe (searchable)
◦ Recipe type
◦ Start time UTC
◦ End time UTC
◦ Interface name
◦ Interface ID
◦ Data source
The following table shows how the source batch properties map to event frame attributes.
Source Procedure Properties Event Frame Fields Event Frame Attributes
BatchID Name
Procedure Name Recipe
Product Product
Start Time Start Time
End Time End Time
Template="Procedure" Recipe, Product
By default, the interface captures the following batch-associated events and stores them in
procedure-level event frame attributes:
◦ Recipe header
◦ Formula header
◦ Recipe value
◦ Report
For the preceding attributes, the name is assigned from the source [DESCRIPTION] column,
the value from the source [PVALUE] columns, and the unit of measure attribute from the
[EU] column.
The procedure-level event frame can represent merged source batches. The product and
recipe attributes contain data associated with the source batch that started the merged
event frame. For each merged source batch, the interface creates an entry node in the event
frame’s extended properties, named using the unique ID of the source batch, with its value
containing an XML structure composed of the original source batch properties.
• Unit Procedure
The interface creates a unit procedure-level event frame for each unit procedure read from
the data source. Each unit procedure-level event frame is a child of the procedure-level
event frame and contains the subset of event frames that represent the source batch
operation-level recipe. The start and end times of an event frame record the start and end of
physical processing in a unit.
The name field of the unit procedure-level event frames contains the unit procedure name
as read from the data source. The batch ID and product properties are searchable attributes
of the event frame. The following table shows how the source batch properties map to event
frame attributes:
Source UnitProcedure Event Frame Fields Event frame Attributes Referenced Elements
Properties
BatchID BatchID
UnitProcedure Name Name Procedure
Product Product
Start Time Start Time
End Time End Time
Source UnitProcedure Event Frame Fields Event frame Attributes Referenced Elements
Properties
Unit Unit
Template="UnitProced default Attributes:
ure" BatchID, Procedure,
Product
In addition to batch ID, procedure and product attributes, the interface records recipe and
report events in event frame attributes. For these events, the attribute name is assigned
from the [DESCRIPTION] column, the value from the source [PVALUE] column, and units of
measure from the [EU] column.
Unit procedure-level event frame properties do not change if the parent object is a merged
event frame. By default, unit procedure event frames contain the batch ID and procedure
name read from the data source. (To override the default, use PI Event Frame Interface
Manager to configure the Batch ID mask field on the Batch Settings page.)
When operation or phase-level recipes are run, the interface uses the operation or phase
name as the name of the unit procedure-level event frame.
• Operation
The interface creates an operation-level event frame for each operation read from the data
source. Each operation-level event frame is a child of the unit procedure-level event frame
and contains the subset of event frames that represent the source batch phase-level recipe.
The name field of the operation-level event frames is the operation name read from the data
source. The following table shows how the source batch properties map to event frame
attributes:
Source Operation Properties Event Frame Fields Referenced Elements
Operation Name Name
Start Time Start Time
End Time End Time
Unit Unit
Template="Operation"
By default, the interface records recipe value and report events in event frame attributes.
For these events, the attribute name is assigned from the [DESCRIPTION] column, the value
from the source [PVALUE] column, and units of measure from the [EU] column.
• Phase
The interface creates a phase-level event frame for each phase read from the data source.
Each phase-level event frame is created as a child of an operation-level event frame and
contains the subset of event frames that represent the source batch phase states-level
recipe.
The name field of the phase-level event frame contains the phase name read from the data
source. The following table shows how the source batch properties map to event frame
attributes:
Source Phase Properties Event Frame Fields Referenced Elements
Phase Name Name
By default, the interface records recipe value and report events in event frame attributes.
For these events, the attribute name is assigned from the [DESCRIPTION] column, the value
from the source [PVALUE] column, and units of measure from the [EU] column.
• Phase State
The interface creates a phase state-level event frame for each phase state read from the
data source. Each phase state-level event frame is created as a child of a phase-level event
frame and, if so configured, can contain the subset of event frames that represent the phase
steps. The start of new phase state ends the previous one, unless the new state is
COMPLETE, ABORTED or STOPPED, which end the current phase state without beginning a
new one. These phase states have a zero-duration time frame.
The name field of the phase state event frames reflects an actual source recipe phase state
name. Below is the mapping of source phase state to event frame fields and attributes:
Source Phase State Properties Event Frame Fields Referenced Elements
Phase State Name
Start Time Start Time
End Time End Time
Unit Unit
Operation Module Operation Module
Phase Module Phase Module
Template="Phase State"
• Phase Step
Phase steps are not S88-compliant and support varies among BES vendors. (ABB800xA,
Foxboro IA Series , Siemens Simatic , and WonderWareInBatch do not support phase step.)
Phase steps are created beneath the first phase state sub-batch named "RUNNING",
regardless of whether the parent phase state is ended. The name of phase step start and
stop events is read from the data source [DESCRIPT] column. The triggering event is
"Report". Phase steps do not trigger the creation of parent-level events if the parent phase
is not found. If the phase step was not closed by an appropriate closing event, the interface
closes it by the end of its parent operation-level event frame. Zero-duration phase steps are
ignored.
Equipment hierarchy
When recording batch data from the data source in the PI Batch Database, the interface creates
PIUnits (modules representing equipment) as required. If you configure the interface to create
Event frames, it creates AF elements representing the equipment hierarchy. The following
levels of the equipment hierarchy are created:
• Area
• Process Cell
• Unit
• Phase Module
The following diagram shows the default equipment hierarchy generated by the interface.
By default, the hierarchy is located at the root level of the PI Module Database or the PI AF
database, depending on whether you are creating PIBatches or event frames. To specify a
different root, use PI Event Frame Interface Manager to configure the start module path.
Unit aliases are created for a tag if the template includes the [UNIT] placeholder, phase aliases
are created if it contains the [PHASEMODULE] placeholder. Unit aliases are also created if the
tag name contains the unit name (for example, if the unit name is UNIT202 and the tag name is
"UNIT202 report tag", a unit alias is created; likewise for phase modules.
Interface modes
PI Interfaces for Batch and Manufacturing Execution Systems can be run in five different
modes:
• RealTime (default)
• Recovery
• Preprocess
• Statistics
• Delete
RealTime Mode
In RealTime mode, the interface monitors the data source for events that indicate the start or
end of a batch or any child level thereof, recording these events in the PI System according to
your batch configuration. The interface records newly-acquired data at the end of each scan
regardless of whether batches are completed on the source. At startup, before it begins real-
time data collection, the interfaces attempts to recover any data written after it was shut down.
Recovery Mode
To recover events that occurred during interface downtime, the interface scans the data source
for a specified period. If you omit an end time or specify "*" (current time), the interface
recovers data and then starts collecting data in RealTime mode. If you specify an end time, the
interface recovers data for the specified period and then exits.
In recovery mode, the interface reads batch data from the data source for the specified time
period. This mode can be used to initialize the PI System with historical data from the data
source. If batch data for the specified period already exists in the PI System and the interface
detects discrepancies, it attempts to correct the PI System data, logging any errors.
For example, the following figure shows a data source that contains batch data for seven
batches.
If you recover data for the period from 12/15/2007 16:00:00 through 05/11/2008 2:00:05,
the interface recovers contained batches (Batch 4 and 5) as well as border batches (Batch 1,
Batch 3 and Batch 6). Batches outside the time frame (Batch 2 and 7) are not recovered.
Preprocess Mode
If your data source contains data with timestamps that are earlier than the period covered by
the primary archive, you can recover events by running the interface in Preprocess mode,
which scans the data source and creates the required tags, modules and units in the PI System.
After running the interface in Preprocess mode, you must reprocess older archives to create
entries for the tags, modules and units, then run the interface in recovery mode. This process is
also referred to as "backfilling." (See the PI Data Archive System Management Guide for details
on reprocessing archives.)
Statistics Mode
In Statistics mode, the interface scans a specified period, comparing data from the data source
with the corresponding data in the PI Batch database. After comparing data, the interface
reports the results and exits. If you omit an end time, the interface scans from the specified
start time until the current time. To run the interface in Statistics mode using PI Event Frames
Interface Manager, go to the Operation Settings tab, choose Statistics mode and specify the
start and end times for the period to be analyzed. To analyze data through the current time,
omit the end time. The interface logs results to the specified output file and exits.
Delete Mode
To delete batch data from the PI Batch Database or from event frames, run the interface in
Delete mode, specifying the time period to be deleted. To run the interface in Delete mode
using PI Event Frames Interface Manager, go to the Operation Settings tab, choose Delete
mode and specify the start and end times for the period to be deleted. To delete data through
the current time, omit the end time. If you intend to recover events from the data source for a
specified time period, consider deleting existing batch data for that time period first.
This batch interface enables you to recover batches from restored archives in the ABB 800xA
data source. To enable recovery from restored archives, launch PI Event Frames Interface
Manager. On the Source settings page, check Collect batches from restored archives. Note that,
if you have configured multiple data sources, the interface recovers batches from restored
archives in all the data sources that you configured.
PIBatch/Procedure
The start and end times for the batch is taken from the Task event in which the [LevelNumber]
field contains "1". The event is retrieved using a complex query against the following tables:
• task
• task_variables_occurrences (for recipe name)
PIUnitBatch/Unit Procedure
The start and end times for a unit procedure are taken from the Task event in which the
[LevelNumber] field contains "1" or "2" (depending on the unit associations). The event is
retrieved using a complex query performed against the following tables:
• task
• task_variables_occurrences (for recipe name)
• resource_associations (for allocated equipment).
Operation
The start and end times for an operation are taken from the Task event in which the
[LevelNumber] field contains "2" or "3" (depending on the unit procedure level). The event is
retrieved using a complex query performed against the following tables:
• task
• task_variables_occurrences (for recipe name)
• resource_associations (for allocated equipment)
Phase
The start and end times for a phase are taken from the Task event in which the [LevelNumber]
field contains "4" or "5" (depending on the unit procedure level). The event is retrieved using a
complex query performed against the following tables:
• task
• task_variables_occurrences (for recipe name)
• resource_associations (for allocated equipment)
• [BATCHID]
• [OPERATION]
• [PARAMETER]
• [PHASE]
• [PROCEDURE]
• [TIME]
• [UNIQUEID]
• [UNIT]
• [UNITPROCEDURE]
• [VALUE]
Event journals
Event journals are text files in which the BES logs batch events. For the Emerson DeltaV
systems, the interface expects each line in the event journal to be composed of the following
tab-delimited fields, in the order specified:
• [UNIT]
• [PHASE]
• [PHASEDESC]
• [USERID]
• [UNIQUEID]
• [COMMENT]
In event journals, the product ID information is stored in the [PVALUE] field, in the row that
contains the description "Product Code". Typically this is a recipe header event.
If the BES indicates the product ID using a value other than "Product Code," you must translate
the value to "Product Code" to ensure that the interface detects it. To configure the translation
using PI Event Frame Interface Manager, check the Translation field on the template’s
Configuration tab and specify the source and target string on the Translations dialog.
1. On the Data Source tab, right-click the Sources node and choose Add SQL Source. The
Configuration page is displayed.
2. Check Use Alarm and Events Historian.
3. To specify mappings that ensure that process cell data is recorded correctly (DeltaV does
not emit process cell information), click Area to Process Cell... or Unit to Process Cell... and
specify the process cell to be recorded with its events.
4. To configure the interface to use the equipment hierarchy XML file that is generated by
DeltaV, specify the path to the XML file in the DeltaV equipment hierarchy field.
5. To configure an OPCAE server as a data source to be read in conjunction with an Emerson
DeltaV Alarms & Events data source, click the DeltaV OPCAE disclosure and specify the host
node and server name. When you configure an OPCAE server, the DeltaV Batch Historian
serves as a backup source and the source for additional batch-associated events.
The interface starts a batch when it reads the BATCH-EVENT event with its event attribute
[6] = "LOAD" (using a 0-based index).
The interface creates the batch when it identifies the recipe type of the batch, which normally
occurs when the recipe is loaded and started. The interface starts a batch when it reads the
BATCH-EVENT event with its event attribute [6] = "REMOVED". The recipe structure is read
from the events that trigger the start and end of levels, such as Procedure Started/Finished,
UnitProcedure Started/Finished, etc.
For all levels below batch, the interface checks event attribute [6] for the value "State Change"
and parses event attribute [8] to determine whether the event was a start or end event and to
find out what level of the batch hierarchy is affected.
The interface starts a level when it reads the BATCH-EVENT event containing the following
data:
Syncade
Emerson Syncade creates and executes recipes on DeltaV batch execution systems. The
interface requires Syncade version 4.0.1 or higher.
Emerson Syncade
For each level, Syncade records the start time in the [StartUtcDateTime] timestamp and end
time in the [EndUtcDateTime] timestamp of the object in which the event is recorded. For
phase- and operation-level recipes, the interface creates parent procedures and unit
procedures, using the start and end times of the operation or phase to start and end the parent
levels. Syncade does not provide phase state or phase step data.
The batch ID comes from the batch object’s [OrderNumber] property, and the batch recipe
type is provided for each object by the data source.
Default
To set the start time for a unit batch, the interface requires events indicating that the unit
procedure has started and the required unit has been acquired. Batches and unit batches are
also created when the interface processes operation- and phase-level recipes. In both cases,
the unit batch start time is taken from the start event or the arbitration event in which the unit
was acquired, whichever is later. The end time is taken from the end event or the event that
releases the unit, whichever is earlier.
Phase steps are disabled by default. To process them, you must enable processing and specify
the strings that indicate start and end. The interface parses the description field to determine
the name of the phase step.
The fields that indicate the start and end of levels in the batch hierarchy depend on whether
you are using event journals or SQL Server as your data source, as follows:
Data source Trigger Field Start/End Field Level Field
Event journals [EVENT] [PVALUE] [RECIPE]
SQL Server [EVENTTYPE] [EVENTDESCRIPT] [ACTION]
The following table lists the fields and values that trigger the start and end of batch events.
Level Trigger Field Text Start/End Text
PIBatch/Procedure "State change" CREATED REMOVED
PIUnitBatch/Unit RUNNING COMPLETE
Procedure
STOPPED
Operation
ABORTED
Phase
Phase State "Report"
Phase steps are disabled by default. To detect them, you must enable processing and specify
the strings that indicate start and end. The interface parses the description field to determine if
the start or end string is present.
the unit batch start time is taken from the start event or the arbitration event in which the unit
was acquired, whichever is later. The end time is taken from the end event or the event that
releases the unit, whichever is earlier.
Phase steps are disabled by default. To process them, you must enable processing and specify
the strings that indicate start and end. The interface parses the description field to determine
the name of the phase step.
The fields that indicate the start and end of levels in the batch hierarchy depend on whether
you are using event journals or SQL Server as your data source, as follows:
Data source Trigger Field Start/End Field Level Field
Event journals [EVENT] [PVALUE] [RECIPE]
SQL Server [EVENTTYPE] [EVENTDESCRIPT] [ACTION]
The following table lists the fields and values that trigger the start and end of batch events.
Level Trigger Field Text Start/End Text
PIBatch/Procedure "State change" CREATED REMOVED
PIUnitBatch/Unit RUNNING COMPLETE
Procedure
STOPPED
Operation
ABORTED
Phase
Phase State "Report"
Phase steps are disabled by default. To detect them, you must enable processing and specify
the strings that indicate start and end. The interface parses the description field to determine if
the start or end string is present.
Emerson PIBatch/procedure
Event journal start/end events
• Start
[EVENT] = "System Message" and [PVALUE] = "Beginning Of BATCH"
• End
Either of these events end a batch:
◦ [EVENT] = "System Message" and [PVALUE] = "End Of BATCH"
◦ [EVENT] = "State Change" and [PVALUE] field = "REMOVED", "COMPLETE" or
"ABORTED"
• Start
Batch recipe event with [DEACTIVATETIME] set, read from the batchview view.
• End
The interface ends a batch when it reads an event containing a timestamp in the
[DEACTIVATETIME] field, which is retrieved from the batchview table.
• [EVENT] field = "Recipe Arbitration", [DESCRIPT] field = "Resource Acquired by recipe" and
[EU] field = "Unit". The [PVALUE] field contains the actual unit name.
The latest timestamp is used as the start time for the unit batch.
Operation and phase-level recipes create parent batches and unit batches automatically.
Operation-level recipes require a start event and an "equipment acquired" event. Phase-level
recipes set the unit batch start time from the event that starts the phase; no equipment
acquisition event is required.
End
For procedure- and unit procedure-level recipes, the interface requires both an end event and
an "equipment released" event, as follows:
• [EVENT] field = "Recipe Arbitration", [DESCRIPT] field = "Resource Released by recipe" and
[EU] field = "Unit". The [PVALUE] field contains the actual unit name.
The earliest timestamp is used as the end time.
Operation-level recipes require an end event and an "equipment released" event. Phase-level
recipes set the unit-batch end time from the event that ends the phase; no equipment release
event is required.
• The batch recipe event containing the [STARTTIME] timestamp associated with the specific
"unitprocedure" object retrieved from the batchrecipeview view.
• The arbitration event containing the [ACQUIRETIME] timestamp associated with the
specific unit arbitration object retrieved from the batchequipmentview view.
Operation- and phase-level recipes create parent batches and unit batches automatically.
Operation-level recipes require a "start" event and an "equipment acquired" event. Phase-level
recipes set the unit batch start time from the event that starts the phase; no equipment
acquisition event is required.
For operation-level recipes, the following two events are required to start a unit batch:
• The batch recipe event containing the [STARTTIME] timestamp associated with the
operation retrieved from the batchrecipeview view.
• The arbitration event containing the [ACQUIRETIME] timestamp associated with the unit
arbitration event retrieved from the batchequipmentview view.
The latest timestamp is used as the start time.
For phase-level recipes, the start time is set using the [STARTTIME] field of the batch recipe
associated with the phase object.
End
To end a unit batch, the interface requires both an "end" event and an "equipment released"
event. It uses the earliest timestamp as the end time for the unit batch. Specifically, the
interface scans for the following events:
• The batch recipe event containing the [ENDTIME] timestamp associated with the specific
"unitprocedure" object retrieved from the "batchrecipeview" view.
• The arbitration event containing the [RELEASETIME] timestamp associated with the
specific unit arbitration object retrieved from the batchequipmentview view.
For operation-level recipes, the following two events are required to end a unit batch:
• The batch recipe event containing the [STARTTIME] timestamp associated with the
operation retrieved from the batchrecipeview view.
• The arbitration event containing the [ACQUIRETIME] timestamp associated with the unit
arbitration event retrieved from the batchequipmentview view.
The earliest timestamp is used as the end time.
For phase-level recipes, the end time is set using the [ENDTIME] field of the batch recipe
associated with the phase object.
• The event containing [EVENT] = "System Message" and [DESCRIPT] field = "Operation
Finished"
Or
• The event containing [EVENT] = "State Change" and [PVALUE] field = "REMOVED" and
[RECIPE] = "Operation".
For phase-level recipes, the interface assigns the operation start time from the batch recipe
event containing [EVENT] = "State Change" and [PVALUE] = "RUNNING".
The event containing [EVENT] = "Report" and [DESCRIPT] or [PVALUE] field = <Start
Substring> starts a phase step. The name of the phase step is parsed from the text in the
[DESCRIPT] or [PVALUE] field.
End
The event containing [EVENT] = "Report" and [DESCRIPT] or [PVALUE] field = <End
Substring> ends a phase step. The name of the phase step is parsed from the text in the
[DESCRIPT] or [PVALUE] field.
For the VALUE setting and for NAME in property and attribute templates, the additional
placeholders [TAG] and [TIME] are supported.
• [USER]
• [VALUE]
The following table lists the fields and values that trigger the start and end of batch events.
Level Trigger Field Text Start/End Text
PIBatch/Procedure "State change" CREATED REMOVED
PIUnitBatch/Unit RUNNING COMPLETE
Procedure
STOPPED
Operation
ABORTED
Phase
Phase State "Report"
Phase steps are disabled by default. To detect them, you must enable processing and specify
the strings that indicate start and end. The interface parses the description field to determine if
the start or end string is present.
"Use batch recipe" Enabled
By default, to detect the beginning of a batch, the interface scans the Event column for "State
Change" events. To configure the interface to scan for "System Message" events instead, enable
the Use original batch event view option. This logic is the approach used by the PI Event File
interface. Be advised that, when this option is enabled, the batch start time is taken from the
event that loads the batch, not the event that begins execution. There can be a significant delay
between loading and execution.
The following sections describe how the interface determines whether a particular level has
started or ended when the Use batch recipe option is enabled. The precise logic depends on
your data source.
• [EVENT] field = "Recipe Arbitration", [DESCRIPT] field = "Resource Acquired by recipe" and
[EU] field = "Unit". The [PVALUE] field contains the actual unit name.
The latest timestamp is used as the start time for the unit batch.
Operation and phase-level recipes create parent batches and unit batches automatically.
Operation-level recipes require a start event and an "equipment acquired" event. Phase-level
recipes set the unit batch start time from the event that starts the phase; no equipment
acquisition event is required.
End
For procedure- and unit procedure-level recipes, the interface requires both an end event and
an "equipment released" event, as follows:
• [EVENT] field = "Recipe Arbitration", [DESCRIPT] field = "Resource Released by recipe" and
[EU] field = "Unit". The [PVALUE] field contains the actual unit name.
The earliest timestamp is used as the end time.
Operation-level recipes require an end event and an "equipment released" event. Phase-level
recipes set the unit-batch end time from the event that ends the phase; no equipment release
event is required.
• The batch recipe event containing the [STARTTIME] timestamp associated with the specific
"unitprocedure" object retrieved from the batchrecipeview view.
• The arbitration event containing the [ACQUIRETIME] timestamp associated with the
specific unit arbitration object retrieved from the batchequipmentview view.
Operation- and phase-level recipes create parent batches and unit batches automatically.
Operation-level recipes require a "start" event and an "equipment acquired" event. Phase-level
recipes set the unit batch start time from the event that starts the phase; no equipment
acquisition event is required.
For operation-level recipes, the following two events are required to start a unit batch:
• The batch recipe event containing the [STARTTIME] timestamp associated with the
operation retrieved from the batchrecipeview view.
• The arbitration event containing the [ACQUIRETIME] timestamp associated with the unit
arbitration event retrieved from the batchequipmentview view.
The latest timestamp is used as the start time.
For phase-level recipes, the start time is set using the [STARTTIME] field of the batch recipe
associated with the phase object.
End
To end a unit batch, the interface requires both an "end" event and an "equipment released"
event. It uses the earliest timestamp as the end time for the unit batch. Specifically, the
interface scans for the following events:
• The batch recipe event containing the [ENDTIME] timestamp associated with the specific
"unitprocedure" object retrieved from the "batchrecipeview" view.
• The arbitration event containing the [RELEASETIME] timestamp associated with the
specific unit arbitration object retrieved from the batchequipmentview view.
For operation-level recipes, the following two events are required to end a unit batch:
• The batch recipe event containing the [STARTTIME] timestamp associated with the
operation retrieved from the batchrecipeview view.
• The arbitration event containing the [ACQUIRETIME] timestamp associated with the unit
arbitration event retrieved from the batchequipmentview view.
The earliest timestamp is used as the end time.
For operation-level recipes, the following two events are required to end a unit batch:
• The batch recipe event containing the [STARTTIME] timestamp associated with the
operation retrieved from the batchrecipeview view.
• The arbitration event containing the [ACQUIRETIME] timestamp associated with the unit
arbitration event retrieved from the batchequipmentview view.
The earliest timestamp is used as the end time.
For phase-level recipes, the end time is set using the [ENDTIME] field of the batch recipe
associated with the phase object.
• The event containing [EVENT] = "System Message" and [DESCRIPT] field = "Operation
Finished"
Or
• The event containing [EVENT] = "State Change" and [PVALUE] field = "REMOVED" and
[RECIPE] = "Operation".
For phase-level recipes, the interface assigns the operation start time from the batch recipe
event containing [EVENT] = "State Change" and [PVALUE] = "RUNNING".
• [EU]
• [EVENT]
• [LABEL]
• [LOTNAME]
• [MATERIALID]
• [MATERIALNAME]
• [OPERATION]
• [PHASE]
• [PHASEMODULE]
• [PROCEDURE]
• [PROCESSCELL]
• [PVAL]
• [TIME]
• [UNIQUEID]
• [UNIT]
• [UNITPROCEDURE]
• [USERID] or [USER]
Category Available Category field values: Required for parameter event (in
• ProcessInput Event field)
• ProcessOutput Act_Val
• ProcessParameter SetPoint
• [AREA]
• [BATCHID]
• [CATEGORY]
• [DESCRIPT]
• [EU]
• [EVENT] or [PARAMETER]
• [EXTVALUE]
• [MATERIALID]
• [MATERIALNAME]
• [OPERATION]
• [OPERATIONACTIVATION]
• [OPERATIONCONTID]
• [PARAMETERID]
• [PHASE]
• [PHASEACTIVATION]
• [PHASECONTID]
• [PHASEMODULE]
• [PHASESTATE]
• [PHASETERMID]
• [PROCEDURE]
• [PROCESSCELL]
• [TAG]
• [TIME]
• [UNIQUEID]
• [UNIT],[OPERATIONMODULE]
• [UNITACTIVATION]
• [UNITCONTID]
• [UNITID]
• [UNITPROCEDURE]
• [VALUE]
WONUMBER MDSE2S_PFC_TRAIL_MAN.WONUMBER
PICODE MDSE2S_PFC_TRAIL_MAN.PICODE
PIVERSION MDSE2S_PFC_TRAIL_MAN.PIVERSION
• "WOQUANITITY "
• "WEIGHTEQUQUANTITY "
• "WEIGHTEQUUNIT "
• "PRODUCTCODE "
• "PHARMALOTNUMBER "
• "WONUMBER "
• "WOINDEX "
• "STATE "
• "PRODUCTDESCRIPTION "
• "WOUNIT "
• "PRIORITY "
• "REFERENCECODE "
• "STABILITY "
• "CUSTOMERCODEREF "
• "ALLOCATIONPART "
• "ORIGINE "
• "DTCREATIONDATEBYSYSTEM "
• "DTPLANNEDLAUNCHINGDATE "
• "DTLASTCHANGESTATEDATE "
• "TRANSACTIONCODE "
• "FUNCTIONCODE "
• "PICODE "
• "PIVERSION "
• "COMBINATIONEDITNUMBER "
• "XFIELD_00 "
• "XFIELD_01 "
• "XFIELD_02 "
• "XFIELD_03 "
• "XFIELD_04 "
• "XFIELD_05 "
• "XFIELD_06 "
• "XFIELD_07 "
• "XFIELD_08 "
• "MANUALWEIGHTSTARTDATE "
• "MANUALWEIGHTENDDATE "
TITLE MDSE2S_PFC_TRAIL_MAN.TITLE
UNIQUEID MDSE2S_PFC_TRAIL_MAN.WONUMBER
WONUMBER MDSE2S_PFC_TRAIL_MAN.WONUMBER
PICODE MDSE2S_PFC_TRAIL_MAN.PICODE
PIVERSION MDSE2S_PFC_TRAIL_MAN.PIVERSION
TIMESTAMP MDSXFP_WOCONSUMPTION. DTWEIGHENDDATE
• "WONUMBER"
• "WOINDEX"
• "PHASE"
• "PHASESEQNUM"
• "DOSE"
• "ACTION"
• "ITEMCODE"
• "WEIGHINGINDEX"
• "LABELNUM"
• "OPERATOR"
• "WORKSTATION"
• "WORKCENTER"
• "WDUCLEANTYPE"
• "LOTNUMBER"
• "LOCATION"
• "CONTAINER"
• "LOTPOTENCY"
• "LOTPOTENCY2"
• "LOTDENSITY"
• "LOTSTATUS"
• "ITEMUNIT"
• "FLAGPOTENCY"
• "FLAGPOTENCY2"
• "ITEMPOTENCY"
• "ITEMPOTENCY2"
• "ITEMDENSITY"
• "TOLERANCE"
• "FLAGDENSITYTAG"
• "CONCORDANCENUM"
• "STARTGROSS"
• "ENDGROSS"
• "CALCULATEDNET"
• "TARE"
• "NET"
• "GROSS"
• "WEIGHUNIT"
• "WEIGHGAP"
• "FORCEDWEIGHING"
• "FLAGSAMECONTAINER"
• "PALLETCODE"
• "NUMCONTAINERS"
• "WEIGHINGMODE"
• "WEIGHINGTYPE"
• "WEIGHINGSTATUS"
• "BALANCENUMBER"
• "BALANCETYPE"
• "BALANCEDESCRIPTION"
• "FLAGFORCEDPRECISION"
• "FLAGFORCEDRELEASE"
• "ENDOFCONTAINER"
• "FLAGMESSAGE"
• "FLAGFORCEDLOT"
• "FLAGCORRECTLOT"
• "FLAGKEYBOARDINPUT"
• "FLAGPRINTEDLABEL"
• "BARCODELABEL"
• "CHECK"
• "STOCKUNIT"
• "NOTICKET"
• "RFCHECK"
• "COMBINATION"
• "INITIALEQTCODE"
• "TARGETEQTCODE"
• "COUNTINGUNIT"
• "DTWDUCLEANDATE"
• "DTWEIGHSTARTDATE"
• "DTWEIGHENDDATE"
• "ACTIONID"
• "XFIELD_00"
• "XFIELD_01"
• "XFIELD_02"
• "XFIELD_03"
• "XFIELD_04"
• "XFIELD_05"
• "XFIELD_06"
• "XFIELD_07"
• "XFIELD_08"
• "XFIELD_09"
• "CONS_XFIELD_00"
• "CONS_XFIELD_01"
• "CONS_XFIELD_02"
• "CONS_XFIELD_03"
• "CONS_XFIELD_04"
• "CONS_XFIELD_05"
• "CONS_XFIELD_06"
• "CONS_XFIELD_07"
• "CONS_XFIELD_08"
• "CONS_XFIELD_09"
• "IDENTIFIER"
• "LOCATIONDESCR"
• "ITEMDESCR"
• "ITEMLONGDESCR"
• "CONTSTATUS"
• "LOTEXPIRYDATE"
• "REMAININGQTY"
• "SHORTNAME"
• "FULLNAME"
• "MATLINESTATUS"
• "ITEMPOTENCYUNIT1"
• "ITEMPOTENCYUNIT2"
COMMENT Event
Data sent when there is a comment for the deviation in the PICODE.
Field Contents
EVENT "COMMENT"
BATCHID Recipe template-dependent
PRODUCT Recipe template-dependent
PROCEDURE Recipe template-dependent
UNITPROCEDURE Recipe template-dependent
OPERATION Recipe template-dependent
PHASE Recipe template-dependent
PHASESTATE Recipe template-dependent
PHASESTEP Recipe template-dependent
PHASESTEP2 Recipe template-dependent
PHASESTEP3 Recipe template-dependent
EQPCODE_{level}_{equipment number} MDSEQP_EQPEXE_TRACES. EQPCODE
EQPNAME_{level}_{equipment number} MDSEQP_EQPEXE_TRACES. EQPNAME
LOCATION_{level}_{equipment number} MDSEQP_EQPEXE_TRACES. LOCATION
AREA_{level}_{equipment number} MDS_SITE. SITE_NAME_ENG
LOTID MDSXFP_WOHEADER.PHARMALOTNUMBER
TITLE MDSE2S_PFC_TRAIL_MAN.TITLE
UNIQUEID MDSE2S_PFC_TRAIL_MAN.WONUMBER
WONUMBER MDSE2S_PFC_TRAIL_MAN.WONUMBER
PICODE MDSE2S_PFC_TRAIL_MAN.PICODE
PIVERSION MDSE2S_PFC_TRAIL_MAN.PIVERSION
TIMESTAMP MDSE2S_PICOMMENTS_MAN.DTCOMMENTDATE
• "SITE_NAME_ENG"
• "PICODE"
• "PIVERSION"
• "STATUS"
• "LOGIN"
• "SHORTNAME"
• "FULLNAME"
• "TYPE"
• "COMMENTTYPE"
• "WORKSTATION"
• "WORKCENTER"
• "ORIGIN"
• "TASKTITLE"
• "PRODUCTCODE"
• "PHARMALOTNUMBER"
• WEIGHINGINDEX
• WOINDEX
• WONUMBER
• WONUMBER
• WORKCENTER
• WORKSTATION
• XFPBATCHID
• XFPTASKID
PIEVENT placeholders
These placeholders are supported for expression triggered by PI batch events (Parameter,
value="PIEVENT"]).
Place Holder Batch Level How Stored
Batch Database Event Frames
[BATCHID] 1 or 2 String value that is Top-level event frame:
stored as PIBatch Name property. Second-
BatchID and level event frame:
PIUnitBatch BatchID BatchID attribute
property
[PROCEDURE] 1 PIBatch Recipe property Top level event frame
"Recipe" Attribute.
[UNITPROCEDURE] 2 PIUnitBatch Procedure Name property
property
[OPERATION] 3 PISubBatch Name
property
[PHASE] 4
[PHASESTATE] 5
[PHASESTEP] 6
[UNIT] n/a PIModule Name AF element Name
property property.
To communicate with SQL Server databases, the interface requires Microsoft ADO driver for
Microsoft SQL, part of the SQL Native client package, to be installed on the interface node. To
download the SQL Native client package, go to the MSDN web site.
PIBatch/Procedure
The start time for a batch is taken from the event in which the [Action_CD] field contains "201".
The end time for a batch is taken from the event in which the [Action_CD] field contains "205",
"206" or "209".
PIUnitBatch/Unit Procedure
The start time for a batch is taken from the event in which the [Action_CD] field contains "500".
The end time for a batch is taken from the event in which the [Action_CD] field contains "501".
Operation
The start time for a batch is taken from the event in which the [Action_CD] field contains "502".
The end time for a batch is taken from the event in which the [Action_CD] field contains "503".
Phase
The start time for a batch is taken from the event in which the [Action_CD] field contains a
value from "227" to "246" and "415", excluding "236" and "240".
The end time for a batch is taken from the event in which the [Action_CD] field contains one of
the following values:
• 233
• 234
• 239
• 415
Source tab
On this tab you configure the data sources that you want the interface to read. To add a data
source, right-click the top Sources node and choose the Add option. After you add the first data
source, all additional data sources must be the same type (event journal or SQL database); the
configuration utility no longer offers you the other option.
Active sources are displayed in black text, inactive sources in gray. To activate or deactivate a
source, right-click it and choose the desired option.
To configure the SQL Alarm and Event Historian, you must specify mappings that ensure that
process cell data is recorded correctly, because DeltaV does not emit process cell information.
To map process cells to areas, click Area to Process Cell... and, for each unique area, specify the
process cell to be recorded with its events. Alternately, to assign units to process cells, click
Unit to Process Cell...
Templates
Templates map data from the data source to PI tags. Depending on your interface, you can
define the following types of templates:
Tag templates
Tag templates create and update PI tags when events are read from the data source. Alarm tag
templates create and update PI tags based on alarms raised by the Emerson DeltaV Alarms &
Events Historian. If you define one or more triggers, the target PI tag is updated only when the
specified events occur. If you do not define any triggers, every event from the data source
triggers an update of the target PI tag.
Tag configuration
• Index
Specify a unique numeric identifier for the entry.
• Name
The name of the field from the data source. The name can include wildcards.
• Value
The value to be written to the PI tag. Composed of placeholders, which are aliases for data
fields read from the data source.
• Type
The data type to be used to write the value to the tag. Note that if the incoming value is
incompatible with the tag type, the event is not processed, and an error is logged.
• Translate
Maps text from the data source to the text that you want to record in the PI System.
• Engineering units
The engineering units for the data.
• Unit Alias
Specifies an alias to be recorded under the Aliases node in the corresponding PIUnit or AF
element.
• Phase Alias
Specifies an alias to be recorded under the Phases > Aliases node in the corresponding
PIUnit or element.
• Annotation
Specifies the annotation to be associated with the event. The result is stored in a PI tag as a
string.
Configuration
• Index
Assigns a unique numeric identifier for the template.
• Name
Specifies how the target attribute or property is named. You can use placeholders to
configure values emitted by the data source. The interface adds attributes and properties as
required when new equipment is added.
• Value
Specifies the value to be recorded. Use placeholders to derive values from the data emitted
by the data source.
• Data type
PI data type of the value. Note that if the incoming value is incompatible with the tag type,
the event is not processed, and an error is logged.
• Translate
Maps text from the data source to the text that you want to record in the PI System.
• UOM
Unit of measure to be used to store value, if different from unit provided by data source.
• Engineering units
Unit of measurement.
• Level
Specifies the recipe level as follows:
Level value Corresponds to:
-1 Same level as in data source
1 Unit Procedure
2 Procedure
3 Operation
4 Phase
• Category
Specifies the PI AF category to be associated with the value.
Recipe templates
Recipe templates enable you to override the default recipe name read from the data source.
Configuration
• Index
Specifies the level in recipe hierarchy as follows:
Level Index PI object Default
Procedure 1 PIBatch Recipe Recipe[1].Name
=[Procedure]
Unit Procedure 2 PIUnitBatch Recipe[2].Name
Procedure =
[UnitProcedure]
Operation 3 PISubBatch Recipe[3].Name
Name field =[Operation]
Phase 4 PISubBatch Recipe[4].Name
Name field =[Phase]
Phase State 5 PISubBatch Recipe[5].Name
Name field =[PhaseState]
Phase Step 6 PISubBatch Recipe[6].Name
Name field =[PhaseStep]
• Name
Defines the naming convention used by the interface to assign names to batch events. For
event frames, this template modifies the Recipe AF attribute. For the Batch database, this
template modifies the PIBatch name.
For example: abc_[Procedure] If the incoming event's [Procedure] field contains "Test", the
resulting procedure Recipe field is "abc_Test".
• Value
The value to be written to the property or attribute. Can be defined using placeholders as
well as fixed text.
Advanced features
• Batch ID
Configures the batch ID of the particular recipe object, overriding the incoming (default)
batch ID. If you override the batch ID for the procedure, the batch ID is propagated to the
child unit batches Batch ID field. For event frames, this template modifies the event frame
name.
Note:
If you use a recipe template to set the batch ID, the recipe template overrides any
batch ID mask you might have configured to enable merging of batches.
• Module/Element Path
Redirects the entry to a unit or PI AF element other than the one in the event. Specifies the
path for the desired module or AF element. Supports only unit procedure (level 2 and 4).
• Product
Specifies the product of the particular recipe object. Supports the procedure and unit
procedure [Product] fields, which must be present in the source event that creates the
batch. If a product trigger is not defined, this template is populated based on the data in the
event that creates the particular Recipe object.
• Product Trigger
Populates the [Product] field of the particular recipe object after the object is created, which
is useful if the product is defined in a separate event.
For example: [Parameter, Value="Recipe Header"] [Descript, value="Product
Name"].
Triggers
To specify the events that initiate updates to tags, properties or attributes, you define triggers.
You can define triggers for events read from the data source and for batch-related events
raised by the PI System itself (PI Events). To define triggers using PI Event Frame Interface
Manager, go to the Templates page, navigate to the desired tag, property or attribute template,
and click the Triggers tab.
If you omit triggers, the target is updated by every event. If you specify multiple conditions in a
single trigger, data is written only when all conditions are met (logical AND). If you define
multiple triggers, data is written when any one of the conditions is met (logical OR).
In the following example, the template is triggered when the PI System records the start of a
batch: [Event,value="PIEVENT"] [Descript, value="BATCH"] [Pval,
value="START"]
100 PI Interfaces for Batch and Manufacturing Execution Systems User Guide
PI Event Frames Interface Manager reference
Filters
You use the Filters tab to configure the recipes, units, phases, or phase states to be excluded
from processing by the interface.
PI Interfaces for Batch and Manufacturing Execution Systems User Guide 101
PI Event Frames Interface Manager reference
PI connection settings
• PI connection timeout (/PICONNTO=<seconds>)
Override the default PI SDK Connection TimeOut property.
• Retry (/RETRY=<seconds>)
Specifies how often the interface retries failed attempts to write data. The default is 60
seconds.
102 PI Interfaces for Batch and Manufacturing Execution Systems User Guide
PI Event Frames Interface Manager reference
Mode Description
Recovery Scan data source and generate or correct events
accordingly. always starts in recovery mode,
then switches to realtime mode.
Statistics Compare data source history against events and
report results without updating any data.
Delete Delete events for a specified period.
• Interface ID (/ID=x)
Specifies the numeric interface instance identifier (maximum nine digits). To detect PI
points maintained by the interface instance, the interface matches this setting against the
value in the points’ Location1 attribute.
Failover settings
• Failover tag (/FAILOVERTAG=x)
The PI tag to be used to coordinate failover.
PI Interfaces for Batch and Manufacturing Execution Systems User Guide 103
PI Event Frames Interface Manager reference
• Failover ID (/FAILOVERID=x)
A unique identifier for this interace instance, used to coordinate which instance is primary.
• Failover swap time (/SWAPTIME=<seconds>)
Specify how long an interface can be inactive before failover to another instance occurs.
Security settings
• Specify point security (/PTSEC=x)
Override the default point security created by the interface.
• PI Data Archive permissions (PI SMT: Browse to Security > Database Security)
◦ Database security: Enable read/write access for the PIPOINT table and read access for
PIBACKUP
◦ Point Database security: Set both PtSecurity and DataSecurity to read/write
◦ Enable read access to the active points
• PI Asset Framework permissions
◦ Database: read/write
◦ Categories: read
◦ Element: read/write
104 PI Interfaces for Batch and Manufacturing Execution Systems User Guide
PI Event Frames Interface Manager reference
Procedure
1. To assign permissions for the PI Data Archive, launch PI System Management Tools, and
click Security > Database Security.
2. For the user account under which the batch interfaces run, set the PIPOINT table to read
and write permission.
3. For the user account under which the batch interfaces run, set the PIBACKUP table to read
permission.
4. For PI points maintained by batch interfaces, set security as follows:
a. Set the PtSecurity to read and write permission for any point that the interface creates.
b. Set the DataSecurity to read and write permission for any point to which the interface
writes data.
You can set PI point permissions using PI System Management Tools by choosing Points >
Point Builder.
You can change point settings in bulk using the PI SMT plug-in for Microsoft Excel.
Procedure
1. Launch PI System Explorer.
2. Click Database on the toolbar.
PI Interfaces for Batch and Manufacturing Execution Systems User Guide 105
PI Event Frames Interface Manager reference
Procedure
1. To create a trust, launch PI System Management Tools and connect to the target server.
2. Click Security, and then click Mappings & Trusts.
3. Right-click within the Trusts tab, and click New Trust… . The Add Trust wizard launches.
4. Enter a meaningful name and description for the trust.
5. Configure the following settings:
Program Type of Trust Application Name
PI Event Frame Interface PI-API application BIFConfig.exe
Manager
Interface executable PI-SDK application Executable name
106 PI Interfaces for Batch and Manufacturing Execution Systems User Guide
PI Event Frames Interface Manager reference
Procedure
1. Configure instances of the interface on different host computers. Assign the same interface
ID and point source, and assign unique failover IDs to each instance.
You can configure more than two instances for failover.
2. In the target PI Data Archive, create a string tag and configure it with the same point source
and Location1 (interface ID) as the interfaces.
The interface instance uses this string tag to coordinate failover.
3. Using PI Event Frame Interface Manager, go to the Operational Settings tab and configure
the failover settings.
◦ Failover tag
The name of the tag that you created in the previous step.
◦ Failover identifier
A unique ID for the interface instance.
PI Interfaces for Batch and Manufacturing Execution Systems User Guide 107
PI Event Frames Interface Manager reference
108 PI Interfaces for Batch and Manufacturing Execution Systems User Guide
Command-line parameter reference
To configure an interface, you use the PI Event Frames Interface Manager, which maintains a
Windows command (.bat) file that specifies settings using command line parameters. This
appendix describes the command line parameters in the .bat file and is provided for
troubleshooting purposes.
Note:
To ensure a valid .bat file, do not edit the file manually. Always use PI Event Frames
Interface Manager to configure settings.
The following table is a compilation of the command line parameters from all the OSIsoft batch
framework interfaces. Some parameters are specific to an interface. To list the parameters
supported by your interface, invoke its executable at the command line, specifying the -? flag.
Parameter Description
/abto=<#days> (Optional) Specifies how long, in addition to the
CACHETIME setting, the interface waits before
closing a batch for which no end event has arrived.
When an abandoned batch is closed, the interface
uses the timestamp of its last event as the end time
and logs an "Abandoned batch found" message.
Default is 100 days, minimum is .042 days
(approximately one hour), and maximum is 365
days.
/adu=[true | false] (Optional) Enable the creation of unit batches for
recipes in units that are allocated at the phase
level rather than the unit batch level. By default,
the interface requires the unit name to be present
in the unit batch start event. When you enable /
adu, the interface creates the unit batch and defers
setting the unit name until the phase-level
allocation event arrives.
PI Interfaces for Batch and Manufacturing Execution Systems User Guide 109
Command-line parameter reference
Parameter Description
/bidm=<list> (Optional) Override the incoming batch ID by
selecting a substring. Specify one or more masks
composed of text and wildcards, to be used to
compose the desired batch ID from the contents of
the source BatchID field. The resulting batch ID is
used for the Batch ID field of the top-level
procedure and for the [BATCHID] placeholder. By
default, the batch ID field in unit procedures
contain the full batch ID from the data source. To
use the truncated batch ID instead, configure the
TBID setting.
Valid wildcards are as follows:
Wildcard Description
# Single digit numerical
value, 0-9
@ Single alpha character,
a-z, A-Z
? Any single symbol
! Repeat the previous
mask symbol
* Any set of symbols
Mask Result
"#####" 30112
"##@!" 90dev
"*##@!" lot30112 / 90dev
"@@@@, #8dev4, #!" 30112
110 PI Interfaces for Batch and Manufacturing Execution Systems User Guide
Command-line parameter reference
Parameter Description
/dac (Optional) Disable arbitration counters: directs the
interface to release a unit on the first resource
release event even if the number of acquire events
is higher than number of release events. By
default, the interface requires the number of
acquire and release events for a unit to be the
same.
/damcae (Optional) Ignore events from Alarms and Events
data source when creating or checking PI Module
Database objects. If the module path defined for an
AlarmTag[#].Alias entry contains $ (root node
symbol), the interface checks the module path
regardless of whether this option is enabled.
/datasec=<string> (Optional) Specifies the security settings to be
assigned to interface-generated tags. For PI Data
Archive 3.4.375.99 or earlier, use owner, group,
world format. Example: /datasec="o:rw g:r
w:r" For PI Data Archive 3.4.380.36 or later,
specify an access control list (ACL). Example: /
datasec="piadmin: A(r,w) | PIEngineers:
A(r)"
/db=[#] (Optional) Enabled debugging output:
• 0: Log only errors and warnings (default)
• 1: Log errors, warnings and major success
messages
• 2: Log all messages (most verbose)
/dpretc (Optional – event frames only) Disable
propagation of referenced elements to children. By
default, the interface propagates each event frame
element reference to its children event frames.
/dumpread=<filename> (Optional) Read data from a dump file. For
troubleshooting only.
/dumpwrite=<filename> (Optional) Create a dump file containing the data
currently being processed by the interface. For
troubleshooting only.
/equipmentXML=<filepath> (Optional) Specifies the location of the DeltaV-
generated equipment hierarchy XML file. The
EMDVB interface uses this reference data to locate
missing ProcessCell field by searching based on
the combination of Area and Unit fields. Valid only
when a DeltaV AE SQL datasource is defined.
Example: /EquipmentXML="C:\DeltaV
\EquipHier.xml"
/failoverID=<string> (Optional) Configure a unique failover ID for the
interface instance. Must be used with the /
FailOverTag parameter.
Example: /FailOverID="intf1"
PI Interfaces for Batch and Manufacturing Execution Systems User Guide 111
Command-line parameter reference
Parameter Description
/failovertag=<tag name> (Optional) Specifies the PI tag to be used to track
the primary interface instance. Must be used with
the /FailOverID parameter.
Example:
/FailOverTag="Batch_FailoverTag"
112 PI Interfaces for Batch and Manufacturing Execution Systems User Guide
Command-line parameter reference
Parameter Description
/merge (Optional) Enable merging of multiple source
batches with same ID. The original data for each
batch merged is stored in PI properties under a
node named using the ID of the original batch. The
data includes the original batch ID, start time
(UTC), end time (UTC), product and formula name.
The interface merges only batches that are cached
in local memory. The time frame for merging is
configured using the /cachetime switch.
If the IDs of the batches you want to merge are
different, use the /bidm flag to override incoming
IDs.
Example: Given the following five batches running
within the cache time frame:
• Test12345_1
• Test_12345_2
• CleaningTest
• USPO12345_test
• CleaningTest
With merging enabled, only the Cleaningtest
batches are merged. To merge the other three
batches, which have IDs containing the string
"12345", specify /bidm=#####.
PI Interfaces for Batch and Manufacturing Execution Systems User Guide 113
Command-line parameter reference
Parameter Description
/mode=<mode> (Optional) Valid modes are as follows:
Realtime: (Default) Real-time data collection. If a
recovery start time is specified (/rst), the
interface recovers data before starting realtime
collection.
Stat: Statistics mode. Compare source data with
the corresponding PI System batch data. The
interface does not write to or modify any data PI
batch data. On completion, the interface reports
results and stops.
Delete: Delete batch data from PI archives for
specified period, leaving data from all other
sources intact. Use only if the interface is unable to
synchronize source batch data with the PI System.
Must be used in conjunction with the recovery
mode switches (/rst and /ret).
NoData: Newly-added tags, units and modules are
indexed (referenced) in the primary PI archive, but
older archives do not have entries for these
modules, units and tags. In NoData mode, the
interface creates modules, units, tags and tag
aliases without processing batch data and writing
events to the tags. To recover batch data for a
period prior to the one in the primary archive, you
must reprocess older archives with the offline
archive utility. Manual archive reprocessing
creates indexes for newly-added units, modules,
tags. Always run the interface in this mode before
writing new batch data to older PI archives (that
is, archives other than the primary archive).
114 PI Interfaces for Batch and Manufacturing Execution Systems User Guide
Command-line parameter reference
Parameter Description
/ns[=lang] (Optional) Perform numerical conversions using
the specified language’s conventions. Useful when
the numerical conventions differ from the default
settings (for example, comma instead of decimal
point). Default is "English_UnitedStates". If you
omit the language parameter, the interface uses
the "Regional and Language Options" settings in
effect for the interface node.
Language types and abbreviations:
• chinese chinese-simplified (chs)
• chinese-traditional (cht)
• czech (csy)
• danish (dan)
• belgian, dutch-belgian (nlb)
• dutch (nld)
• australian, english-aus (ena)
• canadian, english-can (enc)
• english english-nz (enz)
• english-uk (uk)
• american, american-english, english-american,
english-us, english-usa, (enu) (us) (usa)
• finnish (fin)
• french-belgian (frb)
• french-canadian (frc)
• french (fra)
• french-swiss (frs)
• german-swiss, swiss (des)
• german (deu)
• german-austrian (dea)
• greek (ell)
• hungarian (hun)
• icelandic (isl)
• italian (ita)
• italian-swiss (its)
• japanese (jpn)
• korean (kor)
• norwegian-bokmal (nor)
• norwegian norwegian-nynorsk (non)
• polish (plk)
• portuguese-brazilian (ptb)
• portuguese (ptg)
• russian (rus)
• slovak (sky)
• spanish (esp)
• spanish-mexican (esm)
• spanish-modern (esn)
• swedish (sve)
PI Interfaces for Batch and• Manufacturing
turkish (trk) Execution Systems User Guide 115
Command-line parameter reference
Parameter Description
/piconnto=<seconds> (Optional) Override the default SDK setting for PI
connection timeout.
/pidato=<seconds> (Optional) Override the default SDK setting for PI
data access timeout.
/pipswd=<password> (Optional) Specify the user password to be used to
connect to the PI Data Archive. By default, the
interface uses PI trusts for authentication.
/piuser=<name> (Optional) Specify the user name to be used to
connect to the PI Data Archive. By default, the
interface uses PI trusts for authentication.
/print=<filename> (Optional) Prints the results of first scan to
specified text file. The results include the batch
tree, tag list, and equipment tree. Used for
troubleshooting.
/ps=pointsource Specifies the point source for the points
maintained by the interface.
/ptsec=<string> (Optional) Specifies the access security settings to
be assigned to interface-generated tags. For PI
Data Archive version 3.4.375.99 or earlier, use
owner, group, world format.
Example:
/ptsec="o:rw g:r w:r"
For PI Data Archive version 3.4.380.36 or later,
specify an access control list (ACL). Example:
/ptsec="piadmin: A(r,w) | PIEngineers:
A(r)"
116 PI Interfaces for Batch and Manufacturing Execution Systems User Guide
Command-line parameter reference
Parameter Description
/restef (Optional) Enables an event frame with references
to inherit security settings from its primary
reference element.
/ret=<datetime> (Optional) Specifies the end time for data recovery.
The interface recovers batches that start before
the specified time, including batches that end after
the specified end time. Specify the time using the
interface node format and time zone.
/retry=<seconds> (Optional) Specifies how often the interface retries
a failed attempt to write data. The default is 60
seconds.
/retryto=<seconds> Specifies how long the interface retries a failed
attempt to write data before timing out. By default,
the interface never times out. If you configure a
timeout setting, be advised that you risk losing
data.
/rst=<datetime> (Optional) Specifies recovery start time. The
interface recovers batches that start after the
specified time, as well as batches that start before
the specified time but end after it. Specify the time
using the interface node format and time zone.
/rti Remove trailing index from Recipe fields.
Applicable to Procedure, Unit Procedure and
Operation Recipe fields. Emerson EVT data source
only.
/scan=<seconds> (Optional) Specifies, in seconds, how often to scan
the data source for new data. The default is 60
seconds. A scan that returns a large amount of data
can cause the interface to skip the subsequent
scan.
/singlerun (Optional) Perform one scan and stop.
/smp="equipment path" (Optional) Specifies an alternate PI Module path or
PI AF element path for a particular equipment
hierarchy. By default, the interface scans starting
at the root level. Use the following syntax:
\\<RootModule>\<SubModule>\<…>
/sqlconnto=<seconds> (DeltaV SQL only) (Optional) Override the default SQL timeout
setting (60 seconds).
/sqldato=<seconds> (DeltaV SQL only) (Optional) Override the default SQL data access
timeout setting (100 seconds).
/swaptime=<seconds> (Optional) Specifies, in seconds, how long the
current primary interface must be unavailable
before failover occurs. Default: 300 seconds.
/tbid (Optional) Use the truncated batch ID in the batch
ID field of unit procedures. Incoming batch IDs are
reformatted using the mask defined in the /bidm
parameter.
PI Interfaces for Batch and Manufacturing Execution Systems User Guide 117
Command-line parameter reference
Parameter Description
/tbse (Optional) Directs the interface to use top level
recipe start/end events for creating batch objects.
By default, the interface uses batch load/unload
events. Intended for batches with S88 recipe types:
Procedure, Unit Procedure, Operation, and Phase.
/ts=GMT | LCL (Optional) Specifies how the interface interprets
event timestamps from an SQL data source.
Options are local time or GMT. Default is GMT.
/uobev (Optional) Directs the interface to use the original
batch event view. By default the interface queries
(DeltaV SQL 9.3+ ONLY) 17 tables to retrieve data for batch-associated
events. Note that this view does not provide
explicit [Descript], [Pval] and [EU] fields. Instead
the [Descript] field combines data from all three
fields. This option is provided for backward
compatibility.
/ubr (Emerson DeltaV only) (Optional) Use DeltaV Batch Recipe View data
instead of Recipe State Changes to detect start and
end events. The Recipe State Change timestamps
differs from Batch Recipe timestamps, as a result,
inconsistencies in timestamps might occur.
/uidlist=<list> Optional (FTBInt, WPASX and (Optional) Recover specified manufacturing
Wonderware only) orders, then exit. Specify a comma-separated list of
unique IDs of the manufacturing orders to be
recovered. For WPASX, the IDs can be obtained
from the source
PASX.ManufacturingOrder.EntityKey column. This
parameter overrides any settings specified for
the /rst and /ret recovery switches. Example:
/uidlist=5010350293,5011438395
118 PI Interfaces for Batch and Manufacturing Execution Systems User Guide
Initialization file reference
The initialization (.ini) file stores configuration information about data sources, translations,
product template, equipment template, tag templates and property templates. This file is
generated and updated by the PI Event Frame Interface Manager configuration tool.
The information in this appendix is intended for troubleshooting purposes, to enable you to
understand the contents of the .ini file.
Note:
Do not edit the .ini file manually.
The .ini file is divided into the following sections:
• SOURCE TEMPLATE: Specifies the settings required to connect to the data source, events to
be skipped (filtered)
• GENERAL: Specifies a prefix to be prepended to the unit name when the interface creates a
PI unit.
• TAG TEMPLATE: Contains templates that define how tags are to be created based on
incoming data from the data source.
• PROPERTY TEMPLATE: Contains templates that define how PI properties are to be created
based on incoming data from the data source.
• TRANSLATIONS: Maps text from the data source language to the target language for the PI
System.
The following table describes optional settings that are stored in the .ini file.
Parameter Description
excludestates=<list> Specifies a comma-separated list of phase states to
ignore. Not case-sensitive. You can use wildcards
for matching. Examples:
excludestates=COMPLETED,AB*ING
excludestates="COMPLETED, ABO*ING"
excludestates= IDLING, COMPLE*
PI Interfaces for Batch and Manufacturing Execution Systems User Guide 119
Initialization file reference
Parameter Description
skipunits=<list> Specifies a comma-separated list of units to ignore.
Not case-sensitive. You can use wildcards for
matching. The interface checks the list against the
corresponding [Unit] field. Example:
skipunits = unit_1, u*2
120 PI Interfaces for Batch and Manufacturing Execution Systems User Guide
Diagnostic tag reference
Performance tags, which are automatically created for each instance of the interface, enable
you to monitor the performance of the instance. There are 35 performance tags, categorized as
follows:
• Health monitoring
• Object counters
• Timers
• "Good": The interface is properly communicating and reading data from the data sources.
• "1 | Starting": The interface is executing its initialization routines.
• "2 | <details>": Indicates successful connection to the data source.
• "3 | <details>": Indicates failure to access the event journal file directory or failure to read
data from the event journal file.
The properties of health monitoring tags are provided in the table below, where the Prefix
represents <Interface>_<ID>. Note, if these tags do not exist. the interface creates them
automatically during startup.
Tag name Point Type Loc1 Loc3 PointSource ExcDesc
Prefix_DeviceSt Int32 Intf ID 0 Intf Pt Src [UI_DEVSTAT]
atus
Prefix_HeartBe Int32 Intf ID 1 Intf Pt Src [UI_HEARTBEA
at T]
The attributes for each performance counter tag are provided in the table below where the
Prefix is defined as _<Interfaceid>. All counters are set to 0 when the interface starts up.
PI Interfaces for Batch and Manufacturing Execution Systems User Guide 121
Diagnostic tag reference
122 PI Interfaces for Batch and Manufacturing Execution Systems User Guide
Diagnostic tag reference
Timers
The last performance tag category is composed of timer tags, which are built automatically on
first interface startup. Each timer tag reports on how much time per scan it took the interface
to perform a particular task. There are three categories of timer tag: data source reading, local
data caching and synchronizing cached data with the PI System.
Attributes of performance timer tags
Tag Name Loc3 ExcDesc Description
<interfaceID>_Sourc 26 [UI_SOURCEREADTIME] The time per scan it
eReadTime took the interface to
read data from data
source(s).
<interfaceID>_TagCa 27 [UI_TAGCACHETIME] The time per scan it
cheTime took the interface to
populate local tag cache.
<interfaceID>_Batch 28 [UI_BATCHCACHETIME] The time per scan it
CacheTime took the interface to
populate the local batch
cache.
<interfaceID>_Equip 29 [UI_EQUIPCACHETIME] The time per scan it
mentCacheTime took the interface to
populate the local
equipment (module)
cache.
PI Interfaces for Batch and Manufacturing Execution Systems User Guide 123
Diagnostic tag reference
124 PI Interfaces for Batch and Manufacturing Execution Systems User Guide
Event file monitor utility
For interfaces that can use event journal files for a data source, OSIsoft provides a utility that
automatically copies new event journals from the directory where the BES creates them to the
directory where the interface processes them.
The utility is installed in the same directory as the interface, along with a template Windows
command file that you can copy and edit to launch the utility with the desired settings. The
executable file name ends with "Sync" (for example, EVTSync.exe).
To configure the utility, copy and edit the batch file, specifying settings using command line
parameters as follows:
Parameter Description
/dest=<path> Full path to destination directory, where the
interface processes incoming event journals.
/rate=# Optional rate in seconds to scan source and
destination directory. Default scan rate is 30
seconds. This parameter must be an integer value.
/src=<path> Full path to source directory, where the BES
creates event journals.
After specifying settings, invoke the batch file to verify that the utility launches without errors.
To ensure that the utility restarts when the interface node is rebooted, configure a Windows
automatic service. To install the service, invoke the executable, specifying the -install
switch. For example: EVTSync.exe –install.
To verify that the service was added successfully, check the Microsoft Windows Services
control panel.
PI Interfaces for Batch and Manufacturing Execution Systems User Guide 125
Event file monitor utility
126 PI Interfaces for Batch and Manufacturing Execution Systems User Guide
Supported features
Platforms: (32-bit or 64-bit in emulation mode)
• Windows Vista
• Windows 2008 and Windows 2008 R2
• Windows 7
• Windows 8
• Windows Server 2012
No native 64-bit builds of the interfaces are available.
Feature Support
Part Number See interface-specific chapter
Auto-creates PI Points and equipment assets? Yes
Point Builder Utility No
ICU Control No (use PI Event Frame Interface Manager
configuration tool)
PI Point Data Types* Integer/ Float32/ String
Sub-second Timestamps Yes
Sub-second Scan Classes No
Automatically Incorporates Changes to PI Point No
Attributes
Exception Reporting No
Outputs from PI No
Inputs to PI Event and Scan-based
Supports Questionable Bit No
Supports Multi-character PointSource Yes
Maximum Point Count No maximum
Uses PI SDK Yes: version 1.3.4.333 or higher required
Uses AF SDK Yes: version 2.5.x or higher required
PINet String Support N/A
Source of Timestamps * BES (not system time on interface node)
History Recovery Yes
UniInt-based No
Disconnected Startup * No
SetDeviceStatus * Yes
Failover Yes
Vendor Software Required on PI Interface Node No (except for the Siemens SIMATIC interface)
Vendor Hardware Required No
Additional PI Software Included with Interface Yes
PI Interfaces for Batch and Manufacturing Execution Systems User Guide 127
Supported features
Feature Support
Device Point Types The interface receives data from source as strings
and coerces the data into numerical types
according to tag templates, if defined.
Serial-Based Interface No
History recovery
You can stop the interface without losing any data, because the data is persistent in the data
source. Data recovery is limited by the history available from the BES, the number of licensed
PI tags, and the size and time frame of the PI archives into which data is recovered.
128 PI Interfaces for Batch and Manufacturing Execution Systems User Guide
Technical support and other resources
For technical assistance, contact OSIsoft Technical Support at +1 510-297-5828 or through the
OSIsoft Tech Support website (https://techsupport.osisoft.com). The website offers additional
contact options for customers outside of the United States.
When you contact OSIsoft Technical Support, be prepared to provide this information:
PI Interfaces for Batch and Manufacturing Execution Systems User Guide 129
Technical support and other resources
130 PI Interfaces for Batch and Manufacturing Execution Systems User Guide