FUNCTION "DBMOV" : Void
TITLE = DB-Bereiche kopieren
{ S7_Optimized_Access := 'FALSE' }
AUTHOR : IBAE
FAMILY : FIFO
NAME : FifoIn
VERSION : 0.1
//COPYRIGHT by Ingenieurbüro A.Emmert
//Ortsstr.33, D-869925 Fuchstal (Germany)
//Tel.: 0049(0)8243-1254
//Version: H&M / 06.12.2025
//
   VAR_INPUT 
      QuellDB : Int;   // Quell-DB
      QuellDW : Int;   // Quell-1.DW
      ZielDB : Int;   // Ziel-DB
      ZielDW : Int;   // Ziel-1.DW
      Anzahl_DW : Int;   // Anzahl der zu kopierenden DWs
   END_VAR

   VAR_OUTPUT 
      RE_VAL : Int;   // Rückmeldung
   END_VAR

   VAR_TEMP 
      Quelle : Any;   // Zeiger, wo Rein-Daten sind
      Ziel : Any;   // Zeiger, FIFO-Stelle
   END_VAR


BEGIN
NETWORK
TITLE = 

//Kennung + Datenbytes
      L 16#1004            ;//Kennung 10 + Word=04
      T %LW0;
      T %LW10;//Any-Kennung, Datentyp
      L #Anzahl_DW                 ;//Datenwords speichern
      T %LW2;
      T %LW12;//Wiederholungen

//Quelle-Pointer erzeugen:
      L #QuellDB;
      T %LW4;//DB_Nummer
      L #QuellDW             ;//Adresse
      SLD 3;
      L 16#8400_0000;//Kennung: Daten
      OD;
      T %LD6;//Kennung, Adresse

//Ziel-Pointer erzeugen:
      L #ZielDB;
      T %LW14;//DB_Nummer
      L #ZielDW               ;//Adresse
      SLD 3;
      L 16#8400_0000;//Kennung: Daten
      OD;
      T %LD16;//Kennung, Adresse

      CALL BLKMOV//Datenliste-Daten speichern
      {blk_type := 'Variant'}
      (  SRCBLK                      := #Quelle , 
         RET_VAL                     := #RE_VAL , 
         DSTBLK                      := #Ziel
      );

NETWORK
TITLE = Ende
      BE;
END_FUNCTION

