8bit писал(а):К чему такие сложности ?
У вас структура с полями из массивов ? Покажите как объявили эти переменные в Codesys.
Даже если такие нагромождения нужны для вычисления в ПЛК, то точно не нужны в HMI.
Хорошим тоном является создавать отдельный набор тегов, DB'шечки для тегов HMI, в котором можно учесть особенности синтаксиса тегов самого HMI
Сложностей там нет.
Есть структура данных с характеристиками камеры
Есть массив камер, имеющий тип данной структуры
Я посмотрел, что по подобному массиву можно делать навигацию через индекс и сделал так специально, чтобы не делать кучу окон для каждой камеры.
8bit писал(а):Синтаксически Application.PLC_PRG.TestInt[0 + value in Index Register 0] немного отлиается от Application.GVL.Cmr[0+1].HeatH
Это я уже описывая тут, подставил место индекса единицу, так то там у меня корректно стоит индекс.
Суть в чем:
Application.GVL.Cmr[0+value in Index Register 0].HeatH при Index Register 0 = 1 должен давать ссылку на ячейку памяти Application.GVL.Cmr[0+1].HeatH, то есть по сути Application.GVL.Cmr[1].HeatH, но в реальности эти ячейки имеют разное значение.
А вот если я сделаю несколько полей с разными индексами, например:
Application.GVL.Cmr[0+Index0].HeatH, Application.GVL.Cmr[0+Index1].HeatH и.т.р, то при равных Index0 и Index1 они покажут одинаковое значение.
Я допускаю, что когда это будет работать с реальным ПЛК то всё будет корректно, но в режиме симуляции это немного мешает отлаживать программу.
8bit писал(а):Так же не будет работать вариант индекса в двойном массиве типа Application.PLC_PRG.TestInt[0 + idx0, 1]
Двойной массив не используется у меня.
У меня есть вариант массив в массиве
Application.GVL.Cmr[0].Countdown[0+Index0]
И данный вариант работает абсолютно корректно в симуляции