Settings and Changeover Tree Editor

Sepasoft MES Module Suite

Perspective Settings Tree Editor

The Settings Tree Editor is the Perspective component used to manage Settings & Changeover (SCO) machine recipes, equipment bindings, and setpoint values. Import and export of those setting values is built into this component: operators and engineers can download an XML snapshot of selected recipes, or load an XML file to create or update recipes, equipment bindings, and setpoint values.

Use import/export when you need to back up setting values, copy a recipe hierarchy between gateways or environments, or bulk-apply setpoint changes without editing each row in the tree.

Installed with the Production module (Settings and Changeover).

Find this component under the Ignition Designer Perspective Component Palette in the Settings and Changeover category, named Settings Tree Editor.

Import and export toolbar actions are shown only when props.enableRecipeEditing is true (the default). Set that property to false for a read-only tree that cannot import or export.

Note Recipe value definitions (the setpoint definitions on equipment, including tags) are not created by this import. Those definitions are configured on equipment in the Designer. Import applies values to existing setpoint definitions. Equipment paths in the file must already exist.


How import/export works

Export writes an XML file from the Gateway for the recipes, equipment, and setpoints that match the export filters. The browser downloads that file. Each exported recipe is recorded in the Settings changelog as a recipe export event.

Import reads an XML file from the operator’s workstation, then creates or updates matching recipes, equipment bindings, and setpoint values on the Gateway. Each imported recipe is recorded in the Settings changelog as a recipe import event.

The tree selection does not decide where imported recipes are stored. Placement comes from the file (recipe paths) plus the import options Parent Setting Name and Keep Import Hierarchy.

Existing Settings Tree Editor behavior is unchanged when import/export is not used.

Capabilities

Capability

Description

Export setting values

Download an XML file of machine recipes, bound equipment, and setpoint values.

Filter the export

Limit the file by setting (recipe) name, equipment path, and setpoint name. * and ? wildcards are supported.

Import setting values

Load an XML file to create missing recipes, bind equipment, and set setpoint values.

Preserve or flatten hierarchy

Keep parent/child recipe relationships from the file, or attach imported recipes under a chosen parent (or the recipe root).

Skip inherited values

Optionally import only values assigned by the recipe itself, not values inherited from a parent recipe.

Change notes

When props.requireChangeNote is true, a change note is required before import or export can run. Notes are stored in the Settings changelog.

Bulk create/update

One file can include multiple recipes and multiple equipment paths. Missing recipes and item recipes are created; existing setpoint values are overwritten.

Changelog

Import and export are logged as recipe import / recipe export events and can be reviewed in Settings Changelog.


What import/export does not do:

  • Create equipment or setpoint definitions (tags, units, data types). Those must already exist.

  • Delete recipes, equipment bindings, or setpoints that are absent from the file.

  • Export or import Vision-style CSV from the Perspective file picker (the picker accepts .xml).

How to use

Export setting values

  • Place a Settings Tree Editor on a Perspective view and launch a session (or Preview).

  • Select a node in the tree:

    • Recipe root — default filters include all settings and all equipment (*).

    • Setting (recipe) — default setting-name filter is that recipe name; equipment path is *.

    • Equipment (item recipe) — default setting-name filter is the parent recipe name; equipment path is that equipment path plus *.

  • Click the Export toolbar button. Export is enabled when a recipe root, recipe, or item recipe is selected and the component is not busy.

  • In Export Setting Values, review or change:

    • File Name (required) — default is scoValuesExport_yyyyMMdd_HHmmss.xml.

    • Setting Name Filter (required) — recipe names to include. * and ? wildcards are allowed.

    • Equipment Path Filter (required) — production equipment paths to include. * and ? wildcards are allowed.

    • Setpoint Name Filter (required) — setpoint names to include. * and ? wildcards are allowed (*Weight* matches Min Weight, Max Weight, Target Weight).

    • Change Note — required when props.requireChangeNote is true.

  • Confirm export. The Gateway builds XML for matching values and the browser downloads the file. The export drawer then closes.


If no values match the filters, export fails with an error and no file is downloaded.

