Seeq Ignition Module

Overview

 

To learn more about the value of the integration, take a look at the Ignition module information page on Seeq's website.

Ignition 8.x is supported in Seeq Server version R21.0.44.00 and later.

The Seeq Ignition Module currently supports the following SQL Tag Historian databases:

MySQL
Microsoft SQL Server
Oracle 
PostgreSQL

Installation

Seeq SaaS

If you are utilizing Seeq’s managed SaaS service, skip to Seeq Ignition Module Installation.

Seeq Server (on premise)

It is recommend that Seeq Server run on its own machine. The Seeq Ignition module will communicate with it across the network.

Ensure that the machine/VM you are using meets the minimum requirements for Seeq Server(Contact support@seeq.com about options for running Seeq on a cloud service like Microsoft Azure.)

Download Seeq Server and follow the instructions at Installing and Upgrading Seeq.

You must use the version of Seeq Server that matches the module version, otherwise the Ignition module will not function correctly.

Once Seeq Server is successfully running on its own machine, verify that you can log into Seeq Workbench.

Register as a new user. You will need to obtain a license file, follow the instructions onscreen.

You will be able to browse example data in Seeq, but your Ignition data will not yet be available.

Seeq Ignition Module Installation

Take the following steps:

  • Download the appropriate Seeq Ignition Module module file from the Seeq Product Download page.
    Ignition 8.x is supported in Seeq Server version RXX.0.44.00 and later. (You must choose the v7 module if you are using Ignition 7.x or the v8 module if you are using Ignition 8.x.)

Some browsers like Internet Explorer 11 may rename the module file such that it has a .zip extension. You will have to use Windows Explorer to change the extension to .modl.

  • In a web browser, open the Ignition Gateway configuration site and log in with administrator credentials.

  • Browse to the SYSTEM → Modules section.

  • Scroll to the bottom of the page and click the Install or Upgrade a module link.

  • Click Choose File and browse to the .modl file you downloaded in Step 1.

  • Click Install and allow the module to load.

  • After installing the module, you may need to log out and log back in to the Ignition configuration site so that the SEEQ settings area appears in the bottom left of the page.

  • Browse to the SEEQ → Settings section.

    • In the Seeq Server Hostname textbox, enter the hostname or IP address of the Seeq SaaS service or the Seeq Server machine you commissioned.

  • Ensure that the port number specified in Seeq Server Port is not blocked by a firewall on the Seeq Server machine. (Instructions for Windows Firewall configuration here.)

If you're connecting to a Seeq Server which is running with a self-signed certificate, you need to copy the Seeq Server's certificate to the Ignition Gateway machine by hand.

The certificates are stored on the Seeq Server in the Seeq data folder under the keys subfolder. Copy the seeq-cert.pem file in that folder to the identical location on the Ignition Gateway machine.

  • In Seeq Workbench, go to the Administration page (from the upper-right "hamburger" menu) and you'll see a Seeq Agent Key in the upper right. Copy it to your clipboard and then paste it into the Agent Key section of the SEEQ → Settings section on the Ignition Gateway.

  • Click Save Changes.

Refresh your Seeq Workbench screen and you should see your Ignition tags in the Data tab. Indexing all the tags may take some time. Jump to the Browsing Ignition Tags from Seeq Workbench section below.

Filtering Tag Providers

By default, Seeq will index all tag providers that are defined on the gateway. If more than one tag provider is indexed, then the asset tree in Seeq Workbench will include the tag providers near the top.

You may wish to filter down to a particular set of providers, perhaps because you don't need to see all the providers in Seeq or because some of the providers are unavailable.

To filter the set of providers, take the following steps:

  1. In the Ignition Gateway configuration site, browse to the SEEQ section at the bottom of the configuration section list on the left hand side.

  2. Select the SEEQ → Settings section.

  3. In the Tag Providers section, add a comma-delimited list of all tag providers you want Seeq to index. For example:

    1 default,Orlando,Dallas
  4. Click Save Changes.

Seeq will begin re-indexing and the tag providers listed will be the only ones showing in Seeq.

Remote Tag Providers and Tag History Splitters

Remote Tag Providers and Tag History Splitters are supported in Seeq Ignition Module R19.0.36.02 and later.

