Overview

This page outlines the InfluxDB integration as a data historian for storing information generated by devices configured in the software platform. 

On this page:


Requirements

  1. Download, install and license the software platform.
  2. Create a solution in the platform.
  3. Download, install and configure the InfluxDB.

Installing InfluxDB

Download and run the installation package. Start the server using the ./influxd command. Access the setup interface (localhost:8086) and create a user, organization, and bucket. Log in using the configured credentials. Open the Data Explorer to run queries. Filter, sort, and analyze time-series data using tables and graphs. Store and manage structured data for monitoring and analysis.


Available Configurations

Influx Database can be used in different ways by the various modules.

Historian: Uses InfluxDB as a Storage Location for archiving or retrieving HistorianTags.

Devices: Read and Write to external Influx Database Server with the Device Module.

TagProvider: Map external Influx Database Server to dynamic integration of its data and structures. 

Displays and Scripts: No custom configuration is required, TrendCharts will use Influx Database Data Automatically if available.

Historian Module

Configuring Historian using InfluxDB

  1. At Historian / StorageLocations, include InfluxDB as a StorageLocation. 
  2. At Historian / HistorianTables, define virtual tables will control writing and retrieving data.
  3. Map the tags at Historian / HistorianTags.

→ Read about the Historian Module.

Device Module

Configuring Devices using InfluxDB.

  1. Navigate to 'Devices / Channels' and select a protocol (InfluxDB) to create a Channel.
  2. Navigate to  'Devices / Nodes', create a Node linked to that Channel.
  3. Map the tags at 'Devices / Points'.

→ Read about the Devices Module, or read about the specific InfluxDB Communication driver.

TagProvider

Configuring TagProvider using InfluxDB.

  1. At Unified Namespace / TagProvider Connections, create a connection to a Influx Database.
  2. At Unified Namespace / AssetTree, add InfluxDB data in the AssetTree. 
  3. Use InfluxDB data in any module using the syntax Asset("<AssetPath>")

→ Read about Unified Namespaces

→ Read about the specific InfluxDB TagProvider

Displays and Scripts

Displays and Scripts, with no additional configuration, will query Influx Database when using tags that were previously connected with InfluxDB using the Historian Module.

Examples of the automated usage:

In Displays TendCharts. See TrendChart Control.

In Scripts, using the Historian Tables method to query data. See Historian Runtime Attributes.


Integrating InfluxDB as Historian

Historian

Step 1. Create a StorageLocation (Historian/StorageLocation) using the InfluxDB protocol to create a TagProvider Connection for data writing.

Step 2. Create a table (Historian/HistorianTable) to store Tag values.

Step 3. Select the Tag Example (Historian/HistorianTags) to log values in the table

Unified Namespace

Configure and test the connection to the PrimaryStation of the created TagProvider Connection for data writing.


Enter the organization name in the Organization field. Match the name defined in the InfluxDB configuration (case-sensitive).

Enter the Token generated in the InfluxDB configuration in the Token field.

Select the Bucket configured in InfluxDB.

Test the connection.

Create a TagProvider Connection for data reading using the InfluxDB protocol.

Configure and test the connection to the PrimaryStation of the created TagProvider Connection for data reading using the same procedure as for writing.


Data Simulator

Optional configuration

To generate random values configure a Simulator device.

  1. Create a Tag Example (INT) in the platform's Unified Namespace.

  2. Configure a Device in the platform.

    1. Create a Channel using the ValueSimulator protocol.

    2. Create a Node linked to the Channel.

    3. Create a Point to map the values.

      1. Set the Address to [INTEGER:0;100].

      2. Set the AccessType to [ReadWrite].


In this section: