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

Ergebnis 1 bis 7 von 7

Thema: Aufbau einer Statemachine

  1. #1
    Registriert seit
    04.02.2013
    Beiträge
    271
    Danke
    12
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo, ich brauche mal eure Fachliche Meinung.... ich möchte gerade für einen bestimmten Ablauf eine Statemachine aufbauen.

    Meine Frage ist jetzt folgende.... ich setze bei den verschiedenen stetes verschiedene Bits.
    Sollte man Das Bit A bei der Abfrage zum Übergang von State 0 zu State 1 setzen, oder erst direkt in State B?

    Bsp:
    Code:
    Case State OF 
     0:
        IF Bedingung THEN
             A := TRUE;
             State := 1;
     1:
        Weitere Bedingungen...
    END_CASE
    oder besser so:
    Code:
    Case State OF 
    
     0:
        IF Bedingung THEN
             State := 1;
     1:
        A := TRUE;
        Weitere Bedingungen...
    END_CASE
    Was meint Ihr dazu... wenn ich das Bit erst in State 1 setze, ist es einen Zyklus verzögert, aber man hat direkt ne Zuordnung zu dem State, wo das Bit gesetzt wird.
    Eventuell kann es ja sein, dass man später nochmal von wo anders in den State springt... dann müsste man es nicht in jeder If abfrage setzen, sondern es würde immer direkt im State gesetzt werden... was meint Ihr?
    Zitieren Zitieren Aufbau einer Statemachine  

  2. #2
    Registriert seit
    17.07.2009
    Ort
    Am Rande der Ostalb
    Beiträge
    5.476
    Danke
    1.138
    Erhielt 1.238 Danke für 971 Beiträge

    Standard

    Es gibt beide Varianten (und noch zig andere auch).
    Wichtig ist nur, dass du es einheitlich machst.

    Du kannst dir aber auch einfach AS (Ablaufsprache) anschauen.
    Dort programmierst du deine Statemachine / Schrittkette grafisch und hast sie sozusagen auch gleich dokumentiert.

    Gruß
    Dieter

  3. Folgender Benutzer sagt Danke zu Blockmove für den nützlichen Beitrag:

    SY50 (29.11.2014)

  4. #3
    SY50 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    04.02.2013
    Beiträge
    271
    Danke
    12
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke... ich habe mich jetzt für die Variante entschieden, bei der die Werte erst gesetzt werden, wenn der State auch wirklich aktiv ist... so ist ein rückspringen denken ich leichter zu realisieren... ps. in AS wäre es ja auch so.

  5. #4
    Registriert seit
    12.11.2014
    Beiträge
    22
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    bei speicherprogrammierten Steuerungen ist es eigentlich nicht so wichtig, ob sagen wir mal ein Ausgang mit dem Zyklus gesetzt wird in dem auch der nächste Zustand angewiesen wird, oder in dem nächsten Zustand.

    Das ist eigentlich nur für Aufgaben wie Kommunikationsschnittstellen wichtig, bei denen die Signalverläufe pro Zyklus fest vorgeschrieben sind.

  6. #5
    Registriert seit
    29.07.2008
    Beiträge
    143
    Danke
    4
    Erhielt 27 Danke für 21 Beiträge

    Standard

    Hallo

    ein Setzen des Ausganges eines Zyklus früher hat den Vorteil das bei höheren Zykluszeiten das z.B. Ventil früher schaltet. Die Zykluszeit zur Herstellung kann dadurch verringert werden und somit die hergstellte Menge erhöht werden.

    daher nutze ich in solchen Fällen diesen Ansatz:

    Case State OF
    0:
    IF Bedingung THEN
    State := 1;
    1:
    Weitere Bedingungen...
    END_CASEA := State = 1;

  7. #6
    Registriert seit
    29.07.2008
    Beiträge
    143
    Danke
    4
    Erhielt 27 Danke für 21 Beiträge

    Standard

    sorry

    kein leerzeichen


    Hallo

    ein Setzen des Ausganges eines Zyklus früher hat den Vorteil das bei höheren Zykluszeiten das z.B. Ventil früher schaltet. Die Zykluszeit zur Herstellung kann dadurch verringert werden und somit die hergstellte Menge erhöht werden.

    daher nutze ich in solchen Fällen diesen Ansatz:

    Case State OF
    0:
    IF Bedingung THEN
    State := 1;
    1:
    Weitere Bedingungen...
    END_CASE



    A := State = 1;

  8. Folgender Benutzer sagt Danke zu Oerw für den nützlichen Beitrag:

    SY50 (01.12.2014)

  9. #7
    SY50 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    04.02.2013
    Beiträge
    271
    Danke
    12
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hey, den Ansatz finde ich super... Habe ich schon mal gesehen, aber wieder verdrängt.... Aber ist klasse, man könnte es ja auch so aufbauen, dass man eine case Abfrage nur für die Zustände benutzt und eine nur für die dem entsprechenden Befehle, bzw. Ausgaben... Also so...

    Code:
    Case State Of
    
    0: If Bedingung Then
            State := 1;
        End_If
    
    1: Weiter Bedingungen
    
    End_Case
    
    Case State Of
    
    0: Irgend eine Zuweisung
     
    1: A := True;
    
    2: Weiter Zuweisungen
    End_Case
    finde ich gut

    der Nachteil ist allerdings, dass man bei rückwärtsmöglichkeiten immer in jedem Schritt zumindest den im nächsten Schritt gesetzten Zustand negiert drin hat...

    bsp... Im Schritt 1 wird a gesetzt und in Schritt 2 wird b gesetzt..... Wenn ich jetzt von 2 nach 1 springen kann, dann muss ich in Schritt 1 big a true setzten und bit b. Falle setzen.

    anders könnte ich es in der Abfrage zum Sprung auf Falle setzen... Man muss also Wissen aus welchem Schritt zurück gesprungen werden kann und diese Signale auch verarbeiten
    Geändert von SY50 (01.12.2014 um 21:59 Uhr)

Ähnliche Themen

  1. Aufbau einer Schirmschiene
    Von connysus im Forum Elektronik
    Antworten: 2
    Letzter Beitrag: 28.01.2013, 18:19
  2. Aufbau einer Typdatei (.200)
    Von centipede im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 06.08.2007, 14:39
  3. Allgemeiner Aufbau einer SPS
    Von BastiMG im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 29.05.2007, 12:10
  4. Aufbau einer Lageregelung
    Von Alice D. im Forum Simatic
    Antworten: 22
    Letzter Beitrag: 03.08.2006, 16:42
  5. Aufbau einer ISDN - Teleservice Verbindung
    Von Hideout im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 13.05.2004, 21:57

Lesezeichen

Berechtigungen

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