График позволяет просматривать изменения значений на входах и выходах функциональных блоков в графическом представлении. Для добавления входа или выхода в таблицу над графиком нужно перетащить его со страницы (при этом его модуль автоматически назначится текущим для графика). Если текущим будет модуль, то в таблицу с помощью перетаскивания по очереди можно добавлять входы/выходы этого модуля из дерева. Если текущим будет раздел, то в таблицу автоматически добавятся входы/выходы из раздела. При этом, если добавить новый вход или выход в таблицу, он автоматически добавится в раздел.

Свойства входов/выходов, используемые для графика:

Свойства открываются нажатием правой кнопки мыши по шапке таблицы. Полный перечень доступных свойств:

Значения основных свойств:


Значение онлайн - текущее значение входа/выхода;
Маркер - значение входа/выхода в момент, отмеченный маркером;
График: минимум шкалы - минимум индивидуальной шкалы входа/выхода;
График: максимум шкалы - максимум индивидуальной шкалы входа/выхода;
Цвет - цвет сигнала и его индивидуальной шкалы;
Получено - количество полученных значений;
Ошибок - количество ошибок;
Зона нечувствительности - если модуль разницы между значениями сигналов меньше данной величины, то будет считаться, что значение не изменилось;
Период опроса (мс) - количество милисекунд между опросами;
Размер очереди - количество значений, которые могут быть накоплены перед отправкой.
Свойства Получено и Ошибок отображают количество полученных значений данного сигнала и количество ошибок, сигнализирующих о переполнении очереди. Значения остальных свойств могут быть заданы вручную (двойным щелчком на соответствующей ячейке таблицы или в окне свойств), иначе они будут браться из окна общих настроек, расположенного под графиком.

Правой кнопкой мыши на строке таблицы, соответствующей входу/выходу, вызывается контекстное меню, которое позволяет:

  1. Скрыть/Показать вход/выход на графике;
  2. Скрыть ось/Показать ось для входа/выхода;
  3. Удалить вход/выход из таблицы.

В окне под графиком настраиваются следующие параметры:

  1. Длительность данных (сек): задаёт количество данных, которые нужно хранить;
  2. Показывать (сек): количество данных, которые нужно показывать на окне;
  3. Период отправки: время, как часто контроллер будет отправлять значения сигналов (точно не выдерживается, т.е. отправка происходит не чаще этого времени).
  4. Очищать данные: удалять старые данные с графика при запуске;
  5. Общая ось (Y): используется для отображения данных на общей оси;
  6. Маркеры 1, 2: вертикальные прямые, с помощью которых можно просмотреть значение на графике в нужный момент времени;
  7. Делать отсчеты:
    7.1 В фоне: по окончании периода отсчета будет посылаться одно текущее значение с каждого входа/выхода.
    7.2 В таймере: по окончании периода отсчета для каждого входа/выхода будут посылаться значения, накопленные с заданным таймерным промежутком.
    7.3 Произвольно: значения накапливаются с заданным периодом. Период и Размер очереди устанавливается справа. Эти значения применяютя для всех входов/выходов, у которых не установлены свои значения.

Для просмотра значений входов/выходов нужно загрузить исполняемый файл на контроллер и нажать кнопку Запустить. Для остановки - Остановить.

Масштабирование графика:

Масштабировать график можно с помощью колеса мыши с зажатым Ctrl на области оси.
При выделении мышкой области слева направо сверху вниз график увеличивается.
Перемещаться по графику влево/вправо, вверх/вниз можно с помощью мышки с зажатой левой кнопкой на соответствуюшей оси графика.

Свойства тренда:

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

Свойства осей:

Клик правой кнопкой мыши по оси Х или У открывает их свойства.
В свойствах оси Х можно выбрать тип тренда, временное ограничение буфера данных, параметры оси.
В свойствах оси Y можно выбрать границы отображаемого интервала данных.

Пример работы графика в фоне.

Пример работы графика в таймере.

Для получения данных из таймера в проекте должен быть установлен функциональный блок OpcUAServerTimer (находится в библиотеке paOpcUA). Блок должен быть установлен в таймерном потоке для работы подписок с точностью таймерного цикла.

Пример работы графика с произвольно заданным периодом и размером очереди. При недостаточном размере очереди можно наблюдать появление ошибок.