If you are utilizing the Gateway Network features of the Ignition system and have the Seeq Ignition Module installed on a "central" gateway that accesses tags on a remote gateway via the Remote Tag Provider feature, Seeq can access data from such tags if the central gateway has a database connection to the historical data. If the name of the database connection on the central gateway is identical to the history provider that is defined for the remote tags, Seeq will automatically find the correct connection to use for historical data queries. Otherwise, errors will appear in Seeq Workbench when you attempt to access that tag data. You can rectify these errors by specifying a Database Mapping. For example, let's say you have a relatively complex topology involving Tag History Splitter providers. If you receive an error in Seeq like Datasource 'Splitter01' is not defined on this gateway, and you want Seeq to use a database connection called "Central_Historian" for any tags that are historized to the Splitter01 history provider, you can navigate to the SEEQ → Settings section of the Ignition Gateway and add a Database Mapping entry like so:

1 Splitter01 => Central_Historian

This will inform Seeq to use the "Central_Historian" connection whenever it encounters a tag whose history provider is "Splitter01". You can add as many mappings as necessary, with each one on its own line.

Secondary (Read-Only) Databases

Secondary database mappings are supported in Seeq Ignition Module R20.0.39.00 and later.

In some cases, you may have decided to replicate an Ignition SQL Tag Historian database to a secondary SQL database server so that you can isolate ad-hoc analytics activity to the secondary server. In many cases, SQL replication schemes require that the secondary database is read-only. During indexing, Seeq requires a writable connection to the historian so that it can manage Tag Fingerprints. You can make a Database Mapping entry like so:

1 Primary_Historian =>> Secondary_Historian

Notice the double arrows in the mapping syntax (in contrast to prior examples of database mappings). In this case, all historical queries (which are read-only in nature) that would normally be levied against Primary_Historian will now instead be issued against Secondary_Historian.

Tag Fingerprinting

Tag Fingerprinting is a feature that overcomes a limitation of Ignition whereby tag history is lost when a tag is renamed or moved in the hierarchy. The “OPC Item Path” for a tag (if present) is used as a unique identifier for tag history. Seeq creates a fingerprint column in the sqlth_te table of the SQL Tag Historian database and maintains cross-references between OPC Item Paths and Ignition Tag Paths. Wherever possible, this cross-reference is used to retrieve all history for an OPC Tag, regardless of where it lived in the Ignition tag hierarchy.

Tag Fingerprinting thus requires write access to the SQL Tag Historian database. If you cannot provide write access to the database, or you otherwise want to turn off the Tag Fingerprinting feature, uncheck the Tag Fingerprinting checkbox in the SEEQ → Settings section of the Ignition Gateway and click Save Changes. When the feature is turned off, tag history will be lost when tags are renamed or moved.

The option to turn off Tag Fingerprinting is available in Seeq R21.0.41.00 and later.

Property Transforms

You can use Property Transforms to make changes to tag properties as they are indexed by the Seeq Ignition Module. Follow the instructions in the Property Transforms article and put the transforms JSON in the Transforms field of the SEEQ → Settings section of the Ignition Gateway, but with an important difference from the article's examples: Exclude the Transforms: label. For example:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [ { "Inputs": [ { "Property": "Interpolation Method", "Value": "linear" } ], "Outputs": [ { "Property": "Interpolation Method", "Value": "step" } ] } ]

Property Transforms will not be applied until an indexing operation has completed.

Troubleshooting

If you have any problems, please contact support@seeq.com.

Log Files

Troubleshooting information for the Seeq Ignition Module uses the Ignition logging system. It is accessed from the STATUS → DIAGNOSTICS → Logs section of the Ignition Gateway configuration interface.

In the Filter text box, enter com.seeq to limit output to only the Seeq Ignition Module and filter out Ignition Gateway logs and logs from other modules.

By default, the logs will include DEBUG level debugging information. You can decrease the logging level by clicking on the Settings button (pictured below) in the Logs interface. In the resulting Log Configuration modal dialog, enter com.seeq in the Filter text box and set the com.seeq entry to WARN (this will set all child packages to WARN as well). Then, close the dialog.

Any change you make to the debugging level will be reset when either the Ignition Gateway or the Seeq Ignition Module restarts. To make the change permanent, open the C:\Program Files\Inductive Automation\Ignition\data\logback.xml file in a text editor and add the following <logger> tag:

1 2 3 4 5 6 7 <configuration debug="true"> ... existing configuration ... <logger name="com.seeq" level="INFO"/> </configuration>

You can change INFO to either WARN or ERROR if you want even less log output.

You must be using Seeq Ignition Module R50.4.3 or later.

This setting will also affect the logs that are available to be seen in the Seeq Logs viewer facility in Seeq.

 

You can download the logs to an .idb file and send them to Seeq personnel for further examination by clicking the Download Logs button (pictured below).

 

Seeq personnel: Decode this file with the sq log <filename> command in the ignition project.

Unable to Connect to Server because of Corporate Firewall SSL Certificate Replacement

