SPS S7 Timer AWL 10ms verringern

OP #4160870
Lesenswert?
• ▲
▼
Hallo liebe SPS-Freunde,

ich habe folgendes Problem:

Der Timer einer S7-400 kann in AWL-Sprache nur auf minimal 10ms gesetzt 
werden.

Meine SPS arbeitet mit einer Zykluszeit von 3ms.

Gibt es einen Trick wie ich diesen Timer auf 3-4ms herunter bekomme?

Ich habe nämlich eine Reihenfolge von Signalausgängen in 3-4ms-Takt 
abzuarbeiten...

Im schlimmsten Fall muß ich mehrere Schalter entlang der Strecke setzen 
um Interrupte auszulösen?!^^

Beste Grüße

Uni
Gast #4160922
Lesenswert?
• ▲
▼
Die Timer der S7 haben eine minimale Auflösung von 10ms.
Ein Ausgang kann nicht schneller als die Zyluszeit x2 der CPU takten.
Die normalen Ausgänge können als maximale Frequenz 100Hz abgeben.

Da die Zykluszeit jedoch je nach SPS Programm nicht stabil ist
(siehe Diagnosepuffer / Zykluszeit max.) würde ich mich darauf nicht
verlassen.

Ich würde es mit einem Weckalarm von 3-4ms versuchen.
Gast #4160931
Lesenswert?
• ▲
▼
Ich bin ein bisschen raus, aber gab es nicht mal einen sogenannten 
schnellen Interrupt.
Ansonsten: Ändert sich etwas, so wird ein Ausgang mit dem nächsten 
Zyklus geändert. Es ist also sinnlos zu versuchen schneller zu sein, da 
das Ereignis nicht früher nach "außen" geführt wird.
Gast #4160947
Lesenswert?
• ▲
▼
Amateur schrieb:
> aber gab es nicht mal einen sogenannten
> schnellen Interrupt.

Ich kenne das mit den Interrupts nur so das sie grösser der maximalen
Zyluszeit liegen müssen. Sonst kann der Aufruf nicht garantiert werden.

Sonst stimme ich Amateur zu, die Zykluszeit ist x2 zu nehmen.

Als Versuch könnte man den Ausgang lesen, bei "0" auf "1" steuern.
im nächsten Zyklus wieder lesen und auf "0" steuern.
Alles im OB1 programmieren.

Als  AWL:

un a 100.0
=a 100.0
***

Hiermit müsstge die maximale mögliche Frequenz erreichbar sein.
Gast #4160995
Lesenswert?
• ▲
▼
Bei mir ist's schon 25 Jahre her mit S5 Programmierung..

Damals gab es einen Befehl, mitten im Zyklus das Prozeßwort 
direkt/sofort zu schreiben.
Ob das jetzt ein Systembefehl (wie TAK) oder normale AWL war, weiß ich 
nicht mehr.

Damals - da hatte man Zykluszeiten von 450ms..550ms; und Ohweh, wenn es 
mal 700ms waren, dann hüpfte das Material aus dem Aufzug oben wieder 
raus..

Zeitkritische Programmteile waren dann in einem PB programmiert, der 
dann mehrmals pro Zyklus (OB1) aufgerufen wurde, und eben dieses direkte 
Peripheriewort Schreiben (und Lesen?).

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.