大家好,问一下关于使用 AT 函数在 S7-SCL 中构造一个 ANY 指针的问题
看了下网站上的
如何使用 AT 函数在 S7-SCL 中构造一个 ANY 指针?
但还有不明白 的地方,
Test1.ANY_id:= 16#10; //这个不知道是什么意思用改吗
Test1.Source_DataType:= 16#2;
//这个2是指指针里要用的是数据块吗?ANY也可以指向I,Q和M,就改这个参数吗,I,Q和M对应的是多少,我在网站上找也几个文档,都没有说明这些,谢谢谢谢
网站上的的程序在下面
FUNCTION FC1: VOID
VAR
Test1: STRUCT //ANY Struktur 1 anlegen
ANY_id: BYTE; //Define ANY structure 1
Source_DataType: BYTE;
Source_Lenght: WORD;
Source_DB_Nummer: WORD;
Source_Byte_Pointer: DWORD;
END_STRUCT;
Test2: STRUCT //ANY Struktur 2 anlegen
ANY_id: BYTE; //Define ANY structure 2
Destin_DataType: BYTE;
Destin_Lenght: WORD;
Destin_DB_Nummer: WORD;
Destin_Byte_Pointer: DWORD;
END_STRUCT;
//Deklaration ANY Pointer f黵 Quell-DB
//Declaring ANY pointer of source DB
pAny_source AT Test1: ANY;
//Deklaration ANY Pointer f黵 Ziel-DB
//Declaring ANY pointer of target DB
pAny_destin AT Test2: ANY;
erg: INT; //R點kgabewert / Return value
END_VAR
Test1.ANY_id:= 16#10; //Vorbelegen der Quell-ANY-Pointer Variablen
Test1.Source_DataType:= 16#2; //Assign values for source pointer
Test1.Source_Lenght:= 16#0a;
Test1.Source_DB_Nummer:= 16#06;
Test1.Source_Byte_Pointer:= dw#16#84000000;
Test2.ANY_id:= 16#10; //Vorbelegen der Ziel-ANY-Pointer Variablen
Test2.Destin_DataType:= 16#2; //Assign values for destination pointer
Test2.Destin_Lenght:= 16#0a;
Test2.Destin_DB_Nummer:= 16#07;
Test2.Destin_Byte_Pointer:= dw#16#84000000;
//Aufruf SFC20 und Parametrierung der ANY-Pointer-Variablen
//Calling SFC20 and programming of ANY pointer variables
erg:= SFC20(srcblk:= pAny_source, dstblk:= pAny_destin);
END_FUNCTION