Skip to content

273: Getting Data From Your Assets

This course is for Platform Administrators who need to connect Kelvin to physical assets and start collecting real-time data.

By the end, you will understand what Connections are, know how to create an OPC UA import connection step by step, understand what protocols are available, know enough to brief a developer on building a custom connection, and be able to manage connections day to day.


Where this course fits

Before you can do anything useful in Kelvin, you need data. Data comes from your assets through Connections. This course covers everything you need to know about setting up and managing that pipeline.

  1. 270: Exploring the Kelvin UI for Platform Administrators — the Administration area overview
  2. 271: Setting Up Platform Infrastructure — clusters, nodes, and users
  3. 272: Setting Up Assets and Data Streams Quickly — creating assets in bulk
  4. This course — connecting those assets to real data
  5. 274: Asset Data Assurance — data quality and guardrails

What is a Connection?

A Connection (also called a Connector) is a software component that runs at the edge and bridges the gap between your physical assets and the Kelvin Platform.

Your asset speaks its own language. A PLC might speak Modbus. A SCADA system might speak OPC UA. Kelvin speaks its own language: Assets and Data Streams. The Connection is the translator between the two.

There are two types of Connection:

Import Connections are the live link between Kelvin and your physical assets — exactly like how a SCADA system communicates with a PLC. They read real-time data from your assets continuously, and can also write commands or setpoints back to them. This is the connection type you will use for your assets.

Export Connections take data that is already in Kelvin and push it to a third-party system — for example, sending historical process data to Databricks for ML model training, or to an Azure Data Lake for long-term storage. Export Connections are always custom-built by a developer.

This course focuses entirely on Import Connections using OPC UA. Export Connections are briefly introduced at the end.


How an Import Connection Works

When you deploy an Import Connection, it runs as a workload on your edge cluster. It polls your asset at a configurable rate, reads the data, and stores it temporarily on the node and then sends it to the cloud.

Note

The nodes are fault tolerant meaning that data is not lost if the connection to the cloud is unavailable. The node will retain the data and sync when the connection is restored.

It also means the Kelvin SmartApps can still run and use the data locally, allowing seamless offline operations even with intermittent Internet connections.

Data also flows the other way. When a SmartApp generates a recommendation and an Operations Engineer approves a control change, Kelvin sends the new setpoint back down through the same Import Connection to the physical asset. This is the write direction — just like a SCADA system sending a new target value to a PLC.

The four things you configure when creating a connection:

Setting What it means
Polling Rate How often (in seconds) to read data from the asset
Storage Location Node only, or node and cloud sync
IO Mapping Which physical data points map to which Kelvin Asset and Data Stream
Control Writable Whether a Data Stream is Read Only (RO) or Read/Write (RW)

Pro Tip

The Control Writable setting controls whether Kelvin can send commands back to the asset for that data stream. Set a stream to Read/Write (RW) only on data points where you want SmartApps to be able to change the value on the physical asset — for example, a setpoint or target pressure. For monitoring-only data points, use Read Only (RO) to make sure nothing can accidentally change the asset.


Available Protocols

Kelvin ships with built-in connectors for the most common industrial protocols. You do not need to write any code to use these.

Protocol Best for Notes
OPC UA Modern PLCs, DCS systems Recommended starting point. Secure, platform-independent, widely supported
Modbus TCP Older devices on Ethernet Very common in industrial environments. TCP variant uses standard networking
Modbus RTU Older devices on serial Serial communication. Requires direct hardware connection to the node
Emerson ROC Emerson flow computers and RTUs ROC and ROC Plus protocols. Supports TCP, serial, radio, and dialup
Custom Anything else Built by developers using the Kelvin SDK — APIs, databases, custom hardware

For Operations

If your assets use a protocol not listed above, your development team can build a custom connection using the Kelvin SDK. This is covered later in this course.

Pro Tip

If you are unsure which connector to start with, OPC UA is the safest choice for modern equipment. It is the most widely supported industrial protocol and handles security, encryption, and authentication natively.


