Создание синхронизированных модулей

Для того, чтобы синхронизировать модули двух контроллеров, следует дублировать их места работы.

Graphic
Дерево проекта с двумя модулями

Для того, чтобы дублировать место работы одного модуля, следует:

  1. Захватить место работы мышью и перетащить на второй модуль.

  2. В выпадающем меню выбрать Добавить. Места работы (у первого и у второго модуля) подсветятся желтым.

  3. Удалить аналогичное место работы у второго модуля.

    Graphic
    Дерево проекта. Дублированные модули

Теперь все изменения в местах работы одного модуля будут дублироваться во втором модуле, и наоборот.

Внимание
Важно понимать, что не только сами блоки и их расположение будет дублироваться во второй модуль, но и значения инициализации на входах блоков, комментарии, связи.

Для удобства перемещения по дублированным страницам модулей можно воспользоваться командой Показать. Вызвать ее можно в выпадающем меню при нажатии ПКМ на свободном месте страницы.

Graphic
Команда Показать

При работе с синхронизированными модулями для блоков, которые реализуют протоколы обмена (OpcUAServer и OpcUAClient из библиотеки paOpcUA, TcpIpSrA и TcpIpClA из библиотеки paCore и др.), для задания входов следует использовать SQL-запросы к соответствующим свойствам модуля.

Это необходимо для уникальных параметров контроллеров, например, для IP-адресов. Для задания параметров «соседнего» контроллера рекомендуется использовать пользовательские свойства.

Запрос IP-адреса (prop_ip):

"<sql>SELECT value FROM blocks_prop WHERE indx=:module AND type="prop_ip"</sql>"

Запрос номера порта отладчика (prop_debug_port):

<sql>SELECT value FROM blocks_prop WHERE indx=:module AND type="prop_debug_port"</sql>

Запрос пользовательского свойства Пользовательское свойство 00 (prop_0):

<sql> SELECT value FROM blocks_prop WHERE indx=:module AND type="prop_0"</sql