26.07.2021 07:50 | |
Beigetreten: 21.01.2013 Letzter Bes: 05.09.2024 Beiträge: 3084 Bewertung:
|
Hallo Fabian, ein Überlagern von Variablen mit AT ist bei einer CPU aus der Familie S7-300/S7-400 nur möglich bei Bausteinen mit der Erstellsprache SCL. Außerdem ist zu beachten, dass die Überlagerung mit AT nur in der Bausteinschnittstelle möglich ist. In einem Datenbaustein kann AT nicht verwendet werden. Eine mögliche Lösung wäre also, Dein Vorhaben in SCL zu realisieren. Die Meldung "Die Adresse wird nicht durch eine Variable belegt" kommt dann, wenn mit absolutem Zugriff auf eine Adresse zugegriffen wird, für die in der S7 keine Variable angelegt ist. Z.B., wenn der DB4 mit Word-Variablen angelegt wurde. In diesem Fall gibt es eine Variable für "%DB4.DBW0", für "%DB4.DBX0.0" kann es dann keine geben. Es gibt die Möglichkeit, in der S7 im Datenbaustein nur Bit-Variablen anzulegen. Das hat dann auf S7-Seite den Vorteil, dass direkt auf Bits zugegriffen wird. Im HMI müssen dann die Variablen manuell angelegt werden. Dort hat es dann allerdings den Nachteil, dass die HMI-Variablen nicht synchronisiert werden können. Eine weitere Möglichkeit wäre es, für die Meldungen in der S7 Bits anzulegen und diese mit einer BLKMOV-Anweisung in einen entsprechend großen WORD-Bereich zu kopieren. Viele Grüße |
Folgen Sie uns auf