KL6821 mit PC-System (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 dimmbare Lampe angesteuert und per Taster verändert werden.
Beispiel: DALI_Sample_KL6821_CX5120.zip
Hardware
Einrichtung der Komponenten
- 1x Embedded-PC CX5120
- 1x Digitale 4-Kanal-Eingangsklemme KL1104 (für die Dimm- und Reset-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 Dimm-Taster auf den ersten und ein Reset-Taster auf den zweiten Eingang der KL1104 gelegt wurde und sich an der DALI-Adresse 0 eine dimmbare Lampe befindet. Stellen Sie die Fade-Rate des Vorschaltgerätes zunächst auf 7, um ein ansprechendes Dimmen zu erzielen.
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 Bibliothek Tc2_DALI hinzu.
Erzeugen Sie die folgenden globalen Variablen:
VAR_GLOBAL
bSwitch AT %I* : BOOL;
bReset AT %I* : BOOL;
stKL6821InData AT %I* : ST_KL6821InData;
stKL6821OutData AT %Q* : ST_KL6821OutData;
stCommandBuffer : ST_DALIV2CommandBuffer;
END_VAR
bSwitch: Eingangsvariable für den Dimm-Taster.
bReset: Eingangsvariable für den Reset-Taster.
ST_KL6821InData: Eingangsvariable für die DALI-Klemme. (ST_KL6821InData)
ST_KL6821OutData: Ausgangsvariable für die DALI-Klemme. (ST_KL6821OutData)
stCommandBuffer: Wird für die Kommunikation mit DALI benötigt.
Legen Sie ein Programm (CFC) für die Hintergrundkommunikation mit DALI an. In dem Programm wird der Baustein FB_KL6821Communication aufgerufen. Achten Sie beim Kommunikationsbaustein darauf, die Strukturen stInData, stOutData und stCommandBuffer zu verknüpfen.

Legen Sie ein MAIN-Programm (CFC) an, in dem der Baustein FB_DALIV2Dimmer1Switch aufgerufen wird. Der Eingang bSwitchDimm des Dimmer-Bausteins wird mit der globalen Variable bSwitch verknüpft und stCommandBuffer mit der globalen Variable stCommandBuffer.

![]() | Parameter nMinlevelMasterDevice und nMaxlevelMasterDevice Die eingetragenen Parameter nMinLevelMasterDevice und nMaxLevelMasterDevice müssen unbedingt dem Minimal- und Maximalwert des angesprochenen Gerätes entsprechen, da es sonst zu Fehlfunktionen kommen kann. |
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. Im Bereich der SPS, in der Instanz des Projekts sehen Sie, dass die Ein- und Ausgangsvariablen den entsprechenden Tasks 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 kurzes oder längeres Drücken auf den Dimm-Taster kann die Lampe nun geregelt werden. Mit dem Reset-Taster können Sie die Eingänge in arrBufferMaximumDemandMeter und arrBufferOverflowCounter zurücksetzen.