TIA Zeitfunktion

Zuviel Werbung?
-> Hier kostenlos registrieren
hast Du im FC einen Siemens Timer definiert?
das geht so nicht, weil Du ein und den selben Timer mit True und False aufrufst, der letzte gewinnt.
Entweder ein FB mit IEC Timer machen oder jedem Aufruf des FC einen eigenen Timer über die Parameter spendieren.
 
Danke,ich versuche das jetzt mit einem FB. Kann ich im FB nur IEC-Zeiten benutzen? Weil ich würde gerne Simatic-Zeiten benutzen nur weiß ich nicht wie ich "static" mit dem timer vernüpfen kann, falls das geht.
 

Anhänge

  • 1.PNG
    1.PNG
    61,5 KB · Aufrufe: 39
Danke,ich versuche das jetzt mit einem FB. Kann ich im FB nur IEC-Zeiten benutzen? Weil ich würde gerne Simatic-Zeiten benutzen nur weiß ich nicht wie ich "static" mit dem timer vernüpfen kann, falls das geht.
Wenn Du unbedingt die Simatic-Timer nutzen möchtest, kannst Du auch alles im FC belassen und fügst lediglich die Timer-Nummer noch als Eingang ein. So kannst Du bei jedem Aufruf des FC1 einen individuellen Timer nutzen:

1644703977881.png

1644703923689.png


Für die Simatic-Timer solltest Du dann aber auch die dazugehörigen Simatic-Zeiten benutzen.


Andereseits würde ich mir die Verwendung dieser Zeiten auch nicht mehr angewöhnen, sondern wie von den Kollegen bereits erwähnt auf die IEC-Timer setzen. Bei der S7-1200 gibt es die Simatic-Timer z.B. schon nicht mehr.
 
Zuletzt bearbeitet:
Hallo zusammen. Ich versuche grade die Sps nachzuvollziehen was und wie die was macht. Ich verstehe nicht warum ich E0.0(Netzwerk1) und E0.2(Netzwerk2) eingeschaltet sein müssen, damit ich ein Output kriege. Das Programm arbeitet immer von oben nach unten!

-Wenn ich als erstes E0.0(Netzwerk 1) einschalte und dann E0.2(Netzwerk 2) speichert er die Zeit vom Netzwerk 1. Warum speichert er die Zeit von Netzwerk1 und nicht die von Netzwerk2? Programm läuft doch immer von unten nach oben, dann müsste er auch eigenltich nur die Zeit von Netzwerk2 speichern und nicht von Netzwerk1.


-Das gleiche passiert mit Netzwerk2 wenn ich das als erstes einschalte. Jetzt speichert er die Zeit von Netzwerk2 aber nicht von Netwerk1.

PS: Ich weiß das man es so nicht macht. Ich versuche nur die Schritte zu verstehen die der Computer macht. Kann mir das bitte einer Schritt für Schritt erklären was es da macht? Wäre lieb.
 

Anhänge

  • FUP.PNG
    FUP.PNG
    12,7 KB · Aufrufe: 27
  • AWL.PNG
    AWL.PNG
    18,8 KB · Aufrufe: 26
Zuviel Werbung?
-> Hier kostenlos registrieren
Setzte doch erstmal die Vorschläge von @hucki um, denn so wie du es aktuell machst, kann es nicht funktionieren, andernfalls einen FB anstatt FC nutzen, dann kannst du IEC-Zeiten als Multi-Instanz aufrufen.
 
Moin Thomas98,

die "Zeiten" müssen ja irgendwo speichern, wie viel Zeit vergangen ist. Die Funktion FC3 "Zeit" scheint keinen Speicherplatz zu haben, wo sie die Zeit speichern kann. Sollte in der Funktion ein Speicherplatz zur Verfügung gestellt werden, dann würde dieser Speicherplatz bei jedem Aufruf von "Zeit" überschrieben.
Es gibt imho zwei Möglichkeiten:
1. Es wird ein Funktionsbaustein mit zugehörigem Instanz-DB verwendet (der dann natürlich bei jedem Aufruf ein anderer sein muss!)
2. In der FC "Zeit" wird ein IO-Parameter deklariert, und an diesen wird eine gobale Variable verschaltet.


P.S.: wie sieht denn die FC3 "Zeit" intern aus?

VG

MFreiberger
 
@Ph3niX Es geht mir hier jetzt nur noch um die programmierung intern, also was die sps da genau macht. Das Programm kriege ich auch richtig zum laufen. Ich will halt den Fehler und den Verlauf verstehen. Ich bin neu und versuche Adressen ,Speicher zu verstehen ( Den Zyklus der SPS zu verstehen) . Zum Beispiel: variable a kommt in adresse ........ b kein speicherplatz dann benutze die zeit von an. u.s.w. Nur halt für diese kleine Programm. @MFreiberger das ist eine einschaltverzögerun(Sematic-Zeiten) und für die Zeit habe ich den Datentyp S5Time genommen. Ich weiß auch das man keine Sematic-Zeiten mehr nehmen sollte.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Da Du auf ein und den selben Timer speicherst, sieht Deine EVERZ nur das eigene Eingangssignal. Und hier speichert er nun den Zeitpunkt, wann dieses TRUE wird. Daß der Timer 2x aufgerufen wird und von außen mit unterschiedlichen Signalen beschaltet ist, bekommt der Baustein ja selber nicht mit. Somit wird immer der Zeitpunkt des TRUE gespeichert. Da im Folgenden Aufruf aber wieder ein FALSE kommt, schaltet wer nicht durch.
 
... Das Programm arbeitet immer von oben nach unten! ...

... Programm läuft doch immer von unten nach oben, ...
:unsure:
Du kannst nicht ein und denselben Timer gleichzeitig mit zwei verschiedenen Aufgaben beschäftigen.
Mit "gleichzeitig" ist nicht gemeint gleichzeitig starten und gleichzeitig stoppen. Die Aktivitäten dürfen sich nicht zeitlich überschneiden/überlappen.
 
Zurück
Oben