Unimod Pro 2. Инструкция по добавлению сигналов в проект
Добавить в глобальный словарь экземпляры простых типов для полевых сигналов (типы: REAL, BOOL, DINT).
Добавить в глобальный словарь экземпляры нужного блока-обработчика в соответствии с документом NMZ-VD-(P0-94-010)-J-LB 6020.006.002.
Привязать каналы модулей ввода/вывода (по необходимости добавить модули ввода/вывода).
Добавить созданные экземпляры в рабочую область программы FBD и привязать полевые сигналы к соответствующим каналам блока-обработчика (описание каналов в NMZ-VD-(P0-94-010)-J-LB 6020.006.002).
Настроить выдачу данных блока-обработчика во внешние системы по протоколу Modbus.
Прогрузить ПЛК.
Добавление экземпляров осуществляется в окне «Глобальный словарь».

Рисунок 1 — Глобальный словарь
Техобъекты обработки полевого сигнала имеют простой тип. Тип техобъекта выбирается исходя из полевого сигнала: для аналоговых сигналов – REAL, для дискретных – BOOL, для статусных сигналов – DINT.
Экземпляр техобъекта не содержит данные полевого сигнала пока он не будет привязан к каналу модуля ввода/вывода. Добавленные модули ввода/вывода можно посмотреть в «Глобальном словаре». В данном окне также можно посмотреть количество каналов, где используется канал, номер модуля в корзине ПЛК, тип модуля, а также добавить новый модуль (см п. ниже «Добавить новый модуль»).

Рисунок 2 — Модуль ввода/вывода в глобальном словаре
Привязка полевого канала к экземпляру техобъекта осуществляется в ST, в общем случае добавлением следующего кода:
TAG_TECHOBJ := TAG_MODULE.direction.CH_NUM;
Для выходных аналоговых каналов:
TAG_ MODULE.out.CH_ NUM := TAG_TECHOBJ;
Для выходных дискретных каналов:
TAG_ MODULE.out.CH_ NUM:= TAG_TECHOBJ;
Также для сигналов читается их статус:
TAG_TECHOBJ_STATUS:= TAG_MODULE.in.error.CH_NUM;
где TAG_TECHOBJ – тег техобъекта простого типа,
TAG_ MODULE – имя модуля в/в,
direction – in или out в зависимости от типа сигнала,
NUM – номер канала,
ВАЖНО! Опрос входов и выходов ПЛК выполняется в цикле ПЛК, поэтому чтение входных каналов в программе должно быть выполнено раньше его обработки функциональными блоками и/или в алгоритме, а запись – в конце программы, после обработки.
После привязки каналов модуля ввода/вывода, необходимо инициализировать экземпляры техобъектов для обработки сигналов и реализации ЧМИ. Инициализация и определение связей в программе осуществляется в рабочем окне программы на FBD.
Добавление новой программы на FBD осуществляется в окне «Задачи», кликнув ПКМ на одной из задач проекта. В данном окне также можно посмотреть уже существующие программы.

Рисунок 3 — Добавление программы
Экземпляры техобъектов добавить вручную путем перетаскивания из объектов проекта в рабочее окно программы. Блоки обработчики добавляются через пункт «Функциональный блок»:

Рисунок 4 — Добавление экземпляра блока-обработчика на FBD
Простые типы или отдельные каналы функционального блока добавляются через пункт «Переменные»:

Рисунок 5 — Добавление экземпляра простого типа на FBD
Далее необходимо привязать полевые сигналы к соответствующим каналам блока-обработчика (описание каналов в NMZ-VD-(P0-94-010)-J-LB 6020.006.002).
После того как все экземпляры добавлены и приведены к виду, соответствующему документации, необходимо сохранить и прогрузить ПЛК. Для прогрузки нажимаем на пункт «Сборка», затем пункт «Загрузка», во всплывшем окне «Продолжить» и затем «Загрузить приложение».

Рисунок 6 — Прогрузка ПЛК
Если IP-адрес ПЛК во всплывшем окне не совпадает с реальным, нужно перейти в пункт «Подключение к PLC_1» и настроить нужный адрес.

Рисунок 7 — Изменение IP-адреса для подключения к ПЛК
Для выдачи новых сигналов во внешние системы или на панель Weintek по протоколу Modbus необходимо:
если добавленный блок-обработчик не предполагает управления или предполагает управление только с панели Weintek прописать свободные регистры Modbus в соответствующие поля нужных каналов блока-обработчика;

Рисунок 8 — Настройка Modbus
если предполагается управление с панели Weintek и из внешней системы, создать для каждого канала с управлением блок-селектор соответствующего типа (boolVarSelector, realVarSelector, intVarSelector), настроить разные карты Modbus для источников путем выставления регистров для каналов Src1_Val, Src2_Val и т.д. и написать код следующего вида:
TAG_SELECTOR.TYPEVarSelector();
TAG_ TECHOBJ.CHANNEL := TAG_SELECTOR.Out;
, где TAG_SELECTOR – тег блока-селектора,
TAG_ TECHOBJ – тег блока, которым производится управление,
CHANNEL – тег канала, значение которого будет меняться,
TYPE – тип данных канала.