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

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

Thema: Step 7 Zeit für Zähler verwenden

  1. #1
    Registriert seit
    06.04.2011
    Beiträge
    86
    Danke
    16
    Erhielt 2 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich hätte mal eine Frage zur Verwendung der S7 Zeit. Ich würde gerne einen Zähler programmieren, der immer Schicht-, Tag-, und Wochenweise zählt. Also zum Beispiel um 6 Uhr in der Früh beginnt und um 14 Uhr zurückgesetzt wird. (für die Schicht) Hat hier schon jemand Erfahrungen gesammelt? Wollte das ganze eingentlich nur über einen SFB 4 und einen Zähler machen. Mit dem SFB 4 hätte ich die Zeit für den Zähler vorgegeben (8 Stunden für eine Schicht) und diese dann als Zeit für den Zähler hergenommen. Allerdings funktioniert das ganze nicht so genau. Daher würde ich es gerne über die Zeit der Steuerung probieren. Die Frage ist nur ob das geht??

    Danke schon mal im voraus!

    Gruß

    Slot23
    Zitieren Zitieren Step 7 Zeit für Zähler verwenden  

  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 slot23,

    wenn ich Dich richtig verstehe, möchtest Du die Systemzeit der Steuerung auslesen
    und diese dann mit 6, 14, 22... vergleichen.
    Die Zeit kannst Du mit dem SFC1 "READ_CLK" auslesen. Du erhälst sie als Datentyp "DATE_AND_TIME".
    Die Stunde steht im Byte 3.

    Grüße
    Gebs

  3. #3
    slot23 ist offline Benutzer
    Themenstarter
    Registriert seit
    06.04.2011
    Beiträge
    86
    Danke
    16
    Erhielt 2 Danke für 1 Beitrag

    Standard

    Hallo Gebs,

    Ja genau richtig, ich möchte die Systemzeit der Steuerung auslesen und vergleichen. Mit dem SFC1 hab ich gerade ein kleines Problem. Hier wird ja ein DT (Date & Time) Format verlangt oder? Mir wird die Zeile von CDT egal was ich eingebe rot makiert. Die Fehlermeldung ist: Deklarationsbereich der Aktualseite paßt nicht zum formalen Deklarationsbereich VAR_OUTPUT des Formalparameters CDT. Ich habe aber für meinen DB den ich anwähle, den Bereich Date und Time angewählt Was mache ich falsch??

    Gruß

    Slot23

  4. #4
    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

    Hallo,
    deine Variable (im DB1 oder wo auch immer) muß natürlich als DT bzw. Date_and_Time deklariert sein. Am Besten übergibst du sie dann symbolisch an den SFC - also so : "DB1".mein_Zeitstempel. Dann funktioniert es auch ...
    (Der DB1 muß dafür natürlich auch symbolisch ansprechbar sein ...).

    Gruß
    Larry

  5. #5
    slot23 ist offline Benutzer
    Themenstarter
    Registriert seit
    06.04.2011
    Beiträge
    86
    Danke
    16
    Erhielt 2 Danke für 1 Beitrag

    Standard

    Danke an euch beide, das Lesen der Zeit funktioniert jetzt. Alleridngs habe ich nun ein kleines Problem mit der Aufteilung der Stunden und Minuten. Ich benötige eigentlich nur die Stunden. Auf der Siemens Homepage ist eine Erklärung, wie man die Stunden einzeln ausliest.
    Zuerst call SFC 1, diesen festlegen und anschließend mit

    LAR1 P##Date_Time
    L B[AR1,P#3.0] // Stunde ist 3 Byte
    T AB 3

    die Stunde auslesen.

    Allerdings wird mir mal wieder die erste Zeile LAR1 P##Date_Time rot makiert. Sie ist aber genauso wie beim CDT definíert. Eigentlich ist die Auswertung ja ziemlich leicht, allerdings scheitert es immer wieder an solch einfachen Dingen

    Kann mir eventuell nochmal jemand helfen??

    Gruß

    Slot23

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

    Standard

    Hallo slot23,

    ich vermute mal Du hast das in einem FC programmiert. In FC's ist diese Art der AR-Zuweisung
    für IN-,IN_OUT- und OUT-Variablen nicht erlaubt.
    P# als Adreßoperator darf nur für lokale Symbole der obersten Strukturtiefe (Parameterlevel) verwendet werden. Andernfalls könnte in vielen Fällen (z.B. geschachtelte FC-Parameter) diese Adreßkonstante zu groß für die MC7-Register werden.
    Im FC geht es nur mit Temp-Variablen.

    Grüße
    Gebs

  7. #7
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.227
    Danke
    534
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Zitat Zitat von slot23 Beitrag anzeigen
    Danke an euch beide, das Lesen der Zeit funktioniert jetzt. Alleridngs habe ich nun ein kleines Problem mit der Aufteilung der Stunden und Minuten. Ich benötige eigentlich nur die Stunden. Auf der Siemens Homepage ist eine Erklärung, wie man die Stunden einzeln ausliest.
    Zuerst call SFC 1, diesen festlegen und anschließend mit

    LAR1 P##Date_Time
    L B[AR1,P#3.0] // Stunde ist 3 Byte
    T AB 3

    die Stunde auslesen.

    Allerdings wird mir mal wieder die erste Zeile LAR1 P##Date_Time rot makiert. Sie ist aber genauso wie beim CDT definíert. Eigentlich ist die Auswertung ja ziemlich leicht, allerdings scheitert es immer wieder an solch einfachen Dingen

    Kann mir eventuell nochmal jemand helfen??

    Gruß

    Slot23
    Probier mal folgende Schreibweise:

    Code:
    L P##Date_Time
    LAR1 
    L B[AR1,P#3.0] // Stunde ist 3 Byte
    T AB 3
    Irgendwie kann ich mich entsinnen, dass kürzlich schon einmal jemand mit deiner Schreibweise Probleme hatte.

    @Gebs
    Davon hab ich noch nie gelesen, klingt interessant und gefährlich, hat du eine Quelle dazu?
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  8. #8
    slot23 ist offline Benutzer
    Themenstarter
    Registriert seit
    06.04.2011
    Beiträge
    86
    Danke
    16
    Erhielt 2 Danke für 1 Beitrag

    Standard

    Nein, funktioniert leider auch nicht.

  9. #9
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.227
    Danke
    534
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Ich hab es gerade mit einer IN-Variable in einem FC getestet.
    Deine Schreibweise wurde rot dargestellt, meine Schreibweise wurde angenommen.

    Wird es bei dir Rot oder stimmt das berechnete Ergebnis nicht?

    PS: Sollte eingentlich funktionieren!
    Geändert von Ralle (17.04.2012 um 11:50 Uhr)
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  10. #10
    Registriert seit
    21.01.2008
    Ort
    Lippe
    Beiträge
    317
    Danke
    43
    Erhielt 49 Danke für 46 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    also mit dem SFC1 lade ich die System Zeit in einen DB (z.B. an CDT vom SFC 1: P#DB400.DBX0.0) als RET_VAL das DBW8, so und nun brauche ich für die aktuelle Stunde nur noch das DBB3 in Int wandeln (nehme hierfür z.B. DBW18 fertig.

    Gruß online
    Geändert von online (17.04.2012 um 11:52 Uhr)
    ***************************************

    Sonnige Grüße online


    Wegen hübschen Frauen kaufen wir Bier, wegen häßlichen Frauen trinken wir Bier...

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 11.04.2012, 07:21
  2. Antworten: 7
    Letzter Beitrag: 23.07.2009, 19:37
  3. Zeit mit Zähler stoppen
    Von Trust1981 im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 23.06.2009, 15:18
  4. normaler Zähler nach Zeit rücksetzen und weitzählen
    Von sebastianr1980 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 06.05.2009, 09:32
  5. Zähler in Step 7 programieren
    Von Unregistriert im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 17.02.2006, 20:00

Stichworte

Lesezeichen

Berechtigungen

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