您现在的位置是:首页 > PLC技术 > PLC技术

S7-1500 PLC的指针类型

来源:艾特贸易2017-10-11

简介S7 -1500 PLC 支持 Pointer 、 Any 和 Variant 三种类型指针, S7 - 300/400 PLC 只支持前两种, S7 -1200 PLC 只支持最后一种。 (1) Pointer Pointer 类型的参数是一个可指向特定变量的指针。它在存储器中

    S7 -1500 PLC支持PointerAnyVariant三种类型指针,S7 - 300/400 PLC只支持前两种,S7 -1200 PLC只支持最后一种。

   (1) Pointer

   Pointer类型的参数是一个可指向特定变量的指针。它在存储器中占用6 B(48 bit),可能包含数据块编号或0(若数据块中没有存储数据)、CPU中的存储区和变量起始地址(格式为“字节.位”)等信息,图5-4显示了Pointer指针的结构。

   (2) Any

   Any类型的参数指向数据区的起始位置,并指定其长度。Any指针使用存储器中的10个字节,图5-5给出了Any指针的结构。Any指针不仅包含Pointer指针所包含的内容(DB编号、存储区和数据的起始地址),还可能包含数据类型(数据区元素的数据类型)、零指针(使用零指针,可以指出缺少的值)和重复系数(系统区的元素数)等。

Pointer指针的结构

    5-4    Pointer指针的结构

Any指针的结构

    5-5    Any指针的结构

   (3) Variant

   Variant类型的参数是一个可以指向不同数据类型变量(而不是实例)的指针。Variant可以是一个元素数据类型的对象,例如IntReal;也可以是一个StringDTLStruct、数组、UDTUDT数组。Variant指针可以识别结构,并指向各个结构元素。Variant数据类型的操作数在背景DBL堆栈中不占用任何空间,但是将占用CPU上的存储空间。

   Variant类型的变量不是一个对象,而是对另一个对象的引用。Variant类型的各元素只能在函数的块接口中声明。因此,不能在数据块或函数块的块接口静态部分中声明,例如,因为各元素的大小未知,所引用对象的大小可以更改。

   Variant数据类型只能在块接口的形参中定义。