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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: AWL Verständnisproblem

  1. #1
    Registriert seit
    17.07.2010
    Beiträge
    4
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    ich sammle gerade die ersten Erfahrung mit SPS (Simatic 300 S7). Im Studium haben wir bisher nur Sprachen wie C oder Java behandelt.
    ich habe eine Verständnisfrage zur AWL Logik:
    Angenommen E1...E4 sind meine Eingänge und A1..A4 die Ausgänge

    U E1
    U E3
    S A4
    U E2
    O E4
    O E1
    U E3
    S A1

    Was passiert denn, wenn die Abfrage U E1 nicht 1 ergibt. Wohin springe ich dann im Programm? Fange ich die zyklische Verarbeitung komplett von vorne an, so dass ich wieder bei Zeile 1 lande oder springe ich dann zur Zeile 4 oder wird weiter jede boolsche Funktion abgefragt, sodass ich mit Schritt 2 fortführe ?
    Was ich mir beim obigen Code gedacht habe, war folgendes:

    if(E1 == 1 && E3 ==1) A4 = 1;
    if(E2==1 && (E4==1|| E1==1) &&E3==1)A1=1;
    Also quasi zwei IF-Blöcke die unabhängig voneinander arbeiten.
    Zitieren Zitieren AWL Verständnisproblem  

  2. #2
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.224
    Danke
    630
    Erhielt 955 Danke für 769 Beiträge

    Standard

    Dieses Programm wird immer Zeile für Zeile abgearbeitet. Sprung ist da keiner drin.
    Für die gewünschte Logik müsste das Programm allerdings etwas geändert werden:
    Code:
    U E1
    U E3
    S A4
    U E2
    U(
    O E4
    O E1
    )
    U E3
    S A1
    Wer kümmert sich eigentlich um das Rücksetzen von A4 und A1? Oder sollen die Ausgänge direkt den Zustand der Verknüpfung annehmen?
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  3. #3
    Registriert seit
    23.04.2009
    Ort
    Allgäu
    Beiträge
    3.042
    Danke
    241
    Erhielt 863 Danke für 617 Beiträge

    Standard

    Zitat Zitat von invoices Beitrag anzeigen
    Was passiert denn, wenn die Abfrage U E1 nicht 1 ergibt. Wohin springe ich dann im Programm? Fange ich die zyklische Verarbeitung komplett von vorne an, so dass ich wieder bei Zeile 1 lande
    Nein, wenn kein Sprungbefehl eingegeben wurde, wird auch nicht gesprungen.
    Es wird weiter jede Anweisung abgearbeitet und entsprechend des Operanden und des aktuellen Zustandes verknüpft.

    Wenn etwas "gesetzt" wird muss es auch wieder "zurückgesetzt" werden.
    In Deinem Beispiel wäre eine einfache = Zuweisung wohl sinnvoller.
    Und auf die Klammer achten.
    Code:
       U E1
       U E3
       = A4
     
       U E2
       U(
       O E4
       O E1
       )
       U E3
       = A1
     
    // oder
       U E2
       U E3
       U(
       O E4
       O E1
       )
       = A1
    Oh, Rainer war schneller
    Geändert von Paule (17.07.2010 um 18:28 Uhr) Grund: Zu langsam
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  4. #4
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.224
    Danke
    630
    Erhielt 955 Danke für 769 Beiträge

    Standard

    @Paule:
    Wenn er wirklich rücksetzen wollte, hätte er in seiner Logik einen else-Zweig reinschreiben müssen. Die gibt es ja sowohl in C als auch in Java.
    Aber ich bin auch darüber gestolpert.

    Zu deiner Edit: Ach ja, diese mal ausnahmsweise ...
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  5. #5
    Registriert seit
    23.04.2009
    Ort
    Allgäu
    Beiträge
    3.042
    Danke
    241
    Erhielt 863 Danke für 617 Beiträge

    Standard

    Jo, stimmt!
    Aber vielleicht sagt er ja noch wie es von ihm gedacht war.
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  6. #6
    invoices ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    17.07.2010
    Beiträge
    4
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,
    vielen dank für die antwort.
    ja das mitm zurücksetzen...hat mir das beispiel nur gerade ausm kopf gedacht.

    bei dieser schreibweise hier:
    Code:
    U E1
    U E3
    S A4
    U E2
    U(
    O E4
    O E1
    )
    U E3
    S A1
    wie lange werden denn die ergebnisse bei AWL zu einem ergebnis zusammengefasst? Für den Befehl "S A1" ist ja nur dieser block interessant:
    U E2
    U(
    O E4
    O E1
    )
    U E3
    werden also die Ergebnisse der Verknüpfungen nur solange zusammengefasst, bis das erste mal keine boolsche funktion vorkommt und dann werden wieder die ergebnisse aufs neue verknüpft?

  7. #7
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.224
    Danke
    630
    Erhielt 955 Danke für 769 Beiträge

    Standard

    Es gibt VKE-begrenzende Anweisungen, da gehören u.a. S und = dazu. Danach beginnt wieder eine Erstabfrage.
    Ich empfehle die F1-Taste auf dem Befehl in Step7 zu drücken. Dort wird dann all dies angezeit. Auch ist das Studium der Befehlstabellen zu den jeweiligen CPUs sehr hilfreich.
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  8. Folgender Benutzer sagt Danke zu Rainer Hönle für den nützlichen Beitrag:

    invoices (18.07.2010)

  9. #8
    invoices ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    17.07.2010
    Beiträge
    4
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    ok vielen dank für den hinweis. leider liegt mir das programm S7 momentan net vor (ist nur auf den unirechnern installiert).
    was ist denn genau der unterschied zwischen

    U E2
    U E3
    U(
    O E4
    O E1
    )

    und einfach nur

    U E2
    U E3
    O E4
    O E1

    Bei dem oberen beispiel hat man ja eine Alternativverzweigung oder? Also nachdem E3 1 ergibt, kann entweder E4 oder E1 ne 1 ergeben?
    Was macht der denn beim unteren Beispiel dann?
    Geändert von invoices (18.07.2010 um 10:20 Uhr)

  10. #9
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.224
    Danke
    630
    Erhielt 955 Danke für 769 Beiträge

    Standard

    Was ist der Unterschied zwischen
    if( E2==1 && E3==1 && (E4==1 || E1==1) )
    und
    if( E2==1 && E3==1 && E4==1 || E1==1 ) ?
    Was hat Vorrang, und oder oder? Wie sieht das Ergebnis aus?
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  11. #10
    invoices ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    17.07.2010
    Beiträge
    4
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ok ich denke dann gilt hier die Regel und vor oder?
    Bei: if( E2==1 && E3==1 && (E4==1 || E1==1) )
    wird zuerst der klammerterm ausgewertet und dann mitm rest "verUNDet"

    Das hier
    ( E2==1 && E3==1 && E4==1 || E1==1 ) ist gleichbedeutend dem hier oder:
    ( E2==1 && E3==1 && E4==1 )|| E1==1
    weil die Undverknüpfungen vorang haben?

Ähnliche Themen

  1. Verständnisproblem bei DB aufruf im FC
    Von S7online im Forum Simatic
    Antworten: 17
    Letzter Beitrag: 13.02.2017, 13:57
  2. Verständnisproblem S7 400 H FH usw.
    Von Bender25 im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 09.06.2015, 21:24
  3. DP/RS232 Verständnisproblem
    Von Beren im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 23.06.2011, 08:30
  4. Zyklus-Verständnisproblem in SCL
    Von anne im Forum Simatic
    Antworten: 23
    Letzter Beitrag: 02.02.2011, 16:25
  5. Verständnisproblem Zeiger/AWL
    Von kiestumpe im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 15.06.2006, 09:12

Lesezeichen

Berechtigungen

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