发布于 2012-08-07 13:41:46
17楼
16位指针:16位地址指针用于定时器、计数器、程序块(DB、FC、FB)的寻址,16位指针被看作一个无符号整数(0~65535),它表示定时器(T)、计数器(C)、数据块(DB、DI)或程序块(FB、FC)
32位指针:32位地址指针用于I、Q、M、L、数据块等存储器中位、字节、字及双字的寻址,32位的地址指针可以使用一个双字表示,第0位~第2位作为寻址操作的位地址,第3位~第18位作为寻址操作的字节地址,第19位~第31位没有定义
POINTER是一种用于传递指针的形参数据类型,长度为6个字节。用于向被调用的函数FC及函数块FB传递复合数据类型(如ARRAY、STRUCT及DT等)的实参。在被调用的函数FC及函数块FB内部可以间接访问实参的存储器。
ANY是一种用于传递指针的形参数据类型,可视为POINTER类型的扩展,较POINTER类型为复杂,长度为10个字节,增加的4字节,最高字节 (Byte 0) 固定为B#16#10,第二字节 (Byte 1) 为ANY指针所指向区域的数据类型,而接下来的2字节 (BYTE 3, 4) 组合为一个INT,为ANY指针所指定区域的长度,称为重复系数 (Repetition factor) 。其余6字节作用与POINTER类型相同。
为什么它们的字长不一样,看看它们的不同作用就明白了。不同的类型自然会用在不同的场合,看你怎么用了。
参考手册:F0215
不忘初心哈