-> Hier kostenlos registrieren
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
irgendwie verstehe ich nichtAkku 1 <>0 immer ein sprung.
Wird hier "SPBN" mit "SPN" verwechselt?SPN reagiert auf VKE 0. Das heisst. Weil springe Negativ, springt er solange die Vorbedingung nicht erfüllt ist
Nein, mit Akku 1 und 2 hat das im Endeffekt nicht direkt was zu tun.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.
IF (#ANZ - 1) <> 0 THEN
#ANZ := ANZ - 1;
END_IF;
Ich auch nicht wirklich.Stimmt du hast recht. SPN hab ich bisher auch noch nie benutzt.
L 0
<> I
...einsparen. Aber dann tut sich wieder irgendein Kollege an dem "ungewohnten" Befehl schwer...
Es würde einfach nach dem Letztstand der Statusbits A0 und A1 agieren. Wie auch immer die gerade sind.L #A;
L #B;
==I ;
SPN C003;
und davor gibts keine arithmetische Operation.
Was macht da SPN?
Da die Auswertung über A0 und A1 passiert wäre SPN theorethisch aber nicht nur auf diese beschränkt.F1-Hilfe SP schrieb:SPN Springe, wenn Ergebnis <> 0
Beschreibung
Ist das Ergebnis, das von den Statusbits A1 und A0 angezeigt wird, größer oder kleiner als Null (A1 = 0/A0 = 1 oder A1 = 1/A0 = 0), unterbricht SPN <Sprungmarke> (Springe, wenn das Ergebnis <> 0) den linearen Programmablauf...
Beispiel
AWL Erläuterung
L EW8
L MW12
XOW
SPN NOZE //Springe, wenn der Inhalt von AKKU1-L ungleich Null ist.
UN M 4.0 //Der Programmablauf wird hier fortgesetzt, wenn der Sprung nicht ausgeführt wird.
Wobei A0, A1 immer gleich gesetzt werden, egal ob mit >I, <I, ==I, verglichen wird.F1-Hife - A1 und A0: Ergebnisse aus Vergleichsoperationen schrieb:A1 A0 Bedeutung
0 0 AKKU 2 = AKKU 1
0 1 AKKU 2 < AKKU 1
1 0 AKKU 2 > AKKU 1
1 1 Ungültig (nur bei Vergleichsoperationen mit Gleitpunktzahlen)
L #A
L #B
==I
SPN
//gegenüber
L #A
L #B
==I
SPBN
//oder
L #A
L #B
<>I
SPB
L #A
L #B
==I //setzt die Statusbits wie -I, mit anschließendem Vergleich auf ==0 ins VKE
SPN Mxxx //springt, wenn #A <> #B
L 1
SRW 1 //--> AKKU1 = 0, A0=0 und A1=1
SPN Mxxx //springt weil A1=1 und A0=0, obwohl AKKU1 = 0 !
lieber Finger weg .die von A1/A0 abhängigen Sprungbefehle SPN, SPZ, ... verändern nicht das VKE und das Erstabfragebit /ER, wodurch keine VKE-Abgrenzung
Harald
Das ist aus dem von Dir gezeigten Code nicht ersichtlich, da wird #Anz lediglich einmal dekrementiert. Ist da eine Schleife? Was ist die Endebedingung? Fehlt da eine/mehrere Programmzeile?Ich verstehe nicht, warum #Anz immer 9 bleibt.Wieso zählt nicht bis 0?
#Zeiger_akt1 += 1; //INC(#Zeiger_akt1)
#Anz -= 1; //DEC(#Anz)
//Funktion bei SPN:
IF #Anz = #Zeiger_akt1 THEN #Zeiger_akt1 := #Anz;
//Funktion mit SPBN:
IF #Anz > #Zeiger_akt1 THEN #Zeiger_akt1 := #Anz;
Herzlichen Glückwunsch!HCode:IF (Zeiger_aktl = Anz) THEN Zeiger_aktl:=Anz; END_IF;
SPN hin oder her - einer Variablen genau den Wert zuzuweisen, den sie eh' schon hat, ist immer überflüssig.Ob der Code Überflüssig ist naja Ansichtssache, weil wenn man 350 zeile Code s5(awl) auf s7 scl umsetzen soll macht es schon Sinn wenn man SPN umsetzt.
Wir verwenden essentielle Cookies, damit diese Website funktioniert, und optionale Cookies, um den Komfort bei der Nutzung zu verbessern.
Siehe weitere Informationen und konfiguriere deine Einstellungen