Skip to main content
Version: 8.1

Exporting and Importing Tags

Inductive University

Importing and Exporting Tags

Watch the video

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.


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

PolicyDescription
AbortAborts the import if duplicate tags are found.
OverwriteOverwrites any tags in the folder that have the same name as tags being imported. Note this a complete overwrite of the tag.

Changed in 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.
RenameRenames any duplicate tags.
IgnoreIgnores duplicate tags and imports only those that are unique.
MergeOverwriteOverwrites 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.
    Changed in 8.1.15
    In version 8.1.15 and newer, right click on your folder and select Import Tags > Direct.
  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

New in 8.1.15
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
Adds the selected tag, folder, or UDT to the Staging Area.
Adds all tags, folders, and UDTs in the Selection Pane to the Staging Area.
Creates a new folder or tag at the selected node in the Staging Area, or the root if a node is not selected.
Opens a Tag Editor window for the selected tag or UDT.
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.

Property NameType
ValuevariesThe value of the tag, dependent on the data type.
Data TypeIntThe data type of the Tag. Possible values are:
  • 0 - Int1
  • 1 - Int2
  • 2 - Int4
  • 3 - Int8
  • 4 - Float4
  • 5 - Float8
  • 6 - Boolean
  • 7 - String
  • 8 - DateTime
  • 9 - DataSet
EnabledBooleanDetermines if the tag should be enabled or disabled upon import.
TagtypeIntDetermines 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. Possible values are:
  • 0 - OPC Tag
  • 1 - DB Tag (see ExpressionType)
  • 2 - Client Tag
  • 6 - Folder
  • 10 - UDT Instance
  • 13 - Derived Tag
ExpressionTypeIntUsed in conjunction when the TagType is set to 1 (DB Tag), otherwise this field is ignored. Possible values are:
  • 0 - None
  • 1 - Expression
  • 2 - SQL Query
AccessRightsIntIf custom, will be defined by a Permissions Tag. Possible values are:
  • 0 - Read Only
  • 1 - Read/Write
  • 2 - Custom
OPCServerStringThe server against which to subscribe the data point. Only present for OPC Tags.
OPCItemPathStringRepresents the OPC item path for the tag. Only present for OPC Tags.
OPCWriteBackServerStringThe configured write back OPC server for expression Tags.
OPCWriteBackItemPathStringRepresents an OPC item path on the configured write back server, in cases where expression tags are configured.
ScaleModeIntIf and how the Tag value will be scaled between the source, and what is reported for the Tag.
  • 0 - Off
  • 1 - Linear
  • 2 - Square Root
  • 3 - Exponential Filter
ScaleFactorFloatA numerical value representing the scale factor
RawLowFloatA numerical value representing the raw low value. Only used when ScaleMode is set to Linear or Square Root.
RawHighFloatA numerical value representing the raw high value. Only used when ScaleMode is set to Linear or Square Root.
ScaledLowFloatA numerical value representing the scaled low value. Only used when ScaleMode is set to Linear or Square Root.
ScaledHighFloatA numerical value representing the scaled high value. Only used when ScaleMode is set to Linear or Square Root.
ClampModeIntWhich clamp mode to use. Possible values are:
  • 0 - None
  • 1 - Low
  • 2 - High
  • 3 - Both
DeadbandFloatA numerical value used to prevent unnecessary updates for Tags whose values change by small amounts. Setting to 0.0 disables the deadband mode functionality.
DeadbandModeIntWhile Deadband is set to a non-zero value, determines which mode to use. Possible values are:
  • 0 - Absolute
  • 1 - Percentage
FormatStringStringHow the value should be formatted when converted to a string (only applies to numerical data types). Uses # and 0 characters to describe the format.
# : If the number in this position is non-zero, then do not show the position. Otherwise, show the number. Useful when you only want to show a decimal position if the value is non-zero.
0 : If the number in this position is non-zero, then show that number. Otherwise, show a zero. Useful to add leading and trailing zeros to a value.
EngUnitStringThe engineering units of the tag.
EngLowFloatThe lowest expected value of the tag.
EngHighFloatThe highest expected value of the Tag.
EngLimitModeIntDictates how the engineering range should be enforced on the Tag. If not "Off", the Tag will change to bad quality ("limit exceeded"), when the value falls outside the specified range.
Valid values are as follows:
  • 0 - None
  • 1 - Low
  • 2 - High
  • 3 - Both
TooltipStringThe tooltip provides a hint to visual components as to what should be displayed when the user hovers their mouse cursor over the component that is being driven by the value of this Tag.
DocumentationStringA freeform text property for information about the Tag.
DriverNameStringThe name of the driver. Only used by tags configured for Tag Driving Providers
ScanClassStringThe 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.
HistoryEnabledBooleanDetermines if the Tag Historian module should record values from this tag.
PrimaryHistoryProviderStringThe history provider to use if storing history with the Tag Historian module.
HistoricalDeadbandFloatA numerical value used to prevent unnecessary updates for Tags whose values change by small amounts. Setting to 0.0 disables the HistoricalDeadbandMode functionality.
HistoricalDeadbandModeIntWhile HistoricalDeadbandDeadband is set to a non-zero value, determines which mode to use. Possible values are:
  • 0 - Absolute
  • 1 - Percentage
HistoricalScanclassStringThe 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.
InterpolationModeIntHow values are interpolated. 2 exists for backwards compatibility (and is equivalent to 1), but only 0 or 3 should be used in the future.
  • 0 - Discrete
  • 2 - Analog (deadband)
  • 3 - Analog (compressed)
HistoryTimestampSourceIntPossible values are:
  • 0 - System
  • 1 - Value
HistoryMaxAgeModeIntPossible values are:
  • 0 - Unlimited
  • 1 - Limited
HistoryMaxAgeIntMax cycles between storage.
UDTParentTypeStringThe 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

JSON Export Format Example

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. 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. 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>