Datenbaustein vorhanden?

shoopmann

Level-1
Beiträge
8
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo :rolleyes:

Folgendes Problem:
Wenn ich prüfen möchte, ob ein DB vorhanden ist, mache ich das bisher indem ich den DB öffne.

L #DBWNo
T MW 20
AUF DB [MW 20]


L #DBNO
L 0
==D
SPB m002
m002: L 111
T #ANZ
CLR
SAVE
BEA


Das funktioniert aber nicht. :confused: Denn immer wenn ich einen nicht vorhandenen DB öffne, geht die CPU sofort in den STOP-Zustand und überprüft gar nicht erst.
Wie kann man das Problem umgehen oder mit welchem Fehler-OB kann ich das abfangen?

Danke
 
hi,
dafür gibt ne SFC "TEST_DB".
Hab die Nummer grad nicht im Kopf.

Müsste aber in den 20ern liegen.

Micha
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo :rolleyes:

Folgendes Problem:
Wenn ich prüfen möchte, ob ein DB vorhanden ist, mache ich das bisher indem ich den DB öffne.

Das funktioniert aber nicht. :confused: Denn immer wenn ich einen nicht vorhandenen DB öffne, geht die CPU sofort in den STOP-Zustand und überprüft gar nicht erst.
Wie kann man das Problem umgehen oder mit welchem Fehler-OB kann ich das abfangen?

Danke

Der fehlende FehlerOB wird dir im Diagnosespeicher der CPU angezeigt. Aber wie hast du das den "früher" gemacht ? Soweit ich mich erinnern kann geht die CPU immer in Stop wenn ein DB fehlt und der entsprechende OB nicht vorhanden ist.
 
Darum warst Du schneller SPSKILLER,
ich hatte auch nur den Namen im Kopf.

Es ist der SFC 24

Shoopmann,
da fragst Du den Ret_Val auf Null ab.
Null kein Fehler und DB vorhanden.
Ungleich Null > BEB
 
"früher" hab ich das nur von der tafel von meinem prof gelernt.
also noch nie wirklich lauffähig programmiert.
vielen dank, hat sich damit ja geklärt :)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Zum Beispiel

Habe das im OB100 so drinnen stehen.Prüfe damit welche Steuerung ich verwende.

Code:
 CALL  "TEST_DB"                   // RCDB vorhanden prüfen
 DB_NUMBER :=W#16#1               // DB1  
 RET_VAL   :=#_RET_VAL           
 DB_LENGTH :=#_DB_Length         
 WRITE_PROT:=#_dummy                  
 L     W#16#80B1                   // 80B1 = DB nicht im AG
 L     #_RET_VAL
==I
=  Selektion B    // Merker
 
Zurück
Oben