Ignition can export and import tag configurations to and from the JSON (JavaScript Object Notation) format. You can import XML (Extensible Markup Language) or CSV (Comma Separated Value) file formats as well, but Ignition will convert them to JSON format while in a Tag Provider. Tag export files can be edited directly in any text editor, allowing you to make bulk edits to tags before importing them back into a Tag Provider. 

Export Tags

  1. In the Designer, go to the Tag Browser, and select the tags tab to export all your tags. You can also select an individual folder that contains tags you want to export. You can even export individual tags as long the individual tags are in the same folder. 

    Exporting UDTs and UDT Instances

    If you select a UDT instance to export, the UDT definition is not automatically included. You must export the definition as a separate file by clicking on the UDT Definitions tab. 

    When later importing these UDTs, it is recommended to import UDT definitions before importing any instances. 

  2. On the Tag Browser toolbar, click the More Options menu    to open the dropdown.  Select Export Tags.



  3. The Save  window will open. Specify the folder where you want to save your exported tag files, and then click Save. Ignition will export tags by default to a .json file.

On this page ...

IULocgo


Importing and Exporting Tags

Import Tags

You can import tags to an individual folder or under the Tags tab.  To import tags under the Tags tab, you can click the Tags tab or the empty space at the bottom of the Tag Browser below all your tags. When importing tags, you need to tell Ignition how to handle duplicate tags. If any of the tags being imported already exist in the folder you specify, Ignition can abort the import, overwrite the tags, rename them, ignore them, or merge them. This is called a collision policy.

Collision Policy Options Table

Policy

Description

Abort

Aborts the import if duplicate tags are found. 

Overwrite

Overwrites any tags in the folder that have the same name as tags being imported. Note this a complete overwrite of the tag.

This feature was changed in Ignition version 8.1.8:
As of 8.1.8, importing UDT definitions with this collision policy will remove any members that are not included in the import file. 

Rename

Renames any duplicate tags.

Ignore

Ignores duplicate tags and imports only those that are unique.

MergeOverwrite

Overwrites the tag with the exception of any properties that aren't defined in the import folder. Those properties will be merged.


To import tags, do the steps that follow. 

  1. In the Tag Browser toolbar, right click on your folder and select  Import Tags.

    This feature was changed in Ignition version 8.1.15:
    In version 8.1.15 and newer, right click on your folder and select  Import TagsDirect.

  2. Specify the folder you want to import your Tags from, and choose a previously exported file either .json , .xml , or . csv file type. 

  3. Choose a Collision Policy, which indicates how Ignition will deal with duplicate tags. 

  4. Click Open to import the tags.



  5. The tags now appear in the Tag Browser in the folder you indicated for the import.

Advanced Tag Import

The following feature is new in Ignition version 8.1.15
Click here to check out the other new features
The Advanced Tag Import tool allows users to edit tag properties in the Designer before import. It combines the functionality of the basic Import Tags tool with the Tag Editor window.

Interface ElementDescription

Add

Adds the selected tag, folder, or UDT to the Staging Area.

Add All

Adds all tags, folders, and UDTs in the Selection Pane to the Staging Area.

Add folder

Creates a new folder or tag at the selected node in the Staging Area, or the root if a node is not selected.

Edit

Opens a Tag Editor window for the selected tag or UDT.

Delete

Deletes the selected tag or UDT from the Staging Area.


  1. From the Tag Browser, click the More Options menu and select Import Tags > Interactive.
  2. Select the .json, .xml, or .csv file to import.
  3. Move the desired tags and UDTs from the Selection Pane to the Staging Area using the Add  or Add All  buttons.
  4. Edit tags in the Staging Area by selecting a tag and clicking Edit
  5. If any collisions are detected, you will be prompted to select a Collision Policy from the dropdown menu.

    Note: Unlike the basic Import Tags tool, you may only choose to Overwrite or Ignore duplicate tags imported via the Advanced Tag Import tool.

  6. Click OK to import the tags and UDTs
  7. The tags now appear in the Tag Browser.


