Возьмите массив данных в [ ]
Вид для печати
Возьмите массив данных в [ ]
Начиная с SP7 хелп на русском отсутствует. Ищите англоязычный в папке установки CODESYS (...\Codesys\Online Help).
Вот русскоязычный хелп из SP6:
https://yadi.sk/d/OtxdkJqT3G73jf
Приложил ссылку к сообщению выше.
Помойму КДС не может инициализировать массив структур внутри другой структуры.
Всё было нормально, когда в моей структуре Prog_struc не было массива, а были просто вложенные структуры (на картинках они закоментарены).
Вложение 30120
Etap_struc: Вложение 30122
Но мне надо обращаться к данным по индексу, и я вместо перечня структур вставил массив этих структур
И теперь не проходит инициализация
Вложение 30123
Ошибки какие-то ахинейные: на Prg1 пишет ';' expected instead of 'Prg2', на stages[1] пишет 'Assign' expected instead '['
Или я что-то не так сделал?
Вообще, чтобы понять принцип инициализации сложных составных переменных, лучше один раз объявить их через ассистент ввода - вбиваете имя несуществующей переменной в теле программы, нажимаете enter и он автоматически появляется.
К слову, зачастую удобнее делать инициализацию прямо в коде - в стиле
В коде проще обращаться к элементам массивов, структур и т.д. + при необходимости можно будет провести инициализацию в процессе работы программы.Код:IF xInit THEN
// инициализация
END_IF
Если всё же рассматривать ваш случай (инициализация при объявлении) - то вот упрощенный пример:
Вложение 30125 Вложение 30126 Вложение 30127
Вложение 30128
Пример помог. Но надо озвучить конкретную причину:
Я пытался инициализировать массив по аналогии с инициализацией структуры - указывал конкретные элементы и присваиваемые им значения.
А оказывается, массиву нужно только перечислять присваиваемые значения, и они попадают в ячейки массива в порядке перечисления.
Считаю это недоработкой языка ST. Если массив большой, а мне надо в объявлениях инициировать только последние ячейки, придётся перечислять значения всех ненужных ячеек.
2(()) - такую конструкцию я не знал. Она значит - до второго (в данном случае последнего) элемента всё пусто?