TIA IEC Timer, PT-Änderung ohne Flanke am IN

ducati

Level-3
Beiträge
12.348
Reaktionspunkte
4.487
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin,

kurze Frage an die Poweruser der IEC-Timer:
Man will die Zeitdauer PT einstellbar machen, d.h. die Zeit könnte auch im laufenden Betrieb des Timers verändert werden.

Da kommen mir jetzt mindestens 3 Probleme unter:
- PT wird reduziert, unter den aktuellen Zeitwert ET -> Timer schaltet nie
- PT wird reduziert, über den aktuellen Zeitwert ET -> Timer schaltet erst, wenn altes PT erreicht wird
- PT wird erhöht -> Timer schaltet schon, wenn altes PT erreicht wird

Wie macht Ihr das??? Oder einfach nicht drüber nachdenken?

Das diese Dinger irgendwie für alles erstmal ne Flanke am IN benötigen ist doch irre?

1775571266032.png
wäre mir jetzt lieber, wenn der Q=true wäre 🤮
 
Zuletzt bearbeitet:
Es gibt standard initialisier Funktionen für die Timer.
laut Handbuch macht der --(PT) keine "Initialisierung" sondern schreibt nur den PT auf einen definierten Wert.
Ich schaue morgenfrüh mal
Danke.

Ich hab mir jetzt schon für alle meine Problemfälle was eigenes drumherum gebaut, aber das kanns ja nicht sein? (der Code wird durch den ganzen Kram auch irre unübersichtlich...)
Die Geschichte, dass der Timer ohne Flanke am IN nicht losläuft ist ja der nächste Irrsinn.

Ich weiss schon, warum ich die Dinger meide, wie der Teufel das Weihwasser. ;)

Sobald man bissl drüber nachdenkt, wird einem sofort schlecht.

Aber vielleicht gibts hier ja jemanden, der nen Patentrezept hat, um die IEC-Timer zu verwenden, ohne ständig drüber nachzudenken.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Soll der timer neu starten, sobald PT geändert wurde?
Wenn ja: vorm IN einen vergleicher der PT mit einer speichervariable verunden. Und nach dem timer die speichervariable mit der pt beschreiben.
Dann geht das vke für einen zyklus auf false, wenn die pt geändert wurde und man hat am IN die gewünschte flanke
 
Und wenn sich währen dem ablaufen der zeit wirklich die PT ändert, würd ich mir winen kleinen standardbaustein mit sekundenzähler bauen und einen vergleicher. Und zwei zeilen logik.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Soll der timer neu starten, sobald PT geändert wurde?
nö, eigentlich nicht.

👇
Anhang anzeigen 95393

Ich setze mittlerweile ausschließlich IEC-Timer ein und vermisse die Classic-Timer kein bisschen.
jo, wenn man die Fallstricke kennt... Ich würd jetzt auch keinen Vergleich IEC-Timer<->S5-Timer ziehen sondern zu nem vernüftigen intuitiven Timer ;)

Ich probier das die Tage mal mit dem -[PT]-
1775582325236.png
1775581908127.png

Also:
- wenn man den "Tag_PT" auch zur Laufzeit ändern will, muss man also noch zusätzlich zum Timer den -[PT]- hernehmen?
- darf dann "Tag_Input_2" wenigstens dauerhaft true sein, oder brauch ich da auch noch ne "Änderungserkennung"?
- der Timer schaltet dann sofort durch, wenn "Tag_PT" nach kleiner "Tag_ET" geändert wird?
- vor den IN dann noch nen "first_scan_Merker" setzen für ne einmalige Flanke bei CPU Neustart?
- der Timer läuft nur (ordentlich) wenn der Q mindestens einmal im Programm gelesen wird?
- wenn ich den Q konsistent brauche, muss ich den in ne zusätzliche Variable umkopieren?
- aufpassen, dass man den (Multi-)Instanz-DB nicht abzieht?
- Hab ich noch was vergessen?

Danke schon mal an alle.
 
