-> 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
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