CPU 313C-2DP läuft mit 1ms Weckalarm nicht

Thomas450

Level-1
Beiträge
29
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich benötige für eine Zeitfunktion eine möglichst kurze Aufrufzeit des OB35. Wenn ich eine Zeit von 1 oder 2ms einstelle geht die CPU mit Zeitfehler auf Stop. Wahrscheinlich kann diese CPU eine so kurz Zeit nicht verarbeiten.

Hat jemand Erfahrung, ab welche Aufrufzeit die CPU stabil läuft?


Gruß Thomas
 
Also 1-stellige Zykluszeiten wirst du mit den Compact-CPU's nicht hinbekommen. Ich würd's mal mit 50ms probieren, üblicherweise nimmt man 100ms z.B. für die Zählfunktionen. ;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Schau dir mal Deine Zykluszeit an, dann wirst Du merken dass er den Weckalarm gar nicht auslösen kann !
Bei einer Zykluszeit von 3-8 ms kann kein Weckalarm ausgerufen werden der 1ms beträgt.
 
Also 1-stellige Zykluszeiten wirst du mit den Compact-CPU's nicht hinbekommen. Ich würd's mal mit 50ms probieren, üblicherweise nimmt man 100ms z.B. für die Zählfunktionen. ;)

Bei den aktuellen SIEMENS Compact CPUs geht's nicht,
es gibt aber von anderen Herstellern kompatible Compact CPUs die bis zu 250µs runter können. ;-)
Die haben dann für Zeitmessungen auch einen µs-Timer Funktion.
 
Schau dir mal Deine Zykluszeit an, dann wirst Du merken dass er den Weckalarm gar nicht auslösen kann !
Bei einer Zykluszeit von 3-8 ms kann kein Weckalarm ausgerufen werden der 1ms beträgt. Heute 12:19
Wie ist der Zusammenhang zwischen Weckalarmzeit und Zykluszeit?
Welche minimale Weckalarmzeit könnte den mit der CPU erfahrungsgemäß noch funktionieren?


Gruß Thomas
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie ist der Zusammenhang zwischen Weckalarmzeit und Zykluszeit?
Welche minimale Weckalarmzeit könnte den mit der CPU erfahrungsgemäß noch funktionieren?


Gruß Thomas

Probier es aus!
Es hängt übrigens nicht von der Zykluszeit ab, sondern welche und wieviel Peripherie an der CPU dran ist, welche SFCs/SFBs genutzt werden und ob noch weitere Kommunikation auf der CPU läuft. Der reine Step7 Code (AWL...) ist gut unterbrechbar. Statusbaustein hat auch tolle Auswirkungen!
 
Weckalarmzeit

Ist natürlich auch wichtig wieviele Anweisungen im OB stehen, ob diese in der zeit ausgeführt werden können!

(Wenn Ich mich nicht täusche!)
 
Wie ist der Zusammenhang zwischen Weckalarmzeit und Zykluszeit?
Welche minimale Weckalarmzeit könnte den mit der CPU erfahrungsgemäß noch funktionieren?


Gruß Thomas

Das hängt sehr von den gegebenheiten der Anlag ab.

Mal ganz grob solltest du nicht unter 5-10ms mit einer 313 kommen.

Du must dir mal das System genau ansehen, erstens löst die SPS nur in 1ms auf, wenn du jetzt 8ms Zykluszeit hast, wird der OB1 8mal unterbrochen. und verlängert sich wiederum um die Laufzeit vom OB35 (+Aufrufzeiten)
Wenn du zu weit runtergehst, könnte dein Hauptprogramm z.B. in die Zykluszeitüberwachung gehen, weiterhin könnnte der OB35 länger als 1ms brauchen.

Erkläre doch mal was du genau machen willst, vieleicht ist der Ansatz mit dem OB35 und 1ms ja gar nicht notwendig.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Zum einen darf die Laufzeit des OB35 nicht länger sein als die Triggerzeit eingestellt ist.

Ist ja auch klar wenn ein Programm das 3ms läuft alle 2ms gestartet werden soll beißt sich das.

Zum anderen wird durch kurze Aufrufen des OB35 bei prozentual langer Laufzeit des selben der OB1 wesentlich verlängert. Wenn der OB35 alle 2ms aufgerufen wird und 1ms läuft verdoppelt sich die Laufzeit von OB1. Bei 3ms Aufruf und 2ms Laufzeit verdreichfacht sich der OB1 usw...
 
Das der OB35 nicht länger als seine Aufrufzeit laufen darf ist mir schon klar. Der OB35 ist z.Z. noch leer und die CPU steigt mit dem Fehler "STOP durch Zeitfehler..." aus. Wenn ich die Zykluszeit des OB1 überschreite meldet sich die CPU normalerweise mit Zykluszeitüberschreitung (glaub ich). Wobei mir eine längere Zykluszeit nichts ausmachen würde. Hab z.Z 7 bis 8ms. 15ms währen auch kein Problem.

Was bedeutet eigentlich "STOP durch Zeitfehler..."?

Kurz zur Anwendung:
Ich drehe Plastikeimer in eine bestimmte Position. Die Umfangsgeschwindigkeit beträgt 0,67 m/s. Mit zwei Sensoren frage ich die Null Grad Position ab um dann über eine parametrierbare Zeit (OB35 Aufrufe) die Drehbewegung zu stoppen. Das Ganze sollte (wie immer) möglichst genau sein.
 
Schau dir mal Deine Zykluszeit an, dann wirst Du merken dass er den Weckalarm gar nicht auslösen kann !
Bei einer Zykluszeit von 3-8 ms kann kein Weckalarm ausgerufen werden der 1ms beträgt.
Ich kann selbstverständlich einen Weckalarm auslösen, der kleiner der OB1 Zykluszeit ist. Es muss nur sichergestellt sein, dass das Programm, welches im OB aufgerufen wird, noch Zeit für den übrigen Teil lässt, d.h. wenn alle 1ms aufgerufen wird und der Ablauf nur 0,5 ms benötigt, dann bleiben diese für den Rest des Ablaufs (OB1, andere Weckalarme) Das funktioniert aber nur, wenn die CPU auch entsprechend Dampf hat... Damit steigt nat. die eigentliche Zykluszeit an...
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie genau soll es denn sein? Wird nur auf den Sensor positioniert oder existiert noch ein anderes Gebersystem?
Wäre hier vielleicht der Ansatz den Zählereingang der 313C zu benutzen und am Lüfterrad/Nockenscheibe die Position abzufragen?

Die maximale Zykluszeit in der HW-Konfig/CPU/Objekteigenschaften/Zyklus eingestellt werden. Die Mindestzykluszeit direkt untendrunter geht nur für 400er CPU.

 
da stimme ich dem "klavier" zu, da stimmt doch schon etwas nicht
im Hardwarekonzept. Wenn es den sehr dynamisch ist und auch noch
Genau sein soll, wirst wohl oder über noch ein wenig Geld in die Hand
nehmen müssen und die Funktion in eine Positionier oder Zählbaugruppe
auslagern. Unter umständen kann das auch ein FU übernehmen wenn den
vorhanden.
 
Zurück
Oben