Systemuhr -Datum und Uhrzeit zusammen

Boo

Level-1
Beiträge
4
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi!
Habe über SFC "read clock" in Datum und Uhrzeit getrennt .Ich kann auch von TP170B die Systemuhr einstellen .Ich brauche für den Bereichszeiger SPS S7 Systemuhr ein Wort mit der zusammenfassung von Datum und Uhrzeit.Wie kann man die Beiden zusammen tun?


Vielen Dank in vorraus!
 
Ich meine Wie kann die Syncronisierung Datum/Uhrzeit zwischen Tp 170b und die cpu s7 gemacht werden ?In Bereichszeiger von Protool für Datum/Uhrzeit SPS muss ein Wort eingegeben werden mit den Format Date _and_Time .Wie kan man dieses Wort erstellen ?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

- Datum + Uhrzeit liegen immer im OB1 bereit
(temp. Variable #OB1_DATE_TIME)

- Lege in einem Datenbaustein deiner Wahl eine Variable vom Typ Date_And_Time an (z.B. SystemZeit).

- Kopiere von OB 1 aus mit SFC20 die
temporäre Variable #OB1_DATE_TIME.

Beispiel :
Dein DB ist DB2,
die vom Typ Date_And_Time definierte Variable ist "Systemzeit"

Code:
       CALL  "BLKMOV"                     // SFC20 Aufruf
       SRCBLK :=#OB1_DATE_TIME          
       RET_VAL:=MW222                   
       DSTBLK :=DB2.SystemZeit
Nach Ausführung hast du im DB2 an der Stelle "SystemZeit"
die aktuelle CPU-Zeit (Datum + Uhrzeit).

Zum Beobachten (prüfen) machst du eine VAT und beobachtest
die Bytes der Variablen "Systemzeit"

DB2.DBB x .........(Jahr)
DB2.DBB x+1 ..... (Monat)
DB2.DBB x+2 ..... (Tag)
DB2.DBB x+3...... (Stunde)
DB2.DBB x+4...... (Minute)
DB2.DBB x+5...... (Sekunde)
DB2.DBB x+6...... (Millisekunde)
DB2.DBB x+7...... (niederwertige Stelle = tausendstel Sek., höherwertige Stelle = Wochentag)
Insgesamt 8 Byte, x = Anfang deiner Variable (SystemZeit) im DB2

------------------------

Zum Synchronisieren der Zeit zwischen OP und CPU
mußt du Aufträge anstoßen, also als Bereichszeiger Auftragsfach definieren!

Über Auftrag Nr. 40 wird dem OP mitgeteilt, seine aktuelle Zeit in den
Bereichszeiger Datum/Uhrzeit_HMI zu schreiben.
Nach anstoßen des Auftrages solltest du die Zeit aus dem Bereichszeiger
als neue SPS-Zeit mit SFC 0 (Systemzeit setzten) übernehmen.

Auftrag 40 = DatumUhrzeit nach CPU (Format Date_And_Time)
Auftrag 41 = Datum/Uhrzeit nach SPS (Format "OP / MP" --> ALt !)
Wobei für dich (TP170b) Auftrag 40 in Frage kommt.

Soll das OP/TP immer die CPU Zeit anzeigen,
dann brauchst du kein Auftrag anzustoßen,
sondern den Bereichszeiger Datum/Uhrzeit_SPS dafür zu definieren,
dieser Bereichszeiger schaut dann im obigen Beispiel auf DB2.x.
Die aktualisierungszeit aber groß wählen (1 Stunde oder so)
 
Hi!
Danke für das Antwort,

SFC 20 "BLKMOV" lässt sich nicht in das OB1 einfügen.Arbeite mit CPU313C-2DP ,ist in ein Profibus vernetzt mit TP170B color zusammen .Die Zerlegung von Systemuhr habe mit SFC1 "read clock" erledigt.

Ciao
 
Hi!
SFC 20 "BLKMOV" lässt sich nicht in das OB1 einfügen......
:shock:

was meinst du mit "einfügen" ??
Ich glaube du hast einfach den Code hier eingefügt, da du die Symbolik aber nicht hast, wird der Aufruf vor Scham rot :ROFLMAO:

schreibe in einem Netzwerk einfach

CALL SFC20

Der Baustein wird aus der Bibliothek in dein Bausteinordner kopiert und das Symbol "BLKMOV" wird dann automatisch in deine Symbolik übernommen
-------
Die Uhrzeit brauchst du doch gar nicht mit SFC1 zu extrahieren,
alles was du brauchst steht in den lokal Daten des OB1 zur verfügung,
oder habe ich da was falsch verstanden ????
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Entschuldige !
mit SFC 20 hat sich erledigt .Es war ein Versuch mit der Einstellung in FUP.
Mit der Zerlegung von Varabel "SystemZeit" klappt auch gut lässt sich über DB2.DBBx in eine Varabeltabele beobachten.Muss noch nur von BCD in I umwandeln werden bevor man damit arbeiten möchte .
Ich habe aber das TP nicht zu Hause und habe versucht mit Protool über RUNTIME den Berechszeiger Datum/Uhrzeit-SPS zu abrufen z.B DB2.DBW0 (6 Worte)und kann die Adresse nicht ausgelesen werden.Die CPU ist echt.


Ciao !
 
Zurück
Oben