CPU 315 Uhrzeit setzen

ssound1de

Level-2
Beiträge
351
Reaktionspunkte
27
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

bin schon total am verzweifeln.
Ich versuche mit dem SFC0 die CPU-Uhr zu stellen.
Dabei kommt z.B. folgendes raus ...
Vorgabe: 22.04.2005 / 11:24:04
Ergebnis: 22.04.2005 / 11:13:56
Die Differenz ist immer unterschiedlich groß.

Ich bekomme die korrekte Uhrzeit von einem OP270 im Format "S7 Date_And_Time" (BCD-Codiert) in einen DB-Bereich, den ich in eine lokale Variable kopiere, benannt als "#Datum_Uhrzeit".

Code:
Deklarationsbereich (temporäre Variable):
Name: Datum_Uhrzeit
Datentyp: Date_And_Time
Adresse: 0.0 - 7.7 (8 Byte)

      L     DB100.DBD   70
      T     LD     0
      L     DB100.DBD   74
      T     LD     4

Der Aufbau sieht wie folgt aus (Vorgabe: 22.04.2005 / 11:24:04) ...
LB 0 = 05 Jahr
LB 1 = 04 Monat
LB 2 = 22 Tag
LB 3 = 11 Stunde
LB 4 = 24 Minute
LB 5 = 04 Sekunde
LB 6 = 'Hunderter und Zehner' der Millisekunden
LB 7 = 'Einer' der Millisekunden / Wochentag (1-7)

Code:
Der SFC-Aufruf sieht wie folgt aus ...
      CALL  SFC    0
       PDT    :=#Datum_Uhrzeit
       RET_VAL:=MW254

Wie muss der Eingangsparameter "PDT" genau aufgebaut sein?
Was mache ich falsch?

Danke für Eure Hilfe im Voraus.

Grüsse,
Sam.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
wie hast Du das OP und die SPS synchronisiert? Wenn Du es mit Steuerungsaufträgen machst (hier glaube ich Auftrag 40), mußt Du zwischen den Aufträgen etwas Zeit lassen. Genaues kannst Du im Handbuch "Kommunikation für windowsbasierte Geräte" nachlesen.
Ich habe bei einer Zeitstellfunktion mit einem OP170B und einer 315-2DP den Datenbausteinbereich direkt an den PDT-Eingang des SFC geschaltet. Deklariert ist er als statische Variable und bearbeitet wird das ganze in einem FB. Es funktioniert einwandfrei!
 
ssound1de schrieb:
Hi,
Ich bekomme die korrekte Uhrzeit von einem OP270 im Format "S7 Date_And_Time" (BCD-Codiert) in einen DB-Bereich, den ich in eine lokale Variable kopiere, benannt als "#Datum_Uhrzeit".

Ich habe auch schon einige op270 projektiert und muss leider sagen, das die uhrzeit des op's schwer daneben läuft.
die cpu uhr läuft dagegen vom allerfeinsten.

ich nehme also die cpu zeit als masterzeit und stelle über einen steuerungsauftrag das op.

hat natürlich nicht direkt was mit deinem problem zu tun. :wink:
 
Habe eben die Lösung gefunden.

Ich hab im Handbuch etwas falsch gedeutet.
Ich dachte, der Steuerungsauftrag (Auftragsnummer) wird vom OP gelöscht, wenn der Auftrag erledigt ist.
Etwa so ...
  • Auftrag 40 an OP
    OP schreibt Uhrzeit in DB
    OP löscht Auftragsfach.
    SFC0 stellt Uhrzeit der CPU
Pustekuchen!!!

Das OP hat das Auftragsfach gelöscht, und erst kurz darauf die Uhrzeit in den DB geschrieben.
Dadurch wurde die CPU-Uhr immer mit den alten DB-Werten gefüttert.

@volker
Das mit der CPU Zeit ist OK. Werde ich auch so lösen.

Vielen Dank für Eure schnelle Hilfe.
Grüsse,
Sam.
 
Zurück
Oben