Autor Thema: (ST) Frage wenn etwas über die Zeit angesteuert werden soll.  (Gelesen 2419 mal)

Offline SphaeroX

  • Newbie
  • *
  • Beiträge: 5
(ST) Frage wenn etwas über die Zeit angesteuert werden soll.
« am: Februar 08, 2021, 19:22:18 Nachmittag »
Guten Tag,

ich habe eine Frage bezüglich der Programmierung in ST.

Wenn ich z.b. einen DigtalOut 500ms ansteuern möchte kann ich das ja nicht so einfach über das Zeitrelai machen, da ich mir ja einen extra Merker setzen muss dass das Zeitrelai einmal ausgeführt wurde, sonst wird es ständig beschaltet, richtig?

// MW100 ist die Zeit wie lange Q1 angesteuert wird, 500 der Sollwert
IF MW100 = 500 THEN
M1 := TRUE; // Schritt auf fertig setzen
    Q1 := FALSE; // Signal aus
ELSIF
M1 := FALSE; // Schritt auf nicht fertig setzen
Q1 := TRUE; // Signal an
MW100 + 1;
END_IF;


Das würde ja anhand der Zyklustakte das ganze 500 Zyklen an schalten, geht das auch irgendwie mit millisekunden?
Die SPS müsste doch einen internen Zähler als Variable oder sowas haben dachte ich mir...

Oder wie wäre das ganze am geschicktesten, so das man es auch zurücksetzen kann und später nochmals 500ms ansteuern kann.

Sorry ich bin noch ganz neu, programmiere normalerweise andere Sachen und muss mich erst noch rein finden in die Welt in der nicht alles von einer Programmiersprache vorgegeben wird :D

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 709
  • Think easy!
    • mollgruppe
Antw:(ST) Frage wenn etwas über die Zeit angesteuert werden soll.
« Antwort #1 am: Februar 08, 2021, 20:19:33 Nachmittag »
Hallo Sphaerox,

das geht einfach mit einem Timer als Impuls eingestellt.
M100:= 500;  //oder auch anderer Wert variabel zuweisbar
//Timer 01 Impulsformend, Auflösung 5ms konfiguriert
T01 (
EN := M01, //Start des Impulses
RE := ,
ST := ,
I1 := M100, //oder direkt T#500ms als fester wert
I2 := ,
Q1 => ,
QV => );
Q01:= T01Q1; //Q01 ansteuern

Gruß Thomas
Weil Einfach einfach Einfach ist!

Offline weiss_nix

  • Sr. Member
  • ****
  • Beiträge: 594
  • it has to be easy, it's a easy!
Antw:(ST) Frage wenn etwas über die Zeit angesteuert werden soll.
« Antwort #2 am: Februar 09, 2021, 09:15:58 Vormittag »
Hallo SphaeroX,
so wie Thomas hätte ich es auch vorgeschlagen ...
Alternativ kannst du die Millisekunden mit dieser Anwenderfunktion gesondert auswerten und eigene Timer bauen, aber ohne triftigen Grund nimm die Systembausteine ... ist einfacher.

@Thomas: im Codeschnipsel sollte vmtl. MW100 sein (Finger schneller als der PC  ;) )

Gruß
« Letzte Änderung: Februar 12, 2021, 04:43:00 Vormittag von weiss_nix »
Sollte ich (gefährliches) Halbwissen verbreiten, beuge ich demütig mein Haupt mit der Gewissheit versagt zu haben!
WICHTIG: Sämtliche Programme dienen lediglich der Veranschaulichung von Funktionen und sind nicht für den Produktiveinsatz geeignet!

Offline SphaeroX

  • Newbie
  • *
  • Beiträge: 5
Antw:(ST) Frage wenn etwas über die Zeit angesteuert werden soll.
« Antwort #3 am: Februar 09, 2021, 22:43:36 Nachmittag »
Beide antworten genial und genau das was ich gesucht habe, vielen Dank euch!

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 709
  • Think easy!
    • mollgruppe
Antw:(ST) Frage wenn etwas über die Zeit angesteuert werden soll.
« Antwort #4 am: Februar 13, 2021, 08:44:13 Vormittag »
Ja, natürlich sollte es MW100 sein.
Das Forum ist aber fast wie ein Compiler und meckert auch, wenn der Code Fehlerhaft ist.  ;)
Weil Einfach einfach Einfach ist!

Offline weiss_nix

  • Sr. Member
  • ****
  • Beiträge: 594
  • it has to be easy, it's a easy!
Antw:(ST) Frage wenn etwas über die Zeit angesteuert werden soll.
« Antwort #5 am: Februar 13, 2021, 09:03:09 Vormittag »
@Thomas; *gggg*, ich hoffe du verstehst es als Joke ...

PS: ich für meinen Teil bin froh über meckernde Compiler! Sonst würden meine Programm nie funktionieren  ;D
Sollte ich (gefährliches) Halbwissen verbreiten, beuge ich demütig mein Haupt mit der Gewissheit versagt zu haben!
WICHTIG: Sämtliche Programme dienen lediglich der Veranschaulichung von Funktionen und sind nicht für den Produktiveinsatz geeignet!