Block Move; BLKMOVE; SFC20 über Schnittstelle oder Pointer

Chris80

Level-2
Beiträge
191
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo
ich habe versucht einen Block Move über eine Schnittstelle laufen zu lassen bekomme ich leider nicht hin.

Geht das überhaupt?

Könnte man den SFC20 auch mit einen Pointer verwenden?

04.04.jpg

Christian
 
Wenn Du die magische Taste "F1" benutzt, wirst Du in der Hilfe sehen, dass man an den SFC20 ein ANY anparametrieren kann. In der Hilfe finden sich auch Beispiele, wie das aussehen könnte.
 
ANY-Parameter von Bausteinschnittstelle zu TEMP kopieren in FC

In FC geht das Kopieren etwa so:
Code:
//ANY-Parameter von Bausteinschnittstelle zu TEMP kopieren in FC

//Pointer auf IN-Parameter IN_SRCBLK erstellen
      L     P##IN_SRCBLK
      LAR1                              // AR1: Adresse des IN-ANY
//Pointer auf TEMP-Variable tmp_SRCBLK erstellen
      LAR2  P##tmp_SRCBLK               // AR2: Adresse des TEMP-ANY

//ANY IN_SRCBLK nach tmp_SRCBLK kopieren
      L     D [AR1,P#0.0]               // (S7-ID + Datentyp + Wiederholfaktor)
      T     D [AR2,P#0.0]
      L     W [AR1,P#4.0]               // (DB_Nr)
      T     W [AR2,P#4.0]
      L     D [AR1,P#6.0]               // (Bereichsadresse)
      T     D [AR2,P#6.0]

//das gleiche noch für IN_DSTBLK ...
//...

      CALL "BLKMOV"
       SRCBLK :=#tmp_SRCBLK
       RET_VAL:=#tmp_Int
       DSTBLK :=#tmp_DSTBLK

Ein Beispiel für das Kopieren in FB siehe z.B. hier

Harald
 
Zuletzt bearbeitet:
@PN/DP: könntest du aus deiner Antwort mal ein kurzes FAQ machen. Die Frage kommt hier so oft, mir wird schon schwindelig.
 
Zurück
Oben