Auswertung Diagnosepuffer

c.wehn

Level-2
Beiträge
609
Reaktionspunkte
47
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Community,

ich hab bei einer Anlage folgenden Fehler und möchte gerne wissen auf was genau sich die "Zugriffsadresse" bezieht.


Ereignis 3 von 120: Ereignis-ID 16# 2522
Bereichslängenfehler beim Lesen
Global -DB, Doppelwortzugriff,
FC-Nummer: 11
Bausteinadresse: 2994
Angeforderter OB: Programmierfehler-OB (OB 121)
Prioritätsklasse: 1
interner Fehler, kommendes Ereignis
07:50:49.839 01.03.2004


Könnt ihr mir da weiterhelfen?

Mfg Chrissi
 
Ereignis 1 von 120: Ereignis-ID 16# 2522
Bereichslängenfehler beim Lesen
Global -DB, Doppelwortzugriff, Zugriffsadresse: 216
FC-Nummer: 11
Bausteinadresse: 2994
Angeforderter OB: Programmierfehler-OB (OB 121)
Prioritätsklasse: 1
interner Fehler, kommendes Ereignis
07:50:49.849 01.03.2004


Sorry, der hat das irgendwie verschluckt
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also ich kann beim FC11 nur den DB10 als Aufruf erkennen und der geht bis zur DBD 220.

Der DB ist natürlich in der SPS die Anlage läuft auch schon seit Ewigkeiten, ich habe sie selbst nicht programmiert.
 
Hast du denn mal auf "Baustein öffnen" gedrückt?
Auf welchem Befehl im FC11 steht denn dann der Cursor?
Willst du uns mal das Projekt oder wenigstens den FC11 zeigen?

Grüße von HaDi
 
U.U. ist durch einen Sprung (Anwahl des DB10 wurde umsprungen oder auf einen anderen DB wurde zugegriffen) noch ein anderer Global-DB offen, der kürzer ist!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hab den FC11 der wie Ralle schon vermutet hat erstmal von indirekter Adressierung auf indirekte umgeschrieben dann hab ich noch gemerkt das im RET_VAT von den Scale Bausteinen eine überlappung im Merkerbereich da war.

Ich hab in dem FC11 der hauptsächlich sich mit Scale und Unscale beschäftigt noch einige falsche Datentypen im DB gefunden..

D.H Out: Int und im DB: Word....

Beim klicken von "Baustein öffnen" ist er "mal dahin-mal dahin" gesprungen.. vlt hab ich auch ein fehler gemacht. Kann ich nicht ausschließen aber ich bin mir keinem bewusst.

Der DB geht bis zum Bereich 220 d.h. das DBD 216 ist vorhanden.

Kann es was mit der falschen zuweisung von Datentypen zutun gehabt haben?
 
Kann es was mit der falschen zuweisung von Datentypen zutun gehabt haben?

Kommt darauf an, was genau man macht. Wenn man einfach Werte umspeichert, passier ja nichts, außer, daß man später vielleicht die Daten falsch interpretiert (negative DINT als DWORD gespeichert z.Bsp.). Wenn man aber diese Daten, dann z.Bsp. zur Berechnung einer Adresse nutzt, aknn das schon schief gehen.

Ich vermute wirklich eher einen Fehler bei der indirekten Adressierung und zwar zuerst beim falschen offenen globalen DB, wenn der gewünschte DB ja eigentlich lang genug ist.
 
Wie verhält sich es denn genau wenn ich z.b.

AUF DB10
L 15
T DB12.DBW12
L 4
T DBW1

ich so eine konstellation haben würde?

Ist nun der DB10 oder der DB 12 auf?

Was würde denn jetzt in welchem DB stehen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Anweisung
Code:
T DB12.DBW12
sind eigentlich 2 Anweisungen:
Code:
AUF DB12
T DBW12
Ab da ist der DB12 geöffnet und die 4 landet im DBW1 desw DB12.

Grüße von HaDi
 
Wie verhält sich es denn genau wenn ich z.b.

AUF DB10
L 15
T DB12.DBW12
L 4
T DBW1

ich so eine konstellation haben würde?

Ist nun der DB10 oder der DB 12 auf?

Was würde denn jetzt in welchem DB stehen?

Code:
AUF DB10               öffnet DB 10
L 15                                lädt 15dez in den Akku1
T DB12.DBW12                  öffnet DB12 und speichert 15dez in DBW12 des DB12
L 4                                  lädt 4dez
T DBW1                            speichert 4dez in DBW1 des DB12
PS: DBW 1 ist nicht gut, immer gerade Wordgrenzen einhalten!


PS2: :confused: Ich bekomm bald noch ne Macke mit diesem Scheiß Editor für Code in unserem Forum, gibts denn da kein Tab, wie bekommt mann denn die Blöcke uintereinander?
 
Zuletzt bearbeitet:
Krass dann wird mit der direkten Adressierung der Aufruf vom DB10 geschlossen und unter der direkten Adressierungen berufen sich alle indirekten Adressierungen auf den Aufruf des DB's der direkten Adressierung?

Das ist ja brandgefährlich für unwissende.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Krass dann wird mit der direkten Adressierung der Aufruf vom DB10 geschlossen und unter der direkten Adressierungen berufen sich alle indirekten Adressierungen auf den Aufruf des DB's der direkten Adressierung?

Das ist ja brandgefährlich für unwissende.

Korrekt! Immer der letzte angesprochene DB ist in diesem Falle offen!
 
Ralle, das diese Anlage hier funktioniert ist mir ein Rätsel.

Im OB1 sind einfach mal drei Aufrufe von DB's untereinander....

NW1:
AUF DB50
NW2:
AUF DB51
NW3:
AUF DB52...

Es wird mit einem M0.0 gearbeitet der nirgendswo auf 0 geschrieben wird.

Es wird in Bausteinen mit direkter und indirekter Adressierung durcheinander gearbeitet...

Krass.... ich bin soeben schokiert..
ich glaube hier habe ich viel nachzuarbeiten.
 
Ralle, das diese Anlage hier funktioniert ist mir ein Rätsel.

Im OB1 sind einfach mal drei Aufrufe von DB's untereinander....

NW1:
AUF DB50
NW2:
AUF DB51
NW3:
AUF DB52...

Es wird mit einem M0.0 gearbeitet der nirgendswo auf 0 geschrieben wird.

Es wird in Bausteinen mit direkter und indirekter Adressierung durcheinander gearbeitet...

Krass.... ich bin soeben schokiert..
ich glaube hier habe ich viel nachzuarbeiten.

Immer schön aufpassen und alles dokumentieren. Unbedingt vor und nach jedem Arbeitstag eine Sicherungskopie ziehen.
 
Zurück
Oben