Zugriff auf DB(String) über Pointer

Thomas R

Level-1
Beiträge
20
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Erst einmal möchte ich sagen, dass ich ein absoluter Anfänger in Sachen S7 bin!
Nun zu meinem Problem: Ich versuche zur Zeit einen FC zu schreiben der mir in einem DB290 ab dem Byte 138 eine Fehlernummer hineinschreibt in Asci.

Schnittstelle:
In_FaultNr := Fehlernummer (INT) 4-stellige Nummer
In_PointerAdr := ?"SPS_TO_HMI".ActualFaultNo P#db290.dbb138 (Pointer)
Tmp: Byte1, Byte2, Byte3, Byte4 Typ Byte
MeldeNr Typ DINT

Nun habe ich durch 32Bit BCD-Wandlung der INT-Zahl und Addition mit 48 die einzelnen Stellen der Fehlernummer in Bytes stehen!

Ab dem Byte DB290.dbb138 ist ein String[4]("SPS_TO_HMI".ActualFaultNo ) deklariert. Nun möchte ich die ermittelten Ziffern auf den DB schreiben und zwar Byte1 auf DB290.dbb140, Byte2 auf DB290.dbb141....

Nun habe ich aber ein Problem mit dem Pointer.

Ich dachte ich könnte so auf den DB schreiben.

L p##in_pointerAdr oder L in_pointerAdr (funktioniert nicht 6Bytes)
LAR1
L Byte1
T DBB[ar1,P#2.0]

Es wäre nett wenn mir jemand helfen könnte.
Gibt es verschiedene Lösungsansätze? Warum funktioniert der Zugriff über den angelegten Pointer nicht?


Gruß
Thomas:confused:
 
Probier mal SFC20 Blockmove

In ist ein Pointer und Out

in: P#db290.dbx138.0 byte 6
out: p#db290.dbx???.0 byte 6
Die Adressen überschneiden sich in deiner Frage.
Hoffe das ich das so richtig verstanden habe.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!!

Ich habe das Problem mit einem selbstkreierten Pointer vom Typ Any gelöst!
Bsp. im Forum gefunden.

Ich übergebe die DBNr. und StartByte an den FC.

Danke für deine Hilfe!:)
 
Zurück
Oben