TDengine IDMP in Action: Industrial Boilers and Kepware

Joel Brass

August 21, 2025 /

This article uses an industrial boiler system monitoring scenario as an example to explain how you can collect critical metrics in KEPServerEX, ingest them into TDengine TSDB, and then build an asset model in TDengine IDMP. KEPServerEX is deployed locally while TDengine is deployed as TDengine Cloud, a fully managed cloud service.

Industrial boilers are key equipment in many industries, providing the necessary heat and steam for processes such as power generation, chemical production, metallurgy, and paper manufacturing. A boiler outage, whether for maintenance or due to malfunction, can cause costly downtime and production stoppages. In this example, we simulate a factory with two boilers, but more can be added as needed. Leveraging AI, TDengine can automatically generate visual dashboards and real-time analytics, enabling you to set up an efficient, intelligent monitoring system for critical industrial equipment in just minutes.

Prerequisites

  • Install KEPServerEx on your local machine. You can obtain a free demo version from PTC Kepware.
  • Download the sample dataset from Kaggle.

Register for TDengine Cloud

  1. In a web browser, access TDengine Cloud and enter your email address and organization.

  2. Click Get Confirmation Code and enter the confirmation code you received in your email.

  3. Click Sign Up for TDengine Cloud.

  4. On the page displayed, enter your name and set a password. Then click Continue.

  5. In the dialog box displayed, choose IDMP (Industrial Data Managment Platform).

  6. Enter names for your TDengine IDMP and TDengine TSDB instances. The names must be different.

  7. Retain the default values for the other settings and click Create.
    Your instances are created and started. This may take several minutes.

  8. Choose any sample scenario and click Confirm. This data will not be used in this demonstration.

KEPServer Configuration

  1. In your system, create a new 32-bit ODBC data source named CSV_Boiler.
    • Select the driver Microsoft Text Driver (*.txt; *.csv).
    • Point it to the directory where the sample dataset files are located.
  2. In KEPServerEX, add a new channel named Boiler Room.
    • Select the Advanced Simulator driver.
    • Under Data Source, choose CSV_Boiler.
  3. Add a device named Boiler1, select the dataset data.csv, and set Record Selection Interval to 5000 ms.
  4. Repeat the same process to add a device named Boiler2 with dataset data_Autoreg.csv.
  5. In RuntimeConnect, connect to the runtime.
  6. Click on the Boiler1 and Boiler2 devices, and you’ll see that the tags (data points) have been automatically generated.
  7. Go to Tools → Launch OPC Quick Client to verify whether the data is being correctly simulated and generated.

Create a Database in TDengine TSDB

  1. In your browser, access tsdb.tdengine.com to view your TDengine TSDB instance in TDengine Cloud.

  2. Create a database to store the sample data.

    1. In the main menu on the left, click Explorer. Then click the + (Create Database) button next to Databases.

    2. In the Name field, enter db_boiler. Retain the default values for all other settings.

    3. Click Create.

Create a Data Ingestion Task

  1. In the main menu on the left, open Data In and click Add Data Source.

  2. Configure basic information as follows:

    • Name: Enter a unique name for the data ingestion task.
    • Type: Select OPC-UA.
    • Agent: Click Create New Agent and follow the steps shown on screen to install the agent on the machine running KEPServerEX.
    • Target: Select the db_boiler database.
  3. Configure the connection information as follows:

    • Server Endpoint: Enter the IP address of the machine running taosX-Agent with port 49320.
    • Leave all other fields in this section blank.

    Then click Check Connection to ensure that your connection to the OPC server is configured correctly.

  4. Under Data Sets, select Data Points and enter the following configuration:

    • Root node ID: Enter ns=2;s=Boiler Room.
    • Super Table Name: Enter opc_boilers.
    • Table Name: Enter t_{id}.
    • Collect Mode: Select observe.
    • Collect interval: Enter 5.
    • Point Update Mode: Select update.
  5. At the bottom of the page, click Add to create the data ingestion task.

  6. On the Explorer page, you can now see that the simulated boiler data is being ingested.

Create an Element Template in TDengine IDMP

Log in to your IDMP instance, create an element template and elements, and load the data from TDengine TSDB into TDengine IDMP.

