# XPulse

## `XPulse` (FB)

FUNCTION\_BLOCK XPulse

### Short description

> Generation of an exclusive pulse with adjustable duration.

### Representation

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

### Interfaces

#### Inputs

| Name  | Data type | Value range | Initial value | Function       |
| ----- | --------- | ----------- | ------------- | -------------- |
| *xIN* | BOOL      |             |               | Input          |
| *tPT* | TIME      |             | T#1s          | Pulse duration |

#### Outputs

| Name  | Data type | Value range | Initial value | Function                       |
| ----- | --------- | ----------- | ------------- | ------------------------------ |
| *xQ*  | BOOL      |             |               | Output                         |
| *tET* | TIME      | 0 … *tPT*   |               | Time difference to pulse start |

#### Setpoints / parameters

| Name      | Data type | Value range | Initial value | Function                      |
| --------- | --------- | ----------- | ------------- | ----------------------------- |
| **xTest** | BOOL      |             | FALSE         | Simulation of the input *xIN* |

### Function description

#### General

This function block is used to generate a pulse of defined duration (*tPT*) after a rising edge at the input *xIN*.\
The generation of the pulse can also be triggered independently by the simulation input **xTest**  (rising edge).\
The time difference to the pulse start is displayed at the output *tET*  (value range: 0 … *tPT*) .

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

### CODESYS

InOut:

| Scope       | Name    | Type   | Initial    |
| ----------- | ------- | ------ | ---------- |
| Input       | `xIN`   | `BOOL` |            |
| Input       | `tPT`   | `TIME` | TIME#1s0ms |
| Input Const | `xTest` | `BOOL` | FALSE      |
| Output      | `xQ`    | `BOOL` |            |
| Output      | `tET`   | `TIME` |            |


---

# 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://support.powerio.com/hub/codesys-hvac/en/hvac-library/functionblocks/time/xpulse.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.
