moin zusammen. habe ein Tridonic pca 2/18 tcd evg und möchte diesem eine Kurzadresse vergeben. Benutze einen Atmel und schreibe das DALI Programm in c selbst. Das senden, sowie empfangen funktioniert gut. Das evg hatte bereits eine Kurzadresse gehabt (20), die habe ich gelöscht und möchte nun eine neue Adresse vergeben. Das speichern des Wertes in das DTR funktioniert und den Inhalt kann ich auch übnerprüfen, allerdings wenn ich anschließend "store dtr as short address" benutze, will er die neue Kurzadresse nicht übernehmen. Ich glaube, dass eventuell ein paar befehle fehlen, oder das Timing nicht stimmt. Vielleicht weiß ja einer von euch, wie man nur (erstmal) einem evg eine Kurzadresse vergibt..?! mfg
Hallo, es ist schon ein paar Jaare her, dass ich mich mit DALI beschäftigt habe. Aber ich erinnere mich dunkel, dass es bei der Adressierung einen Befehl gab, den man zweimal kurz hintereinander senden musste. Ich denke, dass es dieser 'Schreib das Data Transfer Register in das Short Address Register' ist, den du oben schon erwähnt hast. CU, Jochen
hi, ich habe schon fast alles ausprobiert. auch Timing variiert, ich weiß nicht was er von mir will... brauche einen ansatz oder beispiel von jemanden der das schon mal selber gemacht hat und es funktioniert hat. sitze hier schon 3 Tage bei und der hat immer noch nicht eine kurzadresse... oder will vielleicht mein evg nicht, ich weiß es nicht... mfg
Hallo DimiFuerDali, Respekt. 3 Tage rumprobieren. Da hast Du viel Gedult, ich hätte da eher mal nachgefragt. Hier die Lösung: 2 mal Kommando "RESET" senden ca. 1s warten "DATA TRANSFER REGISTER" mit Adresse xx füllen und senden 2 mal "STORE DTR AS SHORT ADDRESS" senden Mit "QUERY MISSING SHORT ADDRESS" kannst Du prüfen, ob er die Adresse genommen hat. Wenn man die DALI Norm nicht hat, ist es zugegebenermaßen schwierig rauszufinden wie man sowas macht. Wenn Du nur ein Gerät hast, brauchst Du die Adresse sowieso nicht setzen. Einfach die Kommandos als BROADCAST senden. Viel Erfolg! avrGerd
Nur ergänzend: Die von Gerd M. beschriebende Methode wird in der Norm (habe nur alten Stand hier) als "simplified addressing method" bezeichnet und es soll dazu nur ein Endgerät am Bus hängen - ist ja wahrscheinlich der Fall. Zwischen erstem und zweiten Senden von "store DTR..." (CMD 128) mind. 10 ms warten.
moin zusammen! danke für die antworten... war 2 wochen im urlaub, bin nun aber wieder voll mutiviert und versuche die methode von Gerd M. werde mich mit erfolg oder misserfolg dieses problems bei euch melden. danke erst mal... mfg
moin, was ich allerdings nicht verstehe: wenn man vorher den wert im DTR abspeichert (DATA TRANSFER REGISTER mit XX) und anschließend soll man ja (2 x STORE DTR AS SHORT ADDRESS) übertragen... und der Befehl sieht ja so aus: YAAA AAA1 1000 0000. muss etwa die kurzadresse noch einmal ausgewählt werden? der Wert ist ja bereits im DTR abgespeichert! was muss also anstelle YAAA AAA1 stehen? könnt ihr dies nachvollziehen, was ich meine? mfg
Keinesfalls mit Reset Routinen arbeiten! Wenn du mehr als ein Gerät am Bus hast weinst du! Die meisten vergessen, dass wenn sie eine Shortadresse ZB 2 vergeben wollen auch 2 zum DALI ballast schicken!! Voll arg falsch!!! Siehe Shortadressen Format: 0AAAAAAS (AAAAAA = 0 - 63, S = 0/1) Beispiel! gewünschte Adresse: 2 Adr = 2; Adr = Adr << 1; Adr = Adr & 0b01111110; Adr = Adr | 0b00000001; Snd_Dal(0xA3,Adr,SP_COM); DELAY_ms(20) //DTR direkt mit Adresse beschreiben Snd_Dal(0,128,BR_ADR); //Inhalt DTR als Shortadresse DELAY_ms(20) // Snd_Dal(0,128,BR_ADR); DELAY_ms(20) Das geht aber nur über einen Broadcast Befehl! Gutes Gelingen
Danke! Nun geht es endlich! Weiß nun wen ich nächstes mal anspreche...! danke noch mals mfg
Wenn dein ballst schon eine Shortadresse hat, kannst du es auch unter der alten Adresse erreichen und die Adresse ändern. ZB Alte Adresse: 20 Neue Adresse: 2 Adr = 2; Adr = Adr << 1; Adr = Adr & 0b01111110; Adr = Adr | 0b00000001; Snd_Dal(0xA3,Adr,SP_COM); //DTR direkt mit Adresse beschreiben (jetze übernehmen alle DALI Teilnehmer den Wert in ihr DTR, ist aber kein Problem) Snd_Dal(20,128,SH_ADR); //Inhalt DTR als Shortadresse DELAY_ms(20) // Snd_Dal(20,128,SH_ADR); DELAY_ms(20) Jetzt hat es die Adresse 2 (vormals 20) Ist es noch nie adressiert worden wird's hart. Das geht dann nur über die 3 Byte ID oder mit nur einem Gerät am Bus und der Broadcast Adresse. Schöne Grüße
Hallo DimiFuerDali, am Besten besorgst du dir eine Kopie des Dali-Standards, auch wenn sie schwer zu lesen ist. Zu deinem Problem: "Store DTR as Short Address" ist ein Konfigurationskommando, und Konfigurationskommandos müssen generell zwei Mal innerhalb von 100ms empfangen werden, damit ein Ballast sie auch ausführt. Außerdem darf da kein anderes Kommando dazwischenfunken. Das steckt Absicht dahinter (Störsicherheit).
Moin, Da die Adressierung, sowie Gruppenzuordnung funktioniert, habe ich eine weitere Frage an euch! und zwar die Parametrierung der Gruppe. Ich will z.B. drei Teilnehmer der Gruppe 1 zuweisen (das geht) und anschließend die dimmgeschwindigleit der Gruppe ändern. Das problem ist, dass die Teilnehmer unterschiedlich schnell dimmen und nicht synchron sind. Synchron wird es erst, wenn ich zuerst die Teilnehmer Parametriere (mit fad_time und fade_rate) und anschließend diese in die Gruppe zuweise. Kann es denn sinn der sache sein? mfg
Du kannst die Fade Rate und/oder Fade Time über Broadcast oder über Gruppenadressierung einstellen. Wenn ich mich recht entsinne, ist die Fade Rate 0 in diesem Fall besonders. Während alle anderen im Standard vorgegeben sind, ist die Fade Rate 0 herstellerspezifisch. Und (wenn ich mich wieder recht entsinne ...) ist nach einem Dali-Reset Fade Rate 0 eingestellt. Und außerdem: Die Fade Rate /Fade Time - Parameter beziehen sich hauptsächlich auf das Fadingbit im Status. Ein Gerät darf physisch (also mit dem Licht) laut Standard länger brauchen, wenn es nicht so schnell folgen kann. Das fällt aber eher bei den kurzen Fade Rates ins Gewicht.
Moin die Fade Rate und Fade Time habe ich versucht über die Gruppenadresse zu vergeben, allerdings dimmen die EVG's anschließend nicht synchron. Aber wie gesagt es ist nicht so schlimm, muss halt die EVG's vorher Parametrieren, bevor ich sie zu der Gruppe zuweise. Ich habe aber noch einen andere Frage: Falls ich die Gruppenadresse des Teilnehmers ändern will, muss ich seine vorherige Gruppenzugehörigkeit löschen? Also REMOVE_FROM_GROUP...? oder überschreibt die neue Gruppe Nr. die alte einfach? mfg
Hi, wenn Du die alte Gruppe nicht löscht und dann Dein EVG zu einer neuen Gruppe hinzufügst, dann gehört es zu beiden Gruppen. Also bei Bedarf vorher löschen mit REMOVE_FROM_GROUP. Gruss, avrGerd
Moin, Ok danke, dann werde ich das vorsehen und bevorich die neue Gruppe vergebe, die zugehörigkeit zu der alten Gruppe löschen... mfg
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.