- Beiträge
- 22.240
- Reaktionspunkte
- 6.912
-> Hier kostenlos registrieren
Hilfe zu AWL > Indirekte Adressierungmit dem LW tritt der Fehler nicht auf. Aber wieso? Wo liegt der Unterschied?
> Bereichsinterne, registerindirekte Adressierung: die Speicherbereichskennung wird aus der Operation genommen: "T LW [AR1..."
> Bereichsübergreifende, registerindirekte Adressierung: die Speicherbereichskennung wird aus AR1 genommen: "T W [AR1..."
Ja, wenn #Ziel in TEMP liegt.Ist es von der Funktion überhaupt noch das selbe mit LW?
Ist #Ziel wirklich in TEMP deklariert? Wenn Du im AWL-Editor "LAR1 P#L16.0" eingibst, wird das automatisch in "LAR1 P##Ziel" geändert?
"T W [AR1..." ist eigentlich der bessere Code, der funktioniert nämlich auch dann richtig, wenn #Ziel woanders als TEMP deklariert ist.
Das ist nicht normal, "T W [AR1..." muß auch in einer S7-400 funktionieren.In einer 319-F funktioniert das Programm auch ohne LW. Warum in der 400er nur mit LW?
Hast Du vielleicht eine "komische" HW Konfig, z.B. hast Du in der CPU zu wenig Lokaldatengröße eingestellt?
HW Konfig ist übersetzt und geladen? Bausteinkonsistenz ist OK? Welchen Lokaldatenbedarf hat der FC68?
Kannst Du mal einen völlig neuen FC anlegen und die Deklarationen und alle Netzwerke aus dem FC68 in den neuen FC kopieren - ist der Fehler dann immer noch da?
Wann bzw. in welchem OB wird der Code (FC68) aufgerufen? Wie sieht der Aufruf des FC68 aus? Existiert der übergebene DB und ist lang genug?
Hmm, wie kann bei einer indirekten Adressierung die Bereichskennung 16#86 = L "falsch" sein???LAR1 P##Ziel
L W#16#1002
T W [AR1,P#0.0]
Im AR1 steht die 16.0.
Der Fehler lautet weiterhin:
Bereichsfehler beim Schreiben
Falsche Bereichskennung: 86
Deine CPU ist ja schon etwas älter - Vielleicht ist das ein Firmware-Problem? Was für eine Firmware-Version hat Deine CPU 414-1XG02?
Was für eine Step7-Version benutzt Du?
PS: Bei der Analyse von schwierigen Fehlern ist es sehr wichtig, alles GANZ genau zu lesen und wiederzugeben - der AR1 wird bestimmt nicht 16.0 sondern L16.0 enthalten.
Hast Du vielleicht mal einen Screenshot vom Beobachten Deiner Programmstelle? (wie das Bild von JoopB in #17)
Harald