Note: If your tags are not appearing as expected for a large tag import, the Designer's memory allocation may need to be increased. Access your Gateway and navigate to the Config > Gateway Settings > Designer Memory to adjust memory limitations. The default size is 1.0 GB, with available dropdown options from MB128 to 4.0 GB.


Tag File Formats

Tags can be imported from CSV, JSON, and XML. tags can only be exported in XML or JSON.  There are many configuration settings for tags than what is displayed in a JSON or XML export file. The tag export feature only exports the configuration properties that have been edited in at least one of the tags in the selected export folder. Therefore, to ensure the desired configuration setting is available in the export file, at least one tag within the selected export folder must have that configuration property changed

CSV Format

Importing

Ignition supports importing tags from a CSV format. Details of the format are below, if you expand "CSV Example Format". This format can contain tag types, OPC paths, and most tag properties. One difference between the CSV format and the XML and JSON format is that the CSV format does not include support for alarm configurations. Alarms can certainly be added to tags in the Ignition Designer after tags have been imported from CSV, but alarms cannot be defined directly in the CSV.

Below is an example of the legacy CSV format, which contains a couple of different tag types, purely for demonstrative purposes. It contains:

  • An OPC Tag
  • A Folder
  • An OPC Tag located in a folder
  • A Derived Tag
  • An Expression Tag
  • A Memory Tag
  • A Query Tag

Path,Name,Owner,TagType,DataType,Value,Enabled,AccessRights,OPCServer,OPCItemPath,ScanClass,DriverName,ScaleMode,RawLow,RawHigh,ScaledLow,ScaledHigh,ClampMode,ScaleFactor,Deadband,DeadbandMode,FormatString,EngUnit,EngLow,EngHigh,EngLimitMode,Tooltip,Documentation,ExpressionType,Expression,OPCWriteBackServer,OPCWriteBackItemPath,SQLBindingDatasource,HistoryEnabled,PrimaryHistoryProvider,HistoricalScanclass,HistoricalDeadband,HistoricalDeadbandMode,InterpolationMode,HistoryMaxAgeMode,HistoryMaxAge,HistoryTimestampSource,UDTParentType,PersistValue,SourceDataType,SourceTagPath,SQLBindingPollRate,Permissions
# version=1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,_types_,,6,2,,TRUE,Read_Write,,,Default,,0,0,100,0,10,0,0,1.00E-04,0,"#,##0.##",,0,100,0,,,0,,,,,FALSE,,Default Historical,0.01,0,3,0,1,0,,FALSE,,,,
,A Folder,,6,2,,TRUE,Read_Write,,,Default,,0,0,100,0,10,0,0,1.00E-04,0,"#,##0.##",,0,100,0,,,0,,,,,FALSE,,Default Historical,0.01,0,3,0,1,0,,FALSE,,,,
A Folder/,OPC in a folder,,0,2,,TRUE,Read_Write,,,Default,,0,0,100,0,10,0,0,1.00E-04,0,"#,##0.##",,0,100,0,,,0,,,,,FALSE,,Default Historical,0.01,0,3,0,1,0,,FALSE,,,,
,Derived Tag,,13,2,100,TRUE,Read_Write,,,Default,,0,0,100,0,10,0,0,1.00E-04,0,"#,##0.##",,0,100,0,,,0,,,,,FALSE,,Default Historical,0.01,0,3,0,1,0,,FALSE,,[~]Expression Tag,,
,Expression Tag,,1,2,100,TRUE,Read_Write,,,Default,,0,0,100,0,10,0,0,1.00E-04,0,"#,##0.##",,0,100,0,,,1,"//This is an expression
100",,,,FALSE,,Default Historical,0.01,0,3,0,1,0,,FALSE,,,,
,Memory Tag,,1,7,I'm a memory Tag,TRUE,Read_Write,,,Default,,0,0,100,0,10,0,0,1.00E-04,0,"#,##0.##",,0,100,0,,,0,,,,,FALSE,,Default Historical,0.01,0,3,0,1,0,,FALSE,,,,
,OPC Tag,,0,2,,TRUE,Read_Write,Ignition OPC-UA Server,[devicename]folder/path,Default,,0,0,100,0,10,0,0,1.00E-04,0,"#,##0.##",,0,100,0,,,0,,,,,FALSE,,Default Historical,0.01,0,3,0,1,0,,FALSE,,,,
,Query Tag,,1,2,,TRUE,Read_Write,,,Default,,0,0,100,0,10,0,0,1.00E-04,0,"#,##0.##",,0,100,0,,,2,"/*Some Query*/
SELECT 100",,,,FALSE,,Default Historical,0.01,0,3,0,1,0,,FALSE,,,,

Property Values in the CSV Import

The following table shows the configuration property names and values contained in legacy CSV tag import files. Tags were overhauled in Ignition 8.0, so the properties listed here are not the same as tags export from an Ignition 8.0+ system. For modern tag properties, see the Tag Properties page.

Tag Properties

Property Name

Type

Values (if applicable)

Description

Value

The value of the tag, dependent on the data type.
Data TypeInt

0 - Int1
1 - Int2
2 - Int4
3 - Int8
4 - Float4
5 - Float8
6 - Boolean
7 - String
8 - DateTime
9 - DataSet


 EnabledBoolean true/false 
 TagtypeInt

0   - OPC Tag
1   - DB Tag (see ExpressionType)
2   - Client Tag
6   - Folder
10 - UDT Instance
13 - Derived Tag

Determines the type of the tag. 

A value of one is a "DB Tag", which is either a Memory Tag, Query Tag, or Expression Tag, depending on the value of the ExpressionType field. 

ExpressionTypeInt

0 - None
1 - Expression
2 - SQL Query

Used in conjunction when the TagType is set to 1 (DB Tag), otherwise this field is ignored. 
 AccessRights Int0 - Read Only
1 - Read/Write
2 - Custom
If custom, will be defined by a Permissions Tag.
 OPCServerString 

 OPCItemPathString 

 OPCWriteBackServerString
Write back target for expression T ags.
 OPCWriteBackItemPathString

 ScaleModeInt 0 - Off
1 - Linear
2 - Square Root
3 - Exponential Filter

ScaleFactorFloat
For exponential filter.
RawLowFloat
Defines scale range.
RawHighFloat

ScaledLowFloat

ScaledHighFloat

ClampModeInt

0 - None
1 - Low
2 - High
3 - Both


DeadbandFloat

DeadbandModeInt

0 - Absolute
1 - Percentage


FormatStringString

EngUnitString

EngLowFloat

EngHighFloat

EngLimitModeInt

0 - None
1 - Low
2 - High
3 - Both


TooltipString

DocumentationString

DriverNameString
Used for external tags.
ScanClassString
The export will only include the name of the Scanclass, not the configuration of the Scanclass itself. A Scanclass with the same name needs to already exist on the Gateway that the tags are being imported to, prior to importing them.
HistoryEnabledBooleantrue/false
PrimaryHistoryProviderString
The history provider to use if storing history.
HistoricalDeadbandFloat

HistoricalDeadbandModeInt

0 - Absolute
1 - Percentage


HistoricalScanclassString

InterpolationModeInt

0 - Discrete
2 - Analog (deadband)
3 - Analog (compressed)

How values are interpolated. 2 exists for backwards compatibility (and is equivalent to 1), but only 0 or 3 should be used in the future.

HistoryTimestampSourceInt

0 - System
1 - Value


HistoryMaxAgeModeInt

0 - Unlimited
1 - Limited


HistoryMaxAgeInt
Max cycles between storage.
UDTParentTypeString

The path to the parent UDT type. Used by sub-types and instances.



Exporting

Although Ignition can import tags from a CSV format, Ignition does not export tags to a CSV format. Since multiple alarms can be configured per tag, the XML or JSON formats provide a much better format to allow for the tree structures needed to fully represent Ignition tags.


