KL6821 Integration in TwinCAT (BC9191)
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.
Hardware
Einrichtung der Komponenten
Es wird folgende Hardware benötigt:
- 1x Busklemmen Controller BC9191
- 1x Potenzialeinspeiseklemme 24V DC, z.B. KL9190
- 1x Digitale 4-Kanal-Eingangsklemme KL1104 (für die Dimm und Reset-Funktion)
- 1x DALI-Klemme KL6821
- 1x Endklemme KL9010
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 BC-basierte Systeme (BCxx50 über AMS) und fügen die Bibliotheken TcDALIV2.lbx und TcSystemBCxx50.lbx hinzu. Gehen Sie danach im Menü auf Projekt → Optionen... → Übersetzungsoptionen und wählen LREAL als REAL übersetzen an.
Unter Controller Einstellungen wählen Sie den BC9191 und stellen Sie die Maximale Anzahl der POUs auf 1000
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.
stKL6821InData: Eingangsvariable für die DALI-Klemme.
stKL6821OutData: Ausgangsvariable für die DALI-Klemme.
stCommandBuffer: Wird für die Kommunikation mit DALI benötigt.
Da BC-Geräte nur über eine Task verfügen, kann die Kommunikation mit DALI nicht separat ausgeführt werden.
Legen Sie daher ein MAIN-Programm (CFC) an in dem die Bausteine FB_KL6821Communication() und FB_DALIV2Dimmer1Switch() aufgerufen werden. Achten Sie beim Kommunikationsbaustein darauf, mit stKL6821InData, stKL6821OutData und stCommandBuffer zu verknüpfen.
Der Eingang bSwitchDimm des Dimmer-Bausteins wird mit der globalen Variable bSwitch verknüpft und stCommandBuffer mit der globalen Variable stCommandBuffer.
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 geben Sie der Task eine niedrigere Intervall-Zeit. Genauere Informationen dazu finden Sie in der Beschreibung des Bausteins FB_DALIV2Communication().
Laden Sie das Projekt als Bootprojekt auf den BC und speichern Sie es ab.
Konfiguration im System Manager
Legen Sie ein neues TwinCAT System-Manager-Projekt an, wählen Sie als Zielsystem den BC und lassen Sie nach dessen Hardware suchen.
Fügen Sie das oben angelegte SPS-Programm unter SPS-Konfiguration hinzu.
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 BC 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.