INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

DALI BUS steuern



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

27.03.2007, 08:44
Beitrag #1

bossi
Unregistered


 







DALI BUS steuern
Moin Leute,
wollt mal fragen, ob sich schonmal jemand mit dem DALI-Protokoll beschäftigt hat? Über den DALI-BUS kann man Lampen per digitalem Signal steuern/dimmen. Ich habe schon fertige Programme gesehen, die dies können und auch in LabVIEW erstellt wurden. Ich tu mich aber leider etwas schwer mit dem Thema , da ich noch nicht viel mit LabVIEW gearbeitet habeUnsure. Mich würde intressieren, ob jemand mal nen VI entwurfen hat, auf dem man aufbauen kann.

Wäre halt cool, wenn jemand mal ne Idee hat, wie man die Commandos dynamisch erstellt. Außerdem bin ich noch nicht so ganz fit, was die Signalausgabe betrifft. Ich stelle mir vor, dass man das Signal seriell ausgibt. Ein Befehl besteht aus 19bit bei 1200bit/s. Ich kann zwar die Sendeleitung (TX) high und low setztenRolleyes, doch wie gebe ich eine ganze Serie von bits aus?

Kann man der seriellen Schnittstelle auch sagen, mit welcher Spannung das Signal ausgegeben werden soll, oder hängt das vom PC Typ ab? Z.B. meine ich, dass mein Laptop +-6V ausgibt für High und Low. Das benötigte Signal liegt aber bei <6,5V (L) und >9,5V (H). Klar könnte man die Spannung über eine Elektronik hochsetzten, wäre doch aber per Software befehl sicherlich einfacher.

Danke für eure Antwort
Diese Nachricht in einer Antwort zitieren to top
Anzeige
27.03.2007, 08:56
Beitrag #2

dc6xs Offline
registered alien
****


Beiträge: 762
Registriert seit: Aug 2006

6.1,7.00
2006
kA

79106
Sonstige
DALI BUS steuern
' schrieb:...

Wäre halt cool, wenn jemand mal ne Idee hat, wie man die Commandos dynamisch erstellt. Außerdem bin ich noch nicht so ganz fit, was die Signalausgabe betrifft. Ich stelle mir vor, dass man das Signal seriell ausgibt. Ein Befehl besteht aus 19bit bei 1200bit/s. Ich kann zwar die Sendeleitung (TX) high und low setztenRolleyes, doch wie gebe ich eine ganze Serie von bits aus?
Mit einer Schleife, die das Bitarray deines Signals an die RS232 schreibt.

Das Problem wird nur sein das Du die 1200bit/s nicht so ohne weiteres ohne lowleveltreiber in LV erreichst. Denn LV hat eine Zykluszeit (Sprich kleinste nutzbare Zeiteinheit von 1ms).
Und die RSR232 funktionen von VISA können WIMRE nur 8bit +1start/stopp-bit, dafür aber bis 115kbit/s


Zitat:Kann man der seriellen Schnittstelle auch sagen, mit welcher Spannung das Signal ausgegeben werden soll, oder hängt das vom PC Typ ab? Z.B. meine ich, dass mein Laptop +-6V ausgibt für High und Low. Das benötigte Signal liegt aber bei <6,5V (L) und >9,5V (H). Klar könnte man die Spannung über eine Elektronik hochsetzten, wäre doch aber per Software befehl sicherlich einfacher.
Nein das geht nicht so einfach, nach dem RS232 Standard sollten es AFAIK >+-7V sein.

Was spricht denn gegen einen µC der einen UART für den DALI-Bus nutzt und auf der anderen seite eine "normale" RS232 od. USB od. Ethernet hat?

Gruß, Rob

Bitte Beachten:
Die obenstehenden Texteile können unter Umständen Sarkasmus und Ironie enthalten, für nicht erkannten Sarkasmus oder nicht erkannte Ironie wird keine Haftung übernommen.

N.B.:
"Multiple exclamation marks, " he went on, shaking his head, "are a sure sign of a deseased mind." - Terry Pratchett
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.03.2007, 10:07
Beitrag #3

bossi
Unregistered


 







DALI BUS steuern
Ja gut, geht dann wohl nicht ohne µC. Hab da auch schon ne Idee. Ist halt extra Aufwand und extra Kosten.

