Step 7 S5 nach S7 Compilerfehler DB0

Q-Treiber

Level-1
Beiträge
10
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Forum
ich habe ein S5-Programm in S7 konvertiert.
Einen vorhandenen DB0 mitsamt Aufruf habe ich auf einen anderen Datenbaustein geschrieben.
Jetzt geht die CPU bei Spannungswiederkehr in Stop.
In der Diagnose meldet der Compiler einen fehlerhaften Aufruf DB0 Adresse 0.

Ich habe aber keinen DB0 mehr in der Programmierung. Steht auch nichts mehr im Querverweis.
Wo kann man noch danach suchen bzw. woran kann es liegen??

Wenn ich danach den Betriebsartenschalter nach Stop und wieder auf Run stelle, startet die CPU

Ich bin gespannt auf eure Ideen
 
Welche S5 CPU?
Meinst Du, dass jetzt Deine S7 auf Stopp geht oder die alte S5?

In den S5'en die ich kenne ist der DB0 ein "Systembaustein" wo die Adressen aller Bausteine drinnensteht.
Wurde der DB0 in der S5 irgendwo Aufgerufen/verwendet? Doch eher nicht...
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Das klingt mir eher wie ein unqualifizierter Zugriff wie "L DBB0" ohne vorheriges "AUF DB...". Oder ein "AUF DB..." auf einen DB, der nicht vorhanden ist. Eventuell indirekt adressiert.

Du kannst versuchen, von dem Diagnosepuffereintrag zur fehlerhaften Programmstelle zu gehen. Oder kreise die Problemstelle ein: simuliere das Programm mit PLCSIM und deaktiviere alle Bausteinaufrufe und aktiviere sie schrittweise wieder bis der Fehler wieder auftaucht.

Bei weiteren Fragen nenne uns bitte den genauen kompletten Wortlaut des Diagnosepuffereintrags (der kann aus dem Baugruppenzustand aufs PG gespeichert werden).

Harald
 
Meine S7-314C hängt beim Anlauf im Stop. Die S5 war eine 115 -944
Der DB0 war im S5-Programm 1x aufgerufen. Den Aufruf und den DB0-Inhalt habe ich auf einen neu erstellten DB3 umgeschrieben
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Meine S7-314C hängt beim Anlauf im Stop. Die S5 war eine 115 -944
Der DB0 war im S5-Programm 1x aufgerufen. Den Aufruf und den DB0-Inhalt habe ich auf einen neu erstellten DB3 umgeschrieben

Stand da wirklich

AUF DB0?
Kann es sein, dass da davor ein Befehl- ähnlich wie:

B MWxy stand?

Also:
B MWxy
AUF DB0

Dieser Befehl öffnet nämlich in der S5 den Datenbaustein xy!
 
Ich habe gerade das alte Programm noch mal auf gemacht. Da steht tatsächlich so etwas.
LW =FEHL
T MW 200
LW =QUIT
T MW 202
LW =SPFE
T MW 204
LW =ANZ
T MW 206
LW =DB
T MW 208
L KF +0
T MW 210

B MW 208
A DB 0

im Aufruf des FB steht für =DB : KF+20

was kann mir das jetzt sagen?
 
Hier wird KF +20 in MW208 geladen.

Mit
Code:
[COLOR=#333333]B MW 208[/COLOR]
[COLOR=#333333]A DB 0[/COLOR]
wird jetzt DB 20 geöffnet
 
Der S5-S7 Wandler hatte daraus folgendes gemacht:
L #FEHL
T MW 200
L #QUIT
T MW 202
L #SPFE
T MW 204
L #ANZ
T MW 206
L #_B
T MW 208
L 0
T MW 210

L MW 208 // diese beiden Zeilen hatte ich geändert
AUF DB 20 // hätte ich vielleicht einfach lassen sollen

im Aufruf steht dann für #_B wieder 20

Der Umwandler hatte nämlich folgendes geschrieben:

L #FEHL
T MW 200
L #QUIT
T MW 202
L #SPFE
T MW 204
L #ANZ
T MW 206
L #_B
T MW 208
L 0
T MW 210

T #CONV_AKKU1
TAK
T #CONV_AKKU2
L STW
T #CONV_STW
L MB 209
T #CONV_INDEX
L #CONV_STW
T STW
L #CONV_AKKU2
L #CONV_AKKU1
AUF DB[#CONV_INDEX]

Da konnte ich nichts mit anfangen und habe gleich den wert 20 eingesetzt zum Bausteinaufruf.
Habe ich mir da irgendwie ins Knie geschossen?
 
Wenn der FB nur 1 mal aufgerufen wird geht auch ein direktes öffnen des db20.
aber dann macht der fb mit Parametern keinen sinn mehr. solltest du beim indirekten aufruf des db lassen.
 
Zurück
Oben