Import setting values

  • Click the Import toolbar button (shown when recipe editing is enabled). Tree selection is not required; it only pre-fills Parent Setting Name when a recipe (not the root) is selected.

  • Choose an .xml file produced by this component (or by system.recipe.exportRecipeXML).

  • In Import Setting Values, set:

    • Parent Setting Name — optional. If set, that recipe must already exist and is used as the parent for recipes in the file that have no parent. If blank, those recipes attach to the recipe root.

    • Keep Import Hierarchy — default on. Uses each recipe’s path in the file to attach it under its parent recipe when that parent exists. When off, imported recipes attach under Parent Setting Name (or the root) instead of restoring the file hierarchy.

    • Skip Inherited Values — default off. When on, setpoints whose AssignedBy is not the recipe itself are skipped (inherited parent values are not written as overrides).

    • Change Note — required when props.requireChangeNote is true.

  • Confirm import. The tree refreshes after a successful import.

Recipes named in the file are created if they do not exist (name, description, state, and group are applied). Equipment bindings (item recipes) are created if they do not exist. Setpoint values are created or updated when the equipment already has a matching setpoint definition.

Equipment paths that do not exist are skipped (logged on the Gateway). Missing recipe paths in the file are skipped. Import does not stop the whole file for a single skipped equipment path.

Component Properties

Properties can be set in the Perspective Property Editor or through scripting. The section prefix is included before the property name (props, position, custom, or meta).

Example

Python
self.getSibling("SettingsTreeEditor").props.requireChangeNote = True
self.getSibling("SettingsTreeEditor").props.enableRecipeEditing = True

Component properties that affect import/export

Name

Scripting

Property Type

Description

Enable Recipe Editing

enableRecipeEditing

Boolean

When true (default), recipes can be created, modified, and deleted, and the Import/Export toolbar actions are shown. When false, the tree is read-only and import/export is hidden.

Require Change Note

requireChangeNote

Boolean

When true, a change note is required before import, export, or other saves. Defaults to false.

Other Settings Tree Editor properties

These properties control what the tree shows and what can be edited. They do not change the XML format, but they can limit which nodes operators select before export.

Name

Scripting

Property Type

Description

Orientation

orientation

String

Split pane direction: Vertical (default) or Horizontal.

Enable Equipment Paging

enableEquipmentPaging

Boolean

When true (default), equipment selection options are returned in pages of fixed size.

Enable Group Creation

enableGroupCreation

Boolean

When true (default), new recipe group labels may be created.

Enable Recipe Paging

enableRecipePaging

Boolean

When true (default), recipes are returned in pages of fixed size.

Enable State Creation

enableStateCreation

Boolean

When true (default), new recipe state labels may be created.

Enable Value Editing

enableValueEditing

Boolean

When true (default), setpoint value overrides may be modified and reverted. Does not hide import/export.

Include Recipe Page Parents

includeRecipePageParents

Boolean

When true (default), parent entities remain visible when navigating between pages.

Equipment Path Filter

equipmentPathFilter

String

Optional production equipment filter to limit shown recipes.

Group Filter

groupFilter

String

Optional group label filter to limit shown recipes.

Recipe Name Filter

recipeNameFilter

String

Optional recipe name filter to limit shown recipes.

Setpoint Name Filter

setpointNameFilter

String

Optional setpoint name filter to limit shown setpoints.

State Filter

stateFilter

String

Optional state label filter to limit shown recipes.

Hide Descendant Recipes

hideDescendantRecipes

Boolean

When true, hides recipes that have parent recipes. Defaults to false.

Hide Item Recipes

hideItemRecipes

Boolean

When true, hides production equipment under settings. Defaults to false.

Hide Master Recipes

hideMasterRecipes

Boolean

When true, hides recipes that have child recipes. Defaults to false.

Hide Setpoints

hideSetpoints

Boolean

When true, hides setpoints and their values. Defaults to false.

Style

style

Style Object

Perspective style applied to the component. Refer to the Ignition Style Reference for classes, colors, fonts, and related settings.

Additional style objects are available for buttons, checkboxes, dialogs, inputs, menus, tables, toolbars, and tooltips (buttonStyle, checkboxStyle, dialogStyle, inputStyle, toolbarStyle, and others).

Export Setting Values fields

These fields appear in the export drawer. They are not Designer props.

Field

Required

Description

File Name

Required

Download file name. Default: scoValuesExport_yyyyMMdd_HHmmss.xml.

Setting Name Filter

Required

Recipe names to export. * matches all; ? matches one character. Pre-filled from the tree selection.

Equipment Path Filter

Required

Equipment paths to export. * and ? wildcards are allowed. Pre-filled from the tree selection.

Setpoint Name Filter

Required

Setpoint names to export. * and ? wildcards are allowed. Defaults to *.

Change Note

When requireChangeNote is true

Stored on the recipe export changelog events.


Import Setting Values fields

