# Connect to Assets

EasyEdge allows you to connect to industrial devices—PLCs, sensors, meters, machines—through a wide range of supported industrial protocols. These devices are represented in EasyEdge as **Assets**, and each Asset is linked to an **Asset Driver** that understands how to communicate with it.

In this example, we’ll connect a **Modbus TCP Energy Meter** to demonstrate how Asset configuration works. This process can be adapted to any supported protocol.

{% hint style="info" %}
🎥 **Video Tutorial:**\
Watch the video below for a complete walkthrough of this example.
{% endhint %}

VIDEO TO BE ADDED

## Step-by-Step Example: Add a Modbus TCP Asset

### **1. Open the System Overview**

In **EasyEdge Studio**, go to your System and click **Add Asset**.

***

### **2. Choose the EdgeNode**

Select the EdgeNode where the Asset will be deployed.

{% hint style="info" %}
🌐 EasyEdge is a Cloud-First Industrial Edge Platform. You can manage all gateways centrally from a Unified Command Center and deploy Assets to any connected EdgeNode.
{% endhint %}

***

### **3. Choose the Asset Driver**

Select **Modbus RTU/TCP Client** from the list of available drivers. Each driver provides a template and communication logic for the industrial protocol.

***

### **4. Choose How to Create the Asset**

After selecting the **Modbus RTU/TCP Client** driver and the target **EdgeNode**, you’ll be prompted to choose how you want to create the Asset. EasyEdge offers multiple methods to simplify Asset creation depending on your workflow and available information.

<figure><img src="/files/U9RoOJqXDDMClkzLj7xj" alt=""><figcaption></figcaption></figure>

**Asset Creation Options**

**🗂️ Create from Library**\
Use an existing Asset Profile from your Library.\
This is the fastest way to create standardized Assets across multiple projects. It ensures consistency and reduces errors by reusing validated profiles.

{% hint style="info" %}
✅ Best for: fast deployment of known device types
{% endhint %}

**📎 Create with JiT Connector**\
Upload or link a device description file (e.g., `.csv`, `.xml`, `.xlsx`, `.pdf`) to automatically create the Asset. The JiT (Just-in-Time) Connector parses the file and automatically builds the Data Fields map.

{% hint style="info" %}
✅ Best for: importing device configurations exported from PLCs, meters, or third-party tools
{% endhint %}

**✍️ Create from Scratch**\
Manually define the Asset and all its tags field by field. This method gives you complete control over the configuration process.

{% hint style="info" %}
✅ Best for: engineering teams familiar with the device and protocol details
{% endhint %}

**📄 Create from Template**\
Upload a preformatted `.xlsx` template to create one or multiple Assets in bulk. This is ideal for setting up large numbers of devices at once.

{% hint style="info" %}
✅ Best for: bulk onboarding using structured data files
{% endhint %}

{% hint style="info" %}
💡 You can always save an Asset as an Asset Profile after creation to reuse it later from the Library.
{% endhint %}

***

### 5. Create the Asset from Scratch (example)

In this example, we’ll use the **Create from Scratch** method to manually define the Asset and its data fields.

This method gives full control over the configuration and is especially useful when:

* You're connecting to a new type of device
* No description files are available
* You want to validate communication step by step

#### **5.1 Name the Asset**

This step is common to all creation methods.

* Choose a clear and descriptive **Asset Name** (e.g., `EnergyMeter_01`)
* The name will appear throughout your project and in deployed configurations

<figure><img src="/files/MplAxJ84KSy82YJGoBpG" alt=""><figcaption></figcaption></figure>

#### **5.2 Configure Communication Settings**

Also common to all creation methods, this step defines how EasyEdge will communicate with the device.

For **Modbus TCP**, this typically includes:

* **IP Address** of the device (e.g., `192.168.1.100`)
* **Port** (default: `502`)
* **Polling Rate** (e.g., `1000 ms` for 1-second intervals)
* **Timeout** and **Retry** settings if needed

{% hint style="info" %}
🧩 Settings will vary depending on the protocol selected\
(e.g., COM Port and Baud Rate for Modbus RTU, Endpoint and Security for OPC UA)
{% endhint %}

<figure><img src="/files/WW5L0dPSe2WPuM1PaxNJ" alt=""><figcaption></figcaption></figure>

#### **5.3 Define Data Fields**

This step is specific to the **Create from Scratch** method.

In this step, you’ll manually define the **Data Fields** for the Asset. These represent the raw data blocks that EasyEdge will collect directly from the device, based on your protocol configuration—in this case, **Modbus TCP**.

Each Data Field includes low-level details required to access a specific value in the device memory.

For each Data Field, configure:

* **Name**: A readable label for the value (e.g., `PHASE VOLTAGE L1-N`)
* **Start Address**: The Modbus register address (e.g., `0x1002`)
* **Length**: Number of registers (e.g., `2` for 32-bit values)
* **Data Type**: Format of the value (e.g., `UINT32`)
* **Function Type**: The Modbus memory area (e.g., `Holding Register`)
* **Operation**: Typically `Read Only` for measurements
* **Status**: Set to `Enabled` if you want the data field to be actively read

You can add as many fields as needed to cover all required readings from your device.

<figure><img src="/files/9u8ir1Yfc3FP5AJQdgwI" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
💡 If using a Library, Template, or JiT Connector method, this step will be auto-filled.
{% endhint %}

***

### 6. Choose the Asset Modeling Method

Once you’ve defined the **Data Fields**, the next step is to define how those fields are used to build your **Asset Tags**.&#x20;

Each Tag can:

* Reference one or multiple Data Fields
* Apply transformations
* Be renamed, grouped, or structured to match a specific data model

<figure><img src="/files/2nv1I0EVzWpGqM3joDPr" alt=""><figcaption></figcaption></figure>

#### **Modeling Options**

**🚫 Do Not Process Data Fields**\
No Tags will be created automatically. You’ll need to manually create each Tag from scratch and use **Expressions** to bind them to one or more Data Fields.

{% hint style="info" %}
✅ Best for: Full control over tag logic, when advanced calculations or custom mappings are needed.
{% endhint %}

**🔁 1-to-1 Mapping**\
Creates one Tag per Data Field, with each Tag directly bound to its source Data Field.

* Tags are named automatically (based on the Data Field)
* You can later edit Tag names, expressions, or apply transformations

{% hint style="info" %}
✅ Best for: Quick modeling when the Data Fields already match your desired tag structure.
{% endhint %}

**🤖 AI Modeling**\
Let the EasyEdge AI Copilot build the Tag structure for you. It analyzes your Data Fields and creates a normalized set of Tags that conform to a selected **Data Model** from your Library.

* Reduces time spent on manual mapping
* Enforces data model consistency across sites
* Ideal for standardizing deployment at scale

{% hint style="info" %}
✅ Best for: Large-scale or standardized deployments using a predefined model.
{% endhint %}

***

### 7. Configure the Asset Tags

Once the Tag structure is created (automatically or manually), you can refine it to match your project’s logic, organization, and data delivery needs.

<figure><img src="/files/HCyzJg1hv72HcKTwYdcC" alt=""><figcaption></figcaption></figure>

#### **Asset Tag Configuration**

From the **Tags** view, you can:

* **Organize Tags in Folders**\
  Create a clean folder hierarchy within the Asset to group Tags by type, phase, signal type, etc.
* **Change Data Types**\
  You can change the data type of any Tag. EasyEdge’s **Data Integrity Engine** will automatically convert values at runtime with no loss or mismatch.
* **Enable External Write**\
  Activate this setting if a Tag should receive values from outside sources:
  * Another Asset (via Workflow)
  * An Application Connector
  * Remote control systems

This is essential for building closed-loop logic or issuing control signals from cloud platforms or edge logic.

<figure><img src="/files/WMEvnPcH4mhASDdny6tC" alt=""><figcaption></figcaption></figure>

#### **Tag Edit and Expression Configuration**

Clicking on a Tag opens the **Edit Tag** overlay where you can:

* Rename or reorganize the Tag
* Assign or edit its **Write Expressions** and **Usage Expressions**
* Apply calculations or transformations (e.g., scaling, conditional logic)

Expressions let you bind the Tag to a single or multiple Data Fields and apply math, logic, or formatting before the value is made available for use across EasyEdge.

{% hint style="info" %}
⚙️ Tags can feed into **Workflows**, be part of **Core Tags**, and be routed via **Data Streams** to any IT or Cloud destination.
{% endhint %}

***

### 8. Validate and Finish

You're almost done. The final step is to review your configuration and confirm the Asset setup.

#### **Summary Includes:**

* **EdgeNode**\
  The gateway where the Asset will be deployed
* **Asset Driver**\
  The protocol driver selected for this Asset (e.g., Modbus RTU/TCP)
* **Asset Details**
  * Asset name (e.g., `EnergyMeter_01`)
  * Number of Tags configured (e.g., `42`)

Once everything looks correct, click **Finish** to save the Asset.

The Asset is now ready to:

* Be monitored live from the EdgeNode
* Feed data into **Workflows**, **Core Tags**, and **Data Streams**
* Participate in any automation or transformation processes you configure next

{% hint style="info" %}
✅ You can now preview data values in real-time or continue engineering your project.
{% endhint %}

***


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://easyedge.gitbook.io/easyedge/connect-to-assets.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
