Forum: Mikrocontroller und Digitale Elektronik Atmega16 - Max485 (Modbus) - Sensor


von Josef H. (Firma: Herr) (habets)


Lesenswert?

Guten Tag

Ich möchte mit dem ATmega16 einen Sensor über RS485 (Modbus, Sensor 
lässt mir da keine andere Wahl) auslesen. Die Schaltung hierzu habe ich 
bereits wie im Datenblatt aufgebaut mit dem Baustein MAX485.
Nur bei der Programmierung fehlt mir der plan wie ich da am besten 
angehe bzw wie das mit der Rs485 genau funktioniert.

Bin für jede Hilfe Dankbar.

Mit freundlichen Grüßen,
Josef Habetswallner

von Rainer U. (r-u)


Lesenswert?

Josef H. schrieb:
> wie das mit der Rs485 genau funktioniert.

Was weißt Du denn bereits / wie ist Dein Kenntnisstand? Hast Du schon 
mal ein einfaches Programm geschrieben und auf den Mega16 übertragen? 
Oder hast Du eine Detailfrage zum Protokoll?

von Josef H. (Firma: Herr) (habets)


Lesenswert?

Die grundlegende Funktionsweise von RS485 ist mir bekannt.
Habe bereits kleinere dinge wie adc einlesen und auf LCD ausgeben 
programmiert.
Nur ist mir nicht ganz klar wie ich das mit dem Modbus rs485 
Programmtechnisch umsetze.

MFG

von Karl H. (kbuchegg)


Lesenswert?

Modbus ist für dich erstmal nicht mehr als die Fragestellung "Wie gehe 
ich mit der UART um?" D.h. das ist dein erstes Ziel, wobei ich dir 
empfehlen würde erst mal den Sensor zu vergessen und eine RS232 
Verbindung zum PC aufzubauen und dort mit einem Terminalprogramm eine 
Gegenstelle zu haben. Warum? Ganz einfach, weil du am PC dann sehen 
kannst, was ankommt und ob das dem entspricht was du weggesendet hast 
bzw. wegsenden wolltest. Denn bei deinem Sensor hast du ein Problem, 
wenn das nicht übereinstimmt: Der Sensor antwortet dann ganz einfach 
nicht, woraus du erst mal nicht sehr viel schliessen kannst.

Aus dieser normalen UART Übertragung wird dann erst Modbus RS485 indem 
du zusätzlich von Vollduplex auf Halbduplex umprogrtammierst (d.h. du 
musst dem Schniistellenbaustein die Treiberrichtung jeweils einstellen) 
und dann natürlich durch das Protokoll, also dem "Was übertrage ich um 
welche Funktion auszulösen". Grundlage ist aber nach wie vor, dass du 
mit der UART umgehen kannst. Und um das zu lernen, brauchst du den 
Modbus erst mal nicht.

von Josef H. (Firma: Herr) (habets)


Lesenswert?

Um das mit dem PC auszutesten fehlt mir leider die Zeit.

Mit der UART bin ich ebenfalls schon vertraut mir geht es einfach nicht 
in denn Kopf wie ich von der UART aus dem µC über denn max485 auf den 
Sensor komme finde da auch nirgends Tutorials dafür. Habe auch schon die 
Freemodbus libary endeckt aber ich weiß nicht was ich beim µC 
rausschicken muss das es Konform ist.

von Rainer U. (r-u)


Lesenswert?

Josef H. schrieb:
> Um das mit dem PC auszutesten fehlt mir leider die Zeit.

Dann ist es wohl auch nicht so wichtig. kopfschüttel Oder Du hast 
stattdessen genug Geld, dann kannst Du jemanden engagieren.

Für das Verständnis, was passiert, ist Karl Heinz' Weg gut geeignet.

technisch ist hier z.B. eine Skizze:

http://www.rs232-to-rs485.com/

Was fehlt Dir noch?

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
Noch kein Account? Hier anmelden.