Step 7 Bereichslängenfehler 16# 2522

balkanaz

Level-1
Beiträge
82
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich habe im Diagnosepuffer einen Bereichslängenfehler, der regelmäßig erscheint.
Dran gemacht habe ich nichts, sondern eher spontan mal in den Diagnosepuffe geschaut.
Wie kann ich am herausfinden, wo sich der Fehler versteckt? Lokalvariablen gibt es in dem Programm wie Sand am Meer.


Code:
Diagnosepuffer der Baugruppe CPU 315-2 PN/DP

Bestell-Nr./ Bezeichn.            Komponente                        Ausgabestand                  
6ES7 315-2EH14-0AB0               Hardware                          7                             
- - -                             Firmware                          V 3.2.12                      
Boot Loader                       Firmware-Erweiterung              A 37.12.12                    

Baugruppenträger:                 0
Steckplatz:                       2


Seriennummer:  S C-H7BN71232016


Ereignis 1 von 10:  Ereignis-ID 16# 2522
Bereichslängenfehler beim Lesen 
Lokaldaten des Aufrufers  , Bytezugriff,  Zugriffsadresse:      0
Angeforderter OB: Programmierfehler-OB (OB 121)
Prioritätsklasse:  1
interner Fehler, kommendes Ereignis
13:15:32.624  22.10.2020
(Kodierung: 16# 2522  0179  0017  0000  0000  0000)


Ereignis 2 von 10:  Ereignis-ID 16# 2522
Bereichslängenfehler beim Lesen 
Lokaldaten des Aufrufers  , Bytezugriff,  Zugriffsadresse:      0
Angeforderter OB: Programmierfehler-OB (OB 121)
Prioritätsklasse:  1
interner Fehler, kommendes Ereignis
13:15:03.985  22.10.2020
(Kodierung: 16# 2522  0179  0017  0000  0000  0000)


Ereignis 3 von 10:  Ereignis-ID 16# 2522
Bereichslängenfehler beim Lesen 
Lokaldaten des Aufrufers  , Bytezugriff,  Zugriffsadresse:      0
Angeforderter OB: Programmierfehler-OB (OB 121)
Prioritätsklasse:  1
interner Fehler, kommendes Ereignis
13:14:44.294  22.10.2020
(Kodierung: 16# 2522  0179  0017  0000  0000  0000)


Ereignis 4 von 10:  Ereignis-ID 16# 2522
Bereichslängenfehler beim Lesen 
Lokaldaten des Aufrufers  , Bytezugriff,  Zugriffsadresse:      0
Angeforderter OB: Programmierfehler-OB (OB 121)
Prioritätsklasse:  1
interner Fehler, kommendes Ereignis
13:14:26.320  22.10.2020
(Kodierung: 16# 2522  0179  0017  0000  0000  0000)


Ereignis 5 von 10:  Ereignis-ID 16# 2522
Bereichslängenfehler beim Lesen 
Lokaldaten des Aufrufers  , Bytezugriff,  Zugriffsadresse:      0
Angeforderter OB: Programmierfehler-OB (OB 121)
Prioritätsklasse:  1
interner Fehler, kommendes Ereignis
13:14:11.552  22.10.2020
(Kodierung: 16# 2522  0179  0017  0000  0000  0000)


Ereignis 6 von 10:  Ereignis-ID 16# 2522
Bereichslängenfehler beim Lesen 
Lokaldaten des Aufrufers  , Bytezugriff,  Zugriffsadresse:      0
Angeforderter OB: Programmierfehler-OB (OB 121)
Prioritätsklasse:  1
interner Fehler, kommendes Ereignis
13:13:53.925  22.10.2020
(Kodierung: 16# 2522  0179  0017  0000  0000  0000)


Ereignis 7 von 10:  Ereignis-ID 16# 2522
Bereichslängenfehler beim Lesen 
Lokaldaten des Aufrufers  , Bytezugriff,  Zugriffsadresse:      0
Angeforderter OB: Programmierfehler-OB (OB 121)
Prioritätsklasse:  1
interner Fehler, kommendes Ereignis
13:13:38.631  22.10.2020
(Kodierung: 16# 2522  0179  0017  0000  0000  0000)


Ereignis 8 von 10:  Ereignis-ID 16# 2522
Bereichslängenfehler beim Lesen 
Lokaldaten des Aufrufers  , Bytezugriff,  Zugriffsadresse:      0
Angeforderter OB: Programmierfehler-OB (OB 121)
Prioritätsklasse:  1
interner Fehler, kommendes Ereignis
13:13:22.689  22.10.2020
(Kodierung: 16# 2522  0179  0017  0000  0000  0000)


Ereignis 9 von 10:  Ereignis-ID 16# 2522
Bereichslängenfehler beim Lesen 
Lokaldaten des Aufrufers  , Bytezugriff,  Zugriffsadresse:      0
Angeforderter OB: Programmierfehler-OB (OB 121)
Prioritätsklasse:  1
interner Fehler, kommendes Ereignis
13:13:04.447  22.10.2020
(Kodierung: 16# 2522  0179  0017  0000  0000  0000)


Ereignis 10 von 10:  Ereignis-ID 16# 2522
Bereichslängenfehler beim Lesen 
Lokaldaten des Aufrufers  , Bytezugriff,  Zugriffsadresse:      0
Angeforderter OB: Programmierfehler-OB (OB 121)
Prioritätsklasse:  1
interner Fehler, kommendes Ereignis
13:12:49.152  22.10.2020
(Kodierung: 16# 2522  0179  0017  0000  0000  0000)
 
Wenn es an der Anlage möglich ist, also keine Probleme bereitet oder nur ein Testaufbau ist,
dann lösche online auf der CPU den OB121.

Dann geht die CPU in STOP und du kannst in der Diagnoseanzeige direkt an die Zeile CODE springen, wo der Fehler aufgetreten ist.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
"Bereichslängenfehler bzw. Zugriffsfehler auf Lokaldaten des Aufrufers, Bytezugriff, Zugriffsadresse: 0" bedeutet versuchter Zugriff auf LB0 des aufrufenden Bausteins. Das kann meines Wissens nur in OB passieren, weil die von keinen Bausteinen aufgerufen werden, wo es also keine Vorgänger-Lokaldaten gibt.
Suche mal in OB, ob es indirekte Adressierung mit AR1 oder AR2 gibt und Bereichskennung 16#87...

Hat das vielleicht etwas zu tun mit Deinem Versuch, die Lokaldaten des OB82 in einen DB zu kopieren?

Harald
 
Zuletzt bearbeitet:
Lade in eine Variable verschiedene Werte
Vor jeden bausteinaufruf einen andern Wert 1,2,3 etc.
Dann im OB121 Lade die variable und schiebe in eine freie variable rein. Dann kannst online sehen, wo der fehler im Programm Auftritt.
Daran erkennt man ob es immer die gleiche Stelle Probeleme macht oder unterschiedliche.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
balkanaz,

hast du das Programm denn mal in den Simulator geladen? Tritt dort der Fehler auch auf?

Eventuell hilft es, das Programm einmal komplett zu übersetzen. Dadurch wird auch der Lokaldatenstack reorganisiert. Vorher würde ich dennoch versuchen, die Fehlerstelle zu finden. Gewöhnlich wird bei diesem Fehler im Diagnosepuffer eine Bausteinadresse angezeigt, in deinem Fall aber offensichtlich nicht.
 
Die Fehlerstelle wird nur bei S7-400 mitgeliefert, nicht bei S7-300.

"Prioritätsklasse: 1" - die Fehlerstelle sollte m.E. im OB1 sein.

Harald
 
Wenn es an der Anlage möglich ist, also keine Probleme bereitet oder nur ein Testaufbau ist,
dann lösche online auf der CPU den OB121.

Dann geht die CPU in STOP und du kannst in der Diagnoseanzeige direkt an die Zeile CODE springen, wo der Fehler aufgetreten ist.


Ich habe das heute probiert, jedoch geht die CPU nicht in Stop.
Die CPU hab ich dann manuell gestoppt und habe versucht, direkt in die Zeile zu springen.
Jedoch passiert auch da nichts.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
"Bereichslängenfehler bzw. Zugriffsfehler auf Lokaldaten des Aufrufers, Bytezugriff, Zugriffsadresse: 0" bedeutet versuchter Zugriff auf LB0 des aufrufenden Bausteins. Das kann meines Wissens nur in OB passieren, weil die von keinen Bausteinen aufgerufen werden, wo es also keine Vorgänger-Lokaldaten gibt.
Suche mal in OB, ob es indirekte Adressierung mit AR1 oder AR2 gibt und Bereichskennung 16#87...

Hat das vielleicht etwas zu tun mit Deinem Versuch, die Lokaldaten des OB82 in einen DB zu kopieren?

Harald


Bis auf den OB1 sind alle leer. Und im OB1 wird nichts indirekt adressiert.
 
Kannst Du uns zeigen wie der OB1 aussieht?

Hast Du mal dieses Vorgehen ausprobiert?
Lade in eine Variable verschiedene Werte
Vor jeden bausteinaufruf einen andern Wert 1,2,3 etc.
Dann im OB121 Lade die variable und schiebe in eine freie variable rein. Dann kannst online sehen, wo der fehler im Programm Auftritt.
Daran erkennt man ob es immer die gleiche Stelle Probeleme macht oder unterschiedliche.

Hast Du auch den Siemens Support kontaktiert?

Harald
 
Zurück
Oben