Daten von einem DB inTemp Bereich kopieren

Temp

Wenn du Lokalvariablen meinst musst du erst ín der Schnittstelle an deinem FC Bereiche Projektieren.
Diese kannst du dann mit Lade / Transferiere benutzen:

In Temp Doppelwort etc anlegen:

L DB 100.Dbd0 / Doppelwort
T LD 0 / Lokaldoppelwort 0

Ich hoffe das mneinst du ..... :rolleyes:
 
Sfc20

Hallo,

entweder symbolisch (geht auch mit Strukturen) oder absolut.

CALL "BLKMOV"
SRCBLK :=P#M 0.0 BYTE 12
RET_VAL:=#ret_sfc
DSTBLK :=#test

CALL "BLKMOV"
SRCBLK :=P#M 0.0 BYTE 12
RET_VAL:=#ret_sfc
DSTBLK :=P#L 0.0 BYTE 12

MfG
André Räppel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
FC IN zu TEMP Bereich

Mit der zweiten Lösung hat es geklappt.
Noch ne Frage: Wie kann man in einem FC den IN Bereich in den TEMP Bereich kopieren? Mit Lade und Transferiere ist es bei vielen In Parameteren ziemlich aufwendig.
 
kopieren

Hallo,

schlicht und einfach... nein. Das einzige was gehen würde wäre bei FB den Umweg über den IDB zu gehen, da die Schnittstelle dort auch abgelegt wird.

MfG
André Räppel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@KalEl

Das ist für so eine Art "Typecast" sinnvoll, wenn der Input ein Wort ist, im FB/FC aber mit symbolischen Bit-Variablen weitergearbeitent werden soll.
 
@SPS-concept

P#L 64.0 BYTE 12 nimmt der SFC20 ersmal ohne Merkern an, was dann allerdings in der SPS passiert?????
Die Siemens-Hilfe ist unklar:

Zuerst steht:

Zulässige Quellbereiche sind:
· Teile von Datenbausteinen
· Merker
· Prozeßabbild der Eingänge
· Prozeßabbild der Ausgänge
Der Quellparameter kann auch in einem nicht ablaufrelevanten Datenbaustein im Ladespeicher liegen (DB, der mit dem Schlüsselwort UNLINKED compiliert wurde)!

Dann aber:
SRCBLK INPUT ANY E, A, M, D, L Angabe des Speicherbereichs, der kopiert werden soll (Quellfeld). Arrays vom Datentyp STRING sind nicht erlaubt.

RET_VAL OUTPUT INT E, A, M, D, L Tritt während der Bearbeitung der Funktion ein Fehler auf, enthält der Rückgabewert einen Fehlercode.

DSTBLK OUTPUT ANY E, A, M, D, L Angabe des Speicherbereichs, in den kopiert werden soll (Zielfeld). Arrays vom Datentyp STRING sind nicht erlaubt.

Ich interpretiere L mal als Lokaldaten, oder?
 
ok, für sowas macht das sinn.
obwohl das ja auch nicht ganz ohne ist. ;)
entweder muss ich dann mit dem adressregister arbeiten oder direkt mit den lokaldaten.
 
Zurück
Oben