Wert mit Zeiger aus DB auslesen

mst

Level-1
Beiträge
463
Reaktionspunkte
89
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

Ich habe eine S7 315 2DP CPU

Ich werte einen Analogwert (Druckmessumformer) aus und Normiere diesen auf 0.0 - 30.0 Bar in Real. Nun möchte ich mit diesem Wert per Zeiger einen Wert aus einem DB auslesen:

L #Druck //Druck in Real
L 100.0 //Damit ich auf Kommastellen genau Arbeite
*R
TRUNC //Damit keine Kommastellen bleiben
L 4
*D //Real erhöt sich um 4
T #Zeiger

AUF #DB_Tab //DB mit Werten die Ausgelesen werden sollen
L DBW [#Zeiger] (#Zeiger - ist als DWORD Deklariert)
T #Wert

Nun, das Funktioniert nicht, ich vermute weil der Wert den ich habe nicht für den Zeiger passt.

Im DB sind Werte vom Typ Real Abgelegt DBW0 - DBW12004 entsprechent dem Druck von 0.00 - 3.00 Bar = 3000 Werte

Kann mir hier jemand helfen?
Beste Dank
MFG MSt
 
mst schrieb:
Im DB sind Werte vom Typ Real Abgelegt DBW0 - DBW12004 entsprechent dem Druck von 0.00 - 3.00 Bar = 3000 Werte

Entschuldigung, hab mich verschrieben: es sind natürlich 0.00 - 30.00 Bar
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo
Ein Zeiger (Pointer) benutzt die rechten 3 Bits um auf die Bitstellen 0-7 eines Bytes zu verweisen. Um diese auszublenden mußt du vor deinem T#Zeiger noch ein SLD 3 einfügen.

Hoffe es ist verständlich. Ansonsten schau dir noch mal in der S7-Hilfe das Pointerformat an.

Gruß

Andreas
 
Danke habe das Problem schon gelöst: Habe den Wert in Int gewandelt und ein SLD 3 eingefügt.

Funktioniert prima.

Danke nochmals
MFG MSt
 
Zurück
Oben