Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 27

Thema: Modbus Master für C#

  1. #11
    Registriert seit
    03.01.2007
    Beiträge
    35
    Danke
    1
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo, hier der Code wie er an unseren Anlagen läuft,
    als Beispiel eine UserFunction 65

    Implementiert in Python, Modbus over UDP

    Code:
       
    #------------------------------------------------------------------------#
    # Function _ModbusF65
    #------------------------------------------------------------------------#
        def _ModbusF65(self, transid, protid, unitid,  data):
                # Modbus Header
                mbus = ""
                mbus += chr(transid << 8) + chr(transid & 0xFF) # Transaction ID
                mbus += chr(protid << 8) + chr(protid & 0xFF) # Protocol Identifier
                mbus += chr(len(data)+1 << 8) + chr(len(data)+1 & 0xFF) # Datalength
                mbus += chr(unitid) # Unit Identifier
                mbus += chr(65) # Function Code
                # Send
                self._udp1.sendto(mbus + data, ("192.168.0.106", 20101))
    Um einen Slave zu lesen musst du die dementsprechenden Function Code mit den passenden Daten senden, und den Response parsen - fertig.

    Wenn du mir deinen Slave schickst programmier ich dir das

  2. #12
    Avatar von eYe
    eYe ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    23.02.2007
    Ort
    Hamburg
    Beiträge
    695
    Danke
    198
    Erhielt 84 Danke für 74 Beiträge

    Daumen hoch

    Zitat Zitat von Hand Beitrag anzeigen
    Um einen Slave zu lesen musst du die dementsprechenden Function Code mit den passenden Daten senden, und den Response parsen - fertig.

    Wenn du mir deinen Slave schickst programmier ich dir das
    Danke für dein Beispiel
    In meinem Fall handelt es sich allerdings um Modbus RTU und nicht TCP, dementsprechend müssen Dinge wie z.B. CRC beachtet werden.
    Aber auf dein Angebot komme ich gerne zurück, wenn ich irgendwo nicht weiterkomme
    Siemens: Step7, WinCC Flexible, Logo
    Schneider: PL7, Unity Pro, Vijeo Look, Vijeo Designer, XBTL1000, Premium, M340, Twido, Zelio
    Moeller: Galileo, EASY
    B&R: Automation Studio 3.0

  3. #13
    Registriert seit
    13.03.2006
    Beiträge
    428
    Danke
    5
    Erhielt 43 Danke für 43 Beiträge

    Standard

    [QUOTE=Hand;222683]

    Code:
       
    #------------------------------------------------------------------------#
    # Function _ModbusF65
    #------------------------------------------------------------------------#
        def _ModbusF65(self, transid, protid, unitid,  data):
                # Modbus Header
                mbus = ""
                mbus += chr(transid << 8) + chr(transid & 0xFF) # Transaction ID
                mbus += chr(protid << 8) + chr(protid & 0xFF) # Protocol Identifier
                mbus += chr(len(data)+1 << 8) + chr(len(data)+1 & 0xFF) # Datalength
                mbus += chr(unitid) # Unit Identifier
                mbus += chr(65) # Function Code
                # Send
                self._udp1.sendto(mbus + data, ("192.168.0.106", 20101))
    Und das funktioniert ?

    Nach meinem Wissensstand wird Modbus über TCP und Port 502 gefahren und nicht über UDP.

    Siehe auch:
    http://modbus.org/docs/Modbus_Messag...uide_V1_0b.pdf

  4. #14
    Registriert seit
    11.07.2004
    Beiträge
    1.597
    Danke
    10
    Erhielt 213 Danke für 183 Beiträge

    Standard

    falls Du selber was schreiben willst, hier gibt's Infos und Demoprogramme zum Testen:
    http://www.simplymodbus.ca/

  5. #15
    Registriert seit
    03.01.2007
    Beiträge
    35
    Danke
    1
    Erhielt 2 Danke für 2 Beiträge

    Standard

    @PvBrowser:

    Auf der anderen Seite horcht natürlich ein in SPS Code selbstgeschriebener UDP Modbus Server, ich weis das Modbus eigentlich nicht für UDP spezifiziert ist. Gibt allerdings einige Implementierungen in UDP.

  6. #16
    Registriert seit
    03.10.2009
    Beiträge
    62
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,
    ich stehe vor einem ähnlichen Problem. Ich will eine Modbus- TCP- Kommunikation zwischen einer ELAU- STeuerung (Slave) und einem B&R- Panel (Master) herstellen. Nun existiert für die Steuerung ein ModbusTCP- Baustein, nur für das Panel nicht.
    Eine Möglichkeit wäre ein C++ -Programm für den Master zu verwenden, allerdings hab ich noch nichts wirklich brauchbares gefunden.
    Ich hoffe mir kann da jemand weiter helfen, Quelltext wäre gut.

  7. #17
    Registriert seit
    13.03.2006
    Beiträge
    428
    Danke
    5
    Erhielt 43 Danke für 43 Beiträge

    Standard

    Zitat Zitat von doelckenbeck Beitrag anzeigen
    Hallo,
    ich stehe vor einem ähnlichen Problem. Ich will eine Modbus- TCP- Kommunikation zwischen einer ELAU- STeuerung (Slave) und einem B&R- Panel (Master) herstellen. Nun existiert für die Steuerung ein ModbusTCP- Baustein, nur für das Panel nicht.
    Eine Möglichkeit wäre ein C++ -Programm für den Master zu verwenden, allerdings hab ich noch nichts wirklich brauchbares gefunden.
    Ich hoffe mir kann da jemand weiter helfen, Quelltext wäre gut.
    Hab ich doch schon angegeben:

    http://pvbrowser.org/pvbrowser/sf/ma...srlModbus.html
    ist Teil von
    http://pvbrowser.org

  8. #18
    Registriert seit
    03.10.2009
    Beiträge
    62
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke, hab ich wohl übersehen. Wenn ich das richtig verstehe ist das aber doch Modbus ASCII bzw. RTU wegen CRC und LRC.? Müsste ich dann für Modbus TCP noch was rausnehmen oder ergänzen, um mal dumm zu fragen?
    Könnte ich die cpp- und die h- Datei einfach in die Software des Panels integrieren, die Kommunikationsvariablen ansprechen und fertig?
    DAnke für die schnelle Antwort!

  9. #19
    Registriert seit
    12.02.2008
    Ort
    Westfalen (Dort wo's Schwarzbrot gibt)
    Beiträge
    417
    Danke
    8
    Erhielt 87 Danke für 72 Beiträge

    Standard

    Googel mal mit "Wago Modbus".

    Wago stellt eine komplette DLL inklusive Doku zu Verfügung.

    Vielleicht für Dich ganz brauchbar.

  10. #20
    Registriert seit
    13.03.2006
    Beiträge
    428
    Danke
    5
    Erhielt 43 Danke für 43 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von doelckenbeck Beitrag anzeigen
    Wenn ich das richtig verstehe ist das aber doch Modbus ASCII bzw. RTU wegen CRC und LRC.? Müsste ich dann für Modbus TCP noch was rausnehmen oder ergänzen, um mal dumm zu fragen?
    Könnte ich die cpp- und die h- Datei einfach in die Software des Panels integrieren, die Kommunikationsvariablen ansprechen und fertig?
    Die Klasse kann sowohl über die serielle Schnittstelle kommunizieren, als auch über TCP/IP. Du rufst vorher einfach ein
    void registerSocket (rlSocket *socket)
    bzw.
    void registerSerial (rlSerial *serial)
    auf.

    Du kannst ebenfalls auswählen, ob die Klasse Ascii oder RTU machen soll.

    Wenn Du einen C++ Compiler für das Panel hast ist das kein Problem.
    Die Klasse funktioniert unter allen Unix-artigen Betriebssystemen, Windows und OpenVMS.

    Solltest Du nur einen C Compiler haben, lässt sich das aber auch einfach übertragen.

Ähnliche Themen

  1. Modbus Master
    Von ellawo im Forum Feldbusse
    Antworten: 12
    Letzter Beitrag: 18.02.2011, 09:09
  2. Antworten: 0
    Letzter Beitrag: 05.08.2010, 08:14
  3. VIPA als Modbus RTU Master
    Von EyeQ im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 08.09.2009, 18:10
  4. Soft SPS als Modbus Master
    Von eYe im Forum HMI
    Antworten: 5
    Letzter Beitrag: 23.06.2008, 21:28
  5. S7 als Modbus RTU Master???
    Von RichiSPS im Forum Feldbusse
    Antworten: 2
    Letzter Beitrag: 03.11.2005, 20:39

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •