Frage über Modbus tcp und C++

Michaeldo

Level-1
Beiträge
12
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

als ein Student bin ich ein absolutes Neuling sowohl mit SPS, als auch mit C++ und seit erst vor kurzem habe ich angefangen, mich mit C++ zu beschäftigen. Jedoch habe ich eine Aufgabe bekommen, ein Programm auf C++ zu schreiben, durch das die SPS von einer Anlage zentral gesteuert werden sollen. Ein anderer Student beschäftigt sich mit den einzelnen Anlagen und schreibt seinen Code auf codesys. Unsere Kommunikation sollen über Ethernet stattfinden. Ein Kumpel von mir, der als Mechatroniker arbeitet, hat gemeint, dass es bei ihm in der Firma Modbus tcp benutzt wird, um die Verbindung herzustellen. So habe ich angefangen mich über Modbus tcp zu informieren.

Auf einem alten Beitrag hier im Forum http://www.sps-forum.de/feldbusse/37972-modbus-tcp-selber-programmieren.html
habe ich eine Bibliothek von Modbus für C++ gefunden. Jedoch fehlt mir jede weitere Schimmer um zu verstehen, wie ich damit anfangen soll.
Kann Jemand mir bitte erklären, was ich mit diesen Code vom der Seite http://pvbrowser.org/pvbrowser/sf/manual/rllib/html/classrlModbus.html machen soll?
Bitte erklären Sie so einfach und genau wie möglich.
Vielen herzlichen Dank im Voraus!!!

Viele Grüße
Michaeldo
 
Zuletzt bearbeitet:
Hey,

ich bin auch Mechatroniker ;).
Ich nutze für C++ die Bibliothek libmodbus (für TCP als auch für RTU).
http://libmodbus.org/
Ich nehme an die SPS ist dann der Slave und du bist der Master.
Bei mir ist das dann so mit modbus_new_tcp erstellst du quasi ein Interface, dann mit modbus_connect verbindest du dich mit dem Slave. Dann kannst du auch schon mit modbus_read_input_bits Eingänge lesen oder mit modbus_write_bits Ausgänge setzen. Im Grunde genommen ist es ganz einfach. Wenn du dann am Ende dich trennen willst musst du nur modbus_close und modbus_free aufrufen. Den Rückgabewert von modbus_new_tcp musst du natürlich bei allen nachfolgenden Funktionen als Handle angeben.

Falls du Qt nutzt, kann ich dir gerne mal ein Beispielprojekt zukommen lassen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Mobi!
Vielen Dank für deine ausführliche Antwort. Das wäre super, wenn ich ein Beispielprojekte von Dir bekommen könnte:D! Denn ich glaube, mit einem Beispiel kann ich besser nachvollziehen, was du damit gemeint hast.
Also habe ich mir grad das Programm Qt runtergeladen. Wie kannst du mir dein Beispiel schicken? Brauchst du meine Email?oder geht es hier durch Forum irgendwie?
Viele Grüße!
 
Sooo ... im Anhang ist das Projekt. Hab mal nur "Read Discrete Inputs (0x02)" und "Write Multiple Coils (0x0f)" reingemacht. Also Eingänge lesen und Ausgänge schreiben. Müsste eigentlich alles selbsterklärend sein. Bei "Write Multiple Coils (0x0f)" kannst du den Wert ändern per Doppelklick, dann toggelt der immer zwischen 0 und 1.
 

Anhänge

  • Modbus-TCP_Test.zip
    156,2 KB · Aufrufe: 68
Hallo Mobi, ich habe noch eine Frage. Weißt Du zufällig wie man die Bibliothek,die Du benutzt hast, für visual studio einfügen kann? Weil ich mit qt keine Erfahrung habe...
 
Zuletzt bearbeitet:
Ich würde auch einfach nur die Dateien einbinden, die ich auch bei Qt eingebunden hab. Man kann mit Sicherheit einfach Dateien hinzufügen zum Projektbaum. Naja Erfahrung brauchst du jetzt nicht bei Qt, du hast es ja gesehen, wie ich es gemacht habe.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hey,danke für die schnelle Antwort!
Gibt es bei Qt eine Option, bei der man sich einfach eine ganze Datei anbinden kann? Die habe ich bei Visual studio net gefunden.Was ich gefunden habe ist, dass man statische und dynamische Bibliothek mit der speziellen Format an einer Projekt anbinden kann.
Viele Grüße
Michaeldo
 
Zurück
Oben