Aber wie kann man denn bestimmte Befehle per Seriell ausgeben?
Das VISA VI nimmt Strings an und gibt die dann ja auch irgendwie aus. Wie kann man denn jetzt nen Befehl setzten der aus einem Binärwort besteht. Z.B. 1010 usw. Gibt man dann den String in Hex an oder wie funktioniert das. Es gibt da ja auch so nen LabVIEW Beispiel "Seriell Write and Read.VI". Da wird folgender String ausgegeben: *IDN?rn. Was soll ich denn mit *IDN anfangen? Soll man da nen Hexwert eintippen, der dann 1010usw bedeutet?
Diese Nachricht in einer Antwort zitieren to top
28.03.2007, 10:31
Beitrag #4

dc6xs Offline
registered alien
****


Beiträge: 762
Registriert seit: Aug 2006

6.1,7.00
2006
kA

79106
Sonstige
DALI BUS steuern
' schrieb:Ja gut, geht dann wohl nicht ohne µC. Hab da auch schon ne Idee. Ist halt extra Aufwand und extra Kosten.

Aber wie kann man denn bestimmte Befehle per Seriell ausgeben?
Das VISA VI nimmt Strings an und gibt die dann ja auch irgendwie aus. Wie kann man denn jetzt nen Befehl setzten der aus einem Binärwort besteht. Z.B. 1010 usw. Gibt man dann den String in Hex an oder wie funktioniert das. Es gibt da ja auch so nen LabVIEW Beispiel "Seriell Write and Read.VI". Da wird folgender String ausgegeben: *IDN?rn. Was soll ich denn mit *IDN anfangen? Soll man da nen Hexwert eintippen, der dann 1010usw bedeutet?

Da wird halt jedes ASCII-Zeichen im String nacheinander als binärwärt übertragen

Bau doch mal ne Schleife, die dir die Werte von 0..255(dez)=0..FF(hex) auf die RS232 ausgibt. Dann kann man das mit dem Oszi gut erkennen.

Das "*IDNrn" ist der SCPI-Befehl für ein MEssgerät, welches SCPI kann, sich zu identifizieren. Also praktisch ein "Hallo, Wer da?" des PCs in einer Sprache die viele Geräte kennen.

Gruß, Rob

Bitte Beachten:
Die obenstehenden Texteile können unter Umständen Sarkasmus und Ironie enthalten, für nicht erkannten Sarkasmus oder nicht erkannte Ironie wird keine Haftung übernommen.

N.B.:
"Multiple exclamation marks, " he went on, shaking his head, "are a sure sign of a deseased mind." - Terry Pratchett
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.03.2007, 11:57
Beitrag #5

bossi
Unregistered


 







DALI BUS steuern
' schrieb:Da wird halt jedes ASCII-Zeichen im String nacheinander als binärwärt übertragen

Bau doch mal ne Schleife, die dir die Werte von 0..255(dez)=0..FF(hex) auf die RS232 ausgibt. Dann kann man das mit dem Oszi gut erkennen.

Das "*IDNrn" ist der SCPI-Befehl für ein MEssgerät, welches SCPI kann, sich zu identifizieren. Also praktisch ein "Hallo, Wer da?" des PCs in einer Sprache die viele Geräte kennen.

Gruß, Rob
Ja OK, klar werden bei Seriell die Daten nacheinander übertragen. Ich werd dann man ne Schleife bauen und das Oszi bemühen. Danke für die InfosSmile
Diese Nachricht in einer Antwort zitieren to top
29.03.2007, 13:35
Beitrag #6

bossi
Unregistered


 







DALI BUS steuern
Also ich werd noch nicht so richtig schlau aus LV.
Visa:Schreiben überträgt jedes Stringzeichen als ASCII.
D.h. wenn ich im String eine 0 eingebe, dann sieht LV eine 30h oder 48dez. und gibt 110000 aus. Ich will aber, dass LV den Binärwert für ein bestimmten Hexwert oder Dezimalwert ausgibt. Ich geb z.B. 14D5FDCD vor und LV baut daraus ne Menge Einsen und Nullen. Wenn ich aber diesen Hexwert in den Taschenrechner eingebe, dann kommt aber was anderes raus, als ich am Oszi sehen kann. Mal davon abgesehen, dass das Binärwort auch noch so dargestellt wird, dass das LSB am Anfang steht, natürlich nach dem Startbit Tongue. BSP: 30h=110000->am Seriellen PIN3=Startbit000011Stoppbit.

