西门子array数据类型_西门子SCL编程入门教程连载(16)-Variant相关指令

本文深入讲解了西门子SCL编程中与Variant相关的指令,包括TypeOf、IS_ARRAY、TypeOfElements、CountOfElements、VariantGet、VariantPut以及空值判断。这些指令用于操作和检查Variant变量的类型、数组属性、元素类型和数量,以及空值检测,为高效编程提供了支持。
摘要由CSDN通过智能技术生成

6e3ed3e4a59623474802aa5defea2ab5.png

前面的文章我们介绍了Variant类型,今天这篇文章我们来介绍下与Variant相关的指令。包括如下几个:

1、TypeOf
2、IS_ARRAY

3、TypeOfElement
4、CountOfElements
5、VariantGet

6、VariantPut

7、关于空值的判断

1、TypeOf指令

TypeOf指令用来判断一个Variant形参所引用的变量的类型。支持的数据类型包括:基本类型、复杂类型或者用户自定义类型等。

TypeOf指令一般配合IF语句使用。比如,判断一个Variant的引用变量是否为"INT",可以使用如下的语句:

271296bf7080c0c468046036245612ff.png

也可以使用TypeOf指令直接判断两个Variant参数是否为相同的类型,比如下面的代码:

4fae2ce65a6b3309871523aa1643ac75.png

2、IS_ARRAY指令

用来判断Variant所引用的变量是否是数组类型或者P#指针数据类型。如果是,则返回真(RLO=1);否则返回假(RLO=0)。IS_ARRAY指令需要配合IF语句使用。例如:

bef2ddf2c266f26e8a8b16fd2a44febe.png

3、TypeOfElements指令

TypeOfElements指令用来判断Variant所引用的数组中元素的数据类型。比如下面的代码首先判断operand1引用的变量是否为数组类型,如果是,则判断数组中元素的类型是否为INT型:

b01a20b3135af5c52e59ca0a7cf9ca4b.png

也可以使用TypeOfElements指令直接与已知数组的类型进行比较,例如下面的代码:

56cf35680edf523d63faea822311c0dc.png

4、CountOfElements 指令

该指令用来获取Variant引用数组变量的元素的个数,返回值为无符号双整数(UDINT)型。

例如下面的代码:

63031045e6eaadda79e3a7e25e393f54.png

5、VariantGet指令

该指令用来获取Variant所引用变量的值,并写入到一个指定的变量中;
例如下面的代码:

57ab041b9561f421ee453df4c1698fe1.png

6、VariantPut指令

该指令将某个变量的值写入到Variant引用的变量中,例如下面的代码:

9f52bafb407912acf413db3313c3cfda.png

7、关于空值的判断

某些情况下,有可能存在Variant指向的变量不存在的情况,即Variant引用了一个空变量。空变量或者空值用NULL表示。

在梯形图语言中,可以使用IS_NULL指令用来判断形参是否引用了空变量。

如果形参引用了空变量,则指令返回真(RLO=1);

如果形参引用的变量不为空,则指令返回假(RLO=0);

相应的,在梯形图语言中还有NOT_NULL指令用来判断形参引用的变量是否不为空;

如果非空,则NOT_NULL指令返回真;否则,NOT_NULL指令返回假;

在SCL语言中没有IS_NULL或者NOT_NULL指令,但是可以直接在IF语句中将变量与NULL关键字进行比较。例如下面的代码:

44b86b16d9c603af77bb5d99d3ceec59.png

好了,关于Variant相关的指令我们就先介绍这么多。至于DB_ANY相关的内容将在后续文章中介绍。

我的新书《西门子S7-200 SMART PLC应用技术——编程、通信、装调、案例》出版了,感兴趣的小伙伴请点击下面的链接查看介绍:我的新书《西门子S7-200 SMART PLC应用技术——编程、通信、装调、案例》出版了,感兴趣的小伙伴请点击下面的链接查看介绍:

《西门子S7-200 SMART PLC应用技术》​www.founderchip.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值