easy-forum
Deutsch - Software => easySoft => Thema gestartet von: Andrus Saar am November 09, 2024, 01:43:33 Vormittag
-
Der RETURN-Befehl unterbricht die Ausführung des Programms und kehrt zum Anfang zurück, aber kann dies mit einem Zwischenteil (d.h. Überspringen von Code) in ST geschehen?
Und kann dies wiederholt geschehen (um die Programmzykluszeit zu verringern)?
(Übersetzt auf Deepl.com freie Version)
Andrus
-
Hallo,
ich verstehe das von Ihnen beschriebene Szenario noch nicht ganz. Möglicherweise ist Ihnen jedoch das easyE4 Handbuch auf Seite 662 im Abschnitt "8.1 Abarbeitung eines Programms" behilflich:
Ref: https://www.eaton.com/content/dam/eaton/technicaldocumentation/mn/MN050009_DE.pdf (http://Ref: https://www.eaton.com/content/dam/eaton/technicaldocumentation/mn/MN050009_DE.pdf)
Beste Grüße
-
Ich habe ein Demoprogramm auf dem Controller mit drei Themen. Alle basieren auf Schaltausgängen von zwei Lichtschranken. Die Programmteile müssen nicht gleichzeitig laufen. Daher wäre es eine gute Idee, einen Abschnitt (ein ganzes Thema) zu überspringen, der im Moment nicht benötigt wird.
Nur der Anfangsabschnitt mit der Auswahl des Themas und dem Status der Eingänge (Kantenerkennung) wird wiederholt verwendet.
Das Problem ist, dass, wenn die Fotosensoren nebeneinander liegen und man sich schnell durch sie hindurchbewegen kann, ein +/- Zähler zum Beispiel in manchen Fällen ein falsches Ergebnis anzeigt - man bewegt die Hand nach rechts (der Zähler sollte um eins steigen), aber das Ergebnis sinkt um eins. Aber nicht immer.
Es ist möglich, dass der Code nicht optimal ist oder die Befehle zu dicht beieinander liegen. Oder die Zykluszeit des Programms ist zu lang.
Übersetzt mit DeepL.com (kostenlose Version)
-
Es ist schwer ohne Code etwas verstehen.
Du kannst mit CASE solche Sachen behandeln, meiner Meinung nach.
-
Hallo!
Ohne Code ist es schwer etwas verläßliches zu sagen. Aus der Beschreibung der Funktion habe ich folgendes verstanden:
Andrus hat Probleme schnelle Signale von zwei nebeneinanderliegenden Lichtschranken auszuwerten.
Wird LS1 und danach LS2 belegt, soll +1 gezählt werden.
Wird LS2 und danach LS1 belegt, soll -1 gezählt werden.
Unabhängig von der Zykluszeit. Diese will er so kurz wie möglich halten, um kurze Impulse zu erkennen. <== ungenau!
Mein Vorschlag wäre einer der beiden vorhandenen CI Inkrementalzähler zu verwenden.
LS1 = I1 wäre Spur A
LS2 = I2 wäre Spur B
vielleicht wäre das ein Ansatz.
Dann wäre er nicht von der Zykluszeit abhängig.
Gruß,
ELWMS