If you're connecting to a Cloud Server, such as Seeq SaaS, and you are seeing connection errors in the Ignition logs because the corporate firewall is doing SSL certificate replacement, you will need to add the certificate to the Java trust store for Ignition.

  • Open command prompt on the Ignition Server

  • Issue this command: cd "C:\Program Files\Inductive Automation\Ignition\lib\runtime\jre-win\bin"

For next command, replace "mycertificate.cer" with the path to your locally saved certificate.  When prompted the default password is: changeit

  • Do: keytool -import -trustcacerts -file "mycertificate.cer" -alias sgServerCA -keystore "C:\Program Files\Inductive Automation\Ignition\lib\runtime\jre-win\lib\security\cacerts"

Restart the Seeq Module to establish the connection

Unable to Connect to Server When Seeq Is Using a Self-Signed Certificate

If you are seeing connection errors in the Ignition logs when using a self-signed certificate on the Seeq server, you will need to add the Seeq server certificate to the Java trust store on the Ignition server.

  • Open command prompt on the Ignition Server

  • Issue this command: cd "c:\Program Files\Inductive Automation\Ignition\lib\runtime\jre-win\bin"

For next command, replace "mycertificate.cer" with the path to your locally saved certificate.  When prompted the default password is: changeit

  • Do: keytool -import -trustcacerts -file "mycertificate.cer" -alias sgServerCA -keystore "C:\Program Files\Inductive Automation\Ignition\lib\runtime\jre-win\lib\security\cacerts"

Restart the Seeq Module to establish the connection.

For Ignition on RHEL, the cacerts location defaults to: /opt/ignition/lib/runtime/jre-nix/lib/security/cacerts

If cacerts is not located in these locations in your environment, please contact your systems administrator or Inductive Automation support.

Forcing Re-index of Ignition Tags

By default, Seeq will scan every 24 hours for any change in the set of Ignition tags that it has indexed. To force a re-index sooner than 24 hours, browse to the SEEQ → Settings section at the bottom of the Ignition Gateway configuration section list on the left hand side and ensure that Index On Startup and Config Change is set to true and click Save Changes. You should see indexing occur for that gateway in the Connected dropdown of Seeq.

In R20.0.39.xx and earlier, re-indexing is short-circuited if Seeq has queried Ignition and has determined that no changes have occurred. If you need to override this logic and really force a re-index no matter what, change the Datasource Name field in the SEEQ → Settings section and click Save Changes.

Starting with Seeq Server v54, re-indexing can be forced and indexing can be configured (Frequency of Indexing and Date/Time of Next Indexing) through the administration page.

Tags Not Appearing in Seeq

If a tag does not appear in the Seeq asset hierarchy or when you perform a search on the Data tab, here are some possible reasons why:

  • The tag is not historized. Seeq can only make use of tags that have been configured to utilize a Tag History Provider to store historical values. It will ignore tags that are not historized. You can tell if a tag is historized because it will have a scroll icon (

    ) to the right of it in the Ignition Designer's Tag Browser pane.

  • The tag provider is being filtered out. Administrators can configure the Seeq Ignition Module to only index certain providers, so a tag may be ignored due to that configuration setting.

  • You’re accidentally searching for or looking at the wrong tag, or have input the tag name incorrectly into Seeq. Confirm that there is no tag name mix-up and that the tags missing in Seeq have the history as the other tags.

Duplicated Tags

You may encounter a situation where you have accidentally duplicated an Ignition asset tree in Seeq. The problem is usually because a new Ignition Gateway has been set up, perhaps as a development or backup gateway, or perhaps you are just moving things around in your Gateway Network. You have to be careful to retain the same Datasource ID within SEEQ → Settings on the new gateway in order to avoid duplication and maintain appropriate linkages for the various worksheets that are using the tags.

In order to recover from accidental duplication, first fix the Datasource ID such that it is correct: You will likely just need to copy the Datasource ID from one instance of the Seeq Ignition Module's settings to the other. Make sure the Ignition Module in the "old" gateway is disabled, and test to make sure tag data can be called up in Seeq from the new gateway. Then, to remove the duplication, follow Removing a Datasource -- being careful to use the Datasource ID that does not match the accurate Datasource ID (but may have the same Datasource Name).

Data Retrieval Performance

The speed with which data is retrieved from the Ignition SQL Tags Historian can be greatly affected by a couple of Ignition configuration items as described in the following sections.

Data Partition Size

Ignition will split historical data into separate tables according to the Partition Length and Units specified for the Tag History Provider. You will want to choose a partition size that results in about 20 million rows. If the row count is larger, it will take a long time to traverse the index for the table and produce the historical data for a particular tag and time range. See Data Partitioning and Pruning in the Ignition documentation for more information.

Default Transaction Isolation Level

A database connection within Ignition can be queried by many simultaneous requests from an application like Seeq. It is important to use the minimum necessary transaction isolation level so that simultaneous queries are minimizing the amount of time they are blocking each other from progressing. In Ignition's Connection Initialization parameters for the database connection (under the Advanced Properties checkbox), set the Default Transaction Isolation Level to Read Uncommitted.

Max Concurrent Requests

By default, the Seeq Ignition Module will process 2 historical queries simultaneously. Other requests will queue up and be processed as others finish.

You can choose to increase the Max Concurrent Requests parameter in SEEQ → Settings to improve overall responsiveness within Seeq Workbench, especially when users have several signals onscreen. However, each database connection in the Ignition Gateway has "connection pooling" and is configured (under the Advanced Properties for the connection) to have Max Active connections in the pool. If all of the connections in the pool are used, Ignition may struggle to write data to the historian and perform other duties. Therefore, it is critical that Seeq's Max Concurrent Requests is smaller than the smallest Max Active value set on any database connection on the gateway. For example, if the smallest Max Active value is 8 (which happens to be the default), you should probably not allow Seeq to utilize more than 4 connections, and therefore Max Concurrent Requests should be set to 4 (at most). If you can increase Max Active to something larger, you can increase Seeq's Max Concurrent Requests by a commensurate amount.

Browsing Ignition tags from Seeq Workbench

Once you are logged in, create a new Workbook. Once the Workbook is created, you will have a Worksheet to which you can add data.

The Ignition tag hierarchy will automatically show up in the list of assets:

You can click on the asset to drill down into the hierarchy. When you get down to a tag that is historized, you can click on it to bring it onscreen.

You can also search for assets in the Data tab's textbox (that has "Name contains..." in it), and then click through to historized tags.

Seeq will only index Ignition tags that are historized. If a tag is not historized, it will not show up in the Seeq tag hierarchy or in search results.

Once you have data onscreen, you can do lots of stuff with it. Take a look at our Seeq University videos to learn more.

Asset Identification

Seeq differentiates between the portion of the Ignition tag hierarchy that represents an asset and the portion that represents a signal. Correct identification of each is important in order take advantage of various Seeq features, including asset swapping and Treemap rollups.

User Defined Types

By default, Seeq will use the highest User Defined Type (UDT) in the hierarchy to define the dividing line between the asset and signal portions of the tag path.

For example, let's look at the following tag hierarchy in the Ignition Designer:

The highest UDTs in the hierarchy are HVAC Unit 0 and HVAC Unit 1. As a result, Seeq will construct its asset tree as follows...

Area A >> HVAC Unit 0 >> Chiller/Compressor Power
Area A >> HVAC Unit 0 >> Chiller/Inlet Temperature
Area A >> HVAC Unit 0 >> Chiller/Return Temperature

...where the orange items are assets and the black items are signals. It will look like this in Seeq:

In this example, all HVAC Units have Chillers and Dehumidifiers, and we want to be able to compare and swap out HVAC Units in calculations. 

Asset Path Specifications

Sometimes your Ignition configuration does not make use of UDTs, or the UDTs are defined in such a way that Seeq is not detecting the signals and assets in the way that you want.

With Seeq Ignition Module version R19 or later, you can specify an Asset Path pattern.

In the Ignition Gateway Configuration site, navigate to CONFIGURE > SEEQ > Settings.

In the Asset Paths text box, add an Asset Path pattern. For example, let's say your tag hierarchy looks like this:

If you want Seeq to identify HVAC Unit 4 as the asset, and therefore use Chiller and Dehumidifier as part of the signal names, you would add this Asset Path pattern:

1 [default]Area C/HVAC Unit 4

Note that the Tag Provider name is required at the beginning, enclosed in square brackets.

You can add as many Asset Path patterns as you would like by putting them each on their own line.

You can use wildcards to reduce the number of Asset Path patterns you'll need to add. For example, you could have specified:

1 [*]Area*/*

This pattern will match any tag provider, and any tag that is a child of a root tag that starts with "Area".

You can use double-asterisk to match any part of the tag hierarchy. For example, this pattern will match any tag that starts with HVAC anywhere in the tag hierarchy:

1 **/HVAC*

Once you click Save Changes, Seeq will re-index the Ignition tag database and modify the asset/signal hierarchy.

Adding a "Show in Seeq" Button to an Ignition Vision Window or Template

You may find it desirable to make it easy for Vision users to see trends in Seeq for the tags that are being displayed in a Vision window or template.