First, create the element template:

  1. Go to Libraries > Element Template > New Element Template.
  2. For Template Name, enter Air Duct System.
  3. Set Element Naming Pattern to ${Template#name}.
  4. Click Save.

Next, switch to the Element Template → Air Duct System → Attribute Template panel in the upper right corner:

  1. Click New Attribute Template.
  2. For Name, enter Return Air Chamber Flow (Right).
  3. Set Value Type to Double.
  4. Set Display Digits to 2.
  5. For UOM Class, select Volume Flow Rate.
  6. For Default UOM and Display UOM, select cubic meter per hour.
  7. For Data Reference Type, choose TDengine Metric.

In the pop-up Data Reference Expression dialog, fill in the following:

  • Connection: boiler-tsdb
  • Database: db_boiler
  • Source Table Name Pattern: t_Boiler Room_Boiler${KEYWORD1}_${Template#name}_Return Air Chamber Flow (Right)
  • Column: val

When you first add ${KEYWORD1}, the system will prompt Please enter keyword description.

Notes:

  • The placeholder string KEYWORD is valid only within the specific element template. If the same KEYWORD is used multiple times within the same template, it only needs to be created once.
  • If a manually created element template uses a KEYWORD, you must click + to explicitly create it; if the template is created by copying an existing element template, this step is not necessary.

Copy the property template Return Air Chamber Flow (Right), paste it, and edit it to create another property template Return Air Chamber Flow (Left).

Using the same method, create all seven element templates.

Notes:

  • Property templates can be copied and pasted across different element templates, but each element template must have its own KEYWORD defined.
  • IDMP comes with a variety of built-in measurement units. If you need additional units, you can extend them via Libraries > UOM.

Create the Asset Model

  1. Go to Explorer → Elements and build the hierarchy step by step:
    • PlantBoiler Room.
  2. In the Boiler Room element, create two new child elements: Boiler1 and Boiler2.
  3. Select the Boiler1 element, click New Child Element, choose the template Air Duct System, and set KEYWORD1 to 1.

Following the same steps, use different element templates to create all child elements for Boiler1 and Boiler2.

In the Explorer, IDMP will automatically display the monitoring parameters of each unit in a tree structure, based on the path information from the asset model.

Try AI-Generated Dashboards

  1. In the sidebar, select Plant > Boiler Room > Boiler1 > Air Duct System.

  2. Open the Panels page on this element to see AI recommendations.

  3. Click Generate on a panel that you want to try. Once the panel is generated, click View to open it.

  4. On the details page, you can view the panel or click Edit to make changes. When you edit a panel, you can select Advanced to view the SQL statement used to create the panel.

  5. When you have finished modifying the panel, click Save to add it to the element.

Try AI-Generated Analysis

  1. In the sidebar, select Plant > Boiler Room > Boiler1 > Air Duct System.

  2. Open the Analyses page on this element to see AI recommendations.

  3. Click one of the suggested questions to generate a real-time analysis task.

  4. On the details page, you can view the configuration for the real-time analysis task and make changes as needed. When you have finished, click Save.

Summary

In this solution, the combination of TDengine TSDB and TDengine IDMP offers four key benefits:

  1. Rapid asset modeling with a “single-column model” – TDengine IDMP integrates seamlessly with TDengine TSDB. Data from critical industrial equipment such as boilers is often written into TSDB in a single-column model, which IDMP can quickly use to build asset models. The monitored objects are then displayed in a tree structure, making equipment assets clear at a glance.
  2. Autonomous insight delivery – No configuration in TDengine, no scripts, no queries required. Based on the collected data, IDMP automatically recognizes the industrial boiler monitoring scenario and recommends dashboards and real-time alerts, keeping the boiler system’s operating status fully under control.
  3. Natural language analytics – No SQL or scripting needed. Simply describe the data analysis or dashboard you want in natural language, and IDMP will create it for you—bringing the barrier to data visualization and analysis down to zero.
  4. Automatic onboarding of new monitored equipment – When a new device or piece of equipment is added, simply configure KEPServer. No further setup or operations are needed in TDengine; the equipment will be automatically added to the monitoring scope, saving significant manual effort.
  • Joel Brass
    Joel Brass

    Joel Brass is a Solutions Architect at TDengine, bringing extensive experience in real-time data processing, time-series analytics, and full-stack development. With a 20 year background in software engineering and a deep focus on scalable applications and solutions, Joel has worked on a range of projects spanning joke databases, IoT, self-driving vehicles, and work management platforms. Prior to joining TDengine, Joel worked in Advisory Services for Enterprise customers of Atlassian and the Systems Engineering team at Waymo. He is currently based in the San Francisco Bay Area.