Modbustreiber in C++ schreiben



  • Hallo leute 🙂

    ich habe eine frage an euch die community und die experten hier 🙂
    meine derzeitige aufgabenstellung ist einen modbustreiber für ein ipc zu schreiben in c++. bis dato habe ich noch keine treiber geschrieben aber habe in c++ erfahrung. erster schritt ist es erstmal überhaupt eine verbindung zum pc herzustellen wobei sich das master slave gestalten soll.- der pc ist via ethernet mit meinem laptop verbunden. ich meine es ist profinet.

    meine frage. kann mir jemand dazu mal ein wenig material empfehlen und oder einen kleinen roten pfaden geben damit ich da voll durchstarten kann?

    ich bin für jede hilfe dankbar !

    also bis bald

    jonas 🙂



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (alle ISO-Standards) in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Was hat Modbus mit Ethernet zu tun?
    Was ist "ein ipc"?
    Ich glaub nicht dass das genug Informationen sind dass iwer damit was anfangen kann. Ich hab auch jeden Fall überhaupt keinen Plan was du willst.



  • Mit ipc meint er wahrscheinlich einen Industrie-PC.

    Modbus hat schon mit Ethernet zu tun. Ursprünglich war das zwar ein Protokoll für die serielle Schnittstelle, heute ist es mehr ein Synonym für Modbus/TCP.

    Einen Treiber im Sinne von "Gerätetreiber" braucht man für keines von beiden.

    Es hat sich nur eingebürgert, in diesem Zusammenhang von Treibern zu sprechen, in der Regel handelt es sich lediglich um eine Klasse, die ein Protokoll implementiert. So wie in diesem Artikel
    http://www.codeproject.com/Tips/16260/Modbus-TCP-class
    Der verwendet zwar C#, hat aber auch Links auf die offizielle Modbus Doku.



  • ja also man braucht schon ein treiber da es für modbus auch karten gibt die dafür gebaut werden das ist danna uch ein treiber für hardware... und ja mit ipc mein ich einen industrie pc.



  • hustbaer schrieb:

    Was hat Modbus mit Ethernet zu tun?
    Was ist "ein ipc"?
    Ich glaub nicht dass das genug Informationen sind dass iwer damit was anfangen kann. Ich hab auch jeden Fall überhaupt keinen Plan was du willst.

    also so weit ich weiss sehr viel



  • xPCSIM schrieb:

    ja also man braucht schon ein treiber

    Nein.

    Gegenbeweis:
    http://libmodbus.org/documentation/



  • nn schrieb:

    xPCSIM schrieb:

    ja also man braucht schon ein treiber

    Nein.

    Gegenbeweis:
    http://libmodbus.org/documentation/

    hm also ich weiss ja nicht ob du damit arbeitest oder verstehst was ich mein aber es ist so. in manchen fällen brauch man ein treiber der in eine firmware integriert ist.

    wenn ich eine karte habe die x sprachen sprechen kann (modbus, profinet, etc etc.) aber von "natur" aus keine und die ist für profinet konfiguriert in ihrer firmware weil bsw vor mir jemand mit profinet gearbeitet hat wie glaubst du dann bring ich die dazu modbus zu sprechen?

    in dem ich eine neue firmware aufspiele die einene treiber für modbus enthällt. und wenn ich kein tool dafür habe was mir den treiber direkt in die firmware integriert dann muss ich den selbst schreiben..

    damit verdienen manche firmen sehr viel geld. also wenns nicht nötig wäre dann würde ich gerne mal wissen wieso siemens dafür so viel kohle bekommt 😉 also wenn ich mich irre dann lass ich mich da gerne belehren 🙂 aber bitte nicht nur mit nem link 😛



  • Du meinst Karten wie die von der Firma Hilscher.

    Ja, die brauchen einen Treiber, weil es eben z.B. PCIe-Karten sind. Das ist dann aber ein Treiber für Zugriff auf die Karte. Kein Modbus-Treiber, aber ein Treiber im Sinne von Windows.

    Auf so einer Karte sitzt ein eigener Prozessor. In dessen Firmware ist festgelegt, welches Protokoll die Karte kann (wie Du selbst sagst, z.B. Modbus oder Profinet.) Das ist aber die Firmware der Karte, es hat mit PC-Treibern nichts zu tun. Man nennt es nur auch Treiber (siehe mein erstes Posting).

    So eine Karte kann wegen des eigenen Prozessors auch Echtzeit-Netzwerke wie Ethercat, Profinet, Ethernet-IP usw. abwickeln. Diese Protokolle kann ich nicht wie Modbus einfach mit einer Lib auf dem PC ausführen. Wenn man keine Karte mit eigenem Prozessor hat, braucht man z.B. Windows-Echtzeiterweiterung wie Kithara.

    Deshalb sind diese Karten so teuer. Modbus können sie auch, weil sie alle Arten von Ethernet können, auch normales.

    Dein Denkfehler ist, dass du glaubst Modbus sei ähnlich wie z.B. Profinet. Das stimmt nicht. Modbus ist uralt, es ist ursprünglich das Protokoll wie Modicon SPSsen von Schneider Electric vom PC aus über RS232 oder RS485 angesprochen werden konnten. Später wurde das Protokoll geöffnet und um Varianten für TCP und UDP ergänzt.

    Modbus-TCP nimmt man für Geräte (z.B. Ventilinseln von Festo, Klemmen von Wago usw.), wenn die Ansteuerung nicht echtzeitmäßig von einem normalen PC erfolgen soll, der keine Echtzeitnetzwerkschnittstelle wie Profinet hat.

    Bleibt noch die Frage, was Du eigentlich willst ?

    1. Du kaufst eine fertige Karte für Modbus, z.B. von Hilscher. Die hat einen Treiber und Sofware zum Zugriff auf die Karte. => Du brauchst keinen Treiber schreiben.

    2. Du verwendest eine normale Netzwerkkarte und eine fertige oder eigene Lib. Die Netzwerkkarte hat einen Treiber. => Du brauchst keinen Treiber schreiben.

    Also was ?



  • was genau ich will ist dann doch etwas zu geheim. und mein fehler wenn ich modbus sage meinte ich die ganze zeit openmodbustcp. modbus verwendet ja kaum noch wer ich sag immer modbus statt modbus tcp



  • Das ändert nichts an der Frage was du wissen willst.


Anmelden zum Antworten