# Curve\_10XY\_Real\_Time

## `Curve_10XY_Real_Time` (FB)

FUNCTION\_BLOCK Curve\_10XY\_Real\_Time

### Kurzbeschreibung

> Eingabe von 10 Wertepaaren (Stützstellen mit jeweils einem X- und Y-Wert)\
> Randbedingungen:
>
> 1. Die X-Werte müssen fortlaufend entweder ansteigend oder abfallend sein
> 2. Zwei aufeinanderfolgende X-Werte dürfen nicht gleich sein
>
> \
> Typische Anwendung: Übergabe einer Kennlinie mit 10 Stützstellen

### Darstellung

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

### Schnittstellen

#### Ausgänge

| Name                          | Datentyp            | Wertebereich | Initialwert | Funktion                                                                  |
| ----------------------------- | ------------------- | ------------ | ----------- | ------------------------------------------------------------------------- |
| <p><br>arData\_Real\_Time</p> | stCurve\_Real\_Time |              |             | Array mit den Stützstellen (Datentyp X-Wert: REAL, Datentyp Y-Wert: TIME) |
| <p><br>xValidData</p>         | BOOL                |              | FALSE       | Gültigkeit der Daten im Ausgabe-Array (TRUE = gültig)                     |
| <p><br>xError</p>             | BOOL                |              | FALSE       | Fehlerzustand der eingegebenen Stützstellen (TRUE = Fehler)               |

#### Sollwerte / Parameter

| Name                  | Datentyp | Wertebereich | Initialwert | Funktion                |
| --------------------- | -------- | ------------ | ----------- | ----------------------- |
| <p><br>rSP1\_X</p>    | REAL     |              | 1.0         | Stützstelle 1 - X-Wert  |
| <p><br>tSP1\_Y</p>    | TIME     |              | T#1m        | Stützstelle 1 - Y-Wert  |
| <p><br>rSP2\_X</p>    | REAL     |              | 2.0         | Stützstelle 2 - X-Wert  |
| <p><br>tSP2\_Y</p>    | TIME     |              | T#2m        | Stützstelle 2 - Y-Wert  |
| <p><br>rSP3\_X</p>    | REAL     |              | 3.0         | Stützstelle 3 - X-Wert  |
| <p><br>tSP3\_Y</p>    | TIME     |              | T#3m        | Stützstelle 3 - Y-Wert  |
| <p><br>rSP4\_X</p>    | REAL     |              | 4.0         | Stützstelle 4 - X-Wert  |
| <p><br>tSP4\_Y</p>    | TIME     |              | T#4m        | Stützstelle 4 - Y-Wert  |
| <p><br>rSP5\_X</p>    | REAL     |              | 5.0         | Stützstelle 5 - X-Wert  |
| <p><br>tSP5\_Y</p>    | TIME     |              | T#5m        | Stützstelle 5 - Y-Wert  |
| <p><br>rSP6\_X</p>    | REAL     |              | 6.0         | Stützstelle 6 - X-Wert  |
| <p><br>tSP6\_Y</p>    | TIME     |              | T#6m        | Stützstelle 6 - Y-Wert  |
| <p><br>rSP7\_X</p>    | REAL     |              | 7.0         | Stützstelle 7 - X-Wert  |
| <p><br>tSP7\_Y</p>    | TIME     |              | T#7m        | Stützstelle 7 - Y-Wert  |
| <p><br>rSP8\_X</p>    | REAL     |              | 8.0         | Stützstelle 8 - X-Wert  |
| <p><br>tSP8\_Y’\*</p> | TIME     |              | T#8m        | Stützstelle 8 - Y-Wert  |
| <p><br>rSP9\_X</p>    | REAL     |              | 9.0         | Stützstelle 9 - X-Wert  |
| <p><br>tSP9\_Y</p>    | TIME     |              | T#9m        | Stützstelle 9 - Y-Wert  |
| <p><br>rSP10\_X</p>   | REAL     |              | 10.0        | Stützstelle 10 - X-Wert |
| <p><br>tSP10\_Y</p>   | TIME     |              | T#10m       | Stützstelle 10 - Y-Wert |

### Funktionsbeschreibung

\
Das Array am Ausgang arData\_Real\_Time wird mit den eingegebenen Daten der 10 Stützstellen befüllt, falls<br>

1. kein aktiver Fehler in der Eingabe der Stützstellen vorliegt (xError = FALSE) UND
2. eine Wertänderung in den eingegebenen Daten stattgefunden hat

\
Der Ausgang **xValidData** ist aktiv (= TRUE), falls die Daten im Ausgabe-Array gültig sind. Die Daten im Ausgabe-Array können sich von den eingegebenen Daten unterscheiden, falls die eingegebenen Daten einen Fehler aufweisen.\
\
Bei der Festlegung der X-Werte gelten folgende Randbedingungen:\
\
1\) Die X-Werte müssen fortlaufend entweder ansteigend oder abfallend sein\
2\) Zwei aufeianderfolgende X-Werte dürfen nicht gleich sein\
\
Der Ausgang **xError** ist aktiv (= TRUE), falls mindestens eine dieser beiden Bedingungen nicht erfüllt ist.\
Er ist nicht aktiv (= FALSE), falls beide Bedingungen erfüllt sind.

### Darstellung einer Beispiel-Kennlinie

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

### CODESYS

InOut:

| Scope       | Name               | Type                                  | Initial       |
| ----------- | ------------------ | ------------------------------------- | ------------- |
| Output      | `arData_Real_Time` | ARRAY \[1..10] OF stCurve\_Real\_Time |               |
| Output      | `xValidData`       | `BOOL`                                | FALSE         |
| Output      | `xError`           | `BOOL`                                | FALSE         |
| Input Const | `tSP10_Y`          | `TIME`                                | TIME#10m0s0ms |
| Input Const | `rSP10_X`          | `REAL`                                | 10.0          |
| Input Const | `tSP9_Y`           | `TIME`                                | TIME#9m0s0ms  |
| Input Const | `rSP9_X`           | `REAL`                                | 9.0           |
| Input Const | `tSP8_Y`           | `TIME`                                | TIME#8m0s0ms  |
| Input Const | `rSP8_X`           | `REAL`                                | 8.0           |
| Input Const | `tSP7_Y`           | `TIME`                                | TIME#7m0s0ms  |
| Input Const | `rSP7_X`           | `REAL`                                | 7.0           |
| Input Const | `tSP6_Y`           | `TIME`                                | TIME#6m0s0ms  |
| Input Const | `rSP6_X`           | `REAL`                                | 6.0           |
| Input Const | `tSP5_Y`           | `TIME`                                | TIME#5m0s0ms  |
| Input Const | `rSP5_X`           | `REAL`                                | 5.0           |
| Input Const | `tSP4_Y`           | `TIME`                                | TIME#4m0s0ms  |
| Input Const | `rSP4_X`           | `REAL`                                | 4.0           |
| Input Const | `tSP3_Y`           | `TIME`                                | TIME#3m0s0ms  |
| Input Const | `rSP3_X`           | `REAL`                                | 3.0           |
| Input Const | `tSP2_Y`           | `TIME`                                | TIME#2m0s0ms  |
| Input Const | `rSP2_X`           | `REAL`                                | 2.0           |
| Input Const | `tSP1_Y`           | `TIME`                                | TIME#1m0s0ms  |
| Input Const | `rSP1_X`           | `REAL`                                | 1.0           |
