Sind IEC-Timer sicherer (zuverlässiger) als S5-Timer ?
Wenn Nein, warum werden im Safety-Teil nur IEC-Timer angeboten ?
Wenn ja, warum werden immer noch S5-Timer im Standardprogramm
Gruß
Der Unterschied zwischen den S5-Timern und den IEC-Timern ist bei S7 Classic ein recht grober:
Die S5-Timer werden von der Firmware direkt bearbeitet - jeder Timer hat seine fixe Speicherstelle und seinen Platz in Scheduler, wann er dran kommt. Das ganze geschieht im Hintergrund, parallel zur Ausführung des Anwenderprogramms. Fragt man den Timer ab, so bekommt man immer den aktuellen Zustand.
Wenn man nun in einem AWL-Programm folgendes rein schreibt:
Code:
UN M0.1
L S5T#100MS
SE T0
X T0
X T0
= M0.0
U T0
= M0.1
Kann es sporadisch vorkommen, dass M0.0 = TRUE wird - die Wahrscheinlichkeit ist niedrig.
Ich hatte schon Situationen, wo ein S5-Timer im OB1 mehrfach abgefragt wurde, zwischen den Abfragen waren einige 100 Zeilen AWL-Code auf einer 314er-CPU V1.2 (also eine langsame Krücke). Da ist die Wahrscheinlichkeit, dass das Phänomen auftritt, schon im Bereich von einigen %.
Vermeiden lässt sich dieses Phänomen, indem man einen Timer grundsätzlich nur 1 mal abfragt, auf einen Merker legt und nur noch den Merker weiterverwendet (wurde auch so bei uns in die Norm aufgenommen).
Bei IEC-Timern existiert dieses Phänomen nicht, da der Ausgang Q immer nur dann aktualisiert wird, wenn ein TON-Aufruf mit der entsprechenden Instanz ausgeführt wird.
Zum Thema Safety:
Wer sich schon mal Gedanken darüber gemacht hat, wie Siemens auf den S7-Steuerungen seine Sicherheit erreicht, dem ist vermutlich aufgefallen, dass jedes Stück F-Code doppelt abgearbeitet wird. Der erste "Kanal" ist jenes Programm, das der Anwender schreibt. Der zweite "Kanal" wird vom Compiler generiert. Der F-CALL kümmert sich darum, dass beide Kanäle aufgerufen werden und dass beide Kanäle das gleiche liefern.
Ein sicherer IEC-Timer lässt sich so recht einfach implementieren, indem der F-CALL die Systemzeit abspeichert, dann die beiden redundanten Timer (nacheindander - mit viel Zeit dazwischen) abarbeitet - die sich beide auf die gespeicherte Systemzeit beziehen - und am Ende prüft der F-CALL wieder, ob beide Timer das gleiche ausgeben und ob die gespeicherte Systemzeit eh nicht manipuliert wurde. Ich weiß nicht, wie genau das Siemens implementiert - aber soweit weg von der Realität bin ich wohl nicht.
Das ganze nun mit S5-Timern zu realisieren - wo zum Einen der Zeitpunkt, an dem der Timer abgefragt wird, für das Ergebnis eine Rolle spielt, zum Anderen die Timerbildung im Hintergrund in der Firmware geschieht (wie zum Teufel prüft man das) - ist imho zwar möglich - aber praktisch kaum zu realisieren - und vor allem auch nicht sinnvoll.
lg