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

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

Thema: Knifflige Zeitsteuerung !?

  1. #1
    Registriert seit
    31.08.2006
    Ort
    OH
    Beiträge
    275
    Danke
    70
    Erhielt 2 Danke für 2 Beiträge

    Reden


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leidensgenossen , meine Aufgabe ist z.Zt. einen Motor mit 2 Drehzahlen für die im OP angewählten Zeiten laufen zu lassen. Immer erst Zeit 1(Drehzahl 1), danach Zeit_Pause (kurze Pause von 3 Sek.) und dann Zeit 2(Drehzahl 2). Sollte Zeit 1 nicht benötigt werden startet der Motor sofort mit Zeit 2 und umgekehrt genau so.
    Das ist ja soweit alles nicht so dramatisch, knifflig wird es erst jetzt, da ich die Zeiten auch pausieren lassen muss. Dazu habe ich mir den FC1 von Volker/Siemens runter geladen und benutzt. Für die Zeit 1 bekomme ich das ja auch noch hin, wenn ich aber den FC1 kopiere und mir daraus meine 2. Zeit stricken will, "läuft alles aus dem Ruder". Jetzt fällt mir so langsam nix mehr ein, habe schon mein WoEnde damit verbracht...bei strahlenden Sonnenschein draussen.
    Zitieren Zitieren Knifflige Zeitsteuerung !?  

  2. #2
    Registriert seit
    18.09.2006
    Beiträge
    231
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Standard

    sprichst du von se_bed?
    kann dort u.U. zu merkwürdigen erscheinungen kommen.
    änder dort die restzeit von out auf in_out.

    siehe dazu auch hier
    http://www.sps-forum.de/showthread.php?t=9779

  3. #3
    Deep Blue ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    31.08.2006
    Ort
    OH
    Beiträge
    275
    Danke
    70
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Sobald ich die Restzeit ins INOUT verschiebe, geht meine Steuerung in Stop und die SF-LED leuchtet rot. Diagnosse ist ein Programmierfehler in FC1. Setze ich Restzeit wieder zurück in OUT ist alles ok.

  4. #4
    Registriert seit
    18.09.2006
    Beiträge
    231
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Standard

    logisch. du musst dort wo du den fc1 aufrufst den bausteinaufruf aktualisieren.

  5. #5
    Deep Blue ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    31.08.2006
    Ort
    OH
    Beiträge
    275
    Danke
    70
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Habe Nachsicht, bin erst auf dem Weg der Erleuchtung . Soweit ist jetzt alles ganz gut, bis auf den Sachverhalt, das nach anlegen eines 2. Timers der erste bis ins "-" läuft. Beide Timer habe ich die Restzeit ins INOUT geschrieben. Wie gesagt, der erste läuft ins "-" ohne zu stoppen und der 2. bleibt so wie es sein soll bei 0 stehen.

  6. #6
    Registriert seit
    18.09.2006
    Beiträge
    231
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Standard

    wie sich das anhört hast du den fc 2-fach vorliegen.
    brauchst du nicht. du kannst den baustein mehrfach aufrufen.
    die parameter restzeit und out müssen an beiden aufrufen natürlich unterschiedlich sein.

    steht im baustein was von
    ==I
    = #Out

    und
    L 0
    ==I

    wenn ja änder das in
    <=I

    hab den fc zur zeit nicht zur hand
    .
    mfg KALEL

    Wer über gewisse Dinge nicht den Verstand verliert, der hat keinen zu verlieren.
    Gottfried Ephraim Lessing

  7. #7
    Deep Blue ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    31.08.2006
    Ort
    OH
    Beiträge
    275
    Danke
    70
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Habe ich gemacht, trotzdem geht die 1. Zeit in den Minusbereich. Ich versuche es mal mit dem Quellcode:

    Code:
    FUNCTION FC 1 : VOID
    TITLE =
    VERSION : 0.1
     
    VAR_INPUT
      Takt : BOOL ; 
      Start : BOOL ; 
      Zeitwert : INT ; 
      Reset : BOOL ; 
    END_VAR
    VAR_OUTPUT
      Out : BOOL ; 
    END_VAR
    VAR_IN_OUT
      Restzeit : INT ; 
    END_VAR
    BEGIN
    NETWORK
    TITLE =
          UN    #Takt; 
          ON    #Start; 
          O     #Out; 
          SPB   no; 
          L     #Restzeit; 
          L     1; 
          -I    ; 
          T     #Restzeit; 
    no:   L     #Restzeit; 
          L     0; 
          <=I   ; 
          =     #Out; 
          U(    ; 
          L     #Restzeit; 
          L     0; 
          <=I   ; 
          )     ; 
          UN    #Start; 
          O     #Reset; 
          SPBN  nore; 
          L     #Zeitwert; 
          T     #Restzeit; 
    nore: NOP   0; 
    END_FUNCTION
    ORGANIZATION_BLOCK OB 1
    TITLE = "Main Program Sweep (Cycle)"
    VERSION : 0.1
     
    VAR_TEMP
      OB1_EV_CLASS : BYTE ; //Bits 0-3 = 1 (Coming event), Bits 4-7 = 1 (Event class 1)
      OB1_SCAN_1 : BYTE ; //1 (Cold restart scan 1 of OB 1), 3 (Scan 2-n of OB 1)
      OB1_PRIORITY : BYTE ; //Priority of OB Execution
      OB1_OB_NUMBR : BYTE ; //1 (Organization block 1, OB1)
      OB1_RESERVED_1 : BYTE ; //Reserved for system
      OB1_RESERVED_2 : BYTE ; //Reserved for system
      OB1_PREV_CYCLE : INT ; //Cycle time of previous OB1 scan (milliseconds)
      OB1_MIN_CYCLE : INT ; //Minimum cycle time of OB1 (milliseconds)
      OB1_MAX_CYCLE : INT ; //Maximum cycle time of OB1 (milliseconds)
      OB1_DATE_TIME : DATE_AND_TIME ; //Date and time OB1 started
    END_VAR
    BEGIN
    NETWORK
    TITLE =Taktgeber Funktionsbaustein
    //
    //
          UN    M      2.0; 
          L     S5T#1S; 
          SE    T      2; 
          NOP   0; 
          NOP   0; 
          NOP   0; 
          U     T      2; 
          =     M      2.0; 
    NETWORK
    TITLE =Zeit 1 Funktionsbaustein
          U(    ; 
          U     M      2.0; 
          =     L     20.0; 
          BLD   103; 
          U     M      3.1; 
          =     L     20.1; 
          BLD   103; 
          U     M      2.3; 
          =     L     20.2; 
          BLD   103; 
          U     M      4.0; 
          SPBNB _001; 
          CALL FC     1 (
               Takt                     := L     20.0,
               Start                    := L     20.1,
               Zeitwert                 := DB20.DBW    0,
               Reset                    := L     20.2,
               Out                      := M      2.6,
               Restzeit                 := MW    10);
    _001: U     BIE; 
          )     ; 
          U     M      3.2; 
          =     A      4.0; 
    NETWORK
    TITLE =Zeit 2 Funktionsbaustein
          U(    ; 
          U     M      2.0; 
          =     L     20.0; 
          BLD   103; 
          U     M      3.1; 
          =     L     20.1; 
          BLD   103; 
          U     M      2.3; 
          =     L     20.2; 
          BLD   103; 
          U     M      4.0; 
          SPBNB _002; 
          CALL FC     1 (
               Takt                     := L     20.0,
               Start                    := L     20.1,
               Zeitwert                 := DB20.DBW    2,
               Reset                    := L     20.2,
               Out                      := M      2.7,
               Restzeit                 := MW    20);
    _002: U     BIE; 
          )     ; 
          U     M      3.5; 
          =     A      4.1; 
    NETWORK
    TITLE =Start Befehl im Hand Bild
          U     DB11.DBX    1.1; 
          U     DB12.DBX    3.1; 
          =     M      2.1; 
    NETWORK
    TITLE =Stop Befehl im Hand Bild
    //
    //
          U     DB11.DBX    1.1; 
          U     DB12.DBX    3.3; 
          =     M      2.2; 
    NETWORK
    TITLE =Reset Befehl im Hand Bild
          U     DB11.DBX    1.1; 
          U     DB12.DBX    3.4; 
          =     M      2.3; 
    NETWORK
    TITLE =Kopf heben Befehl im Hand Bild
          U     DB11.DBX    1.1; 
          U     DB12.DBX    3.5; 
          =     M      2.4; 
    NETWORK
    TITLE =Start/Stop Zeit-Funktion
          U     M      2.1; 
          S     M      3.1; 
          U     M      2.2; 
          R     M      3.1; 
          NOP   0; 
    NETWORK
    TITLE =Vergleicher, ob Zeit 1 beendet ist
          L     0; 
          L     MW    10; 
          ==I   ; 
          =     M      3.3; 
    NETWORK
    TITLE =Drehzahl 1. Stufe
          UN    M      3.3; 
          U(    ; 
          L     DB20.DBW    0; 
          L     MW    10; 
          <>I   ; 
          )     ; 
          U     M      3.1; 
          =     M      3.2; 
    NETWORK
    TITLE =Vergleicher, ob Zeit 2 beendet ist
          L     0; 
          L     MW    20; 
          ==I   ; 
          =     M      3.4; 
    NETWORK
    TITLE =Drehzahl 2. Stufe
          UN    M      3.4; 
          U(    ; 
          L     DB20.DBW    2; 
          L     MW    20; 
          <>I   ; 
          )     ; 
          U     M      3.1; 
          =     M      3.5; 
    NETWORK
    TITLE =Sicherheitskette Rührwerk
    //
    //
          UN    E      0.0; 
          UN    E      0.1; 
          UN    E      0.2; 
          UN    E      0.3; 
          UN    E      0.4; 
          =     M      4.0; 
    NETWORK
    TITLE =
     
          CALL FB     1 , DB     1 (
               Taster                   := M      2.4,
               Hilfsmerker              := M      2.5,
               Ausgang                  := M      2.6);
    END_ORGANIZATION_BLOCK
    Vielleicht kannst Du mir damit ja helfen? Danke schon mal im Vorraus !!!

  8. #8
    Registriert seit
    18.09.2006
    Beiträge
    231
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Standard

    zeig mal lieber wie der aufruf des bausteins aussieht (beide aufrufe)
    .
    mfg KALEL

    Wer über gewisse Dinge nicht den Verstand verliert, der hat keinen zu verlieren.
    Gottfried Ephraim Lessing

  9. #9
    Deep Blue ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    31.08.2006
    Ort
    OH
    Beiträge
    275
    Danke
    70
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Der "Call FC1" Befehl ist doch im Code enthalten, oder ich verstehe Deine Frage nicht richtig.

  10. #10
    Registriert seit
    18.09.2006
    Beiträge
    231
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    hast recht ich hab nicht richtig hingeschaut.

    da zählt mix ins minus. das klappt.

    übrigens.
    man programmiert das hauptprogramm nicht im ob1. den behält man sich für die organisation vor.
    .
    mfg KALEL

    Wer über gewisse Dinge nicht den Verstand verliert, der hat keinen zu verlieren.
    Gottfried Ephraim Lessing

Ähnliche Themen

  1. Zeitsteuerung für steckdosen
    Von Hikki_Hakki85 im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 21.12.2016, 17:49
  2. Zeitsteuerung
    Von mauli im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 28.04.2009, 11:37
  3. Magnetventil und Zeitsteuerung
    Von christian_p im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 26.11.2008, 14:35
  4. S7 214 Zeitsteuerung HILFE
    Von mario318i im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 02.12.2007, 20:46
  5. Zeitsteuerung S5
    Von Anonymous im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 22.03.2005, 21:30

Lesezeichen

Berechtigungen

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