Creating a Connection: Step by Step

This walkthrough uses OPC UA as the example. The process for Modbus and Emerson ROC follows the same steps with different configuration parameters.

Before you start

You will need:

  • A running edge cluster with at least one node (covered in Course 271)
  • Assets and Data Streams already created in Kelvin (covered in Course 272)
  • The OPC UA endpoint URL for your asset (for example: opc.tcp://192.168.1.100:48010)
  • The Node IDs for the data points you want to read

Step 1: Open the Connections page

Go to Connections in the left sidebar under the Connectors section.

You will see a list of any existing connections. Click the Create Connection button.

Step 2: Select connection type

You will see two options. Select Import Data and Control Setpoints and click Next.

Step 3: Select the protocol

A list of available protocols appears. Select OPC UA, choose a version, and click Next.

Step 4: Configure the connection

This is where most of the setup happens. All sections must show a green check before the Create button becomes active.

Note

In this course we will only focus on the key elements that need to be configured. The rest can be left default.

Section A: Information

Field What to enter
Display Name A human-readable name. Use any letters, numbers, and special characters
Connection Name Auto-filled from your Display Name. Lowercase alphanumeric, dots, underscores, and hyphens only

Section B: Configuration

The key parameters for OPC UA:

Parameter Required Description
Endpoint URL Yes The OPC UA server address. Format: opc.tcp://hostname:port
Verify SSL Yes Whether to verify SSL certificates. Default: False
Security Policy Yes Security type: None, Basic256Sha256, and others
Message Security Yes Message mode: None, Sign, or SignAndEncrypt. Default: None
Authentication Method Yes None, Credentials, or Certificate
Username / Password If Credentials Visible only when Credentials is selected
Certificates / Key Password If Certificate Visible only when Certificate is selected
Polling / Watchdog Timeouts No Read, Write, and Watchdog timeouts in milliseconds
Force Read After Write Yes Immediately confirms a write succeeded. Default: False
Subscription Monitoring Interval Yes Seconds between subscription checks
Logging Level No Info, Debug, Warning, or Error

Pro Tip

You can edit the configuration in the default UI form, or switch to YAML or JSON format. YAML and JSON are useful if you are copying settings from another connection or from a script.

Section C: IO Mapping

This is the most important section. It maps each physical data point on your asset to a Kelvin Asset and Data Stream.

For each data point, you need:

Column Example Required Description
Asset well-01 Yes The Kelvin Asset name (lowercase, no spaces)
DataStream water-flow Yes The Kelvin Data Stream name (lowercase, no spaces)
Storage node-and-cloud No none, node, or node-and-cloud
Node ID ns=4;i=1002 Yes The OPC UA address of this data point on your asset
Polling Rate 30 Yes How often to read this data point, in seconds
Control Writable RO Yes RO for read only, RW for read/write

Pro Tip

If you have many data points to map, use the Download CSV option in the top right corner of this section. Fill in all rows in Microsoft Excel or Google Sheets, then upload the completed file. This saves significant time for large asset configurations.

You can only upload one file. If you upload a second file, only the latest upload will be used.

Section D: Cluster

Select which cluster to deploy the connection to. The cluster must have direct network access to your OPC UA server.

You can optionally select a specific node. If you do not, the platform assigns one automatically.

For Operations

If your asset uses a serial connection (for example, Modbus RTU), you must select a single-node cluster and specify the exact node that has the serial hardware connected. Serial connections require direct hardware access and cannot be assigned automatically.

Step 5: Create the connection

When all sections show a green check, the Create button turns blue. Click it.

The connection will appear in your Connections list. Its status will move through:

  1. Pending — created, waiting to deploy
  2. Deploying — being installed on the edge node
  3. Running — active and collecting data

After a few minutes, your connection is live. You can verify it is working by navigating to the Data Explorer and selecting your assets and data streams to view the live data.


Managing Your Connections

Once a connection is running, you have four management actions available.

Starting and Stopping

You can pause a connection without removing it from the edge. The workload stays deployed on the node — you can restart it at any time without redeploying.

From the Connection list:

Go to Connections. Click the Start/Stop button on the relevant row.

From Connection Details:

Click on the connection name to open its detail page. Click the Start/Stop button at the top.

For Operations

If the Start/Stop button is greyed out, the connection status is Unavailable. You need to resolve the underlying workload issue before you can control it.

Updating a Connection

You do not need to delete and recreate a connection to make changes. Four things can be updated on a deployed connection:

Update the version:

Go to Connections. Click the upgrade icon on the row, or click the connection name and use the Update Connection button. Select the new version from the list.

Pro Tip

You can also roll back to a previous version if the current version has problems. Version history is kept in the platform.

Update the configuration:

Click the connection name. Go to the Configuration tab. Edit the settings in the UI, YAML, or JSON view. Click Apply and Redeploy when ready.

Update the deployment:

Click the connection name. Go to the System tab. Adjust environment variables as needed. Click Redeploy.

Update the IO Map:

Click the connection name. Go to the Connection IO tab. Click Edit IO Map. Add, edit, or remove assets and data stream mappings. Click Save.

Deleting a Connection

Deleting a connection is permanent. It removes the workload from the edge entirely. You cannot undo this.

From the Connection list:

Go to Connections. Click the Delete icon on the relevant row. Follow the confirmation prompt.

From Connection Details:

Click the connection name. Click the hamburger menu at the top right. Select Delete Connection. Confirm.

Warning

Only delete a connection if you no longer need it. If you need to pause data collection temporarily, use Stop instead. Stopping preserves the full configuration — deleting loses it permanently.


Building a Custom Connection

The built-in OPC UA, Modbus, and Emerson ROC connectors cover most industrial use cases. But if your asset uses a different protocol — or you need to pull data from an API, database, or other custom source — you can build a custom connection using the Kelvin SDK.

Building a custom connection is a developer task. As a Platform Administrator, you do not need to write the code. Your responsibility starts once the developer has uploaded the connection to the App Repository.

The four stages for a developer building a custom connection:

Stage Tool What happens
1. Initialise Kelvin CLI Creates the blank app file structure and default files: kelvin app create --app-type importer
2. Develop Python + Kelvin SDK The real work. Developer writes the connection logic using the Kelvin SDK — how to read/write data from the source
3. Upload Kelvin CLI Test the app, then upload to the App Repository: kelvin app upload
4. Deploy Kelvin UI Deploy from Connections → Create Connection, same as a built-in connector

Once a custom connection is deployed, you manage it exactly the same way as any other connection — start, stop, update, and delete all work identically.

For full developer documentation:


A Brief Note on Export Connections

Export Connections take data that is already stored in Kelvin and push it to a third-party system for further processing. They are always custom-built by a developer — there are no out-of-the-box export connectors.

The most common use is sending data to platforms like Databricks for ML model training and advanced analytics, or to cloud storage like Amazon S3 or Azure Data Lake for long-term archiving.

Export Connections are a developer responsibility. Once built and uploaded to the App Repository, you deploy and manage them the same way as import connections.


What Comes Next: Data Quality and Guardrails

Getting data into Kelvin is only the first step. The next question is: can you trust the data?

Course 274 covers Asset Data Assurance — how to configure data quality rules and guardrails that protect your platform from bad data and runaway control changes.

A few things to look forward to in Course 274:

  • Setting data quality metrics per data stream
  • Defining guardrail rules to catch out-of-range values
  • Using static value thresholds and dynamic data stream thresholds
  • Understanding what happens when a guardrail rule is breached

Quick Reference

I want to... How
Create a new OPC UA connection Connections → Create Connection → Import Data and Control Setpoints → OPC UA
Pause a connection temporarily Connections list → Start/Stop button
Change a connection's endpoint URL Click connection name → Configuration tab → Edit → Apply and Redeploy
Add more assets to an existing connection Click connection name → Connection IO tab → Edit IO Map → Add → Save
Upgrade to a new connector version Connections list → Upgrade icon, or click name → Update Connection
Temporarily roll back to an older version Click connection name → Update Connection → select older version
Delete a connection Connections list → Delete icon, or click name → hamburger menu → Delete Connection
View live data from a connection Data Explorer → select Asset → select Data Stream
Deploy a custom connection built by a developer Connections → Create Connection (same as built-in, after upload to App Repository)

Quick Quiz

Quiz 1: What is the primary job of an Import Connection?

Answer: An Import Connection is the live communication link between Kelvin and your physical assets — like a SCADA system talking to a PLC. It continuously reads data from the asset and feeds it into Kelvin as Asset and Data Stream values. It can also write data back to the asset — for example, sending a setpoint change approved through a SmartApp recommendation.

Quiz 2: You need to pause data collection on a connection for planned maintenance. What should you use: Stop or Delete?

Answer: Use Stop. Stopping a connection pauses data collection without removing the workload from the edge. You can restart at any time without reconfiguring anything. Deleting is permanent and cannot be undone.

Quiz 3: What are the four things you configure in the IO Mapping section when setting up an OPC UA connection?

Answer: For each data point you map, you configure: the Asset name, the Data Stream name, the Node ID (the OPC UA address on the physical asset), the Polling Rate (in seconds), the Storage location (node, or node and cloud), and the Control Writable setting (RO or RW).

Quiz 4: You have added 200 new data streams to an existing connection. What is the fastest way to update the IO Mapping?

Answer: Use the Download CSV option in the IO Mapping section. Export the existing mappings, add the new rows in Excel or Google Sheets, and upload the completed file. This avoids having to add each row individually through the UI.

Quiz 5: What does Read/Write (RW) mean on a data stream, and why would you set it?

Answer: Read/Write means Kelvin can both read the value from the asset and send a new value back to the asset through the Connection. You set a data stream to RW on any data point where a SmartApp needs to be able to control a value on the physical asset — for example, changing a target pressure or a flow setpoint. Data streams that are for monitoring only should be set to Read Only (RO) to prevent accidental writes.

Quiz 6: Which of the following protocols is NOT available as a built-in connector in Kelvin: OPC UA, Modbus, MQTT, or Emerson ROC?

Answer: MQTT does not have a built-in out-of-the-box connector in Kelvin. OPC UA, Modbus TCP/RTU, and Emerson ROC are all available as built-in connectors. An MQTT connection would need to be built as a custom connector by a developer using the Kelvin SDK.

Quiz 7: A developer on your team has built a custom connection and uploaded it to the App Repository. What is your next step as Platform Administrator?

Answer: Deploy the custom connection from the Kelvin UI using the same Connections → Create Connection wizard used for built-in connectors. Once deployed, you manage it — start, stop, update, delete — exactly the same way as any other connection.


Summary

A Connection is the bridge between your physical assets and the Kelvin Platform. Import Connections communicate with your assets — reading live data from them and writing commands or setpoints back, just like SCADA talks to a PLC. Export Connections push data from Kelvin outward to third-party systems like Databricks or data lakes for further processing.

The key things to remember:

  • Kelvin ships with built-in connectors for OPC UA, Modbus TCP/RTU, and Emerson ROC. Use these for standard industrial assets.
  • When creating a connection, the four key things to configure are: Information (name), Configuration (protocol settings), IO Mapping (which data points map to which Kelvin assets and data streams), and Cluster (where to deploy).
  • For large IO Maps, use the CSV download/upload feature to save time.
  • Once deployed, you can start/stop, update, or delete a connection. Stop is temporary — delete is permanent.
  • You can update a connection's version, configuration, deployment settings, and IO map without deleting and recreating it.
  • Custom connections are built by developers using the Kelvin SDK, but deployed and managed by Platform Administrators in the same way as built-in connectors.
  • Course 274 covers the next step: data quality rules and guardrails to ensure the data coming in from your connections is trustworthy.

For full documentation, visit:

Good luck and Happy Learning !