Step 7 Hilfe zu Zeitschaltuhr und Programm entschlüsseln

Wlago

Level-1
Beiträge
4
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen bin neu hier und hab ein Problem.
Habe schon mit S7 zu tun gehabt und habe das Programm von jemanden bekommen und hab ein Problem es zu verstehen.

Das Programm ist ein Ausschnitt aus einer Wochenschaltuhr

U(
L DB1.DBB 35
L W#16#F
UW
T "MW 540"
SET
SAVE
CLR
U BIE
)
SPBNB _002
L "MW 540"
BTI
T "DB_PARA_SU_PT".WOCHENTAG_IST
_002: NOP 0

Jetzt meine Frage. Die Befehle SET und SAVE werden durch das CLR unwirksam gemacht oder? Die Sprungbedingung wird eigentlich immer ausgelöst
oder verstehe ich da was falsch.

Bitte um Hilfe und Danke!!!!
 
Hallo

Ich bin ja kein AWL Profi aber FUP umschalten bekomme ich noch hin.

Das mit dem SET SAVE CLR soltes Du dir noch einmal durchlesen.

Unbenannt2.png

MfG Jan
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

ja habe es auch versucht aber bei mir will der Simatic das nicht umschalten. Hab ich da irgendwelche Einstellungen falsch?
Danke schon einmal für die Hilfe.
 
Das sieht in FUP viel einfacher aus.

Mit

SET
SAVE
CLR
U BIE

Kann man die Funktionen hintereinanderschalten. Außerdem dagt es aus, dass die vorhergehende Funktion ohne Fehler bis zum Ende durchgelaufen ist. (Was in der gezeigten Funktion aber eher immer der Fall ist)



Screenshot 2018-08-07 um 07.06.46.png

Der Code macht nichts anderes, als im Byte DB1.DBB 35 die 4 rechten Bits (F hex = 00001111 bin) zu erhalten, die 4 linken Bits zu löschen (nennt man ausmaskieren).
Danach werden dies Bits, die in den Rechten 4 Bits standen nach
"DB_PARA_SU_PT".WOCHENTAG_IST übertragen.

Bsp:

0100 1001 steht in
DB1.DBB 35

nach UW F

steht in MW540 (Schmiermerkerwort) 0000 10001

Das wird MW540 noch von BCD zu Int gewandelt und dann in
"DB_PARA_SU_PT".WOCHENTAG_IST geschrieben.

Das Wandeln muß passiert, weil das Datum in dieser Form vorher in den DB1 geschrieben wurde, wahrscheinlich von einer Siemens -Standardfunktion, die es extra dafür gibt.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
ok verstanden. Ich kann es leider immer noch nicht umwandeln aber muss ich dann noch mal schauen.
Jetzt eine andere Frage. Ich habe im Programm die Umwandlung der Zeit und des Wochentages und die Uhrzeit wird
von einer VISU geholt aber die Zeit an der VISU ist ok aber in der SPS geht die Uhr 2 Stunden zurück. Kann dies an der UDT+2 liegen?

So habe den Fehler gefunden warum es sich nicht wandeln lässt.
DB1.DBB35 lässt sich nicht wandeln weil er bei mir ein WORD haben will und Byte nicht im FUP nimmt.
 
Zuletzt bearbeitet:
Was für eine CPU?
1500?
rd_sys_t liest die zeit der cpu als utc-zeit.
rd_loc_t liest die lokale zeit. diese ist abhängig davon welche zeitzone in der cpu eingestellt ist. findest du unter geräteeinstellungen/uhrzeit

woher bekommt die cpu ihre zeit?
ntp?
bei 300er hast du dann in der cpu immer utc.
 
Zurück
Oben