Hallo Leute, ich hab mir ein neues Projekt vorgenommen und bin mir nicht sicher ob das so funktionieren kann. Ich wie so etwas ähnliches wie eine Schaltuhr bauen, bei der die Schaltkanäle mit der Schaltuhr über ein Bussystem verbunden sind. Meine Rahmenbedingungen: 1 Busmaster 30 Slaves (Schaltkanäle) Endausbau sollen 120 sein Kabellänge: max 400m Kabeltyp: unbekannt (kann schlimmstenfalls auch ein 5x15mm² sein, ohne Schirm) Datenübertragung: RS485? Geschwindigkeit: 300bit/s würden reichen, etwas mehr wäre kein Fehler Kann die Datenübertragung auch ohne Schirm klappen? Bei der Geschwindigkeit denke ich schon oder ist es besser eine andere Übertragungsmethode zu suchen, ein Aufmodulieren des Signals auf die Betriebsspannung (ähnlich EIB) wäre mir noch lieber, gibt’s da gute Unterlagen oder Infos wie man so was macht? Als Protokoll hätte ich mir folgendes gedacht: 1 Byte Adresse Slave 4 Byte Daten 1 Byte Checksumme Danach hat der Empfänger ein Zeitfenster, in dem er eine Empfangsbestätigung an den Master zurückschicken muss, wird dies nicht gemacht, wiederholt der Master den Befehl bis zu 3 Mal, wenn es dann immer noch nicht klappt, zeigt er eine Störmeldung an. Die Empfangsbestätigung soll ähnlich aufgebaut sein: 1 Byte Adresse Slave (da die Daten ja sowieso für den Master bestimmt sind) 4 Byte Daten (damit ich eventuell später auch noch Statusmeldungen übertragen kann) 1 Byte Checksumme Bei einigen Protokollen hab ich gesehen, dass ein Anfangs- und Endbyte verwendet wird, warum? Wird das nur bei variabler Datenlänge benötigt, um des Ende anzuzeigen? Danke, Christian
@ Christian_RX7 (Gast) >Meine Rahmenbedingungen: > 1 Busmaster > 30 Slaves (Schaltkanäle) Endausbau sollen 120 sein > Kabellänge: max 400m > Kabeltyp: unbekannt (kann schlimmstenfalls auch ein 5x15mm² sein, ohne >Schirm) > Datenübertragung: RS485? > Geschwindigkeit: 300bit/s würden reichen, etwas mehr wäre kein Fehler Na dan nimm RS485, das passt. Andere werden CAN vorschlagen, geht sicher auch. >Kann die Datenübertragung auch ohne Schirm klappen? Ja. >Bei der Geschwindigkeit denke ich schon oder ist es besser eine andere >Übertragungsmethode zu suchen, ein Aufmodulieren des Signals auf die Unsinn. Rate mal wie Ethernet (10mBit/s9 oder FastEthernet (100 Mbit/s) arbeiten. >Als Protokoll hätte ich mir folgendes gedacht: >1 Byte Adresse Slave >4 Byte Daten >1 Byte Checksumme Kann man so machen. >Bei einigen Protokollen hab ich gesehen, dass ein Anfangs- und Endbyte >verwendet wird, warum? Vereinfacht die Erkennung und prüfung von Daenpaketen. > Wird das nur bei variabler Datenlänge benötigt, >um des Ende anzuzeigen? Jain. Kann man machen, muss aber nicht. MfG Falk
Hallo! Vielleicht wäre es auch geschickt wenn du noch ein Byte einbaust, wo du siehst von 'Wem' die Message kommt und ev. auch noch eine MessageID ... macht einiges einfacher ;) lg Peter
Peter P. wrote: > Hallo! > > Vielleicht wäre es auch geschickt wenn du noch ein Byte einbaust, wo du > siehst von 'Wem' die Message kommt und ev. auch noch eine MessageID ... > macht einiges einfacher ;) > > lg > Peter Senden tut ja immer der Master, also ist klar von wem. Und in der Antwort ("Empfangsbestätigung") ist ja die Slave-Adresse drin.
Ajo genau (dachte an ring)... MessageID wäre aber trotzdem nicht schlecht, dann muss man nicht immer alle Daten übertragen lg Peter
Die Senderadresse mitzuschicken hab ich mir auch schon gedacht, dachte mir dann aber folgendes: Wenn der Master Befehle an einen Slave sendet, reicht mir die Empfängeradresse, damit der Empfänger weiß, dass er gemeint ist. Wenn der Slave eine Antwort an den Master sendet, steht als Adresse die des Slaves drinnen, dadurch ignorieren alle anderen das Telegramm und der Master liest es, da er darauf wartet und nur in dem kurzen Zeitfenster auf Empfang steht. Werd mir das noch überlegen, die Struktur um ein Byte zu erweitern: Adresse (Empfänger) Adresse (Sender) Daten Checksumme Danke Christian
Tipp: Schau Dich mal beim seriellen Protokoll von Frequenzumrichtern um. Ich habe das Protokoll von Lenze abgewandelt (weil der Frequenzumrichter sowieso Bestandteil des Bus ist) und benutze es mit Erfolg. Dort werden z.B. keine Daten als Byte geschickt sondern als Ascii-Zahl, das ergibt zwar mehr Traffic, aber dafür einen Gewinn an Übertragungssicherheit.
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.