首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TwinCAT中对数组的多变量赋值

TwinCAT中对数组的多变量赋值
EN

Stack Overflow用户
提问于 2021-06-16 06:17:32
回答 1查看 717关注 0票数 2

如何在TwinCAT中将新变量赋值给数组

在TwinCAT中,可以直接初始化数组的所有参数,例如,对于数组a,我们可以使用:

a: INT := 3(0)的数组1.3;

a:数组1.3的INT := 0,0,0;

但是,如果您想在主程序中分配数组(而不是初始化部分),例如

a:=2,8,5;

您将面临以下错误提示:Unexpected array initialisation

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2022-07-06 13:56:03

不能直接初始化程序部件内的数组。

也就是说,最好的选择是定义一个包含所需初始化值的常量,然后将该常数的值分配给您的数组:

代码语言:javascript
复制
VAR 
    aiMyArray : ARRAY [1..2] OF INT;
END_VAR
VAR CONSTANT
    aiInitializerMyArrayOptionA : ARRAY [1..2] OF INT := [1,2];
    aiInitializerMyArrayOptionB : ARRAY [1..2] OF INT := [3,4];
END_VAR
代码语言:javascript
复制
IF bCondition THEN
    aiMyArray := aiInitializerMyArrayOptionA;
ELSE
    aiMyArray := aiInitializerMyArrayOptionB;
END_IF

另一种选择是手动初始化每个索引,然后一个接一个地初始化,这很容易得到不实际的数组大小:

代码语言:javascript
复制
IF bCondition THEN
    aiMyArray[1] := 1;
    aiMyArray[2] := 2;
ELSE
    aiMyArray[1] := 3;
    aiMyArray[2] := 4;
END_IF

循环处理所有元素和赋值也可能是一种选择。但是,只有当这些值不是任意的constatns,但您可以从某些公式中计算值时,这才是有用的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67997321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档