请教ANY与VARIANT数据类型的联系和区别?

1、对ANY与VARIANT两个数据类型有点混淆,手册中ANY的示例:P#M20.0 BYTE 10,VARIANT的示例:P#DB10.DBX10.0 INT12,这两个示例从形式上是一样的。那么ANY与VARIANT数据类型有哪些异同呢?
2、手册中 VARIANT符号示例如截图所示MY.DB.STRUCT1.PRESSURE1,这种表示方式是不是只指明了起始地址而没有指明地址的长度?那么我应该何时用绝对表示方式?何时用符号表示方式?
问题比较多,还请各位老师传到授业解惑。非常感谢。

问题补充:
我有个疑问,比如自由口发送指令SEND_PTP的BUFFER管脚是VARIANT数据类型,如果用符号寻址的话就指定了发送缓存区的首地址,那么发送长度从哪里指令呢?

图片说明:

请教ANY与VARIANT数据类型的联系和区别?    请教ANY与VARIANT数据类型的联系和区别?   

最佳答案

1、ANY和VARIANT都是指针型数据类型,西门子300/400/1500支持ANY类型,1200/1500支持VARIANT类型,见图示
2、 ANY 类型的参数指向数据区的起始位置,并指定其长度。 ANY 指针使用存储器中的 10 个字节。
3、VARIANT 类型的参数是一个可以指向不同数据类型变量(而不是实例)的指针。 VARIANT 指针可以是一个元素数据类型的对象,例如 INT 或 REAL。 也可以是一个 STRING、DTL、STRUCT 数组、UDT 或 UDT 数组。 VARIANT 指针可以识别结构,并指向各个结构元素。 VARIANT 数据类型的操作数在背景 DB 或 L 堆栈中不占用任何空间。 但是,将占用 CPU 上的存储空间。

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

图片说明:

请教ANY与VARIANT数据类型的联系和区别?  

提问者对于答案的评价:
谢谢回答。
手册中有107页有VARIANT数据类型的举例。个人感觉VARIANT的符号表示方法和绝对表示方法还是有挺大差异的。绝对表示方法P#DB10.DBX10.0 INT 12指定了起始地址和长度,而符号表示方法MyDB.Struct1.pressure1只指定了起始地址而没有指定长度。
有些指令如ATH的输入管脚中是有起始地址和长度两个输入,有些指令如SEND PTP的输入管脚中只有起始地址。这两种情况下用VARIANT的符号表示方法和绝对表示方法是否会有差异。问了400热线给出的回答是SEND PTP指令用的VARIANT输入如果用符号表示方法的话指针指向数组则长度为整个数组的长度,指针指向字符串则长度为整个字符串的长度。
个人感觉VARIANT的这两种表示方法还是有很大区别的,哪位老师有相关的资料或者范例可供分享呀?谢谢。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc202871.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年11月1日 上午12:54
下一篇 2017年11月1日 上午12:54

相关推荐

  • S7-1200软件如何升级

    我已经安装了STEP 7 Basic V10.5  如何升级到STEP 7 Basic V11 最佳…

    SIMATIC S7-1200 2017年6月18日
  • S7-1200 TIA Portal V11 PID调节

    PID调试工具在线调试时,窗口内的调节数据能不能自动保存到本地电脑上,以便分析?谢谢。 问题补充:谢谢Slide。我想保存的数据是PID的输入量和输出量,而不是整定的参数。(因为我…

    2017年11月12日
  • 1200系列配置

    西门子1200系列的PLC,组态扩展规则是什么样子的,如机架数、扩展模块数。现场因为I/O点数不定,而且厂区较大,可能需要分点设置PLC站,最终是进入工控机,要通讯方便传输距离达到…

    SIMATIC S7-1200 2017年6月10日
  • S7-1200模拟量输入的值范围

    模拟量输入0-10V,读到的数值范围是多少之间? 最佳答案 0~27648。 提问者对于答案的评价:谢谢! 专家置评 已阅,最佳答案正确。

    SIMATIC S7-1200 2017年6月27日
  • 如何默认显示为十进制

    如图所示,在结监控数值时,都是显示16进制,看着很不习惯,每次都手动更改为10进制。数据少点还无所谓,多了更改起来很麻烦,有没有什么设置方式,能默认显示为10进制呢?谢谢! 最佳答…

    SIMATIC S7-1200 2017年6月7日
  • S7-1200 和 IW和QW进行间接寻址

    问题1,如题,读取批量的模拟量,请问实现的程序是怎样?问题2,把这读取出的模拟量,批量转换数据类型,请问实现的程序是怎样的?谢谢!!! 最佳答案 用POKE_BOOL指令,指令帮助…

    SIMATIC S7-1200 2017年10月24日
  • s7-1200 能组态多少个PID控制?

    请问,s7-1200 能组态多少个PID控制? 最佳答案 1、S7-1200 CPU提供了PID控制器回路数量受到CPU的工作内存及支持DB块数量限制。严格上说…

    SIMATIC S7-1200 2017年6月9日
  • 博途V14 字符串移动指令输入中文提示 特殊字符的显示取决于PG/PC上的区域和语言设置

    博途V14软件 在S7-1200中进行 字符串移动指令操作时,在字符串中输入中文提示文本中存在特殊字符,特殊字符的显示取决于PG/PC上的区域和语言设置。输入英…

    2017年6月6日
  • 求S7-PCT下载地址

    求S7-PCT得软件下载地址,前段时间不小心吧这个软件删了,现在找不到了,大神给个S7-PCT的下载链接,谢谢。 最佳答案 S7-PCT下载地址:https://support.i…

    SIMATIC S7-1200 2017年5月29日
  • SCL 置复位问题

    最近在学习S7-1200,无意中看到找答案的一个问题,http://www.ad.siemens.com.cn/Service/answer/solution.aspx?Q_ID=…

    SIMATIC S7-1200 2017年6月9日