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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: Wago Codesys Modbus über RS485 Kommunikation nur Probleme

  1. #1
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.618
    Danke
    776
    Erhielt 646 Danke für 492 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen

    Ich versuch grad verzweifelt eine Modbuskommunikation von einer WAGO auf ein CEAP Fahrstreifensignalumsetzer aufzubauen.

    Die Kommunikation steht soweit ich kann also Register senden und empfangen ohne das der Treiber einen Timeout meldet. Aber das schreiben und Empfangen von Werten will irgendwie noch nicht so richtig klappen.
    Ich habe das was ich bis jetzt habe mal auf Online gestellt wenn jemand mal reinschauen will.
    http://www.vollmi.ch/sps/Modbus_120203.zip

    Und auch mal einen Seriallog aufgezeichnet.
    http://www.vollmi.ch/sps/CEAP_LOG.zip

    Der Modbus Slave arbeitet mit 32Bit Registern.
    In der WAGO habe ich also ebenfalls 32Bit Strukturen gebildet. Dem Modbustreiber übergebe ich diese 32Bit Struktur an eine 16Bit Struktur mit
    Code:
    SysMemCpy(ADR(typModBus_Status[1]), ADR(typSlaveData[1].Response_Data[0]), SIZEOF(typModBus_Status[1]));
    zum lesen
    und
    Code:
    SysMemCpy(ADR(typSlaveData[1].Write_Data[0]), ADR(typModBus_Init[1]), SIZEOF(typModBus_Init[1]));
    Schreiben.
    Das funktioniert soweit. Also ich kann online in den typSlaveData sehen das kopiert wurde.

    Aber obwohl ich testweise in Register 1 schreibe und genau von da auch wieder lese und auch mit dem terminal direkt auf dem Slave zugreife sehe ich keine veränderung des registers.

    Dem Treiber selber sage ich er soll Startadresse 2 nehmen und Quantity 2 also zwei 16Bit wörter übertragen. Das heisst für mich er muss auf Register 1 schreiben.

    mache ich einen Denkfehler?

    mfG René
    Zitieren Zitieren Wago Codesys Modbus über RS485 Kommunikation nur Probleme  

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

    Standard

    Die Pollzeit von 50ms sind evtl. etwas sportlich, zumal (zumindest auf den ersten Blick) ohne Bedingung zum nächsten Datensatz gewechselt wird, egal ob Übertragung erfolgreich oder Timeout. Habe kein passendes Target auf dem Rechner, gehe aber davon aus dass die Übertragung über den K-Bus zu einer 750-6xx Klemme geht? Je nach Klemme gehen da pro Klemmenzyklus nur 5 Bytes auf einmal rüber!

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

    vollmi (05.02.2012)

  4. #3
    Avatar von vollmi
    vollmi ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.618
    Danke
    776
    Erhielt 646 Danke für 492 Beiträge

    Standard

    Sollte es wirklich nur sowas simples sein? Daran das die Pollzeit zu kurz ist habe ich überhaupt nicht gedacht, da ich annahm der Treiber fängt das selber ab. Ich werde das gleich morgen früh ausprobieren. Danke für den Denkanstoss.

    mfG René

  5. #4
    Avatar von vollmi
    vollmi ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.618
    Danke
    776
    Erhielt 646 Danke für 492 Beiträge

    Standard

    Grml. Wenn ich die pollzeit erhöhe (400ms), kriege ich vom Treiber (MB_Error) einen Timeout vom Teilnehmer ID3

    Addendum: Timeout auf 1s erhöht jetzt gibts keinen Timeout mehr mit 500ms Pollzeit. Leider trotzdem keine funktionierende Uebertragung.

    mfG René
    Geändert von vollmi (06.02.2012 um 07:38 Uhr)

  6. #5
    Avatar von vollmi
    vollmi ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.618
    Danke
    776
    Erhielt 646 Danke für 492 Beiträge

    Standard

    Gibt es irgendeine Software mit der ich mich über einen NPort RS485 direkt auf den Modbus klemmen kann und dann direkt sämtliche Telegramme die da rübergehen sehe?

    mfG René

  7. #6
    Registriert seit
    11.12.2009
    Beiträge
    2.113
    Danke
    388
    Erhielt 390 Danke für 271 Beiträge

    Standard

    Geht es vielleicht mit Hyperterminal?

    Grüße in die Schweiz

    Marcel

  8. #7
    Avatar von vollmi
    vollmi ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.618
    Danke
    776
    Erhielt 646 Danke für 492 Beiträge

    Standard

    Leider ist Hypertherminal dazu leider ungeeignet. Listet irgendwelche Sonderzeichen auf zeigt die Steuerzeichen nicht richtig an etc.
    Ich habe jetzt Docklight installiert das scheint den Datenfluss korrekt anzuzeigen. Aber die Pakete scheinen nicht korrekt zu sein.
    Jetzt kriege ich von Wago mal ne neue Lib, hoffentlich funktioniert das jetzt.

    Interessanterweise kann ich Coils lesen. Aber immernoch nicht beschreiben.

    mfG René

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

    Standard

    zum Testen von Slaves geht das hier:
    http://www.chipkin.com/cas-modbus-scanner

  10. #9
    Avatar von vollmi
    vollmi ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.618
    Danke
    776
    Erhielt 646 Danke für 492 Beiträge

    Standard

    Das geht leider nur für Modbus RTU

  11. #10
    Avatar von vollmi
    vollmi ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.618
    Danke
    776
    Erhielt 646 Danke für 492 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    So hab ein tolles Programm gefunden zum Modbus richtig gut zu testen.
    http://modbustools.com/

    Das funktioniert toll um Slave und Master zu Simulieren und gleichzeitig den Datenstrom aufzuzeichen.
    Als Modbusadapter nutze ich jetzt den Nientech Nano 485
    http://www.nientech.de/index.php?pag...emart&Itemid=2

    Funktioniert genial.
    Dann habe ich auch den Fehler gefunden. Im Modbusbeispiel von Wago wird der typSlaveData.WriteData Bereich nicht auf den typQuery.Write_Data gemappt.
    Und da ich dachte das Beispiel sei funktionell habe ich darauf leider nicht geachtet.

    Jetzt funktioniert also sowohl Lesen als auch Schreiben von Registern.

    Wenn ich jetzt allerdings z.B. 6 Worte Lesen will. geht das allerdings nicht kontinuierlich. Ich habe in regelmässigen Abständen einen Timeout beim Lesen drin.
    Woher könnte das kommen?

    mfG René

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 21.10.2012, 09:52
  2. WAGO Modbus Kommunikation
    Von capri-fan im Forum WAGO
    Antworten: 14
    Letzter Beitrag: 03.10.2012, 16:23
  3. Anbindung KBR-Multimess WAGO über Modbus
    Von fraggle-m im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 29.06.2011, 15:57
  4. Kommunikation über RS485 CP340
    Von clandestino im Forum Hochsprachen - OPC
    Antworten: 0
    Letzter Beitrag: 05.11.2009, 08:17
  5. Kommunikation über RS485
    Von GhostBlade im Forum Feldbusse
    Antworten: 3
    Letzter Beitrag: 05.11.2007, 14:59

Lesezeichen

Berechtigungen

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