[西门子] 西门子博途:将 VARIANT 指定给引用尝试

[复制链接]
查看123 | 回复0 | 2024-6-9 20:53:35 | 显示全部楼层 |阅读模式
>


说明
使用赋值尝试“?=”,可将 VARIANT 数据类型的变量分配给一个引用。
如果在运行过程中由 VARIANT 寻址的变量的数据类型正确,且该变量位于一个优化的存储区内,则执行赋值操作后目标变量中将包含一个有效引用,否则为 NULL。
尝试赋值后,可以检查尝试是否成功,并根据该结果继续处理程序。在 LAD 和 FBD 中,可以针对检查使用使能输出 ENO。如果赋值尝试成功,ENO 将返回信号状态“1”。这样才能在程序段中继续执行后续指令。
在 STL 和 SCL 中,可使用指令“IS_NULL”或“NOT_NULL”来检查赋值尝试是否成功等。请参见以下示例。
规则
以下规则适用于该赋值操作:

  • 已赋值的 VARIANT 不得指向临时变量。
  • 指定的 VARIANT 必须指定优化存储区中的变量。
  • 如需将 VARIANT 数据类型的变量分配给一个 ARRAY 引用,则 VARIANT 必须指向一个限值与所声明引用限值完全匹配的 ARRAY。指向 ARRAY [0..9] 的 VARIANT 与变量 REF_TO ARRAY[1..10] 不匹配。
  • 在 SCL 中,赋值尝试无法用于多重赋值运算 (a := b := c;) 中。
示例
以下示例说明了如何使用引用直接对 VARIANT 变量值进行符号化读写操作。无需再使用“VariantGet”和“VariantPut”指令复制值。

VARIANT 变量“variantTelegramData”可传送类型为“Telegram1”和“Telegram2”的数据。
赋值尝试可用于测试该数据的类型是否为“Telegram1”。在本示例中,如果是,则将值“T”和“W”赋值给参数“Info1”和“Info2”。
SCL 中的示例:

LAD 中的示例:





免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则