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

Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 24 von 24

Thema: Schrittketten mit case

  1. #21
    Registriert seit
    24.02.2009
    Beiträge
    1.242
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Wenn man mehrere parallel laufende Schrittketten hat, wäre meiner Meinung nach dann doch AS die Sprache der Wahl.

  2. #22
    Registriert seit
    21.09.2011
    Beiträge
    13
    Danke
    2
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Man könnte das auch sehr gut mit CASE machen. Man muss dazu eine Hauptschrittkette haben und dann einen Schritt in dem die Parallelschritten sind. Diese Parallelablaufenden Schritte werden in zwei weitere Schrittketten (mit eigenen Schrittenumerationen) ausgeführt. Sobald man dann wieder zum Hauptzweig kommen soll, springt man in diesem Weiter.

    Bsp:

    Code:
    case iHauptschrittkette of
      Hauptschrittkette_Schritt1: //Irgendwelche aktionen
        iHauptschrittkette := Hauptschrittkette_ParallelSchritt;
    
      Hauptschrittkette_Schritt2: // Parallele Schrittketten sind hier enthalten
         case iParallelSchrittkette1 of
            ParallelSchrittkette1_Schritt1: 
                //Irgendwelche Aktionen
                iParallelSchrittkette1 := ParallelSchrittkette1_Schritt2;
    
            ParallelSchrittkette1_Schritt2: 
                //Irgendwelche Aktionen
        End_Case
        
        case iParallelSchrittkette2 of
            ParallelSchrittkette2_Schritt1: 
                 //Irgendwelche Aktionen
                iParallelSchrittkette1 := ParallelSchrittkette2_Schritt2;
    
            ParallelSchrittkette2_Schritt2: 
                //Irgendwelche Aktionen
        End_Case
        
        if iParallelSchrittkette1 = ParallelSchrittkette1_Schritt2
            And iParallelSchrittkette2 = ParallelSchrittkette1_Schritt2 then
            iHauptschrittkette := Hauptschrittkette_Schritt2;
        END_IF
      
      Hauptschrittkette_Schritt3: 
        //Irgendwelche aktionen
        iHauptschrittkette := Hauptschrittkette_ParallelSchritt;
    
    END_CASE
    Natürlich könnte man die beiden Parallelschrittketten in Funktionen auslagern der Übersichtlichkeit halber und nur den Funktionsaufruf in dem Schritt "Hauptschrittkette_Schritt2" aufrufen.

    Ist schnell heruntergeschrieben ohne gewährleistung der Funktion .

    Gruß Stefan

  3. #23
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    745
    Danke
    27
    Erhielt 164 Danke für 142 Beiträge

    Standard

    Ich schliesse mich Larry Laffer an. Für jeden Ablauf ein eigenes CASE-Konstrukt. Starten von Ablauf 2 mit einem Schritt aus Ablauf 1, dann in Ablauf 1 auf Ende von Ablauf 2 warten. Am besten mit einem eigenen Warteschritt in Ablauf 1, der nicht zusätzlich auch ein Weiterschaltereignis des eigenen Ablaufs erfasst. Dann kriegt man parallele Abläufe auch mit CASE sauber hin.

  4. #24
    Registriert seit
    14.08.2014
    Beiträge
    8
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    grundsätzlich kann dir keiner eine Antwort darauf geben ob du AS oder CASE nehmen sollst das entscheidet immer der Programmierer und der entscheidet was er am besten kann oder was im Pflichtenheft steht.

    Grundsätzlich wird eine Case Schrittkette immer mit Enumerationen sinnvoller weise gemacht. Frag mal einen Informatiker zum Thema Magic Numbers.

    Denn grundsätzlich steht bei größeren Projekten in deiner Shrittkette nicht nur 5 schritte sondern schnell mal ein paar mehr und da wäre es sinnvoll zu wissen wie der Schritt heißt was da passiert damit du auch nach einer Woche, Monat oder Jahr direkt weißt was da passiert bzw. nicht passiert.

    Und jetzt komm mir nicht mit die Nummer finde ich schneller oder so nem driss.

    Ausserdem Wartest du an bestimmten stellen in der schrittkette eh auf Signalen (Sensoren) aus dem Feld oder auf Rückmeldungen vom Aktor das etwas in Position ist.

    Jedoch kanns du das auch machen wie du willst. DU entscheidest in der Regel und es kommt ganz darauf an was du programmieren willst.

Ähnliche Themen

  1. Jeder Case ein eigenes Programm
    Von Bensen83 im Forum CODESYS und IEC61131
    Antworten: 8
    Letzter Beitrag: 08.09.2011, 13:31
  2. Wo steht die case struktur
    Von Bensen83 im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 06.09.2011, 17:05
  3. CASE-Anweisung von SCL auf KOP
    Von adonismensch im Forum Programmierstrategien
    Antworten: 8
    Letzter Beitrag: 25.09.2009, 12:41
  4. SCL-Compiler und Case-Anweisung
    Von herdi im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 10.09.2008, 10:02
  5. Switch CASE Anweisung
    Von sweber im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 14.12.2006, 22:49

Lesezeichen

Berechtigungen

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