西门子博图编程基础数据类型Variant.doc

西门子博图编程基础数据类型Variant.doc

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

Variant类型

Variant类型是一个参数数据类型,只能出现在除FB的静态变量以外的OB/FC/FB接口区。

Variant类型的实参是一个可以指向不同数据类型变量的指针。它可以指向基本数据类型,也可以指向复杂数据类型、UDT等。

Variant数据类型的操作数不占用背景数据块或工作存储器中的空间,但是将占用CPU上的装载存储器的存储空间。

调用某个块时,可以将该块的Variant参数连接任何数据类型的变量。除了传递变量的指针外,还会传递变量的类型信息。该块中可以利用Variant的相关指令,将其识别出并进行处理。

Variant指向的实参,可以是符号寻址,也可以是绝对地址寻址,还可以是形如P#DB1.DBX0.0BYTE10这种指针形式的寻址。

在早期版本的TIA博途软件中,只有一些通讯指令使用Variant变量。从TIAV13SP1开始,S7-1200V4.0开始,可以在程序块实参定义Variant类型变量,并且还可以通过以下指令处理Variant类型的变量。

1.判断类指令,该类指令作用是检查Variant类型的实参的实际类型,并不参与直接处理,参见表1。

表1判断类指令

LAD

SCL

位置

EQ_Type

TypeOf

基本指令--比较操作--变量

NE_Type

EQ_ElemType

TypeOfElements

NE_ElemType

IS_NULL

?

NOT_NULL

?

IS_ARRAY

IS_ARRAY

CountOfElements

CountOfElements

基本指令--移动操作--变量

2.处理类指令,该类指令可以对Variant类型的实参进行转化,参见表2。

表2处理类指令

LAD/SCL

位置

Deserialize

基本指令--移动操作

Serialize

MOVE_BLK_VARIANT

VariantGet

基本指令--移动操作--变量

VariantPut

3.其他指令

DB_ANY_TO_VARIANT与VARIANT_TO_DB_ANY,参见DB_ANY。

P#指针说明

当Variant类型的实参指向形如P#DB1.DBX0.0BYTE10,指令内部将判断该形参为一个10字节的数组。

------------------------------------------------------------------------------------------指针结构-----------------------------------------------------------------------------------------------------

P#DB1.DBX0.0BYTE10这种结构起源于S7-300/S7-400的Any指针,S7-1200无法像S7-300/S7-400一样定义以及拆解Any指针,但是在参数类型为Variant时,可以输入这种指针。并且,如前所述,S7-1200将识别其为数组。

P#DB1.DBX0.0BYTE10的解释:指向从DB1.DBX0.0开始的10个字节,并且DB1必须是非优化的DB块,并包含有10字节长度的变量。

P#DB1.DBX位置可以替换成其他DB块号例如P#DB10.DBX,或者I区:P#I,Q区:P#Q,M区:P#M。

0.0的位置为这种指针的起始地址,例如1.0、100.0、......,并且小数点后一定是0。

BYTE位置可以是以下类型:Bool、Byte、Word、DWord、Int、DInt、Real、Char、Date、TOD、Time类型。

10的位置为指针执行前面数据类型的个数,Bool类型比较特殊,只能是1,或者8的倍数。

P#指针举例,P#I0.0Bool8,P#Q0.0Word20,P#M100.0Int50。

文档评论(0)

159****5811 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档