XBee in IPS einbinden

Integration XBee => IPS

Hier wird nur die Einbindung anhand der Instanzen XBee Gateway und XBee Splitter ausgeführt.
Zum Aufbau einer Funkstrecke sind mindestens 2 XBee nötig, wobei einer als Coordinator und der andere als Enddevice zum Einsatz kommt.
Zum Einbinden müssen diese entsprechend mit der Software XCTU konfiguriert werden.
Eine Baudrate größer 57600 ist nicht ratsam, da es im API Modus nicht funktioniert.
Der Comport darf immer nur von einem Programm belegt sein. Entweder IPS oder XCTU!

[ol]
[li]Software downloaden und installieren[/li][li]Adapter mit XBee anschließen und Software öffnen[/li][li]Entsprechenden Port auswählen (Standard-Einstellungen so belassen)[/li][li]Zur Modem Configuration wechseln und auf Read klicken (XBee Parameter werden eingelesen)[/li][li]Die gewünschten Parameter setzen und anschliessend Write klicken (XBee Parameter werden geschrieben)[/li][li]Programm beenden[/li][/ol]
Parameter Coordinator gemäß Bild 4 setzen. Die entsprechende Auswahl anklicken. Dort kann man dann auswählen oder eingeben.

MY - 16bit Source Address muss in Hexwerten eingegeben werden. z.B. FF = 255

[ol]
[li]DL - Destination Address Low => 0 (1)[/li][li]MY - 16-bit Source Address => Adresse des Coordinator (1)[/li][li]CE - Coordinator Enable => Auswahl Funktion Coordinator[/li][li]BD - Interface Data Rate => Baud Rate[/li][li]AP - API Enable => Auswahl API[/li][/ol]
Parameter End Device gemäß Bild 5 setzen.

[ol]
[li]DL - Destination Address Low => 1[/li][li]MY - 16-bit Source Address => Adresse des End Device (2 -n)[/li][li]CE - Coordinator Enable => Auswahl Funktion End Device[/li][li]BD - Interface Data Rate => Baud Rate[/li][/ol]
Eingabebeispiel: XBee MY - 16-bit Source Address 0D => IPS XBee Splitter Gerät ID: 13

Die maximale Anzahl XBee in IPS ist die MY - 16-bit Source Adresse FFFF = 65536!

Sollte mal irgendwas schief gelaufen sein, so kann man den XBee über Restore wieder in den Auslieferungszustand setzen.

Zuerst werden die benötigten Instanzen angelegt:

[ol]
[li]Instanz hinzufügen öffen, Alle Module zeigen anklicken[/li]li => Serial Port anlegen[/li]li => XBee Gateway anlegen[/li]li => XBee Splitter anlegen[/li]li => Register Variable anlegen[/li][/ol]
Serial Port öffnen, Comport und Baudrate entsprechend XBee Configuration einstellen. Übernehmen => OK. Eventuell noch einen eindeutigen Namen zuweisen, z.B. XBee V24.

XBee Gateway öffnen und Übergeordnete Instanz auswählen => Serialport. Übernehmen => jetzt sollte die Coordinator ID erscheinen, hier die zugewiesene Adresse 1 => OK.

XBee Splitter öffnen und Übergeordnete Instanz auswählen => XBee Gateway. Geräte ID einstellen, welche dem End Device zugeordnet wurde, hier 2 => OK. Eventuell noch einen eindeutigen Namen zuweisen.
Hinweis zu MY -16bit Source Address von oben beachten!

Register Variable öffnen und Übergeordnete Instanz auswählen => XBee Splitter. Wurde schon ein Script erstellt, dieses unter Ziel Script zuweisen, andernfalls eines erstellen und dann zuweisen => OK.

Zum Senden von Daten verwenden wir den Befehl.

<?
RegVar_SendText(ID der Registervariable , "IPS");
?>

Weitere Informationen zur Register Variable gibt es hier.

Daten empfangen von XBee im Script(welches der Registervariable zugewiesen wurde). Die Daten werden in den Meldungen mit ScriptID und Werte angezeigt.

<?
if ($IPS_SENDER == "Execute")
{
    echo "Dieses Script kann nicht von Hand ausgeführt werden.";
    return;
}

$daten = $IPS_VALUE; // Daten von Registervariable

IPS_LogMessage($IPS_SELF, $IPS_VALUE); // Daten im Meldungsfenster ausgeben
?>

IOSerialport.png

Splitter.png

zur direkten Kommunikation mit XBee stehen 2 Befehle zur Verfügung.

XBee_SendBuffer.
hier wird die ID des XBee Gateway verwendet und zusätzlich die Geräte ID des XBee Splitter.

XBee_SendBuffer(46474 /*[XBee Gateway]*/, 3, chr(27)."YH".chr(0));


XBee_SendCommand.

hier wird auch die ID des XBee Gateway verwendet.

XBee_SendCommand(46474 /*[XBee Gateway]*/, Beispiel: ATDL 1F<CR>);

Vorgehensweise nach XBee Datenblatt!