[西门子] 西门子博途:有关引用的基本知识

[复制链接]
查看350 | 回复0 | 2024-6-9 21:09:08 | 显示全部楼层 |阅读模式
>

说明
引用是一种变量,不含任何值却指向其它变量的存储位置。
通过引用,可在块外进行变量传递。因此,可直接修改变量的值,而无需创建变量副本。
对引用进行声明时,需指定被引用变量的数据类型。引用为类型安全。尤其是在需要避免发生运行系统错误的控制系统中,这种操作方式非常重要。按照 IEC 中规定的限制条件,引用必须指向临时数据元素,从而进一步提高数据的可靠性。这样就可以避免运行系统发生故障。
为此,需确保引用所指向的数据类型正确且存储空间有效,或为引用赋值 NULL。
在程序中使用引用
要使用引用,要求 S7-1500 系列 CPU 的固件版本为 V2.5 或更高版本。
下图简要描述了引用的使用方式。

引用与 VARIANT 的不同之处
VARIANT 数据类型的变量与一个指向任意数据类型的其它变量类似。因此,在程序创建时,无需定义 VARIANT 变量所指向的数据类型。即,在运行过程中无需定义该数据类型。在不同的程序循环中,一个 VARIANT 变量甚至可以定义不同的数据类型。数据类型 VARIANT 适用于创建通用程序和间接寻址。但如需要在程序代码中对 VARIANT 变量进行进一步处理,则需使用特定指令确定当前的数据类型。不能直接读写 VARIANT 变量。而必须使用 VariantGet 和 VariantPut 等特殊指令进行读写。
如果使用引用,则在创建程序时需指定该数据类型。因为运行过程中该数据类型无需确认,因此程序的执行更为高效且结构更为清晰明了。凭借引用,可直接写入或读取被引用的变量,而无需在程序中增加其它指令。
与 VARIANT 不同,引用只能指向位于优化存储区中的数据。
示例
在以下示例中,显示了各种不同的引用应用。
在该块的接口中,包含一个声明为引用的“myRefInt”变量。

下图显示了该变量在 SCL 中的具体应用:





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

本帖子中包含更多资源

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

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

本版积分规则