Und gleich noch ne Frage hinterher:
ich gebe mit dem VISA String "CD" aus, was in Hex 43+44 bedeutet. Wie schon gesagt, bekomme ich die Werte mit dem LSB voran ausgegeben, zwischen den Werten wird wieder ein Start- und Stoppbit gesetzt. Kann man vermeiden, dass Start-und Stoppbit zwischendurch gesetzt werden, sodass er 43 und 44 als eine Bitfolge ausgibt? Muss man da mit Abschlusszeichen arbeiten?

Kann da mal jemand ne Info zu schreiben. DANKE
Diese Nachricht in einer Antwort zitieren to top
29.03.2007, 13:48 (Dieser Beitrag wurde zuletzt bearbeitet: 29.03.2007 13:49 von Achim.)
Beitrag #7

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
DALI BUS steuern
Guck mal hier:

http://www.LabVIEWforum.de/index.php...ost&p=24478

http://www.LabVIEWforum.de/index.php...ost&p=21453

Du hast vermutlich ein Verständnisproblem, was die Darstellung einer "Zahl" in nem String-Element im Hex-Format, ASCII-Format bzw. ASCII-Format in Hex-Darstellung betrifft!

Gruss
Achim

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.03.2007, 13:53
Beitrag #8

bossi
Unregistered


 







DALI BUS steuern
' schrieb:Guck mal hier:

http://www.LabVIEWforum.de/index.php...ost&p=24478

http://www.LabVIEWforum.de/index.php...ost&p=21453

Du hast vermutlich ein Verständnisproblem, was die Darstellung einer "Zahl" in nem String-Element im Hex-Format, ASCII-Format bzw. ASCII-Format in Hex-Darstellung betrifft!

Gruss
Achim
Jaja, diese Artiekl hab ich schon gelesen. Habs aber nicht wirklich verstanden! Ich arbeite mich da nochmal durch!
Diese Nachricht in einer Antwort zitieren to top
30.03.2007, 08:55
Beitrag #9

bossi
Unregistered


 







DALI BUS steuern
OK, ich komm der Sache näher!! Cool
Wichtig ist, wenn man was in den "VISA:Schreiben String" schreiben möchte, dass man vorher beim Eingabe String den Haken für "Hexadezimalanzeige" setzt. Dann liest das Tool auch super den Hexwert. Und Hexwerte sind viel praktischer als ASCII!!!

Doch leider ist die Ausgabe auf 8bit beschränkt, wenn man 2 Bytes ausgeben möchte, schiebt LV immer ein Start- und Stoppbit zwischen die Werte. (BSP: siehe oben)
Wenn man jetzt die beiden Bytes noch in nen Array oder Puffer schreiben könnte, dann könnt man auch sicherlich alles aufeinmal ausgeben.
Nochmal zur Info, DALI besteht aus 19bit, also
1Start
8Adresse
8Commando
2Stopp

Aber das Problem löst sich sicherlich auch noch.
Gruß aus dem Badenländle
Diese Nachricht in einer Antwort zitieren to top
02.04.2007, 14:00
Beitrag #10

bossi
Unregistered


 







DALI BUS steuern
Hmm, das DALI Problem hat sich leider noch nicht wirklich gelöst. Aber ich hab mir gerade mal ein WinDim Kabel und die WinDim Software 4.0e ausgeliehen. Hier kann man sehr schön sehen, wie die das mit ihrer Software machen. Ich kann zwar am Oszi die 19bit vom DALI-Protokoll nicht so richtig erkennen, aber man kann das Signal schön mit LV nachbauen und sogar die Lampen steuern. Eine einfache Hex-Seriell Ausgabe und die Lampen funzen. Für alle die noch Intresse an diesem WinDim Kabel haben sei gesagt, dass dieses 300,-EUR teure Kabel nix besonderes ist. Dieses Kabel hat einen seriellen Anschluss. Im Stecker befindet sich ein wenig Elektronik, und zwar
eine Drossel
ein High and Low side driver IR2101
ein PIC 14139e
ein paar Dioden, Kondensatoren und Widerstände.
Was an diesem Kabel 300,-EUR wert sein soll versteh ich nicht wirklich. Aber da hier ein PIC genutzt wurde, kann man dies wahrscheinlich nicht so einfach nachbauen. Aber mit ein wenig Zeit bekommt man das auch raus. So machen es die Chienesen schließlich auch. Big Grin


Also ich bleib weiter am Ball
Gruß
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Gehe zu: