Hallo
Ich habe DALI am Laufen mit einem Mega128. Läuft gut. Jetzt habe ich
aber das Problem, dass ich ca. 60 Geräte am Bus habe. Alle Jungfräulich
und ohne Adresse. Physikalische-und Einzeladressierung vor
Inbetriebnahme jedes Gerätes geht nicht mehr. Ich möchte jetzt auch eine
automatische Adressierung implementieren, so wie es Tridonic, Osram ect.
auch machen.
Das geht über die DALI Spezial Commands. Habe ich gelesen aber nicht
ganz verstanden.
Der Controller teilt den Ballasts mit, sie sollen sich eine Zufallszahl
zwischen 0 und ca. 21 Mill. ausdenken (Seriennummer). Aufgeteilt in 3
Bytes (high, middle,low adress). Dann sollen sie die Adressen mit der,
die ihnen der Controller geschickt hat vergleichen. Jener Ballast der
gleich oder niedriger ist, soll mit ja antworten. Die anderen sollen
sich aus der Adresssierung heraushalten. Was ist aber, wenn 20 Ballasts
eine niedrigere Seriennummer errechnet haben? Diese würden dann alle mit
"ja" antworten...
Kann mir bitte jemand diese Adressvergabe näher erläutern?
Danke
Hans schrieb:> Das geht über die DALI Spezial Commands. Habe ich gelesen aber nicht> ganz verstanden.
Hast du vielleicht einen Link zur Quelle?
Gruß Oliver
Ja habe ich:
http://www.archenergy.com/lrp/lightingperf_standards/DALI%20V1_13.pdf
Seite 36..
Hier ein Auszug:
5.4.4 Examples of Automatic Short Address Assignment
5.4.4.1 Controllers Installed in a System Using Random Addressing
The following commands can be sent as Broadcast or for selected Controls
Type units by selecting the appropriate Address Byte.
I. Start the algorithm with command 27 “Extended Initialize” which
enables the next addressing command for 15 minutes.
II. Send command 28 “Extended Randomize”. All controller that are
specified in the Address Byte will create a binary random number (BRN)
so that 0<_ BRN <_ +224-1.
III. The controller performing the addressing searches the controller
with the lowest BRN by means of an algorithm which uses command 31 to 33
(Extended SEARCHADDRH, Extended SEARCHADDRM, Extended SEARCHADDRL) and
command 29 “Extended Compare”. The controller with the lowest BRN is
found.
IV. The found controller will have assigned a unique short address with
the command 34 “Extended Program short Address”.
V. Verify the assigned short address with command 36 “Extended Verify
short address”
VI. The found controller shall be retracted from the search process by
means of command 30 “Extended Withdraw”.
VII. If not all controller are found, repeat from step III on until no
further unit can be found.
VIII. Stop the process by sending command 26 “Extended Terminate”.
Thanks..
Der "Trick" ist, den Adressbereich stetig zu halbieren. Antwortet
zumindest ein Gerät auf COMPARE mit DALI-"YES", wird nach unten (hin zu
kleinen Search-Adressen) halbiert, ansonsten nach oben (zu höheren
Adressen), Bereichsgrenze per SEARCHADDRH/N/L schreiben (binäre Suche).
Nach ein paar Durchläufen bleibt dann noch ein Gerät übrig, das ist
dasjenige mit der kleinesten Random-Address, dem noch keine Kurzadresse
zugeweisen wurde. Diesem weist man dann die nächste freie short-address
zu (programm short address) und verhindert, dass es weiter auf
COMPARE-Anfragen antwortet (per WITHDRAW). Dies so lange wiederholen,
bis kein Gerät mehr auf COMPARE antwortet, als alle WITHDRAWn sind und
folglich eine Kurzadresse erhalten haben.
Eine einfache Suche bei der die Search-Address ab 0 einfach immer nur um
eins erhöht wird, bis eine Gerät mit "Yes" antwortet würde auch
funktionieren aber viel zu lange dauern.
Zur Ermittlung der noch freien Kurzadressen ist es von Vorteil vorher
per Query mit Adressangabe die bereits belegten Kurzadressen
auzuschliessen.
Möglicherweise war die Zufallsadresse bei mehreren Geräten gleich, dann
haben diese auch die selbe Kurzadresse erhalten. Dann muss der Ablauf
nur für diese Geräte nochmals wiederholt werden (INITIALISE mit
Adressangabe).
Vielen Dank für die kompetente Antwort!
Leider blicke ich noch nicht ganz durch :-(
Kannst du bitte noch ein Beispiel wie solch eine Suchaktion ablaufen
könnte posten?
ZB mit 5 Teilnehmern mit Adressen 1101,2201,3301,4401,5005?
schöne Grüße Hans
Guckst du..
Kennst du das kalt, warm heiß Spiel...? ;-)
Ich könnte mir vorstellen, dass das so funktioniert:
ZB ID des Ballasts: 9340
Master beginnt mit 100000.
Antwort: yes
Master: 50000
Antwort:yes
Master: 25000
Antwort:yes
Master: 12500
Antwort:yes
Master: 6250
Antwort:nix
Master: 9375 (6250 + 6250/2)
Antwort:yes
Master: 7812 (9375 -(6250/4))
Antwort:nix
Müßte jetzt schon reichen für eine Short Adress Zuweisung bei ZB 100000
Adress-Möglichkeiten (nur 7 Abfragen bei 100T mögl.Adressen). Es ist
noch ein unbestimmter Adressbereich von 1563 offen. Wenn jeman Lust hat,
kann er ja etwas C Code reinstellen. Finde ich eine ganz gute
Möglichkeit, automatische Adressierungen durchzuführen (für jedes
Bussystem).
Bei DALI funktioniert das eigentlich ganz gut. Hier machen das sogar die
GR Tastsensoren von alleine (auf Wunsch). Das ist sehr angenehm für
kleine Beleuchtungsprojekte. Bei EIB/KNX brauchst dafür ein paar K€ und
einen Hochschulabsolventen um einen Taster zu programmieren ;-)
Schöne Grüße
Hallo Hans,
ich suche gerade (für mein Häusle) GENAU nach dem was du schon umgesetzt
hast (Dali auf Atmel) - würde mich sehr freuen wenn du mir "Starthilfe"
geben könntest.
Vielleicht kannst du dich ja bei mir melden: s_andreas_@hotmail.com
Grüße: Andreas
Falls dies noch jemand interessiert:
ich bin gerade dabei, mir für mein Haus ein DALI-System zu stricken. Der
finnische Hersteller "HASSEB" vertreibt für 75€ incl. Versand einen USB
DALI Master mit eingebauter Bus-Stromversorgung. Schaltplan und Software
sind offen gelegt: http://www.hasseb.fi/dali/hasseb_dali_master.zip
Sowohl Hardware als auch die PC-Software ähneln sehr (;-)) dem
LPC1343-DALI-Master von NXP
(http://www.lpcware.com/content/nxpfile/an11174-and-an11175-lpc11xxlpc13xx-dali-release-20).
Aus den Sourcen der PC-Software geht sehr schön hervor, wie das
Commissioning bei DALI funktioniert.
Vorsicht: Nach dem zweiten Blick auf den Schaltplan erkenne ich, dass
die für Dali notwendige Strombegrenzung in der Schaltung fehlt. Ich
frage mich echt, ob und wie das funktioniert.
Mein Ziel ist es, mit dem DALI CLICK und dem STM32F4-discovery einen
preiswerten modularen DALI-Master aufzubauen, der mit bereits
verfügbarer freier Commissioning-Software zusammen arbeitet. Falls
jemand an den bisherigen Ergebnissen interessiert ist -> bitte melden!
Viele Grüße
Klaus
Klaus L. schrieb:> Vorsicht: Nach dem zweiten Blick auf den Schaltplan erkenne ich, dass> die für Dali notwendige Strombegrenzung in der Schaltung fehlt. Ich> frage mich echt, ob und wie das funktioniert.
Du sprichst von der Hasseb-Schaltung die Du verlinkt hast?
Bitte schau Dir die nochmal ganz genau an. Ich sehe sogar 2 Elemente die
da den Strom begrenzen.
Danke (mal wieder) Gerd! Richtig, es hängen dann ja noch T1 und R3 im
Strompfad und können so den Stromfluss begrenzen!
Leider kann ich meinen Beitrag nicht mehr korrigieren.
Viele Grüße
Klaus