Beckhoff Modbus Slave TCP

bmg
2011-07-15
2011-07-18
  • bmg - 2011-07-15

    Hallo zusammen,

    ich müßte mit einer ABB AC500 einige Werte aus einer Beckhoffsteuerung per Modbus TCP abholen (AC500 soll Master sein).
    Nun habe ich allerdings ein kleines Problem:
    Ab welcher Adresse sind die Daten in der Beckhoffsteuerung?
    Als Info habe ich folgendes:

    Platzhalter_2 AT%MX100.2 : BOOL; ( Netzausfall verzögert )
    Platzhalter_3 AT%MX100.3 : BOOL; ( Betrieb Generator 1 )
    Platzhalter_4 AT%MX100.4 : BOOL; ( Betrieb Generator 2 )
    Platzhalter_5 AT%MX100.5 : BOOL; ( Betrieb Generator 3 )
    Platzhalter_6 AT%MX100.6 : BOOL; ( Betrieb Generator 4 )
    Platzhalter_7 AT%MX100.7 : BOOL; ( Lastabwurf Generator 1 )
    Platzhalter_8 AT%MX101.0 : BOOL; ( Lastabwurf Generator 2 )
    Platzhalter_9 AT%MX101.1 : BOOL; ( Lastabwurf Generator 3 )
    Platzhalter_10 AT%MX101.2 : BOOL; ( Lastabwurf Generator 4 )

    %MX100.2 in der Beckhoff bedeutet für mich, die Adresse ????

    Ich hoffe es versteht jemand meine Frage und kann mir das Mapping der Beckhoff-SPS erklären.

    Danke.

     
  • Oberchefe - 2011-07-15

    Codesys adressiert normalerweise symbolisch. Für Kommunikation (wie auch I/O) kann aber das Symbol auf eine Speicheradresse gelegt werden:

       Digitaleingang_01 AT %IX10.0: BOOL;
       Analogeingang_01 AT %IW256: INT;
       Digitalausgang_01 AT %QX4.0:   BOOL;
       Analogausgang_01 AT %QW0:       WORD;
    MeinMerker AT %MW256: INT;
    

    Im Gegensatz zu Siemens müssen aber die Adressen etwas umgerechnet werden:

    MB4000 (also das Byte) ist deckungsgleich mit dem ersten Byte von MW2000 (Wort/Integer) oder MD1000 (Doppelwort/DINT/Real), demzufolge sollten die MW-Adressen geradzahlig sein und die MD-Adressen durch 4 teilbar. Andernfalls gibt es Ärger (vertauschte Bytes...) wenn man mit anderen Sachen kommuniziert.

    X ist dabei ein Bit
    B ein Byte
    W ein Wort
    D ein Doppelwort

    Wie die Eingänge und Ausgänge (I.. und Q..) abgelegt werden ist etwas herstellerabhängig.

     
  • bmg - 2011-07-18

    Vielen Dank für die Antwort.
    Ich glaub ich habe irgend einen Knopf im Kopf.
    OK, z. B. ein Wort in %MW0.8192 gespeichert, wird mit (Start-)Adresse 2000hex ausgelesen.
    Zumindest mit zwei AC500 funktioniert das tadellos.
    Bei Beckhoff ebenfalls?
    Leider ist mir der Beckhoff ziemlich unbekannt und ich weiß auch nicht was die Fremdfirma da macht.
    Entspricht eigentlich %MX100.0 bei der Beckhoff der Startadresse 64hex? Oder bin ich jetzt schon wieder verkehrt?
    Auch bin ich etwas verwirrt, da mir %MX100.0 eigenartig vorkommt. Bei der ABB AC500 ist bei %MX7.65535.7 Schluß ist.
    Beckhoff hat aber eine zweigliedrige und nicht dreigliedrige Adresse.
    Oder hat Beckhoff nicht die Segmentierung und %MX100.0 wäre gleich ABB %MX0.100.0 gleich Modbusstartadresse 64hex?
    Danke im Vorraus.
    Gruß Martin

     

Log in to post a comment.