Variant 类型是一种参数数据类型,通常只出现在 OB/FC/FB 接口区,除了 FB 的静态变量之外。Variant 类型的实参可以是一个可以指向不同数据类型变量的指针,包括基本数据类型和复杂数据类型、UDT 等。
Variant 数据类型提供了一种多功能的数据选项,它不会在背景数据块或工作存储器中占用空间,但会在 CPU 的装载存储器中占用存储空间。当调用一个块时,可以使用 Variant 参数与任何数据类型的变量相连接。这不仅传递了变量的指针,还传递了变量的类型信息,使得块识别并相应地处理这些数据。程序块可以使用 Variant 的相关指令来识别并处理这些参数。
需要注意的是,Variant 类型的数据在处理过程中可能会出现数据类型转换的问题,因此在使用时需要谨慎。
总的来说,Variant 类型是一种灵活的数据类型,可以在不同的数据类型之间进行转换,但在使用时需要考虑到数据类型的兼容性和转换可能带来的问题。
Variant指向的实参,可以是符号寻址,也可以是juedui地址寻址,还可以是形如P#DB1.DBX0.0 BYTE 10这种指针形式的寻址。
在早期版本的 TIA Portal 软件中,只有一些通讯指令使用 Variant 变量。然而,从 TIA V13SP1 和 S7-1200 V4.0 开始,可以在程序块的实参中定义 Variant 类型变量,并且可以通过以下指令处理 Variant 类型的变量:
1. 判断类指令
这类指令主要用于检查 Variant 类型实参的实际类型,但并不直接处理变量。这种指令非常有用,因为它可以帮助程序块识别 Variant 参数的实际数据类型,以便进行相应的处理。Variant 类型的变量可以根据其实际的数据类型进行不同的处理操作。具体可以参考相关文档或用户手册中关于判断类指令的内容。参见表1。
表1 判断类指令
2. 处理类指令
该类指令可以对Variant类型的实参进行转化,参见表2。
表2 处理类指令
3. 其他指令
DB_ANY_TO_VARIANT与VARIANT_TO_DB_ANY,参见DB_ANY数据类型。
P#指针说明
当Variant类型的实参指向形如P#DB1.DBX0.0 BYTE 10,指令内部将判断该形参为一个10字节的数组。
指针结构
S7-300/S7-400中的 Any 指针结构指的是 P#DB1.DBX0.0 BYTE 10 这种形式的指针。与 S7-300/S7-400 不同,S7-1200无法像前者那样定义和拆解 Any 指针。然而,在参数类型为 Variant 时,可以输入这种指针形式,并且 S7-1200 将其识别为数组。
P#DB1.DBX0.0 BYTE 10的解释:P#DB1.DBX0.0 BYTE 10 是一种指针表达式,用于指定从 DB1 数据块的 DBX0 开始的 10 个字节的数据。在使用这种指针时,DB1 必须是未经优化的 DB 块,并且该块中必须包含长度为 10 字节的变量。
这种指针结构可以修改为指向其他 DB 块,例如 P#DB10.DBX,或者指向 I 区、Q 区、M 区的指针,分别是 P#I、P#Q、P#M。
在指针表达式中,0.0 表示起始地址,例如 1.0、100.0 等,且小数点后必须是 0。
BYTE 后面跟随的数据类型可以是 Bool、Byte、Word、DWord、Int、DInt、Real、Char、Date、TOD 或 Time。
Zui后的数字 10 表示指针指向的数据类型实例的数量。对于 Bool 类型,数量必须是 1 或 8 的倍数。
P#指针举例,P#I0.0 Bool 8,P#Q0.0 Word 20,P#M100.0 Int 50。
- PLC中的BCD码是什么? 2024-11-21
- 为什么需要上位机?上位机能替代PLC实现控制吗? 2024-11-21
- 触摸屏不通过PLC,直接控制变频器!老司机手把手教你如何实现! 2024-11-21
- 控制继电器与PLC有什么不同?这6个点搞自动化的都懂! 2024-11-21
- 急停是停所有的输出电源,还是停整个设备的电源?这个原则起码90%电工都不知道 2024-11-21
- 一文搞懂西门子博途中的单个实例、多重实例和参数实例的区别! 2024-11-21
- 有源和无源信号到底有什么区别? 2024-11-21
- 西门子PLC与NPN、PNP传感器接线方式,PLC入门必看 ! 2024-11-21
- 西门子将于今年发布Simatic S7-1200 G2控制器 ! 2024-11-21
- 简单的改动,实现一个变频器分别独立拖动两个电机,老板高兴坏了! 2024-11-21
- 触摸屏与PLC通讯不上?老师傅告诉你怎么解决! 2024-11-21
- S7-1200CPU与S7-200SMART s7通信(S7-1200为客户端) 2024-11-21
- 电机运行时间排序案例分享,赶紧收藏学习! 2024-11-21
- 到底是先有电压还是先有电流? 2024-11-21
- PLC中模拟量信号的转换公式 2024-11-21
联系方式
- 电 话:18126392341
- 联系人:梁涛
- 手 机:15267534595
- 微 信:15267534595