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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 16 von 16

Thema: TON-Timer mehrmals starten bzw. zurücksetzen

  1. #11
    Registriert seit
    13.03.2010
    Ort
    Nähe Koblenz
    Beiträge
    29
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Hallo,
    das wäre aus meiner Sicht und meinem Verständnis eines Befehls Delay vollkommen unlogisch. Der Befehl an sich wird ja bedingungslos ausgeführt ...
    Die Aufgabe ist es also zu Starten und die Zeit abzulaufen und am Ende ggf. einen Rückgabewert zu liefern.
    Du mußt hier also aus meiner Sicht schon deine Vorgehensweise überdenken ...

    Gruß
    Larry
    Einspruch : Durch die Aufgabe ist die Vorgehensweise doch eigentlich definiert.

    Bedingung 1 ist erfüllt, warte 1500mS OB Bedingung 2 erfüllt ist.
    Uups, Bedingung 2 ist nach 1000mS schon erfüllt >> prima, vergiss deine jetzige Aufgabe, es gibt eine neue nämlich
    Bedingung 2 ist erfüllt, warte 1000mS OB Bedingung 3 erfüllt ist.
    Uups, Bedingung 3 ist nach 500mS schon erfüllt >> prima, vergiss deine jetzige Aufgabe, es gibt eine neue nämlich
    Bedingung 3 ist erfüllt, warte 2000mS OB Bedingung 4 erfüllt ist.
    Ohhh, die 2000mS sind um und Bedingung 4 ist immer noch nicht erfüllt >> Fehler generieren, Anlage stillsetzen.

    In einer zyklischen SPS wären das 3 (4) Zeilen mit 3 einschaltverzögernden Timern.
    XIC Bed01 BST TON Tim01 NXB XIC Tim01.DN XIO Bed02 OTL error_1 BND
    XIC Bed02 BST TON Tim02 NXB XIC Tim02.DN XIO Bed03 OTL error_2 BND
    XIC Bed03 BST TON Tim03 NXB XIC Tim03.DN XIO Bed04 OTL error_3 BND

    Störung Quittieren mit
    XIC Reset BST OTU error_1 NXB error_2 NXB error_3 BND


    oder auch
    Code:
      Bed01
    ---] [-----------------------------Tim01-
                   |
                   |  Tim01  Bed02            error_1
                   |---] [-----]/[-----------(L)---
    
      Bed02
    ---] [-----------------------------Tim02-
                   |
                   |  Tim02  Bed03            error_2
                   |---] [-----]/[-----------(L)---
    
      Bed03
    ---] [-----------------------------Tim03-
                   |
                   |  Tim03  Bed04            error_3
                   |---] [-----]/[-----------(L)---
    
    
      Reset                                    error_1
    --] [-------------------------------(U)---
                   |
                   |                             error_2
                   |------------------------(U)---
                   |
                   |                             error_3
                   |------------------------(U)---

    In einer Ablaufsteuerung geht es halt nicht "so einfach"

    In einer Ablaufsteuerung ist das Verhalten des Befehls "delay" also absolut logisch. Eine Bedingung ist erfüllt und die nächste Anweisung sagt: "warte gefälligst ab bis deine Zeit abgelaufen ist, alles was bis dahin (woanders) passiert kann dir egal sein, erst wenn deine Zeit um ist prüfst du die nächste Anweisung".

    DAS ist nicht das was ich brauche.

    Ich benötige "trotz" Ablaufsteuerung: wenn eine Eingangsbedingung nicht mehr erfüllt ist soll die Überwachungszeit und der dahinter liegende Code dafür verworfen und die zweite Eingangsbedingung mit der dazu gehörenden Überwachungszeit abgearbeitet werden.

    Aber ich möchte in diesem Faden auf keinen Fall eine Diskussion Pro/Kontra Zyklisch/Ablauf lostreten

    Nach 35 Jahren zyklisch erfordert das Umdenken und Umsetzen in ablaufend halt etwas von ..... "Loslassen", da hat man(n) schnell was in Erinnerung was so eben nicht geht.

    Grüße vom Rhein

    der KUB
    Geändert von S7-kub (21.08.2013 um 23:02 Uhr)
    "Eine neue Art von Denken ist notwendig, wenn die Menschheit weiterleben will" (Albert Einstein)

    - SLC500
    - JetSym 4/5
    - JetView 5
    - S5/S7

  2. #12
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.791
    Danke
    398
    Erhielt 2.415 Danke für 2.011 Beiträge

    Standard

    ... wo war hier jetzt der Widerspruch zu meiner Aussage ?
    Wenn du schon mit AWL kommst dann darfst du den Delay mit einem Impulstimer gleichsetzen ...

    Gruß
    Larry

  3. #13
    Registriert seit
    13.03.2010
    Ort
    Nähe Koblenz
    Beiträge
    29
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    ... wo war hier jetzt der Widerspruch zu meiner Aussage ?
    Wenn du schon mit AWL kommst dann darfst du den Delay mit einem Impulstimer gleichsetzen ...

    Gruß
    Larry
    welcher aber, im Gegensatz zum delay in der Ablaufsteuerung, die nachfolgenden Anweisungen nicht blockiert. DAS ist mein Dilemma mit dem delay.

    Gruß, der KUB
    "Eine neue Art von Denken ist notwendig, wenn die Menschheit weiterleben will" (Albert Einstein)

    - SLC500
    - JetSym 4/5
    - JetView 5
    - S5/S7

  4. #14
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.791
    Danke
    398
    Erhielt 2.415 Danke für 2.011 Beiträge

    Standard

    Sory ... jetzt verstehe ich erst, was du die ganze Zeit gemeint hast ...
    Der von dir verwendete Delay stoppt die Bearbeitung in der Zeile für die Dauer der Verzögerung. Das hatte ich komplett anders verstanden ...

    Du solltest zur Lösung auf einen IEC-Timer ausweichen - meine Wahl wäre ein TON.
    Wenn du den außerhalb der IF-Abfrage an den jeweiligen Schritt hängst (jeder Schritt ein neuer Timer) dann kannst du das innerhalb der Abfrage wieder wie einen Timeout auswerten - in etwa so wie dein KOP-Konstrukt.

    Gruß
    Larry

  5. #15
    Registriert seit
    13.03.2010
    Ort
    Nähe Koblenz
    Beiträge
    29
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    .......
    Der von dir verwendete Delay stoppt die Bearbeitung in der Zeile für die Dauer der Verzögerung.
    .........
    Jenauuuu! Alles an Code nach der Zeile "wartet" bis die delay-Zeit abgelaufen ist. Ablaufsteuerung halt. Normalerweise will man das ja auch, es gibt bis zum Ablauf der "WARTE"-Zeit innerhalb der Funktionalität eh nix zu tun (als zu warten)


    Zitat Zitat von Larry Laffer Beitrag anzeigen
    ........

    Du solltest zur Lösung auf einen IEC-Timer ausweichen - meine Wahl wäre ein TON.
    Wenn du den außerhalb der IF-Abfrage an den jeweiligen Schritt hängst (jeder Schritt ein neuer Timer) dann kannst du das innerhalb der Abfrage wieder wie einen Timeout auswerten - in etwa so wie dein KOP-Konstrukt.

    Gruß
    Larry
    Lieber Larry,

    genau DAS würde ich ja liebend gerne tun WENN denn die Programmiersprache sowas hergeben würde.... (was sie anhand der Tatsache dass sie als Ablaufsteuerung konzipiert wurde nicht tut/braucht).

    Dank der qualifizierten und engagierten Hotline von Jetter habe ich seit einigen Stunden einen Beispielcode WIE die Aufgabe zu lösen ist. Den versuche ich jetzt erst mal zu verstehen und dann umzusetzen.

    Ich schlage vor, wir überlassen den Thread ab jetzt wieder dem Originalthema. Danke für die fachkompetente Diskussion an dieser Stelle. Man liest sich

    Grüße aus Venlo, der KUB
    "Eine neue Art von Denken ist notwendig, wenn die Menschheit weiterleben will" (Albert Einstein)

    - SLC500
    - JetSym 4/5
    - JetView 5
    - S5/S7

  6. #16
    Registriert seit
    14.08.2004
    Beiträge
    824
    Danke
    45
    Erhielt 73 Danke für 66 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Du kannst eine State-Machine nicht vernünftig programmieren, wenn du blockierende Kommandos hast. Im Grund lassen sich SM auch leichter programmieren, wenn man das Prinzip verstanden hat. Du hast immer einen Zustand, der dann in Abhängigkeit von den Eingangssignalen in einen anderen Zustand übergeht. Ein Zustand, dass kann eine Variable sein. Z.B. mit den Inhalten 1: Stop, 2: Run, 3: Wait. Die Eingangssignale können Timer, IOs oder Variable sein, die sich änderrn. Das hat den Vorteil, dass Quasi alles parallel ablaufen kann ohne dass du dir den Kopf in den meisten Fällen zerbrechen musst.

Ähnliche Themen

  1. Step5 FB Timer zurücksetzen
    Von Wolve-Hunter im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 29.09.2012, 07:24
  2. IEC Timer TON im Simatic S7
    Von spovi1 im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 23.12.2011, 06:21
  3. PLC_Sim mehrmals starten, NetLink
    Von Senator42 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 23.09.2010, 12:48
  4. Baugruppen stoppen/zurücksetzen/starten
    Von esa_bs im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 18.06.2008, 15:21
  5. Timer in FB mehrmals verwenden
    Von Mike_S7 im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 10.12.2006, 12:38

Stichworte

Lesezeichen

Berechtigungen

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