Hallo,
Du kanst Dir mal die Befehle Inkey, Input, Inputbin usw. anschauen,
damit kann man die Zeichen die über UART reinkommen abfragen.
Hallo
wie kann ich einen Master und einen Slave mit RS485 programmieren?
mit Print kann ich vom Master aus senden denke ich. Doch wie kann der Slave dies empfangen. Gibt es da irgendwo etwas nachzulesen? oder kann mir dies einer von euch erklären?
Hallo,
Du kanst Dir mal die Befehle Inkey, Input, Inputbin usw. anschauen,
damit kann man die Zeichen die über UART reinkommen abfragen.
Zum RS485 Protokoll allgemein hatte ich ja auch schon einige Fragen.
Mittlerweile habe ich wohl hingenommen dass RS485 kein definiertes Protokoll hat, sondern "nur" die Hardware bescheiben soll.
Wo kann man Beispielprotokolle für einen Multislave Bus (Master Adr. 1 bis ca 31 Geräte also 30 Slaves) bekommen?
Am liebsten wären mir Praxisbeisiele und deren Umsetzung mit Bascom.
Gruss
Darwin (meine Projekte sind auf meiner Pinnwand zu finden)
Hallo darwin.nuernberg,
schau mal nach SNAP-Protokoll. Damit kann man sehr zuverlässig eine
Master- Slave-Anwendung schreiben. Das Protokoll ist einfach zu imple-
mentieren und ziemlich stabil.
mfg
AVRWalli
hallo,
ich sitze auch shcon seit langer Zeit an diesen Problemen. Ich bin jetzt soweit, dass ich ein einwandfrei funktionierendes Multi-Slave System aufgebaut habe.
Ich habe vor mein Projekt noch zu dokumentieren, aber im Moment bin ich leider etwas im Abistress und deswegen hab ich keine Zeit. Sobald ich hier fertig bin (3-4 wochen) werd ich mich mal dransetzen.
Ein Protokoll, welches den Datenverkehr steuert hab ich auch schon entwickelt.
Falls es euch interessiert, meldet euch mal und ich werde euch dann infos zukommen lassen. Ich habe übrigens bisher auch alles in Bascom geschrieben. Wollte schon immer mal eine Lib für RS485 entwerfen, habe leider nur zu wenig ERfahrung in ASM.
Also seit unbesorgt, wer Geduld hat kann Infos bekommen.
Gruß
Baui
scha doch mal nach Profibus,
der verwendet den RS485 hardwaremäßig.
wenn du das dann in Bascom implementierst haste auch gleich profibus kompatibles system
Vor den Erfolg haben die Götter den Schweiß gesetzt
@Baui
Geduld habe ich Viiiiieeeel.
Interresse noch Meeeeehr!
Speziell da Du scheinbar mit Protokoll und Hardware zusammen eine Komplettlösung liefern könntest?
Nicht nur die Einen, die von der Software nur die theoretische Ahnung haben, aber praktisch noch nie damit gearbeitet haben.
Oder die anderen Die nur die Hardware zusammenschrauben sich aber um die Software nicht kümmern.
@AVRWalli
Das SNAP scheint mehr an IP angebunden zu sein.
Irgendwas ohne das OSI-7 Schichten Modell (welches ich sowiso nie so richtig gerafft habe).
Alles was ich darüber (zunächst) gefunden habe scheint eine Anbindung in bestehende Netzwerke zu priorisieren.
http://www.kreatives-chaos.com/index.php?seite=snap
http://www.itwissen.info/?id=31&ano=01-003412
Sicherlich gibt es da eine entsprechende Adaption.
Eín bisschen Theorie und die dazugehörige Praxis,
verbunden mit der Hardware-Realisation wäre mir sehr lieb.
Gruss
Darwin (meine Projekte sind auf meiner Pinnwand zu finden)
Hallo ich habs mit einem Beispielprogramm hinbekommen ein String zu übertragen. Doch wenn ich nun ein Byte senden will funktioniert das nicht. was hab ich da falsch gemacht?
Code:$regfile = "m32def.dat" $crystal = 16000000 $baud = 19200 Config Portb = Input Config Portd = Output Rs485 Alias Portd.2 Rs485 = 1 Dim A As Byte A = 123 Cls ' Clear the LCD display Cursor Off Do Print A Wait 1 Loop Endwie macht man das dann überhaupt mit den Adressen wenn man mehrere Slaves hat?Code:$regfile = "m32def.dat" $crystal = 16000000 $baud = 19200 Config Lcdpin = Pin , Db4 = Portc.5 , Db5 = Portc.2 , Db6 = Portc.4 , Db7 = Portc.3 , E = Portc.7 , Rs = Portc.6 Config Lcd = 20 * 4 Config Portb = Input Config Portd = Output Rs485 Alias Portd.2 Rs485 = 0 Dim Test As Byte Cls ' Clear the LCD display Cursor Off Do Inputbin Test Locate 1 , 1 Lcd Test Loop End
inputbin?
ich habs mit waitkey gemacht, ansonsten identischer Programmablauf.
Mit den Adressen für diverse Slaves ists etwas kniffelig.
Du brauchst ein Übertragungsprotokoll.
Eine Startbedingung, dann Absender, dann Empfänger, dann Datenbytes
und die Endbedingung.
Jeder Busteilnehmer muß dann bei Datenempfang nachsehen
ob er mit der Zieladresse gemeint ist und wenn ja, die
in den Nutzdaten enthaltenen Anweisungen / Daten etc. ausführen,
dann schickt er das Ergebniss an den Absender zurück.
Da brauchts Struktur dafür.
Entweder du tüftelst Dir n eigenes Protokoll aus oder du
nimmst n gängiges Industrieprotokoll und adaptierst das.
Vor den Erfolg haben die Götter den Schweiß gesetzt
das mit dem byte funktioniert noch nicht so richtig.
wie ist das denn mit dem Interrupt? Wann weis ein Slave dass der Master was will? muss ich da die INT auch noch miteinander verbinden? Der Profibus funktioniert ja auch ohne Interruptleitung. wie macht der das denn?
für was benötige ich denn eine Start und Stop Bedingung?
reicht das nicht, wenn ich ein byte sende mit der adresse und dann eins mit den Daten? eventuell noch ein
Kontrollbyte zurück.
Wo bekomme ich denn so ein Profibusprotokoll her. Ich habe bis jetzt noch keine Ahnung wie der Profibus arbeitet.
Lesezeichen