# MPulse

## `MPulse` (FB)

FUNCTION\_BLOCK MPulse

### Short description

> Edge-triggered pulse generation with adjustable minimum duration.

### Representation

<figure><img src="https://2592874069-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQR4vCFzt6ixgsqlR3pdR%2Fuploads%2Fgit-blob-43bd474803a31a1de48b81357efa9a3f4e21719b%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

### Interfaces

#### Inputs

| Name  | Data type | Value range | Initial value | Function                             |
| ----- | --------- | ----------- | ------------- | ------------------------------------ |
| *xIN* | BOOL      |             |               | Binary input                         |
| *tPT* | TIME      |             | T#1s          | Minimum duration of the output pulse |

#### Outputs

| Name  | Data type | Value range | Initial value | Function                                                                           |
| ----- | --------- | ----------- | ------------- | ---------------------------------------------------------------------------------- |
| *xQ*  | BOOL      |             |               | Pulse output                                                                       |
| *tET* | TIME      |             |               | Time difference between the minimum duration and the duration of the pulse on *xQ* |

### Function description

#### General

At the pulse output *xQ* is after a positive edge on the binary input *xIN* a pulse with a minimum duration *tPT* is generated.

<figure><img src="https://2592874069-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQR4vCFzt6ixgsqlR3pdR%2Fuploads%2Fgit-blob-daf97b25fecad1a65eb4516c10139b12d11431e9%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

#### Time output *tET*

When the pulse output is active *xQ* the time difference between the minimum duration *tPT* and the duration of the pulse on *xQ* is displayed.\
When the pulse output is inactive *xQ* the value T#0s is always displayed.

### CODESYS

InOut:

| Scope  | Name  | Type   | Initial     |
| ------ | ----- | ------ | ----------- |
| Input  | `xIN` | `BOOL` |             |
| Input  | `tPT` | `TIME` | TIME#10s0ms |
| Output | `xQ`  | `BOOL` |             |
| Output | `tET` | `TIME` |             |