These fields appear in the import drawer after a file is chosen. They are not Designer props.


Field

Required

Description

Parent Setting Name

Optional

Existing recipe to use as parent for imported recipes that have no parent. Pre-filled from the selected recipe when it is not the root. Leave blank to attach those recipes to the recipe root.

Keep Import Hierarchy

Optional (default on)

When on, restore parent/child relationships from recipe paths in the file. When off, attach imported recipes under Parent Setting Name (or the root).

Skip Inherited Values

Optional (default off)

When on, skip setpoints whose assigned-by recipe is not the recipe being imported.

Change Note

When requireChangeNote is true

Stored on the recipe import changelog events.

Position, Custom, and Meta Properties

Position — Component layout properties. Refer to Ignition Perspective Component Properties for details.

Custom — New user-defined custom properties can be created in this section. Best practice: if user-defined properties are required, create them here rather than under Meta.

Meta — Contains the name and visibility properties for the component.

Runtime Behavior

Toolbar enablement

Action

Shown when

Enabled when

Import

enableRecipeEditing is true

The component is not loading.

Export

enableRecipeEditing is true

The component is not loading and the selection is the recipe root, a recipe, or an item recipe (equipment under a setting).

Default export filters from selection

Selection

Setting Name Filter

Equipment Path Filter

Recipe root

*

*

Setting (recipe)

that recipe’s name

*

Equipment (item recipe)

parent setting name

that equipment path + *


Setpoint Name Filter always defaults to *. Operators can widen or narrow any filter before confirming export.

What is written to the export

For each matching recipe and bound equipment, the file includes:

  • Recipe path, description, state, and group

  • Equipment path

  • Each matching setpoint: name, data type, value, assigned-by, and description

Assigned-by reflects where the effective value comes from:

  • The recipe name, when that recipe overrides the value

  • A parent recipe name, when the value is inherited

  • {equipment path} - Default, when the equipment default is used

Equipment that is not bound in the recipe hierarchy is not exported for that recipe.

What import applies

Object

If missing

If present

Recipe (setting)

Created with name, description, state, and group from the file

Description, state, and group updated; values applied

Item recipe (equipment binding)

Created for the equipment path

Existing binding kept; values applied

Setpoint value

Created on the item recipe when the equipment has a matching default definition

Value overwritten


Parent Setting Name, if set, must resolve to an existing recipe. If it does not, import fails and nothing is saved for that run.

Keep Import Hierarchy uses the recipe path in the file. If the parent recipe named in that path exists (in the file or already in MES), the imported recipe is attached there. Otherwise it attaches under Parent Setting Name or the recipe root.

Skip Inherited Values compares assigned-by to the recipe name. Values assigned by a parent recipe (or by equipment default naming) are skipped when this option is on.

Changelog

Successful export flags each included recipe with a recipe export event and the change note (if provided). Successful import flags each imported recipe with a recipe import event. Review these in Settings Changelog.

Errors operators may see

Situation

Result

Export with a blank file name

Error; no file downloaded

Export with no matching values

Error; no file downloaded

Import file empty or too small

Import does not start

Parent Setting Name does not exist

Import fails

Change note required but blank or invalid

Import/export blocked until a valid note is entered

Equipment path in the file does not exist

That equipment’s values are skipped; other recipes continue

Setpoint has no matching definition on the equipment

That setpoint is skipped (logged on the Gateway)

Exported XML format

Perspective export produces XML (version 1). A typical file looks like this:

XML
<RecipeRoot>
  <Version>1</Version>
  <Recipe>
    <Path>Mixed Nuts 8oz</Path>
    <Description></Description>
    <State></State>
    <Group></Group>
    <ItemRecipe>
      <Path>Nuts Unlimited\Folsom\Packaging\Packaging Line 1</Path>
      <RecipeValue>
        <Name>Line Speed</Name>
        <Type>Int4</Type>
        <Value>20</Value>
        <AssignedBy>Mixed Nuts 8oz</AssignedBy>
        <Description></Description>
      </RecipeValue>
    </ItemRecipe>
  </Recipe>
</RecipeRoot>

Element

Meaning

RecipeRoot

File root. Includes Version.

Recipe

One machine setting. Path is the recipe path (name is the last segment). Optional Description, State, and Group.

ItemRecipe

Equipment bound to that setting. Path is the production equipment path.

RecipeValue

One setpoint: Name, Type, Value, AssignedBy, Description.


Import expects this same structure (the format returned by this component and by system.recipe.exportRecipeXML). A version mismatch is logged as a warning; import still proceeds.

