Предлагаю в этой теме обсуждать встроенный в панели cMT CODESYS.
Возможно, наобсуждаем на новые темы в FAQ

Я использую панели Weintek с контроллерами Wago, Schneider, Crevis. Связь с контроллерами по Modbus TCP. Для того, чтобы забирать переменную из контроллера по модбасу, ее необходимо адресовать в памяти %М.
Я делаю примерно так:
PROGRAM PROG1
VAR
iVar1 AT %MW1001: INT;
iVar2 AT %MW1002: INT;
END_VAR
PROGRAM PROG2
VAR
iVar1 AT %MW2001: INT;
iVar2 AT %MW2002: INT;
END_VAR
и т. д.
После этого в EasyBuilder привязываю к экранному объекту "Числовой" переменную %MW1001, включаю опцию "использовать индексный регистр", в индексном регистре с помощью объекта DropList формирую значения 0, 1000, 2000, 3000 и т. д. Таким образом, один и тот же объект "Числовой" отображает (в зависимости от значения в индексном регистре) переменные PROG1.iVar1, PROG2.iVar1, PROG3.iVar1 и т. д. Очень удобно, если объектов "Числовой" довольно много.
Сейчас я пробую встроенный в панель кодесис. Структура связи панели и контроллера (виртуального, находящегося "внутри" панели) - через импорт тегов. И получается, что применить привычный способ привязки переменных с использованием индексного регистра невозможно. Либо есть какой-то хитрый способ, о котором я не знаю. Хотелось бы вот чего: привязывать одноименные переменные из разных POU к одному и тому же экранному объекту и переключать эти переменные с помощь индексного регистра (ну или как-то иначе, например в макросе). Возможно ли такое?