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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: c314 Systemzeit über Panel einstellen

  1. #1
    Registriert seit
    20.08.2009
    Beiträge
    137
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo

    möchte gerne die Systemzeit und Datum über das Panel einstellen, Wie kann ich das machen?
    gibt es eine Funtion? ich bitte um Hilfe

    DANKE

    Gruß
    Zitieren Zitieren c314 Systemzeit über Panel einstellen  

  2. #2
    Registriert seit
    08.04.2008
    Ort
    Köln
    Beiträge
    844
    Danke
    39
    Erhielt 244 Danke für 199 Beiträge

    Standard

    Hallo Chefren,

    suche mal mach SFC 0 "Set_CLK".

    Grüße
    Gebs

  3. #3
    Registriert seit
    20.08.2008
    Ort
    Ludwigsburg
    Beiträge
    26
    Danke
    0
    Erhielt 4 Danke für 4 Beiträge

  4. #4
    Registriert seit
    18.04.2005
    Ort
    Fast an der Schweiz
    Beiträge
    856
    Danke
    208
    Erhielt 108 Danke für 76 Beiträge

    Standard

    Ok der Link von meinem Vorschreiber der macht noch die Schaltuhr mit Findest Du auch unter Siemens HP.

    Der Richtige Weg wäre : https://support.automation.siemens.c...elled=&lang=de

    Das Synchronisiert noch beide (muss nicht zwingend ein 170Panel sein)

    Gruss Wälder
    Code:
     RTFM ! Read The F..ing Manual
    Arbeitet mit : Step7 V5.5 SPx / WinCC Flex 2008 SPx / Intouch / Winmod /TIA V14 (abgestürzt...Zitat der Hotline : "Sie dürfen nicht so viel rumdrücken....." TIA, so isses halt)

    ║▌║█║║▌║█║ Warnung! Falscher oder fehlender Kaffee - Benutzer angehalten --(◔̯◔)--
    1334566890111

  5. #5
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.302
    Danke
    932
    Erhielt 3.321 Danke für 2.683 Beiträge

    Standard

    Hallo Chefren,

    Das im Beitrag #4 verlinkte Siemens-Beispiel ist Siemens-typisch umständlich und funktioniert auch
    nur dann zuverlässig, wenn genau 1 OP an der SPS angeschlossen ist!

    Der Bediener stellt über Datum/Uhrzeit-Eingabefelder die Uhr des OP und drückt danach eine
    Schaltfläche "Uhrzeit zur SPS übertragen". Das setzt ein Bit in der SPS.
    Die SPS fragt daraufhin per Steuerungsauftrag 40 "Sagt mir mal jemand, wie spät es ist".
    Nun tragen ALLE OP, die einen Bereichszeiger für Steuerungsaufträge haben, ihre Uhrzeit in den
    Bereichzeiger Datum/Uhrzeit ein. Welches OP dabei das schnellste ist, kann man als Zufall bezeichnen.


    Hier nun meine simple Lösung, die mit beliebig vielen OP funktioniert.

    Zunächst die Datum/Uhrzeit-Übergabevariablen:
    Code:
    //DB101 "OP->PLC", ab DBB0:
    DateTimeSET         DATE_AND_TIME  DT#90-1-1-0:0:0.000  date and time for setting PLC-Clock
    
    //DB102 "PLC->OP", ab DBB0:
    AreaPointerDtPLC    STRUCT                              AreaPointer date/time PLC
    DateTimePLC         DATE_AND_TIME  DT#90-1-1-0:0:0.000  current PLC-date and -time
    Res_08              BYTE           B#16#0
    Res_09              BYTE           B#16#0
    Res_10              BYTE           B#16#0
    Res_11              BYTE           B#16#0
                        END_STRUCT
    Im OB1 die Uhrzeit der SPS zur Synchronisation der OP-Uhr(en) bereitstellen:
    (= OP-Bereichszeiger "Datum/Uhrzeit Steuerung")
    Code:
    //OB1
    //first cycle on stop->run
          L     #OB1_SCAN_1
          L     3                           //Scan 2-n of OB1
          <>I   
          =     "CYCLE1"                    //M0.2
    
    //copy current date and time to OP-areapointer (without "reserved" ms-bits)
          LAR1  P##OB1_DATE_TIME
          L     D [AR1,P#0.0]
          T     DB102.DBD    0              //"PLC->OP".DateTimePLC Byte 0-3
          L     D [AR1,P#4.0]
          UD    DW#16#FFFF0007              //demask Milliseconds
          T     DB102.DBD    4              //"PLC->OP".DateTimePLC Byte 4-7
    In WinCC flexible
    Bereichszeiger für OP-Uhrzeitsynchronisation anlegen:
    * Datum/Uhrzeit Steuerung | DB 102 DBW 0 | 6 Worte | zyklisch fortlaufend | 2 min

    Variable für stellen der SPS-Uhr anlegen:
    * DateTimeSET | Date and time | DB 101 DBB 0 | Auf Anforderung

    In irgendein Bild 2 Datum-Uhrzeit-Felder für Eingabe/Ausgabe der OP-Systemzeit einfügen.
    Hiermit kann ein Bediener die Uhr des OP verstellen (Datum und Uhrzeit getrennt).
    Dann noch eine Schaltfläche "Set PLC clock".
    Das Ereignis Klicken ruft das Script "Set_PLC_Clock" auf.
    Code:
    ' Set_PLC_Clock()
    ' This script will send the current date/time of this OP
    ' to the PLC (the clock master).
    ' The PLC will set his clock, when a valid date/time-value received.
    ' the "="-statement automatically convert to S7-DATE_AND_TIME-format!
    
    SmartTags("DateTimeSET") = Now
    In der SPS im OB1 oder einem anderen Baustein ein Netzwerk "set PLC-clock from OP":
    Code:
    The OP-user can set the clock of this PLC by sending the date/time.
    The special case "no date/time received" shoult not be: all Bytes zero
    -> the OP-Runtime will generate a System-ErrorMsg "...conversion error"
    Here we must use the S7-standard-"no date/time" = DT#90-1-1-0:0:0.000
    This is also the start-value, when the DB101 is new uploaded in the PLC.
    
          U     "CYCLE1"
          SPB   ISCL                        //initialize receive-date/time!
    
          L     DW#16#90010100              //DT#90-1-1-0(:0:0.000)
          L     DB101.DBD    0              //"OP->PLC".DateTimeSET Byte 0-3
          ==D   
          SPB   ESCL                        //no date received
          L     0
          ==D   
          SPB   ISCL                        //date not valid!
          L     DB101.DBD    4              //"OP->PLC".DateTimeSET Byte 4-7
          ==D   
          SPB   ISCL                        //time not valid!
          L     B#16#2                      // :0:0.000 + Monday
          ==D   
          SPB   ESCL                        //no time received
    
    //a date and time is received from OP, set the PLC-clock now
          CALL  "SET_CLK"                   //SFC0
           PDT    :="OP->PLC".DateTimeSET
           RET_VAL:="TempINT"
    
    //initialize receive-date/time with DT#90-1-1-0:0:0.000
    ISCL: L     DW#16#90010100              //DT#90-1-1-0(:0:0.000)
          T     DB101.DBD    0              //"OP->PLC".DateTimeSET Byte 0-3
          L     B#16#2                      // :0:0.000 + Monday
          T     DB101.DBD    4              //"OP->PLC".DateTimeSET Byte 4-7
    ESCL: NOP   0
    Der SPS-Code ist nur in AWL vernünftig programmierbar. Bitte nicht nach FUP fragen.

    Übrigens:
    Obwohl die OP-Variable "DateTimeSET" in keinem OP-Bild angezeigt wird und nur in dem Script
    geschrieben wird, liest die WCCflex-Runtime (2007) die Variable beim Aufbauen des Bildes mit
    der Schaltfläche "Set PLC clock" und nach dem Schreiben mit dem Script völlig unnötigerweise.
    (wer das erleben will, der braucht nur die Variable im DB101 mit alles 0 beschreiben).
    Nur-Schreiben-Variablen gibt es in WCCflex halt nicht.

    Harald

    Nachtrag:
    Im Anhang nun OB1, DB101 und DB102 als Step7-Projekt.
    Angehängte Dateien Angehängte Dateien
    Geändert von PN/DP (22.11.2010 um 17:33 Uhr) Grund: Step7-Projekt zugefügt
    Zitieren Zitieren Einfache Uhrzeitsynchronisation, für mehrere Panels geeignet  

  6. Folgende 2 Benutzer sagen Danke zu PN/DP für den nützlichen Beitrag:

    DELTA_JK (19.04.2017),SanjaDO (20.01.2014)

  7. #6
    Registriert seit
    18.04.2005
    Ort
    Fast an der Schweiz
    Beiträge
    856
    Danke
    208
    Erhielt 108 Danke für 76 Beiträge

    Standard

    Ähmm der #4 sollte lediglich als denkhilfe und anstoss gelten. Das der nicht optimal ist. Ich hab das Ding auch modifiziert auf max 4 Panels ausgelegt. Je nach Angeschlossenem Panel erkennt mein Baustein dann wo er was wohin tun soll.

    Wielleicht wäre auch Lektüre "Steuerungsauftrag" angebracht, da steht allerhand drin.

    Greetz Wäder
    Code:
     RTFM ! Read The F..ing Manual
    Arbeitet mit : Step7 V5.5 SPx / WinCC Flex 2008 SPx / Intouch / Winmod /TIA V14 (abgestürzt...Zitat der Hotline : "Sie dürfen nicht so viel rumdrücken....." TIA, so isses halt)

    ║▌║█║║▌║█║ Warnung! Falscher oder fehlender Kaffee - Benutzer angehalten --(◔̯◔)--
    1334566890111

  8. #7
    Registriert seit
    19.12.2006
    Beiträge
    185
    Danke
    25
    Erhielt 26 Danke für 21 Beiträge

    Standard

    @PN / DP:

    Kann es sein, das dein Programmbeispiel fehlerhaft ist?
    Wenn die Variable DateTimeSet im Script einmal "sauber" beschrieben wurde, wird SFC0 doch immer wieder mit der einmal gesetzten Zeit beschrieben. Die PLC Zeit bleibt also stehen !?!

    Wenn ich da falsch liege, bitte ich um Korrektur.

    Gruß
    Daniel

  9. #8
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.302
    Danke
    932
    Erhielt 3.321 Danke für 2.683 Beiträge

    Standard

    Hallo Daniel,

    in meinem Programmbeispiel im #5 kann ich keinen Fehler finden.
    Der vorgestellte Programmcode wird von mir mehrfach in der Praxis verwendet und
    hat sich bewährt.

    Nur wenn in der Variable "DateTimeSET" ein Datum ungleich DT#90-1-1-0:0:0.000
    steht, dann wird der SFC0 "SET_CLK" aufgerufen und sofort danach die Variable
    wieder mit DT#90-1-1-0:0:0.000 beschrieben (siehe Marke ISCL).

    Das WCCf-Skript Set_PLC_Clock() wird genau einmal aufgerufen.
    Das Panel schreibt seine Uhrzeit in die Variable "DateTimeSET".
    Die CPU stellt genau einmal seine Uhr und löscht das empfangene Datum wieder.

    Gruß Harald

  10. #9
    Registriert seit
    19.12.2006
    Beiträge
    185
    Danke
    25
    Erhielt 26 Danke für 21 Beiträge

    Standard

    Hallo Harald,

    o.k. habe den Wald vor lauter Bäumen nicht gesehen.

    Code:
    //a date and time is received from OP, set the PLC-clock now
          CALL  "SET_CLK"                   //SFC0
           PDT    :="OP->PLC".DateTimeSET
           RET_VAL:="TempINT"
    
    //initialize receive-date/time with DT#90-1-1-0:0:0.000
    ISCL: L     DW#16#90010100              //DT#90-1-1-0(:0:0.000)
          T     DB101.DBD    0              //"OP->PLC".DateTimeSET Byte 0-3
          L     B#16#2                      // :0:0.000 + Monday
          T     DB101.DBD    4              //"OP->PLC".DateTimeSET Byte 4-7
    Nach dem schreiben der Systemzeit wird die im Panel beschriebene Zeit ja wieder initialisiert.

    Danke für deine Erklärung!


    Gruß
    Daniel

  11. #10
    Registriert seit
    28.02.2006
    Ort
    Ostsee 5 min zum Strand
    Beiträge
    780
    Danke
    92
    Erhielt 110 Danke für 98 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Moin,

    ich müsste mich hier einmal kurz einklinken.
    Ich benutze dieses Uhrzeitsystem so, wie Harald es hier beschrieben hat, da es wirklich einfach und schlank ist.
    Mein Problem ist, dass sich die Systemuhr an einem MP377 sehr merkwürdig verhält.
    Sie läuft unruhig, sprich die Sekunden laufen mal 2 vor, dann spring er 1 zurück und wieder 3 vor usw.
    Es ist kein System zu erkennne. ich habe mir 2 E/A Felder Systemuhr und Systemdatum angelegt und den Button SetPLCClock so wie beschrieben.
    Zum beobachten der CPU Zeit noch einmal ein A-Feld der CPU Uhr und Datum.
    Stelle ich nun die Systemzeit (oder Datum) des Panels, schreibt er sofort die Uhrzeit (oder Datum) kurzzeitig in die CPU (ohne betätigen des Button SetPLC, direkt nach Enter der Eingabe)
    und springt dann wieder zurück. Die Systemzeit blinkt dann abwechselnd alte Uhrzeit neue Uhrzeit bis ich den Button SetPLCClock betätige,
    ist das so richtig? Mich stört halt, das die Uhr so unruhig läuft, was kann ich dagegen tun?
    Gruß von der Ostsee

    Nordischerjung
    _____________________

    Wenn man seinem Paßbild ähnlich zu sehen beginnt, sollte man schleunigst Urlaub machen. (Vico Torriani, schw. Entertainer)

    Ich habe eine Diät gemacht und fettem Essen und Alkohol abgeschworen - in zwei Wochen verlor ich 14 Tage. (Joe E. Lewis)

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 11.03.2010, 19:45
  2. Alarm über SMS C314
    Von chefren_new im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 21.09.2009, 13:47
  3. OP77B Systemzeit einstellen
    Von GeroldT im Forum HMI
    Antworten: 6
    Letzter Beitrag: 21.02.2007, 09:06
  4. Timer zeiten über Poti einstellen??
    Von wankeldriver im Forum Simatic
    Antworten: 45
    Letzter Beitrag: 04.02.2007, 00:52
  5. Antworten: 2
    Letzter Beitrag: 25.07.2003, 17:55

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •