是否可以在结构化文本中间接索引数组(IEC 61131-3标准)

问题描述 投票:0回答:1

我有一个结构数组:myStructure[0..100]

我想按名称索引该结构。

通过为每个索引命名:

P101_AI := 9
P102_AI := 10
P103_AI := 11
P104_AI := 12

因此在结构中索引成员:myStructure[P103_AI].value(即,索引myStructure [11] .value)

但是,可以间接索引吗?

即如果是TempString : STRING[30];

在运行时更改TempString以索引数组。

这里有一些伪教程来描述我想做的事情:

FOR i:=101 TO 104 DO
   TempString := CONCAT('P',i);
   TempString := CONCAT(TempString,'_AI');
   MyStructure[ indirect(TempString)].value := 'some value';
END_FOR;
plc st structured-text iec61131-3
1个回答
0
投票

如何创建一个枚举?

TYPE E_AnalogInput :

(P101_AI:= 9P102_AI,P103_AI,P104_AI);END_TYPE

然后您可以声明:

analogInputs : ARRAY[E_AnalogInput.P101_AI..E_AnalogInput.P104_AI] OF INT;

运行for循环:

FOR inputCount:=E_AnalogInput.P101_AI TO E_AnalogInput.P104_AI BY 1 DO
//Do something

END_FOR

希望这会有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.