TIA AWL Sprungbefehl TIA 18

Seal-12

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen. ich habe ein anliegen und hoffe, dass hier jemand einen Tipp hat.
Ich möchte in der Schrittkette den Timer laufen lassen, wenn nur eine bestimmte Baureihe auf der Maschine läuft, nenne wir sie mal M 1.0,
bei allen andere Baureihen soll der Timer übersprungen werden und auf die gelbe Markierung springen. Bin da mit den Sprungbefehlen nicht ganz fit.

Vielen Dank



am1741332352214.png habe eine e
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du brauchst nicht springen.
Im einfachten Fall reicht es die Abfrage des Timers mit Oder-Nicht M1.0 zu "überbrücken".

Um Mmemonik und Klammern darfst du dich selber kümmern.
Allgemeiner Tipp: Timer zu überspringen ist meist keine gute Idee.
 
Macht es überhaupt einen Sinn den Timer mit 0s zu starten? Oder steht da in Wirklichkeit eine andere Zeit?
Vielleicht hat der Programmierer sowas in anderen Programmiersprachen gesehen und dann auch in der S7-300 verwendet?
In manchen Programmiersprachen wird auf diese Art ein Timer zurückgesetzt oder gestoppt.
Ob das auch bei den Timern in der S7-300 funktioniert?? :unsure: Schaue in die Programmierreferenz von Step7 von Siemens. Falls dieses Detail da nicht dokumentiert ist, dann probiere es mit einer S7-300 CPU aus.
Für die Migration wichtig: Ob sich die Legacy-Timer in der S7-1500 im Detail auch so verhalten?? :unsure: Schaue in die Referenz in TIA, oder probiere es aus, und hoffe, dass Siemens nicht dokumentiertes Verhalten nicht irgendwann mal ändert.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
In manchen Programmiersprachen wird auf diese Art ein Timer zurückgesetzt oder gestoppt.
Bei einer Einschaltverzögerung (wie TON) müsste der Aufruf des Timers mit T#0s "logischerweise" dazu führen, dass der Ausgang des Timers sofort durchschaltet, da ja die Verzögerungszeit 0s beträgt. Aber ob dieses Detail bei Siemens tatsächlich so implementiert ist?? Ausprobieren! :unsure: T#0s wird in verschiedenen Programmiersystemen meistens irgendwie speziell behandelt.
 
Bei einer Einschaltverzögerung (wie TON) müsste der Aufruf des Timers mit T#0s "logischerweise" dazu führen, dass der Ausgang des Timers sofort durchschaltet, da ja die Verzögerungszeit 0s beträgt.
Bei T#0s schaltet der Ausgang des Timers (TON) nicht sofort durch, erst einen SPS-Zyklus später.
Hatten da selbst schon so unsere Probleme mit T#0s, als man kurz was ohne Verzögerung testen wollte und dann trotzdem einen minimalen Versatz hatte. Zumindest war es bei den alten TIA-Versionen noch so.
Seitdem ich das damals jedoch rausgefunden habe, nutze ich kein T#0s mehr, selbst wenn es nur schnell für einen Test ist.

Die sauberste Lösung ist, den Timer dann zu verodern und in den erfoderlichen Situationen somit nichtig zu machen.
 
Zurück
Oben