cycle time auslesen

mknoellner

Level-1
Beiträge
45
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
ich habe versucht die min und max cycle time über die lokalen temp variablen des ob1 auszulesen, aber bekomme immer nur die meldung 1 .. was mache ich falsch?

im ob32 lasse ich mir den merker 98.4 setzen, so dass ich nur jede Sekunde die aktuellen Werte ín den DB schreiben lasse.
der rest siehe screen shot.
mist der ist mal in die hose gegangenalso code:

u m 98.0
on m 98.0
r m 98.0

u m98.1
on m98.1
s m 98.1

un m 98.4
spb WEIT
AUF DB 78
L 0
L #OB1_PREV_CYCLE
T DBW 0
L #OB1_MIN_CYCLE
T DBW 2
L #OB1_MAX_CYCLE
T DBW 4
R M98.4

WEIT: NOP 0
....
....
....

danke
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ich habe versucht die min und max cycle time über die lokalen temp variablen des ob1 auszulesen, aber bekomme immer nur die meldung 1 .. was mache ich falsch?

im ob32 lasse ich mir den merker 98.4 setzen, so dass ich nur jede Sekunde die aktuellen Werte ín den DB schreiben lasse.
der rest siehe screen shot.
mist der ist mal in die hose gegangenalso code:

u m 98.0
on m 98.0
r m 98.0

u m98.1
on m98.1
s m 98.1

un m 98.4
spb WEIT
AUF DB 78
L 0
L #OB1_PREV_CYCLE
T DBW 0
L #OB1_MIN_CYCLE
T DBW 2
L #OB1_MAX_CYCLE
T DBW 4
SET
R M98.4

WEIT: NOP 0
....
....
....

danke

wenn der M98.4 True ist durchläufst du mit VKE=0 dein Programmteil.
Bei VKE=0 wird der Reset nicht ausgeführt.
Also ein SET davor.

EDIT: oder am Anfang so
Code:
u   m 98.4
spbn WEIT
 
Zuletzt bearbeitet:
ah verdammt.
das hab ich doch glatt nicht gewusst und dadurch übersehen.
logisch ist es schon.

aber es beantwortet nicht meine hauptproblem. oder doch?
warum stehen in den datenwörtern im db bei den werten nur ==1 ich hätte dort ein int mit millisekunden erwartet.

oder ist die 417-4 so rasend schnell das die cycletime==1ms ist.
 
bei mir funkt das aber auch ohne SET.
habe im VKE ne 1 drin wenn ich online schaue.
hab nur den teil
Code:
un m 98.4
spb WEIT
AUF DB 78
L 0
L #OB1_PREV_CYCLE
T DBW 0
L #OB1_MIN_CYCLE
T DBW 2
L #OB1_MAX_CYCLE
T DBW 4
R M98.4
 
WEIT: NOP 0
 
laufen tuts!

nur beim laden gibt er mir ne 1 (AKKU) (bzw. DBW) raus. ich dachte es werden zeiten angezeigt?

oder bin ich auf dem holzweg?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo mknoellner,

es ist durchaus möglich, dass der Zyklus nur 1 ms lang ist.
Geh' doch mal hin und trage in der HW-Config eine Min.-Zykluszeit ein.

@Crash und Gerhard:
nach dem SPB ist das VKE immer = 1 (SET ist also nicht notwendig).
S7-Online-Hilfe:
Wenn VKE = 0, wird der Sprung nicht ausgeführt. Das VKE wird auf "1" gesetzt und der Programmablauf wird mit der folgenden Anweisung fortgesetzt.
Grüße
Gebs
 
@Crash und Gerhard:
nach dem SPB ist das VKE immer = 1 (SET ist also nicht notwendig).
S7-Online-Hilfe:
Grüße
Gebs

Das sehe ich anders.
bei VKE=1 wird der Sprung ausgeführt und der Programmteil nicht bearbeitet.
Bei VKE=0 wird nicht gesprungen und der Programmteil wird ausgeführt - somit funkt der Reset nicht.
 
ahhhhhh jeeeeeeeetzt jaaaaaaa.

also in PLCSIM zeigt er mir brav die Werte an.. werde nachher oder morgen noch mal zur Anlage gehen und es direkt an der 417 testen.
und dort dann ggf die min.cycletime raufsetzen.
gebe dann noch mal bescheid.

