-
-
Erfahrener Benutzer
Roboter-Spezialist
Ich glaube jetzt tritt das Verständnisproblem zu Tage.
Die aktuelle Anordnung hat folgenden Stand. 4 Slaves und ein Master. Die Slaves heißen 2, 4, 6, 8. Sie bilden einen Ring der unabhängig vom Master funktioniert. Das hatte ich mir überlegt, um die Abarbeitung nicht zu verlangsamen. Die Slaves stehen auch immer in der Reihenfolge: 2 ist Start dann kommen 4 und 6 als Ziel steht die 8.
Der 2er fängt nun an zu senden, weil er ein timeout erreicht, in dem er keine Signale von der 8 erhält. Das ist auch gleichzeitig die Vorgehensweise wenn es mal zu einer Unterbrechung der Funkstrecke kommt.
Sagen wir mal es ist noch keiner gestartet, dann sendet Slave 2 seine ID und seine aktuelle Zeit. Diese Sendung wird von allen Slaves und dem Master empfangen. Slave 4 sieht jetzt, dass da sein Vorgänger was gesagt hat und meldet sich nun anschließend zu Wort. So geht das rum bis die 8 dran ist. Hat Slave 8 gesendet kommt wieder die 2 dran.
Nun wurde bei Slave 2 ein Event ausgelöst -Startschranke durchfahren-. Zur Zeit ist es nun so, dass das Ereignis registriert wird und der Slave trotzdem erst wenn er dran ist die Zeit einfügt. Das muss ich wenn der Rest geht noch so anpassen, dass der Zeitstempel gleich dran kommt, wenn das Event ausgelöst wird. Slave 2 sendet nun ID-1 anstelle von ID und die Zeit.
Jetzt kommt der Master zum Tragen. Solange Slave 2 immer nur seine ID gesendet hat, hat der Master jedesmal den Offset zu seiner Zeit berechnet. Dieses Mal nimmt er den Offset und den aktuellen Zeitstempel von Slave 2 und generiert daraus die Startzeit. Die wird gespeichert und der Master wartet auf die nächste Sendung. Gerade ID bedeutet wieder Offset für den jeweiligen Slave berechnen, ungerade ID heißt Event ausgelöst.
Maximal 3 Messojekte können sich gleichzeitig in der Messstrecke befinden. Das heißt, nach einem Startevent kann entweder ein Zwischenzeit1event kommen, oder wieder ein Startevent.
Diese Auswertung übernimmt ein ATMega32 der auch gleichzeitig ein Touchpanel ansteuert.
So ich hoffe jetzt kannst du meine Gedanken verstehen. Bin da auch irgendwie festgefahren und Suche deshalb nach einer anderen Herangehensweise. Deshalb finde ich es auch gut, wenn mal ein anderer drüberliest und seine Gedanken niederschreibt oder halt was völlig neues vorschlägt.
Bin mir auch nicht ganz sicher ob das der richtige Ansatz ist, da ich dadurch auch mal etwas verpassen kann.
Ein Vorteil ist, dass durch dieses Verfahren nie alle Slaves durcheinander reden.
Als Nachteil sehe ich hauptsächlich, dass ein Event was kurz nach dem Senden von SlaveX ausgelöst wird erst angezeigt werden kann, wenn SlaveX wieder dran ist mit Senden. Die Frage ist allerdings in wie weit das stört. Wenn man die Messstrecke vergrößert wirds bestimmt irgendwann mal ein Zeitproblem.
sast
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen