Laden von verschiedenen DWörtern

A

Anonymous

Guest
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich möchte abhängig von einem bestimmten Zählerstand unterschiedliche Dopptelwörter von einem DB laden. Gibts dazu irgend einen Befehl oder Routine die man verwenden kann, ich möchte mir nähmlich die ewig viele tipperei gerne ersparen.
Beispiel
bei Zählerstand 0 soll DB1.DBD0 geladen werden
bei Zählerstand 1 soll DB1.DBD4 geladen werden
bei Zählerstand 2 soll DB1.DBD8 geladen werden
usw.
gibt da so ne routine a la

lade Zählerstand X und multipliziere mit 4
transferiere den Wert in Variable Y
und dann:
lade DB1.DBD Y

???

Ich hoffe, ich konnte mein Problem in etwa beschreiben......

mfg

Andreas W.
 
zaehler_temp: typ: dint

AUF DB 1
L #zaehler
L 4
*I
T #zaehler_temp

L DBD [#zaehler_temp]
 
Zuviel Werbung?
-> Hier kostenlos registrieren
cpu geht auf stop

Hallo,

leider funktioniert das nicht so wirklich bei mir,
die CPU geht mir dabei auf Stop, sobald ich den Lade-Befehl ausführe:





Diagnosepuffer der Baugruppe CPU 315-2 DP

Bestell-Nr./ Bezeichn. Komponente Ausgabestand
6ES7 315-2AF03-0AB0 Hardware 1
- - - Firmware V 1.2.0

Baugruppenträger: 0
Steckplatz: 2

Ereignis 2 von 100: Ereignis-ID 16# 2528
Ausrichtungsfehler beim Lesen
Global -DB, Doppelwortzugriff, Falsche Adresse: 3
Angeforderter OB: Programmierfehler-OB (OB 121)
OB nicht vorhanden oder gesperrt oder nicht startbar im aktuellen Betriebszustand
interner Fehler, kommendes Ereignis



anbei mein Prog:


AUF DB1
L Z 1
L 4
*I
T #X
L DBD [#X]
T MD 5

wäre nett, wenn mir jemand hilft.............

danke

AndreasW
 
ok
habe den gleichen fehler.

so wie es aussieht wird hier der indirekte adressant wie ein pointer behandelt.

so sollte es gehen

AUF DB1
L Z 1
L 4
*I
SLD 3
T #X
L DBD [#X]
T MD 5
 
Hallo

Auf diesen weg funktioniert das ohne Probleme.

AUF "DB test"
L #zaehler
L 4
*I
SLD 3
LAR1

L DBD [AR1,P#0.0]

Man braucht zwar das Adressregister aber das ist kein Problem
 
Zurück
Oben