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

Ergebnis 1 bis 8 von 8

Thema: Zeitdauer für Befehle im OB35 messen/anzeigen

  1. #1
    Registriert seit
    08.12.2010
    Beiträge
    62
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    eingestezt: S7-300 CPU 315

    Hallo,
    eine Frage.
    Die Aufrufzeit des OB35 kann man einstellen. Mich würde interressieren wie man sehen kann wie lange der OB35 für die in ihm stehenden Befehle braucht. Gibt es da eine Möglichkeit dies zu messen bzw anzeigen zu lassen.
    Nutze den OB35 praktisch als Taktgenerator indem ich ihn alle xx ms aufrufen lasse und darin gezählt wird. Bin jetzt bei 10ms(100Hz) würde gerne wissen wie weit ich noch runter gehen kann. Möchte aber einen gewissen Puffer als Sicherheit. Deshalb würde ich gerne wissen wie lange er braucht um die Befehle auszuführen.
    Zitieren Zitieren Zeitdauer für Befehle im OB35 messen/anzeigen  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    Hallo,
    es gibt für alle Step7-Befehle CPU-bezogen eine festgelegte Bearbeitungsdauer, die in einer Liste dokumentiert ist.
    Damit würde ich ggf. mal arbeiten.

    Gruß
    Larry

  3. #3
    Registriert seit
    17.05.2010
    Ort
    Paderborn
    Beiträge
    824
    Danke
    84
    Erhielt 125 Danke für 94 Beiträge

    Standard

    Speichere zum Start des OB35 mit Hilfe des SFC64 (TIME_TCK) die Startzeit und am Ende des OB35 mit einem erneuten Aufruf des SFC 64 die Endzeit und berechne Dir die Laufzeit!
    Grüße
    Michael

    1001101110110100... Das ist meine Welt

  4. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    ... da müßte man natürlich dann die Laufzeit des SFC auch noch irgendwie mit reinrechnen ...

  5. #5
    Registriert seit
    17.05.2010
    Ort
    Paderborn
    Beiträge
    824
    Danke
    84
    Erhielt 125 Danke für 94 Beiträge

    Standard

    Richtig, da es ne Systemfunktion ist, ist SIEMENS doch hoffentlich so verschwänderisch mit den Recourcen

    Einfach das Ganze mal mit nem leeren OB35 und zwei SFC Zugriffen probieren!
    Grüße
    Michael

    1001101110110100... Das ist meine Welt

  6. #6
    Registriert seit
    16.05.2007
    Ort
    im Stahlwerk...
    Beiträge
    1.178
    Danke
    120
    Erhielt 429 Danke für 236 Beiträge

    Standard

    wenn man die CPU-Hardware munter laden kann, dann würde ich schrittweise solange die Aufrufzeit des OB35 verringern, bis im Diagnosepuffer ein Eintrag für eine OB80-Anforderung erscheint. Dann ist nämlich der Aufruftakt kürzer als die Dauer der Bearbeitung. Anschließend die Aufrufzeit um die Sicherheitsdauer x ms erhöhen - und fertich!

    Zeitfehler-OB (OB 80)
    Beschreibung
    Das Betriebssystem der CPU ruft den OB 80 auf, wenn bei der Bearbeitung einesOB einer der folgenden Fehler auftritt: Überschreiten der Zykluszeit,Quittierungsfehler bei der Bearbeitung eines OB, Vorstellen der Uhrzeit(Uhrzeitsprung) zum Starten eines OB, Wiedereintritt in RUN nach CiR. Trittbeispielsweise ein Startereignis für einen Weckalarm-OB auf, bevor die vorherigeBearbeitung desselben OB beendet ist, dann ruft das Betriebssystem den OB 80auf.Wurde der OB 80 nicht programmiert, dann wechselt die CPU in den
    Betriebszustand STOP.
    Die Methode ist zwar ein bisschen "Try and Error", sollte aber ohne großes Studium von Handbüchern oder langen Berechnungen funktionieren.

    Gruß Approx
    Geändert von Approx (23.11.2011 um 17:26 Uhr)
    Nihil est in cpu, quod non fuerit in intellectu" - Nichts ist in der CPU, was nicht (zuvor) im Verstand war.

  7. #7
    Registriert seit
    24.03.2010
    Beiträge
    126
    Danke
    3
    Erhielt 26 Danke für 21 Beiträge

    Standard

    Hallo,

    wenn das mal so einfach wäre...
    Die Methode mit dem TimeTick funktioniert nicht. Der Tick hat eine Darstellung von 1msec,
    jedoch nicht zwangsläufig auch eine Auflösung von 1msec. (im PLCSIM) hat er zum Beispiel
    eine Auflösung von 10msec.
    Typische Befehlsausführungszeiten liegen (bei 315) ~ 0,1usec, der OB35 müsste also schon
    10000 Befehle lang sein, damit er 1msec läuft!!!

    Wenn messen, dann so: Code aus OB35 in einen FC kopieren.
    Diesen FC in einer Schleife so 100 - 10000 (je nach Länge OB35) mal aufrufen, mit SFC64
    vor der Schleife die Startzeit ermitteln sowie nach der Schleife Endzeit
    ermitteln. Differenz / Aufrufe der Schleife = Laufzeit in ms.

    mfg
    Erdmann

  8. #8
    Registriert seit
    08.09.2006
    Beiträge
    170
    Danke
    4
    Erhielt 26 Danke für 16 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von erdmann Beitrag anzeigen
    Hallo,

    wenn das mal so einfach wäre...
    Die Methode mit dem TimeTick funktioniert nicht. Der Tick hat eine Darstellung von 1msec,
    jedoch nicht zwangsläufig auch eine Auflösung von 1msec. (im PLCSIM) hat er zum Beispiel
    eine Auflösung von 10msec.
    Typische Befehlsausführungszeiten liegen (bei 315) ~ 0,1usec, der OB35 müsste also schon
    10000 Befehle lang sein, damit er 1msec läuft!!!

    Wenn messen, dann so: Code aus OB35 in einen FC kopieren.
    Diesen FC in einer Schleife so 100 - 10000 (je nach Länge OB35) mal aufrufen, mit SFC64
    vor der Schleife die Startzeit ermitteln sowie nach der Schleife Endzeit
    ermitteln. Differenz / Aufrufe der Schleife = Laufzeit in ms.

    mfg
    Erdmann
    Wenn man eine Speed7 basierende S7-Cpu hat, gibt es für solche Dinge den µs Ticker (misst auf µs genau und der SFB7 braucht ca. 1µs Laufzeit)
    Die S7-400 hat für die OBs einen eigenen Baustein, der die OB-Laufzeit auch in µs anzeigt. (SFC 7 )

    Die Messung innerhalb einer Schleife kann bei manchen CPU ziemlich nach hinten losgehen:
    z.B. die 317-EK13 läuft durch die Caches in manchen Schleifen 3mal schneller als ohne Schleife.
    Deswegen sollte in diesem Fall der Code ausreichend oft sequentiell hintereinander kommen um diesen
    Effekt zu umgehen.
    Die Angaben im SIEMENS Handbuch beschreiben im Allgemeinen aber den langsameren Fall.

Ähnliche Themen

  1. Weiterschaltbedingungen und Befehle anzeigen
    Von Ricko im Forum Programmierstrategien
    Antworten: 3
    Letzter Beitrag: 20.12.2009, 08:13
  2. Zeitdauer SPS abschalten
    Von Pinguino im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 04.10.2008, 08:09
  3. Antworten: 5
    Letzter Beitrag: 20.09.2008, 11:44
  4. AWL Befehle
    Von The Big B. im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 07.05.2008, 18:39
  5. SPS-Befehle
    Von Anonymous im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 03.08.2004, 15:24

Lesezeichen

Berechtigungen

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