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

Ergebnis 1 bis 9 von 9

Thema: Systemzeit auslesen und umwandeln in S7-SCL

  1. #1
    Registriert seit
    04.09.2008
    Beiträge
    2
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen!
    Ich bin gerade an meiner Diplomarbeit dran und muss unter anderem mit einer SPS einen Linearantrieb ansteuern. Ich arbeite zum ersten mal überhaupt mit einer SPS. Bitte verzeiht daher, dass die folgende Frage etwas blamabel ist, da es eigentlich schon duzende Einträge darüber gibt aber ich werde nicht schlau daraus.
    Ich muss die Zeit in Minuten haben, die seit 00:00 vergangen ist. Ich habe es mit folgendem Code versucht:
    Code:
    ORGANIZATION_BLOCK OB1
    
    VAR_TEMP
       info : ARRAY[0..19] OF BYTE;
    
       fehler : INT;
       zeit : DT;
    END_VAR
    
    BEGIN
      read_clk(RET_VAL := fehler, CDT := zeit);
    
    END_ORGANIZATION_BLOCK
    Der Fehler lautet dann ungültiger oder fehlend Funktionstyp.

    Die Funktion hab ich in der Symboltabelle als SFC 1 deklariert.
    Zum einen schaff ich es nun nicht einmal die Zeit auszulesen, zum andern hab ich noch keinen Blassen, wie ich dann die Minuten aus diesem DT- Format in einen einfachen INT von Minuten oder so bringe.
    Wäre wirklich sehr froh um Unterstützung, bin wirklich Anfänger und hab mit dem schon so viel Zeit verloren.

    Freundliche Grüsse Angelo
    Zitieren Zitieren Systemzeit auslesen und umwandeln in S7-SCL  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    ... ich würde das nicht im OB1 programmieren, sondern in einer Function ...
    Ansonsten wäre es so richtiger :
    Code:
     fehler := read_clk (CDT := zeit) ;
    wenn du den DT dann zerlegen willst, dann ginge das so :
    Code:
    VAR_TEMP
       fehler : INT;
       zeit : DT;
       a_zeit AT zeit : array [0..7] of byte ;
       Stunde : int ;
       Minute : int ;
       Sekunde : int ;
    END_VAR
     
    und dann im Code :
     
      Stunde  := BCD_TO_INT (a_zeit [3]) ;
      Minute  := BCD_TO_INT (a_zeit [4]) ;
      Sekunde := BCD_TO_INT (a_zeit [5]) ;
    ... das sollte dich nun schon einmal weiterbringen ...
    Geändert von Larry Laffer (12.09.2008 um 08:15 Uhr)

  3. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    Angelo (12.09.2008)

  4. #3
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Zur Berechnung der Zeit in Minuten seit 00:00 Uhr kann man die Systemfunktion SFC1 READ_CLK und die IEC-Funktion FC8 DT_TOD verwenden:

    http://www.sps-forum.de/showpost.php...88&postcount=7

    http://www.sps-forum.de/showpost.php...25&postcount=8

    Gruß Kai

  5. Folgender Benutzer sagt Danke zu Kai für den nützlichen Beitrag:

    Angelo (12.09.2008)

  6. #4
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Und hier noch mal ein kurzes Programmbeispiel:

    Code:
    FUNCTION FC100 : VOID
     
    NAME    : TOD
    FAMILY  : SPSFORUM
    AUTHOR  : KAI
    VERSION : '1.0'
     
    VAR_OUTPUT
        SPS_TOD : DINT;
    END_VAR
     
    VAR_TEMP
        SPS_DT : DT;
        RETVAL : INT; 
    END_VAR
     
    BEGIN
     
    // Systemzeit
     
    RETVAL := SFC1 (CDT := SPS_DT);
     
    // Minuten seit Tagesbeginn (00:00 Uhr)
     
    SPS_TOD := TOD_TO_DINT (FC8 (IN := SPS_DT)) / 60000; 
     
    END_FUNCTION
    Gruß Kai
    Angehängte Dateien Angehängte Dateien

  7. Folgender Benutzer sagt Danke zu Kai für den nützlichen Beitrag:

    stieltobi (08.08.2017)

  8. #5
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Mir ist gerade noch aufgefallen, dass Larry Lafffer und ich die Aufgabenstellung scheinbar unterschiedlich verstanden haben:

    Larry Laffer ermittelt die Anzahl der Minuten seit Beginn der aktuellen Stunde (00:00 Uhr, 01:00 Uhr, 02:00 Uhr bis 23:00 Uhr).

    Ich ermittele die Anzahl der Minuten seit Tagesbeginn (00:00 Uhr).

    Gruß Kai

  9. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    Zitat Zitat von Kai Beitrag anzeigen
    Mir ist gerade noch aufgefallen, dass Larry Lafffer und ich die Aufgabenstellung scheinbar unterschiedlich verstanden haben:

    Larry Laffer ermittelt die Anzahl der Minuten seit Beginn der aktuellen Stunde (00:00 Uhr, 01:00 Uhr, 02:00 Uhr bis 23:00 Uhr).

    Ich ermittele die Anzahl der Minuten seit Tagesbeginn (00:00 Uhr).

    Gruß Kai
    Nö ... das hatte ich schon bewusst so gemacht.
    Angelo wollte ja die Systemzeit in SCL auslesen und wandeln. Dafür war das Beispiel. Aus Stunden und Minuten (jeweils als INT-Werte) nur noch Minuten zu machen sollte nicht so problematisch sein (Minuten_von_Tag := Stunden * 60 + Minuten

    Gruß
    LL

  10. #7
    Angelo ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    04.09.2008
    Beiträge
    2
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Reden

    Hei wow, da wird einem geholfen. Hat alles super hingehauen! Habe gerade wieder viel gelernt. Danke euch beiden viel mals!
    Gruss Angelo

  11. #8
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    Zitat Zitat von Angelo Beitrag anzeigen
    Hei wow, da wird einem geholfen.
    Was hast du gedacht ...?
    Ist doch Ehrensache ... oder ?

  12. #9
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Ist doch Ehrensache ... oder ?
    oder helfersyndrom ... larry, du weißt, dass habe ich bei dir schon des öfteren diagnostiziert
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

Ähnliche Themen

  1. Systemzeit auslesen
    Von Steff3de im Forum CODESYS und IEC61131
    Antworten: 32
    Letzter Beitrag: 03.10.2012, 21:42
  2. Systemzeit auslesen
    Von Reto im Forum Simatic
    Antworten: 21
    Letzter Beitrag: 05.09.2011, 11:01
  3. Systemzeit auslesen
    Von timod79 im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 07.05.2009, 12:14
  4. Systemzeit auslesen bzw neu stellen.
    Von thorsten im Forum HMI
    Antworten: 3
    Letzter Beitrag: 03.01.2008, 15:40
  5. Systemzeit auslesen in H/Min/Sek
    Von C.Werner im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 30.12.2006, 17:05

Lesezeichen

Berechtigungen

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