# Emulator

Use the **Emulator** data connector to generate test data on the fly, without the need to connect to external devices.&#x20;

The Read Address is used to define how measurements are generated.

<figure><img src="https://570593659-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYMGRODsc2QD3N3wmfwTl%2Fuploads%2FfD6gZLc9M9HlPFfOC4Gh%2Fimage.png?alt=media&#x26;token=5f693903-b9f6-4d78-b412-91c216334c92" alt=""><figcaption><p>Example of a Tag configured with an emulated signal.</p></figcaption></figure>

### Syntax

Each Tag is configured by setting the read address, using the following syntax:

```
<generator>[optional-params];param1;param2;...
```

You can optionally append a **variance** modifier to add noise (see below).

***

### Generators

* **Sine curve** \
  Produces a sine wave between a minimum and maximum over a fixed period (seconds).\
  **Format:** `sinus;min;max;periodSeconds`\
  **Example:** `sinus;0;10;30` → oscillates from 0 to 10 with a 30-second period.
* **Step**\
  Alternates between levels for specified hold times (seconds) and repeats. \
  **Format:** `step;step1;step1 seconds;step2;step2 seconds; .. ;step<n>;step<n> seconds`\
  **Example:** `step;-10;5;10;15` → hold -10 for 5 s, then 10 for 15 s, repeat.
* **Sequence**\
  Emits a fixed series of values in order, then loops. One element is output each emission.\
  **Format:** `sequence;v1;v2;...;v<n>`\
  **Example:** `sequence;1;2;3;4;5` → generates the sequence 1,2,3,4,5,1,2,3,4,5… repeatedly.
* **Random**\
  Uniform random numbers within a range.\
  **Formats:** `random;min;max`&#x20;

  **Examples:** `random;0;1000` → generates random numbers between 0 and 1000.&#x20;

***

{% hint style="warning" %}
The cadence of generating measurements is controlled by the Tag’s **Sampling** settings.
{% endhint %}

### Variance (noise)

Add additive noise to any generator by appending a variance modifier:

```
<generator>[variance=x];...
```

A random factor, in the range of plus/minus the variance x, is added to the output. This is useful for “roughing up” ideal shapes (e.g., sine waves).

**Example:** `sinus[variance=0.3];0;10;30`

{% hint style="warning" %}
You can still apply **Process** (aggregation/resampling) and **Store** (cloud/local historian) settings to emulator-driven Tags.
{% endhint %}
