Forum: Mikrocontroller und Digitale Elektronik Modbus, wie sind Coil, Registers definiert


von LösungSucher (Gast)


Lesenswert?

Hallo, ich habe ein Verständnisproblem. Habe mir die Modbus 
Dokumentation durchgelesn, nur verstehe ich den Zusammenhang zwischen 
den möglichen Adressen im Modbus 0-49999 und dem uC nicht.
Z.B. Coils werden repräsentiert von 1 - 2000. Soweit ich weiis ist das 
einfach der Zustand eines Bits (high / low). Muss ich softwaremäßig dann 
die Coilnummer einem bestimmten Port meines uC zuweisen und den dann 
auslesen? Oder wie ist es? Wie sieht es mit Registern aus, es wird von 
welchen Holding und Input Registern gesprochen, wo finde ich aber diese 
auf meinem uC? Ich steh momentan neben mir...hab ich da was komplett 
falsch verstanden?

: Verschoben durch User
von einstein (Gast)


Lesenswert?

Hallo LösungSucher,
Zu erst einmal ist die Frage eigentlich im Falschen Forum gestelt 
(richtiger wäre "µC & Elektronik"). Desweiteren hab ich den Eindruck das 
du tatsächlich was falsch verstanden hast.
Was du aufjedenfall noch schreiben solltest ist was du eigentlich 
erreichen willst und auf welcher Hardware du dies machen willst.
Wenn ich mal davon ausgehe das du mit einem µC einen Modbus-Slave 
implementieren willst, hab ich folgende Antworten.
- Ein direkter zusammenhang mit den Coils und Register (Modbus) zu Ports 
und Register (µC) besteht nicht. Dies ist davon abhänig wie du es 
implementierst.
- Daraus folgend wirst du auch keine Holding und Input Register auf dem 
µC finden. Es liegt an dier diese bei einer Implementierung richtig zu 
realisieren.

Als Empfehelung such mal eine Modbus-Slave implementierung für deine 
Zielhardware. Sowas findet man für einige µC. (Ich selbst hatte in 
meiner Dipl. Arbeit einen Slave für den MSP430)

von LösungSucher (Gast)


Lesenswert?

Hallo, erstmal danke für die Antwort ,

also ich soll einen Temperatursensor auslesen, dafür soll Modbus 
eingesetzt werden. Benutze einen TMS320 uC. Habe erst mal ein MasterTool 
runtergeladen um den Master zu simulieren, bin dabei die Software für 
den Slave zu schreiben. Die Kommunikation zwischen meinem Board und dem 
PC steht schon. Wegen den Registern, ich weiss dass diese Register im uC 
nicht vorhanden sind, ich bin aber nur verwirrt, wie stehen diese Coils, 
Holding Register etc. im Bezug zu meinem uC.

Wenn ich z.B. den Coil 15 auslesen möchte, muss ich erstmal in der 
Software definieren, dass Coil 15 == GPIO 13 oder ähnlich?

von Frank S. (franksanderdo)


Lesenswert?

Hallo halli,

Sorry wenn ich mich kurz einmische.
Einen Temperatursensor als coil einlesen wird so nicht gehen.

Da gibt es 2 Probleme
1. Coils werden immer vom Master beschrieben nicht gelesen.
2. Coils sind Bitweise zu adressieren

Da ich auch fürchte das Thema ist hier OT melde Dich bitte mal per PM
Ich denke ich kann Dir relativ einfach helfen.

Grüße
Frank

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.