- •Введение
- •Регистрация
- •Системные требования
- •Технические характеристики
- •Инсталляция и начало работы
- •Деинсталляция
- •Совместимость с предыдущей версией
- •Интегрированная среда разработки
- •Окно Добро пожаловать
- •Рабочее пространство
- •Аргументы
- •Окно Аргументы
- •Окно Выбор привязки
- •Привязка к атрибутам тега
- •Привязка аргумента к свойствам примитивов
- •Привязка к расписанию
- •Привязка к открытию вида
- •Параметры
- •Лог-файлы
- •Редактор скриптов
- •Редактор мнемосхемы
- •Меню и панели инструментов
- •Каталог проектов
- •Верификация
- •Отладка
- •Окно сообщения
- •Среда исполнения
- •Рабочее пространство
- •Запуск проекта
- •Пример создания автозапуска
- •Среда исполнения Клиент
- •Рабочее пространство
- •Редактирование списка сетевых проектов
- •Запуск проекта
- •Синхронизация времени с сервером
- •Объектная модель
- •Проект
- •Свойства проекта
- •Элемент проекта
- •Редактирование проекта
- •Отладка проекта
- •Защита проекта и элемента проекта
- •Пример
- •Объекты
- •Теги
- •Связи тегов
- •Перепривязка тегов
- •Виды
- •Скрипты
- •Библиотеки
- •Редактор библиотек
- •Библиотека объектов
- •Библиотека типов тегов
- •Библиотека скриптов
- •Управление библиотеками
- •Расписания
- •Папки расписаний
- •Создание расписания
- •Редактирование свойств расписания
- •Расписание с однократной активацией
- •Расписание с повторяющейся активацией
- •Задание периодичности
- •Периодичность в днях
- •Периодичность в неделях
- •Периодичность в месяцах
- •Периодичность в годах
- •Периодичность в день запуска
- •Определение времени однократной активации
- •Определение периодичности активации в день запуска
- •Продолжительность действия расписания
- •Словесное описание
- •Динамическая визуализация данных
- •Графическая подсистема
- •Рабочие столы
- •Дерево примитивов мнемосхемы
- •Редактор слоев мнемосхем
- •Мнемосхема
- •Система координат
- •Печать мнемосхемы
- •Графические примитивы
- •Свойства графических примитивов
- •Видимость/мигание
- •Цвет
- •Заливка
- •Свойства заливки
- •Свойства в скриптах
- •Видимость/мигание
- •Цвет
- •Заливка
- •Свойства заливки
- •Действия над примитивами
- •Изменение размера и положения
- •Группирование
- •Эллипс
- •Прямоугольник
- •Скругленный прямоугольник
- •Прямая
- •Сцена
- •Рисунок
- •Текст
- •Надпись
- •Дуга
- •Большая дуга
- •Сектор
- •Сегмент
- •Объемный прямоугольник
- •Вспомогательная линия
- •Многоугольник
- •Ломаная
- •Таблица
- •Свойства заголовка
- •Свойства колонки
- •Свойства заголовка колонки
- •Свойства строки
- •Свойства заголовка строки
- •Свойства подписи
- •Свойства ячейки
- •Редактирование границ
- •Элемент управления
- •Использование примитива
- •Анимация
- •Простое преобразование
- •Преобразование скриптом
- •Реакции
- •Редактирование событий
- •Редактирование события Нажатие клавиши
- •Редактирование события Отжатие клавиши
- •Редактирование события Последовательный ввод
- •Присвоить значение
- •Переход
- •Переход на мнемосхему
- •Переход на рабочий стол
- •Анимация примитивов
- •Выполнить скрипт
- •Поле ввода
- •Ползунок
- •Изменение свойств примитивов с помощью реакций и анимаций
- •Видимость/мигание
- •Цвет
- •Заливка
- •HatchStyle
- •GradientBrushInfo
- •Копирование реакций и анимаций
- •Обмен данными
- •Создание OPC DA коннектора
- •Тег OPC DA коннектора
- •Выбор OPC DA тегов
- •Системный тег OPC DA коннектора
- •Переименование OPC DA тегов
- •Настройка OPC DA коннектора
- •Создание OPC DA группы
- •Настройка OPC DA группы
- •Создание OPC HDA коннектора
- •Тег OPC HDA коннектора
- •Выбор OPC HDA тегов
- •Системный тег OPC HDA коннектора
- •Переименование OPC HDA тегов
- •Настройка OPC HDA коннектора
- •Использование данных OPC HDA коннектора
- •SQL-коннектор
- •Технические характеристики
- •Источник данных
- •Примеры строк соединений
- •Группа данных
- •Создать группу данных
- •Изменить группу данных
- •Свойства группы данных
- •Системный тег группы данных
- •Примеры использования
- •Работа с протоколом событий
- •Сбор статистических данных
- •Организация архива данных
- •WideTrack коннектор
- •Создание WideTrack коннектора
- •Тег WideTrack коннектора
- •Выбор тегов для опроса
- •Системный тег WideTrack коннектора
- •Настройка WideTrack коннектора
- •Просмотр истории
- •Экспорт данных
- •Общие свойства экспортеров
- •Свойства экспортера в XML
- •Структура файла XML
- •Свойства экспортера в CSV
- •Структура файла CSV
- •Создание файла экспорта
- •Тег эмулятор
- •Эмулятор синус
- •Эмулятор инкремент
- •Система ограничения доступа
- •Настройка пользователей и ролей проекта
- •Настройка пользователей проекта
- •Добавление пользователя
- •Удаление пользователя
- •Редактирование пользователя
- •Ввод пароля
- •Настройка ролей проекта
- •Добавление роли
- •Удаление роли
- •Редактирование роли
- •Настройка групп ролей проекта
- •Добавление группы ролей
- •Удаление группы ролей
- •Редактирование группы ролей
- •Настройка доступа к объектам
- •Объекты, поддерживающие ограничение доступа
- •Настройка доступа для объектов
- •Настройка доступа для реакций
- •Алгоритм проверки прав доступа
- •Авторизация пользователей проекта
- •Вход пользователя в систему
- •Выход пользователя из системы
- •История процесса. Тренды
- •Модуль Менеджер трендов
- •Настройки Менеджера трендов
- •Группы настроек истории
- •Редактирование групп настройки истории
- •Редактирование группы настроек
- •Перья Менеджера трендов
- •Редактирование перьев Менеджера трендов
- •Создание перьев
- •Удаление перьев
- •Группировка перьев
- •Тренды объектов
- •Тренды тегов
- •Мастер создания перьев для объекта
- •Мастер создания перьев для тега
- •Настройка трендирования тегов
- •Настройка трендирования атрибутов
- •Выбор тегов по маске
- •Графический элемент Тренд
- •Создание графического элемента Тренд
- •Общие настройки
- •Настройка координатной сетки
- •Добавление/Удаление перьев
- •Настройка перьев
- •Настройки пера
- •Редактирование привязки перьев
- •Настройки отображения границ
- •Настройки отображения точек
- •Световое перо
- •Управление графическим элементом Тренд
- •Выбор текущего пера
- •Переключение режимов
- •Включение заливки и отключение перьев
- •Просмотр истории
- •Графический элемент Табличный тренд
- •Настройка запроса данных
- •Листание
- •Световое перо
- •Свойства колонки Перо
- •Свойства колонки Время
- •Протокол событий
- •Модуль Протокол событий
- •Настройки модуля Протокол событий
- •Настройки хранения истории
- •Словарь серьезности
- •Словарь типов событий
- •Словарь событий
- •Системные события
- •Импорт словаря
- •Настройки печати протокола событий
- •Окно Настройка печати
- •Настройка колонок для печати
- •Примитив Протокол событий
- •Основные настройки
- •Колонки и строки
- •События элемента проекта
- •Вызов окна просмотра событий элемента проекта
- •Панель инструментов
- •Настройка колонок
- •Фильтрация событий по серьезности
- •Фильтрация событий по типу
- •Печать событий
- •Посылка событий в протокол
- •Печать событий из скрипта
- •Модуль отчетов
- •Шаблон отчета
- •Параметры отчета
- •Секции отчета
- •Элементы отчета
- •Линия
- •Прямоугольник
- •Текстовое поле
- •Таблица
- •Диаграмма
- •Группы данных
- •Группировка и сортировка данных
- •Гистограммы
- •Линейчатые диаграммы
- •Графики
- •Круговые диаграммы
- •Диаграммы с областями
- •Кольцевые диаграммы
- •Рисунок
- •Встроенные рисунки
- •Форматирование элементов отчета
- •Стили
- •Условное форматирование
- •Числовые значения и даты
- •Разбивка отчета на страницы
- •Предварительный просмотр
- •Взаимодействие с пользователем
- •Автоматическое изменение размера и позиционирование
- •Данные для отчета
- •Группа тегов
- •Группа трендируемых тегов
- •Атрибут тега
- •Тренд
- •SQL коннектор
- •Мнемосхема
- •Использование выражений
- •Создание выражений
- •Работа с выражениями
- •Применение глобальных коллекций в выражениях
- •Примеры выражений
- •Использование функций в выражениях
- •Функции работы со строками
- •Функции даты и времени
- •Математические функции
- •Функции проверки типов
- •Функции выполнения условия
- •Функции преобразования типов
- •Функции агрегирования
- •Функция Avg
- •Функция Count
- •Функция CountRows
- •Функция CountDistinct
- •Функция First
- •Функция Max
- •Функция Min
- •Функция Last
- •Функция RowNumber
- •Функция RunningValue
- •Функция StDevP
- •Функция StDev
- •Функция Sum
- •Функция VarP
- •Функция Var
- •Менеджер отчетов
- •Хранение снимков данных
- •Печать отчетов
- •Рассылка отчетов
- •Публикация в папку
- •Генерация отчета
- •Web-контроль
- •Инсталляция
- •Начало работы
- •Деинсталляция
- •Главное окно
- •Конфигурирование сервера
- •Общие настройки
- •Соединения
- •Главная страница
- •Страница авторизации
- •Страница навигации по проекту
- •Как подключиться к проекту
- •Cписок возможных проблем
- •Редактор скриптов
- •Окно Редактора скриптов
- •Панель инструментов
- •Закладка Шаблоны
- •Закладка Функции
- •Окно ошибок скрипта
- •Область редактирования текста
- •Окно Параметры страницы
- •Окно Печать
- •Окно редактирования ссылок на сборки
- •Окно Поиск и замена
- •Настройки Редактора скриптов
- •Настройки Шаблонов пользователей
- •Настройки шрифта
- •Пример HMI-приложения
- •Создание проекта
- •Типы тегов
- •Библиотечные объекты
- •Анимация
- •Логика работы
- •Отладка
- •Тренд и протокол событий
- •Техническая поддержка
10.4Посылка событий в протокол
Для посылки информации о событии в протокол событий применяются скрипты Пользователя, подключаемые как реакции графических примитивов объектов или тегов.
Для посылки сообщениях о событии в Протокол событий используются:
∙События из словаря событий.
Для регистрации события в протоколе используйте функцию
AlarmServiceHelper.SendEvent
∙Произвольные пользовательские события.
Для регистрации события в протоколе используйте функцию
AlarmServiceHelper.SendUserEvent.
Для использования этих функций , в редакторе скриптов во вкладке Пространства имен
добавьте ссылку на Krug.ObjectModel.AlarmServiceInterfaces
РЕГИСТРАЦИЯ СОБЫТИЯ ИЗ СЛОВАРЯ СОБЫТИЙ
Вызовите в скрипте функцию AlarmServiceHelper. SendEvent со следующими параметрами:
AlarmServiceHelper.SendEvent(
Client, |
|
|
Tag, |
|
|
Attribute, |
|
|
MessageID, |
|
|
MessageParam |
); |
|
где |
|
|
Client |
– владелец скрипта, |
|
Tag |
- имя тега, с которым связано событие |
|
Attribute |
- имя атрибута тега, с которым связано событие |
|
MessageID |
- номер события в словаре событий |
MessageParam – необязательные параметры текстовой строки события. Если параметры отсутствуют, никакие значения задавать не нужно, если параметры есть, перечислите их через запятую.
Если словарного события с данным номером нет в словаре событий, то в окне Отладка в журнале регистрации сообщений с именем Warnings(предупреждения) появится сообщение:
"Warnings Error: 1: Ошибка при посылке события в протокол событий: словарного события с номером [MessageID] нет в словаре событий".
364 DataRate
Пример:
РЕГИСТРАЦИЯ ПОЛЬЗОВАТЕЛЬСКОГО СОБЫТИЯ
Вызовите в скрипте функцию AlarmServiceHelper. SendUserEvent со следующими параметрами:
AlarmServiceHelper.SendUserEvent(
Client, |
|
|
Tag, |
|
|
Attribute, |
|
|
TypeID, |
|
|
Severity, |
|
|
TextMessage, |
|
|
MessageParam |
); |
|
где |
|
|
Client |
– владелец скрипта, |
|
Tag |
- имя тега, с которым связано событие |
|
Attribute |
- имя атрибута тега, с которым связано событие |
|
TypeID |
- номер типа события из словаря типов; если типа с заданным номером |
|
|
не будет в словаре, событие не будет зарегистрировано |
|
Severity |
- серьезность события. Целое значение из диапазона [0…1000]. |
|
TextMessage |
– текстовое сообщение заключенное в кавычки |
MessageParam – необязательные параметры текстовой строки события
Пример:
Протокол событий 365
10.5Печать событий из скрипта
КЛАСС ДЛЯ ПЕЧАТИ ПРОТОКОЛА СОБЫТИЙ
Для печати протокола событий из скрипта используются специальные методы класса
AlarmServiceHelper.
Чтобы методы этого класса стали доступны, в редакторе скриптов во вкладке Пространства имен добавьте ссылку на Krug.ObjectModel.AlarmServiceInterfaces
МЕТОДЫ ПЕЧАТИ СООБЩЕНИЙ О СОБЫТИЯХ
AlarmServiceHelper.PrintLastEvents(object client, int count, string printSettingsName) - печатает последние события.
Параметры:
client - клиент скрипта;
count - rоличество печатаемых событий;
printSettingsName - название используемой группы настроек или null, если настройки будут запрашиваться у пользователя.
AlarmServiceHelper.PrintLastEvents(object client, int count, EventFilter[] filters, string
printSettingsName) - печатает последние события, отфильтрованные по заданным свойствам.
Параметры:
client - клиент скрипта;
count - rоличество печатаемых событий;
filters - массив фильтров для фильтрации событий по определенным свойствам; printSettingsName - название используемой группы настроек или null, если настройки
будут запрашиваться у пользователя.
AlarmServiceHelper.PrintAllEvents(object client, string printSettingsName) - печатает все события, зарегистрированные протоколом событий.
Параметры:
client - клиент скрипта;
printSettingsName - название используемой группы настроек или null, если настройки будут запрашиваться у пользователя.
AlarmServiceHelper.PrintAllEvents(object client, EventFilter[] filters, string
printSettingsName) - печатает все события, зарегистрированные протоколом событий, отфильтрованные по заданным свойствам.
Параметры:
client - клиент скрипта;
filters - массив фильтров для фильтрации событий по определенным свойствам; printSettingsName - название используемой группы настроек или null, если настройки
будут запрашиваться у пользователя.
366 DataRate
AlarmServiceHelper.PrintEvents(object client, DateTime startTime, DateTime endTime, int
maxCountLimit,
string printSettingsName) - печатает события в заданном промежутке времени.
Параметры:
client - клиент скрипта;
startTime -начальное время запрашиваемого интервала; endTime -конечное время запрашиваемого интервала;
maxCountLimit - ограничение на количество возвращаемых событий или -1 ,если без ограничений
printSettingsName - название используемой группы настроек или null, если настройки будут запрашиваться у пользователя.
AlarmServiceHelper.PrintEvents(object client, DateTime startTime, DateTime endTime,
EventFilter[] filters,
int maxCountLimit, string printSettingsName) - печатает события в заданном промежутке времени, отфильтрованные по заданным свойствам.
Параметры:
client - клиент скрипта;
startTime -начальное время запрашиваемого интервала; endTime -конечное время запрашиваемого интервала;
filters - массив фильтров для фильтрации событий по определенным свойствам; maxCountLimit - ограничение на количество возвращаемых событий или -1 ,если без
ограничений
printSettingsName - название используемой группы настроек или null, если настройки будут запрашиваться у пользователя.
Название группы настроек для параметра printSettingsName в скрипте нужно брать из списка настроек печати протокола событий.
Если заданное в скрипте название группы настроек не будет найдено в списке настроек печати протокола событий или будет пустым, то печать событий не произойдет и в журнал регистрации (лог) будет записано соответствующее предупреждение.
ПРИМЕР
∙Создаем настройку печати протокола событий с именем Настройки печати в окне
Настройки протокола событий во вкладке Настройка печати.
∙Добавляем ссылку на пространство имен Krug.ObjectModel.AlarmServiceInterfaces
∙Запрашиваем события с 16.01.08 12:00 по 16.01.08 13:30, задав фильтрацию по уровню и по типу серьезности, а также максимальное количество событий - 25.
∙Во вкладке Скрипт пишем следующий код:
//Задаем начальное время 16.01.2008 12:00
DateTime startTime = new DateTime(2008, 1, 16, 12, 0, 0, DateTimeKind.Local); // Задаем конечное время 16.01.2008 13:30
DateTime endTime = new DateTime(2008, 1, 16, 13, 30, 0, DateTimeKind.Local);
//Создаем массив фильтров. EventFilter[] filters = new EventFilter[2];
//Создаем фильтр серьезность (типы фильтруемых значений серьезност от 200 до 100)
//и добавляем в массив фильтров
filters[0] = new SeverityEventFilter(200, 1000);
//Создаем фильтр типов (фильтруются типы событий с номерами 1 и 2)
//и добавляем в массив фильтров
Протокол событий 367
filters[1] = new TypeEventFilter(new int[] { 1, 2 }); try
{
// Печатаем события с сответсвующими настройками AlarmServiceHelper.PrintEvents(Client, startTime, endTime, filters, 25, "Настройки
печати");
}
catch (Exception ex)
{
// Если произошла ошибка показываем сообщение с ее описанием MessageBox.Show(ex.Message);
}
Данный скрипт можно вызывать с помощью функции реакции или запускать по расписанию.
368 DataRate
Часть
11