Quantcast
Channel: SPS-Forum - Automatisierung und Elektrotechnik
Viewing all articles
Browse latest Browse all 47324

TIA SCL-File in TIA Portal umwandeln

$
0
0
Hallo Zusammen,

ich beschäftige mich gerade mit TIA Portal V13 und möchte eine aus S/ Classic fertiges SCL-File in TIA Portal importieren und generieren. Aber TIA Portal gibt mir hierbei eine Fehlermeldung bei der folgenden Funktion:

Code:

FUNCTION FC_COPY_DATA_ANY: VOID

VAR_INPUT
    Data_Length :    BYTE;
    Src_Type    :    BYTE;
    Src_DbNr    :    BYTE; 
    Src_Adr    :    INT; 
    Dst_Type    :    BYTE;
    Dst_DbNr    :    BYTE; 
    Dst_Adr    :    INT;       
END_VAR
VAR_TEMP
    src: STRUCT //ANY struct
        ANY_id:        BYTE;
        DataType:      BYTE;
        Length:        WORD;
        DB_Nummer:      WORD;
        MemoryArea:    BYTE;
        ByteAddressMSB: BYTE;
        ByteAddressLSB: WORD;
    END_STRUCT;
    dst: STRUCT //ANY struct
        ANY_id: BYTE;
        DataType: BYTE;
        Length: WORD;
        DB_Nummer: WORD;
        MemoryArea:    BYTE;
        ByteAddressMSB: BYTE;
        ByteAddressLSB: WORD;
    END_STRUCT;
    srcAdr    :    WORD; 
    dstAdr    :    WORD; 
   
    p_src  AT src  :ANY;
    p_dst  AT dst  :ANY;
       
    ret_val_blk :INT;
END_VAR
     
BEGIN

srcAdr := SHL (IN:=INT_TO_WORD(Src_Adr), N:=3);
dstAdr := SHL (IN:=INT_TO_WORD(Dst_Adr), N:=3);

//Pointer for input data P#I 592.0 BYTE 28
src.ANY_id := B#16#10; //for S7 always 10h
src.DataType:= B#16#02; //Type Byte
src.Length:= Data_Length; //28 Byte
src.DB_Nummer:= Src_DbNr; //no DB than 0
src.MemoryArea:= Src_Type; //81 = Input, 82 = output, 84 = Datablock
src.ByteAddressMSB:= B#16#0;
src.ByteAddressLSB:= srcAdr; //90h = and 3 to right, result 10010000 => 12d Bitadresse = 000

//Pointer for output data P#Q 576.0 BYTE 9
dst.ANY_id := B#16#10; //for S7 always 10h
dst.DataType:= B#16#02; //Type Byte
dst.Length:= Data_Length; //28 Byte
dst.DB_Nummer:= Dst_DbNr; //28 Byte //no DB than 0
dst.MemoryArea:= Dst_Type; //81 = Input, 82 = output, 84 = Datablock
dst.ByteAddressMSB:= B#16#0;
dst.ByteAddressLSB:= dstAdr; //80h = and 3 to right, result 100000 => 10d Bitadresse = 000


ret_val_blk := BLKMOV(srcblk:= p_src, dstblk:= p_dst);
             
END_FUNCTION

Leider sehe ich auf anhieb nicht den Fehler den TIA Portal mir ausgibt:

Zitat:

Generiere Baustein "FC_COPY_DATA_ANY"
Interface: Der Datentyp "AT construct" ist an dieser Stelle nicht erlaubt.
Interface: Der Datentyp "AT construct" ist an dieser Stelle nicht erlaubt.
Ze 000084: Baustein "FC_COPY_DATA_ANY" wird mit dem Attribut "Optimierter Bausteinzugriff" angelegt.
24: Ungültiger Datentyp.
24: Ungültiger Datentyp.
Kann mir jemand hierbei helfen was ich bei der Funktion übersehe?

LG

Viewing all articles
Browse latest Browse all 47324


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>