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

Ergebnis 1 bis 9 von 9

Thema: Abarbeitung FOR Schleife (Zykluszeit)

  1. #1
    Registriert seit
    06.06.2008
    Beiträge
    191
    Danke
    8
    Erhielt 11 Danke für 7 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute,

    ich steh grad aufm Schlauch...

    Könnt ihr mir sagen wir folgender Code abgearbeitet wird?

    Code:
    bFirstCycle := TRUE;
    
    clkImpulse(PT:= t#5s, Q=> ); //Alle 5 Sek einen Impuls
    
            IF    clkImpulse.Q
                   OR bFirstCycle     THEN
    
                FOR usintSchleifenzaehler :=1 TO 100 BY 1 DO
                    
                       Anweisungen;
    
                END_FOR;
    
               bFirstCycle := FALSE;
    
            END_IF;
    Wird bFirstCycle erst nach zurückgesetzt wenn usintSchleifenzaehler = 100 ist oder schon bei usintSchleifenzaehler =2 ??

    Also wenn erst bei 100 würde sich das auf die Zykluszeit auswirken, oder?
    Wenn bei 2 dann verstehe ich nicht genau wie die SPS "denkt" ?!?!

    Gruß Mike
    Zitieren Zitieren Abarbeitung FOR Schleife (Zykluszeit)  

  2. #2
    Registriert seit
    15.02.2011
    Ort
    Stromness, Scotland, UK
    Beiträge
    339
    Danke
    25
    Erhielt 34 Danke für 33 Beiträge

    Standard

    Die FOR-Schleife wird 100mal aufgerufen, erst dann wird die Schleife verlassen.

    Das mit der Zykluszeit ist eine gute Frage, je nach dem was deine Anweisung macht...

    Hatte auch schon Probleme, aber die waren selbsgemacht (36'000er FOR-Schleife mit grösseren Berechnungen)

    Der Nachteil von For-Schleifen die nur azyklisch aufgerufen werden, besteht in der Gefahr, dass im 999'999'999en Fall bei grossen Programmen mehrere Schleifen im gleichen Zyklus aufgerufen werden, und eine Zykluszeitüberschreitung produzieren... (Die dann sehr schwer nachvollziehbar ist)

    Zeige sonst mal deine Anweisung, denke aber bei 100 Schleifendurchläufen sollte das kein Problem sein...

  3. #3
    mike_roh_soft ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    06.06.2008
    Beiträge
    191
    Danke
    8
    Erhielt 11 Danke für 7 Beiträge

    Standard

    Hi,

    danke schon mal für die Hinweise...

    Meine Anweisungen sind nicht der Rede wert... meine FOR-Schleife geht auch nur bis 20.
    Ich wollte es einfach mal wissen... vielleicht teste ich das mal?!?!

    Wer nicht fragt bleibt dumm

    Gruß

  4. #4
    mike_roh_soft ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    06.06.2008
    Beiträge
    191
    Danke
    8
    Erhielt 11 Danke für 7 Beiträge

    Standard

    Hi,

    also ich habe das gerade mal getestet... hätte ich auch gleich machen können

    Habe einen Breakpoint auf die Zeile gesetzt:
    Code:
    bFirstCycle := FALSE;
    Und als die SPS gestoppt hatte ware der Index der FOR-Schleife bei 101.
    D.h. es wird tatsächlich zuerst die Schleife komplett durchgeackert und dann geht es im Ablauf weiter!

    Gruß

  5. #5
    Registriert seit
    15.02.2011
    Ort
    Stromness, Scotland, UK
    Beiträge
    339
    Danke
    25
    Erhielt 34 Danke für 33 Beiträge

    Standard

    Ja das wirst du nicht so einfach Testen können

    Aber versuchsmal, würde mich auch interessieren!

    String-Operationen, Datenstrukturen hin und her kopieren und Berechnungen mit REAL/LREAL heizen der SPS ein...

  6. #6
    Registriert seit
    24.02.2009
    Beiträge
    1.242
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard

    Verschachtelte Schleife!
    Gibt nix besseres um eine SPS in die Knie zu zwingen!

    Ansonsten lachen moderne SPSen eigentlich nur müde über die Auslastung durch die Programme die auf ihnen laufen. Ich glaube das beste was ich je hinbekommen habe waren 40% Echtzeitauslastung bei einer BX8000 die 30 Achsen Regeln musste.
    Meine jetzige CX9000 dümpelt trotz mehrer Sortieralgorithmen (Array umhergeschiebe der übelsten Sorte) nur um die 7% Auslastung herum....

  7. #7
    mike_roh_soft ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    06.06.2008
    Beiträge
    191
    Danke
    8
    Erhielt 11 Danke für 7 Beiträge

    Standard

    Hmmm...
    also da ich ne Visu programmiere mache ich viel mit Strings und Datumsformaten rum. Was das einzige ist was Anspruch haben könnte!

    Habe nen CX9010 und der hat grad 18% Echtzeitauslastung...
    Und daran hängen nur paar K-Bus Karten zur Gebäudeautomatisierung (Eigenheim).

    Was ist eigentlich wenn man an die 100% Auslastung käme?

  8. #8
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    750
    Danke
    27
    Erhielt 165 Danke für 143 Beiträge

    Standard

    Die azyklische ADS-Kommunikation gehört nach meinem Verständnis nicht zur Echtzeit, sie würde unter einer hohen Echtzeitauslastung wohl am meisten leiden. Ich weiss allerdings nicht, ob Beckhoff ADS mit in die Auslastungsanzeige einbezieht.

  9. #9
    Registriert seit
    19.11.2006
    Beiträge
    1.346
    Danke
    6
    Erhielt 254 Danke für 231 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von mike_roh_soft Beitrag anzeigen
    Und als die SPS gestoppt hatte ware der Index der FOR-Schleife bei 101.
    D.h. es wird tatsächlich zuerst die Schleife komplett durchgeackert und dann geht es im Ablauf weiter!
    Ist nunmal so per Defintion. Hattest du was anderes erwartet?

    Zitat Zitat von mike_roh_soft Beitrag anzeigen
    Habe nen CX9010 und der hat grad 18% Echtzeitauslastung...
    Und daran hängen nur paar K-Bus Karten zur Gebäudeautomatisierung (Eigenheim).
    Mit welcher Zykluszeit?

    Zitat Zitat von mike_roh_soft Beitrag anzeigen
    Was ist eigentlich wenn man an die 100% Auslastung käme?
    Bei über 100% wird der Zyklus nicht fertig. Dann gibt's Überschreitungen. Passiert das mehrfach und hintereinandern ist das schlecht für die Qualität zB einer Regelung. Außerdem findet das I/O-Update nicht statt. Feldbussignale werden nicht eingelesen oder ausgegeben. Irgendwann schlägt der Watchdog der Klemmen zu und die Signale fallen ab (ja nach Konfiguration) usw.
    Die maximale Grenze sollte bei 80% bis 90% eingestellt sein, sonst käme die Windows-Ebenes (= Nicht-Echtzeit) nicht mehr zum Zuge und das Gerät wäre unbedienbar. Alles außerhalb des TwinCAT würde nicht funktionieren.

Ähnliche Themen

  1. While Schleife kompatibel mit Zykluszeit
    Von max_sho im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 15.12.2010, 15:08
  2. Abarbeitung von Rufen
    Von Blanky04 im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 11.08.2010, 11:57
  3. Antworten: 14
    Letzter Beitrag: 20.05.2009, 12:38
  4. FC Abarbeitung im OB1
    Von K3ul3 im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 17.11.2008, 08:55
  5. Zusammenhang Zykluszeit Profibus Zykluszeit SPS
    Von Peltzerserbe im Forum Feldbusse
    Antworten: 1
    Letzter Beitrag: 28.04.2008, 22:09

Lesezeichen

Berechtigungen

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