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

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

Thema: AWL: SPBN und Co

  1. #1
    Registriert seit
    24.05.2015
    Ort
    Bamberg
    Beiträge
    69
    Danke
    73
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Grüßt euch.
    Ich hätte da mal eine grundlegende Frage:
    Unser Dozent arbeitet in Beispielen immer mit SPBN.
    Ich habe seit geraumer Zeit das Gefühl, dass da oft drauf verzichtet werden kann.
    Hier mal ein Beispel von ihm:
    Code:
     
      U e0.0 
      U e0.1 
    SPBN X000
     = A4.0 
    X000: NOP 0
    Das funktioniert aber genauso gut auch ohne dem Sprung.
    Bei folgendem Code ist der Sprung wieder sinnvoll:
    Code:
     
      U E0.0 
      U E0.1 
    SPBN X001 
      L 100 
      T MW10 
    X001: NOP 0
    Nun schau ich schon den ganzen Abend im weltweiten Goockel-Netz um für mich eine Erklärung zu finden,
    wann ein Sprung benötigt wird und wann darauf verzichtet werden kann. Leider war da nichts für mich dabei.

    Kann mir bitte jemand die Regel erklären, wann ich einen Sprung nehmen muss und wann die nachführende Aktion (1. Beispiel =A4.0) nur abgearbeitet wird, wenn die vorherigen Bedingungen (1. Beispiel U E0.0 und U0.1) erfüllt sind?

    Besten Dank im Voraus.
    LG Fee
    Geändert von SPS-Fee (13.03.2016 um 00:42 Uhr)
    Zitieren Zitieren AWL: SPBN und Co  

  2. #2
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard

    Der Unterschied ist, dass du das Verknüpfungsergebnis was bei SPBN abgefragt wird direkt einer BOOL Variable zuweisen kannst. Bei allen anderen Typen ist das nicht möglich, darum ist dort immer ein Sprung notwendig.

    Bei deinem ersten Beispiel macht es zudem einen Unterschied, ob du es mit Sprung oder ohne programmierst. Wenn mit Sprung, dann wird A4.0 nur einmalig auf true gesetzt, und niemals auf false. Sobald einmalig E0.0 und E0.1 auf true sind, bleibt A4.0 für alle Ewigkeit ebenfalls auf true, sofern er nicht an anderer Stelle zurückgesetzt wird (oder die SPS neugestartet wird).
    Die Genialität einer Konstruktion liegt in ihrer Einfachheit – Kompliziert bauen kann jeder.

    (Sergei Pawlowitsch Koroljow, sowjetischer Konstrukteur von Raketen und Weltraumpionier)

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

    SPS-Fee (13.03.2016)

  4. #3
    Registriert seit
    24.05.2015
    Ort
    Bamberg
    Beiträge
    69
    Danke
    73
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Besten Dank.
    OK, das mit dem niemals auf False hab ich kapiert.

    Das heißt also, dass bei folgendem Code alle Zuweisungen auf die folgenden 3 Bits nur ausgeführt werden wenn E0.0=1 UND E0.1?

    Code:
    U E0.0
    U E0.1
    = A4.0
    S A4.1
    R A4.2
    Wenn ich aber bei:
    U E0.0
    U E0.1
    ...... nicht nur Bits setzen möchte sondern auch vergleichen, laden, transferieren umwandeln und was auch immer, dann benötige ich immer einen Sprung?

    Schreibe ich dann nachfolgend richtig, um die Bits nicht dauerhaft zu setzen (kein FALSE-möglich-Problem vom 1. Beispiel)?

    Code:
    U 0.0
    U 0.1
    = A4.0
    S A4.1
    R A4.2
    U 0.0
    U 0.1
    SPBN X000
    L100
    T MW20
    X000: NOP 0
    Danke dir.
    Geändert von SPS-Fee (13.03.2016 um 00:12 Uhr)

  5. #4
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.189
    Danke
    923
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Einen VKE-abhängigen Sprung braucht man immer dann, wenn man Anweisungen, welche nicht VKE-abhängig sind, VKE-abhängig ausführen will. Dann muß man die Anweisungen ggf. überspringen.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  6. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    SPS-Fee (13.03.2016)

  7. #5
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard

    Deine Beispiele sind alle verschieden.

    Bei einer Zuweisung mit "=" wird direkt der Zustand des VKEs auf die Variable geschrieben, unabhängig vom Ergebnis der vorhergehenden Verknüpfung. Also wenn VKE = false, dann ist dein Ausgang false. Ist das VKE = true, dann ist auch dein Ausgang true.

    Setzen/Rücksetzen ("S" / "R") verhalten sich anders, und sind eher vergleichbar mit einem Sprung. Ein Setzen und auch ein Rücksetzen wird nur ausgeführt, wenn das VKE = true ist.

    U E0.0
    S A0.0

    ist von der Funktion her identisch mit:
    U E0.0
    SPBN XX
    = A0.0
    XX: NOP 0
    Die Genialität einer Konstruktion liegt in ihrer Einfachheit – Kompliziert bauen kann jeder.

    (Sergei Pawlowitsch Koroljow, sowjetischer Konstrukteur von Raketen und Weltraumpionier)

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

    SPS-Fee (13.03.2016)

  9. #6
    Registriert seit
    24.05.2015
    Ort
    Bamberg
    Beiträge
    69
    Danke
    73
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    Einen VKE-abhängigen Sprung braucht man immer dann, wenn man Anweisungen, welche nicht VKE-abhängig sind, VKE-abhängig ausführen will. Dann muß man die Anweisungen ggf. überspringen.
    Harald
    Genau danach habe ich lange gegoockelt, aber leider nichts passendes gefunden.
    Eine Liste mit Anweisungen, die nicht VKE-abhängig sind, wäre für mich sehr hilfreich

  10. #7
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard

    Zitat Zitat von SPS-Fee Beitrag anzeigen
    Genau danach habe ich lange gegoockelt, aber leider nichts passendes gefunden.
    Eine Liste mit Anweisungen, die nicht VKE-abhängig sind, wäre für mich sehr hilfreich
    In diesem PDF steht alles drin was du benötigst. Um das Datenblatt zu verstehen ist wichtig, dass du weißt was die Bits im Statuswort bedeuten die dort erwähnt werden.

    https://support.industry.siemens.com.../view/31977679
    Die Genialität einer Konstruktion liegt in ihrer Einfachheit – Kompliziert bauen kann jeder.

    (Sergei Pawlowitsch Koroljow, sowjetischer Konstrukteur von Raketen und Weltraumpionier)

  11. Folgender Benutzer sagt Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    SPS-Fee (13.03.2016)

  12. #8
    Registriert seit
    24.05.2015
    Ort
    Bamberg
    Beiträge
    69
    Danke
    73
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Deine Beispiele sind alle verschieden.
    Bei einer Zuweisung mit "=" wird direkt der Zustand des VKEs auf die Variable geschrieben, unabhängig vom Ergebnis der vorhergehenden Verknüpfung. Also wenn VKE = false, dann ist dein Ausgang false. Ist das VKE = true, dann ist auch dein Ausgang true.
    Setzen/Rücksetzen ("S" / "R") verhalten sich anders, und sind eher vergleichbar mit einem Sprung. Ein Setzen und auch ein Rücksetzen wird nur ausgeführt, wenn das VKE = true ist.
    Soweit ist mir alles verständlich. Komme mit = S und R klar.
    Waren nur als Beispiele gemeint.

  13. #9
    Registriert seit
    24.05.2015
    Ort
    Bamberg
    Beiträge
    69
    Danke
    73
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    In diesem PDF steht alles drin was du benötigst.
    Besten Dank, da hab ich ja für den Sonntag viel zu tun. Wissen pur

  14. #10
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von SPS-Fee Beitrag anzeigen
    Grüßt euch.
    Ich hätte da mal eine grundlegende Frage:
    Unser Dozent arbeitet in Beispielen immer mit SPBN.
    Ich habe seit geraumer Zeit das Gefühl, dass da oft drauf verzichtet werden kann.
    Hier mal ein Beispel von ihm:
    Code:
     
      U e0.0 
      U e0.1 
    SPBN X000
     = A4.0 
    X000: NOP 0
    Der Dozent sollte keinesfalls dozieren.
    Das ist ja schrecklich!

Ähnliche Themen

  1. Schieben und Rotieren in AWL
    Von adi5 im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 16.01.2010, 16:52
  2. Spbn
    Von Patrick Kniel im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 03.12.2009, 12:49
  3. Sprungbefehl SPBN
    Von petzi im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 10.05.2009, 15:16
  4. Problem mit Befehl SPB und SPBN
    Von danielch im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 24.10.2007, 08:15
  5. AWL und FUP
    Von pramic im Forum Programmierstrategien
    Antworten: 3
    Letzter Beitrag: 06.09.2005, 14:31

Lesezeichen

Berechtigungen

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