JSON Example

In this example, we exported three tags from the Motor UDT in JSON format. 

  • Amps - Expression tag with an Alarm and History enabled
  • HI SP - Memory tag which is bound to a parameter to an OPC tag
  • HOA - OPC tag



The following exported tag file is in JSON format. As you browse through the JSON file, you will see the tag properties and configuration settings for each of the three tags listed above. 


Below is an example of a JSON format tag export. Descriptions on the various properties can be found on the Tag Properties page.

Exported Tags in JSON Format
{
  "tags": [
    {
      "opcItemPath": {
        "bindType": "parameter",
        "binding": "ns\u003d1;s\u003d[Dairy]_Meta:Overview/Motor {MotorNumber}/Amps"
      },
      "valueSource": "opc",
      "historyProvider": "MySQL",
      "alarms": [
        {
          "mode": "BelowValue",
          "setpointA": 25.0,
          "name": "Low Amps",
          "priority": "Critical",
          "displayPath": {
            "bindType": "Expression",
            "value": "Motor{MotorNumber}"
          }
        },
        {
          "mode": "AboveValue",
          "name": "High Amps",
          "priority": "Critical",
          "setpointA": {
            "bindType": "Expression",
            "value": "{[.]HI SP}"
          }
        }
      ],
      "name": "Amps",
      "historyEnabled": true,
      "tagType": "AtomicTag",
      "opcServer": "Ignition OPC UA Server"
    },
    {
      "valueSource": "memory",
      "name": "HI SP",
      "value": 90,
      "tagType": "AtomicTag"
    },
    {
      "opcItemPath": {
        "bindType": "parameter",
        "binding": "ns\u003d1;s\u003d[Dairy]_Meta:Overview/Motor {MotorNumber}/HOA"
      },
      "valueSource": "opc",
      "name": "HOA",
      "tagType": "AtomicTag",
      "opcServer": "Ignition OPC UA Server"
    }
  ]
}


XML Example

In this example, we exported the same three tags from our Tag Browser, that were also used in the JSON example, in XML format. As you browse through the XML file, you will see the tag properties and configuration settings for each of the same three tags.


Below is an example of an XML format tag export. Descriptions on the various properties can be found on the Tag Properties page.


Exported Tags in XML Format
<Tags MinVersion="8.0.0" locale="en_US">
   <Tag name="Amps" type="AtomicTag">
      <Property name="opcItemPath" boundValueType="parameter">ns=1;s=[Dairy]_Meta:Overview/Motor {MotorNumber}/Amps</Property>
      <Property name="valueSource">opc</Property>
      <Property name="historyProvider" datatype="String">MySQL</Property>
      <CompoundProperty name="alarms">
         <PropertySet>
            <Property name="mode">3</Property>
            <Property name="setpointA">25</Property>
            <Property name="name">Low Amps</Property>
            <Property name="priority">4</Property>
            <Property name="displayPath" bindtype="Expression">Motor{MotorNumber}</Property>
         </PropertySet>
         <PropertySet>
            <Property name="mode">2</Property>
            <Property name="name">High Amps</Property>
            <Property name="priority">4</Property>
            <Property name="setpointA" bindtype="Expression">{[.]HI SP}</Property>
         </PropertySet>
      </CompoundProperty>
      <Property name="historyEnabled" datatype="Boolean">true</Property>
      <Property name="opcServer">Ignition OPC UA Server</Property>
   </Tag>
   <Tag name="HI SP" type="AtomicTag">
      <Property name="valueSource">memory</Property>
      <Property name="value">90</Property>
   </Tag>
   <Tag name="HOA" type="AtomicTag">
      <Property name="opcItemPath" boundValueType="parameter">ns=1;s=[Dairy]_Meta:Overview/Motor {MotorNumber}/HOA</Property>
      <Property name="valueSource">opc</Property>
      <Property name="opcServer">Ignition OPC UA Server</Property>
   </Tag>
</Tags>


Related Topics ...


  • No labels