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

Results 1 to 4 of 4

Thread: Impuls nach Schleifenaufruf erzeugen

  1. #1
    Join Date
    30.06.2020
    Posts
    2
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guten Tag,

    ich hänge im Moment an einen Problem.

    Ich möchte jedes mal, wenn ich eine IF-Schleife öffne einen Impuls erzeugen.
    Dazu habe ich den Baustein Timer.TP verwendet.
    Allerdings wird dieser Impuls nur beim 1. mal ausgeführt. Beim 2. Öffnen der Schleife ist ja die Startbedingung für den Impuls noch 1 und kann damit nicht erneut gestartet werden.
    Deshalb muss ich es irgendwie hinbekommen, dass ich die Start-Variable nach ausführen des Impuls wieder deaktiviere und der Impuls erst wieder aktiviert wird, wenn die Schleife erneut geöffnet wird.

    Hier mein bisheriges Programm:

    IF (#counterGeneral MOD 2 = 0)THEN
    #startFirst := TRUE;
    ELSE
    #startFirst := FALSE;
    END_IF;
    "IEC_Timer_0_DB_6".TP(IN := #startFirst, //impuls für 5 sek
    PT := #time5sec,
    Q => #startForward);
    "IEC_Timer_0_DB_10".TON(IN := #startForward4, //nach 2 sek starten
    PT := #time2sec,
    Q => #startForward2);

    Das ganze befindet sich in einer weiteren IF-Schleife.


    Habt ihr Vorschläge, wie das klappen könnte?
    Reply With Quote Reply With Quote Impuls nach Schleifenaufruf erzeugen  

  2. #2
    Join Date
    15.05.2015
    Posts
    370
    Danke
    9
    Erhielt 68 Danke für 66 Beiträge

    Default

    Hallo, soweit ich das verstehe möchtest du jedes Mal wenn CounterGeneral einen geraden Wert hat, einen Impuls von 5 Sekunden erzeugen?

    Was soll passieren wenn innerhalb der 5 Sekunden der Wert gerade bleibt bzw. wieder gerade wird?

    Was soll da zum Schluss rauskommen?

    Nur mal Generelle Tipps:

    Timer nie in bedingt aufrufen

    Statt IF/ELSE Konstrukt kann man einfache Zuweisung verwenden
    Code:
    #startFirst := #counterGeneral MOD 2 = 0;
    Last edited by TP-Inc; 30.06.2020 at 16:51.

  3. #3
    Join Date
    22.06.2009
    Location
    Sassnitz
    Posts
    15,399
    Danke
    1,272
    Erhielt 4,532 Danke für 3,653 Beiträge

    Default

    Der Klassiker: Es gibt gar keine IF-Schleifen

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  4. #4
    Join Date
    22.06.2009
    Location
    Sassnitz
    Posts
    15,399
    Danke
    1,272
    Erhielt 4,532 Danke für 3,653 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Timer brauchen zum Starten eine steigende Flanke, d.h. sie müssen auch mal mit IN = FALSE aufgerufen werden, damit der nächste Aufruf mit IN = TRUE als steigende Flanke erkannt wird und den Timer wieder startet. Man muß dafür sorgen, daß das Signal an IN für mindestens einen Timer-Aufruf FALSE ist. Das passiert nicht, wenn man den Timer nur dann aufruft (bedingt), wenn das IN-Signal TRUE ist. Daher: den Timer-Aufruf unbedingt/immer ausführen. Wenn das nicht geht, daß das Signal an IN bei einem Timer-Aufruf auch mal FALSE ist, dann kann man den Timer notfalls ein zusätzliches/zweites Mal mit IN = FALSE aufrufen:
    Code:
    IF #timerSollNeustarten THEN
      "IEC_Timer_0_DB_6".TP(IN := FALSE);
    END_IF;
    ...
    "IEC_Timer_0_DB_6".TP(IN := #startFirst,
                          PT := #time5sec,
                          Q => #startForward);
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

Similar Threads

  1. Replies: 22
    Last Post: 29.05.2020, 14:08
  2. Replies: 6
    Last Post: 22.01.2015, 23:53
  3. Impuls
    By titinparma in forum Simatic
    Replies: 32
    Last Post: 24.10.2007, 18:04
  4. Erste impuls nach neu start
    By gardener in forum Simatic
    Replies: 2
    Last Post: 17.11.2006, 10:28
  5. Bedingung nach einem Impuls?
    By tino2512 in forum Programmierstrategien
    Replies: 6
    Last Post: 29.08.2006, 16:32

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •