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

Ergebnis 1 bis 5 von 5

Thema: Modbus an Wago 750

  1. #1
    Registriert seit
    26.03.2013
    Beiträge
    6
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich bin zur Zeit dabei eine Kommunikation zwischen einer Wago 750 (Master) und einem Linearantrieb (Slave) über Modbus RTU aufzubauen.

    Als hardwaremäßige Schnittstelle dient die 750-653/003-000.

    Mit Hilfe des Beispielprogramms von Wago kann ich zwar irgendwelche Daten erfassen aber ich verstehe die Logik dahinter nicht.
    Von dem verwendeten Linearantrieb habe ich zwar eine Tabelle, in der die Befehle irgendwelchen Adressen zugeordnet sind, aber das hilft
    mir auch nicht weiter.

    Hat vielleicht jemand schon mit dem Baustein "ModbusMaster_RTU" aus der Modb_l05.lib gearbeitet und kann mir den Zusammenhang zwischen
    Ein-/Ausgängen und den Registern erläutern?

    Vielen Dank schon mal im Voraus!

    viele Grüße

    Tim
    Angehängte Dateien Angehängte Dateien
    Zitieren Zitieren Modbus an Wago 750  

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

    Standard

    Aus dem Handbuch vom Link:
    Code:
    Es werden folgende MODBUS-Dienste unterstützt:
    
    
    
    0x01 Read Coil Status
    
    
    0x02 Read Input Status
    
    
    0x03 Read Holding Register
    
    
    0x04 Read Input Registers
    
    
    0x05 Force Single Coil
    
    
    0x06 Preset Single Registers
    
    
    0x0B Fetch Comm Event Ctr
    
    
    0x0F Force Multiple Coils
    
    
    0x10 Preset Multiple Registers
    
    das ergibt den "FunctionCode"

    Wenn Du also beispielsweise "Max Speed" aus dem angehängten PDF "Ausgangszuweisung.pdf" alleine verändern willst, musst Du FunctionCode 6 verwenden, StartAdress wäre dann die 3, NumberOfPoints 1. Zum Lesen des Parameters FunctionCode 3.

  3. #3
    STAWTIM ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    26.03.2013
    Beiträge
    6
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke Oberchefe für Deine Antwort.
    Der Schreibbefehl für ein Register kann ich jetzt nachvollziehen.

    Wenn ich den Linearantieb in eine gewünschte Position fahren will, muss ich den gewünschten Sollwert z.B. in "reference position 1" schreiben.
    Dazu wähle ich FunctionCode 6, StartAdress 6 und NumberOfPoints 2 wegen den 16 Bits.

    Soweit so gut, doch wo beschalte ich die Variable mit dem Wert? In der Modus-Library habe ich den Baustein "WRITE_OUTPUT_WORD" gefunden. Ich bin mir aber nicht sicher, ob er dafür verwendet werden kann, da ich nirgendwo die Adresse des Slaves eintragen kann.

    Wenn der Sollwert dann in das Register geschrieben ist, habe ich das nächste Problem. Will ich nun den Befehl "Run to Reference position 1" aus der Liste mit der Ausgangszuweisung ansteuern, muss ich ja irgendwo die Adress 2, Parameter 2 und Remark 6 schreiben. Dass ich FunctionCode 6, StartAdress 2 und NumberOf Points 1 wegen den 8 Bits auswählen muss, ist mir klar. Doch was mache ich mit Parameter und Remark?

    Viele Grüße
    Tim

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

    Standard

    Soweit so gut, doch wo beschalte ich die Variable mit dem Wert?
    Das muss in den Sensepuffer, also Send.Data[0]

    Der "Parameter" hat normalerweise nichts mit Modbus zu tun, ich gehe davon aus dass die Parameter in diesem speziellen Gerät entsprechende durchnummeriert sind, das ist dann interessant wenn mit einer Parametriersoftware drauf zugegriffen wird bzw. wenn in einem Handbuch drauf verwiesen wird. Das Gerät ist möglicherweise auch mit anderen Schnittstellen lieferbar.
    Remark ist der Wert der zu schreibenden bzw. zu lesenden Variable, in diesem Fall musst Du 6 nach Send.Data[0] befördern. Ich weiß jetzt auswendig nicht von welchem Datentyp das Array im typRing_buffer ist, wenn das Bytes sind würde das bei den zu schreibenden 6 passen, bei Reference position 1 wird dann [0] und [1] belegt.

  5. Folgender Benutzer sagt Danke zu Oberchefe für den nützlichen Beitrag:

    STAWTIM (05.04.2013)

  6. #5
    STAWTIM ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    26.03.2013
    Beiträge
    6
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Danke Oberchefe!

    Das Prinzip habe ich jetzt verstanden! Ich kann jetzt den Antrieb ansteuern und aktuelle Werte auslesen.

    Viele Grüße
    Tim

Ähnliche Themen

  1. Antworten: 18
    Letzter Beitrag: 01.09.2015, 22:36
  2. Wago 750-871 <-> Modbus <-> Wago 750-342
    Von XX5198 im Forum WAGO
    Antworten: 3
    Letzter Beitrag: 11.04.2013, 20:19
  3. Antworten: 10
    Letzter Beitrag: 30.10.2012, 13:06
  4. Wago 750-812 Modbus RS485 Controller
    Von bastian c im Forum CODESYS und IEC61131
    Antworten: 10
    Letzter Beitrag: 14.08.2012, 16:24
  5. Wago 750-841 und Modbus???
    Von McNugget im Forum CODESYS und IEC61131
    Antworten: 11
    Letzter Beitrag: 07.10.2009, 22:04

Lesezeichen

Berechtigungen

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