# PulseShift

## `PulseShift` (FB)

FUNCTION\_BLOCK PulseShift

### Kurzbeschreibung

> Flankengesteuerte, verzögerte Impulserzeugung mit einstellbarer Impulsdauer.

### Darstellung

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

### Schnittstellen

#### Eingänge

| Name     | Datentyp | Wertebereich | Initialwert | Funktion                       |
| -------- | -------- | ------------ | ----------- | ------------------------------ |
| *xIN*    | BOOL     |              |             | Binärer Eingang                |
| *tShift* | TIME     |              | T#1s        | Verzögerungszeit               |
| *tPT*    | TIME     |              | T#1s        | Zeitdauer des Ausgangsimpulses |

#### Ausgänge

| Name  | Datentyp | Wertebereich | Initialwert | Funktion                                                                        |
| ----- | -------- | ------------ | ----------- | ------------------------------------------------------------------------------- |
| *xQ*  | BOOL     |              |             | Impulsausgang                                                                   |
| *tET* | TIME     |              |             | Zeitdifferenz zwischen der Sollzeitdauer und der Zeitdauer des Impulses an *xQ* |

#### Sollwerte / Parameter

| Name      | Datentyp | Wertebereich | Initialwert | Funktion                               |
| --------- | -------- | ------------ | ----------- | -------------------------------------- |
| **xTest** | BOOL     |              | FALSE       | Testeingang zur Auslösung des Impulses |

### Funktionsbeschreibung

#### Allgemeines

Am Impulsausgang *xQ* wird nach einer positiven Flanke am binären Eingang *xIN* und einer sich anschließenden Verzögerungszeit *tShift* ein Impuls mit einer Zeitdauer *tPT* erzeugt.\
Alternativ kann die Impulserzeugung ohne Verzögerungszeit auch durch den Sollwert / Parameter **xTest** ausgelöst werden.

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

#### Zeitausgang *tET*

Bei aktivem Impulsausgang *xQ* wird die Zeitdifferenz zwischen der Sollzeitdauer *tPT* und der Zeitdauer des Impulses an *xQ* angezeigt.\
Bei inaktivem Impulsausgang *xQ* wird stets der Wert T#0s angezeigt.

### CODESYS

InOut:

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