Step 7 Bereichslängenfehler beim Lesen

ChristianRohr

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

der Fehler wurde bestimmt schon oft hier gepostet und es gab auch schon diverse Lösungsansätze, ich bräuchte dennoch mal euer Schwarmwissen:
Diagnosepuffer der Baugruppe CPU 319-3 PN/DP

Bestell-Nr./ Bezeichn. Komponente Ausgabestand
6ES7 318-3EL00-0AB0 Hardware 9
- - - Firmware V 2.7.2
Boot Loader Firmware-Erweiterung A 10.3.3

Baugruppenträger: 0
Steckplatz: 2


Seriennummer: S C-X4V668552009


Ereignis 1 von 10: Ereignis-ID 16# 2522
Bereichslängenfehler beim Lesen
Global -DB ,Bitzugriff, Zugriffsadresse: 289
Angeforderter OB: Programmierfehler-OB (OB 121)
Prioritätsklasse: 1
interner Fehler, kommendes Ereignis
14:16:06.921 16.09.2022
(Kodierung: 16# 2522 0179 0004 0121 0000 0000)


Ereignis 2 von 10: Ereignis-ID 16# 2522
Bereichslängenfehler beim Lesen
Global -DB ,Bitzugriff, Zugriffsadresse: 288
Angeforderter OB: Programmierfehler-OB (OB 121)
Prioritätsklasse: 1
interner Fehler, kommendes Ereignis
14:16:06.921 16.09.2022
(Kodierung: 16# 2522 0179 0004 0120 0000 0000)


Ereignis 3 von 10: Ereignis-ID 16# 2522
Bereichslängenfehler beim Lesen
Global -DB ,Bitzugriff, Zugriffsadresse: 287
Angeforderter OB: Programmierfehler-OB (OB 121)
Prioritätsklasse: 1
interner Fehler, kommendes Ereignis
14:16:06.921 16.09.2022
(Kodierung: 16# 2522 0179 0004 011F 0000 0000)


Ereignis 4 von 10: Ereignis-ID 16# 2522
Bereichslängenfehler beim Lesen
Global -DB ,Bitzugriff, Zugriffsadresse: 286
Angeforderter OB: Programmierfehler-OB (OB 121)
Prioritätsklasse: 1
interner Fehler, kommendes Ereignis
14:16:06.921 16.09.2022
(Kodierung: 16# 2522 0179 0004 011E 0000 0000)


Ereignis 5 von 10: Ereignis-ID 16# 2522
Bereichslängenfehler beim Lesen
Global -DB ,Bitzugriff, Zugriffsadresse: 285
Angeforderter OB: Programmierfehler-OB (OB 121)
Prioritätsklasse: 1
interner Fehler, kommendes Ereignis
14:16:06.921 16.09.2022
(Kodierung: 16# 2522 0179 0004 011D 0000 0000)


Ereignis 6 von 10: Ereignis-ID 16# 2522
Bereichslängenfehler beim Lesen
Global -DB ,Bitzugriff, Zugriffsadresse: 284
Angeforderter OB: Programmierfehler-OB (OB 121)
Prioritätsklasse: 1
interner Fehler, kommendes Ereignis
14:16:06.921 16.09.2022
(Kodierung: 16# 2522 0179 0004 011C 0000 0000)


Ereignis 7 von 10: Ereignis-ID 16# 2522
Bereichslängenfehler beim Lesen
Global -DB ,Bitzugriff, Zugriffsadresse: 283
Angeforderter OB: Programmierfehler-OB (OB 121)
Prioritätsklasse: 1
interner Fehler, kommendes Ereignis
14:16:06.921 16.09.2022
(Kodierung: 16# 2522 0179 0004 011B 0000 0000)


Ereignis 8 von 10: Ereignis-ID 16# 2522
Bereichslängenfehler beim Lesen
Global -DB ,Bitzugriff, Zugriffsadresse: 282
Angeforderter OB: Programmierfehler-OB (OB 121)
Prioritätsklasse: 1
interner Fehler, kommendes Ereignis
14:16:06.921 16.09.2022
(Kodierung: 16# 2522 0179 0004 011A 0000 0000)


Ereignis 9 von 10: Ereignis-ID 16# 2522
Bereichslängenfehler beim Lesen
Global -DB ,Bitzugriff, Zugriffsadresse: 281
Angeforderter OB: Programmierfehler-OB (OB 121)
Prioritätsklasse: 1
interner Fehler, kommendes Ereignis
14:16:06.921 16.09.2022
(Kodierung: 16# 2522 0179 0004 0119 0000 0000)


Ereignis 10 von 10: Ereignis-ID 16# 2522
Bereichslängenfehler beim Lesen
Global -DB ,Bitzugriff, Zugriffsadresse: 280
Angeforderter OB: Programmierfehler-OB (OB 121)
Prioritätsklasse: 1
interner Fehler, kommendes Ereignis
14:16:06.921 16.09.2022
(Kodierung: 16# 2522 0179 0004 0118 0000 0000)

Gibt es eine Möglichkeit den Fehler raus zu bekommen, ohne den OB121 Online zu löchen? kann man rausbekommen von welchem Global DB hier die Rede ist?
Ich interpretiere das so, das die SPS auf etwas lesen will oder zugreifen will, was es nicht gibt oder?

Danke für eure Unterstützung
 
Du kannst in OB121 die aktive DB nummer in ein Zwischenspeicher kopieren.
Z.B:
Code:
L DBNO
T MW30

L DINO
T MW32

Das es immer wieder die nächste Byte Addresse der aufgerufen wird, scheint es mir es ist eine Schleife mit Indexierter Addresierung der nicht korrekt beendet wird.
 
Deine Programmbearbeitung wird wegen dem Lesefehler vom OB121 unterbrochen. Im OB121 kannst du mittels DINO den zuletzt geöffneten DB auslesen.

Aus der Hilfe:
Format

L DINO

Beschreibung

L DINO (Lade die Nummer des Instanz-Datenbausteins) lädt die Nummer des geöffneten Instanz-Datenbausteins in AKKU 1, nachdem zuvor der Inhalt von AKKU 1 in AKKU 2 gespeichert wurde.
 
DBNO ist die zuletzt geöffnete Shared DB.
DINO ist die zuletzt geöffnete Instanz DB.
In die Diagnosepuffer steht es die Fehler ist für die Zugriff auf ein Shared DB ('Global-DB' auf deutsch).

Einfach die AWL Zeilen eintippen, nur die Adresse für die Zwischenspeicher musst du anpassen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Irgendwie habe ich im Hinterkopf, daß bei (alten?) S7-300 beim Aufruf des OB121 die DB-Register (DBNO und DINO) 0 sind. Es könnte sein, daß man den beim Problemcode geöffneten DB so nicht ermitteln kann.

Gibt es eine Möglichkeit den Fehler raus zu bekommen, ohne den OB121 Online zu löchen? kann man rausbekommen von welchem Global DB hier die Rede ist?
Vielleicht hast Du Glück und kannst das Problem mit PLCSIM nachstellen?

In der Online-CPU könntest Du im OB1 am Anfang und in der Mitte einen Wert in ein Merkerwort schreiben (z.B. 1 und 2), und im OB121 den Wert dieses Merkerwortes auf ein zweites Merkerwort kopieren, und siehst dann ob die problematische Programmstelle vor oder hinter der Mitte liegt. Dann in der Mitte der betreffenden Programmhälfte wieder einen Wert schreiben (z.B. 3), und auf die Art durch fortlaufendes halbieren des restlichen betreffenden Programms schon mal den Baustein finden wo der fehlerhafte DB-Zugriff stattfindet. Eventuell liegt das Problem auch in anderen OB-Ebenen, wie OB3x, OB4x oder anderen Alarm-OB ?

Oder mit Intuition oder Glück könntest Du Dir alle Programmstellen mit indirekter Adressierung anschauen.

Sind weitere Fehler z.B. Hardware-Baugruppen oder Kommunikation ausgefallen? Dann suche mal da, wo auf die Baugruppen/Kommunikation zugegriffen wird. Vielleicht wird da mit unerwarteten nicht geprüften Werten gearbeitet.

Harald
 
Zuletzt bearbeitet:
Verträgt die Anlage einen CPU-Stop? Wenn ja, dann voranmelden dass du Tests durchführst, OB121 online löschen und schauen wo das Program abschmiert
 
Wenn kein STOP per OB121 entfernen möglich ist und das auslesen mit DBNO / DINO keine Erkenntnisse bringt, dann würde ich das Programm mal in eine PLCSIM Instanz laden. Der Fehler muss dort nicht unbedingt auftreten aber vielleicht hast du ja Glück.
 
Ich habe hier eine ET200S CPU, da funktioniert das mit dem DBNO/DINO auch nicht (immer Null).

Wenn der OB121 nicht vorhanden ist, dann werden auch die in der Kodierung mit 0000 0000 vorhandenen Felder mit Werten gefüllt, um zu sehen wo der Fehler auftrat. Dann wird auch "Gehe zu" aktiviert.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe gerade kein PG hier aber ich meine in der Hilfe des OB121 ist auch ein Vermerk drin, dass bestimmte Werte auf der 300'er nur 0 liefern und nur auf der 400'er funktionieren. Vielleicht kann ja jemand der gerade Step7 zur Hand hat mal reinschauen und einen Screenshot machen.
 
OB121_BLK_TYPE, OB121_BLK_NUM und OB121_PRG_ADDR liefern bei S7-300 keine gültigen Werte, von DB/DI Nummern steht dort nichts.
Die Daten hinter "Kodierung" im Diagnosepuffer sind identisch mit dem Lokaldatenstack im OB121. Wenn der OB121 nicht vorhanden ist und die SPS in Stopp geht, stehen dort gültige Werte.
 
Zurück
Oben