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

Ergebnis 1 bis 10 von 10

Thema: Eine Frage zum Sprungbefehl...

  1. #1
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi, irgendwie verstehe ich den Sprungbefehl nicht...

    Habe mal folgendes (einfache) Beispiel gemacht:

    Code:
       U     E      0.0
       SPBN  TEST
       =     M     10.0
    TEST: NOP   0
    Zu Beginn ist alles klar; wenn jedoch E0.0 den Status 1 erhält, so wird der Merker ebenfalls TRUE. Soweit ja ok; aber warum behält der Merker seinen Status TRUE, wenn E0.0 wieder FALSE wird?

    Dann müsste doch direkt zu der Sprungmarke TEST gesprungen werden, so dass M10.0 wieder Null werden kann?
    LG
    spirit
    Zitieren Zitieren Eine Frage zum Sprungbefehl...  

  2. #2
    Registriert seit
    29.03.2004
    Beiträge
    5.797
    Danke
    144
    Erhielt 1.707 Danke für 1.239 Beiträge

    Standard

    Er springt ja auch zur Marke TEST. Aber wieso sollte der Merker dann wieder Null werden, wenn die Anweisung übersprungen wird?

  3. #3
    Registriert seit
    25.03.2012
    Beiträge
    314
    Danke
    60
    Erhielt 9 Danke für 8 Beiträge

    Standard

    Wie Thomas bereits sagte, die Anweisung (VKE -> M10.0) wird nur ausgeführt, wenn E 0.0 TRUE ist, ansonsten geht's direkt mit NOP 0 weiter.
    We must all suffer from one of two pains: the pain of discipline or the pain of regret. The difference is discipline weighs ounces while regret weighs tons.

  4. #4
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Danke Euch!

    Obgleich nun ja dann E0.0 wieder Null ist und somit doch die UND-Bedingung nicht mehr erfüllt ist... bleibt der Merker an...

    1)
    D.h. also, wenn direkt zur Sprungmarke gesprungen wird, dann behält der Merker seinen Status, obwohl es sich nur um eine Zuweisung handelt. Richtig?

    2)
    Würde nun anstelle des Merkers ein Ladebefehl stehen, würde dieser dann auch ständig weiterhin ausgeführt werden, wenn E0.0 = 0?

    3)
    Wie könnte man das umformen, damit der Merker den Status 1 erhält, wenn E0.0 = 1 und M wieder Null wird, wenn E0.0 = Null?

    Anstelle des Merkers steht später natürlich noch mehr...

    Lieben Dank!
    Geändert von spirit (22.08.2013 um 18:46 Uhr)
    LG
    spirit

  5. #5
    Registriert seit
    25.03.2012
    Beiträge
    314
    Danke
    60
    Erhielt 9 Danke für 8 Beiträge

    Standard

    Zitat Zitat von spirit Beitrag anzeigen
    die UND-Bedingung nicht mehr erfüllt ist...!
    Du meinst die Sprungbedingung, die ist VKE-abhängig, welches ja durch U E0.0 in der Anweisung zuvor beeinflusst wird. Die CPU fährt nun, abhängig vom VKE, mit "VKE --> M10.0" oder eben "NOP 0" fort.

    Oder wirkt das alles nicht mehr, weil der Merker (durch das Überspringen) komplett außer Acht gelassen wird?
    Ja

    Wie könnte man das umformen, damit der Merker den Status 1 erhält, wenn E0.0 = 1 und M wieder Null wird, wenn E0.0 = Null?
    U E0.0
    = M0.0

    ^^
    We must all suffer from one of two pains: the pain of discipline or the pain of regret. The difference is discipline weighs ounces while regret weighs tons.

  6. #6
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Sorry, hatte meinen Beitrag noch geändert; daher hier nochmals meine Fragen:

    1)
    D.h. also, wenn direkt zur Sprungmarke gesprungen wird, dann behält der Merker seinen Status, obwohl es sich nur um eine Zuweisung handelt. Richtig?

    2)
    Würde nun anstelle des Merkers ein Ladebefehl stehen, würde dieser dann auch ständig weiterhin ausgeführt werden, wenn E0.0 = 0?

    3)
    Wie könnte man das umformen, damit der Merker den Status 1 erhält, wenn E0.0 = 1 und M wieder Null wird, wenn E0.0 = Null?

    Anstelle des Merkers steht später natürlich noch mehr... unter anderem auch ein Ladebefehl und dieser ist ja VKE-unabhängig!
    Geändert von spirit (22.08.2013 um 18:51 Uhr)
    LG
    spirit

  7. #7
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.738
    Danke
    444
    Erhielt 924 Danke für 744 Beiträge

    Standard

    Wenn Du Befehle überspringst, ist das für diesen Moment so, als ob es diese Befehle gar nicht gebe.

    Eine Zuweisung (oder auch Setzen/Rücksetzen) ist VKE-abhängig, deswegen brauchst bzw. sollst Du sie normalerweise nicht überspringen.
    Lade- und Transfer-Befehle sind VKE-unabhängig. Deshalb musst Du sie überspringen, wenn sie nicht ausgeführt werden sollen.

    Code:
          U    E0.0
          =    M0.0
    
          U    M0.0
          SPBN test
          L    ...
          T    ...
    test: NOP  0

  8. #8
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Zitat Zitat von hucki Beitrag anzeigen
    Lade- und Transfer-Befehle sind VKE-unabhängig. Deshalb musst Du sie überspringen, wenn sie nicht ausgeführt werden sollen.

    Code:
          U    E0.0
          =    M0.0
    
          U    M0.0
          SPBN test
          L    ...
          T    ...
    test: NOP  0
    Danke hucki,

    wenn der Ladebefehl einmal ausgeführt wurde und danach in Folge stets übersprungen wird, ist dann der Ladebefehl (entgegen dem Merker) "außer Kraft" gesetzt?

    Also z.B. wird die Zahl 5 in das MW100 geladen und danach wird dieser Befehl übersprungen...

    Dann kann an anderer Stelle ein anderer Wert in MW100 geladen werden, da das Laden der Zahl 5 übersprungen wird, stimmt das so?
    LG
    spirit

  9. #9
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.738
    Danke
    444
    Erhielt 924 Danke für 744 Beiträge

    Standard

    Ja.

    Wenn die Zuweisung des Merkers übersprungen wird, ist sie auch außer Kraft. Deshalb wurde er ja bei Dir nicht wieder 0.
    Die letzte Merker-Zuweisung, die Dein Programm passiert hat, war mit dem VKE=1. Das wurde zugewiesen. Danach kam keine neue Zuweisung (mit VKE=0), weil sie übersprungen wurde.

  10. #10
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.752
    Danke
    323
    Erhielt 1.526 Danke für 1.286 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich glaube du denkst massiv zu kompliziert.

    Du hast irgend einen Wert in einen Speicher geschrieben, hier also den Merker-Bereich.
    Schreiben tust du mit L/T/=/S/R. Wenn du nun also nichts mehr schreibst (weil du die Zuweisung überspringst), wodurch sollte sich jetzt dann also der Speicher ändern?

    Mfg
    Manuel
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

Ähnliche Themen

  1. Eine Frage zum Prozessabbild
    Von anne im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 12.11.2011, 12:58
  2. Frage: benötige für eine LOGO eine Steuerung
    Von movie im Forum Sonstige Steuerungen
    Antworten: 14
    Letzter Beitrag: 15.08.2011, 14:16
  3. Eine Frage zum CP 343-1
    Von El Cattivo im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 18.03.2011, 12:17
  4. Eine Frage zum Datenbaustein...
    Von pinolino im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 24.09.2009, 09:25
  5. Eine Frage zum Befehl "Call"
    Von petzi im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 27.07.2009, 11:22

Lesezeichen

Berechtigungen

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