# CTime

## `CTime` (FB)

FUNCTION\_BLOCK CTime

### Kurzbeschreibung

> Konvertierung einer Zeiteingabe (UDINT) in eine Zeitausgabe (TIME). Die Skalierung für die Zeiteingabe kann ausgewählt werden. Automatische Berechnung von Min/Max Grenzen für die Eingabe sowie Überwachung der Eingabe.

### Darstellung

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

### Schnittstellen

#### Eingänge

#### Ausgänge

| Name         | Datentyp | Wertebereich     | Initialwert | Funktion                                        |
| ------------ | -------- | ---------------- | ----------- | ----------------------------------------------- |
| *tOutTime*   | TIME     | 0 … 4294967295ms |             | Zeitangabe im Format TIME                       |
| *udiMinVisu* | UDINT    |                  |             | Anzeige von **tMinTime** für die Visualisierung |
| *udiMaxVisu* | UDINT    |                  |             | Anzeige von **tMaxTime** für die Visualisierung |

#### Sollwerte / Parameter

| Name           | Datentyp | Wertebereich         | Initialwert  | Funktion                                                               |
| -------------- | -------- | -------------------- | ------------ | ---------------------------------------------------------------------- |
| **udiTime**    | UDINT    | 0 … 4294967295       |              | Zeiteingabe (absolute Grenzen: 0..7 Tage) je nach Skalierung           |
| **eTimeScale** | eTime    | Second, Minute, Hour | eTime.Second | Festlegung der Skalierung der Zeiteingabe (Sekunden, Minuten, Stunden) |
| **tMinTime**   | TIME     | 0 … 4294967295ms     | 0s           | Untergrenze für die Zeiteingabe **udiTime**                            |
| **tMaxTime**   | TIME     | 0 … 4294967295ms     | 2h           | Obergrenze für die Zeiteingabe **udiTime**                             |

### Funktionsbeschreibung

#### Allgemeines

Dieser Funktionsbaustein dient zur Konvertierung einer Zeiteingabe **udiTime** in eine Zeitausgabe *tOutTime*.\
Die Skalierung für die Zeiteingabe **udiTime** erfolgt über den Sollwert und Parameter **eTimeScale**.\
Die Zeiteingabe ist absolut auf einen Wertebereich von 0 … 7 Tage beschränkt.\
Die Zeiteingabe wird durch eine Untergrenze **tMinTime** und eine Obergrenze **tMaxTime** begrenzt, beide Grenzen unterliegen ebenfalls der Skalierung.\
Die Zeitausgabe *tOutTime* wird dementsprechend auch auf die Bereich **tMinTime** - **tMaxTime** begrenzt.\
Überschreitet die Untergrenze **tMinTime** die Obergrenze **tMaxTime**, so wird die Untergrenze **tMinTime** auf die Obergrenze reduziert.\
Dieser Baustein kann z.B. für die Eingabe in einer Visualisierung genutzt werden.

### Visualisierung

Passendes Visualisierungselement aus der HVACV Visu Library: **CTime** und **CTime\_single\_input**

#### Darstellung

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

#### Schnittstellen Visu-Element

<table><thead><tr><th>Name</th><th>Datentyp</th><th>Typ</th><th width="150.7777099609375">Initialwert</th><th>Funktion</th></tr></thead><tbody><tr><td><strong>FB_CTime</strong></td><td>CTime</td><td>VAR_IN_OUT</td><td></td><td>Hier FB Instanz CTime eintragen Bsp. PRG.CTime</td></tr><tr><td><strong>sDialogTitle</strong></td><td>STRING</td><td>VAR_INPUT</td><td></td><td>Titel im Stringformat eingeben z.B: ‘Eingabe Raumtemperatur’ - erscheint im Numpad bei der Eingabe.</td></tr><tr><td><strong>iFieldSizeL</strong></td><td>INT</td><td>VAR_INPUT</td><td>0</td><td>Feld vergrößert sich um Anzahl der eingegebenen Pixel nach links. Wird benötigt um lange Zahlen oder Einheiten anzuzeigen.</td></tr><tr><td><strong>iFieldSizeR</strong></td><td>INT</td><td>VAR_INPUT</td><td>0</td><td>Feld vergrößert sich um Anzahl der eingegebenen Pixel nach rechts. Wird benötigt um lange Zahlen oder Einheiten anzuzeigen.</td></tr></tbody></table>

Die Einheit Sekunde ‘s’ Minute ‘m’ oder Stunde ‘h’ wird automatisch über die Einstellung im FB CTime angepasst. Die MIN und MAX Eingabegrenze wird auch automatisch über den FB erzeugt und im Visuelement angepasst. Kann zur Laufzeit geändert werden!&#x20;

{% hint style="info" %}
Hinweis: VAR\_IN\_OUT Schnittstellen müssen belegt werden, VAR\_INPUT sind optional.
{% endhint %}

Das Visualisierungselement **CTime\_single\_input** funktioniert wie **CTime** jedoch müssen alle Eingaben separat über die Schnittstellen eingetragen werden. Man kann somit diese Visualisierungselement auch ohne dein Baustein CTime verwenden.

#### Schnittstellen Visu-Element CTime\_single\_input

| Name             | Datentyp   | Typ          | Initialwert | Funktion                                                                                                                    |
| ---------------- | ---------- | ------------ | ----------- | --------------------------------------------------------------------------------------------------------------------------- |
| **udiTime**      | UDINT      | VAR\_IN\_OUT |             | Hier die UDINT Variable eintragen.                                                                                          |
| **eTimeScale**   | HVAC.eTime | VAR\_INPUT   |             | Hier kann das Enum eTimeScale eingetragen werden. Anzeige ob Sekunde, Minute oder Stunde.                                   |
| **udiMinVisu**   | UDINT      | VAR\_INPUT   | 0           | Hier kann die MIN Eingabegrenze eingegeben werden. Eingaben darunter werden über die Visualisierung nicht akzeptiert.       |
| **udiMaxVisu**   | UDINT      | VAR\_INPUT   | 7200        | Hier kann die MAX Eingabegrenze eingegeben werden. Eingaben darüber werden über die Visualisierung nicht akzeptiert.        |
| **sDialogTitle** | STRING     | VAR\_INPUT   |             | Titel im Stringformat eingeben z.B: ‘Eingabe Nachlaufzeit’ - erscheint im Numpad bei der Eingabe.                           |
| **iFieldSizeL**  | INT        | VAR\_INPUT   | 0           | Feld vergrößert sich um Anzahl der eingegebenen Pixel nach links. Wird benötigt um lange Zahlen oder Einheiten anzuzeigen.  |
| **iFieldSizeR**  | INT        | VAR\_INPUT   | 0           | Feld vergrößert sich um Anzahl der eingegebenen Pixel nach rechts. Wird benötigt um lange Zahlen oder Einheiten anzuzeigen. |

### CODESYS

InOut:

| Scope       | Name         | Type    | Initial        |
| ----------- | ------------ | ------- | -------------- |
| Input Const | `tMaxTime`   | `TIME`  | TIME#120m0s0ms |
| Input Const | `tMinTime`   | `TIME`  | TIME#0ms       |
| Input Const | `eTimeScale` | eTime   | eTime.Second   |
| Input Const | `udiTime`    | `UDINT` |                |
| Output      | `tOutTime`   | `TIME`  |                |
| Output      | `udiMinVisu` | `UDINT` |                |
| Output      | `udiMaxVisu` | `UDINT` |                |


---

# 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/hvac-library/functionblocks/general/ctime.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.
