Moinsen zusammen ich baue gerade an einem Hausbus Dir Hardware besteht aus Rs485 und Mega8 Bausteinen. Das Problem liegt in bei mir im Protokoll. Ich habe zb etliche identische Relayskarten mit jeweils 2 Relays. Jedes Gerät im Bus hat eine Adresse. Das klappt soweit super. Wenn ich aber 20 Relays Gleichzeitig schalten möchte müsste ich also 20 Befehle über den Bus senden. Jeder wird mit zum Absender bestätigt. macht 40 Befehle. Auch wenn es nur Millisekunden sind finde ich diese Lösung nicht so toll. Ich würde lieber ähnlich wie beim Dmx einen zustand senden und die Empfänger wissen auf welcher Adresse sie Lauschen sollen. nur wie kann ich dann die Bestätigung zum Absender realisieren. Das nicht ein Gerät durch Übertragungsfehler den Befehl nicht mitbekommt. Permanentes senden aller Daten fällt aus weil es ein Multimaster system ist. Jeder Lichtschalter jeder Sensor kann Senden. Daher benötige ich auch eine Bestätigung das das Paket wirklich angekommen ist. Gibt es dazu ideen?
Kann man bei RS485 nicht mit Adresse 0 einen Broadcast senden? In der Botschaft müsste dann eben drinstehen welche Lichter angehen sollen. Die Bestätigungen der Schalter können dann nach und nach eintrudeln, aber die Lichter gehen alle gleichzeitig an.
Das geht nicht. Entweder jedes Geräte wird einzeln angesprochen und bestätig den Empfang oder gibt eine Sammeladresse ohne Bestätigung. und warum sollte es bei Relais Millisekunden wichtig sein? Selbst das Multimaster und Rs485 passen nicht wirklich zusammen, damit kann man Bus nicht sehr stark auslasten.
Gabba gandalf schrieb: > Gibt es dazu ideen? das hört sich an, als ob CAN hier besser zu deinen Anforderungen passt
So wird das bei CAN gemacht https://de.wikipedia.org/wiki/Controller_Area_Network#Arbitrierung.2C_Priorit.C3.A4t Beide senden also los bis ein Sender merkt seine Bits werden überschrieben dann macht er erstmal eine Pause und probiert es nach der Nachricht des anderen Senders nocheinmal. Jeder Sender senden also nicht nur Daten sondern auch einen Identifier der die Priorität enthält. Ein Alarm ist z.B. wichtiger als ein Lichtschaltbefehl und wird deshalb beim gleichzeitigen lossenden als erstes durchkommen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.