Fragen zu XBee

Hallo,

ich habe jetzt meine ersten zwei XBees im Einsatz. Das eine habe ich als Endpoint, das andere als Coordinator konfiguriert. Der Coordinator hängt am Rechner mit IPS, das andere am Zielgerät.

Meine Fragen sind nun: Erkennen die sich jetzt irgendwie? Ich habe die Anleitung so verstanden, dass ein Endpoint-XBee automatisch mit dem Coordinator verbindet wenn einer da ist. Wissen sie jetzt also, dass sie zusammengehören? Oder muss ich da doch noch irgendetwas manuell zuordnen?

Wie verhindere ich, dass die XBees meines Nachbarn (sofern vorhanden) sich an meinem Coordinator anmelden und/oder meine Übertragung stören? Wenn er bspw. auch einen Coordinator laufen hätte, woher wüssten meine Xbees dann dass sie zu meinem gehören?

Ich habe das irgendwie noch nicht so recht geschnallt. Leider gibt es auch im Forum keinerlei Beispiele oder gar eine Schritt-für-Schritt-Anleitung um eine simple Point-to-Point-Verbindung mit XBees hinzukriegen. Falls sich jemand in der Lage sieht, so etwas zu verfassen, wäre das eine Riesenerleichterung für den Einstieg.

Ich kann natürlich auch einfach versuchen, Zeichenketten zu senden die mein angeschlossenes Gerät verstehen müsste, aber momentan sind mir da noch zu viele Unklarheiten und daraus erwachsende mögliche Fehlerquellen in der Übertragungsstrecke.

… IPS unterstützt nur den API-Modus: XBee - IP-Symcon

Hmm, da stehe ich jetzt ehrlich gesagt ein bisschen auf dem Schlauch. Eigentlich will ich das XBee nur anstelle einer RS232-Verbindung verwenden. Wenn ich etwas sende, kommt am anderen Ende übrigens auch etwas an, allerdings passiert dort immer dasselbe, egal was ich sende. Ich vermute, dass irgendein Header o.Ä. gesendet wird?

Also, ich sende z.B. XBee_Sendtext($id, chr(128));

und es kommt ein anderes Byte an, nämlich soweit ich es richtig sehe immer 134.

Ich glaube ich mache irgendetwas total falsch… :confused:

Edit: Hmm, also bis auf den letzten Satz scheint diese Beobachtung auch nicht so recht zu stimmen… ich muss das erst mal eruieren hier. Liegt aber offenbar nicht an IPS.

Also ich hab jetzt noch mal ein bisschen herumprobiert, aber ich glaube, ich bin hier in einer Sackgasse gelandet. Ich wollte meine XBees als „Funk-RS232“ einsetzen und hatte zu diesem Zweck eines als Coordinator und das andere als Endpoint definiert.

Es kam auch tatsächlich eine Verbindung zustande, jedoch kam am anderen Ende nur Müll heraus. Das angeschlossene Gerät machte immer dieselbe Aktion. Ich vermutete nach längerer Suche, dass irgendwo eine falsche Baudrate eingestellt sein musste. Irgendwann fiel mir bei diesem X-CTU Programm auf, dass es unter Modem Configuration eine Option namens BD - Baud Rate gibt und die habe ich dann entsprechend der Geschwindigkeit der Kommunikation auf 19200 eingestellt. Mit dem Ergebnis dass nun gar nichts mehr passiert.

Ich bin irgendwie mit meinem Latein am Ende. Gibt es nicht irgendwo eine Anleitung, die erklärt wie man die XBees konfigurieren muss um damit eine einfache Übertragungsstrecke als RS-232 zu realisieren? Das kann doch jetzt nicht so schwierig sein? :confused:

Vielleicht bin ich ja auch einfach nur zu doof im Moment. Manchmal hilft ja auch ein (virtueller) Schlag auf den Hinterkopf um einen darauf zu stoßen. Also, in diesem Falle: Bitte her damit! Ich dreh hier sonst bald am Rad.:frowning:

Soweit ich das jetzt gelesen habe ist alles OK.

Du musst nur sehen, dass die Baudraten/Datenbits/Stopbits/Paritäten… auf den Endpunkten jeweils richtig sind und passen. Einmal also auf Geräteseite und einmal auf IP-Symcons Seite.

Der Aufbau Coordinator - Entpunkt ist richtig. Wenn du nur eine Bridge habe willst, kannst du das auch benutzen. Dann brauchst du aber in IP-Symcon die XBee Module nicht, sonder nutzt einfach das Seriell I/O Modul. (Dann brauchst du ja kein XBee Modul, welches den Coordinator im API Mode füttert)

paresy

Du musste nach dem ändern der Baudrate mit dem USB-Adapter diesen einmal aus dem Computer ziehen und wieder neu erkennen lassen. Darüber war ich am Anfang auch gestolpert, nachdem ich die Baudrate geändert hatte.

Es funktionierte bei beiden Modulen erst wieder, nachdem sie einmal stromlos waren.

Gruß,
Doc

Endlich! Das Problem ist beseitigt. Ironischerweise hätte ich die Anleitung nicht lesen sollen, dann wäre es alles einfacher gewesen. Für den Laien ist sie mehr als verwirrend. Abgesehen von der Baudrate hätte ich gar nichts konfigurieren müssen. Den Coordinator braucht man offenbar nur im API-Modus.

Ich weiß jetzt zwar nicht was passiert wenn jemand hier in der Nähe Xbees einsetzt, ob diese dann mit meinen „sprechen“, aber das wird dann wohl die Zeit zeigen…

Ein Reset hat jetzt jedenfalls dazu geführt dass das ganze auf einmal funktioniert. Erleichterung macht sich breit.

Und dass man Xbees in diesem Fall bei IPS nicht als Xbees sondern einfach als COM-Ports benutzen muss habe ich jetzt mal geraten :wink:

Lernen macht Spaß aber immer nur wenn man damit fertig ist :wink:

Wenn du deine Xbees jetzt direkt über den COM-Port benutzt wird es sehr aufwendig, weitere XBees einzusetzen.
Ich würde dir empfehlen, die XBee-Instance zu verwenden. Dann kannst du problemlos weitere hinzufügen.

Doc

Ok, ich sehe auch gerade, dass man von COMPort-Instanzen gar keine Daten empfangen kann :eek: zumidnest gibt es keine (irgendwo dokumentierten) Befehle dafür und auch keine Statusvariable :frowning:

Na dann probier ich es mal mit der XBee-Instanz. Danke für den Hinweis, das hätte ich jetzt nicht bedacht.

RegisterVariable tut dann den Trick und empfängt die Daten in eine Variable für dich.

paresy

Das sieht ja schon besser aus. Danke, darauf wäre ich alleine wohl nicht gekommen, aber dieses Forum ist echt sehr hilfreich und ersetzt (fast) eine Doku für die V2 :smiley:

Musste allerdings zugegebenermaßen erstmal fahnden was eine Registervariable ist (das Wiki kennt sowas auch nicht). Aber die Forensuche brachte dann den Aha-Effekt.