Code prüfen

SAB2002

Level-2
Beiträge
50
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi, Alle zusammen

Ich habe Code geschrieben, um die 100 Zahlen aus DB[ARRAY] zusammen addieren. Geht ,aber, nicht. System geht sofort in Stop. Können Sie;bitte, prüfen um was es liegt.

Das ist die Code:
UN "Start"
SPB ende

AUF "Eingangswerte" // DB
L 0
T "Ergebniswort" // MW 20 Ergebniswort initialisieren
L 10
Loop: T "Schleifenzaehler" // MW 24 Schleifenzähler
L "Ergebniswort"
SLD 3
T "Ergebniswort"
L "Ergebniswort"
T DBW [MD 20]
L "Ergebniswort"
L DBW [MD 20]
+D
T "Ergebniswort" //Adresse um 2 erhöhen
L 2
+I
T "Ergebniswort"

L "Schleifenzaehler"
LOOP Loop

L "Ergebniswort"
T "Ergebnis".nCountAW // Ergebnis in DB speichern

ende: NOP 0


Firma braucht die Code ohne Pointer schreiben
Danke im Voraus
 
Zuletzt bearbeitet:
Als erstes fällt auf, das du dein "Ergebniswort" als MW20 initialisierst, während du es später als MD20 benutzt.
Ferner machst du mit "SLD3" aus dem Ergebniswort einen Pointer, den du dann einfach am Schleifenende um "2" erhöhen willst. Das geht nicht !
Entweder vorher zurückschieben (SRD3) und die "2" addieren oder mit einem weiteren, bereits um 2 erhöhten Pointer verknüpfen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Trotzdem geht in Stop
"STOP durch Programmierfehler (OB nicht geladen oder nicht möglich, bzw. kein FRB vorhanden )
Unterbrechungstelle im Anwenderprogramm: Zyklisches Programm (OB 1)
Prioritätsklasse: 1
FC-Nummer: 4
Bausteinadresse: 28
Bisheriger Betriebszustand: RUN
Angeforderter Betriebszustand: STOP (intern)
interner Fehler, kommendes Ereignis
23:09:02.082 05.06.2012
(Kodierung: 16# 4562 FF84 8C70 0101 0004 001C)
 
Nutze mal nicht "LOOP" als Sprungmarke, das ist ein Schlüsselwort.

Ansonsten gibt es die <F1>-Taste, da kommt ein brauchbares Beispiel. Du musst nur die Anweisungen innerhalb der Schleife gegen deine austauschen. ;)
 
Zurück
Oben