Autor Thema: RETURN in ST-Sprache ?  (Gelesen 197 mal)

Offline Andrus Saar

  • Jr. Member
  • **
  • Beiträge: 21
RETURN in ST-Sprache ?
« 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
« Letzte Änderung: November 09, 2024, 21:36:39 Nachmittag von Andrus Saar »

Offline ubiot

  • Newbie
  • *
  • Beiträge: 3
Antw:RETURN in ST-Sprache ?
« Antwort #1 am: November 11, 2024, 13:16:45 Nachmittag »
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

Beste Grüße

« Letzte Änderung: November 11, 2024, 13:19:30 Nachmittag von ubiot »

Offline Andrus Saar

  • Jr. Member
  • **
  • Beiträge: 21
Antw:RETURN in ST-Sprache ?
« Antwort #2 am: November 12, 2024, 04:34:07 Vormittag »
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)

« Letzte Änderung: November 12, 2024, 04:41:38 Vormittag von Andrus Saar »

Offline ssyn

  • Jr. Member
  • **
  • Beiträge: 51
Antw:RETURN in ST-Sprache ?
« Antwort #3 am: November 12, 2024, 10:40:41 Vormittag »
Es ist schwer ohne Code etwas verstehen.

Du kannst mit CASE solche Sachen behandeln, meiner Meinung nach.


Offline ELWMS

  • Jr. Member
  • **
  • Beiträge: 99
  • 400er...500...800...e4...Galileo
Antw:RETURN in ST-Sprache ?
« Antwort #4 am: November 14, 2024, 10:43:02 Vormittag »
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 

C64...ABB ACS100 bis 880...ABB SAL...EPLan P8...STEP7...300/400 & TIA... EASY E4... GALILEO... EATON SWD... SEW...STÖBER...AUTOSEN...IT...PROFIBUS...PROFINET