Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

PI Interface for Siemens SIMATIC Batch

Property templates

  • Last UpdatedMar 11, 2025
  • 4 minute read

To define properties (batch database) or attributes (PI AF) to be stored at a particular level of the batch hierarchy, you create property templates. The syntax for property templates is as follows:

PROPERTY[<index>].<setting> = <value>

Instead of PROPERTY, you can specify ATTRIBUTE. The <index> is a unique identifier used to group the settings for a particular property. To include data from the data source, specify placeholders.

For example, if you define the following template:

Property[1].Value=[Time]:[Descript]:[Pval]:[EU]-[Event]_Testing

...and the interface applies it to the following incoming data:

[Time]="12/01/2015 12:01:05"
[Descript]=abc
[Pval]=123.456
[EU]=cm
[Event]=Report

The following property is added to the resulting batch or batch-level event frame:

12/01/2015 12:01:05:abc:123.456:cm-Report_Testing

Property template settings

The following section describe the setting required to define property templates

  • NAME

    (Optional) Specifies how the property is to be named. You can use an expression to configure the name, but note that the resulting name must be unique. If two different name templates generate the same name, the property value will be overwritten and no error is logged. If you omit the name setting, the interface assigns a default name ("Event_n").

    By default, properties are created at the level of the batch hierarchy that triggers their creation. To create a property at the top of the hierarchy, regardless of where it was triggered, specify "$" at the beginning of the expression that defines the name.

    For example:

    Property[1].Name = $\[Event]

    Additionally, you can use the not equals syntax ("!+") with anything that has a comparison.

    For example:

    Property[1].Trigger = [UNITPROCEDURE, value!=""]

    Property[1].Trigger = [UNITPROCEDURE, value!="*"]

    Property[1].Trigger = [UNITPROCEDURE, value!="aprefix"]

    In this example, the property on the first UNITPROCEDURE placeholder triggers without meeting any condition. The second placeholder triggers with any value while the third triggers only if the condition equals "aprefix".

    Valid placeholders

    • [AREA]

    • [BATCHID]

    • [COMMENT]

    • [DESCRIPT]

    • [EU]

    • [EVENT]

    • [OPERATION]

    • [PHASE]

    • [PHASEMODULE]

    • [PHASESTATE]

    • [PHASESTEP]

    • [PROCEDURE]

    • [PROCESSCELL]

    • [PVAL]

    • [TIME]

    • [UNIQUEID]

    • [UNIT]

    • [UNITPROCEDURE]

    • [USERID]

    • [@.value="Exact Field"]

    • [#.value="Field Mask"]

    • [!.value="Example"]

    • [?.value="Tag"]

    • [*.value="Unit"]

    • Advanced parsing

  • VALUE

    (Required) Specifies the value to be stored in the property. To compose the value, you can use free text plus valid placeholders.

    Basic example:

    Property[1].Value = [BatchID] | event: <State*> | [Descript] | val: [Pval]

    Advanced parsing:

    Property[1].Value = [BatchID] | event: [*,value=”State*”] | [Descript] | val: [Pval]

    Note: For SQL data sources with the "Use original batch event view" option enabled (/UOBEV), you cannot use the [PVAL] or [EU] placeholders. To obtain this data you must parse it from the [DESCRIPT] placeholder.

    Additionally, you can use the not equals syntax ("!+") with anything that has a comparison.

    For example:

    Property[1].Name= $\[Event, value!=""]

    Property[1].Name= $\[Operation, value!=""]

    Valid placeholders

    • [AREA]

    • [BATCHID]

    • [COMMENT]

    • [DESCRIPT]

    • [EU]

    • [EVENT]

    • [OPERATION]

    • [PHASE]

    • [PHASEMODULE]

    • [PHASESTATE]

    • [PHASESTEP]

    • [PROCEDURE]

    • [PROCESSCELL]

    • [PVAL]

    • [TAG]

    • [TIME]

    • [UNIQUEID]

    • [UNIT]

    • [UNITPROCEDURE]

    • [USERID]

    • [@.value="Exact Field"]

    • [#.value="Field Mask"]

    • [!.value="Example"]

    • [?.value="Tag"]

    • [*.value="Unit"]

    • Advanced parsing

  • TRIGGER

    Specifies the event that causes the interface to generate the property. To define a trigger, specify an expression composed of a placeholder and value. When the interface detects the specified value in the placeholder, it generates the property. You can specify multiple triggers for a single property. If you specify the triggers on a single line, the property is generated only when all the conditions are met (logical AND). If you specify the trigger expressions on separate lines, the property is generated when any of the conditions is met (logical OR).

    Examples:

    Property[1].Trigger = [Parameter, value=”State Ch*”]
    Property[1].Trigger = [Value, value=”tes*”]
    Property[1].Trigger=[Event, value=”State*] [Pval,value=RUNNING”]

    Property[1].Trigger=[Event]

    Additionally, you can use the not equals syntax ("!+") with anything that has a comparison.

    For example:

    Property[1].Trigger = [UNITPROCEDURE, value!=""]

    Property[1].Trigger = [UNITPROCEDURE, value!="*"]

    Property[1].Trigger = [UNITPROCEDURE, value!="aprefix"]

    In this example, the property on the first UNITPROCEDURE placeholder triggers without meeting any condition. The second placeholder triggers with any value while the third triggers only if the condition equals "aprefix".

    You can specify multiple triggers for a single property. If you specify the triggers on a single line, the property is generated only when all the conditions are met (logical AND). If you specify the trigger expressions on separate lines, the property is generated when any of the conditions is met (logical OR).

    Here is an example of a logical AND trigger where all conditions must be met:

    .TRIGGER=[Event, value=”Recipe Header”][Descript, value=”Description”][Value, value=”My Description”]

    Conversely, the following is an example of a logical OR trigger. At least one of these conditions must be met:

    .TRIGGER=[COMMENT, value=""]

    .TRIGGER=[EVENT, value=three]

    .TRIGGER=[PHASESTATE, value=active]

    .TRIGGER=[UNIT, value=S88]

    Valid placeholders

    • [AREA]

    • [BATCHID]

    • [COMMENT]

    • [DESCRIPT]

    • [EU]

    • [EVENT]

    • [OPERATION]

    • [PHASE]

    • [PHASEMODULE]

    • [PHASESTATE]

    • [PHASESTEP]

    • [PROCEDURE]

    • [PROCESSCELL]

    • [PVAL]

    • [UNIQUEID]

    • [UNIT]

    • [UNITPROCEDURE]

    • [USERID]

    • [@.value="Exact Field"]

    • [#.value="Field Mask"]

    • [!.value="Example"]

    • [?.value="Tag"]

    • [*.value="Unit"]

    • Advanced parsing

  • TRANSLATE

    To specify that the value is to be translated according to the translation map you define set this setting to TRUE.

    Valid placeholders

    • TRUE

    • FALSE

  • TYPE

    Specifies the data type for the value. To configure the interface to evaluate the data and assign the data type accordingly, specify AUTO..

    Valid placeholders

    • STRING

    • FLOAT

    • INTEGER

    • AUTO

  • CATEGORY

    (AF only) Specifies the AF category to be assigned to the attribute.

    Valid placeholders

    • [AREA]

    • [BATCHID]

    • [COMMENT]

    • [DESCRIPT]

    • [EU]

    • [EVENT]

    • [OPERATION]

    • [PHASE]

    • [PHASEMODULE]

    • [PHASESTATE]

    • [PHASESTEP]

    • [PROCEDURE]

    • [PROCESSCELL]

    • [PVAL]

    • [TIME]

    • [UNIQUEID]

    • [UNIT]

    • [UNITPROCEDURE]

    • [USERID]

    • [@.value="Exact Field"]

    • [#.value="Field Mask"]

    • [!.value="Example"]

    • [?.value="Tag"]

    • [*.value="Unit"]

    • Advanced parsing

  • UOM or ENGUNITS or EU

    Specifies the units of measure for the attribute. (See /UOBEV note for VALUE setting, above.).

    Valid placeholders

    • [AREA]

    • [BATCHID]

    • [COMMENT]

    • [DESCRIPT]

    • [EU]

    • [EVENT]

    • [OPERATION]

    • [PHASE]

    • [PHASEMODULE]

    • [PHASESTATE]

    • [PHASESTEP]

    • [PROCEDURE]

    • [PROCESSCELL]

    • [PVAL]

    • [TIME]

    • [UNIQUEID]

    • [UNIT]

    • [UNITPROCEDURE]

    • [USERID]

    • [@.value="Exact Field"]

    • [#.value="Field Mask"]

    • [!.value="Example"]

    • [?.value="Tag"]

    • [*.value="Unit"]

    • Advanced parsing

TitleResults for “How to create a CRG?”Also Available in