Hallo,
mach doch aus einer Mücke keinen Elefanten. Dir sollte nur grundsätzlich klar sein, wie Modbus als Protokoll/Schnittstelle funktioniert. Die Umsetzung des Protokolls liefert dir die mitgelieferte API. Zum Einstieg brauchst du nur zu wissen:
- In der Regel wirst du als Prüfstand-Programmierer der Modbus-Master sein.
- Coils und Discrete Inputs werden ehrlich gesagt eher selten verwendet, kannst du auch erst einmal bei Seite lassen
- Jetzt kannst du dir Modbus so vorstellen: Der Slave stellt einen max. Speicherbereich von 2x 65535 U16 Wörtern zur Verfügung. Den einen Register-Bereich darfst du als Master nur lesen, den zweiten darfst du lesen und schreiben. Was jetzt in welcher Formatierung in diesem Speicherbereich wirklich steht, das musst du dem Handbuch deines jeweiligen Modbus-Slave-Teilnehmers entnehmen.
(06.06.2018 13:17 )fAlbert schrieb: Was das Thema Modbus anbelangt: Au weih... Mir fehlen gerade etwas die Worte. Ich dachte das Thema hätte sich mit der funktionierenden Kommunikation für mich erledigt.
Doku hab ich zu Hauf. Zig PDF's mit aberhundert Seiten. Das ist eine Freude - insbesondere wenn man sich das erste mal mit so etwas auseinander setzt.
Jens, unter Berücksichtigung des Thread-Titels: "Simpler Kennlinienprüfstand"
Ist es denn wirklich zwingend erforderlich mit diesen Modbus Registern zu arbeiten? Das Ganze soll wirklich etwas ganz einfaches sein. Die Motoren sollen laufen wie im letzten Post beschrieben. Die vorhandene HW soll die genannten Größen erfassen und mit Hilfe eines Graphs in LV visualisiert werden. Ungenauigkeiten und Toleranzen sind erlaubt. Das ist kein professioneller Prüfstand für die Industrie.
Ja, das ist zwingend erforderlich. Aber freu dich, das machst du doch schon
(06.06.2018 13:17 )fAlbert schrieb: Jetzt wo die Adressen des 1D-Arrays bekannt sind wäre es doch viel einfacher diese zu beschreiben wie zu Beginn von Freddy vorgeschlagen, oder?
"Output (Write Multiple Register)" wird mit den Werten beschrieben. Motoren werden angesteuert.
"Input (Read Holding Register)" wird gelesen. (Strom, Ist-Drehzahl, etc.)
Treffer, versenkt, so einfach ist es tatsächlich. Ist-Werte immer lesen, Soll-Werte immer schreiben. Und wenn du nicht immer das Sollwert-Array komplett schreiben willst, dann solltest du jetzt verstanden haben, wie du z.B. nur Holding-Register 5 schreibst (Hinweis: Funktion Write Single Register mit Start-Adresse 5).
Gruß, Jens