Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Page 1 of 2 12 LastLast
Results 1 to 10 of 11

Thread: Uhrzeitsynchronisation OP -> CPU

  1. #1
    Join Date
    31.10.2003
    Posts
    268
    Danke
    23
    Erhielt 37 Danke für 31 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    ich habe folgendes Problem: Ich will die CPU-Zeit (CPU315) über ein OP 170B stellen. Bereichszeiger für Aufträge und für Datum/Zeit sind projektiert. Wie bekomme ich die Uhrzeit-Daten zum SFC 0? Ich habe es mit dem
    FC 3 versucht weiß aber nicht genau, wie die Daten im Bereichszeiger Datum/Uhrzeit belegt sind (Tag, Monat, Jahr, Stunde,...).
    Hat da jemand einen Lösungsansatz?
    Reply With Quote Reply With Quote Uhrzeitsynchronisation OP -> CPU  

  2. #2
    Join Date
    30.08.2003
    Posts
    2,235
    Danke
    31
    Erhielt 260 Danke für 230 Beiträge

    Default

    Hallo André,

    du kannst nen extra Button auf dem TP machen, den du nach dem Stellen drückst. Mit dem löst du in der SPS den AG-Auftrag 40 aus. Datum/Uhrzeit werden in Format DATE_AND_TIME übertragen. Mit diesen Daten aus dem Bereichszeiger fütterst du den SFC0.

    MfG
    André Räppel
    Reply With Quote Reply With Quote Uhrzeit  

  3. #3
    andre is offline Erfahrener Benutzer
    Themenstarter
    Join Date
    31.10.2003
    Posts
    268
    Danke
    23
    Erhielt 37 Danke für 31 Beiträge

    Default

    Das ging aber schnell
    Soweit ist es klar. Aber gib mal am SFC 0 die Datenadresse vom Bereichszeiger Datum/Uhrzeit ein, z.B.: DB1.DBW0, laut ProTool hat dieser eine Länge von 6 Worten. Das funktioniert nicht. Ich glaube, das Format Date_And_Time muß vorher erst mit dem FC 3 "D_TOD_DT" gebildet werden (steht so in der Online-Hilfe). Aber wieso muß ich das Format Date_And_Time erst bilden, obwohl es im Bereichszeiger des OP schon abgelegt ist? Da muß es noch irgendeinen Trick geben!

  4. #4
    Join Date
    30.08.2003
    Posts
    2,235
    Danke
    31
    Erhielt 260 Danke für 230 Beiträge

    Default

    Hallo,

    nein das musste nich. Deklariere im Bereichszeiger eine Variable im Format DATE_AND_TIME und 2 Reservewörter. Die DATE_AND_TIME kannste dann vom SFC0 symbolisch ansprechen. Wirst sehen das funzt. Is bissel mies beschrieben von Siemens.


    Code:
    Bereichszeiger.Datum_Zeit.SPS	DATE_AND_TIME	ausgelesene Systemzeit CPU	
    Bereichszeiger.Datum_Zeit.Res_1	INT	reserviert für System	
    Bereichszeiger.Datum_Zeit.Res_2	INT	reserviert für System
    MfG
    André Räppel
    Reply With Quote Reply With Quote Uhrzeit  

  5. #5
    andre is offline Erfahrener Benutzer
    Themenstarter
    Join Date
    31.10.2003
    Posts
    268
    Danke
    23
    Erhielt 37 Danke für 31 Beiträge

    Default

    Hallo,
    ja so sieht das schon ganz anders aus. Ich werde es in den nächsten Tagen ausprobieren und mich dann melden.
    Danke bis dahin!
    André

  6. #6
    andre is offline Erfahrener Benutzer
    Themenstarter
    Join Date
    31.10.2003
    Posts
    268
    Danke
    23
    Erhielt 37 Danke für 31 Beiträge

    Default

    Hallo,
    bin erst heute dazu gekommen, das Programm zu testen. Es funktioniert!
    Ich bin aber auf ein anderes Problem gestoßen. Ich löse das Ganze mit einem Tastendruck (F-Taste) am OP aus. Erst den Steuerungsauftrag 40 aktivieren und dann den SFC 0 ausführen. Muß zwischen Auftrag 40 und SFC0 eine "Denkpause" existieren oder kann beides hintereinander bearbeitet werden? Ich habe immer einen Versatz von einigen Sekunden zwischen OP-Zeit und CPU-Zeit (CPU-Zeit geht nach). Ich habe das Programm etwa so geschrieben:
    L DBx.DBXy.z (F-Taste OP)
    FP M 1.0
    S M 1.1
    UN M 1.1
    SPB M001
    R M 1.1
    L 40
    T DBx.DBW0 (Auftrag Nr. 40)
    CALL SFC 0
    .
    .
    .
    M001: NOP 0
    Wie gesagt, es funktioniert aber ich habe diesen Zeitversatz.
    Kann mir jemand einen Tip geben, der so etwas schon einmal realisiert hat?
    Gruß André

  7. #7
    andre is offline Erfahrener Benutzer
    Themenstarter
    Join Date
    31.10.2003
    Posts
    268
    Danke
    23
    Erhielt 37 Danke für 31 Beiträge

    Default

    So, ich habe noch etwas probiert und getestet. Der Auftrag 40 hat eine relativ lange Bearbeitungszeit. Wenn der Baustein SFC 0 gleich anschließend aufgerufen wird, liegen die Uhrzeitdaten vom OP noch garnicht vor. Ich habe dann mal mit einer Verzögerung experimentiert und festgestellt, das für eine sichere Synchronisation der Zeiten zwischen Auftrag 40 und SFC 0 etwa 2 Sekunden liegen sollten, sonst kann es sein, das man die Uhrzeit vom vorherigen Auftrag erwischt, die ja noch im Datenbaustein liegt. Möglicherweise spielt da auch der Basistakt des OP eine Rolle, wobei der bei mir auf 500 ms eingestellt ist.
    Ich frage mich, wie soll man da eine exakte Synchronisation zustande bringen? Es gibt ja Fälle, da muß es sekundengenau sein.

  8. #8
    Join Date
    30.08.2003
    Posts
    2,235
    Danke
    31
    Erhielt 260 Danke für 230 Beiträge

    Default

    Hallo André,

    lege dir einfach noch eine Variable im Format DATE_AND_TIME an und vergleiche diese mit der im Bereichszeiger. Wenn sie sich geändert hat dann ruf den SFC0 auf und speichere anschliessend die Zeit aus dem Bereichszeiger in der anderen Variablen ab.

    MfG
    André Räppel
    Reply With Quote Reply With Quote Uhrzeit  

  9. #9
    andre is offline Erfahrener Benutzer
    Themenstarter
    Join Date
    31.10.2003
    Posts
    268
    Danke
    23
    Erhielt 37 Danke für 31 Beiträge

    Default

    Das ging ja schnell!
    Ich habe festgestellt, das der Auftrag 40 vom OP eine "gewisse Zeit" braucht. Wenn er bearbeitet wird vergeht mitunter über eine Sekunde. Während dieser Zeit läuft ja die Uhr weiter und diese Zeit fehlt dann bei der Synchronisation. Man kann die Bearbeitungszeit relativ genau ermitteln, da der Auftrag selbständig wieder auf 0 gestzt wird wenn er erledigt ist. Und dabei habe ich das o.a. festgestellt.
    Trotzdem danke für Deinen Tip, so komme ich doch relativ genau an die Op-Zeit heran!

  10. #10
    Join Date
    18.03.2004
    Posts
    76
    Danke
    8
    Erhielt 6 Danke für 4 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hab auch schon an der Zeitsychronisation von PC und S7 rumgepröbelt und habe folgendes herausgefunden:

    Komischerweise kann man zwar auswerten, dass der Steuerungsauftrag abgeschlossen ist, bis die Zeit aber wirklich übertragen ist, vergeht nochmals eine gewisse Zeit.
    Irgendwo in einem Handbuch steht auch, dass eine Zeit von etwa 5s einzuhalten ist zwischen den Steuerungsaufträgen zur Zeitsynchronisation.

    Hat mich relativ viel Zeit gekostet, bis ich da mal drauf gekommen bin...

    Gruss

    Harry

Similar Threads

  1. Replies: 1
    Last Post: 08.09.2018, 10:18
  2. TIA Uhrzeitsynchronisation von 2 CPU 1215
    By werpak in forum Simatic
    Replies: 0
    Last Post: 30.06.2014, 16:04
  3. Step 7 Uhrzeitsynchronisation
    By oORichOo in forum Simatic
    Replies: 0
    Last Post: 27.01.2014, 20:49
  4. uhrzeitsynchronisation
    By ladychaos in forum HMI
    Replies: 2
    Last Post: 18.05.2011, 09:32
  5. Uhrzeitsynchronisation
    By elektrohippi in forum Simatic
    Replies: 1
    Last Post: 20.07.2009, 19:04

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •