Zykluszeit künstlich erhöhen

snowbda

Level-1
Beiträge
48
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Könnt Ihr mir vielleicht ein Tip geben wie ich ohne viel Aufwand die Zykluszeit auf z.B. 50 ms erhöhen kann? Es gibt bestimmt Systemfunktionen die viel Zeit in Anspruch nehmen.
Danke!
 
Hallo snowbda,
es gibt den SFC 47 Wait, Wartezeit ist in microsec. bis zu 32767,
schau mal in die Online Hilfe.
Vielleicht kannst du den ja zweimal aufrufen.

gruß helmut
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich würde in einem Daten- oder Merkerwort zählen und mit einem bedingten Sprung solange im Zyklus zurückspringen bis ein entsprechender Vergleichswert erreicht ist.

In etwa so.....

L 0
T MW100 // Zähler vorbesetzen
hops: NOP 0
L MW100
L 1 // hochzählen
+I
T MW100
L 1000 // Vergleichswert(Verzögerung)
L MW100
<I
SPB hops // Rücksprung wenn Vergleichswert noch nicht erreicht

Je nachdem was für eine CPU Du hast(z.B. WinAC RTX) kannst Du die Zykluszeit auch über die Objekteigenschaften einstellen.

Gruss
quax
 
Was mich interessiert,

WARUM?

Warum willst du die Zykluszeit künstlich hoch setzen?!
Was macht das für einen Sinn?

Gruß wolder
 
Was mich interessiert,

WARUM?

Warum willst du die Zykluszeit künstlich hoch setzen?!
Was macht das für einen Sinn?

Gruß wolder

Wir verwenden dies zum Beispiel um die Kommunikationsleistung diverser CPUs bei unterschiedlichen Zykluszeiten zu ermitteln. Unser Programm liest die Systemzeit aus und "looped" solange bis die gewünschte Anzahl Millisekunden vergangen ist.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Könnt Ihr mir vielleicht ein Tip geben wie ich ohne viel Aufwand die Zykluszeit auf z.B. 50 ms erhöhen kann? Es gibt bestimmt Systemfunktionen die viel Zeit in Anspruch nehmen.
Danke!

Um welche CPU handelt es sich? Bei den 400ern gibt es auch die Möglichkeit, eine Mindestzykluszeit in der Hardwarekonfig zu parametrieren.
 
hier nun auch noch mein Codeschnipsel:
Code:
// ***** Zykluszeit einstellen
      L     "Zykluszeit"
      L     #P_Zielzykluszeit
      >=I   
      L     #V_Zykluszeitdehnfaktor
      L     1
      SPB   m040
      +D    
      SPO   m041
      T     #V_Zykluszeitdehnfaktor
      SPA   m041
m040: -D    
      SPM   m041
      T     #V_Zykluszeitdehnfaktor
m041: L     L#-1
      PUSH  
      PUSH  
      PUSH  
      L     #V_Zykluszeitdehnfaktor
m042: +D    
      SPP   m042
der Nutzen? besteht darin, mal festzustellen, wieviel Ausführungszeit ein bestimmter Programmteil benötigt. Wenn ich also eine Zielzykluszeit parametriere, die höher als die aktuelle Zykluszeit ist, so kann ich zuersteinmal anhand der Variablen #V_Zykluszeitdehnfaktor messen, wie schnell die CPU die Codesequenz
Code:
m042: +D    
      SPP   m042
abarbeitet, dann durch Laden des zu vermessenden Programmteils anhand des Rückgangs des Wertes von #V_Zykluszeitdehnfaktor bestimmen, wieviel Ausführungszeit dieser Programmteil benötigt. Weiters lässt sich durch diese künstliche Zykluszeitverlängerung ermitteln, ob der Prozess bei diesen längeren Zykluszeiten noch stabil läuft und damit für spätere Erweiterungen Reserven auf der CPU vorhanden sind.
 
Um welche CPU handelt es sich?
Es ist eine 319er.

Die Frage nach dem Sinn oder Unsinn hat eigentlich Perfektionist beantwortet.
Ich bin SPS-Anfänger und wollte mal untersuchen wie sich der Prozess bei unterschidelichen Zykluszeiten verhält. Wir haben hier Profinet im Einsatz, auch Profisafe, und da spielen die Zeiten (Zykluszeit, Aktualisierungszeit, Überwachungszeit etc.) eine sehr große Rolle.

Danke schön für die Hilfe.
:TOOL:
 
Zurück
Oben