Code prüfen

STEP7 ist die Programmiersprache der SIMATIC S7-Steuerungen. Allgemeine Fragen.
Antworten
SAB
SPSTreff-User
Beiträge: 9
Registriert: 04 Jun 2012, 10:33

Code prüfen

Beitrag von SAB »

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

Benutzeravatar
Matthias
SPSTreff-Profi User
Beiträge: 288
Registriert: 19 Jun 2010, 11:16
Wohnort: Bretten
Kontaktdaten:

Beitrag von Matthias »

Hallo,

mit "SLD 3" wird die Leseadresse um 8 erhöht.
Warum machen Sie das?

Ist das der Grund für das Problem?

SAB
SPSTreff-User
Beiträge: 9
Registriert: 04 Jun 2012, 10:33

Beitrag von SAB »

hallo,
ich wollte einfach pointer bauen

Benutzeravatar
Matthias
SPSTreff-Profi User
Beiträge: 288
Registriert: 19 Jun 2010, 11:16
Wohnort: Bretten
Kontaktdaten:

Beitrag von Matthias »

Hallo,

ja stimmt, im MD20 muss ein Pointer stehen.

MW20 (Ergebnis) besteht aus MB20,MB21
MD20 (Pointer, Adresse) besteht aus MB20,21,22,23

D.h. hier ist eine Überschneidung vorhanden.

SAB
SPSTreff-User
Beiträge: 9
Registriert: 04 Jun 2012, 10:33

Beitrag von SAB »

aaah. alles klar. Danke.

Antworten