组态软件编程语法之变量

简介: 组态软件编程语法之变量

变量

与数据的外部表示相反,变量提供能够改变其内容的数据对象的识别方法。例如,可改变与PLC输入/输出或存储器有关的数据。变量可以被声明为基本数据类型、一般数据类型和衍生数据类型。

1.变量的表示

在IEC 61131-3标准中,变量分为单元素变量和多元素变量。

1)单元素变量

单元素变量(Single-element Variable)用于表示基本数据类型的单一数据元素、衍生的枚举数据类型或子范围数据类型的数据元素,或上述数据类型的衍生数据元素。单元素变量可以是直接变量或符号变量。

(1)直接变量(Direct Variable)以百分号“%”开始,随后是位置前缀符号和大小写前缀符号。如果有分级,则用整数表示分级,并用小数点“.”分隔表示直接变量。

fe8a9d897b7d47c6acb98fda2a570eb6.png


表是直接表示变量中前缀符号的定义。

167e72207e8447f7a6431a1fdc636ea6.png


表是直接表示变量的示例。直接变量可用于程序、功能块、配置和资源的声明中。一个可编程控制器系统的程序存取另一个可编程控制器中的数据时,采用分级寻址的方式,这应被认为是一种语言的扩展。

直接变量类似于传统可编程控制器中的操作数,它对应于一个可寻址的存储器单元。需要注意的是,在早期可编程控制器的产品中并没有对操作数进行明确定义,所以一些产品用编号表示操作数。在IEC 61131-3标准中,将存储器的地址分为输入单元、输出单元和存储器单元,并且用直接表示变量的方法来表示变量。直接表示变量的值可根据变量的地址直接存取。例如,VAR_INPUT AT %IX2.3:BOOL;END_VAR表示一个变量直接从%IX2.3地址读取布尔数据类型的数据。


(2)符号变量(Symbolic Variable)

符号变量是用符号表示的变量,其地址对不同的可编程控制器可以不同,从而为程序的移植创造条件。例如,在VAR_INPUT SW_1 AT %IX2.3:BOOL;END_VAR中,用符号变量SW_1表示从%IX2.3地址读取布尔量。当实际地址改变时,在程序的其他部分仍使用该符号变量,因此,只需要对该地址进行修改,对程序的其他部分可以不修改,就可以完成整个程序的移植。

直接表示变量和符号表示变量借助于分级地址指令表语言中的应用,给一个标志或I/O地址指定一个数据类型,这样能使编程系统检查是否正在正确地存取该变量。例如,一个被说明为“AT %QD5:DINT”的变量不会因疏忽而以UINT或REAL类型存取。用直接表示变量代替至今还在程序中经常使用的直接PLC地址,在这种情况下,地址的作用与变量名(如%IW4)一样。

符号变量的声明及其使用与正常变量的声明和使用一样,只不过其存取位置不能由编程系统自由地指定,而限于由用户以“AT”指定的地址。这些变量对应于预先由分配表或符号表指定的地址。

在程序、资源和配置中,直接表示变量和符号变量可以用于变量类型VAR,VAR_GLOBAL,VAR_EXTERRNAL和VAR_ACCESS的声明。在功能块中,它们只能用VAR_EXTERNAL输入。


2)多元素变量

多元素变量(Multi-element Variable)包括衍生数据类型中数组类型的变量和结构化数据类型的变量。

数组数据类型变量也称为数组变量,它用符号变量名和随后的下标表示。下标包含在一对括号内,用逗号分隔。例如,数组变量AI:ARRAY[1…3,1…8] OF REAL表示数组变量AI,它是由3×8个实数数据类型的变量组成的,各组成变量是:AI[1,1],AI[1,2],…,AI[1,8],AI[2,1],AI[2,2],…,AI[2,8],AI[3,1],AI[3,2],…,AI[3,8]。

结构数据类型变量也称为结构变量,它用结构变量名表示。

访问数组中的元素,可以通过选择方括号内整数的数组注脚(索引)的方法。对结构元素寻址,可以采用“结构的变量名.结构部件名”的形式。

相关文章
|
缓存 关系型数据库 MySQL
MariaDB的安装与配置
MariaDB的安装与配置
2398 0
|
Ubuntu Shell 网络安全
实例 : 查看Docker容器内文件系统
dockfile ; docker container ; docker images
5042 0
|
开发工具 git
Git - Smart Checkout、Force Checkout 区别
Git - Smart Checkout、Force Checkout 区别
2069 0
Git - Smart Checkout、Force Checkout 区别
|
10月前
|
SQL Java 数据库连接
对Spring、SpringMVC、MyBatis框架的介绍与解释
Spring 框架提供了全面的基础设施支持,Spring MVC 专注于 Web 层的开发,而 MyBatis 则是一个高效的持久层框架。这三个框架结合使用,可以显著提升 Java 企业级应用的开发效率和质量。通过理解它们的核心特性和使用方法,开发者可以更好地构建和维护复杂的应用程序。
544 29
|
负载均衡 安全 网络虚拟化
CCE集群VPC网络模式下几种访问场景
【8月更文挑战第13天】在CCE(Cloud Container Engine)集群的VPC网络模式下,支持多样化的访问场景:容器应用可直接利用VPC访问外部资源;通过ELB负载均衡或VPN/专线配置,实现外部网络对容器应用的安全访问;容器间通过内部IP或服务发现机制相互通信;跨VPC访问则可通过VPC对等连接或云连接服务实现。这些方案确保了应用内外部通信的安全与高效。
574 3
|
存储 安全 Windows
电脑桌面文件不见了怎么恢复?8个方法帮你解决问题
电脑桌面文件突然不见了凭空消失了怎么恢复?电脑桌面文件日常使用电脑时,很多用户喜欢将重要文件、快捷方式存放在桌面上,以方便快速访问。然而,有时我们会突然发现桌面上的文件不见了。桌面文件消失可能有多种原因,例如误删除、系统更新、设置变更等。今天给大家介绍一些桌面文件丢失的常见的原因以及如何找回丢失的文件。
|
自然语言处理 PyTorch 语音技术
Transformers 4.37 中文文档(八十)(4)
Transformers 4.37 中文文档(八十)
252 2
|
机器学习/深度学习 数据采集
开源多结构蛋白质预测大模型——Genie 2
【6月更文挑战第24天】Genie 2,一款开源的深度学习蛋白质设计模型,扩展了原始Genie的结构预测能力,通过创新架构和大规模数据增强处理更复杂多样的蛋白质结构。引入的多基序框架允许设计多功能蛋白质,提升无条件和有条件生成的性能。尽管面临数据质量、复杂相互作用处理及模型可解释性的挑战,Genie 2仍为蛋白质设计树立新标杆。[论文链接](https://arxiv.org/abs/2405.15489)
330 1
|
机器学习/深度学习 存储 监控
云上智能视频分析:解锁视频数据的无限潜能
更加安全可靠:随着网络安全和数据保护意识的提高,云上智能视频分析系统将更加注重安全性和可靠性保障。未来的系统将采用更加先进的加密技术和安全防护措施,确保视频数据的传输和存储过程安全可靠;同时还将建立完善
429 0
|
设计模式 算法 API
适配器模式:C++设计模式中的瑞士军刀
适配器模式:C++设计模式中的瑞士军刀
194 0