Datum und Zeit indirekt in Global DB speichern

alex_1704

Level-1
Beiträge
16
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Step7 v5.4 CPU 312c

Hallo, brauche mal wieder Hilfe.

Folgendes Problem :
Mit SFC1 kann man ja bekanntlich Datum und Uhrzeit auslesen und dann direkt in die Adresse eines bestimmten DB's auslesen.

Nun aber habe ich mit dem Befehl AUF #DB... einen Datenbaustein als Globaldatenbaustein festgelegt und möchte nun wieder auf die Adresse auslesen.

Jetzt kriege ich jedoch die Fehlermeldung: Stellen Sie sicher, dass ihr globaler DB richtig gesetzt ist.

Allerdings ist der DB richtig gesetzt, weil bei mir im Programm alle anderen Move Befehle auch an die Adressen richtig transferieren.

Hat jemand eine Lösung?:confused:
 
Step7 v5.4 CPU 312c

Hallo, brauche mal wieder Hilfe.

Folgendes Problem :
Mit SFC1 kann man ja bekanntlich Datum und Uhrzeit auslesen und dann direkt in die Adresse eines bestimmten DB's auslesen./schreiben?

Nun aber habe ich mit dem Befehl AUF #DB... einen Datenbaustein als Globaldatenbaustein festgelegt und möchte nun wieder auf die Adresse auslesen.

Jetzt kriege ich jedoch die Fehlermeldung: Stellen Sie sicher, dass ihr globaler DB richtig gesetzt ist.

Allerdings ist der DB richtig gesetzt, weil bei mir im Programm alle anderen Move Befehle auch an die Adressen richtig transferieren.

Hat jemand eine Lösung?:confused:

:confused: :(

Poste mal den Code anstatt das da oben.

pt
 
also mir ist nicht so wirklich klar was du machen willst.

hier mal 2 beispiele für das dt-handling

CALL SFC 20
SRCBLK :=#OB1_DATE_TIME
RET_VAL:=#retval
DSTBLK :="DB_System_HMI".AG_Date_Time //variable ist vom typ date_and_time


//cpuzeit stellen
U DB90.DBX 56.0
SPBNB _001
CALL SFC 0
PDT :="DB_System_HMI".AG_Soll_DT //variable ist vom typ date_and_time
RET_VAL:=#retval
_001: NOP 0
 
Also, man kann doch mit dem Befehl AUF DB[DB-Nummer] die Schreibweise der Addressierung verkürzen, damit man nicht immer die DB Nummer schreiben muss.

Beispiel:
Vorher

U #Datumauslesen
call SFC1
Ret_Val:=#FehlerUhr
CDT:=DB310.DBX172.0 //Variable ist vom Typ Date_Time

so funktioniert es, aber eigentlich möchte ich so auslesen:

Netz1:
AUF DB310

Netz2:
U #Datumauslesen
call SFC1
Ret_Val:=#FehlerUhr
CDT:=DBX172.0 //Variable ist vom Typ Date_Time

nur jetzt bleibt die Zeile rot und Fehlermeldung heißt, "Stellen Sie sicher, dass ihr globaler DB richtig gesetzt ist"
 
Also, man kann doch mit dem Befehl AUF DB[DB-Nummer] die Schreibweise der Addressierung verkürzen, damit man nicht immer die DB Nummer schreiben muss.

Beispiel:
Vorher

U #Datumauslesen
call SFC1
Ret_Val:=#FehlerUhr
CDT:=DB310.DBX172.0 //Variable ist vom Typ Date_Time

so funktioniert es, ....:


Das funktioniert doch auch nicht. Hast du mal in den DB geschaut, ob dort die Daten angekommen sind?
 
Zurück
Oben