There will be a "Seeq" section to your Ignition Designer component palette, with a "Show in Seeq" button that can be added to any window or template.

Just drag & drop the component on to a window or template and then modify its properties as follows:

Text

The text that will appear on the button.

Paths

The tag paths that you want to appear in Seeq.

You can specify multiple tag paths for Seeq to bring up by separating them with a semi-colon. Example:

1 Area A/HVAC Unit 0/Chiller/Compressor Power;Area A/HVAC Unit 0/Chiller/Inlet Temperature

If you are adding the Show in Seeq button to a template, you will likely need to use an Expression to construct the tag path programmatically. For example:

Again, you can use semi-colons to separate multiple paths in your expression.

Workbook

The name of the Workbook that you want to come up in Seeq. Note that each user will get their own private copy of this workbook. It will not be created multiple times: If it already exists, it will be reused.

Worksheet

The name of the Worksheet that you want to come up in Seeq. It will not be created multiple times: If it already exists, it will be reused. All existing tags will be removed and replaced by the new set.

If a user wants to preserve any exploration they might have done on a set of tags, they can use the Duplicate Worksheet feature in Seeq to branch off their investigation so that it won't be overwritten the next time they use the Show in Seeq button from Ignition. If they forget to do that, they can just hit the Previous Workstep button in the top-right of Seeq Workbench and then use the Duplicate Worksheet feature.

Display Start Time

The start time for the historical trend that will appear when Seeq Workbench comes up. Typically, you will want to specify an offset from the current time using the asterisk (*) which means "now". For example, a start time of *-1h means "one hour ago".

Display End Time

The end time for the historical trend that will appear when Seeq Workbench comes up. Typically, you will want to specify the current time using just an asterisk (*).

Investigate Start Time

The start time for the investigation range that will appear when Seeq Workbench comes up. The investigation range is the broader range shown at the bottom of the trend:

Typically, you will want to specify an offset from the current time using the asterisk (*) which means "now". For example, a start time of *-1w means "the past week (7 days)".

Investigate End Time

The end time for the investigation range that will appear when Seeq Workbench comes up. Typically, you will want to specify the current time using just an asterisk (*).

Embedding a Seeq Visualization in an Ignition Vision Window or Template

This capability is not available for Ignition Perspective, which is the new browser-based screen subsystem in Ignition 8.x.

Any Seeq worksheet can be embedded in an Ignition Vision Window and set to refresh at a regular interval. This allows your Ignition Vision window to harness the power of Seeq's ability to display trends, treemaps, tables, and other visualizations in Ignition Vision.

There will be a "Seeq" section to your Ignition Designer component palette, with a "Seeq Visualization" button that can be added to any window or template.

Just drag & drop the component on to a window or template and then modify its properties as follows:

Worksheet URL

The URL of the Seeq worksheet to embed in Ignition Vision. Navigate to the worksheet and copy the URL from the browser's location bar and copy and paste it into Ignition Vision.

You must share the workbook (from within Seeq) with Everyone in order for Ignition Vision to be able to access it. Otherwise you will get an error indicating that "agent_api_key" does not have access to the workbook.

Time Window

The time window to capture on the trend. Example: "24h" would display the last 24 hours. "5min" would display the last five minutes. 

Period

How often to update the visualization. Example: "30s" would generate a new image every 30 seconds. 

Offset

Offset the time window into the past or future from now. Zero means no offset; the time window for the trend is the current time minus the Time Window.  Alternatively, "+5min" would offset the date range by 5 minutes in the future. "-1h" would offset the date range by an hour in the past.

The visualization's size and aspect ratio can be adjusted by dragging the corners of the image.

The supported units for Time Window, Period, and Offset are y (year), mo (month), d (day), w (week), h (hour), min (minute), and s (second).

With each change to one of the settings you will see a loading icon while it generates a new image with the updated settings. After the settings are finalized, it will continue to generate a new image based on the Period.

Note that any changes made to the worksheet, such as adjustments in lane labels or signals on the trend, will be reflected the next time the image is generated.



Upgrading Seeq and the Ignition Module

In addition to the usual steps involved in upgrading Seeq, to ensure a smooth upgrade of Seeq and the Seeq Ignition module follow the below steps in order:

  1. Disable all Seeq-Ignition gateway module(s); you do this by going to the Seeq - Settings menu and deselecting the 'Enabled' checkbox.

  2. Upgrade the Seeq Server (install the upgrade AND let it start fully, i.e. to where you have the Seeq Login page available or the Launch Seeq UI shows "Server is running")

  3. Upgrade the Seeq-Ignition Module

  4. Enable the Module