Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 4 von 4

Thema: Strukturierter Text (ST) , naive Frage

  1. #1
    Registriert seit
    04.12.2013
    Beiträge
    11
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Sorry für meine naive Frage, wenn ich folgendes laufen lasse, wird SOLLPOS ständig sehr schnell um 1 erhöht, so lange Schalter true ist:

    IF (Schalter = TRUE) THEN
    SOLLPOS := SOLLPOS + 1;
    AUSGANG1 := EINGANG1 AND EINGANG2;
    ELSE
    AUSGANG1 := FALSE;
    END_IF;

    Offensichtlich arbeitet die WAGO 750-881 das in einer Dauerschleife ab. Dieses Verhalten, ist mir von der Linux Programmierung her nicht bekannt und ich muss mich erst noch daran gewöhnen.
    Was muss ich ändern, damit SOLLPOS := SOLLPOS + 1; nur dann erfolgt wenn eine Zustandsänderung am Schalter erkannt wird?

    Vielen Dank
    amos
    Zitieren Zitieren Strukturierter Text (ST) , naive Frage  

  2. #2
    Registriert seit
    13.01.2013
    Beiträge
    626
    Danke
    26
    Erhielt 64 Danke für 59 Beiträge

    Standard

    Du hast die Möglichkeit dafür einen eigenen Task zu verwenden der entsprechend nur einmal durchlaufen würde oder aber was ich denke was einfacher und sinnvoller ist (vorallem für dich als Anfänger) dein Taster muss entprellt werden.
    Du definierst dir eine Var tasterTrig :R_Trig; und rufst in deinem Programm zuerst mal den Triger auf. TasterTrig(Clk:=DEINTASTER). Dann änderst du dein Prog etwas ab indem du nicht mehr sagt If DEINTASTER=True... Sondern If TasterTrig.Q then... Dann sollte das passen.
    Sorry für DEINTASTER aber bin nur mit dem Smarty online und kann deinen Var Namen nicht nachlesen, aber sollte ja kein Problem sein

  3. #3
    Registriert seit
    30.06.2007
    Ort
    Minden (Westf.)
    Beiträge
    178
    Danke
    42
    Erhielt 21 Danke für 21 Beiträge

    Standard

    Zitat Zitat von amos Beitrag anzeigen
    Offensichtlich arbeitet die WAGO 750-881 das in einer Dauerschleife ab. Dieses Verhalten, ist mir von der Linux Programmierung her nicht bekannt und ich muss mich erst noch daran gewöhnen.
    amos

    Das hast du schon richtig erkannt. Die SPS arbeitet zyklisch, das bedeutet eine Art Dauerschleife. Du brauchst eine Positive Flanke.



  4. #4
    Registriert seit
    14.08.2004
    Beiträge
    824
    Danke
    45
    Erhielt 73 Danke für 66 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Du brauchst eine State-Machine, weil wie schon angesprochen, die SPS den Kode zyklisch ausführt. Du braucht soetwas wie

    Wenn Schalter auf 0 war und jetzt auf 1 ist, dann erhöhe den Zähler um eins.

    Der angesprochene Funktionsbaustein R_TRIG() (Raising Flank Trigger) ist die Implementation davon.

    Da eine SPS wegen des zyklischen Betriebs keine Wartekommandos haben darf, gibt es auch kein Sleep etc und Prozesse - wie deiner - müssen per State-Machine implementiert werden.
    Geändert von drfunfrock (04.12.2013 um 20:01 Uhr)

Ähnliche Themen

  1. FOR-Schleife Strukturierter Text
    Von joern_85 im Forum CODESYS und IEC61131
    Antworten: 10
    Letzter Beitrag: 23.07.2013, 11:51
  2. Strukturierter Text _Temp need ya help
    Von skillrun im Forum CODESYS und IEC61131
    Antworten: 21
    Letzter Beitrag: 13.09.2012, 15:39
  3. Aufgaben Strukturierter Text
    Von Jumpinjack im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 27.01.2011, 23:27
  4. Strukturierter Text ????HÄ?????
    Von Pinky im Forum Programmierstrategien
    Antworten: 3
    Letzter Beitrag: 22.04.2010, 14:26
  5. Strukturierter Text
    Von bluebird277 im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 21.01.2010, 15:54

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •