Verwendung von Eigenschaften

Eigenschaften besitzen den Vorteil, dass auf diese lesend, wie auch schreibend zugegriffen werden kann. Somit lassen sich über Eigenschaften Parameter an einen Funktionsblock übergeben, also auch Zustände des Funktionsblocks ausgeben.

Die Tc3_DALI verwendet Eigenschaften überwiegend, um Parameter an Bausteine zu übergeben. Jede Eigenschaft besitzt einen dokumentierten Initialwert. Somit ist es nicht notwendig jeder Eigenschaft einen Wert zuzuweisen.

Zuweisung zur Laufzeit

Das folgende Beispiel zeigt, wie in ST und CFC Werte zur Laufzeit an Eigenschaften übergeben werden.

fbDALI102Dimmer1Switch  : FB_DALI102Dimmer1Switch(Communication.fbKL6821Communication);

In ST erfolgt die Zuweisung der Eigenschaften getrennt vom Aufruf der Instanz.

fbDALI102Dimmer1Switch.nMaxLevel := 250;
fbDALI102Dimmer1Switch.nMinLevel := 130;
fbDALI102Dimmer1Switch();

Die Zuweisung der Eigenschaften erfolgt in CFC durch Input- und Output Elemente und ebenfalls unabhängig vom Aufruf der Instanz.

Verwendung von Eigenschaften 1:

Zuweisung bei der Deklaration

Eigenschaften können auch direkt bei der Deklaration eines Bausteins einen Wert erhalten.

fbDALI102Dimmer1Switch : FB_DALI102Dimmer1Switch(Communication.fbKL6821Communication) := 
               (nMaxLevel := 250, nMinLevel := 130);

Die Zuweisung der Werte zu den Eigenschaften erfolgt vor dem ersten SPS-Zyklus.

Verwendung von Arrays

Wird von einem Funktionsblock ein Array deklariert, so können die Eigenschaften für jedes Element des Arrays unterschiedliche Werte erhalten.

aDALI102Dimmer1Switch : ARRAY [1..3] OF FB_DALI102Dimmer1Switch(Communication.fbKL6821Communication) :=
               [(nMaxLevel := 250, nMinLevel := 130), // Element 1
                (nMaxLevel := 240, nMinLevel := 130), // Element 2
                (nMaxLevel := 254, nMinLevel := 125)]; // Element 3

Bei dem folgenden Beispiel erhalten die beiden Eigenschaften nMaxLevel und nMinLevel von Element 1 und 2 individuelle Werte. Die Eigenschaften von Element 3 bleiben unverändert und behalten weiterhin ihre Initialwerte.

aDALI102Dimmer1Switch : ARRAY [1..3] OF FB_DALI102Dimmer1Switch(Communication.fbKL6821Communication) :=
               [(nMaxLevel := 250, nMinLevel := 130), // Element 1
                (nMaxLevel := 240, nMinLevel := 130)]; // Element 2

Es kann auch die Kurzform für Mehrfachinitialisierung verwendet werden.

aDALI102Dimmer1Switch : ARRAY [1..5] OF FB_DALI102Dimmer1Switch(Communication.fbKL6821Communication) :=
               [2((nMaxLevel := 250, nMinLevel := 130)), // Element 1 and 2
                 (nMaxLevel := 254, nMinLevel := 125), // Element 3
                2((nMaxLevel := 240, nMinLevel := 140))]; // Element 4 and 5