Use cases

Example 1 — Backup all settings from a line

Select the recipe root (or a line-level equipment node), export, and keep the default * setpoint filter. Narrow Equipment Path Filter to the line, for example:


Field

Example value

File Name

scoValuesExport_PackagingLine1.xml

Setting Name Filter

*

Equipment Path Filter

Enterprise\Site\Packaging\Packaging Line 1*

Setpoint Name Filter

*


Store the file as a backup or attach it to a change record. Restore later with Import.

Example 2 — Copy a master setting to another gateway

  1. On the source Gateway, select the master setting and export (setting name filter = that recipe; equipment path * or the target line).

  2. Copy the XML to the destination environment.

  3. Confirm equipment paths and setpoint definitions already exist there.

  4. Import. Leave Keep Import Hierarchy on so descendants stay under the master. Set Parent Setting Name only if the recipes should attach under an existing parent instead of the root.

Example 3 — Apply only explicit overrides (skip inherited values)

When promoting a descendant recipe, turn Skip Inherited Values on so parent-assigned setpoints are not written as local overrides. Only values whose assigned-by is that recipe are imported.

Example 4 — Flatten imported recipes under one parent

To bring several recipes in as children of an existing setting (ignoring paths in the file):


Field

Example value

Parent Setting Name

Standard Line Settings

Keep Import Hierarchy

off

Skip Inherited Values

off


Recipes in the file that have no parent attach under Standard Line Settings. Standard Line Settings must already exist.

Example 5 — Export a subset of setpoints

Use a setpoint name filter such as *Speed* or *Weight* to export only related values for analysis or a controlled update.

Example 6 — Require a change note on every import/export

Property

Example value

requireChangeNote

true

enableRecipeEditing

true


Operators must enter a change note in the import and export drawers. The note is stored with the changelog events.

Example 7 — Read-only tree (no import/export)

Property

Example value

enableRecipeEditing

false

enableValueEditing

false


Import and export toolbar actions are hidden. Use this on operator screens that should only view settings.

Related scripting

The same XML import/export used by the component is available from Gateway or client scripts:

Python
# Export all settings / equipment / setpoints
xml = system.recipe.exportRecipeXML(recipeNameFilter='*', equipmentPathFiler='*', valueNameFilter='*', changeNote='Nightly backup')
system.file.writeFile("C:/Temp/scoValuesExport.xml", xml, False)

# Import that XML
xml = system.file.readFileAsString("C:/Temp/scoValuesExport.xml")
system.recipe.importRecipeXML(xmlData=xml, changeNote='Restored from backup')

Import/Export Machine Recipes

XML
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<RecipeRoot>
  <Version>1</Version>
  <Recipe>
    <Path>Kettle Recipe</Path>
    <Description/>
    <State>Dev</State>
    <Group>AZ1</Group>
    <ItemRecipe>
      <Path>Enterprise\Site\Area\Dark Chocolate Line\Kettle Line Cell</Path>
      <RecipeValue>
        <Name>Temp</Name>
        <Type>Int4</Type>
        <Value>110</Value>
        <AssignedBy>Enterprise\Site\Area\Dark Chocolate Line\Kettle Line Cell - Default</AssignedBy>
        <Description/>
      </RecipeValue>
    </ItemRecipe>
    <ItemRecipe>
      <Path>Enterprise\Site\Area\Dark Chocolate Line\Temperer Line Cell</Path>
      <RecipeValue>
        <Name>Temper 77</Name>
        <Type>Int4</Type>
        <Value>38</Value>
        <AssignedBy>Enterprise\Site\Area\Dark Chocolate Line\Temperer Line Cell - Default</AssignedBy>
        <Description/>
      </RecipeValue>
    </ItemRecipe>
  </Recipe>
</RecipeRoot>

See:

Settings and Changeover Objects

Scripting Functions

Function

Description

system.recipe.exportRecipeXML()

Returns an XML string of setting values. Filters support * and ?. Optional change note.

system.recipe.importRecipeXML()

Imports XML in the same format as the component export. Optional change note. Uses default import options (keep hierarchy on, skip inherited off, parent = recipe root).

system.recipe.exportRecipe()

CSV export of setting values (Vision / scripting format).

system.recipe.importRecipe()

CSV import of setting values.


Scripted importRecipeXML does not expose Parent Setting Name, Keep Import Hierarchy, or Skip Inherited Values; those options are available in the Settings Tree Editor import drawer.

Sepasoft MES Module Suite