Буферизация
Буферизация – это механизм, позволяющий серверу восстанавливать данные с ПЛК за период отсутствия связи. На ПЛК организуется специальный модуль «Буферизация», в котором настраиваются переменные для сохранения в буфере. На стороне сервера требуется наличие HUB-модуля, обеспечивающего связь с ПЛК.
Конфигурация контроллера должна быть резервированной. Даже при использовании одиночного ПЛК необходимо создать конфигурацию резервированной пары контроллеров. Фактическое наличие резервного ПЛК не требуется: для корректной работы буферизации достаточно добавить резервный сервер в проект.
В пространстве имён или библиотеке проекта необходимо создать Тип атрибута с параметрами, указанными на рисунке ниже. В атрибуты необходимо добавить перечень сигналов.

Тип атрибута
В элементе Alpha.Server контроллера из панели элементов добавить элемент «Буферизация» и заполнить его свойства.

Buffering
Добавить созданный атрибут для буфера «Buffer1» и заполнить его свойства.

Buffer1
Далее создать в Application контроллера две переменные:
Var_No – данная переменная не будет сохраняться в буфер.
Var_Buf – данная переменная будет сохраняться в буфер.
В атрибутах переменной Var_Buf добавить созданный тип атрибута «buffertype».

Var_Buf
Для примера создать обработчик, содержащий простую логику счетчиков и сбросов, позволяющий сформировать пилообразный тренд.

Handler
Далее необходимо перейти к серверу ввода-вывода Alpha.Server. В HUB-модуле в свойствах подключаемого ПЛК требуется установить параметры подписок в соответствии с рисунком ниже.

Параметры подписок
После этого следует выполнить вывод сигналов на сервер. Также требуется настроить историю (Alpha.Historian) для сервера ввода-вывода и сконфигурировать сохранение сигналов в базе данных истории.

SubjectReference
Затем можно приступать к развертыванию решения. С помощью приложения Alpha.HMI.Trends необходимо подключиться к серверу.

Подключение к серверу
Вывести на график требуемые сигналы и установить режим интерполяции «Линия». В результате на графике отобразится пилообразный тренд, соответствующий ранее заданной логике работы.
При разрыве связи тренды отображаются в виде прерывистой линии.
В данном случае:
-
Синий тренд – переменная с сохранением в буфер (var_buf).
-
Зеленый тренд – переменная без сохранения в буфер (var_no).

График при разрыве сигналов
После восстановления связи сервер мгновенно получает данные из буфера. Синий тренд автоматически восстанавливается, отображая значения, накопленные за время отсутствия соединения. Зеленый тренд продолжает отрисовку актуальными данными, при этом участок потери связи остается в виде прерывистой линии.

График при восстановлении сигналов