Pilz Drive als ModbusTCP Slave - Adressenbereich verändern

Deutsch
Alper-PLC
2019-08-07
2019-08-13
  • Alper-PLC

    Alper-PLC - 2019-08-07

    Hallo zusammen

    Bin neu hier und es ist mein erster Beitrag.
    Wir haben eine PLC, welches als ModbusTCP Master fungiert (wird nicht mit Codesys programmiert) und die Pilz PMCprimoC für die Ansteuerung von Servoantrieben im Einsatz. Die Kommunikation via ModbusTCP zwischen PLC und der Servokarte besteht inzwischen, jedoch stört mich eines sehr an Codesys:
    Ich kann im Eintrag Ethernet >> ModbusTCP_Slave zwar die Anzahl Register und die Registeradresse (z.B. IW10) eingeben, jedoch werden die einzelnen Bitadresse automatisch vergeben. Die aut. Vergabe ist bei Regsiteradresse %IW10 dann laut Codesys "%QX20.0; %QX20.1; usw." statt "QX10.0". Habe bereits Hersteller von der Karte und Codesys um Hilfe gebeten, aber der Erste konnte nicht und der Zweite wollte nicht.

    Habt jemand die gleichen Probleme? Konntet ihr das umstellen oder "lebt" ihr einfach damit?

    Danke euh schon im Voraus

    IMG: Codesys ModbusTCP Slave Adressierung.jpg

     
  • wollvieh

    wollvieh - 2019-08-08

    Das liegt wohl am Adressierungsmodell von Codesys.

    IMG: 20190808_054859.jpg

     
  • Erik Böhm

    Erik Böhm - 2019-08-12

    Moin

    Mal davon abgesehen dass ich das Addresierungsmodell so wie es ist völlig in Ordnung finde (Ich weiß, S7 Programmierer sehen das anders...)
    gab es in der V2.3 die folgende Option in den Zielsystemeinstellungen:

    Byte-Adressierung
    aktiviert: die Adressierung erfolgt byte-weise (z.B. var1 AT %QD4 erhält Startadresse %QB4)

    Ich denke das hätte die Änderung zur Folge die du dir wünschst.
    Leider kenne ich diese Option aus V3 nicht.

    Gruß Erik

     
  • Erik Böhm

    Erik Böhm - 2019-08-12

    Zitat:
    "Habt jemand die gleichen Probleme? Konntet ihr das umstellen oder "lebt" ihr einfach damit?"

    Ich sehe das Problem gar nicht.

    Wenn man sich mal eine Speicherbelegung vor Augen führt, dann liegen die Daten ja folgendermaßen:
    Byte 0 / Byte 1 / Byte 2 / Byte 3 / Byte 4 usw...
    Wort 0 / Wort 1 / Wort 2
    DWORD 0 / DWORD 1

    Folglich kann ja Wort 1 nicht bei Byte 1.0 anfangen, denn da liegt ja noch die 2. Hälfte von Wort 0.
    Und DWORD 1 kann erst ab Byte 4 loslegen

     
  • Alper-PLC

    Alper-PLC - 2019-08-13

    Danke für eure Antworten! Ja wie schon bemerkt komme ich aus der "SIEMENS Welt" und dort wäre es QW10 --> QX10.0, QX10.2, etc. und nächstes Word QW12.

    Gruss Alper

     

Log in to post a comment.