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

Ergebnis 1 bis 10 von 10

Thema: Sprungbefehl SPBN

  1. #1
    Registriert seit
    18.12.2008
    Beiträge
    255
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    ich habe eine Frage zu dem Sprungbefehl SPBN.

    Folgendes einfaches Programm ist programmiert:

    U E0.0
    FP M0.0
    SPBN M1
    L 0
    T MW2

    M1: L7
    T MW2

    Soweit ich es verstanden habe, müsste doch, wenn der Eingang E0.0 gesetzt ist, die Zahl 0 in das MW2 transferiert werden.

    Ist der Eingang E0.0 nicht gesetzt, so müsste die Zahl 7 in das MW2 transferiert werden.

    Irgendwie klappt es aber nicht, da immer die Zahl 7 im MW2 steht.

    Was mache ich denn falsch?

    Vielen Dank

    petzi
    Zitieren Zitieren Sprungbefehl SPBN  

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

    Standard

    Wie hast du das denn beobachtet? Null steht nur für einen Zyklus im MW.

    Ansonsten: Hast du vielleicht bei der CPU das Merkerbyte 0 als Taktmerkerbyte konfiguriert?

  3. #3
    Registriert seit
    10.08.2008
    Beiträge
    35
    Danke
    8
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo petzi,

    dein "L 7 -> T MW2" macht er ja auch noch.
    Du must es quasi überspringen.

    U E0.0
    FP M0.0
    SPBN M1
    L 0
    T MW2
    SPA END

    M1: L7
    T MW2

    END: NOP 0

    Gruß
    Cosman


  4. #4
    petzi ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    18.12.2008
    Beiträge
    255
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Danke für euere Antworten...

    Ich habe das Ganze mit Hilfe von "Variable beobachten/steuern" angesehen und das Merkerbyte 0 ist niergends belegt.

    @Cosman:

    Aber warum macht er das Laden der Zahl 7 auch noch, wenn der Eingang E0.0 gesetzt ist - das dürfte er doch eigentlich nur machen, wenn die Sprungmarke M1 aktiv ist - und die ist doch nur aktiv, wenn der Eingang E0.0 nicht gesetzt ist?

    petzi
    Geändert von petzi (10.05.2009 um 12:48 Uhr)

  5. #5
    Registriert seit
    10.08.2008
    Beiträge
    35
    Danke
    8
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo Petzi,

    Sprungmarken sind nur "Sprungziele" für Sprungbefehle.
    Der Prozessor arbeitet die Befehle zeilenweise ab.
    Nur weil eine Sprungmarke davor steht gibt es für ihn
    keinen Grund den Befehl nicht auszuführen.
    Das bedeudet, nach "L 0 -> T MW2" (weil E0.0 + FP true ist) kommt es zur Zeile mit "L7 -> T MW2".

    Gruß
    Cosman

  6. #6
    petzi ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    18.12.2008
    Beiträge
    255
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Gut, danke für die Erklärung, Cosman.

    Aber irgendwie will es noch immer nicht funktionieren. Habe jetzt die beiden roten Einträge im NW eingefügt aber das MW2 zeigt immer die Zahl 7 - egal ob E0.0 gesetzt oder nicht gesetzt ist.

    Stimmt evtl. noch etwas nicht?

    Vielen Dank

    petzi

  7. #7
    Registriert seit
    10.08.2008
    Beiträge
    35
    Danke
    8
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo Petzi,

    er schreibt nur 1 Zyklus "0" rein, danach wieder "7".
    Ich dachte, dass willst du so.
    Wenn du "0" willst wenn E0.0=1, und sonst "7"
    musst du die Flanke raus nehmen.

    Gruß
    Cosman

  8. #8
    petzi ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    18.12.2008
    Beiträge
    255
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Nein Cosman, das wollte ich nicht so - sondern im MW soll "0" stehen, wenn E0.0=1 und sonst "7".

    Habe jetzt den Flankenmerker rausgenommen und es klappt!

    Da sich im zweiten Zyklus (bedingt durch FP) der Status von SPBN nicht mehr geändert hat, wurde auch die Sprungmarke END nicht mehr ausgeführt und es wurde immer zu M1 gesprungen.

    Hoffe so ist es richtig?

    Vielen Dank für deine Unterstützung...

    LG

    petzi

  9. #9
    Registriert seit
    10.08.2008
    Beiträge
    35
    Danke
    8
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo petzi,

    in diesem Fall wäre Folgendes noch kürzer:
    Code:
          L     7
          U     E      0.0
          SPBN  M1
          L     0
    M1:   T     MW     2
    hängt aber immer davon ab, was davor oder dahinter noch steht.

    Gruß und noch schönen Sonntag
    Cosman

  10. #10
    petzi ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    18.12.2008
    Beiträge
    255
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Danke für deine super Hilfe, Cosman!

    Wünsche dir auch noch einen schönen Sonntag...

    LG

    petzi

Ähnliche Themen

  1. Probleme mit Sprungbefehl s7/300
    Von freezer im Forum Programmierstrategien
    Antworten: 4
    Letzter Beitrag: 22.02.2010, 21:55
  2. Spbn
    Von Patrick Kniel im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 03.12.2009, 12:49
  3. Sprungbefehl
    Von Bollmann im Forum Simatic
    Antworten: 27
    Letzter Beitrag: 06.08.2009, 12:07
  4. Problem mit Befehl SPB und SPBN
    Von danielch im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 24.10.2007, 08:15
  5. Sprungbefehl S5 CPU 928
    Von Anonymous im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 15.07.2005, 11:00

Lesezeichen

Berechtigungen

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