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

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

Thema: Zeitverzögerung In Funktionsbaustein

  1. #1
    Registriert seit
    28.03.2010
    Beiträge
    8
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo

    Bin noch zimlich am Anfang mit S7 Programmierung

    Habe nun ein problem

    Ich habe einen Funktionbaustein der gestartet wird und einen Ausgang setz. Ein Eingang muss in der Zeit von 5 sek. kommen.

    Das problem ist jetz aber dass die Einschaltverzögerung auf der Anzeige 5sek sek. bleibt und nie abläuft. Wen der Baustein im OB1 nur einmal aufgerufen wird funktioniert alles. Ich denke ich habe bei meiner Einschaltverzögerung etwas falsch gemacht. (Datenbausteine sind 2 stück vorhanden)


    Freundliche Grüsse und vielen dank.
    Zitieren Zitieren Zeitverzögerung In Funktionsbaustein  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    Hallo,
    wahrscheinlich hast du in deinem Baustein überwiegend (oder sogar ausschließlich) Zugriffe auf absolute Operanden verwendet. Das ginge dann natürlich nicht. Wenn du aber konkret etwas wissen möchtest, dann wäre es doch hilfreich (weil meine Kristallkugel nicht mehr in Ordnung ist)m wenn du den Code deines FB's hier mal einstellst.

    Gruß
    Larry

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

    Standard

    Hallo moeggu,

    Timer arbeiten Flankengesteuert.
    Kann es sein, dass Du den Start des Timers einmal setzt und er dann die ganze Zeit auf 1 bleibt?

    Grüße
    Gebs

  4. #4
    moeggu ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.03.2010
    Beiträge
    8
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Der Start des Timers bleibt auf 1. Aber wen ich es ohne zweiten FB aufruf verwende Funktioniert es ja...

    Der Pc zum programmieren hat keinen Internetanschluss und das ganze ist in FUB programmiert. Habe es jetz in AWL umgewandelt weiss aber nicht ob du damit etwas anfangen kannst...

    Code:
    U     #start
          S     #M_relais
          U     #M_reset
          R     #M_relais
          U     #M_relais
          =     L      0.0
          U     L      0.0
          L     S5T#5S
          SE    T      1
          U     #ueberwachug
          R     T      1
          NOP   0
          NOP   0
          U     T      1
          =     L      0.1
          U     L      0.1
          S     #M_stoer
          U(    
          O     #M_ok
          O     "T_stoer"
          )     
          R     #M_stoer
          U     #M_stoer
          =     #stoerrug
          U(    
          UN    L      0.1
          U     #M_relais
          U     #ueberwachug
          U     #relais
          S     #M_ok
          U(    
          O     #M_stoer
          O     "T_Stopp"
          )     
          R     #M_ok
          U     #M_ok
          )     
          L     S5T#1S
          SE    T      2
          NOP   0
          NOP   0
          NOP   0
          U     T      2
          =     L      0.2
          U     L      0.2
          BLD   102
          =     #M_reset
          U     L      0.2
          UN    #ueberwachug
          =     #ok
          U     L      0.0
          BLD   102
          =     #relais

  5. #5
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    ... wie ich angenommen habe ... du arbeitest im Baustein mit Absolut-Operanden - hier den Timern. Das geht natürlich so, wenn du nur einen Aufruf des FB's verwendest - dann müssen die Timer ja auch nur dem einen Azfruf gehorchen.
    Du mußt also für beide Aufrufe unterschiedliche Timer nehmen. Das könnte gehen in dem du die Timer auch als Parameter mit übergibst. Du köntest aber auch IEC-Timer (SFB3 .. 5) verwenden und die mit in die Instanz deines FB's einbauen (integrieren). Beides geht - was ist dir lieber ?

    Gruß
    Larry

  6. #6
    moeggu ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.03.2010
    Beiträge
    8
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Da ich den Fb am schluss etwa 20 mal verwende wäre es sinnvoller IEC-Timer zu verwenden...

    Wenn ich das richtig verstanden habe brauche ich sonst 20 verschiedene Timer...oder 40 weil ich im FB 2 habe...?

  7. #7
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    ... richtig, du bräuchtest sonst 40 verschiedene Timer.

    Ist dir der Gebrauch (Einbindung in die Instanz) des IEC_Timer's (in deinem Fall SFB4 = SE) und die anschließende Verwendung desselben klar ?

    Gruß
    Larry

  8. #8
    moeggu ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.03.2010
    Beiträge
    8
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    nein hab ich leider noch nie verwendet...

    kann den der timer SFB4 rückgestellt werden. Den Timer den ich verwendet habe, hat ja eine Rückstellfunktion die ich verwende...also wen die zeit abgelaufen ist gibt es eine störrung aus...wen sie vorher per R zurückgestellt wird läufts weiter

  9. #9
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    Naja ... kein Beinbruch ...

    Einbinden des SFB4 :
    Variable im STAT-Bereich deines FB einlegen , z.B.
    Code:
    Name: Verzoegerung_1  Typ:SFB4
    und natürlich
    Name: Verzoegerung_2  Typ:SFB4
    Hier könntest du auch die M's deklarieren - dann kannst du nämlich auch auf die von Aussen verzichten ... (also M_Reset etc.)

    Aufruf des Bausteins :
    Code:
    U M_Relais
    UN Ueberwachung
    = L0.0
     
    call Verzoegerung_1
      IN := L0.0
      PT := t#5s
      Q := L0.1
      ET :=
    nun kannst du die Sequenz mit Timer T1 aus dem FB entfernen. Einen Reset-Eingang hat der SFB nicht. Die Beschaltung würdest du aber bei gleicher Anwendung wie oben für die SE-Timer auch nicht benötigt haben - das Wegnehmen des Eingangs bewirkt genau das Gleiche.

    Ich denke, für T2 bekommst du das dann selbst hin.

    Anmerkung :
    Das Arbeiten mit TEMP-Variablen (z.B. L0.0) ist OK - man sollte sich aber grundsätzlich angewöhnen, sie im TEMP-Bereich des Bausteins mt Namen anzulegen und diesen dann in der Folge zu verwenden.

    Gruß
    Larry

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

    moeggu (02.10.2010)

  11. #10
    moeggu ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.03.2010
    Beiträge
    8
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    wow vielen dank für deine Antwort...ich denke ich werds hinbekommen

    Vielen Dank

Ähnliche Themen

  1. Antworten: 7
    Letzter Beitrag: 12.08.2009, 09:47
  2. Zeitverzögerung in einer SPS
    Von Schüler 90 im Forum Programmierstrategien
    Antworten: 56
    Letzter Beitrag: 25.10.2007, 13:37
  3. Antworten: 2
    Letzter Beitrag: 10.07.2007, 17:22
  4. Antworten: 2
    Letzter Beitrag: 21.06.2006, 11:59
  5. Pro Zyklus eine Zeitverzögerung starten
    Von Anonymous im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 07.12.2005, 22:44

Lesezeichen

Berechtigungen

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