TIA Timer - TON - SCL - Startet nicht

Zuviel Werbung?
-> Hier kostenlos registrieren
Transition von Zustand "läuft nicht" nach "läuft", dann bräuchte man keine eigene Flanke außerhalb des Zustandsdiagramms und es kann keinen undefinierten Zustand geben. Oder dieses Verhalten ist durch die IEC festgelegt, kann ich mir aber auch kaum vorstellen, da sich die TIA-TONs ja schon sehr grundlegend anders verhalten.

IEC-Timer benötigen meistens einen Trigger um den Ablauf zu starten
(bei Siemens ganz sicher).

Mir ist zwar der Sinn der Logic mit dem TRUE nicht ganz klar, aber
wenns so benötigt wird dann einfach folgendes Programmieren:

// Entweder

#t_in := NOT "TempStabilityTON".TON.Q // kann direkt ausserhalb des BST-Aufrufes erfolgen
"TempStabilityTON".TON(IN := #t_in,
PT := #Delay,
Q => #t_out,
ET => #t_et);

IF #t_out THEN

// Programm (Einmaliger Durchlauf alle n Zeiteinheiten )

END_IF;

// Alternativ:

#t_in := NOT "TempStabilityTON".TON.Q // kann direkt ausserhalb des BST-Aufrufes erfolgen
"TempStabilityTON".TON(IN := #t_in,
PT := #Delay);

// weitere Parameter sind hier nicht erforderlich (Q;ET) !
// Nachfolgendes kann an belibiger Programmstelle stehen.

IF "TempStabilityTON".TON.Q

// Programm (Einmaliger Durchlauf alle n Zeiteinheiten)

END_IF;

Es sei darauf hingewiesen, dass der TON-Baustein Zyklisch
aufgerunfen werden muß, da die Zeit (Systemzeit) zwar witerläuft,
jedoch keine Auswertung erfolgen kann (Ausgaben).
Es wäre evtl. auch ratsam den TON in der Instanz und nicht
mit Festem DB zu benutzen.

Gruß

A.
 
Ich möchte aber nicht um jeden TON-Timer im Programm herumprogrammieren, sondern einfach nur einen TON-Timer der funktioniert, und keinen internen undefinierten Zustand besitzt. Ich kann ja auch vor jeden Timer am IN ein "AND NOT SPS_Neuanlauf" setzen um die Flanke selber zu generieren. Ich hatte das Problem selber noch nicht, aber einen Timer bei IN=true einfach überhaupt nichts machen zu lassen, sehe ich als Fehler an. Oder es erklärt mir jemand einen sinnvollen Grund dafür (außer Siemens Standard-Antwort für Fehler "Systemverhalten").
 
Zuviel Werbung?
-> Hier kostenlos registrieren
wenn man hier Grundsatzdiskussionen eröffnet, dann muß man eigentlich
die Funktion TON genauer überprüfen!
Um hier villeicht mehr Klarheit zu schaffen sollte man sich die Urfunktion
eines Einschaltverzögerten Zeitrelais einmal anschauen, aus der der
TON-Timer Hervorgeht!
Auch dort ist ein neuer Trigger für einen neuen Zeitablauf erforderlich.
Das was der Kollege braucht ist ein Retrigger oder Blinkgeber.
Ein vergleich eines TON-Timers mit nicht SPS-geräten (auch nicht SW-SPS)
ist nicht Sinnvoll, da diese eine ganz andere Structur aufweisen.
In Assebler oder Hochsprachen wird entweder mit Delay gearbeitet,
Uncool da das ganze Programm oder Zumindest ein kompletter Task
aufgehalten wird, oder über einen Zusatztask mit Interrupt, dies dürfte
jedoch mehr aufwand sein als einen TON zu Parametrieren.

Mir sind in diesem Zusammenhang keine undefinierten Zustände
bekannt.

Für Diejenigen die es nicht lassen können, stehen immer noch die alten
57-Timer zur Verfügung, diese werden tatsächlich über Interrupt
bearbeitet und beim Hochlauf Initialisiert.
Sollen Diese danach in einer art Pulsbetrieb arbeiten, so werden auch hier neue Trigger
benötigt.

Ich kann ja auch vor jeden Timer am IN ein "AND NOT SPS_Neuanlauf" setzen um die Flanke selber zu generieren.

Für einen normalen Timer benötigt man kein "AND NOT SPS_Neuanlauf", da diese meist von einem Eingang
oder einer Schrittfolge abhängig sind.

Gruß

A.
 
Nachtrag:
Ich bin mir nicht ganz sicher, jedoch gab es bei der S7-Classic
ein Problem mit dem Zeitwert "0,0".
Leider weiß ich im Moment nicht genau ob dies im TIA geändert wurde.

Gruß
A.
 
Ich hatte das Verhalten mal zusammengefasst, das ist bei Siemens in allen Systemen unterschiedlich:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Für einen normalen Timer benötigt man kein "AND NOT SPS_Neuanlauf", da diese meist von einem Eingang
oder einer Schrittfolge abhängig sind.
Und wenn der Eingang schon bei CPU-Neustart TRUE ist und auch für ewig TRUE bleibt?🤔

Ich find auch, das ist schon eigentlich nen Bug beim TON...
 
Ist das denn so ein Drama an einem Timer zum starten eine Flake zu generieren??? (Hoffe das ist kompliziert genug ausgedrückt)

Muss man denn für eine Aktion nach SPS-Start unbedingt einen Timer nehmen und den Rotz über die gesammte Laufzeit mitschleppen???

Und JA, ich meine nicht jeder ist Programmierer nur weil er es tut.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Dann könnte man ( falls man wünscht, dass der/die Timer dann starten den Startupmerkur am IN mit verknüpfen ( AND NOT STARTUP )
ja schon klar, hat ja Thomas schon weiter oben geschrieben, woraufhin SPS-Totalizer meine, das brauchsts nicht.

Bsp. irgend nen DI der nachträglich über nen TON entprellt wird und ne Verriegelung in der Anlage macht. Normalerweise ist der halt immer true. Da baut doch niemand auf der Welt noch ne Verknüpfung mit nem Anlaufmerker dazu... 🙈

Wobei, früher bei CFC war das glaub auch schon so und wir haben wirklich bei jedem Timer ne Flanke dazugebaut... Muss ich nochmal nachschauen...
 
Ganz fies: wenn die TON-Instanz remanent ist und TON.IN beim Ausschalten TRUE war. Oder wenn jemand DB-Aktualdaten von DB mit Timer-Instanzen aus der CPU sichert und wieder in die CPU lädt. Oder eine Momentaufnahme von DBs mit Timer-Instanzen macht und in die Startwerte kopiert. Oder wenn TIA beim Hochrüsten einfach selbständig Häkchen bei "Einstellwerte" setzt: https://www.sps-forum.de/threads/iec-timer-phänomen-tia-v15-1.99199/
Also: TON.IN am besten immer mit FirstScan verknüpfen oder im Anlauf mit FALSE aufrufen.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also: TON.IN am besten immer mit FirstScan verknüpfen oder im Anlauf mit FALSE aufrufen.
Ja, scheint so 🙈
Wird das auch in den TIA 10min Videos so erklärt?
Da stimmt doch was nicht, wenn nen blöder Timer jetzt auf einmal zur Raketenwissenschaft mutiert🙈 Und vor allem warum?
Welcher Gelegenheitsprogrammierer denkt denn an sowas?
 
Wo soll denn da jetzt wieder das Problem sein?

Hat hier echt die Güte: "TIA ist ja so schlecht! Ich hab zwar keine Ahnung von dem was ich da mache, aber das es nicht geht ist TIA schuld!"

Vielleicht mal überlegen was denn ein Timer ist bzw. sein soll.

Welcher Gelegenheitsprogrammierer denkt denn an sowas?

Und eben genau darum: Geht Blümchen pflanzen (für die Bienchen) oder pflanzt Bäume (Da habt ihr was zu tun).

Aber bitte überlasst das Programmieren den PROFIS!!!
 
Zurück
Oben