Прошу прощения, что в массивах Codesys V2/V3 нет изменчивого размера. Общее объяснение заключается в том, что в ПЛК нет динамического распределения памяти, поскольку динамическое распределение памяти считается слишком ненадежным.
Ваш единственный выбор, чтобы определить массив с постоянным ARRAY [1..N_MAX_SPEED_VALUE] и просто использовать массив до SpeedValue
VAR
arrnValues : ARRAY[1..N_MAX_SPEED_VALUE] OF INT;
END_VAR
VAR CONSTANT
N_MAX_SPEED_VALUE : INT := 100; (*Max Array Size*)
END_VAR
Для себя я действительно прослушивают этим ограничением. Я уже много раз запрашивал функцию, чтобы определить массивы, такие как ARRAY [*], иметь ключевые слова для начала и конца и определять фактический размер начала и конца при создании экземпляра. Это не имеет ничего общего с динамическим распределением памяти, поскольку размер определяется во время компиляции.
Пожалуйста, не забудьте суммировать, что сообщение содержит, так что ответ по-прежнему полезен, если ссылка, поскольку неактивна/удалена –