KL6821 mit CX5120
Dieses Beispiel beschreibt, wie ein einfaches SPS-Programm für DALI in TwinCAT geschrieben werden kann und wie es mit der Hardware verknüpft wird.
Es soll eine einzelne Lampe angesteuert und per Taster auf den maximalen Ausgangswert geschaltet oder ausgeschaltet werden.
Beispiel: DALI_Sample_KL6821_CX5120.zip
![]() | Das TwinCAT-Projekt steht als *.zip Datei zum Download zur Verfügung. Diese muss zuerst lokal entpackt werden, damit das Archiv (*.tnzip Datei) zum Import in das TwinCAT-Projekt zur Verfügung steht. |
Hardware
Einrichtung der Komponenten
- 1x Embedded-PC CX5120
- 1x Digitale 4-Kanal-Eingangsklemme KL1104 (für die Ein- und Ausschalt-Funktion)
- 1x DALI-Klemme KL6821
- 1x Endklemme KL9010
Richten Sie die Hardware und die DALI-Komponenten, wie in den entsprechenden Dokumentationen beschrieben, ein.
Das Beispiel geht davon aus, dass ein Ein-Taster auf den ersten und ein Aus-Taster auf den zweiten Eingang der KL1104 gelegt wurde. An der DALI-Adresse 0 befindet sich eine Lampe.
Software
Erstellung des SPS-Programms
Erstellen Sie ein neues TwinCAT XAE Project und legen Sie ein Standard PLC Project an. Fügen Sie im SPS-Projekt unter References die Tc3_DALI-Bibliothek hinzu. Erzeugen Sie eine globale Variablenliste mit den Namen GVL_DALI und legen Sie die folgenden Variablen an:
VAR_GLOBAL
bSwitchOn AT %I* : BOOL;
bSwitchOff AT %I* : BOOL;
stKL6821InData AT %I* : ST_KL6821InData;
stKL6821OutData AT %Q* : ST_KL6821OutData;
END_VAR
bSwitchOn: Eingangsvariable für den Ein-Taster.
bSwitchOff: Eingangsvariable für den Aus-Taster.
stKL6821InData: Eingangsvariable für die DALI-Klemme (siehe ST_KL6821InData).
stKL6821OutData: Ausgangsvariable für die DALI-Klemme (siehe ST_KL6821OutData).
Legen Sie ein Programm (CFC) für die Hintergrundkommunikation mit der DALI-Klemme an. In dem Programm wird der Baustein FB_KL6821Communication aufgerufen. Achten Sie beim Kommunikationsbaustein darauf, die Strukturen stInData und stOutData zu verknüpfen.

Legen Sie ein MAIN-Programm (CFC) an, in dem die Bausteine FB_DALI102RecallMaxLevel und FB_DALI102Off folgendermaßen deklariert werden.
PROGRAM MAIN
VAR
fb102RecallMaxLevel : FB_DALI102RecallMaxLevel(Communication.fbKL6821Communication);
fb102Off : FB_DALI102Off(Communication.fbKL6821Communication);
END_VAR
In den runden Klammern hinter der Deklaration wird der Kommunikationsbaustein angegeben. Über diese Angabe wird die Referenz zu der gewünschten DALI-Klemme festgelegt.
Weitere Informationen hierzu finden Sie unter Übergabe der Referenz auf den Kommunikationsbaustein.
Rufen Sie die beiden Instanzen der Bausteine FB_DALI102RecallMaxLevel und FB_DALI102Off mit den folgenden Variablen auf.
Der Eingang bStart des Bausteins zum Einschalten einer Lampe mit dem maximalen Ausgangswert wird mit der globalen Variable bSwitchOn verknüpft.
Der Eingang bStart des Bausteins zum Ausschalten einer Lampe wird mit der globalen Variable bSwitchOff verknüpft.

Navigieren Sie in den Bereich der Taskkonfiguration und konfigurieren die PlcTask. Exemplarisch erhält die Task die Priorität 16 und eine Zykluszeit von 6 ms.

Legen Sie eine weitere Task für die Hintergrundkommunikation an. Geben Sie dieser Task eine höhere Priorität (kleinere Zahl) und eine niedrigere Intervall-Zeit als der PlcTask.

Fügen Sie dieser Task das Programm für die Kommunikation zu. Genauere Information zur Taskkonfiguration finden Sie in der Beschreibung des Bausteins FB_KL6821Communication.

E/A Konfiguration
Wählen Sie als Zielsystem den CX und lassen Sie nach dessen Hardware suchen.
In der Instanz (DALI_Sample_KL6821_CX5120 Instance) des SPS-Projekts, sehen Sie, dass die Ein- und Ausgangsvariablen des SPS-Programms den entsprechenden Tasks (PlcCommunication und PlcTask) zugeordnet sind.

Verknüpfen Sie die globalen Variablen des SPS-Programms nun mit den Ein- und Ausgängen der Busklemmen. Erstellen Sie die Projektmappe und aktivieren Sie die Konfiguration.
Durch Betätigen des ersten Tasters wird die Lampe mit dem maximalen Helligkeitswert eingeschaltet. Mit dem zweiten Taster kann sie wieder ausgeschaltet werden.