Hallo zusammen,
ich hab jetzt das Vergnügen an der Sache weiterarbeiten zu können. nur geschafft hab ich es heute immer noch nicht.
Mein Programm sieht so aus:
VAR
aRT_DATEN_RCV : ARRAY [0..20] OF BYTE;
RT_DATEN_RCV AT aRT_DATEN_RCV : STRUCT
ID : BYTE := 16#01;
SRC_LEN : WORD := 16#02;
SRC_DB_NR : WORD := 16#72;
SRC_POINTER : DWORD;
DST_POINTER : DWORD;
END_STRUCT;
aRT_DATEN_SND : ARRAY [0..20] OF BYTE;
RT_DATEN_SND AT aRT_DATEN_SND : STRUCT
ID : BYTE := 16#01;
DST_LEN : WORD := 16#02;
DST_DB_NR : WORD := 16#70;
DST_POINTER : DWORD;
SRC_POINTER : DWORD;
END_STRUCT;
GET : SFB14;
PUT : SFB15;
END_VAR
BEGIN
RT_DATEN_RCV.SRC_POINTER := DB112.DBW0;
RT_DATEN_RCV.DST_POINTER := DB114.DBW0;
RT_DATEN_SND.DST_POINTER := DB114.DBW0;
RT_DATEN_SND.SRC_POINTER := DB112.DBW0;
GET ( REQ := M0.1 // IN: BOOL
,ID := RT_DATEN_RCV.ID // IN: WORD
,ADDR_1 := RT_DATEN_RCV.SRC_POINTER // INOUT: ANY
,RD_1 := RT_DATEN_RCV.DST_POINTER // INOUT: ANY
);
PUT ( REQ := M0.1 // IN: BOOL
,ID := RT_DATEN_SND.ID // IN: WORD
,ADDR_1 := RT_DATEN_SND.SRC_POINTER // INOUT: ANY
,SD_1 := RT_DATEN_SND.DST_POINTER // INOUT: ANY
);
END_FUNCTION_BLOCK
Funktionieren tut es leider nicht. Wa smache ich mit dem AT falsch?
Ich möchte mit einer 315-2 PN/DP aus einer 1200 Steuerung lesen und rein schreiben. In FUP hat das auch geklappt, allerdings möchte ich das in SCL machen.
Danke und Grüße
Carsten