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

Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 35

Thema: SPN Sprung

  1. #1
    Registriert seit
    24.06.2013
    Beiträge
    14
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Zusammen,

    Ich verstehe nicht, warum #Anz immer 9 bleibt.Wieso zählt nicht bis 0?
    Und SPN Sprung wie kann ich im SCL Realisieren? danke im Voraus!
    SPN.PNG
    Zitieren Zitieren SPN Sprung  

  2. #2
    Registriert seit
    24.10.2007
    Ort
    Niederlande
    Beiträge
    673
    Danke
    22
    Erhielt 143 Danke für 135 Beiträge

    Standard

    Wie Sie dass in SCL macht weis ich nicht.
    Aber ich denke dass da nicht SPN (= sprung bei <>0) must sind, normal must das SPBN (= Sprung bei VKE0) sind.
    Wieter muste die Anz ein IN_OUT variabele sind ein IN konte sie nicht schreiben.
    Zeiger_akt_1 ist ein Temp und die habe fur is in die baustein geschrieben wurde keine feste wert ( Hier in Screenschot had er an anfang wert 9 aber dass ist nich bestimt jede mal so dass kan die volgende anruf 0 sind oder 10000. normal muste dass in ein FC auch ein IN-OUT sind. Oder Sie must die FC ersetzen durch ein FB und Diese variabele in die STAT var declarieren, diese wurde in die Instanz DB gespeichert.

    Grus Joop

  3. #3
    exclis066 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    24.06.2013
    Beiträge
    14
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke jetzt habe ich verstanden, IN Variable bleibt immer IN also verändert sich nicht.
    Aber SPN verstehe ich nicht ganz,wie verhält SPN bei ==I und bei >I?
    Geändert von exclis066 (21.05.2016 um 17:32 Uhr)

  4. #4
    Registriert seit
    24.10.2007
    Ort
    Niederlande
    Beiträge
    673
    Danke
    22
    Erhielt 143 Danke für 135 Beiträge

    Standard

    Wenn inhalt von Akku 1 <>0 immer ein sprung. Selektier die anweisung SPN und druck dan die F1 taste. Damit wurde die hilfe von SPN getont.

    Verstuurd vanaf mijn GT-I9301I met Tapatalk

  5. #5
    Registriert seit
    24.10.2007
    Ort
    Niederlande
    Beiträge
    673
    Danke
    22
    Erhielt 143 Danke für 135 Beiträge

    Standard

    Bei ==I und >1 uzw. gibt dass ein auskumts von TRUE oder FALSE und must man ein sprung machen mit SPB wenn man bei TRUE die sprung machen wil oder mit SPBN wenn mann dass bei FALSE machen wilst. Wenn mann zb in KOP oder FUP ein vergleiger mit dathinter ein Move in ein netzwerk programmiert und man wechselt danach nach AWL wurde da auch ein sprung mit SPBNB gemacht (Hier wurde dass BIE bit mit genommen ins sprung) .

    Gruss Joop.

  6. #6
    exclis066 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    24.06.2013
    Beiträge
    14
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Vielen Dank Loop,
    aber im Buch steht:Springe wenn Ergebnis !=0 (A0=0 und A1=1) oder (A0=1 und A1=0) also wenn Akku 2< Akku 1 oder Akku 2 >Akku 1 dann springen.

    Akku 1 <>0 immer ein sprung.
    irgendwie verstehe ich nicht

  7. #7
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.618
    Danke
    775
    Erhielt 646 Danke für 492 Beiträge

    Standard

    SPN reagiert auf VKE 0. Das heisst. Weil springe Negativ, springt er solange die Vorbedingung nicht erfüllt ist.

    Die Vorbedingung hier ist >I
    ANZ ist in Ak2 und Zeiger_akt in AK1. Solange also AK2 kleiner oder gleich AK1 ist, ist die Bedingung nicht erfüllt und der Sprung wird ausgeführt.
    Sobald Ak2 grösser als Ak1 ist, wird nicht mehr gesprungen.

    Die Hilfe von SPN bezieht sich auf VKEs
    die Hilfe von >I >=I ==I etc bezieht sich auf die Akkus für die Abfrage und VKE fürs resultat.

    mfG René

  8. #8
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.337
    Danke
    448
    Erhielt 688 Danke für 513 Beiträge

    Standard

    Zitat Zitat von vollmi Beitrag anzeigen
    SPN reagiert auf VKE 0. Das heisst. Weil springe Negativ, springt er solange die Vorbedingung nicht erfüllt ist
    Wird hier "SPBN" mit "SPN" verwechselt?

    SPN: SPN Springe, wenn Ergebnis <> 0
    SPBN: SPBN Springe, wenn VKE = 0

    SPN reagiert nicht auf das VKE sondern prüft ob das Ergebnis einer Berechnung ungleich 0 ist.
    Dazu werden die beiden Statusbits A0/A1 verwendet. Auf ein >=I und Konsorten reagiert SPN nicht da diese A0/A1 nicht beeinflussen.

    SPN springt wenn das Ergebnis einer vorangehenden Operation +I, /D, XOW, ..., ungleich 0 war.

    Kann es sein das der Code des TE nicht wie gewünscht funktioniert, weil er statt dem SPN ein SPBN brauchen würde?
    SPN müsste in dem Beispiel nämlich springen wenn wenn das Ergebnis des -I ein paar Zeilen davor ein Ergebnis ungleich 0 liefert.
    Vom >I -Vergleich fühlt sich SPN nicht betroffen.

    Zitat Zitat von exclis066 Beitrag anzeigen
    aber im Buch steht:Springe wenn Ergebnis !=0 (A0=0 und A1=1) oder (A0=1 und A1=0) also wenn Akku 2< Akku 1 oder Akku 2 >Akku 1 dann springen.
    Nein, mit Akku 1 und 2 hat das im Endeffekt nicht direkt was zu tun.
    A0 und A1 sind Statusbits die das Ergebnis von arithmetischen Operationen wiederspiegeln (+I,/D,-R,UW, etc.).
    Diese Operationen beeinflussen direkt diese beiden Statusbits. Wenn du ein +I durchführst und das Ergebnis ist bei...
    • 0 -> A0 = 0; A1 = 0
    • <0 -> A0 = 1; A1 = 0;
    • >0 -> A0 = 0; A1 = 1;

    SPN wertet genau das aus. Für einen direkten Vergleich zwischen den Akkus ist SPN nicht zu gebrauchen.

    Achtung. Die markierten Teile sind falsch -> Siehe: HIER
    Geändert von RONIN (22.05.2016 um 15:23 Uhr)
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  9. #9
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.618
    Danke
    775
    Erhielt 646 Danke für 492 Beiträge

    Standard

    Stimmt du hast recht. SPN hab ich bisher auch noch nie benutzt.

    SPN/SPBN wäre in SCL eine einfache IF abfrage.

    z.B.
    Code:
    IF (#ANZ - 1) <> 0 THEN
     #ANZ := ANZ - 1;
    END_IF;
    mfG René

  10. #10
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.337
    Danke
    448
    Erhielt 688 Danke für 513 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von vollmi Beitrag anzeigen
    Stimmt du hast recht. SPN hab ich bisher auch noch nie benutzt.
    Ich auch nicht wirklich.

    Man könnte sich zwar oft ein...
    Code:
    L   0
    <> I
    ...einsparen. Aber dann tut sich wieder irgendein Kollege an dem "ungewohnten" Befehl schwer...
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

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

    vollmi (22.05.2016)

Ähnliche Themen

  1. AS Sprung in PRG
    Von Tyler-Durden im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 01.07.2011, 10:08
  2. Sprung programmieren
    Von Stonie im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 22.12.2008, 22:49
  3. Sprung programmieren
    Von Syntaxfehler im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 17.12.2007, 11:19
  4. vergleich mit sprung?
    Von Ibaxx im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 28.09.2007, 09:50
  5. ob1 sprung in fc1
    Von Anonymous im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 14.11.2005, 17:32

Stichworte

Lesezeichen

Berechtigungen

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