在SCL中,能够声明ANY数据类型的变量如下:
作为块的形式参数;当块被调用时,这些参数能用任意数据类型的实际参数提供。
作为临时变量;能够指定任意数据类型的值给这些变量。
能够用下列数据作为实际参数或作为赋值语句的右边部分:
本地和共享变量
在DB中的变量(绝对地址或称号地址)
在本地实例中的变量(绝对地址或称号地址)
NIL常量
指定一个空指针。
ANY数据类型
定时器、计数器和块
指定标识符(如:T1, C20或FB6)。
限制(Restrictions)
ANY数据类型允许用作FB和FC的形式输入参数、输入/输出参数,及FC的输出参数。常量不允许用作其实际参数或用在其赋值语句的右边,除NIL常量外。
当调用FB或FC时,如果将临时变量用作ANY类型的形式参数,不能传递参数到远程块,传递他们时临时变量将失效。
这种类型变量不能用作结构类型的组件类型或作为数组的元素类型。
当调用FC或FB时,如果形式参数作为输入参数声明,只能指定过程输入(%PEW)给ANY类型的形式参数。
当调用FB时,如果形式参数作为输出参数声明,只能指定过程输出(%PAW)给ANY类型的形式参数。
ANY数据类型举例:
Example of the ANY Data Type
VAR_INPUT
iANY : ANY;
END_VAR
VAR_TEMP
pANY : ANY;
END_VAR
CASE ii OF
1:
pANY := MW4; // pANY包含MW4的地址
3..5:
pANY := aINT[ii]; // pANY包含aINT中的第ii个元素的地址;
100:
pANY := iANY; //包含iANY输入变量的值
ELSE
pANY := NIL; // pANY包含NIL指针的值
END_CASE;
SFCxxx(IN := pANY);
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !