TIA Flanke generieren mit TON

chbg

Level-2
Beiträge
64
Reaktionspunkte
14
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen.

Ich wollte eigentlich eben nur eine Funktion testen und dachte mir ich baue mir schnell eine Togglebit mit einem 5 Sekunden Intervall.


Weiß einer von euch warum das nicht funktioniert:
Der Timer wird neu gestartet aber es kommt nie ein True auf dem Q laut Trace

1684238853275.png

1684239097404.png


So funktioniert es

1684238892101.png



Stehe gerade einfach am Schlauch.

(Getestet TIA 17 mit PLCSim und TIA 18 mit 1515SP)
 
Wenn du ein Zeitglied mit sich selbst abfragen willst, immer ein (statisches) Bit dazwischen, war schon bei s5 so.
 
Das ist schon immer so, daß man den Ausgang eines Timers auf eine Hilfsvariable legen muß, wenn der Timer sich selbst resetten soll. Weil sonst bekommt man das nach dem Timer-Aufruf nicht mit, daß während der internen Timer-Bearbeitung der Ausgang kurz aktiv war und sich der Timer sofort selbst resettet und deshalb auch der Ausgang gleich wieder auf 0 geht.

PS: zu langsam getippselt und telefoniert...

Harald
 
Das ist schon immer so, daß man den Ausgang eines Timers auf eine Hilfsvariable legen muß, wenn der Timer sich selbst resetten soll. Weil sonst bekommt man das nach dem Timer-Aufruf nicht mit, daß während der internen Timer-Bearbeitung der Ausgang kurz aktiv war und sich der Timer sofort selbst resettet und deshalb auch der Ausgang gleich wieder auf 0 geht.
Das war aber nur bei den S5-Timern so, die TON-Timer in den S7-300/400 besitzen dieses Sonderverhalten nicht. Ich finde das gerade bei Bausteinen die nach außen hin aussehen wie ein ganz "normaler" FB schwierig, dass diese sozusagen im Hintergrund ihr Eigenleben führen. Schade, dass das durch die IEC-Norm nicht fester definiert wurde. Vielleicht hat Siemens das aber auch mit Absicht gemacht, damit es möglich wenig mit anderen Steuerungen kompatibel wird (und außerdem mehr Speicher benötigt -> größere CPU kaufen -> mehr Geld für Siemens).
 
Bei den Moeller-Steuerungen war der negierte Ausgang unser Standardverfahren zut Takterzeugung.
Das zyklusasynchrone Verhalten der Siemens-Implementierung habe ich bisher immer für eine fragwürdige Marotte gehalten.
 
Hallo zusammen.

Ich wollte eigentlich eben nur eine Funktion testen und dachte mir ich baue mir schnell eine Togglebit mit einem 5 Sekunden Intervall.


Weiß einer von euch warum das nicht funktioniert:
Der Timer wird neu gestartet aber es kommt nie ein True auf dem Q laut Trace

Anhang anzeigen 68949

Anhang anzeigen 68951


Zeichnest du deinen Trace auch im selben OB auf, indem der Timer läuft oder hast du evtl. eine Untersetzungen (aufzeichnen alle) im Trace eingestellt?
Beachte, dass das Q nur maximal ein Zyklus auf "true" ist und evtl. im Trace nicht aufgezeichnet wird.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Da wär' ich mir jetzt nicht sicher.
Ich glaube das ist so eine Urban Legend, dass das bei den 300/400er auch schon so war. Siemens schreibt in einem FAQ zu diesen Spezialitäten der TONs in 1200/1500 selber, dass bei den 300/400ern die Q und ET Variablenwerte nur bei Aufruf des Bausteins aktualisiert werden. Und ich habe das schon so oft eingesetzt, das wäre bestimmt schon aufgefallen wenn das der Fall gewesen wäre.

Bei der 1200er ist mir das vor mittlerweile schon fast genau 10 Jahren aufgefallen:
 
Hier wurde das Thema auch noch gründlich diskutiert:
 
Kreative Lösung wäre der Taktgenerator gewesen (ein wenig mit Kanonen auf Spatzen geschossen, aber klappt). Du nimmst nen IMP und nen negierten IMP und schaltest die mit "Flankenmerker" zusammen. Auf alte TIA Versionen würde ich mich da auch nicht berufen, denn mir ist auch aufgefallen das die neuern Versionen teilweise anders den Code bearbeiten als früher (gerade SCL :-)
 
Zurück
Oben