组态软件编程语法之变量

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

变量

与数据的外部表示相反,变量提供能够改变其内容的数据对象的识别方法。例如,可改变与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]。

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

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

目录
打赏
0
0
0
0
187
分享
相关文章
|
8月前
|
惊呆了!学会这一招,你的Python上下文管理器也能玩出花样来文管理器也能玩出花样来
【7月更文挑战第6天】Python的上下文管理器是资源优雅管理的关键,与with语句结合,确保资源获取和释放。通过实现`__enter__`和`__exit__`,不仅能做资源分配和释放,还能扩展实现如计时、自动重试、事务处理等功能。例如,TimerContextManager类记录代码执行时间,展示了上下文管理器的灵活性。学习和利用这一机制能提升代码质量,增强功能,是Python编程的必备技巧。
48 0
【C语言航路】第十五站:程序环境和预处理(下)
【C语言航路】第十五站:程序环境和预处理(上)
76 0
java面向对象思维程序设计开发以及案例 -电梯运行问题对象分析与程序设计(2)
java面向对象思维程序设计开发以及案例 -电梯运行问题对象分析与程序设计(2)
java面向对象思维程序设计开发以及案例 -电梯运行问题对象分析与程序设计(2)
java面向对象思维程序设计开发以及案例 -电梯运行问题对象分析与程序设计(1)
java面向对象思维程序设计开发以及案例 -电梯运行问题对象分析与程序设计(1)
java面向对象思维程序设计开发以及案例 -电梯运行问题对象分析与程序设计(1)
C语言编程—变量的构成
变量其实只不过是程序可操作的存储区的名称。C 中每个变量都有特定的类型,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算符可应用于变量上。 变量的名称可以由字母、数字和下划线字符组成。它必须以字母或下划线开头。大写字母和小写字母是不同的,因为 C 是大小写敏感的。基于前一章讲解的基本类型,有以下几种基本的变量类型: C 语言也允许定义各种其他类型的变量,比如枚举、指针、数组、结构、共用体等等,这将会在后续的章节中进行讲解,本章节我们先讲解基本变量类型。 C 中的变量定义 变量定义就是告诉编译器在何处创建变量的存储,以及如何创建变量的存储。变量定义指定一个数据类型,并
164 0
LabVIEW编程语法学习笔记之变量
LabVIEW编程语法学习笔记之变量
203 0
西门子S7-1200有哪几种编程方法?什么是线性化编程、模块化编程、结构化编程?
今天我们来说一说西门子S7-1200有哪几种编程方法,给大家简单介绍一下什么是线性化编程、模块化编程和结构化编程。
西门子S7-1200有哪几种编程方法?什么是线性化编程、模块化编程、结构化编程?
保守VS开放?看清封装对象属性 | 带你学《Java面向对象编程》之四
高楼万丈,起于平地。本节通过对比正反几个实例剖析了封装对象属性的必要性,介绍了进行封装的基本原则。
保守VS开放?看清封装对象属性   |  带你学《Java面向对象编程》之四
一起来看引用与现实的邂逅 | 带你学《Java面向对象编程》之二十二
本节通过三则分析为读者介绍了类关联结构、类自身关联等逻辑与合成设计模式的概念,带读者去理解类的灵活性。
一起来看引用与现实的邂逅    | 带你学《Java面向对象编程》之二十二