viele dank erst mal
 
es geht mit und ohne zumindest in der PLCSIM.

jedoch finde ich es auch sauberer, direkt davor eine bedingung zu sehen/erkennen die das rücksetzten beeinflusst.
daher ist SET schon leserlicher.



so noch eine allgemeine frage zum verständniss.
in der s5 wird die lösung des problems durch

a db xyz
l kb 1
spa ob 152
t dw xyz

realisiert.
jedoch sollte doch bei der rückgabe im akku1 die aktuell abgelaufene zeit des zyklus stehen. ist es überhaupt sinnvoll diese auszuwerten. wenn der ob152 durch einen 1s weckalarm aufgerufen wird?
1. wird doch jedesmal an einer anderen stelle im programmablauf "gemessen"
2. was will man dann mit diesem wert?
 
du kannst sowieso immer nur den letzten durchlaufenen zyklus messen,und die zeit steht dann wieder für einen zyklus in der temp variable

auszug aus der Hilfe
Code:
Lokaldaten des OB 1
Die folgende Tabelle beinhaltet die temporären (TEMP) Variablen des OB 1. Als Variablennamen wurden die Defaultnamen des OB 1 gewählt.
Variable Datentyp Beschreibung
OB1_EV_CLASS BYTE Ereignisklasse und 
Kennungen: 
B#16#11: OB 1 ist aktiv
OB1_SCAN_1 BYTE · B#16#01: Abschluss des 
Neustarts (Warmstarts)· B#16#02: Abschluss des 
Wiederanlaufs· B#16#03: Abschluss des
freien Zyklus· B#16#04: Abschluss des 
Kaltstarts· B#16#05: Erster OB 1-Zyklus der neuen Master-CPU nach Master-Reserve-Umschaltung und STOP des bisherigen Masters
OB1_PRIORITY BYTE Prioritätsklasse: 1 
OB1_OB_NUMBR BYTE OB-Nr. (01)
OB1_RESERVED_1 BYTE Reserviert
OB1_RESERVED_2 BYTE Reserviert
[COLOR=red]OB1_PREV_CYCLE INT Laufzeit des vorherigen 
Zyklus (ms)
[/COLOR]OB1_MIN_CYCLE INT Minimale Zykluszeit (ms) seit 
dem letzten Anlauf
OB1_MAX_CYCLE INT Maximale Zykluszeit (ms) seit 
dem letzten Anlauf
OB1_DATE_TIME DATE_AND_TIME Datum und Uhrzeit, zu denen 
der OB angefordert wurde
 
Zuletzt bearbeitet:
Hallo mknoellner,

falls es immer noch nicht geht lass es doch erst mal zyklisch durchlaufen:
Und zwar so:

Zwangsschleife zur Steigertung der Zykluszeit

Wart: NOP 0
L MD 10
L 2#1
+D
T MD 10
L 2#10000
<D
SPB Wart
L 0
T MD 10

L #OB1_PREV_CYCLE
T DB78.DBW 0
L #OB1_MIN_CYCLE
T DB78.DBW 2
L #OB1_MAX_CYCLE
T DB78.DBW 4

Wenn Du das nicht so schreibst kannst Du das Programm nie auf Symbolische Programmierung umstellen und das ist Gold wert. :D
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Zwangsschleife zur Steigertung der Zykluszeit

Wart: NOP 0
L MD 10
L 2#1
+D
T MD 10
L 2#10000
<D
SPB Wart
L 0
T MD 10

L #OB1_PREV_CYCLE
T DB78.DBW 0
L #OB1_MIN_CYCLE
T DB78.DBW 2
L #OB1_MAX_CYCLE
T DB78.DBW 4

Wenn Du das nicht so schreibst kannst Du das Programm nie auf Symbolische Programmierung umstellen und das ist Gold wert. :D

danke für den tipp mit der symbolischen programmierung. das habe ich mir gleich zu herzen genommen.
ich habe die 417-4 noch mal mit der zwangsschleife getestet. bzw. mit einer ählichen.. die zykluszeit bleibt aber um 1ms, bzw. ich habe sie auf 5 hochbekommen. mit dem eintrag min. zykluszeit in den cpu-eigenschaften natürlich noch weiter. sie scheint jedoch ziemlich fix zu sein.

vielen dank noch mal
 
Zurück
Oben