优秀的编程知识分享平台

网站首页 > 技术文章 正文

西门子SCL编程之赋值语句概述及赋值语句的使用方法

nanyue 2024-10-19 06:55:44 技术文章 8 ℃

赋值 Value Assignments

当一个值被指定,变量的当前值被通过表达式指定的新的值代替。此表达式也能够包含函数标识符,其被语句激活,然后返回相应的值(返回值)。

如下图所示,在赋值符右边的表达式被求值,且得到的值作为结果设定给其名字写在赋值符左边的变量。函数允许的变量如下图所示:

1、基本数据类型变量的赋值

能够将同类型的不同变量指定给基本数据类型的每个变量和每个表达式。

2.对于结构变量STRUCT和用户数据类型变量UDT的赋值方法

STRUCT和UDT类型变量是表示一个完整结构或一个结构元素的结构化变量。

下面是有效结构变量的例子:

Image //结构的标识符

Image.element //结构元素的标识符

Image.arr //在一个结构中的一维数组标识符

Image.arr[2,5] //在一个结构中的数组元素的标识符

赋值一个完整结构:

一个完整结构只能赋值给另一个完整结构,两个结构内部的名称和数据类型应完全匹配。下面的赋值是有效的:

structname_1 := structname_2 ;

赋值结构元素:

能够将一个同类型变量、同类型表达式或另一个结构部件赋值给任何结构元素。

能够通过说明结构的标识符来引用结构元素,结构元素的标识符用一个句点分开。下面的赋值是有效的:

structname_1.element1 := Value ;

structname_1.element1 := 20.0 ;

structname_1.element1 := structname_2.element1 ;

structname_1.arrname1 := structname_2.arrname2 ;

structname_1.arrname[10] := 100 ;

3、对于数组ARRAY类型变量的赋值

将数组赋值给变量有两种方法。能够引用完整数组或一个数组元素。

赋值一个完整数组:

当元素的数据类型和数组界限(最低和最高的可能的数组索引)相匹配时,能够将一个完整数组赋值给另一个数组。如果是这样,在赋值符后指定数组的标识符。下面的赋值是有效的:

arrname_1 := arrname_2 ;

数组元素的赋值

用数组名后跟在方括号内的适当的索引值来寻地数组的单个元素。每维一个索引,他们用逗号分开并处于同一方括号内。索引必须是数据类型INT的算术表达式。

要达成对一个允许的元素的赋值,省去数组名称后的方括号内右边的索引。用此方法,取得数组的子集,其维数等于省去的索引数。下面的赋值是有效的:

arrname_1[ i ] := arrname_2[ j ] ;

arrname_1[ i ] := expression ;

identifier_1 := arrname_1[ i ] ;

举个小例子来说明下:

// 完整数组的赋值

SETPOINTS := PROCVALS ;

// 将一个向量赋值给数组CRTLLR的第二行

CRTLLR[2] := CRTLLR_1 ;

// 数组元素的赋值

CRTLLR [1,4] := CRTLLR_1 [4] ;

4、共享变量的赋值

也能够通过将一个值指定给同类型的变量来存取数据里的数据。能够将全局变量指定给一个同类型的变量或表达式。存取这些方式:

例如:

// 将DB11的字1赋值给一个变量(简单存取)

STATUSWORD1 := DB11.DW1 ;

// 将变量"NUMBER"指定给矩阵的第1行第1列的数组元素(结构化存取方式):

CRTLLR_1[1] := DB11.NUMBER ;

// 将结构"NUMBER1"的结构元素"NUMBER2"赋值给状态变量的word3

STATUSWORD3 := DB11.NUMBER1.NUMBER2 ;

// 用索引地址将DB11中的一个字赋值给一个变量(索引存取方式)

FOR

ADDRESS := 1 TO 10 BY 1 DO

STATUSWORD2[ADDRESS] := DB11.DW[ADDRESS] ;

// 这儿输入参数ADDRESSWORD作为DB号,且索引ADDRESS用来指定在DB中的字地址

STATUSWORD4 := WORD_TO_BLOCK_DB(ADDRESSWORD).DW[ADDRESS] ;

END_FOR ;

Tags:

猜你喜欢

最近发表
标签列表