Zuletzt bearbeitet:
der Timer läuft nur (ordentlich) wenn der Q mindestens einmal im Programm gelesen wird?
Dass kann tatsächlich ein fallstrick sein- wenn zb der Q in einer IF abfeage verwendet wird und diese nicht true ist.
Ich verschslte daher den Q immer gleich nach dem timer mit irgendwas. Am besten, mit was, das sinn ergibt
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Dann verstehe ich das problem nicht. Der TON läuft ja eh mit der bei der flanke am IN projektierten PT ab. Egal, ob sich die PT ändert.
Und bei einer neuerlichen flanke wird wieder die am PT vorgegebene zeit geladen.
Ich hab da ziemlich lange Zeiten, Stunden oder Tage...

Also der Timer steht aktuell bei PT 2D und ET bei 1h. Jetzt wird PT auf 10min geändert -> Q bleibt (mind. 47h) false.
Aber wie ich jetzt gelernt habe, ist das so gewollt und man braucht entweder ne neue Flanke am IN oder den zusätzlichen -[PT]- ...
 
wenn du wirklich den Q haben willst, sobald eine neue PT vorliegt und diese kleiner der ET ist, ohne dass der timer neu gestartet wird, würd ich wirklich einen kleinen standard- fb machen mit sekundenimpuls als eingang und zähler.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja aber das ist ja gerade das, was du willst- oder?
Das die zeit eben NICHT neu gestartet wird bei änderung der PT sondern abläuft
neu starten soll die Zeit nicht, aber der Timer halt bei Überschreitung des neuen PT durchschalten. Aber vielleicht geht das ja mit dem -[PT]- ...


wenn du wirklich den Q haben willst, sobald eine neue PT vorliegt und diese kleiner der ET ist, ohne dass der timer neu gestartet wird, würd ich wirklich einen kleinen standard- fb machen mit sekundenimpuls als eingang und zähler.
hab sonst meine eigenen Timer, nur hier in dem Projekt (noch) nicht.
Und da nutz ich mal die Gelegenheit, die ganzen Fallstricke von den IEC Timern mir anzuschauen ;)
 
neu starten soll die Zeit nicht, aber der Timer halt bei Überschreitung des neuen PT durchschalten. Aber vielleicht geht das ja mit dem -[PT]- ...



hab sonst meine eigenen Timer, nur hier in dem Projekt (noch) nicht.
Und da nutz ich mal die Gelegenheit, die ganzen Fallstricke von den IEC Timern mir anzuschauen ;)

Die IEC haben den namen ja nach einer norm. Sowas dürfte da nicht vorgesehen sein. Deswegen würd ich sowas eben selber in einem mini baustein ausprogrammieren.
 
Verstehe das ganze Problem irgendwie nicht so.

Wenn ich Zeitfunktionen haben möchte, die mit den Standard-IEC-Timern nicht abzubilden sind, dann baue ich mir einen eigenen Zeit-Baustein.

Zumindest mache ich es halt über diesen einfachen Weg, statt mir stundenlang über die Philosophie der Standard-Bausteine gedanken zu machen.
Normalerweise habe ich dafür auch keine Zeit, wenn ich Projekte am Programmieren bin.

Ganz einfache Vorgehensweise...
- Kann man es mit Standard-Funktionen sinnig lösen -> damit machen
- Kann man es nicht ohne weiteres mit Standard-Funktionen lösen -> nicht lange damit aufhalten, eigene Funktion schreiben

Im Prinzip hat sich bei den IEC-Timern, ja auch nicht viel zu den S5-Timern geändert. Daher sollte man das eigentlich wissen, dass eine neue Zeit mit einer Flanke am Eingang übernommen und neu gestartet werden muss. Das was du möchtest ist eigentlich ein Zeitvergleich, das löst man eigentlich anders.

Ansonsten Request an Siemens schreiben mit einem Verbesserungsvorschlag oder die IEC-Norm wälzen, ob das wirklich so normiert ist. :P
 
Zurück
Oben