UNICOS, основные сведения

Драйвер может использоваться одновременно для Modbus/TCP и UNICOS (рекомендуется). Протокол UNICOS ведущей части драйвера идентичен стандартному протоколу Modbus.

Драйвер выбирает тип кадра (UNICOS или Modbus) для ведомой части по адресу кадра Modbus. Адрес для кадра UNICOS имет вид 0xFFFF. Поэтому в стандартной реализации Modbus адрес 0xFFFF отсутствует. Адрес задается через запись в файле config — см. п. Детальная информация о драйвере Modbus/TCP.

Информационный состав протокола UNICOS следующий:

  • Двоичное состояние;
  • Аналоговое состояние;
  • События
  • Запросы;

Кадры.

В кадре Modbus для UNICOS существует дополнительный субфункциональный код. Он передается в первом байте данных кадра Modbus. Он имеет значение 0x01 (1) для двочиных и аналоговых состояний, 0x12 (18) для событий и 0x11 (19) для 32-битных событий. Не существует разницы между двоичным и аналоговым состояниями, поэтому тип полученных данных определяется типом элемента точки данных, созданного для соответствующего адреса. Размер кадра UNICOS не может превышать 253 байта.

  • Кадр отчета о событии
    Для записи значения из кадра с событием в заданный элемент точки данных должен использоваться сдвиг события (адрес).
     
  • Кадр запроса
    Кадр запроса — это стандартный кадр Modbus, состоящий из одного более 16-битных слов.

ПРИМЕЧАНИЕ

Метка времени в кадре UNICOS обрабатывается как время UTC (универсальное скоординированное время)!

Адрес периферии

Аналогичен адресу Modbus. Единственное отличие состоит в том, что для входных данных субфункциональный код заменяет собою функциональный код. Для правильной интерпретации адреса при выборе типа должен быть указан вариант UNICOS.

ПРИМЕР

U.4.1.100

U означает тип адреса UNICOS, 4 — ПЛК 4, 1 (0x01) — двоичный или аналоговый тип состояния в сообщении, а 100 — номер бита или адрес аналогового состояния (сдвиг, адрес).

Ведущее и ведомое устройства

Для работы по протоколу UNICOS драйвер на «КАСКАД Цифра» должен быть одновременно и ведущим и ведомым устройством:

  • Данные о состоянии и события передаются исключительно без запроса или опроса. Для приема таких данных драйвер должен быть ведомым устройством Modbus (сервером TCP).
  • Для отправки запросов драйвер должен быть ведущим устройством Modbus (клиентом TCP).

Двоичные и аналоговые данные UNICOS сведены в таблицу. Эта таблица содержит 96 16-битных слов. Если хотя бы один элемент таблицы будет изменен, будет отправлена вся таблица. Таблицы отправляются каждые 50 миллисекунд, не чаще.

Таблица событий содержит изменения состояний битов с точностью до 10 миллисекунд. Таблица отправляется либо по заполнении либо каждые 2 секунды.

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

На следующем рисунке показана схема перемещения данных по протоколу UNICOS. Как можно заметить, для Modbus/TCP отправляются только запросы на запись.

Рисунок. схема потоков данных UNICOS

Внутренний механизм драйвера по проверке присутствия в сети описывается записью aliveTimeout в файле config (см. п. Детальная информация о драйвере Modbus/TCP).

Понятие резервирования

Понятие резервирования наглядно изображено на следующем рисунке. Система управления («КАСКАД Цифра») и ПЛК резервируются:

Рисунок. Понятие резервирования

Прохождение данных между драйвером и ПЛК изображено только в направлении запроса (см. вышеприведенный рисунок).

Тонкими стрелками изображены каналы связи в случае переключения на резерв (в обычном состоянии «ведущий/ведомый» они не используются).

Активный драйвер отправляет запросы и активному и пассивному ПЛК. Оба этих ПЛК должны отвечать на запросы. Однако информация о состоянии и отчеты о событиях обоим драйверам на «КАСКАД Цифра» поступают только от активного ПЛК.

ВНИМАНИЕ

Важно понимать, что драйвер не отправляет запросы на чтение, т. к. в противном случае ему пришлось бы фильтровать ответы от резервных блоков. Поскольку только активный ПЛК отправляет данные, интерфейсы драйвера могут обрабатывать незапрашиваемые данные поровну. Драйверу не нужно знать, какой из ПЛК активный, а какой нет.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *