KL6821 Integration in TwinCAT (CX9020)

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.

Beispieldateien entpacken

Hardware

Einrichtung der Komponenten

Es wird folgende Hardware benötigt:

Richten Sie die Hardware sowie die DALI-Komponenten wie in den entsprechenden Dokumentationen beschrieben ein.

Dieses 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 SPS-Projekt für PC-basierte Systeme (ARM) und fügen die Bibliothek TcDALIV2.lib hinzu.

Erzeugen Sie als Nächstes 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_KL6821OutData: Ausgangsvariable für die DALI-Klemme.

stCommandBuffer: Wird für die Kommunikation mit DALI benötigt.

Legen Sie anschließend ein Programm (CFC) für die Hintergrundkommunikation mit DALI an. In diesem wird der Baustein FB_KL6821Communication() aufgerufen. Achten Sie beim Kommunikationsbaustein darauf, mit stInData, stOutData und stCommandBuffer zu verknüpfen.

KL6821 Integration in TwinCAT (CX9020) 1:

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.

KL6821 Integration in TwinCAT (CX9020) 2:
KL6821 Integration in TwinCAT (CX9020) 3:

Parameter

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.

Gehen Sie in die Taskkonfiguration und legen Sie eine neue Task für die Hintergrundkommunikation an. Fügen Sie dieser Task das Programm für die Kommunikation hinzu. Geben Sie dieser Task eine höhere Priorität (kleinere Zahl) und eine niedrigere Intervall-Zeit als der Standard-Task. Genauere Informationen dazu finden Sie in der Beschreibung des Bausteins FB_KL6821Communication().

KL6821 Integration in TwinCAT (CX9020) 4:

Laden Sie das Projekt als Bootprojekt auf den CX und speichern Sie es ab.

Konfiguration im System Manager

Legen Sie ein neues System-Manager-Projekt an, wählen Sie als Zielsystem den CX und lassen Sie nach dessen Hardware suchen.

Fügen Sie das oben angelegte SPS-Programm unter SPS-Konfiguration hinzu. Beim Aufklappen des SPS-Projekts in der Baumansicht werden die beiden Tasks aufgelistet. Beim Erweitern der Tasks ist sicherzustellen, dass alle globalen Ein- und Ausgangsvariablen der Standard-Task zugeordnet sind. Da die Variablen stDALIInData und stDALIOutData jedoch schneller abgearbeitet werden sollen, müssen diese mit Drag&Drop auf die Hintergrund-Kommunikations-Task verschoben werden.

KL6821 Integration in TwinCAT (CX9020) 5:

Verknüpfen Sie die globalen Variablen des SPS-Programms nun mit den Ein- und Ausgängen der Busklemmen, erzeugen Sie die Zuordnungen und aktivieren Sie die Konfiguration. Starten Sie dann das Gerät im Run-Modus.

Ihr CX ist jetzt einsatzbereit.

Durch kurzes oder längeres Drücken auf den Dimm-Taster kann nun die Lampe geregelt werden. Mit dem Reset-Taster können Sie die Einträge in arrBufferMaximumDemandMeter und arrBufferOverflowCounter zurücksetzen.