# ClockMaster32

## `ClockMaster32` (FB)

FUNCTION\_BLOCK ClockMaster32 EXTENDS LAT.Element IMPLEMENTS IUhrProtocol, IUhr

### Kurzbeschreibung

> Master - Funktionsbaustein für ein Uhrensystem mit 32 Wochenuhren, 30 Feiertagen, 10 Ferienperioden und 5 Sonderschaltzeiten.\
> Die Wochenuhren enthalten jeweils eine Ein- und Ausschaltzeit pro Wochentag (448 Schaltpunkte).\
> Ferner sind 30 Feiertage (länderspezifisch), 10 Ferienperioden (Anfangs- und Enddatum) sowie 5 Sonderschaltzeiten (Ein- und Ausschaltzeit sowie Datum) definierbar.

### Darstellung

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

### Funktionsbeschreibung

#### Allgemeines

Dieser Funktionsbaustein dient als Master - Funktionsbaustein für ein Uhrensystem mit 32 Wochenuhren, 30 Feiertagen, 10 Ferienperioden und 5 Sonderschaltzeiten.\
Er erlaubt die Festlegung der Zeit- bzw. Datumsangaben durch den Anwender (Visualisierung) und stellt unter Berücksichtigung der aktuellen Uhrzeit und des aktuellen Datums die daraus resultierenden Zustände (Wochenuhrkanal 1 - 32, Feiertagekanal, Ferienkanal sowie Sonderschaltzeitenkanal) den maximal 63 Slave - Funktionsbausteinen ClockSlave32 zur Verfügung.\
In den Slave - Funktionsbausteinen erfolgt nun die Zuordnung zu den Kanälen (Wochenuhrkanal 1 - 32, Feiertagekanal, Ferienkanal sowie Sonderschaltzeitenkanal) durch binäre Variablen (FALSE = nicht zugeordnet, TRUE = zugeordnet).\
Die Verbindung zwischen dem Master - Funktionsbaustein und den Slave - Funktionsbausteinen wird dabei über den Ausgang *itfToClockSlave32* bzw. die Eingänge \*itfFromClockMaster32 \* hergestellt.\
Die Eingänge *xAllOn* bzw. *xAllOff* erlauben (Eingang = TRUE) die zentrale Aktivierung / Deaktivierung aller Ausgänge *xClockActive* aller angeschlossenen Slave - Funktionsbausteine.\
Der Eingang *xAllOff* ist gegenüber dem Eingang *xAllOn* höher priorisiert.\
\
Zur Festlegung der Zeit- bzw. Datumsangaben werden die folgende Funktionsbausteine eingesetzt:

Clock7d1Ch

PublicHoliday

Holiday

SwitchTimeS

Beispiel Darstellung in Kombination mit Slave Uhren:

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

### Visualisierung

#### Darstellung

<figure><img src="/files/8p0Kjvc1HhAEmyblZtg7" alt=""><figcaption></figcaption></figure>

> Die Slave Uhren werden automatisch nach der Reihenfolge wie diese im Programm aufgerufen werden angehängt. Die Maximale Anzahl ist auf 144 Slave Uhren im Visuelement limitiert. Im ClockMaster32 kann die maximale Anzahl über die Library Konstante angepasst werden.

#### Schnittstellen Visu-Element

| Name                  | Datentyp      | Typ          | Initialwert | Funktion                                                                                                                                                                                                                                      |
| --------------------- | ------------- | ------------ | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **FB\_ClockMaster32** | ClockMaster32 | VAR\_IN\_OUT |             | Hier FB ClockMaster32 eintragen Bsp. PRG.ClockMaster32                                                                                                                                                                                        |
| **BMS\_Active**       | BOOL          | VAR\_INPUT   |             | BMS (Building Management System) GLT (Gebäudeleittechnik). Wenn BMS\_Active = TRUE wird die Eingabe / Editierung der Uhren deaktiviert da diese dann nur über das BMS eingestellt werden können. Uhrzeiten können dann nur angeschaut werden. |
| **DisableInput**      | BOOL          | VAR\_INPUT   |             | DisableInpput = TRUE Uhrzeiten der Wochenuhren können nur angesehen werden und nicht editiert werden.                                                                                                                                         |

\
Hinweis: VAR\_IN\_OUT Schnittstellen müssen belegt werden, VAR\_INPUT sind optional.

### CODESYS

InOut:

| Scope       | Name                | Type              | Initial                            |
| ----------- | ------------------- | ----------------- | ---------------------------------- |
| Input       | `xAllOn`            | `BOOL`            |                                    |
| Input       | `xAllOff`           | `BOOL`            |                                    |
| Input Const | `eCountry`          | eCountryList      | eCountryList.DE                    |
| Input Const | `ActiveClocksVisu`  | eActiveClocksVisu | eActiveClocksVisu.Activate16Clocks |
| Output      | `itfToClockSlave32` | `IUhrProtocol`    | THIS^                              |
| Output      | `ctClockSlave32`    | `CAA.COUNT`       |                                    |


---

# 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/clock/clockmaster32.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.
