Diplomarbeit - Hochschule für Technik und Wirtschaft Dresden
Diplomarbeit - Hochschule für Technik und Wirtschaft Dresden
Diplomarbeit - Hochschule für Technik und Wirtschaft Dresden
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>Diplomarbeit</strong>: Modulares System Datenstrukturen <strong>und</strong> Kommunikation<br />
Die ID gibt an, welcher Knotenpunkt im Netzwerk gemeint ist. Um nicht nur einen (den Haupt-) Wert<br />
setzen <strong>und</strong> lesen zu können, sondern um auch die Einstellungen des Elements einfach einstellen zu<br />
können, muss noch angegeben werden, welcher Wert oder welche Eigenschaft gemeint ist.<br />
Parameter-ID Beschreibung<br />
0 Hauptwert (Entfernung, Helligkeit, Drehzahl usw.)<br />
1 erste Eigenschaft (maximale Entfernung usw.)<br />
2 …<br />
Tabelle 4.4 - Parametrisierung<br />
4.3. Adressierung<br />
Um die Knotenpunkte ansprechen zu können, müssen diese adressiert werden. Da<strong>für</strong> gibt es<br />
verschiedene Herangehensweisen. Diese sollen an einem Beispiel erläutert werden.<br />
4.3.1. Direkte Adressierung<br />
Der Roboter soll bei einer bestimmten Umgebungstemperatur stehen bleiben. Da<strong>für</strong> muss ein<br />
Knotenpunkt dazu programmiert werden, dies zu tun. Praktischerweise übernimmt dies die Einheit, die<br />
sowieso die Motoren ansteuert. Dies kann direkt mit der bekannten Adresse eines Temperatursensors<br />
dessen Wert abfragen. Wenn der Sensor die ID 4 hat, sieht der Programmteil folgendermaßen aus:<br />
...<br />
temperature:=Get(4,0);<br />
if temperature>60 then<br />
motor_speed:=0;<br />
...<br />
Der Nachteil dabei ist, dass die ID des Temperatursensors bekannt sein muss.<br />
4.3.2. Gruppenadressierung<br />
Um zu erreichen, dass auch ohne Kenntnis der genauen Adresse ein Wert eines bestimmten Typs (im<br />
Beispiel die Temperatur) abfragbar ist, können Broadcast-Aufrufe (Gruppenaufrufe) verwendet<br />
werden. Das Programm fragt nicht mehr einen bestimmten Temperatursensor, dessen Adresse es<br />
kennen muss, sondern erk<strong>und</strong>igt sich im Netzwerk allgemein: hat irgendein Sensor eine Temperatur.<br />
Dazu muss die Adressierung gruppenweise erfolgen. So könnte die ID 8 <strong>für</strong> Temperaturen vorgemerkt<br />
sein. Der Programmteil muss dann folgendermaßen lauten:<br />
...<br />
temperature:=Get(8,0);<br />
if temperature>60 then<br />
motor_speed:=0;<br />
...<br />
In dieser Variante der Adressierung würden aber alle Temperatursensoren antworten <strong>und</strong> es müsste<br />
ein Auswahlverfahren existieren, welcher nun vom Programm verwendet wird.<br />
26.07.2004 Seite 21 von 85