Variant数据类型指针——从S7-300_400到S7-1500看变址寻址的改变.pdfVIP

Variant数据类型指针——从S7-300_400到S7-1500看变址寻址的改变.pdf

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Variant 数据类型指针——从 S7-300_400 到 S7-1500 看变址寻址的改变 Variant 数据类型指针 总结一下前面介绍过的指针, 可以包含 ANYPOINTER , POINTER 可以包含 32 位寄 存器或者存储器指针,还有一个独立的 16 位指针,这些指针都是一个对象,占用存储器 的空间。在 S7-1500 中,推荐使用的是符号寻址方式,没有绝对地址,所以上述指针都不 适合符号寻址方式。从面向对象的编程方式上看,一个对象具有属性,可以是 REAL 类 型、 BOOL、字符串类型的组合,就算可以使用绝对地址(非优化的程序块),使用 ANY 、 POINTER 指针进行地址的迭代也感觉非常奇怪、不方便,不是以一个对象整处 理。 S7-1500在 中推出一个新的变量类型 Variant ,不占用存储器的空间(所以必须使用 相关指令),感觉比 ANY 指针还要 ANY ,看一看 Variant 变量类型的特点吧: 1. 可以指向不同数据类型变量的指针。 VARIANT指针可以是基本数据类型(例 如, INT 或 REAL )的对象,还可以是 STRING 、 DTL 、 STRUCT 、 PLC数据类型等元素 构成的 ARRAY 。 2. VARIANT 指针可以 识别 PLC 数据类型 ,并指向各个结构元素。 3. VARIANT 数据类型的操作数 不占用背景数据块或工作存储器中的空间 。 VARIANT 类型的变量不 是一个对象,而是对另一个对象的引用( 其实也是引用)ANY , 因此不能在数据块或函数块的块接口静态部分中声明,只能在输入参数、输入输出参数、 或临时变量区中声明。 4. 调用含有 VARIANT 类型参数的块时, 可以将这些参数连接到任何数据类型的变 量 。块调用时, 除了传递变量的指针外,还会传递变量的类型信息 。块中的代码随后可以 根据运行期间传递的变量类型来执行。 重点部分已经加粗标记,为了更加清晰化 Variant 变量类型的特点,我们使用示例 的方式进行介绍。 4.1 VARIANT 与 PLC 数据类型 S7-1500在 中还推荐使用 PLC 数据类型,就是 UDT ,在 UDT 中可以定义控制对象 的属性,当然,一个控制对象可以包含多个 UDT 。 UDT 就是一个优化的结构体变量,区 别就是, 1 :在多个程序块中使用了相同的结构体变量,如果需要修改结构体变量,则必 须逐一修改每一个块中的结构体变量,使用 UDT 可以中央修改,然后更新所有块中调用 的 UDT ; 2 : UDT 可以作为库中的模板,具有版本控制功能。 下面介绍一个VARIANT 与 PLC 数据类型的使用示例(示例仅供参考),怎么识别 PLC 数据类型(参考 VARIANT 的特点 2 、 4 )。 假设变频器可以控制两种报文格式的通信,分别是PZD8/8 (8个字输入 / 输出)和 PZD10/10 (10个字输入 / 输出),函数和函数块的开发者使用 VARIANT 作为输入形参, 然后进行判断分析。好处是可以不用考虑程序块使用者需要赋值的是哪一个格式的报文 (如果是数组可以使用可变数组,如果是结构体则可能变得麻烦)。 首先创建4 个 PLC 数据类型( UDT ), PZD8_IN 、 PZD8_OUT 、 PZD10_IN和 PZD10_OUT ,分别对应 PZD8/8 和 PZD10

文档评论(0)

138****5910 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档